##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5194 +1,5198 b''
1 2006-02-10 Ville Vainio <vivainio@gmail.com>
1 2006-02-10 Ville Vainio <vivainio@gmail.com>
2
2
3 * genutils.py: getoutput now works in win32 too
3 * genutils.py: getoutput now works in win32 too
4
4
5 * completer.py: alias and magic completion only invoked
6 at the first "item" in the line, to avoid "cd %store"
7 nonsense.
8
5 2006-02-09 Ville Vainio <vivainio@gmail.com>
9 2006-02-09 Ville Vainio <vivainio@gmail.com>
6
10
7 * test/*: Added a unit testing framework (finally).
11 * test/*: Added a unit testing framework (finally).
8 '%run runtests.py' to run test_*.
12 '%run runtests.py' to run test_*.
9
13
10 * ipapi.py: Exposed runlines and set_custom_exc
14 * ipapi.py: Exposed runlines and set_custom_exc
11
15
12 2006-02-07 Ville Vainio <vivainio@gmail.com>
16 2006-02-07 Ville Vainio <vivainio@gmail.com>
13
17
14 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
18 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
15 instead use "f(1 2)" as before.
19 instead use "f(1 2)" as before.
16
20
17 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
21 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
18
22
19 * IPython/demo.py (IPythonDemo): Add new classes to the demo
23 * IPython/demo.py (IPythonDemo): Add new classes to the demo
20 facilities, for demos processed by the IPython input filter
24 facilities, for demos processed by the IPython input filter
21 (IPythonDemo), and for running a script one-line-at-a-time as a
25 (IPythonDemo), and for running a script one-line-at-a-time as a
22 demo, both for pure Python (LineDemo) and for IPython-processed
26 demo, both for pure Python (LineDemo) and for IPython-processed
23 input (IPythonLineDemo). After a request by Dave Kohel, from the
27 input (IPythonLineDemo). After a request by Dave Kohel, from the
24 SAGE team.
28 SAGE team.
25 (Demo.edit): added and edit() method to the demo objects, to edit
29 (Demo.edit): added and edit() method to the demo objects, to edit
26 the in-memory copy of the last executed block.
30 the in-memory copy of the last executed block.
27
31
28 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
32 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
29 processing to %edit, %macro and %save. These commands can now be
33 processing to %edit, %macro and %save. These commands can now be
30 invoked on the unprocessed input as it was typed by the user
34 invoked on the unprocessed input as it was typed by the user
31 (without any prefilters applied). After requests by the SAGE team
35 (without any prefilters applied). After requests by the SAGE team
32 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
36 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
33
37
34 2006-02-01 Ville Vainio <vivainio@gmail.com>
38 2006-02-01 Ville Vainio <vivainio@gmail.com>
35
39
36 * setup.py, eggsetup.py: easy_install ipython==dev works
40 * setup.py, eggsetup.py: easy_install ipython==dev works
37 correctly now (on Linux)
41 correctly now (on Linux)
38
42
39 * ipy_user_conf,ipmaker: user config changes, removed spurious
43 * ipy_user_conf,ipmaker: user config changes, removed spurious
40 warnings
44 warnings
41
45
42 * iplib: if rc.banner is string, use it as is.
46 * iplib: if rc.banner is string, use it as is.
43
47
44 * Magic: %pycat accepts a string argument and pages it's contents.
48 * Magic: %pycat accepts a string argument and pages it's contents.
45
49
46
50
47 2006-01-30 Ville Vainio <vivainio@gmail.com>
51 2006-01-30 Ville Vainio <vivainio@gmail.com>
48
52
49 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
53 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
50 Now %store and bookmarks work through PickleShare, meaning that
54 Now %store and bookmarks work through PickleShare, meaning that
51 concurrent access is possible and all ipython sessions see the
55 concurrent access is possible and all ipython sessions see the
52 same database situation all the time, instead of snapshot of
56 same database situation all the time, instead of snapshot of
53 the situation when the session was started. Hence, %bookmark
57 the situation when the session was started. Hence, %bookmark
54 results are immediately accessible from othes sessions. The database
58 results are immediately accessible from othes sessions. The database
55 is also available for use by user extensions. See:
59 is also available for use by user extensions. See:
56 http://www.python.org/pypi/pickleshare
60 http://www.python.org/pypi/pickleshare
57
61
58 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
62 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
59
63
60 * aliases can now be %store'd
64 * aliases can now be %store'd
61
65
62 * path.py move to Extensions so that pickleshare does not need
66 * path.py move to Extensions so that pickleshare does not need
63 IPython-specific import. Extensions added to pythonpath right
67 IPython-specific import. Extensions added to pythonpath right
64 at __init__.
68 at __init__.
65
69
66 * iplib.py: ipalias deprecated/redundant; aliases are converted and
70 * iplib.py: ipalias deprecated/redundant; aliases are converted and
67 called with _ip.system and the pre-transformed command string.
71 called with _ip.system and the pre-transformed command string.
68
72
69 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
73 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
70
74
71 * IPython/iplib.py (interact): Fix that we were not catching
75 * IPython/iplib.py (interact): Fix that we were not catching
72 KeyboardInterrupt exceptions properly. I'm not quite sure why the
76 KeyboardInterrupt exceptions properly. I'm not quite sure why the
73 logic here had to change, but it's fixed now.
77 logic here had to change, but it's fixed now.
74
78
75 2006-01-29 Ville Vainio <vivainio@gmail.com>
79 2006-01-29 Ville Vainio <vivainio@gmail.com>
76
80
77 * iplib.py: Try to import pyreadline on Windows.
81 * iplib.py: Try to import pyreadline on Windows.
78
82
79 2006-01-27 Ville Vainio <vivainio@gmail.com>
83 2006-01-27 Ville Vainio <vivainio@gmail.com>
80
84
81 * iplib.py: Expose ipapi as _ip in builtin namespace.
85 * iplib.py: Expose ipapi as _ip in builtin namespace.
82 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
86 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
83 and ip_set_hook (-> _ip.set_hook) redundant. % and !
87 and ip_set_hook (-> _ip.set_hook) redundant. % and !
84 syntax now produce _ip.* variant of the commands.
88 syntax now produce _ip.* variant of the commands.
85
89
86 * "_ip.options().autoedit_syntax = 2" automatically throws
90 * "_ip.options().autoedit_syntax = 2" automatically throws
87 user to editor for syntax error correction without prompting.
91 user to editor for syntax error correction without prompting.
88
92
89 2006-01-27 Ville Vainio <vivainio@gmail.com>
93 2006-01-27 Ville Vainio <vivainio@gmail.com>
90
94
91 * ipmaker.py: Give "realistic" sys.argv for scripts (without
95 * ipmaker.py: Give "realistic" sys.argv for scripts (without
92 'ipython' at argv[0]) executed through command line.
96 'ipython' at argv[0]) executed through command line.
93 NOTE: this DEPRECATES calling ipython with multiple scripts
97 NOTE: this DEPRECATES calling ipython with multiple scripts
94 ("ipython a.py b.py c.py")
98 ("ipython a.py b.py c.py")
95
99
96 * iplib.py, hooks.py: Added configurable input prefilter,
100 * iplib.py, hooks.py: Added configurable input prefilter,
97 named 'input_prefilter'. See ext_rescapture.py for example
101 named 'input_prefilter'. See ext_rescapture.py for example
98 usage.
102 usage.
99
103
100 * ext_rescapture.py, Magic.py: Better system command output capture
104 * ext_rescapture.py, Magic.py: Better system command output capture
101 through 'var = !ls' (deprecates user-visible %sc). Same notation
105 through 'var = !ls' (deprecates user-visible %sc). Same notation
102 applies for magics, 'var = %alias' assigns alias list to var.
106 applies for magics, 'var = %alias' assigns alias list to var.
103
107
104 * ipapi.py: added meta() for accessing extension-usable data store.
108 * ipapi.py: added meta() for accessing extension-usable data store.
105
109
106 * iplib.py: added InteractiveShell.getapi(). New magics should be
110 * iplib.py: added InteractiveShell.getapi(). New magics should be
107 written doing self.getapi() instead of using the shell directly.
111 written doing self.getapi() instead of using the shell directly.
108
112
109 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
113 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
110 %store foo >> ~/myfoo.txt to store variables to files (in clean
114 %store foo >> ~/myfoo.txt to store variables to files (in clean
111 textual form, not a restorable pickle).
115 textual form, not a restorable pickle).
112
116
113 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
117 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
114
118
115 * usage.py, Magic.py: added %quickref
119 * usage.py, Magic.py: added %quickref
116
120
117 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
121 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
118
122
119 * GetoptErrors when invoking magics etc. with wrong args
123 * GetoptErrors when invoking magics etc. with wrong args
120 are now more helpful:
124 are now more helpful:
121 GetoptError: option -l not recognized (allowed: "qb" )
125 GetoptError: option -l not recognized (allowed: "qb" )
122
126
123 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
127 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
124
128
125 * IPython/demo.py (Demo.show): Flush stdout after each block, so
129 * IPython/demo.py (Demo.show): Flush stdout after each block, so
126 computationally intensive blocks don't appear to stall the demo.
130 computationally intensive blocks don't appear to stall the demo.
127
131
128 2006-01-24 Ville Vainio <vivainio@gmail.com>
132 2006-01-24 Ville Vainio <vivainio@gmail.com>
129
133
130 * iplib.py, hooks.py: 'result_display' hook can return a non-None
134 * iplib.py, hooks.py: 'result_display' hook can return a non-None
131 value to manipulate resulting history entry.
135 value to manipulate resulting history entry.
132
136
133 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
137 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
134 to instance methods of IPApi class, to make extending an embedded
138 to instance methods of IPApi class, to make extending an embedded
135 IPython feasible. See ext_rehashdir.py for example usage.
139 IPython feasible. See ext_rehashdir.py for example usage.
136
140
137 * Merged 1071-1076 from banches/0.7.1
141 * Merged 1071-1076 from banches/0.7.1
138
142
139
143
140 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
144 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
141
145
142 * tools/release (daystamp): Fix build tools to use the new
146 * tools/release (daystamp): Fix build tools to use the new
143 eggsetup.py script to build lightweight eggs.
147 eggsetup.py script to build lightweight eggs.
144
148
145 * Applied changesets 1062 and 1064 before 0.7.1 release.
149 * Applied changesets 1062 and 1064 before 0.7.1 release.
146
150
147 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
151 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
148 see the raw input history (without conversions like %ls ->
152 see the raw input history (without conversions like %ls ->
149 ipmagic("ls")). After a request from W. Stein, SAGE
153 ipmagic("ls")). After a request from W. Stein, SAGE
150 (http://modular.ucsd.edu/sage) developer. This information is
154 (http://modular.ucsd.edu/sage) developer. This information is
151 stored in the input_hist_raw attribute of the IPython instance, so
155 stored in the input_hist_raw attribute of the IPython instance, so
152 developers can access it if needed (it's an InputList instance).
156 developers can access it if needed (it's an InputList instance).
153
157
154 * Versionstring = 0.7.2.svn
158 * Versionstring = 0.7.2.svn
155
159
156 * eggsetup.py: A separate script for constructing eggs, creates
160 * eggsetup.py: A separate script for constructing eggs, creates
157 proper launch scripts even on Windows (an .exe file in
161 proper launch scripts even on Windows (an .exe file in
158 \python24\scripts).
162 \python24\scripts).
159
163
160 * ipapi.py: launch_new_instance, launch entry point needed for the
164 * ipapi.py: launch_new_instance, launch entry point needed for the
161 egg.
165 egg.
162
166
163 2006-01-23 Ville Vainio <vivainio@gmail.com>
167 2006-01-23 Ville Vainio <vivainio@gmail.com>
164
168
165 * Added %cpaste magic for pasting python code
169 * Added %cpaste magic for pasting python code
166
170
167 2006-01-22 Ville Vainio <vivainio@gmail.com>
171 2006-01-22 Ville Vainio <vivainio@gmail.com>
168
172
169 * Merge from branches/0.7.1 into trunk, revs 1052-1057
173 * Merge from branches/0.7.1 into trunk, revs 1052-1057
170
174
171 * Versionstring = 0.7.2.svn
175 * Versionstring = 0.7.2.svn
172
176
173 * eggsetup.py: A separate script for constructing eggs, creates
177 * eggsetup.py: A separate script for constructing eggs, creates
174 proper launch scripts even on Windows (an .exe file in
178 proper launch scripts even on Windows (an .exe file in
175 \python24\scripts).
179 \python24\scripts).
176
180
177 * ipapi.py: launch_new_instance, launch entry point needed for the
181 * ipapi.py: launch_new_instance, launch entry point needed for the
178 egg.
182 egg.
179
183
180 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
184 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
181
185
182 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
186 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
183 %pfile foo would print the file for foo even if it was a binary.
187 %pfile foo would print the file for foo even if it was a binary.
184 Now, extensions '.so' and '.dll' are skipped.
188 Now, extensions '.so' and '.dll' are skipped.
185
189
186 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
190 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
187 bug, where macros would fail in all threaded modes. I'm not 100%
191 bug, where macros would fail in all threaded modes. I'm not 100%
188 sure, so I'm going to put out an rc instead of making a release
192 sure, so I'm going to put out an rc instead of making a release
189 today, and wait for feedback for at least a few days.
193 today, and wait for feedback for at least a few days.
190
194
191 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
195 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
192 it...) the handling of pasting external code with autoindent on.
196 it...) the handling of pasting external code with autoindent on.
193 To get out of a multiline input, the rule will appear for most
197 To get out of a multiline input, the rule will appear for most
194 users unchanged: two blank lines or change the indent level
198 users unchanged: two blank lines or change the indent level
195 proposed by IPython. But there is a twist now: you can
199 proposed by IPython. But there is a twist now: you can
196 add/subtract only *one or two spaces*. If you add/subtract three
200 add/subtract only *one or two spaces*. If you add/subtract three
197 or more (unless you completely delete the line), IPython will
201 or more (unless you completely delete the line), IPython will
198 accept that line, and you'll need to enter a second one of pure
202 accept that line, and you'll need to enter a second one of pure
199 whitespace. I know it sounds complicated, but I can't find a
203 whitespace. I know it sounds complicated, but I can't find a
200 different solution that covers all the cases, with the right
204 different solution that covers all the cases, with the right
201 heuristics. Hopefully in actual use, nobody will really notice
205 heuristics. Hopefully in actual use, nobody will really notice
202 all these strange rules and things will 'just work'.
206 all these strange rules and things will 'just work'.
203
207
204 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
208 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
205
209
206 * IPython/iplib.py (interact): catch exceptions which can be
210 * IPython/iplib.py (interact): catch exceptions which can be
207 triggered asynchronously by signal handlers. Thanks to an
211 triggered asynchronously by signal handlers. Thanks to an
208 automatic crash report, submitted by Colin Kingsley
212 automatic crash report, submitted by Colin Kingsley
209 <tercel-AT-gentoo.org>.
213 <tercel-AT-gentoo.org>.
210
214
211 2006-01-20 Ville Vainio <vivainio@gmail.com>
215 2006-01-20 Ville Vainio <vivainio@gmail.com>
212
216
213 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
217 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
214 (%rehashdir, very useful, try it out) of how to extend ipython
218 (%rehashdir, very useful, try it out) of how to extend ipython
215 with new magics. Also added Extensions dir to pythonpath to make
219 with new magics. Also added Extensions dir to pythonpath to make
216 importing extensions easy.
220 importing extensions easy.
217
221
218 * %store now complains when trying to store interactively declared
222 * %store now complains when trying to store interactively declared
219 classes / instances of those classes.
223 classes / instances of those classes.
220
224
221 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
225 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
222 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
226 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
223 if they exist, and ipy_user_conf.py with some defaults is created for
227 if they exist, and ipy_user_conf.py with some defaults is created for
224 the user.
228 the user.
225
229
226 * Startup rehashing done by the config file, not InterpreterExec.
230 * Startup rehashing done by the config file, not InterpreterExec.
227 This means system commands are available even without selecting the
231 This means system commands are available even without selecting the
228 pysh profile. It's the sensible default after all.
232 pysh profile. It's the sensible default after all.
229
233
230 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
234 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
231
235
232 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
236 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
233 multiline code with autoindent on working. But I am really not
237 multiline code with autoindent on working. But I am really not
234 sure, so this needs more testing. Will commit a debug-enabled
238 sure, so this needs more testing. Will commit a debug-enabled
235 version for now, while I test it some more, so that Ville and
239 version for now, while I test it some more, so that Ville and
236 others may also catch any problems. Also made
240 others may also catch any problems. Also made
237 self.indent_current_str() a method, to ensure that there's no
241 self.indent_current_str() a method, to ensure that there's no
238 chance of the indent space count and the corresponding string
242 chance of the indent space count and the corresponding string
239 falling out of sync. All code needing the string should just call
243 falling out of sync. All code needing the string should just call
240 the method.
244 the method.
241
245
242 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
246 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
243
247
244 * IPython/Magic.py (magic_edit): fix check for when users don't
248 * IPython/Magic.py (magic_edit): fix check for when users don't
245 save their output files, the try/except was in the wrong section.
249 save their output files, the try/except was in the wrong section.
246
250
247 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
251 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
248
252
249 * IPython/Magic.py (magic_run): fix __file__ global missing from
253 * IPython/Magic.py (magic_run): fix __file__ global missing from
250 script's namespace when executed via %run. After a report by
254 script's namespace when executed via %run. After a report by
251 Vivian.
255 Vivian.
252
256
253 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
257 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
254 when using python 2.4. The parent constructor changed in 2.4, and
258 when using python 2.4. The parent constructor changed in 2.4, and
255 we need to track it directly (we can't call it, as it messes up
259 we need to track it directly (we can't call it, as it messes up
256 readline and tab-completion inside our pdb would stop working).
260 readline and tab-completion inside our pdb would stop working).
257 After a bug report by R. Bernstein <rocky-AT-panix.com>.
261 After a bug report by R. Bernstein <rocky-AT-panix.com>.
258
262
259 2006-01-16 Ville Vainio <vivainio@gmail.com>
263 2006-01-16 Ville Vainio <vivainio@gmail.com>
260
264
261 * Ipython/magic.py:Reverted back to old %edit functionality
265 * Ipython/magic.py:Reverted back to old %edit functionality
262 that returns file contents on exit.
266 that returns file contents on exit.
263
267
264 * IPython/path.py: Added Jason Orendorff's "path" module to
268 * IPython/path.py: Added Jason Orendorff's "path" module to
265 IPython tree, http://www.jorendorff.com/articles/python/path/.
269 IPython tree, http://www.jorendorff.com/articles/python/path/.
266 You can get path objects conveniently through %sc, and !!, e.g.:
270 You can get path objects conveniently through %sc, and !!, e.g.:
267 sc files=ls
271 sc files=ls
268 for p in files.paths: # or files.p
272 for p in files.paths: # or files.p
269 print p,p.mtime
273 print p,p.mtime
270
274
271 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
275 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
272 now work again without considering the exclusion regexp -
276 now work again without considering the exclusion regexp -
273 hence, things like ',foo my/path' turn to 'foo("my/path")'
277 hence, things like ',foo my/path' turn to 'foo("my/path")'
274 instead of syntax error.
278 instead of syntax error.
275
279
276
280
277 2006-01-14 Ville Vainio <vivainio@gmail.com>
281 2006-01-14 Ville Vainio <vivainio@gmail.com>
278
282
279 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
283 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
280 ipapi decorators for python 2.4 users, options() provides access to rc
284 ipapi decorators for python 2.4 users, options() provides access to rc
281 data.
285 data.
282
286
283 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
287 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
284 as path separators (even on Linux ;-). Space character after
288 as path separators (even on Linux ;-). Space character after
285 backslash (as yielded by tab completer) is still space;
289 backslash (as yielded by tab completer) is still space;
286 "%cd long\ name" works as expected.
290 "%cd long\ name" works as expected.
287
291
288 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
292 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
289 as "chain of command", with priority. API stays the same,
293 as "chain of command", with priority. API stays the same,
290 TryNext exception raised by a hook function signals that
294 TryNext exception raised by a hook function signals that
291 current hook failed and next hook should try handling it, as
295 current hook failed and next hook should try handling it, as
292 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
296 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
293 requested configurable display hook, which is now implemented.
297 requested configurable display hook, which is now implemented.
294
298
295 2006-01-13 Ville Vainio <vivainio@gmail.com>
299 2006-01-13 Ville Vainio <vivainio@gmail.com>
296
300
297 * IPython/platutils*.py: platform specific utility functions,
301 * IPython/platutils*.py: platform specific utility functions,
298 so far only set_term_title is implemented (change terminal
302 so far only set_term_title is implemented (change terminal
299 label in windowing systems). %cd now changes the title to
303 label in windowing systems). %cd now changes the title to
300 current dir.
304 current dir.
301
305
302 * IPython/Release.py: Added myself to "authors" list,
306 * IPython/Release.py: Added myself to "authors" list,
303 had to create new files.
307 had to create new files.
304
308
305 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
309 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
306 shell escape; not a known bug but had potential to be one in the
310 shell escape; not a known bug but had potential to be one in the
307 future.
311 future.
308
312
309 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
313 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
310 extension API for IPython! See the module for usage example. Fix
314 extension API for IPython! See the module for usage example. Fix
311 OInspect for docstring-less magic functions.
315 OInspect for docstring-less magic functions.
312
316
313
317
314 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
318 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
315
319
316 * IPython/iplib.py (raw_input): temporarily deactivate all
320 * IPython/iplib.py (raw_input): temporarily deactivate all
317 attempts at allowing pasting of code with autoindent on. It
321 attempts at allowing pasting of code with autoindent on. It
318 introduced bugs (reported by Prabhu) and I can't seem to find a
322 introduced bugs (reported by Prabhu) and I can't seem to find a
319 robust combination which works in all cases. Will have to revisit
323 robust combination which works in all cases. Will have to revisit
320 later.
324 later.
321
325
322 * IPython/genutils.py: remove isspace() function. We've dropped
326 * IPython/genutils.py: remove isspace() function. We've dropped
323 2.2 compatibility, so it's OK to use the string method.
327 2.2 compatibility, so it's OK to use the string method.
324
328
325 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
329 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
326
330
327 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
331 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
328 matching what NOT to autocall on, to include all python binary
332 matching what NOT to autocall on, to include all python binary
329 operators (including things like 'and', 'or', 'is' and 'in').
333 operators (including things like 'and', 'or', 'is' and 'in').
330 Prompted by a bug report on 'foo & bar', but I realized we had
334 Prompted by a bug report on 'foo & bar', but I realized we had
331 many more potential bug cases with other operators. The regexp is
335 many more potential bug cases with other operators. The regexp is
332 self.re_exclude_auto, it's fairly commented.
336 self.re_exclude_auto, it's fairly commented.
333
337
334 2006-01-12 Ville Vainio <vivainio@gmail.com>
338 2006-01-12 Ville Vainio <vivainio@gmail.com>
335
339
336 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
340 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
337 Prettified and hardened string/backslash quoting with ipsystem(),
341 Prettified and hardened string/backslash quoting with ipsystem(),
338 ipalias() and ipmagic(). Now even \ characters are passed to
342 ipalias() and ipmagic(). Now even \ characters are passed to
339 %magics, !shell escapes and aliases exactly as they are in the
343 %magics, !shell escapes and aliases exactly as they are in the
340 ipython command line. Should improve backslash experience,
344 ipython command line. Should improve backslash experience,
341 particularly in Windows (path delimiter for some commands that
345 particularly in Windows (path delimiter for some commands that
342 won't understand '/'), but Unix benefits as well (regexps). %cd
346 won't understand '/'), but Unix benefits as well (regexps). %cd
343 magic still doesn't support backslash path delimiters, though. Also
347 magic still doesn't support backslash path delimiters, though. Also
344 deleted all pretense of supporting multiline command strings in
348 deleted all pretense of supporting multiline command strings in
345 !system or %magic commands. Thanks to Jerry McRae for suggestions.
349 !system or %magic commands. Thanks to Jerry McRae for suggestions.
346
350
347 * doc/build_doc_instructions.txt added. Documentation on how to
351 * doc/build_doc_instructions.txt added. Documentation on how to
348 use doc/update_manual.py, added yesterday. Both files contributed
352 use doc/update_manual.py, added yesterday. Both files contributed
349 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
353 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
350 doc/*.sh for deprecation at a later date.
354 doc/*.sh for deprecation at a later date.
351
355
352 * /ipython.py Added ipython.py to root directory for
356 * /ipython.py Added ipython.py to root directory for
353 zero-installation (tar xzvf ipython.tgz; cd ipython; python
357 zero-installation (tar xzvf ipython.tgz; cd ipython; python
354 ipython.py) and development convenience (no need to kee doing
358 ipython.py) and development convenience (no need to kee doing
355 "setup.py install" between changes).
359 "setup.py install" between changes).
356
360
357 * Made ! and !! shell escapes work (again) in multiline expressions:
361 * Made ! and !! shell escapes work (again) in multiline expressions:
358 if 1:
362 if 1:
359 !ls
363 !ls
360 !!ls
364 !!ls
361
365
362 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
366 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
363
367
364 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
368 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
365 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
369 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
366 module in case-insensitive installation. Was causing crashes
370 module in case-insensitive installation. Was causing crashes
367 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
371 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
368
372
369 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
373 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
370 <marienz-AT-gentoo.org>, closes
374 <marienz-AT-gentoo.org>, closes
371 http://www.scipy.net/roundup/ipython/issue51.
375 http://www.scipy.net/roundup/ipython/issue51.
372
376
373 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
377 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
374
378
375 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
379 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
376 problem of excessive CPU usage under *nix and keyboard lag under
380 problem of excessive CPU usage under *nix and keyboard lag under
377 win32.
381 win32.
378
382
379 2006-01-10 *** Released version 0.7.0
383 2006-01-10 *** Released version 0.7.0
380
384
381 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
385 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
382
386
383 * IPython/Release.py (revision): tag version number to 0.7.0,
387 * IPython/Release.py (revision): tag version number to 0.7.0,
384 ready for release.
388 ready for release.
385
389
386 * IPython/Magic.py (magic_edit): Add print statement to %edit so
390 * IPython/Magic.py (magic_edit): Add print statement to %edit so
387 it informs the user of the name of the temp. file used. This can
391 it informs the user of the name of the temp. file used. This can
388 help if you decide later to reuse that same file, so you know
392 help if you decide later to reuse that same file, so you know
389 where to copy the info from.
393 where to copy the info from.
390
394
391 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
395 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
392
396
393 * setup_bdist_egg.py: little script to build an egg. Added
397 * setup_bdist_egg.py: little script to build an egg. Added
394 support in the release tools as well.
398 support in the release tools as well.
395
399
396 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
400 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
397
401
398 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
402 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
399 version selection (new -wxversion command line and ipythonrc
403 version selection (new -wxversion command line and ipythonrc
400 parameter). Patch contributed by Arnd Baecker
404 parameter). Patch contributed by Arnd Baecker
401 <arnd.baecker-AT-web.de>.
405 <arnd.baecker-AT-web.de>.
402
406
403 * IPython/iplib.py (embed_mainloop): fix tab-completion in
407 * IPython/iplib.py (embed_mainloop): fix tab-completion in
404 embedded instances, for variables defined at the interactive
408 embedded instances, for variables defined at the interactive
405 prompt of the embedded ipython. Reported by Arnd.
409 prompt of the embedded ipython. Reported by Arnd.
406
410
407 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
411 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
408 it can be used as a (stateful) toggle, or with a direct parameter.
412 it can be used as a (stateful) toggle, or with a direct parameter.
409
413
410 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
414 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
411 could be triggered in certain cases and cause the traceback
415 could be triggered in certain cases and cause the traceback
412 printer not to work.
416 printer not to work.
413
417
414 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
418 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
415
419
416 * IPython/iplib.py (_should_recompile): Small fix, closes
420 * IPython/iplib.py (_should_recompile): Small fix, closes
417 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
421 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
418
422
419 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
423 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
420
424
421 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
425 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
422 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
426 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
423 Moad for help with tracking it down.
427 Moad for help with tracking it down.
424
428
425 * IPython/iplib.py (handle_auto): fix autocall handling for
429 * IPython/iplib.py (handle_auto): fix autocall handling for
426 objects which support BOTH __getitem__ and __call__ (so that f [x]
430 objects which support BOTH __getitem__ and __call__ (so that f [x]
427 is left alone, instead of becoming f([x]) automatically).
431 is left alone, instead of becoming f([x]) automatically).
428
432
429 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
433 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
430 Ville's patch.
434 Ville's patch.
431
435
432 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
436 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
433
437
434 * IPython/iplib.py (handle_auto): changed autocall semantics to
438 * IPython/iplib.py (handle_auto): changed autocall semantics to
435 include 'smart' mode, where the autocall transformation is NOT
439 include 'smart' mode, where the autocall transformation is NOT
436 applied if there are no arguments on the line. This allows you to
440 applied if there are no arguments on the line. This allows you to
437 just type 'foo' if foo is a callable to see its internal form,
441 just type 'foo' if foo is a callable to see its internal form,
438 instead of having it called with no arguments (typically a
442 instead of having it called with no arguments (typically a
439 mistake). The old 'full' autocall still exists: for that, you
443 mistake). The old 'full' autocall still exists: for that, you
440 need to set the 'autocall' parameter to 2 in your ipythonrc file.
444 need to set the 'autocall' parameter to 2 in your ipythonrc file.
441
445
442 * IPython/completer.py (Completer.attr_matches): add
446 * IPython/completer.py (Completer.attr_matches): add
443 tab-completion support for Enthoughts' traits. After a report by
447 tab-completion support for Enthoughts' traits. After a report by
444 Arnd and a patch by Prabhu.
448 Arnd and a patch by Prabhu.
445
449
446 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
447
451
448 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
452 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
449 Schmolck's patch to fix inspect.getinnerframes().
453 Schmolck's patch to fix inspect.getinnerframes().
450
454
451 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
455 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
452 for embedded instances, regarding handling of namespaces and items
456 for embedded instances, regarding handling of namespaces and items
453 added to the __builtin__ one. Multiple embedded instances and
457 added to the __builtin__ one. Multiple embedded instances and
454 recursive embeddings should work better now (though I'm not sure
458 recursive embeddings should work better now (though I'm not sure
455 I've got all the corner cases fixed, that code is a bit of a brain
459 I've got all the corner cases fixed, that code is a bit of a brain
456 twister).
460 twister).
457
461
458 * IPython/Magic.py (magic_edit): added support to edit in-memory
462 * IPython/Magic.py (magic_edit): added support to edit in-memory
459 macros (automatically creates the necessary temp files). %edit
463 macros (automatically creates the necessary temp files). %edit
460 also doesn't return the file contents anymore, it's just noise.
464 also doesn't return the file contents anymore, it's just noise.
461
465
462 * IPython/completer.py (Completer.attr_matches): revert change to
466 * IPython/completer.py (Completer.attr_matches): revert change to
463 complete only on attributes listed in __all__. I realized it
467 complete only on attributes listed in __all__. I realized it
464 cripples the tab-completion system as a tool for exploring the
468 cripples the tab-completion system as a tool for exploring the
465 internals of unknown libraries (it renders any non-__all__
469 internals of unknown libraries (it renders any non-__all__
466 attribute off-limits). I got bit by this when trying to see
470 attribute off-limits). I got bit by this when trying to see
467 something inside the dis module.
471 something inside the dis module.
468
472
469 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
473 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
470
474
471 * IPython/iplib.py (InteractiveShell.__init__): add .meta
475 * IPython/iplib.py (InteractiveShell.__init__): add .meta
472 namespace for users and extension writers to hold data in. This
476 namespace for users and extension writers to hold data in. This
473 follows the discussion in
477 follows the discussion in
474 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
478 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
475
479
476 * IPython/completer.py (IPCompleter.complete): small patch to help
480 * IPython/completer.py (IPCompleter.complete): small patch to help
477 tab-completion under Emacs, after a suggestion by John Barnard
481 tab-completion under Emacs, after a suggestion by John Barnard
478 <barnarj-AT-ccf.org>.
482 <barnarj-AT-ccf.org>.
479
483
480 * IPython/Magic.py (Magic.extract_input_slices): added support for
484 * IPython/Magic.py (Magic.extract_input_slices): added support for
481 the slice notation in magics to use N-M to represent numbers N...M
485 the slice notation in magics to use N-M to represent numbers N...M
482 (closed endpoints). This is used by %macro and %save.
486 (closed endpoints). This is used by %macro and %save.
483
487
484 * IPython/completer.py (Completer.attr_matches): for modules which
488 * IPython/completer.py (Completer.attr_matches): for modules which
485 define __all__, complete only on those. After a patch by Jeffrey
489 define __all__, complete only on those. After a patch by Jeffrey
486 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
490 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
487 speed up this routine.
491 speed up this routine.
488
492
489 * IPython/Logger.py (Logger.log): fix a history handling bug. I
493 * IPython/Logger.py (Logger.log): fix a history handling bug. I
490 don't know if this is the end of it, but the behavior now is
494 don't know if this is the end of it, but the behavior now is
491 certainly much more correct. Note that coupled with macros,
495 certainly much more correct. Note that coupled with macros,
492 slightly surprising (at first) behavior may occur: a macro will in
496 slightly surprising (at first) behavior may occur: a macro will in
493 general expand to multiple lines of input, so upon exiting, the
497 general expand to multiple lines of input, so upon exiting, the
494 in/out counters will both be bumped by the corresponding amount
498 in/out counters will both be bumped by the corresponding amount
495 (as if the macro's contents had been typed interactively). Typing
499 (as if the macro's contents had been typed interactively). Typing
496 %hist will reveal the intermediate (silently processed) lines.
500 %hist will reveal the intermediate (silently processed) lines.
497
501
498 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
502 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
499 pickle to fail (%run was overwriting __main__ and not restoring
503 pickle to fail (%run was overwriting __main__ and not restoring
500 it, but pickle relies on __main__ to operate).
504 it, but pickle relies on __main__ to operate).
501
505
502 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
506 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
503 using properties, but forgot to make the main InteractiveShell
507 using properties, but forgot to make the main InteractiveShell
504 class a new-style class. Properties fail silently, and
508 class a new-style class. Properties fail silently, and
505 misteriously, with old-style class (getters work, but
509 misteriously, with old-style class (getters work, but
506 setters don't do anything).
510 setters don't do anything).
507
511
508 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
512 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
509
513
510 * IPython/Magic.py (magic_history): fix history reporting bug (I
514 * IPython/Magic.py (magic_history): fix history reporting bug (I
511 know some nasties are still there, I just can't seem to find a
515 know some nasties are still there, I just can't seem to find a
512 reproducible test case to track them down; the input history is
516 reproducible test case to track them down; the input history is
513 falling out of sync...)
517 falling out of sync...)
514
518
515 * IPython/iplib.py (handle_shell_escape): fix bug where both
519 * IPython/iplib.py (handle_shell_escape): fix bug where both
516 aliases and system accesses where broken for indented code (such
520 aliases and system accesses where broken for indented code (such
517 as loops).
521 as loops).
518
522
519 * IPython/genutils.py (shell): fix small but critical bug for
523 * IPython/genutils.py (shell): fix small but critical bug for
520 win32 system access.
524 win32 system access.
521
525
522 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
526 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
523
527
524 * IPython/iplib.py (showtraceback): remove use of the
528 * IPython/iplib.py (showtraceback): remove use of the
525 sys.last_{type/value/traceback} structures, which are non
529 sys.last_{type/value/traceback} structures, which are non
526 thread-safe.
530 thread-safe.
527 (_prefilter): change control flow to ensure that we NEVER
531 (_prefilter): change control flow to ensure that we NEVER
528 introspect objects when autocall is off. This will guarantee that
532 introspect objects when autocall is off. This will guarantee that
529 having an input line of the form 'x.y', where access to attribute
533 having an input line of the form 'x.y', where access to attribute
530 'y' has side effects, doesn't trigger the side effect TWICE. It
534 'y' has side effects, doesn't trigger the side effect TWICE. It
531 is important to note that, with autocall on, these side effects
535 is important to note that, with autocall on, these side effects
532 can still happen.
536 can still happen.
533 (ipsystem): new builtin, to complete the ip{magic/alias/system}
537 (ipsystem): new builtin, to complete the ip{magic/alias/system}
534 trio. IPython offers these three kinds of special calls which are
538 trio. IPython offers these three kinds of special calls which are
535 not python code, and it's a good thing to have their call method
539 not python code, and it's a good thing to have their call method
536 be accessible as pure python functions (not just special syntax at
540 be accessible as pure python functions (not just special syntax at
537 the command line). It gives us a better internal implementation
541 the command line). It gives us a better internal implementation
538 structure, as well as exposing these for user scripting more
542 structure, as well as exposing these for user scripting more
539 cleanly.
543 cleanly.
540
544
541 * IPython/macro.py (Macro.__init__): moved macros to a standalone
545 * IPython/macro.py (Macro.__init__): moved macros to a standalone
542 file. Now that they'll be more likely to be used with the
546 file. Now that they'll be more likely to be used with the
543 persistance system (%store), I want to make sure their module path
547 persistance system (%store), I want to make sure their module path
544 doesn't change in the future, so that we don't break things for
548 doesn't change in the future, so that we don't break things for
545 users' persisted data.
549 users' persisted data.
546
550
547 * IPython/iplib.py (autoindent_update): move indentation
551 * IPython/iplib.py (autoindent_update): move indentation
548 management into the _text_ processing loop, not the keyboard
552 management into the _text_ processing loop, not the keyboard
549 interactive one. This is necessary to correctly process non-typed
553 interactive one. This is necessary to correctly process non-typed
550 multiline input (such as macros).
554 multiline input (such as macros).
551
555
552 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
556 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
553 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
557 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
554 which was producing problems in the resulting manual.
558 which was producing problems in the resulting manual.
555 (magic_whos): improve reporting of instances (show their class,
559 (magic_whos): improve reporting of instances (show their class,
556 instead of simply printing 'instance' which isn't terribly
560 instead of simply printing 'instance' which isn't terribly
557 informative).
561 informative).
558
562
559 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
563 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
560 (minor mods) to support network shares under win32.
564 (minor mods) to support network shares under win32.
561
565
562 * IPython/winconsole.py (get_console_size): add new winconsole
566 * IPython/winconsole.py (get_console_size): add new winconsole
563 module and fixes to page_dumb() to improve its behavior under
567 module and fixes to page_dumb() to improve its behavior under
564 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
568 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
565
569
566 * IPython/Magic.py (Macro): simplified Macro class to just
570 * IPython/Magic.py (Macro): simplified Macro class to just
567 subclass list. We've had only 2.2 compatibility for a very long
571 subclass list. We've had only 2.2 compatibility for a very long
568 time, yet I was still avoiding subclassing the builtin types. No
572 time, yet I was still avoiding subclassing the builtin types. No
569 more (I'm also starting to use properties, though I won't shift to
573 more (I'm also starting to use properties, though I won't shift to
570 2.3-specific features quite yet).
574 2.3-specific features quite yet).
571 (magic_store): added Ville's patch for lightweight variable
575 (magic_store): added Ville's patch for lightweight variable
572 persistence, after a request on the user list by Matt Wilkie
576 persistence, after a request on the user list by Matt Wilkie
573 <maphew-AT-gmail.com>. The new %store magic's docstring has full
577 <maphew-AT-gmail.com>. The new %store magic's docstring has full
574 details.
578 details.
575
579
576 * IPython/iplib.py (InteractiveShell.post_config_initialization):
580 * IPython/iplib.py (InteractiveShell.post_config_initialization):
577 changed the default logfile name from 'ipython.log' to
581 changed the default logfile name from 'ipython.log' to
578 'ipython_log.py'. These logs are real python files, and now that
582 'ipython_log.py'. These logs are real python files, and now that
579 we have much better multiline support, people are more likely to
583 we have much better multiline support, people are more likely to
580 want to use them as such. Might as well name them correctly.
584 want to use them as such. Might as well name them correctly.
581
585
582 * IPython/Magic.py: substantial cleanup. While we can't stop
586 * IPython/Magic.py: substantial cleanup. While we can't stop
583 using magics as mixins, due to the existing customizations 'out
587 using magics as mixins, due to the existing customizations 'out
584 there' which rely on the mixin naming conventions, at least I
588 there' which rely on the mixin naming conventions, at least I
585 cleaned out all cross-class name usage. So once we are OK with
589 cleaned out all cross-class name usage. So once we are OK with
586 breaking compatibility, the two systems can be separated.
590 breaking compatibility, the two systems can be separated.
587
591
588 * IPython/Logger.py: major cleanup. This one is NOT a mixin
592 * IPython/Logger.py: major cleanup. This one is NOT a mixin
589 anymore, and the class is a fair bit less hideous as well. New
593 anymore, and the class is a fair bit less hideous as well. New
590 features were also introduced: timestamping of input, and logging
594 features were also introduced: timestamping of input, and logging
591 of output results. These are user-visible with the -t and -o
595 of output results. These are user-visible with the -t and -o
592 options to %logstart. Closes
596 options to %logstart. Closes
593 http://www.scipy.net/roundup/ipython/issue11 and a request by
597 http://www.scipy.net/roundup/ipython/issue11 and a request by
594 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
598 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
595
599
596 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
600 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
597
601
598 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
602 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
599 better hadnle backslashes in paths. See the thread 'More Windows
603 better hadnle backslashes in paths. See the thread 'More Windows
600 questions part 2 - \/ characters revisited' on the iypthon user
604 questions part 2 - \/ characters revisited' on the iypthon user
601 list:
605 list:
602 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
606 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
603
607
604 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
608 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
605
609
606 (InteractiveShell.__init__): change threaded shells to not use the
610 (InteractiveShell.__init__): change threaded shells to not use the
607 ipython crash handler. This was causing more problems than not,
611 ipython crash handler. This was causing more problems than not,
608 as exceptions in the main thread (GUI code, typically) would
612 as exceptions in the main thread (GUI code, typically) would
609 always show up as a 'crash', when they really weren't.
613 always show up as a 'crash', when they really weren't.
610
614
611 The colors and exception mode commands (%colors/%xmode) have been
615 The colors and exception mode commands (%colors/%xmode) have been
612 synchronized to also take this into account, so users can get
616 synchronized to also take this into account, so users can get
613 verbose exceptions for their threaded code as well. I also added
617 verbose exceptions for their threaded code as well. I also added
614 support for activating pdb inside this exception handler as well,
618 support for activating pdb inside this exception handler as well,
615 so now GUI authors can use IPython's enhanced pdb at runtime.
619 so now GUI authors can use IPython's enhanced pdb at runtime.
616
620
617 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
621 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
618 true by default, and add it to the shipped ipythonrc file. Since
622 true by default, and add it to the shipped ipythonrc file. Since
619 this asks the user before proceeding, I think it's OK to make it
623 this asks the user before proceeding, I think it's OK to make it
620 true by default.
624 true by default.
621
625
622 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
626 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
623 of the previous special-casing of input in the eval loop. I think
627 of the previous special-casing of input in the eval loop. I think
624 this is cleaner, as they really are commands and shouldn't have
628 this is cleaner, as they really are commands and shouldn't have
625 a special role in the middle of the core code.
629 a special role in the middle of the core code.
626
630
627 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
631 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
628
632
629 * IPython/iplib.py (edit_syntax_error): added support for
633 * IPython/iplib.py (edit_syntax_error): added support for
630 automatically reopening the editor if the file had a syntax error
634 automatically reopening the editor if the file had a syntax error
631 in it. Thanks to scottt who provided the patch at:
635 in it. Thanks to scottt who provided the patch at:
632 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
636 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
633 version committed).
637 version committed).
634
638
635 * IPython/iplib.py (handle_normal): add suport for multi-line
639 * IPython/iplib.py (handle_normal): add suport for multi-line
636 input with emtpy lines. This fixes
640 input with emtpy lines. This fixes
637 http://www.scipy.net/roundup/ipython/issue43 and a similar
641 http://www.scipy.net/roundup/ipython/issue43 and a similar
638 discussion on the user list.
642 discussion on the user list.
639
643
640 WARNING: a behavior change is necessarily introduced to support
644 WARNING: a behavior change is necessarily introduced to support
641 blank lines: now a single blank line with whitespace does NOT
645 blank lines: now a single blank line with whitespace does NOT
642 break the input loop, which means that when autoindent is on, by
646 break the input loop, which means that when autoindent is on, by
643 default hitting return on the next (indented) line does NOT exit.
647 default hitting return on the next (indented) line does NOT exit.
644
648
645 Instead, to exit a multiline input you can either have:
649 Instead, to exit a multiline input you can either have:
646
650
647 - TWO whitespace lines (just hit return again), or
651 - TWO whitespace lines (just hit return again), or
648 - a single whitespace line of a different length than provided
652 - a single whitespace line of a different length than provided
649 by the autoindent (add or remove a space).
653 by the autoindent (add or remove a space).
650
654
651 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
655 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
652 module to better organize all readline-related functionality.
656 module to better organize all readline-related functionality.
653 I've deleted FlexCompleter and put all completion clases here.
657 I've deleted FlexCompleter and put all completion clases here.
654
658
655 * IPython/iplib.py (raw_input): improve indentation management.
659 * IPython/iplib.py (raw_input): improve indentation management.
656 It is now possible to paste indented code with autoindent on, and
660 It is now possible to paste indented code with autoindent on, and
657 the code is interpreted correctly (though it still looks bad on
661 the code is interpreted correctly (though it still looks bad on
658 screen, due to the line-oriented nature of ipython).
662 screen, due to the line-oriented nature of ipython).
659 (MagicCompleter.complete): change behavior so that a TAB key on an
663 (MagicCompleter.complete): change behavior so that a TAB key on an
660 otherwise empty line actually inserts a tab, instead of completing
664 otherwise empty line actually inserts a tab, instead of completing
661 on the entire global namespace. This makes it easier to use the
665 on the entire global namespace. This makes it easier to use the
662 TAB key for indentation. After a request by Hans Meine
666 TAB key for indentation. After a request by Hans Meine
663 <hans_meine-AT-gmx.net>
667 <hans_meine-AT-gmx.net>
664 (_prefilter): add support so that typing plain 'exit' or 'quit'
668 (_prefilter): add support so that typing plain 'exit' or 'quit'
665 does a sensible thing. Originally I tried to deviate as little as
669 does a sensible thing. Originally I tried to deviate as little as
666 possible from the default python behavior, but even that one may
670 possible from the default python behavior, but even that one may
667 change in this direction (thread on python-dev to that effect).
671 change in this direction (thread on python-dev to that effect).
668 Regardless, ipython should do the right thing even if CPython's
672 Regardless, ipython should do the right thing even if CPython's
669 '>>>' prompt doesn't.
673 '>>>' prompt doesn't.
670 (InteractiveShell): removed subclassing code.InteractiveConsole
674 (InteractiveShell): removed subclassing code.InteractiveConsole
671 class. By now we'd overridden just about all of its methods: I've
675 class. By now we'd overridden just about all of its methods: I've
672 copied the remaining two over, and now ipython is a standalone
676 copied the remaining two over, and now ipython is a standalone
673 class. This will provide a clearer picture for the chainsaw
677 class. This will provide a clearer picture for the chainsaw
674 branch refactoring.
678 branch refactoring.
675
679
676 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
680 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
677
681
678 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
682 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
679 failures for objects which break when dir() is called on them.
683 failures for objects which break when dir() is called on them.
680
684
681 * IPython/FlexCompleter.py (Completer.__init__): Added support for
685 * IPython/FlexCompleter.py (Completer.__init__): Added support for
682 distinct local and global namespaces in the completer API. This
686 distinct local and global namespaces in the completer API. This
683 change allows us top properly handle completion with distinct
687 change allows us top properly handle completion with distinct
684 scopes, including in embedded instances (this had never really
688 scopes, including in embedded instances (this had never really
685 worked correctly).
689 worked correctly).
686
690
687 Note: this introduces a change in the constructor for
691 Note: this introduces a change in the constructor for
688 MagicCompleter, as a new global_namespace parameter is now the
692 MagicCompleter, as a new global_namespace parameter is now the
689 second argument (the others were bumped one position).
693 second argument (the others were bumped one position).
690
694
691 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
695 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
692
696
693 * IPython/iplib.py (embed_mainloop): fix tab-completion in
697 * IPython/iplib.py (embed_mainloop): fix tab-completion in
694 embedded instances (which can be done now thanks to Vivian's
698 embedded instances (which can be done now thanks to Vivian's
695 frame-handling fixes for pdb).
699 frame-handling fixes for pdb).
696 (InteractiveShell.__init__): Fix namespace handling problem in
700 (InteractiveShell.__init__): Fix namespace handling problem in
697 embedded instances. We were overwriting __main__ unconditionally,
701 embedded instances. We were overwriting __main__ unconditionally,
698 and this should only be done for 'full' (non-embedded) IPython;
702 and this should only be done for 'full' (non-embedded) IPython;
699 embedded instances must respect the caller's __main__. Thanks to
703 embedded instances must respect the caller's __main__. Thanks to
700 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
704 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
701
705
702 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
706 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
703
707
704 * setup.py: added download_url to setup(). This registers the
708 * setup.py: added download_url to setup(). This registers the
705 download address at PyPI, which is not only useful to humans
709 download address at PyPI, which is not only useful to humans
706 browsing the site, but is also picked up by setuptools (the Eggs
710 browsing the site, but is also picked up by setuptools (the Eggs
707 machinery). Thanks to Ville and R. Kern for the info/discussion
711 machinery). Thanks to Ville and R. Kern for the info/discussion
708 on this.
712 on this.
709
713
710 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
714 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
711
715
712 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
716 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
713 This brings a lot of nice functionality to the pdb mode, which now
717 This brings a lot of nice functionality to the pdb mode, which now
714 has tab-completion, syntax highlighting, and better stack handling
718 has tab-completion, syntax highlighting, and better stack handling
715 than before. Many thanks to Vivian De Smedt
719 than before. Many thanks to Vivian De Smedt
716 <vivian-AT-vdesmedt.com> for the original patches.
720 <vivian-AT-vdesmedt.com> for the original patches.
717
721
718 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
722 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
719
723
720 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
724 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
721 sequence to consistently accept the banner argument. The
725 sequence to consistently accept the banner argument. The
722 inconsistency was tripping SAGE, thanks to Gary Zablackis
726 inconsistency was tripping SAGE, thanks to Gary Zablackis
723 <gzabl-AT-yahoo.com> for the report.
727 <gzabl-AT-yahoo.com> for the report.
724
728
725 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
729 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
726
730
727 * IPython/iplib.py (InteractiveShell.post_config_initialization):
731 * IPython/iplib.py (InteractiveShell.post_config_initialization):
728 Fix bug where a naked 'alias' call in the ipythonrc file would
732 Fix bug where a naked 'alias' call in the ipythonrc file would
729 cause a crash. Bug reported by Jorgen Stenarson.
733 cause a crash. Bug reported by Jorgen Stenarson.
730
734
731 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
735 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
732
736
733 * IPython/ipmaker.py (make_IPython): cleanups which should improve
737 * IPython/ipmaker.py (make_IPython): cleanups which should improve
734 startup time.
738 startup time.
735
739
736 * IPython/iplib.py (runcode): my globals 'fix' for embedded
740 * IPython/iplib.py (runcode): my globals 'fix' for embedded
737 instances had introduced a bug with globals in normal code. Now
741 instances had introduced a bug with globals in normal code. Now
738 it's working in all cases.
742 it's working in all cases.
739
743
740 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
744 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
741 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
745 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
742 has been introduced to set the default case sensitivity of the
746 has been introduced to set the default case sensitivity of the
743 searches. Users can still select either mode at runtime on a
747 searches. Users can still select either mode at runtime on a
744 per-search basis.
748 per-search basis.
745
749
746 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
750 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
747
751
748 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
752 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
749 attributes in wildcard searches for subclasses. Modified version
753 attributes in wildcard searches for subclasses. Modified version
750 of a patch by Jorgen.
754 of a patch by Jorgen.
751
755
752 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
756 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
753
757
754 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
758 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
755 embedded instances. I added a user_global_ns attribute to the
759 embedded instances. I added a user_global_ns attribute to the
756 InteractiveShell class to handle this.
760 InteractiveShell class to handle this.
757
761
758 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
762 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
759
763
760 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
764 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
761 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
765 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
762 (reported under win32, but may happen also in other platforms).
766 (reported under win32, but may happen also in other platforms).
763 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
767 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
764
768
765 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
769 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
766
770
767 * IPython/Magic.py (magic_psearch): new support for wildcard
771 * IPython/Magic.py (magic_psearch): new support for wildcard
768 patterns. Now, typing ?a*b will list all names which begin with a
772 patterns. Now, typing ?a*b will list all names which begin with a
769 and end in b, for example. The %psearch magic has full
773 and end in b, for example. The %psearch magic has full
770 docstrings. Many thanks to JΓΆrgen Stenarson
774 docstrings. Many thanks to JΓΆrgen Stenarson
771 <jorgen.stenarson-AT-bostream.nu>, author of the patches
775 <jorgen.stenarson-AT-bostream.nu>, author of the patches
772 implementing this functionality.
776 implementing this functionality.
773
777
774 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
778 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
775
779
776 * Manual: fixed long-standing annoyance of double-dashes (as in
780 * Manual: fixed long-standing annoyance of double-dashes (as in
777 --prefix=~, for example) being stripped in the HTML version. This
781 --prefix=~, for example) being stripped in the HTML version. This
778 is a latex2html bug, but a workaround was provided. Many thanks
782 is a latex2html bug, but a workaround was provided. Many thanks
779 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
783 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
780 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
784 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
781 rolling. This seemingly small issue had tripped a number of users
785 rolling. This seemingly small issue had tripped a number of users
782 when first installing, so I'm glad to see it gone.
786 when first installing, so I'm glad to see it gone.
783
787
784 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
788 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
785
789
786 * IPython/Extensions/numeric_formats.py: fix missing import,
790 * IPython/Extensions/numeric_formats.py: fix missing import,
787 reported by Stephen Walton.
791 reported by Stephen Walton.
788
792
789 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
793 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
790
794
791 * IPython/demo.py: finish demo module, fully documented now.
795 * IPython/demo.py: finish demo module, fully documented now.
792
796
793 * IPython/genutils.py (file_read): simple little utility to read a
797 * IPython/genutils.py (file_read): simple little utility to read a
794 file and ensure it's closed afterwards.
798 file and ensure it's closed afterwards.
795
799
796 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
800 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
797
801
798 * IPython/demo.py (Demo.__init__): added support for individually
802 * IPython/demo.py (Demo.__init__): added support for individually
799 tagging blocks for automatic execution.
803 tagging blocks for automatic execution.
800
804
801 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
805 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
802 syntax-highlighted python sources, requested by John.
806 syntax-highlighted python sources, requested by John.
803
807
804 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
808 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
805
809
806 * IPython/demo.py (Demo.again): fix bug where again() blocks after
810 * IPython/demo.py (Demo.again): fix bug where again() blocks after
807 finishing.
811 finishing.
808
812
809 * IPython/genutils.py (shlex_split): moved from Magic to here,
813 * IPython/genutils.py (shlex_split): moved from Magic to here,
810 where all 2.2 compatibility stuff lives. I needed it for demo.py.
814 where all 2.2 compatibility stuff lives. I needed it for demo.py.
811
815
812 * IPython/demo.py (Demo.__init__): added support for silent
816 * IPython/demo.py (Demo.__init__): added support for silent
813 blocks, improved marks as regexps, docstrings written.
817 blocks, improved marks as regexps, docstrings written.
814 (Demo.__init__): better docstring, added support for sys.argv.
818 (Demo.__init__): better docstring, added support for sys.argv.
815
819
816 * IPython/genutils.py (marquee): little utility used by the demo
820 * IPython/genutils.py (marquee): little utility used by the demo
817 code, handy in general.
821 code, handy in general.
818
822
819 * IPython/demo.py (Demo.__init__): new class for interactive
823 * IPython/demo.py (Demo.__init__): new class for interactive
820 demos. Not documented yet, I just wrote it in a hurry for
824 demos. Not documented yet, I just wrote it in a hurry for
821 scipy'05. Will docstring later.
825 scipy'05. Will docstring later.
822
826
823 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
827 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
824
828
825 * IPython/Shell.py (sigint_handler): Drastic simplification which
829 * IPython/Shell.py (sigint_handler): Drastic simplification which
826 also seems to make Ctrl-C work correctly across threads! This is
830 also seems to make Ctrl-C work correctly across threads! This is
827 so simple, that I can't beleive I'd missed it before. Needs more
831 so simple, that I can't beleive I'd missed it before. Needs more
828 testing, though.
832 testing, though.
829 (KBINT): Never mind, revert changes. I'm sure I'd tried something
833 (KBINT): Never mind, revert changes. I'm sure I'd tried something
830 like this before...
834 like this before...
831
835
832 * IPython/genutils.py (get_home_dir): add protection against
836 * IPython/genutils.py (get_home_dir): add protection against
833 non-dirs in win32 registry.
837 non-dirs in win32 registry.
834
838
835 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
839 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
836 bug where dict was mutated while iterating (pysh crash).
840 bug where dict was mutated while iterating (pysh crash).
837
841
838 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
842 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
839
843
840 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
844 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
841 spurious newlines added by this routine. After a report by
845 spurious newlines added by this routine. After a report by
842 F. Mantegazza.
846 F. Mantegazza.
843
847
844 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
848 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
845
849
846 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
850 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
847 calls. These were a leftover from the GTK 1.x days, and can cause
851 calls. These were a leftover from the GTK 1.x days, and can cause
848 problems in certain cases (after a report by John Hunter).
852 problems in certain cases (after a report by John Hunter).
849
853
850 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
854 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
851 os.getcwd() fails at init time. Thanks to patch from David Remahl
855 os.getcwd() fails at init time. Thanks to patch from David Remahl
852 <chmod007-AT-mac.com>.
856 <chmod007-AT-mac.com>.
853 (InteractiveShell.__init__): prevent certain special magics from
857 (InteractiveShell.__init__): prevent certain special magics from
854 being shadowed by aliases. Closes
858 being shadowed by aliases. Closes
855 http://www.scipy.net/roundup/ipython/issue41.
859 http://www.scipy.net/roundup/ipython/issue41.
856
860
857 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
861 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
858
862
859 * IPython/iplib.py (InteractiveShell.complete): Added new
863 * IPython/iplib.py (InteractiveShell.complete): Added new
860 top-level completion method to expose the completion mechanism
864 top-level completion method to expose the completion mechanism
861 beyond readline-based environments.
865 beyond readline-based environments.
862
866
863 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
867 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
864
868
865 * tools/ipsvnc (svnversion): fix svnversion capture.
869 * tools/ipsvnc (svnversion): fix svnversion capture.
866
870
867 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
871 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
868 attribute to self, which was missing. Before, it was set by a
872 attribute to self, which was missing. Before, it was set by a
869 routine which in certain cases wasn't being called, so the
873 routine which in certain cases wasn't being called, so the
870 instance could end up missing the attribute. This caused a crash.
874 instance could end up missing the attribute. This caused a crash.
871 Closes http://www.scipy.net/roundup/ipython/issue40.
875 Closes http://www.scipy.net/roundup/ipython/issue40.
872
876
873 2005-08-16 Fernando Perez <fperez@colorado.edu>
877 2005-08-16 Fernando Perez <fperez@colorado.edu>
874
878
875 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
879 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
876 contains non-string attribute. Closes
880 contains non-string attribute. Closes
877 http://www.scipy.net/roundup/ipython/issue38.
881 http://www.scipy.net/roundup/ipython/issue38.
878
882
879 2005-08-14 Fernando Perez <fperez@colorado.edu>
883 2005-08-14 Fernando Perez <fperez@colorado.edu>
880
884
881 * tools/ipsvnc: Minor improvements, to add changeset info.
885 * tools/ipsvnc: Minor improvements, to add changeset info.
882
886
883 2005-08-12 Fernando Perez <fperez@colorado.edu>
887 2005-08-12 Fernando Perez <fperez@colorado.edu>
884
888
885 * IPython/iplib.py (runsource): remove self.code_to_run_src
889 * IPython/iplib.py (runsource): remove self.code_to_run_src
886 attribute. I realized this is nothing more than
890 attribute. I realized this is nothing more than
887 '\n'.join(self.buffer), and having the same data in two different
891 '\n'.join(self.buffer), and having the same data in two different
888 places is just asking for synchronization bugs. This may impact
892 places is just asking for synchronization bugs. This may impact
889 people who have custom exception handlers, so I need to warn
893 people who have custom exception handlers, so I need to warn
890 ipython-dev about it (F. Mantegazza may use them).
894 ipython-dev about it (F. Mantegazza may use them).
891
895
892 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
896 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
893
897
894 * IPython/genutils.py: fix 2.2 compatibility (generators)
898 * IPython/genutils.py: fix 2.2 compatibility (generators)
895
899
896 2005-07-18 Fernando Perez <fperez@colorado.edu>
900 2005-07-18 Fernando Perez <fperez@colorado.edu>
897
901
898 * IPython/genutils.py (get_home_dir): fix to help users with
902 * IPython/genutils.py (get_home_dir): fix to help users with
899 invalid $HOME under win32.
903 invalid $HOME under win32.
900
904
901 2005-07-17 Fernando Perez <fperez@colorado.edu>
905 2005-07-17 Fernando Perez <fperez@colorado.edu>
902
906
903 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
907 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
904 some old hacks and clean up a bit other routines; code should be
908 some old hacks and clean up a bit other routines; code should be
905 simpler and a bit faster.
909 simpler and a bit faster.
906
910
907 * IPython/iplib.py (interact): removed some last-resort attempts
911 * IPython/iplib.py (interact): removed some last-resort attempts
908 to survive broken stdout/stderr. That code was only making it
912 to survive broken stdout/stderr. That code was only making it
909 harder to abstract out the i/o (necessary for gui integration),
913 harder to abstract out the i/o (necessary for gui integration),
910 and the crashes it could prevent were extremely rare in practice
914 and the crashes it could prevent were extremely rare in practice
911 (besides being fully user-induced in a pretty violent manner).
915 (besides being fully user-induced in a pretty violent manner).
912
916
913 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
917 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
914 Nothing major yet, but the code is simpler to read; this should
918 Nothing major yet, but the code is simpler to read; this should
915 make it easier to do more serious modifications in the future.
919 make it easier to do more serious modifications in the future.
916
920
917 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
921 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
918 which broke in .15 (thanks to a report by Ville).
922 which broke in .15 (thanks to a report by Ville).
919
923
920 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
924 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
921 be quite correct, I know next to nothing about unicode). This
925 be quite correct, I know next to nothing about unicode). This
922 will allow unicode strings to be used in prompts, amongst other
926 will allow unicode strings to be used in prompts, amongst other
923 cases. It also will prevent ipython from crashing when unicode
927 cases. It also will prevent ipython from crashing when unicode
924 shows up unexpectedly in many places. If ascii encoding fails, we
928 shows up unexpectedly in many places. If ascii encoding fails, we
925 assume utf_8. Currently the encoding is not a user-visible
929 assume utf_8. Currently the encoding is not a user-visible
926 setting, though it could be made so if there is demand for it.
930 setting, though it could be made so if there is demand for it.
927
931
928 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
932 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
929
933
930 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
934 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
931
935
932 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
936 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
933
937
934 * IPython/genutils.py: Add 2.2 compatibility here, so all other
938 * IPython/genutils.py: Add 2.2 compatibility here, so all other
935 code can work transparently for 2.2/2.3.
939 code can work transparently for 2.2/2.3.
936
940
937 2005-07-16 Fernando Perez <fperez@colorado.edu>
941 2005-07-16 Fernando Perez <fperez@colorado.edu>
938
942
939 * IPython/ultraTB.py (ExceptionColors): Make a global variable
943 * IPython/ultraTB.py (ExceptionColors): Make a global variable
940 out of the color scheme table used for coloring exception
944 out of the color scheme table used for coloring exception
941 tracebacks. This allows user code to add new schemes at runtime.
945 tracebacks. This allows user code to add new schemes at runtime.
942 This is a minimally modified version of the patch at
946 This is a minimally modified version of the patch at
943 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
947 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
944 for the contribution.
948 for the contribution.
945
949
946 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
950 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
947 slightly modified version of the patch in
951 slightly modified version of the patch in
948 http://www.scipy.net/roundup/ipython/issue34, which also allows me
952 http://www.scipy.net/roundup/ipython/issue34, which also allows me
949 to remove the previous try/except solution (which was costlier).
953 to remove the previous try/except solution (which was costlier).
950 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
954 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
951
955
952 2005-06-08 Fernando Perez <fperez@colorado.edu>
956 2005-06-08 Fernando Perez <fperez@colorado.edu>
953
957
954 * IPython/iplib.py (write/write_err): Add methods to abstract all
958 * IPython/iplib.py (write/write_err): Add methods to abstract all
955 I/O a bit more.
959 I/O a bit more.
956
960
957 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
961 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
958 warning, reported by Aric Hagberg, fix by JD Hunter.
962 warning, reported by Aric Hagberg, fix by JD Hunter.
959
963
960 2005-06-02 *** Released version 0.6.15
964 2005-06-02 *** Released version 0.6.15
961
965
962 2005-06-01 Fernando Perez <fperez@colorado.edu>
966 2005-06-01 Fernando Perez <fperez@colorado.edu>
963
967
964 * IPython/iplib.py (MagicCompleter.file_matches): Fix
968 * IPython/iplib.py (MagicCompleter.file_matches): Fix
965 tab-completion of filenames within open-quoted strings. Note that
969 tab-completion of filenames within open-quoted strings. Note that
966 this requires that in ~/.ipython/ipythonrc, users change the
970 this requires that in ~/.ipython/ipythonrc, users change the
967 readline delimiters configuration to read:
971 readline delimiters configuration to read:
968
972
969 readline_remove_delims -/~
973 readline_remove_delims -/~
970
974
971
975
972 2005-05-31 *** Released version 0.6.14
976 2005-05-31 *** Released version 0.6.14
973
977
974 2005-05-29 Fernando Perez <fperez@colorado.edu>
978 2005-05-29 Fernando Perez <fperez@colorado.edu>
975
979
976 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
980 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
977 with files not on the filesystem. Reported by Eliyahu Sandler
981 with files not on the filesystem. Reported by Eliyahu Sandler
978 <eli@gondolin.net>
982 <eli@gondolin.net>
979
983
980 2005-05-22 Fernando Perez <fperez@colorado.edu>
984 2005-05-22 Fernando Perez <fperez@colorado.edu>
981
985
982 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
986 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
983 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
987 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
984
988
985 2005-05-19 Fernando Perez <fperez@colorado.edu>
989 2005-05-19 Fernando Perez <fperez@colorado.edu>
986
990
987 * IPython/iplib.py (safe_execfile): close a file which could be
991 * IPython/iplib.py (safe_execfile): close a file which could be
988 left open (causing problems in win32, which locks open files).
992 left open (causing problems in win32, which locks open files).
989 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
993 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
990
994
991 2005-05-18 Fernando Perez <fperez@colorado.edu>
995 2005-05-18 Fernando Perez <fperez@colorado.edu>
992
996
993 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
997 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
994 keyword arguments correctly to safe_execfile().
998 keyword arguments correctly to safe_execfile().
995
999
996 2005-05-13 Fernando Perez <fperez@colorado.edu>
1000 2005-05-13 Fernando Perez <fperez@colorado.edu>
997
1001
998 * ipython.1: Added info about Qt to manpage, and threads warning
1002 * ipython.1: Added info about Qt to manpage, and threads warning
999 to usage page (invoked with --help).
1003 to usage page (invoked with --help).
1000
1004
1001 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1005 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1002 new matcher (it goes at the end of the priority list) to do
1006 new matcher (it goes at the end of the priority list) to do
1003 tab-completion on named function arguments. Submitted by George
1007 tab-completion on named function arguments. Submitted by George
1004 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1008 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1005 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1009 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1006 for more details.
1010 for more details.
1007
1011
1008 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1012 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1009 SystemExit exceptions in the script being run. Thanks to a report
1013 SystemExit exceptions in the script being run. Thanks to a report
1010 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1014 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1011 producing very annoying behavior when running unit tests.
1015 producing very annoying behavior when running unit tests.
1012
1016
1013 2005-05-12 Fernando Perez <fperez@colorado.edu>
1017 2005-05-12 Fernando Perez <fperez@colorado.edu>
1014
1018
1015 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1019 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1016 which I'd broken (again) due to a changed regexp. In the process,
1020 which I'd broken (again) due to a changed regexp. In the process,
1017 added ';' as an escape to auto-quote the whole line without
1021 added ';' as an escape to auto-quote the whole line without
1018 splitting its arguments. Thanks to a report by Jerry McRae
1022 splitting its arguments. Thanks to a report by Jerry McRae
1019 <qrs0xyc02-AT-sneakemail.com>.
1023 <qrs0xyc02-AT-sneakemail.com>.
1020
1024
1021 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1025 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1022 possible crashes caused by a TokenError. Reported by Ed Schofield
1026 possible crashes caused by a TokenError. Reported by Ed Schofield
1023 <schofield-AT-ftw.at>.
1027 <schofield-AT-ftw.at>.
1024
1028
1025 2005-05-06 Fernando Perez <fperez@colorado.edu>
1029 2005-05-06 Fernando Perez <fperez@colorado.edu>
1026
1030
1027 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1031 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1028
1032
1029 2005-04-29 Fernando Perez <fperez@colorado.edu>
1033 2005-04-29 Fernando Perez <fperez@colorado.edu>
1030
1034
1031 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1035 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1032 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1036 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1033 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1037 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1034 which provides support for Qt interactive usage (similar to the
1038 which provides support for Qt interactive usage (similar to the
1035 existing one for WX and GTK). This had been often requested.
1039 existing one for WX and GTK). This had been often requested.
1036
1040
1037 2005-04-14 *** Released version 0.6.13
1041 2005-04-14 *** Released version 0.6.13
1038
1042
1039 2005-04-08 Fernando Perez <fperez@colorado.edu>
1043 2005-04-08 Fernando Perez <fperez@colorado.edu>
1040
1044
1041 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1045 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1042 from _ofind, which gets called on almost every input line. Now,
1046 from _ofind, which gets called on almost every input line. Now,
1043 we only try to get docstrings if they are actually going to be
1047 we only try to get docstrings if they are actually going to be
1044 used (the overhead of fetching unnecessary docstrings can be
1048 used (the overhead of fetching unnecessary docstrings can be
1045 noticeable for certain objects, such as Pyro proxies).
1049 noticeable for certain objects, such as Pyro proxies).
1046
1050
1047 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1051 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1048 for completers. For some reason I had been passing them the state
1052 for completers. For some reason I had been passing them the state
1049 variable, which completers never actually need, and was in
1053 variable, which completers never actually need, and was in
1050 conflict with the rlcompleter API. Custom completers ONLY need to
1054 conflict with the rlcompleter API. Custom completers ONLY need to
1051 take the text parameter.
1055 take the text parameter.
1052
1056
1053 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1057 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1054 work correctly in pysh. I've also moved all the logic which used
1058 work correctly in pysh. I've also moved all the logic which used
1055 to be in pysh.py here, which will prevent problems with future
1059 to be in pysh.py here, which will prevent problems with future
1056 upgrades. However, this time I must warn users to update their
1060 upgrades. However, this time I must warn users to update their
1057 pysh profile to include the line
1061 pysh profile to include the line
1058
1062
1059 import_all IPython.Extensions.InterpreterExec
1063 import_all IPython.Extensions.InterpreterExec
1060
1064
1061 because otherwise things won't work for them. They MUST also
1065 because otherwise things won't work for them. They MUST also
1062 delete pysh.py and the line
1066 delete pysh.py and the line
1063
1067
1064 execfile pysh.py
1068 execfile pysh.py
1065
1069
1066 from their ipythonrc-pysh.
1070 from their ipythonrc-pysh.
1067
1071
1068 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1072 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1069 robust in the face of objects whose dir() returns non-strings
1073 robust in the face of objects whose dir() returns non-strings
1070 (which it shouldn't, but some broken libs like ITK do). Thanks to
1074 (which it shouldn't, but some broken libs like ITK do). Thanks to
1071 a patch by John Hunter (implemented differently, though). Also
1075 a patch by John Hunter (implemented differently, though). Also
1072 minor improvements by using .extend instead of + on lists.
1076 minor improvements by using .extend instead of + on lists.
1073
1077
1074 * pysh.py:
1078 * pysh.py:
1075
1079
1076 2005-04-06 Fernando Perez <fperez@colorado.edu>
1080 2005-04-06 Fernando Perez <fperez@colorado.edu>
1077
1081
1078 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1082 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1079 by default, so that all users benefit from it. Those who don't
1083 by default, so that all users benefit from it. Those who don't
1080 want it can still turn it off.
1084 want it can still turn it off.
1081
1085
1082 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1086 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1083 config file, I'd forgotten about this, so users were getting it
1087 config file, I'd forgotten about this, so users were getting it
1084 off by default.
1088 off by default.
1085
1089
1086 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1090 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1087 consistency. Now magics can be called in multiline statements,
1091 consistency. Now magics can be called in multiline statements,
1088 and python variables can be expanded in magic calls via $var.
1092 and python variables can be expanded in magic calls via $var.
1089 This makes the magic system behave just like aliases or !system
1093 This makes the magic system behave just like aliases or !system
1090 calls.
1094 calls.
1091
1095
1092 2005-03-28 Fernando Perez <fperez@colorado.edu>
1096 2005-03-28 Fernando Perez <fperez@colorado.edu>
1093
1097
1094 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1098 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1095 expensive string additions for building command. Add support for
1099 expensive string additions for building command. Add support for
1096 trailing ';' when autocall is used.
1100 trailing ';' when autocall is used.
1097
1101
1098 2005-03-26 Fernando Perez <fperez@colorado.edu>
1102 2005-03-26 Fernando Perez <fperez@colorado.edu>
1099
1103
1100 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1104 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1101 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1105 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1102 ipython.el robust against prompts with any number of spaces
1106 ipython.el robust against prompts with any number of spaces
1103 (including 0) after the ':' character.
1107 (including 0) after the ':' character.
1104
1108
1105 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1109 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1106 continuation prompt, which misled users to think the line was
1110 continuation prompt, which misled users to think the line was
1107 already indented. Closes debian Bug#300847, reported to me by
1111 already indented. Closes debian Bug#300847, reported to me by
1108 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1112 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1109
1113
1110 2005-03-23 Fernando Perez <fperez@colorado.edu>
1114 2005-03-23 Fernando Perez <fperez@colorado.edu>
1111
1115
1112 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1116 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1113 properly aligned if they have embedded newlines.
1117 properly aligned if they have embedded newlines.
1114
1118
1115 * IPython/iplib.py (runlines): Add a public method to expose
1119 * IPython/iplib.py (runlines): Add a public method to expose
1116 IPython's code execution machinery, so that users can run strings
1120 IPython's code execution machinery, so that users can run strings
1117 as if they had been typed at the prompt interactively.
1121 as if they had been typed at the prompt interactively.
1118 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1122 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1119 methods which can call the system shell, but with python variable
1123 methods which can call the system shell, but with python variable
1120 expansion. The three such methods are: __IPYTHON__.system,
1124 expansion. The three such methods are: __IPYTHON__.system,
1121 .getoutput and .getoutputerror. These need to be documented in a
1125 .getoutput and .getoutputerror. These need to be documented in a
1122 'public API' section (to be written) of the manual.
1126 'public API' section (to be written) of the manual.
1123
1127
1124 2005-03-20 Fernando Perez <fperez@colorado.edu>
1128 2005-03-20 Fernando Perez <fperez@colorado.edu>
1125
1129
1126 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1130 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1127 for custom exception handling. This is quite powerful, and it
1131 for custom exception handling. This is quite powerful, and it
1128 allows for user-installable exception handlers which can trap
1132 allows for user-installable exception handlers which can trap
1129 custom exceptions at runtime and treat them separately from
1133 custom exceptions at runtime and treat them separately from
1130 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1134 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1131 Mantegazza <mantegazza-AT-ill.fr>.
1135 Mantegazza <mantegazza-AT-ill.fr>.
1132 (InteractiveShell.set_custom_completer): public API function to
1136 (InteractiveShell.set_custom_completer): public API function to
1133 add new completers at runtime.
1137 add new completers at runtime.
1134
1138
1135 2005-03-19 Fernando Perez <fperez@colorado.edu>
1139 2005-03-19 Fernando Perez <fperez@colorado.edu>
1136
1140
1137 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1141 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1138 allow objects which provide their docstrings via non-standard
1142 allow objects which provide their docstrings via non-standard
1139 mechanisms (like Pyro proxies) to still be inspected by ipython's
1143 mechanisms (like Pyro proxies) to still be inspected by ipython's
1140 ? system.
1144 ? system.
1141
1145
1142 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1146 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1143 automatic capture system. I tried quite hard to make it work
1147 automatic capture system. I tried quite hard to make it work
1144 reliably, and simply failed. I tried many combinations with the
1148 reliably, and simply failed. I tried many combinations with the
1145 subprocess module, but eventually nothing worked in all needed
1149 subprocess module, but eventually nothing worked in all needed
1146 cases (not blocking stdin for the child, duplicating stdout
1150 cases (not blocking stdin for the child, duplicating stdout
1147 without blocking, etc). The new %sc/%sx still do capture to these
1151 without blocking, etc). The new %sc/%sx still do capture to these
1148 magical list/string objects which make shell use much more
1152 magical list/string objects which make shell use much more
1149 conveninent, so not all is lost.
1153 conveninent, so not all is lost.
1150
1154
1151 XXX - FIX MANUAL for the change above!
1155 XXX - FIX MANUAL for the change above!
1152
1156
1153 (runsource): I copied code.py's runsource() into ipython to modify
1157 (runsource): I copied code.py's runsource() into ipython to modify
1154 it a bit. Now the code object and source to be executed are
1158 it a bit. Now the code object and source to be executed are
1155 stored in ipython. This makes this info accessible to third-party
1159 stored in ipython. This makes this info accessible to third-party
1156 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1160 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1157 Mantegazza <mantegazza-AT-ill.fr>.
1161 Mantegazza <mantegazza-AT-ill.fr>.
1158
1162
1159 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1163 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1160 history-search via readline (like C-p/C-n). I'd wanted this for a
1164 history-search via readline (like C-p/C-n). I'd wanted this for a
1161 long time, but only recently found out how to do it. For users
1165 long time, but only recently found out how to do it. For users
1162 who already have their ipythonrc files made and want this, just
1166 who already have their ipythonrc files made and want this, just
1163 add:
1167 add:
1164
1168
1165 readline_parse_and_bind "\e[A": history-search-backward
1169 readline_parse_and_bind "\e[A": history-search-backward
1166 readline_parse_and_bind "\e[B": history-search-forward
1170 readline_parse_and_bind "\e[B": history-search-forward
1167
1171
1168 2005-03-18 Fernando Perez <fperez@colorado.edu>
1172 2005-03-18 Fernando Perez <fperez@colorado.edu>
1169
1173
1170 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1174 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1171 LSString and SList classes which allow transparent conversions
1175 LSString and SList classes which allow transparent conversions
1172 between list mode and whitespace-separated string.
1176 between list mode and whitespace-separated string.
1173 (magic_r): Fix recursion problem in %r.
1177 (magic_r): Fix recursion problem in %r.
1174
1178
1175 * IPython/genutils.py (LSString): New class to be used for
1179 * IPython/genutils.py (LSString): New class to be used for
1176 automatic storage of the results of all alias/system calls in _o
1180 automatic storage of the results of all alias/system calls in _o
1177 and _e (stdout/err). These provide a .l/.list attribute which
1181 and _e (stdout/err). These provide a .l/.list attribute which
1178 does automatic splitting on newlines. This means that for most
1182 does automatic splitting on newlines. This means that for most
1179 uses, you'll never need to do capturing of output with %sc/%sx
1183 uses, you'll never need to do capturing of output with %sc/%sx
1180 anymore, since ipython keeps this always done for you. Note that
1184 anymore, since ipython keeps this always done for you. Note that
1181 only the LAST results are stored, the _o/e variables are
1185 only the LAST results are stored, the _o/e variables are
1182 overwritten on each call. If you need to save their contents
1186 overwritten on each call. If you need to save their contents
1183 further, simply bind them to any other name.
1187 further, simply bind them to any other name.
1184
1188
1185 2005-03-17 Fernando Perez <fperez@colorado.edu>
1189 2005-03-17 Fernando Perez <fperez@colorado.edu>
1186
1190
1187 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1191 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1188 prompt namespace handling.
1192 prompt namespace handling.
1189
1193
1190 2005-03-16 Fernando Perez <fperez@colorado.edu>
1194 2005-03-16 Fernando Perez <fperez@colorado.edu>
1191
1195
1192 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1196 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1193 classic prompts to be '>>> ' (final space was missing, and it
1197 classic prompts to be '>>> ' (final space was missing, and it
1194 trips the emacs python mode).
1198 trips the emacs python mode).
1195 (BasePrompt.__str__): Added safe support for dynamic prompt
1199 (BasePrompt.__str__): Added safe support for dynamic prompt
1196 strings. Now you can set your prompt string to be '$x', and the
1200 strings. Now you can set your prompt string to be '$x', and the
1197 value of x will be printed from your interactive namespace. The
1201 value of x will be printed from your interactive namespace. The
1198 interpolation syntax includes the full Itpl support, so
1202 interpolation syntax includes the full Itpl support, so
1199 ${foo()+x+bar()} is a valid prompt string now, and the function
1203 ${foo()+x+bar()} is a valid prompt string now, and the function
1200 calls will be made at runtime.
1204 calls will be made at runtime.
1201
1205
1202 2005-03-15 Fernando Perez <fperez@colorado.edu>
1206 2005-03-15 Fernando Perez <fperez@colorado.edu>
1203
1207
1204 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1208 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1205 avoid name clashes in pylab. %hist still works, it just forwards
1209 avoid name clashes in pylab. %hist still works, it just forwards
1206 the call to %history.
1210 the call to %history.
1207
1211
1208 2005-03-02 *** Released version 0.6.12
1212 2005-03-02 *** Released version 0.6.12
1209
1213
1210 2005-03-02 Fernando Perez <fperez@colorado.edu>
1214 2005-03-02 Fernando Perez <fperez@colorado.edu>
1211
1215
1212 * IPython/iplib.py (handle_magic): log magic calls properly as
1216 * IPython/iplib.py (handle_magic): log magic calls properly as
1213 ipmagic() function calls.
1217 ipmagic() function calls.
1214
1218
1215 * IPython/Magic.py (magic_time): Improved %time to support
1219 * IPython/Magic.py (magic_time): Improved %time to support
1216 statements and provide wall-clock as well as CPU time.
1220 statements and provide wall-clock as well as CPU time.
1217
1221
1218 2005-02-27 Fernando Perez <fperez@colorado.edu>
1222 2005-02-27 Fernando Perez <fperez@colorado.edu>
1219
1223
1220 * IPython/hooks.py: New hooks module, to expose user-modifiable
1224 * IPython/hooks.py: New hooks module, to expose user-modifiable
1221 IPython functionality in a clean manner. For now only the editor
1225 IPython functionality in a clean manner. For now only the editor
1222 hook is actually written, and other thigns which I intend to turn
1226 hook is actually written, and other thigns which I intend to turn
1223 into proper hooks aren't yet there. The display and prefilter
1227 into proper hooks aren't yet there. The display and prefilter
1224 stuff, for example, should be hooks. But at least now the
1228 stuff, for example, should be hooks. But at least now the
1225 framework is in place, and the rest can be moved here with more
1229 framework is in place, and the rest can be moved here with more
1226 time later. IPython had had a .hooks variable for a long time for
1230 time later. IPython had had a .hooks variable for a long time for
1227 this purpose, but I'd never actually used it for anything.
1231 this purpose, but I'd never actually used it for anything.
1228
1232
1229 2005-02-26 Fernando Perez <fperez@colorado.edu>
1233 2005-02-26 Fernando Perez <fperez@colorado.edu>
1230
1234
1231 * IPython/ipmaker.py (make_IPython): make the default ipython
1235 * IPython/ipmaker.py (make_IPython): make the default ipython
1232 directory be called _ipython under win32, to follow more the
1236 directory be called _ipython under win32, to follow more the
1233 naming peculiarities of that platform (where buggy software like
1237 naming peculiarities of that platform (where buggy software like
1234 Visual Sourcesafe breaks with .named directories). Reported by
1238 Visual Sourcesafe breaks with .named directories). Reported by
1235 Ville Vainio.
1239 Ville Vainio.
1236
1240
1237 2005-02-23 Fernando Perez <fperez@colorado.edu>
1241 2005-02-23 Fernando Perez <fperez@colorado.edu>
1238
1242
1239 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1243 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1240 auto_aliases for win32 which were causing problems. Users can
1244 auto_aliases for win32 which were causing problems. Users can
1241 define the ones they personally like.
1245 define the ones they personally like.
1242
1246
1243 2005-02-21 Fernando Perez <fperez@colorado.edu>
1247 2005-02-21 Fernando Perez <fperez@colorado.edu>
1244
1248
1245 * IPython/Magic.py (magic_time): new magic to time execution of
1249 * IPython/Magic.py (magic_time): new magic to time execution of
1246 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1250 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1247
1251
1248 2005-02-19 Fernando Perez <fperez@colorado.edu>
1252 2005-02-19 Fernando Perez <fperez@colorado.edu>
1249
1253
1250 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1254 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1251 into keys (for prompts, for example).
1255 into keys (for prompts, for example).
1252
1256
1253 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1257 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1254 prompts in case users want them. This introduces a small behavior
1258 prompts in case users want them. This introduces a small behavior
1255 change: ipython does not automatically add a space to all prompts
1259 change: ipython does not automatically add a space to all prompts
1256 anymore. To get the old prompts with a space, users should add it
1260 anymore. To get the old prompts with a space, users should add it
1257 manually to their ipythonrc file, so for example prompt_in1 should
1261 manually to their ipythonrc file, so for example prompt_in1 should
1258 now read 'In [\#]: ' instead of 'In [\#]:'.
1262 now read 'In [\#]: ' instead of 'In [\#]:'.
1259 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1263 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1260 file) to control left-padding of secondary prompts.
1264 file) to control left-padding of secondary prompts.
1261
1265
1262 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1266 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1263 the profiler can't be imported. Fix for Debian, which removed
1267 the profiler can't be imported. Fix for Debian, which removed
1264 profile.py because of License issues. I applied a slightly
1268 profile.py because of License issues. I applied a slightly
1265 modified version of the original Debian patch at
1269 modified version of the original Debian patch at
1266 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1270 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1267
1271
1268 2005-02-17 Fernando Perez <fperez@colorado.edu>
1272 2005-02-17 Fernando Perez <fperez@colorado.edu>
1269
1273
1270 * IPython/genutils.py (native_line_ends): Fix bug which would
1274 * IPython/genutils.py (native_line_ends): Fix bug which would
1271 cause improper line-ends under win32 b/c I was not opening files
1275 cause improper line-ends under win32 b/c I was not opening files
1272 in binary mode. Bug report and fix thanks to Ville.
1276 in binary mode. Bug report and fix thanks to Ville.
1273
1277
1274 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1278 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1275 trying to catch spurious foo[1] autocalls. My fix actually broke
1279 trying to catch spurious foo[1] autocalls. My fix actually broke
1276 ',/' autoquote/call with explicit escape (bad regexp).
1280 ',/' autoquote/call with explicit escape (bad regexp).
1277
1281
1278 2005-02-15 *** Released version 0.6.11
1282 2005-02-15 *** Released version 0.6.11
1279
1283
1280 2005-02-14 Fernando Perez <fperez@colorado.edu>
1284 2005-02-14 Fernando Perez <fperez@colorado.edu>
1281
1285
1282 * IPython/background_jobs.py: New background job management
1286 * IPython/background_jobs.py: New background job management
1283 subsystem. This is implemented via a new set of classes, and
1287 subsystem. This is implemented via a new set of classes, and
1284 IPython now provides a builtin 'jobs' object for background job
1288 IPython now provides a builtin 'jobs' object for background job
1285 execution. A convenience %bg magic serves as a lightweight
1289 execution. A convenience %bg magic serves as a lightweight
1286 frontend for starting the more common type of calls. This was
1290 frontend for starting the more common type of calls. This was
1287 inspired by discussions with B. Granger and the BackgroundCommand
1291 inspired by discussions with B. Granger and the BackgroundCommand
1288 class described in the book Python Scripting for Computational
1292 class described in the book Python Scripting for Computational
1289 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1293 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1290 (although ultimately no code from this text was used, as IPython's
1294 (although ultimately no code from this text was used, as IPython's
1291 system is a separate implementation).
1295 system is a separate implementation).
1292
1296
1293 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1297 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1294 to control the completion of single/double underscore names
1298 to control the completion of single/double underscore names
1295 separately. As documented in the example ipytonrc file, the
1299 separately. As documented in the example ipytonrc file, the
1296 readline_omit__names variable can now be set to 2, to omit even
1300 readline_omit__names variable can now be set to 2, to omit even
1297 single underscore names. Thanks to a patch by Brian Wong
1301 single underscore names. Thanks to a patch by Brian Wong
1298 <BrianWong-AT-AirgoNetworks.Com>.
1302 <BrianWong-AT-AirgoNetworks.Com>.
1299 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1303 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1300 be autocalled as foo([1]) if foo were callable. A problem for
1304 be autocalled as foo([1]) if foo were callable. A problem for
1301 things which are both callable and implement __getitem__.
1305 things which are both callable and implement __getitem__.
1302 (init_readline): Fix autoindentation for win32. Thanks to a patch
1306 (init_readline): Fix autoindentation for win32. Thanks to a patch
1303 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1307 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1304
1308
1305 2005-02-12 Fernando Perez <fperez@colorado.edu>
1309 2005-02-12 Fernando Perez <fperez@colorado.edu>
1306
1310
1307 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1311 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1308 which I had written long ago to sort out user error messages which
1312 which I had written long ago to sort out user error messages which
1309 may occur during startup. This seemed like a good idea initially,
1313 may occur during startup. This seemed like a good idea initially,
1310 but it has proven a disaster in retrospect. I don't want to
1314 but it has proven a disaster in retrospect. I don't want to
1311 change much code for now, so my fix is to set the internal 'debug'
1315 change much code for now, so my fix is to set the internal 'debug'
1312 flag to true everywhere, whose only job was precisely to control
1316 flag to true everywhere, whose only job was precisely to control
1313 this subsystem. This closes issue 28 (as well as avoiding all
1317 this subsystem. This closes issue 28 (as well as avoiding all
1314 sorts of strange hangups which occur from time to time).
1318 sorts of strange hangups which occur from time to time).
1315
1319
1316 2005-02-07 Fernando Perez <fperez@colorado.edu>
1320 2005-02-07 Fernando Perez <fperez@colorado.edu>
1317
1321
1318 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1322 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1319 previous call produced a syntax error.
1323 previous call produced a syntax error.
1320
1324
1321 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1325 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1322 classes without constructor.
1326 classes without constructor.
1323
1327
1324 2005-02-06 Fernando Perez <fperez@colorado.edu>
1328 2005-02-06 Fernando Perez <fperez@colorado.edu>
1325
1329
1326 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1330 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1327 completions with the results of each matcher, so we return results
1331 completions with the results of each matcher, so we return results
1328 to the user from all namespaces. This breaks with ipython
1332 to the user from all namespaces. This breaks with ipython
1329 tradition, but I think it's a nicer behavior. Now you get all
1333 tradition, but I think it's a nicer behavior. Now you get all
1330 possible completions listed, from all possible namespaces (python,
1334 possible completions listed, from all possible namespaces (python,
1331 filesystem, magics...) After a request by John Hunter
1335 filesystem, magics...) After a request by John Hunter
1332 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1336 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1333
1337
1334 2005-02-05 Fernando Perez <fperez@colorado.edu>
1338 2005-02-05 Fernando Perez <fperez@colorado.edu>
1335
1339
1336 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1340 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1337 the call had quote characters in it (the quotes were stripped).
1341 the call had quote characters in it (the quotes were stripped).
1338
1342
1339 2005-01-31 Fernando Perez <fperez@colorado.edu>
1343 2005-01-31 Fernando Perez <fperez@colorado.edu>
1340
1344
1341 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1345 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1342 Itpl.itpl() to make the code more robust against psyco
1346 Itpl.itpl() to make the code more robust against psyco
1343 optimizations.
1347 optimizations.
1344
1348
1345 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1349 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1346 of causing an exception. Quicker, cleaner.
1350 of causing an exception. Quicker, cleaner.
1347
1351
1348 2005-01-28 Fernando Perez <fperez@colorado.edu>
1352 2005-01-28 Fernando Perez <fperez@colorado.edu>
1349
1353
1350 * scripts/ipython_win_post_install.py (install): hardcode
1354 * scripts/ipython_win_post_install.py (install): hardcode
1351 sys.prefix+'python.exe' as the executable path. It turns out that
1355 sys.prefix+'python.exe' as the executable path. It turns out that
1352 during the post-installation run, sys.executable resolves to the
1356 during the post-installation run, sys.executable resolves to the
1353 name of the binary installer! I should report this as a distutils
1357 name of the binary installer! I should report this as a distutils
1354 bug, I think. I updated the .10 release with this tiny fix, to
1358 bug, I think. I updated the .10 release with this tiny fix, to
1355 avoid annoying the lists further.
1359 avoid annoying the lists further.
1356
1360
1357 2005-01-27 *** Released version 0.6.10
1361 2005-01-27 *** Released version 0.6.10
1358
1362
1359 2005-01-27 Fernando Perez <fperez@colorado.edu>
1363 2005-01-27 Fernando Perez <fperez@colorado.edu>
1360
1364
1361 * IPython/numutils.py (norm): Added 'inf' as optional name for
1365 * IPython/numutils.py (norm): Added 'inf' as optional name for
1362 L-infinity norm, included references to mathworld.com for vector
1366 L-infinity norm, included references to mathworld.com for vector
1363 norm definitions.
1367 norm definitions.
1364 (amin/amax): added amin/amax for array min/max. Similar to what
1368 (amin/amax): added amin/amax for array min/max. Similar to what
1365 pylab ships with after the recent reorganization of names.
1369 pylab ships with after the recent reorganization of names.
1366 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1370 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1367
1371
1368 * ipython.el: committed Alex's recent fixes and improvements.
1372 * ipython.el: committed Alex's recent fixes and improvements.
1369 Tested with python-mode from CVS, and it looks excellent. Since
1373 Tested with python-mode from CVS, and it looks excellent. Since
1370 python-mode hasn't released anything in a while, I'm temporarily
1374 python-mode hasn't released anything in a while, I'm temporarily
1371 putting a copy of today's CVS (v 4.70) of python-mode in:
1375 putting a copy of today's CVS (v 4.70) of python-mode in:
1372 http://ipython.scipy.org/tmp/python-mode.el
1376 http://ipython.scipy.org/tmp/python-mode.el
1373
1377
1374 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1378 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1375 sys.executable for the executable name, instead of assuming it's
1379 sys.executable for the executable name, instead of assuming it's
1376 called 'python.exe' (the post-installer would have produced broken
1380 called 'python.exe' (the post-installer would have produced broken
1377 setups on systems with a differently named python binary).
1381 setups on systems with a differently named python binary).
1378
1382
1379 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1383 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1380 references to os.linesep, to make the code more
1384 references to os.linesep, to make the code more
1381 platform-independent. This is also part of the win32 coloring
1385 platform-independent. This is also part of the win32 coloring
1382 fixes.
1386 fixes.
1383
1387
1384 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1388 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1385 lines, which actually cause coloring bugs because the length of
1389 lines, which actually cause coloring bugs because the length of
1386 the line is very difficult to correctly compute with embedded
1390 the line is very difficult to correctly compute with embedded
1387 escapes. This was the source of all the coloring problems under
1391 escapes. This was the source of all the coloring problems under
1388 Win32. I think that _finally_, Win32 users have a properly
1392 Win32. I think that _finally_, Win32 users have a properly
1389 working ipython in all respects. This would never have happened
1393 working ipython in all respects. This would never have happened
1390 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1394 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1391
1395
1392 2005-01-26 *** Released version 0.6.9
1396 2005-01-26 *** Released version 0.6.9
1393
1397
1394 2005-01-25 Fernando Perez <fperez@colorado.edu>
1398 2005-01-25 Fernando Perez <fperez@colorado.edu>
1395
1399
1396 * setup.py: finally, we have a true Windows installer, thanks to
1400 * setup.py: finally, we have a true Windows installer, thanks to
1397 the excellent work of Viktor Ransmayr
1401 the excellent work of Viktor Ransmayr
1398 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1402 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1399 Windows users. The setup routine is quite a bit cleaner thanks to
1403 Windows users. The setup routine is quite a bit cleaner thanks to
1400 this, and the post-install script uses the proper functions to
1404 this, and the post-install script uses the proper functions to
1401 allow a clean de-installation using the standard Windows Control
1405 allow a clean de-installation using the standard Windows Control
1402 Panel.
1406 Panel.
1403
1407
1404 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1408 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1405 environment variable under all OSes (including win32) if
1409 environment variable under all OSes (including win32) if
1406 available. This will give consistency to win32 users who have set
1410 available. This will give consistency to win32 users who have set
1407 this variable for any reason. If os.environ['HOME'] fails, the
1411 this variable for any reason. If os.environ['HOME'] fails, the
1408 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1412 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1409
1413
1410 2005-01-24 Fernando Perez <fperez@colorado.edu>
1414 2005-01-24 Fernando Perez <fperez@colorado.edu>
1411
1415
1412 * IPython/numutils.py (empty_like): add empty_like(), similar to
1416 * IPython/numutils.py (empty_like): add empty_like(), similar to
1413 zeros_like() but taking advantage of the new empty() Numeric routine.
1417 zeros_like() but taking advantage of the new empty() Numeric routine.
1414
1418
1415 2005-01-23 *** Released version 0.6.8
1419 2005-01-23 *** Released version 0.6.8
1416
1420
1417 2005-01-22 Fernando Perez <fperez@colorado.edu>
1421 2005-01-22 Fernando Perez <fperez@colorado.edu>
1418
1422
1419 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1423 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1420 automatic show() calls. After discussing things with JDH, it
1424 automatic show() calls. After discussing things with JDH, it
1421 turns out there are too many corner cases where this can go wrong.
1425 turns out there are too many corner cases where this can go wrong.
1422 It's best not to try to be 'too smart', and simply have ipython
1426 It's best not to try to be 'too smart', and simply have ipython
1423 reproduce as much as possible the default behavior of a normal
1427 reproduce as much as possible the default behavior of a normal
1424 python shell.
1428 python shell.
1425
1429
1426 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1430 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1427 line-splitting regexp and _prefilter() to avoid calling getattr()
1431 line-splitting regexp and _prefilter() to avoid calling getattr()
1428 on assignments. This closes
1432 on assignments. This closes
1429 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1433 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1430 readline uses getattr(), so a simple <TAB> keypress is still
1434 readline uses getattr(), so a simple <TAB> keypress is still
1431 enough to trigger getattr() calls on an object.
1435 enough to trigger getattr() calls on an object.
1432
1436
1433 2005-01-21 Fernando Perez <fperez@colorado.edu>
1437 2005-01-21 Fernando Perez <fperez@colorado.edu>
1434
1438
1435 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1439 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1436 docstring under pylab so it doesn't mask the original.
1440 docstring under pylab so it doesn't mask the original.
1437
1441
1438 2005-01-21 *** Released version 0.6.7
1442 2005-01-21 *** Released version 0.6.7
1439
1443
1440 2005-01-21 Fernando Perez <fperez@colorado.edu>
1444 2005-01-21 Fernando Perez <fperez@colorado.edu>
1441
1445
1442 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1446 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1443 signal handling for win32 users in multithreaded mode.
1447 signal handling for win32 users in multithreaded mode.
1444
1448
1445 2005-01-17 Fernando Perez <fperez@colorado.edu>
1449 2005-01-17 Fernando Perez <fperez@colorado.edu>
1446
1450
1447 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1451 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1448 instances with no __init__. After a crash report by Norbert Nemec
1452 instances with no __init__. After a crash report by Norbert Nemec
1449 <Norbert-AT-nemec-online.de>.
1453 <Norbert-AT-nemec-online.de>.
1450
1454
1451 2005-01-14 Fernando Perez <fperez@colorado.edu>
1455 2005-01-14 Fernando Perez <fperez@colorado.edu>
1452
1456
1453 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1457 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1454 names for verbose exceptions, when multiple dotted names and the
1458 names for verbose exceptions, when multiple dotted names and the
1455 'parent' object were present on the same line.
1459 'parent' object were present on the same line.
1456
1460
1457 2005-01-11 Fernando Perez <fperez@colorado.edu>
1461 2005-01-11 Fernando Perez <fperez@colorado.edu>
1458
1462
1459 * IPython/genutils.py (flag_calls): new utility to trap and flag
1463 * IPython/genutils.py (flag_calls): new utility to trap and flag
1460 calls in functions. I need it to clean up matplotlib support.
1464 calls in functions. I need it to clean up matplotlib support.
1461 Also removed some deprecated code in genutils.
1465 Also removed some deprecated code in genutils.
1462
1466
1463 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1467 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1464 that matplotlib scripts called with %run, which don't call show()
1468 that matplotlib scripts called with %run, which don't call show()
1465 themselves, still have their plotting windows open.
1469 themselves, still have their plotting windows open.
1466
1470
1467 2005-01-05 Fernando Perez <fperez@colorado.edu>
1471 2005-01-05 Fernando Perez <fperez@colorado.edu>
1468
1472
1469 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1473 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1470 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1474 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1471
1475
1472 2004-12-19 Fernando Perez <fperez@colorado.edu>
1476 2004-12-19 Fernando Perez <fperez@colorado.edu>
1473
1477
1474 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1478 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1475 parent_runcode, which was an eyesore. The same result can be
1479 parent_runcode, which was an eyesore. The same result can be
1476 obtained with Python's regular superclass mechanisms.
1480 obtained with Python's regular superclass mechanisms.
1477
1481
1478 2004-12-17 Fernando Perez <fperez@colorado.edu>
1482 2004-12-17 Fernando Perez <fperez@colorado.edu>
1479
1483
1480 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1484 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1481 reported by Prabhu.
1485 reported by Prabhu.
1482 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1486 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1483 sys.stderr) instead of explicitly calling sys.stderr. This helps
1487 sys.stderr) instead of explicitly calling sys.stderr. This helps
1484 maintain our I/O abstractions clean, for future GUI embeddings.
1488 maintain our I/O abstractions clean, for future GUI embeddings.
1485
1489
1486 * IPython/genutils.py (info): added new utility for sys.stderr
1490 * IPython/genutils.py (info): added new utility for sys.stderr
1487 unified info message handling (thin wrapper around warn()).
1491 unified info message handling (thin wrapper around warn()).
1488
1492
1489 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1493 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1490 composite (dotted) names on verbose exceptions.
1494 composite (dotted) names on verbose exceptions.
1491 (VerboseTB.nullrepr): harden against another kind of errors which
1495 (VerboseTB.nullrepr): harden against another kind of errors which
1492 Python's inspect module can trigger, and which were crashing
1496 Python's inspect module can trigger, and which were crashing
1493 IPython. Thanks to a report by Marco Lombardi
1497 IPython. Thanks to a report by Marco Lombardi
1494 <mlombard-AT-ma010192.hq.eso.org>.
1498 <mlombard-AT-ma010192.hq.eso.org>.
1495
1499
1496 2004-12-13 *** Released version 0.6.6
1500 2004-12-13 *** Released version 0.6.6
1497
1501
1498 2004-12-12 Fernando Perez <fperez@colorado.edu>
1502 2004-12-12 Fernando Perez <fperez@colorado.edu>
1499
1503
1500 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1504 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1501 generated by pygtk upon initialization if it was built without
1505 generated by pygtk upon initialization if it was built without
1502 threads (for matplotlib users). After a crash reported by
1506 threads (for matplotlib users). After a crash reported by
1503 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1507 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1504
1508
1505 * IPython/ipmaker.py (make_IPython): fix small bug in the
1509 * IPython/ipmaker.py (make_IPython): fix small bug in the
1506 import_some parameter for multiple imports.
1510 import_some parameter for multiple imports.
1507
1511
1508 * IPython/iplib.py (ipmagic): simplified the interface of
1512 * IPython/iplib.py (ipmagic): simplified the interface of
1509 ipmagic() to take a single string argument, just as it would be
1513 ipmagic() to take a single string argument, just as it would be
1510 typed at the IPython cmd line.
1514 typed at the IPython cmd line.
1511 (ipalias): Added new ipalias() with an interface identical to
1515 (ipalias): Added new ipalias() with an interface identical to
1512 ipmagic(). This completes exposing a pure python interface to the
1516 ipmagic(). This completes exposing a pure python interface to the
1513 alias and magic system, which can be used in loops or more complex
1517 alias and magic system, which can be used in loops or more complex
1514 code where IPython's automatic line mangling is not active.
1518 code where IPython's automatic line mangling is not active.
1515
1519
1516 * IPython/genutils.py (timing): changed interface of timing to
1520 * IPython/genutils.py (timing): changed interface of timing to
1517 simply run code once, which is the most common case. timings()
1521 simply run code once, which is the most common case. timings()
1518 remains unchanged, for the cases where you want multiple runs.
1522 remains unchanged, for the cases where you want multiple runs.
1519
1523
1520 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1524 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1521 bug where Python2.2 crashes with exec'ing code which does not end
1525 bug where Python2.2 crashes with exec'ing code which does not end
1522 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1526 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1523 before.
1527 before.
1524
1528
1525 2004-12-10 Fernando Perez <fperez@colorado.edu>
1529 2004-12-10 Fernando Perez <fperez@colorado.edu>
1526
1530
1527 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1531 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1528 -t to -T, to accomodate the new -t flag in %run (the %run and
1532 -t to -T, to accomodate the new -t flag in %run (the %run and
1529 %prun options are kind of intermixed, and it's not easy to change
1533 %prun options are kind of intermixed, and it's not easy to change
1530 this with the limitations of python's getopt).
1534 this with the limitations of python's getopt).
1531
1535
1532 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1536 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1533 the execution of scripts. It's not as fine-tuned as timeit.py,
1537 the execution of scripts. It's not as fine-tuned as timeit.py,
1534 but it works from inside ipython (and under 2.2, which lacks
1538 but it works from inside ipython (and under 2.2, which lacks
1535 timeit.py). Optionally a number of runs > 1 can be given for
1539 timeit.py). Optionally a number of runs > 1 can be given for
1536 timing very short-running code.
1540 timing very short-running code.
1537
1541
1538 * IPython/genutils.py (uniq_stable): new routine which returns a
1542 * IPython/genutils.py (uniq_stable): new routine which returns a
1539 list of unique elements in any iterable, but in stable order of
1543 list of unique elements in any iterable, but in stable order of
1540 appearance. I needed this for the ultraTB fixes, and it's a handy
1544 appearance. I needed this for the ultraTB fixes, and it's a handy
1541 utility.
1545 utility.
1542
1546
1543 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1547 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1544 dotted names in Verbose exceptions. This had been broken since
1548 dotted names in Verbose exceptions. This had been broken since
1545 the very start, now x.y will properly be printed in a Verbose
1549 the very start, now x.y will properly be printed in a Verbose
1546 traceback, instead of x being shown and y appearing always as an
1550 traceback, instead of x being shown and y appearing always as an
1547 'undefined global'. Getting this to work was a bit tricky,
1551 'undefined global'. Getting this to work was a bit tricky,
1548 because by default python tokenizers are stateless. Saved by
1552 because by default python tokenizers are stateless. Saved by
1549 python's ability to easily add a bit of state to an arbitrary
1553 python's ability to easily add a bit of state to an arbitrary
1550 function (without needing to build a full-blown callable object).
1554 function (without needing to build a full-blown callable object).
1551
1555
1552 Also big cleanup of this code, which had horrendous runtime
1556 Also big cleanup of this code, which had horrendous runtime
1553 lookups of zillions of attributes for colorization. Moved all
1557 lookups of zillions of attributes for colorization. Moved all
1554 this code into a few templates, which make it cleaner and quicker.
1558 this code into a few templates, which make it cleaner and quicker.
1555
1559
1556 Printout quality was also improved for Verbose exceptions: one
1560 Printout quality was also improved for Verbose exceptions: one
1557 variable per line, and memory addresses are printed (this can be
1561 variable per line, and memory addresses are printed (this can be
1558 quite handy in nasty debugging situations, which is what Verbose
1562 quite handy in nasty debugging situations, which is what Verbose
1559 is for).
1563 is for).
1560
1564
1561 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1565 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1562 the command line as scripts to be loaded by embedded instances.
1566 the command line as scripts to be loaded by embedded instances.
1563 Doing so has the potential for an infinite recursion if there are
1567 Doing so has the potential for an infinite recursion if there are
1564 exceptions thrown in the process. This fixes a strange crash
1568 exceptions thrown in the process. This fixes a strange crash
1565 reported by Philippe MULLER <muller-AT-irit.fr>.
1569 reported by Philippe MULLER <muller-AT-irit.fr>.
1566
1570
1567 2004-12-09 Fernando Perez <fperez@colorado.edu>
1571 2004-12-09 Fernando Perez <fperez@colorado.edu>
1568
1572
1569 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1573 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1570 to reflect new names in matplotlib, which now expose the
1574 to reflect new names in matplotlib, which now expose the
1571 matlab-compatible interface via a pylab module instead of the
1575 matlab-compatible interface via a pylab module instead of the
1572 'matlab' name. The new code is backwards compatible, so users of
1576 'matlab' name. The new code is backwards compatible, so users of
1573 all matplotlib versions are OK. Patch by J. Hunter.
1577 all matplotlib versions are OK. Patch by J. Hunter.
1574
1578
1575 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1579 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1576 of __init__ docstrings for instances (class docstrings are already
1580 of __init__ docstrings for instances (class docstrings are already
1577 automatically printed). Instances with customized docstrings
1581 automatically printed). Instances with customized docstrings
1578 (indep. of the class) are also recognized and all 3 separate
1582 (indep. of the class) are also recognized and all 3 separate
1579 docstrings are printed (instance, class, constructor). After some
1583 docstrings are printed (instance, class, constructor). After some
1580 comments/suggestions by J. Hunter.
1584 comments/suggestions by J. Hunter.
1581
1585
1582 2004-12-05 Fernando Perez <fperez@colorado.edu>
1586 2004-12-05 Fernando Perez <fperez@colorado.edu>
1583
1587
1584 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1588 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1585 warnings when tab-completion fails and triggers an exception.
1589 warnings when tab-completion fails and triggers an exception.
1586
1590
1587 2004-12-03 Fernando Perez <fperez@colorado.edu>
1591 2004-12-03 Fernando Perez <fperez@colorado.edu>
1588
1592
1589 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1593 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1590 be triggered when using 'run -p'. An incorrect option flag was
1594 be triggered when using 'run -p'. An incorrect option flag was
1591 being set ('d' instead of 'D').
1595 being set ('d' instead of 'D').
1592 (manpage): fix missing escaped \- sign.
1596 (manpage): fix missing escaped \- sign.
1593
1597
1594 2004-11-30 *** Released version 0.6.5
1598 2004-11-30 *** Released version 0.6.5
1595
1599
1596 2004-11-30 Fernando Perez <fperez@colorado.edu>
1600 2004-11-30 Fernando Perez <fperez@colorado.edu>
1597
1601
1598 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1602 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1599 setting with -d option.
1603 setting with -d option.
1600
1604
1601 * setup.py (docfiles): Fix problem where the doc glob I was using
1605 * setup.py (docfiles): Fix problem where the doc glob I was using
1602 was COMPLETELY BROKEN. It was giving the right files by pure
1606 was COMPLETELY BROKEN. It was giving the right files by pure
1603 accident, but failed once I tried to include ipython.el. Note:
1607 accident, but failed once I tried to include ipython.el. Note:
1604 glob() does NOT allow you to do exclusion on multiple endings!
1608 glob() does NOT allow you to do exclusion on multiple endings!
1605
1609
1606 2004-11-29 Fernando Perez <fperez@colorado.edu>
1610 2004-11-29 Fernando Perez <fperez@colorado.edu>
1607
1611
1608 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1612 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1609 the manpage as the source. Better formatting & consistency.
1613 the manpage as the source. Better formatting & consistency.
1610
1614
1611 * IPython/Magic.py (magic_run): Added new -d option, to run
1615 * IPython/Magic.py (magic_run): Added new -d option, to run
1612 scripts under the control of the python pdb debugger. Note that
1616 scripts under the control of the python pdb debugger. Note that
1613 this required changing the %prun option -d to -D, to avoid a clash
1617 this required changing the %prun option -d to -D, to avoid a clash
1614 (since %run must pass options to %prun, and getopt is too dumb to
1618 (since %run must pass options to %prun, and getopt is too dumb to
1615 handle options with string values with embedded spaces). Thanks
1619 handle options with string values with embedded spaces). Thanks
1616 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1620 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1617 (magic_who_ls): added type matching to %who and %whos, so that one
1621 (magic_who_ls): added type matching to %who and %whos, so that one
1618 can filter their output to only include variables of certain
1622 can filter their output to only include variables of certain
1619 types. Another suggestion by Matthew.
1623 types. Another suggestion by Matthew.
1620 (magic_whos): Added memory summaries in kb and Mb for arrays.
1624 (magic_whos): Added memory summaries in kb and Mb for arrays.
1621 (magic_who): Improve formatting (break lines every 9 vars).
1625 (magic_who): Improve formatting (break lines every 9 vars).
1622
1626
1623 2004-11-28 Fernando Perez <fperez@colorado.edu>
1627 2004-11-28 Fernando Perez <fperez@colorado.edu>
1624
1628
1625 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1629 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1626 cache when empty lines were present.
1630 cache when empty lines were present.
1627
1631
1628 2004-11-24 Fernando Perez <fperez@colorado.edu>
1632 2004-11-24 Fernando Perez <fperez@colorado.edu>
1629
1633
1630 * IPython/usage.py (__doc__): document the re-activated threading
1634 * IPython/usage.py (__doc__): document the re-activated threading
1631 options for WX and GTK.
1635 options for WX and GTK.
1632
1636
1633 2004-11-23 Fernando Perez <fperez@colorado.edu>
1637 2004-11-23 Fernando Perez <fperez@colorado.edu>
1634
1638
1635 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1639 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1636 the -wthread and -gthread options, along with a new -tk one to try
1640 the -wthread and -gthread options, along with a new -tk one to try
1637 and coordinate Tk threading with wx/gtk. The tk support is very
1641 and coordinate Tk threading with wx/gtk. The tk support is very
1638 platform dependent, since it seems to require Tcl and Tk to be
1642 platform dependent, since it seems to require Tcl and Tk to be
1639 built with threads (Fedora1/2 appears NOT to have it, but in
1643 built with threads (Fedora1/2 appears NOT to have it, but in
1640 Prabhu's Debian boxes it works OK). But even with some Tk
1644 Prabhu's Debian boxes it works OK). But even with some Tk
1641 limitations, this is a great improvement.
1645 limitations, this is a great improvement.
1642
1646
1643 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1647 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1644 info in user prompts. Patch by Prabhu.
1648 info in user prompts. Patch by Prabhu.
1645
1649
1646 2004-11-18 Fernando Perez <fperez@colorado.edu>
1650 2004-11-18 Fernando Perez <fperez@colorado.edu>
1647
1651
1648 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1652 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1649 EOFErrors and bail, to avoid infinite loops if a non-terminating
1653 EOFErrors and bail, to avoid infinite loops if a non-terminating
1650 file is fed into ipython. Patch submitted in issue 19 by user,
1654 file is fed into ipython. Patch submitted in issue 19 by user,
1651 many thanks.
1655 many thanks.
1652
1656
1653 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1657 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1654 autoquote/parens in continuation prompts, which can cause lots of
1658 autoquote/parens in continuation prompts, which can cause lots of
1655 problems. Closes roundup issue 20.
1659 problems. Closes roundup issue 20.
1656
1660
1657 2004-11-17 Fernando Perez <fperez@colorado.edu>
1661 2004-11-17 Fernando Perez <fperez@colorado.edu>
1658
1662
1659 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1663 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1660 reported as debian bug #280505. I'm not sure my local changelog
1664 reported as debian bug #280505. I'm not sure my local changelog
1661 entry has the proper debian format (Jack?).
1665 entry has the proper debian format (Jack?).
1662
1666
1663 2004-11-08 *** Released version 0.6.4
1667 2004-11-08 *** Released version 0.6.4
1664
1668
1665 2004-11-08 Fernando Perez <fperez@colorado.edu>
1669 2004-11-08 Fernando Perez <fperez@colorado.edu>
1666
1670
1667 * IPython/iplib.py (init_readline): Fix exit message for Windows
1671 * IPython/iplib.py (init_readline): Fix exit message for Windows
1668 when readline is active. Thanks to a report by Eric Jones
1672 when readline is active. Thanks to a report by Eric Jones
1669 <eric-AT-enthought.com>.
1673 <eric-AT-enthought.com>.
1670
1674
1671 2004-11-07 Fernando Perez <fperez@colorado.edu>
1675 2004-11-07 Fernando Perez <fperez@colorado.edu>
1672
1676
1673 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1677 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1674 sometimes seen by win2k/cygwin users.
1678 sometimes seen by win2k/cygwin users.
1675
1679
1676 2004-11-06 Fernando Perez <fperez@colorado.edu>
1680 2004-11-06 Fernando Perez <fperez@colorado.edu>
1677
1681
1678 * IPython/iplib.py (interact): Change the handling of %Exit from
1682 * IPython/iplib.py (interact): Change the handling of %Exit from
1679 trying to propagate a SystemExit to an internal ipython flag.
1683 trying to propagate a SystemExit to an internal ipython flag.
1680 This is less elegant than using Python's exception mechanism, but
1684 This is less elegant than using Python's exception mechanism, but
1681 I can't get that to work reliably with threads, so under -pylab
1685 I can't get that to work reliably with threads, so under -pylab
1682 %Exit was hanging IPython. Cross-thread exception handling is
1686 %Exit was hanging IPython. Cross-thread exception handling is
1683 really a bitch. Thaks to a bug report by Stephen Walton
1687 really a bitch. Thaks to a bug report by Stephen Walton
1684 <stephen.walton-AT-csun.edu>.
1688 <stephen.walton-AT-csun.edu>.
1685
1689
1686 2004-11-04 Fernando Perez <fperez@colorado.edu>
1690 2004-11-04 Fernando Perez <fperez@colorado.edu>
1687
1691
1688 * IPython/iplib.py (raw_input_original): store a pointer to the
1692 * IPython/iplib.py (raw_input_original): store a pointer to the
1689 true raw_input to harden against code which can modify it
1693 true raw_input to harden against code which can modify it
1690 (wx.py.PyShell does this and would otherwise crash ipython).
1694 (wx.py.PyShell does this and would otherwise crash ipython).
1691 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1695 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1692
1696
1693 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1697 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1694 Ctrl-C problem, which does not mess up the input line.
1698 Ctrl-C problem, which does not mess up the input line.
1695
1699
1696 2004-11-03 Fernando Perez <fperez@colorado.edu>
1700 2004-11-03 Fernando Perez <fperez@colorado.edu>
1697
1701
1698 * IPython/Release.py: Changed licensing to BSD, in all files.
1702 * IPython/Release.py: Changed licensing to BSD, in all files.
1699 (name): lowercase name for tarball/RPM release.
1703 (name): lowercase name for tarball/RPM release.
1700
1704
1701 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1705 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1702 use throughout ipython.
1706 use throughout ipython.
1703
1707
1704 * IPython/Magic.py (Magic._ofind): Switch to using the new
1708 * IPython/Magic.py (Magic._ofind): Switch to using the new
1705 OInspect.getdoc() function.
1709 OInspect.getdoc() function.
1706
1710
1707 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1711 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1708 of the line currently being canceled via Ctrl-C. It's extremely
1712 of the line currently being canceled via Ctrl-C. It's extremely
1709 ugly, but I don't know how to do it better (the problem is one of
1713 ugly, but I don't know how to do it better (the problem is one of
1710 handling cross-thread exceptions).
1714 handling cross-thread exceptions).
1711
1715
1712 2004-10-28 Fernando Perez <fperez@colorado.edu>
1716 2004-10-28 Fernando Perez <fperez@colorado.edu>
1713
1717
1714 * IPython/Shell.py (signal_handler): add signal handlers to trap
1718 * IPython/Shell.py (signal_handler): add signal handlers to trap
1715 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1719 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1716 report by Francesc Alted.
1720 report by Francesc Alted.
1717
1721
1718 2004-10-21 Fernando Perez <fperez@colorado.edu>
1722 2004-10-21 Fernando Perez <fperez@colorado.edu>
1719
1723
1720 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1724 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1721 to % for pysh syntax extensions.
1725 to % for pysh syntax extensions.
1722
1726
1723 2004-10-09 Fernando Perez <fperez@colorado.edu>
1727 2004-10-09 Fernando Perez <fperez@colorado.edu>
1724
1728
1725 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1729 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1726 arrays to print a more useful summary, without calling str(arr).
1730 arrays to print a more useful summary, without calling str(arr).
1727 This avoids the problem of extremely lengthy computations which
1731 This avoids the problem of extremely lengthy computations which
1728 occur if arr is large, and appear to the user as a system lockup
1732 occur if arr is large, and appear to the user as a system lockup
1729 with 100% cpu activity. After a suggestion by Kristian Sandberg
1733 with 100% cpu activity. After a suggestion by Kristian Sandberg
1730 <Kristian.Sandberg@colorado.edu>.
1734 <Kristian.Sandberg@colorado.edu>.
1731 (Magic.__init__): fix bug in global magic escapes not being
1735 (Magic.__init__): fix bug in global magic escapes not being
1732 correctly set.
1736 correctly set.
1733
1737
1734 2004-10-08 Fernando Perez <fperez@colorado.edu>
1738 2004-10-08 Fernando Perez <fperez@colorado.edu>
1735
1739
1736 * IPython/Magic.py (__license__): change to absolute imports of
1740 * IPython/Magic.py (__license__): change to absolute imports of
1737 ipython's own internal packages, to start adapting to the absolute
1741 ipython's own internal packages, to start adapting to the absolute
1738 import requirement of PEP-328.
1742 import requirement of PEP-328.
1739
1743
1740 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1744 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1741 files, and standardize author/license marks through the Release
1745 files, and standardize author/license marks through the Release
1742 module instead of having per/file stuff (except for files with
1746 module instead of having per/file stuff (except for files with
1743 particular licenses, like the MIT/PSF-licensed codes).
1747 particular licenses, like the MIT/PSF-licensed codes).
1744
1748
1745 * IPython/Debugger.py: remove dead code for python 2.1
1749 * IPython/Debugger.py: remove dead code for python 2.1
1746
1750
1747 2004-10-04 Fernando Perez <fperez@colorado.edu>
1751 2004-10-04 Fernando Perez <fperez@colorado.edu>
1748
1752
1749 * IPython/iplib.py (ipmagic): New function for accessing magics
1753 * IPython/iplib.py (ipmagic): New function for accessing magics
1750 via a normal python function call.
1754 via a normal python function call.
1751
1755
1752 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1756 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1753 from '@' to '%', to accomodate the new @decorator syntax of python
1757 from '@' to '%', to accomodate the new @decorator syntax of python
1754 2.4.
1758 2.4.
1755
1759
1756 2004-09-29 Fernando Perez <fperez@colorado.edu>
1760 2004-09-29 Fernando Perez <fperez@colorado.edu>
1757
1761
1758 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1762 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1759 matplotlib.use to prevent running scripts which try to switch
1763 matplotlib.use to prevent running scripts which try to switch
1760 interactive backends from within ipython. This will just crash
1764 interactive backends from within ipython. This will just crash
1761 the python interpreter, so we can't allow it (but a detailed error
1765 the python interpreter, so we can't allow it (but a detailed error
1762 is given to the user).
1766 is given to the user).
1763
1767
1764 2004-09-28 Fernando Perez <fperez@colorado.edu>
1768 2004-09-28 Fernando Perez <fperez@colorado.edu>
1765
1769
1766 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1770 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1767 matplotlib-related fixes so that using @run with non-matplotlib
1771 matplotlib-related fixes so that using @run with non-matplotlib
1768 scripts doesn't pop up spurious plot windows. This requires
1772 scripts doesn't pop up spurious plot windows. This requires
1769 matplotlib >= 0.63, where I had to make some changes as well.
1773 matplotlib >= 0.63, where I had to make some changes as well.
1770
1774
1771 * IPython/ipmaker.py (make_IPython): update version requirement to
1775 * IPython/ipmaker.py (make_IPython): update version requirement to
1772 python 2.2.
1776 python 2.2.
1773
1777
1774 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1778 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1775 banner arg for embedded customization.
1779 banner arg for embedded customization.
1776
1780
1777 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1781 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1778 explicit uses of __IP as the IPython's instance name. Now things
1782 explicit uses of __IP as the IPython's instance name. Now things
1779 are properly handled via the shell.name value. The actual code
1783 are properly handled via the shell.name value. The actual code
1780 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1784 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1781 is much better than before. I'll clean things completely when the
1785 is much better than before. I'll clean things completely when the
1782 magic stuff gets a real overhaul.
1786 magic stuff gets a real overhaul.
1783
1787
1784 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1788 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1785 minor changes to debian dir.
1789 minor changes to debian dir.
1786
1790
1787 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1791 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1788 pointer to the shell itself in the interactive namespace even when
1792 pointer to the shell itself in the interactive namespace even when
1789 a user-supplied dict is provided. This is needed for embedding
1793 a user-supplied dict is provided. This is needed for embedding
1790 purposes (found by tests with Michel Sanner).
1794 purposes (found by tests with Michel Sanner).
1791
1795
1792 2004-09-27 Fernando Perez <fperez@colorado.edu>
1796 2004-09-27 Fernando Perez <fperez@colorado.edu>
1793
1797
1794 * IPython/UserConfig/ipythonrc: remove []{} from
1798 * IPython/UserConfig/ipythonrc: remove []{} from
1795 readline_remove_delims, so that things like [modname.<TAB> do
1799 readline_remove_delims, so that things like [modname.<TAB> do
1796 proper completion. This disables [].TAB, but that's a less common
1800 proper completion. This disables [].TAB, but that's a less common
1797 case than module names in list comprehensions, for example.
1801 case than module names in list comprehensions, for example.
1798 Thanks to a report by Andrea Riciputi.
1802 Thanks to a report by Andrea Riciputi.
1799
1803
1800 2004-09-09 Fernando Perez <fperez@colorado.edu>
1804 2004-09-09 Fernando Perez <fperez@colorado.edu>
1801
1805
1802 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1806 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1803 blocking problems in win32 and osx. Fix by John.
1807 blocking problems in win32 and osx. Fix by John.
1804
1808
1805 2004-09-08 Fernando Perez <fperez@colorado.edu>
1809 2004-09-08 Fernando Perez <fperez@colorado.edu>
1806
1810
1807 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1811 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1808 for Win32 and OSX. Fix by John Hunter.
1812 for Win32 and OSX. Fix by John Hunter.
1809
1813
1810 2004-08-30 *** Released version 0.6.3
1814 2004-08-30 *** Released version 0.6.3
1811
1815
1812 2004-08-30 Fernando Perez <fperez@colorado.edu>
1816 2004-08-30 Fernando Perez <fperez@colorado.edu>
1813
1817
1814 * setup.py (isfile): Add manpages to list of dependent files to be
1818 * setup.py (isfile): Add manpages to list of dependent files to be
1815 updated.
1819 updated.
1816
1820
1817 2004-08-27 Fernando Perez <fperez@colorado.edu>
1821 2004-08-27 Fernando Perez <fperez@colorado.edu>
1818
1822
1819 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1823 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1820 for now. They don't really work with standalone WX/GTK code
1824 for now. They don't really work with standalone WX/GTK code
1821 (though matplotlib IS working fine with both of those backends).
1825 (though matplotlib IS working fine with both of those backends).
1822 This will neeed much more testing. I disabled most things with
1826 This will neeed much more testing. I disabled most things with
1823 comments, so turning it back on later should be pretty easy.
1827 comments, so turning it back on later should be pretty easy.
1824
1828
1825 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1829 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1826 autocalling of expressions like r'foo', by modifying the line
1830 autocalling of expressions like r'foo', by modifying the line
1827 split regexp. Closes
1831 split regexp. Closes
1828 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1832 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1829 Riley <ipythonbugs-AT-sabi.net>.
1833 Riley <ipythonbugs-AT-sabi.net>.
1830 (InteractiveShell.mainloop): honor --nobanner with banner
1834 (InteractiveShell.mainloop): honor --nobanner with banner
1831 extensions.
1835 extensions.
1832
1836
1833 * IPython/Shell.py: Significant refactoring of all classes, so
1837 * IPython/Shell.py: Significant refactoring of all classes, so
1834 that we can really support ALL matplotlib backends and threading
1838 that we can really support ALL matplotlib backends and threading
1835 models (John spotted a bug with Tk which required this). Now we
1839 models (John spotted a bug with Tk which required this). Now we
1836 should support single-threaded, WX-threads and GTK-threads, both
1840 should support single-threaded, WX-threads and GTK-threads, both
1837 for generic code and for matplotlib.
1841 for generic code and for matplotlib.
1838
1842
1839 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1843 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1840 -pylab, to simplify things for users. Will also remove the pylab
1844 -pylab, to simplify things for users. Will also remove the pylab
1841 profile, since now all of matplotlib configuration is directly
1845 profile, since now all of matplotlib configuration is directly
1842 handled here. This also reduces startup time.
1846 handled here. This also reduces startup time.
1843
1847
1844 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1848 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1845 shell wasn't being correctly called. Also in IPShellWX.
1849 shell wasn't being correctly called. Also in IPShellWX.
1846
1850
1847 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1851 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1848 fine-tune banner.
1852 fine-tune banner.
1849
1853
1850 * IPython/numutils.py (spike): Deprecate these spike functions,
1854 * IPython/numutils.py (spike): Deprecate these spike functions,
1851 delete (long deprecated) gnuplot_exec handler.
1855 delete (long deprecated) gnuplot_exec handler.
1852
1856
1853 2004-08-26 Fernando Perez <fperez@colorado.edu>
1857 2004-08-26 Fernando Perez <fperez@colorado.edu>
1854
1858
1855 * ipython.1: Update for threading options, plus some others which
1859 * ipython.1: Update for threading options, plus some others which
1856 were missing.
1860 were missing.
1857
1861
1858 * IPython/ipmaker.py (__call__): Added -wthread option for
1862 * IPython/ipmaker.py (__call__): Added -wthread option for
1859 wxpython thread handling. Make sure threading options are only
1863 wxpython thread handling. Make sure threading options are only
1860 valid at the command line.
1864 valid at the command line.
1861
1865
1862 * scripts/ipython: moved shell selection into a factory function
1866 * scripts/ipython: moved shell selection into a factory function
1863 in Shell.py, to keep the starter script to a minimum.
1867 in Shell.py, to keep the starter script to a minimum.
1864
1868
1865 2004-08-25 Fernando Perez <fperez@colorado.edu>
1869 2004-08-25 Fernando Perez <fperez@colorado.edu>
1866
1870
1867 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1871 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1868 John. Along with some recent changes he made to matplotlib, the
1872 John. Along with some recent changes he made to matplotlib, the
1869 next versions of both systems should work very well together.
1873 next versions of both systems should work very well together.
1870
1874
1871 2004-08-24 Fernando Perez <fperez@colorado.edu>
1875 2004-08-24 Fernando Perez <fperez@colorado.edu>
1872
1876
1873 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1877 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1874 tried to switch the profiling to using hotshot, but I'm getting
1878 tried to switch the profiling to using hotshot, but I'm getting
1875 strange errors from prof.runctx() there. I may be misreading the
1879 strange errors from prof.runctx() there. I may be misreading the
1876 docs, but it looks weird. For now the profiling code will
1880 docs, but it looks weird. For now the profiling code will
1877 continue to use the standard profiler.
1881 continue to use the standard profiler.
1878
1882
1879 2004-08-23 Fernando Perez <fperez@colorado.edu>
1883 2004-08-23 Fernando Perez <fperez@colorado.edu>
1880
1884
1881 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1885 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1882 threaded shell, by John Hunter. It's not quite ready yet, but
1886 threaded shell, by John Hunter. It's not quite ready yet, but
1883 close.
1887 close.
1884
1888
1885 2004-08-22 Fernando Perez <fperez@colorado.edu>
1889 2004-08-22 Fernando Perez <fperez@colorado.edu>
1886
1890
1887 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1891 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1888 in Magic and ultraTB.
1892 in Magic and ultraTB.
1889
1893
1890 * ipython.1: document threading options in manpage.
1894 * ipython.1: document threading options in manpage.
1891
1895
1892 * scripts/ipython: Changed name of -thread option to -gthread,
1896 * scripts/ipython: Changed name of -thread option to -gthread,
1893 since this is GTK specific. I want to leave the door open for a
1897 since this is GTK specific. I want to leave the door open for a
1894 -wthread option for WX, which will most likely be necessary. This
1898 -wthread option for WX, which will most likely be necessary. This
1895 change affects usage and ipmaker as well.
1899 change affects usage and ipmaker as well.
1896
1900
1897 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1901 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1898 handle the matplotlib shell issues. Code by John Hunter
1902 handle the matplotlib shell issues. Code by John Hunter
1899 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1903 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1900 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1904 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1901 broken (and disabled for end users) for now, but it puts the
1905 broken (and disabled for end users) for now, but it puts the
1902 infrastructure in place.
1906 infrastructure in place.
1903
1907
1904 2004-08-21 Fernando Perez <fperez@colorado.edu>
1908 2004-08-21 Fernando Perez <fperez@colorado.edu>
1905
1909
1906 * ipythonrc-pylab: Add matplotlib support.
1910 * ipythonrc-pylab: Add matplotlib support.
1907
1911
1908 * matplotlib_config.py: new files for matplotlib support, part of
1912 * matplotlib_config.py: new files for matplotlib support, part of
1909 the pylab profile.
1913 the pylab profile.
1910
1914
1911 * IPython/usage.py (__doc__): documented the threading options.
1915 * IPython/usage.py (__doc__): documented the threading options.
1912
1916
1913 2004-08-20 Fernando Perez <fperez@colorado.edu>
1917 2004-08-20 Fernando Perez <fperez@colorado.edu>
1914
1918
1915 * ipython: Modified the main calling routine to handle the -thread
1919 * ipython: Modified the main calling routine to handle the -thread
1916 and -mpthread options. This needs to be done as a top-level hack,
1920 and -mpthread options. This needs to be done as a top-level hack,
1917 because it determines which class to instantiate for IPython
1921 because it determines which class to instantiate for IPython
1918 itself.
1922 itself.
1919
1923
1920 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1924 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1921 classes to support multithreaded GTK operation without blocking,
1925 classes to support multithreaded GTK operation without blocking,
1922 and matplotlib with all backends. This is a lot of still very
1926 and matplotlib with all backends. This is a lot of still very
1923 experimental code, and threads are tricky. So it may still have a
1927 experimental code, and threads are tricky. So it may still have a
1924 few rough edges... This code owes a lot to
1928 few rough edges... This code owes a lot to
1925 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1929 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1926 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1930 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1927 to John Hunter for all the matplotlib work.
1931 to John Hunter for all the matplotlib work.
1928
1932
1929 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1933 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1930 options for gtk thread and matplotlib support.
1934 options for gtk thread and matplotlib support.
1931
1935
1932 2004-08-16 Fernando Perez <fperez@colorado.edu>
1936 2004-08-16 Fernando Perez <fperez@colorado.edu>
1933
1937
1934 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1938 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1935 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1939 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1936 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1940 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1937
1941
1938 2004-08-11 Fernando Perez <fperez@colorado.edu>
1942 2004-08-11 Fernando Perez <fperez@colorado.edu>
1939
1943
1940 * setup.py (isfile): Fix build so documentation gets updated for
1944 * setup.py (isfile): Fix build so documentation gets updated for
1941 rpms (it was only done for .tgz builds).
1945 rpms (it was only done for .tgz builds).
1942
1946
1943 2004-08-10 Fernando Perez <fperez@colorado.edu>
1947 2004-08-10 Fernando Perez <fperez@colorado.edu>
1944
1948
1945 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1949 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1946
1950
1947 * iplib.py : Silence syntax error exceptions in tab-completion.
1951 * iplib.py : Silence syntax error exceptions in tab-completion.
1948
1952
1949 2004-08-05 Fernando Perez <fperez@colorado.edu>
1953 2004-08-05 Fernando Perez <fperez@colorado.edu>
1950
1954
1951 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1955 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1952 'color off' mark for continuation prompts. This was causing long
1956 'color off' mark for continuation prompts. This was causing long
1953 continuation lines to mis-wrap.
1957 continuation lines to mis-wrap.
1954
1958
1955 2004-08-01 Fernando Perez <fperez@colorado.edu>
1959 2004-08-01 Fernando Perez <fperez@colorado.edu>
1956
1960
1957 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1961 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1958 for building ipython to be a parameter. All this is necessary
1962 for building ipython to be a parameter. All this is necessary
1959 right now to have a multithreaded version, but this insane
1963 right now to have a multithreaded version, but this insane
1960 non-design will be cleaned up soon. For now, it's a hack that
1964 non-design will be cleaned up soon. For now, it's a hack that
1961 works.
1965 works.
1962
1966
1963 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1967 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1964 args in various places. No bugs so far, but it's a dangerous
1968 args in various places. No bugs so far, but it's a dangerous
1965 practice.
1969 practice.
1966
1970
1967 2004-07-31 Fernando Perez <fperez@colorado.edu>
1971 2004-07-31 Fernando Perez <fperez@colorado.edu>
1968
1972
1969 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1973 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1970 fix completion of files with dots in their names under most
1974 fix completion of files with dots in their names under most
1971 profiles (pysh was OK because the completion order is different).
1975 profiles (pysh was OK because the completion order is different).
1972
1976
1973 2004-07-27 Fernando Perez <fperez@colorado.edu>
1977 2004-07-27 Fernando Perez <fperez@colorado.edu>
1974
1978
1975 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1979 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1976 keywords manually, b/c the one in keyword.py was removed in python
1980 keywords manually, b/c the one in keyword.py was removed in python
1977 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1981 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1978 This is NOT a bug under python 2.3 and earlier.
1982 This is NOT a bug under python 2.3 and earlier.
1979
1983
1980 2004-07-26 Fernando Perez <fperez@colorado.edu>
1984 2004-07-26 Fernando Perez <fperez@colorado.edu>
1981
1985
1982 * IPython/ultraTB.py (VerboseTB.text): Add another
1986 * IPython/ultraTB.py (VerboseTB.text): Add another
1983 linecache.checkcache() call to try to prevent inspect.py from
1987 linecache.checkcache() call to try to prevent inspect.py from
1984 crashing under python 2.3. I think this fixes
1988 crashing under python 2.3. I think this fixes
1985 http://www.scipy.net/roundup/ipython/issue17.
1989 http://www.scipy.net/roundup/ipython/issue17.
1986
1990
1987 2004-07-26 *** Released version 0.6.2
1991 2004-07-26 *** Released version 0.6.2
1988
1992
1989 2004-07-26 Fernando Perez <fperez@colorado.edu>
1993 2004-07-26 Fernando Perez <fperez@colorado.edu>
1990
1994
1991 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1995 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1992 fail for any number.
1996 fail for any number.
1993 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1997 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1994 empty bookmarks.
1998 empty bookmarks.
1995
1999
1996 2004-07-26 *** Released version 0.6.1
2000 2004-07-26 *** Released version 0.6.1
1997
2001
1998 2004-07-26 Fernando Perez <fperez@colorado.edu>
2002 2004-07-26 Fernando Perez <fperez@colorado.edu>
1999
2003
2000 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2004 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2001
2005
2002 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2006 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2003 escaping '()[]{}' in filenames.
2007 escaping '()[]{}' in filenames.
2004
2008
2005 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2009 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2006 Python 2.2 users who lack a proper shlex.split.
2010 Python 2.2 users who lack a proper shlex.split.
2007
2011
2008 2004-07-19 Fernando Perez <fperez@colorado.edu>
2012 2004-07-19 Fernando Perez <fperez@colorado.edu>
2009
2013
2010 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2014 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2011 for reading readline's init file. I follow the normal chain:
2015 for reading readline's init file. I follow the normal chain:
2012 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2016 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2013 report by Mike Heeter. This closes
2017 report by Mike Heeter. This closes
2014 http://www.scipy.net/roundup/ipython/issue16.
2018 http://www.scipy.net/roundup/ipython/issue16.
2015
2019
2016 2004-07-18 Fernando Perez <fperez@colorado.edu>
2020 2004-07-18 Fernando Perez <fperez@colorado.edu>
2017
2021
2018 * IPython/iplib.py (__init__): Add better handling of '\' under
2022 * IPython/iplib.py (__init__): Add better handling of '\' under
2019 Win32 for filenames. After a patch by Ville.
2023 Win32 for filenames. After a patch by Ville.
2020
2024
2021 2004-07-17 Fernando Perez <fperez@colorado.edu>
2025 2004-07-17 Fernando Perez <fperez@colorado.edu>
2022
2026
2023 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2027 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2024 autocalling would be triggered for 'foo is bar' if foo is
2028 autocalling would be triggered for 'foo is bar' if foo is
2025 callable. I also cleaned up the autocall detection code to use a
2029 callable. I also cleaned up the autocall detection code to use a
2026 regexp, which is faster. Bug reported by Alexander Schmolck.
2030 regexp, which is faster. Bug reported by Alexander Schmolck.
2027
2031
2028 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2032 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2029 '?' in them would confuse the help system. Reported by Alex
2033 '?' in them would confuse the help system. Reported by Alex
2030 Schmolck.
2034 Schmolck.
2031
2035
2032 2004-07-16 Fernando Perez <fperez@colorado.edu>
2036 2004-07-16 Fernando Perez <fperez@colorado.edu>
2033
2037
2034 * IPython/GnuplotInteractive.py (__all__): added plot2.
2038 * IPython/GnuplotInteractive.py (__all__): added plot2.
2035
2039
2036 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2040 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2037 plotting dictionaries, lists or tuples of 1d arrays.
2041 plotting dictionaries, lists or tuples of 1d arrays.
2038
2042
2039 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2043 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2040 optimizations.
2044 optimizations.
2041
2045
2042 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2046 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2043 the information which was there from Janko's original IPP code:
2047 the information which was there from Janko's original IPP code:
2044
2048
2045 03.05.99 20:53 porto.ifm.uni-kiel.de
2049 03.05.99 20:53 porto.ifm.uni-kiel.de
2046 --Started changelog.
2050 --Started changelog.
2047 --make clear do what it say it does
2051 --make clear do what it say it does
2048 --added pretty output of lines from inputcache
2052 --added pretty output of lines from inputcache
2049 --Made Logger a mixin class, simplifies handling of switches
2053 --Made Logger a mixin class, simplifies handling of switches
2050 --Added own completer class. .string<TAB> expands to last history
2054 --Added own completer class. .string<TAB> expands to last history
2051 line which starts with string. The new expansion is also present
2055 line which starts with string. The new expansion is also present
2052 with Ctrl-r from the readline library. But this shows, who this
2056 with Ctrl-r from the readline library. But this shows, who this
2053 can be done for other cases.
2057 can be done for other cases.
2054 --Added convention that all shell functions should accept a
2058 --Added convention that all shell functions should accept a
2055 parameter_string This opens the door for different behaviour for
2059 parameter_string This opens the door for different behaviour for
2056 each function. @cd is a good example of this.
2060 each function. @cd is a good example of this.
2057
2061
2058 04.05.99 12:12 porto.ifm.uni-kiel.de
2062 04.05.99 12:12 porto.ifm.uni-kiel.de
2059 --added logfile rotation
2063 --added logfile rotation
2060 --added new mainloop method which freezes first the namespace
2064 --added new mainloop method which freezes first the namespace
2061
2065
2062 07.05.99 21:24 porto.ifm.uni-kiel.de
2066 07.05.99 21:24 porto.ifm.uni-kiel.de
2063 --added the docreader classes. Now there is a help system.
2067 --added the docreader classes. Now there is a help system.
2064 -This is only a first try. Currently it's not easy to put new
2068 -This is only a first try. Currently it's not easy to put new
2065 stuff in the indices. But this is the way to go. Info would be
2069 stuff in the indices. But this is the way to go. Info would be
2066 better, but HTML is every where and not everybody has an info
2070 better, but HTML is every where and not everybody has an info
2067 system installed and it's not so easy to change html-docs to info.
2071 system installed and it's not so easy to change html-docs to info.
2068 --added global logfile option
2072 --added global logfile option
2069 --there is now a hook for object inspection method pinfo needs to
2073 --there is now a hook for object inspection method pinfo needs to
2070 be provided for this. Can be reached by two '??'.
2074 be provided for this. Can be reached by two '??'.
2071
2075
2072 08.05.99 20:51 porto.ifm.uni-kiel.de
2076 08.05.99 20:51 porto.ifm.uni-kiel.de
2073 --added a README
2077 --added a README
2074 --bug in rc file. Something has changed so functions in the rc
2078 --bug in rc file. Something has changed so functions in the rc
2075 file need to reference the shell and not self. Not clear if it's a
2079 file need to reference the shell and not self. Not clear if it's a
2076 bug or feature.
2080 bug or feature.
2077 --changed rc file for new behavior
2081 --changed rc file for new behavior
2078
2082
2079 2004-07-15 Fernando Perez <fperez@colorado.edu>
2083 2004-07-15 Fernando Perez <fperez@colorado.edu>
2080
2084
2081 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2085 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2082 cache was falling out of sync in bizarre manners when multi-line
2086 cache was falling out of sync in bizarre manners when multi-line
2083 input was present. Minor optimizations and cleanup.
2087 input was present. Minor optimizations and cleanup.
2084
2088
2085 (Logger): Remove old Changelog info for cleanup. This is the
2089 (Logger): Remove old Changelog info for cleanup. This is the
2086 information which was there from Janko's original code:
2090 information which was there from Janko's original code:
2087
2091
2088 Changes to Logger: - made the default log filename a parameter
2092 Changes to Logger: - made the default log filename a parameter
2089
2093
2090 - put a check for lines beginning with !@? in log(). Needed
2094 - put a check for lines beginning with !@? in log(). Needed
2091 (even if the handlers properly log their lines) for mid-session
2095 (even if the handlers properly log their lines) for mid-session
2092 logging activation to work properly. Without this, lines logged
2096 logging activation to work properly. Without this, lines logged
2093 in mid session, which get read from the cache, would end up
2097 in mid session, which get read from the cache, would end up
2094 'bare' (with !@? in the open) in the log. Now they are caught
2098 'bare' (with !@? in the open) in the log. Now they are caught
2095 and prepended with a #.
2099 and prepended with a #.
2096
2100
2097 * IPython/iplib.py (InteractiveShell.init_readline): added check
2101 * IPython/iplib.py (InteractiveShell.init_readline): added check
2098 in case MagicCompleter fails to be defined, so we don't crash.
2102 in case MagicCompleter fails to be defined, so we don't crash.
2099
2103
2100 2004-07-13 Fernando Perez <fperez@colorado.edu>
2104 2004-07-13 Fernando Perez <fperez@colorado.edu>
2101
2105
2102 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2106 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2103 of EPS if the requested filename ends in '.eps'.
2107 of EPS if the requested filename ends in '.eps'.
2104
2108
2105 2004-07-04 Fernando Perez <fperez@colorado.edu>
2109 2004-07-04 Fernando Perez <fperez@colorado.edu>
2106
2110
2107 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2111 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2108 escaping of quotes when calling the shell.
2112 escaping of quotes when calling the shell.
2109
2113
2110 2004-07-02 Fernando Perez <fperez@colorado.edu>
2114 2004-07-02 Fernando Perez <fperez@colorado.edu>
2111
2115
2112 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2116 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2113 gettext not working because we were clobbering '_'. Fixes
2117 gettext not working because we were clobbering '_'. Fixes
2114 http://www.scipy.net/roundup/ipython/issue6.
2118 http://www.scipy.net/roundup/ipython/issue6.
2115
2119
2116 2004-07-01 Fernando Perez <fperez@colorado.edu>
2120 2004-07-01 Fernando Perez <fperez@colorado.edu>
2117
2121
2118 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2122 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2119 into @cd. Patch by Ville.
2123 into @cd. Patch by Ville.
2120
2124
2121 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2125 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2122 new function to store things after ipmaker runs. Patch by Ville.
2126 new function to store things after ipmaker runs. Patch by Ville.
2123 Eventually this will go away once ipmaker is removed and the class
2127 Eventually this will go away once ipmaker is removed and the class
2124 gets cleaned up, but for now it's ok. Key functionality here is
2128 gets cleaned up, but for now it's ok. Key functionality here is
2125 the addition of the persistent storage mechanism, a dict for
2129 the addition of the persistent storage mechanism, a dict for
2126 keeping data across sessions (for now just bookmarks, but more can
2130 keeping data across sessions (for now just bookmarks, but more can
2127 be implemented later).
2131 be implemented later).
2128
2132
2129 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2133 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2130 persistent across sections. Patch by Ville, I modified it
2134 persistent across sections. Patch by Ville, I modified it
2131 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2135 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2132 added a '-l' option to list all bookmarks.
2136 added a '-l' option to list all bookmarks.
2133
2137
2134 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2138 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2135 center for cleanup. Registered with atexit.register(). I moved
2139 center for cleanup. Registered with atexit.register(). I moved
2136 here the old exit_cleanup(). After a patch by Ville.
2140 here the old exit_cleanup(). After a patch by Ville.
2137
2141
2138 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2142 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2139 characters in the hacked shlex_split for python 2.2.
2143 characters in the hacked shlex_split for python 2.2.
2140
2144
2141 * IPython/iplib.py (file_matches): more fixes to filenames with
2145 * IPython/iplib.py (file_matches): more fixes to filenames with
2142 whitespace in them. It's not perfect, but limitations in python's
2146 whitespace in them. It's not perfect, but limitations in python's
2143 readline make it impossible to go further.
2147 readline make it impossible to go further.
2144
2148
2145 2004-06-29 Fernando Perez <fperez@colorado.edu>
2149 2004-06-29 Fernando Perez <fperez@colorado.edu>
2146
2150
2147 * IPython/iplib.py (file_matches): escape whitespace correctly in
2151 * IPython/iplib.py (file_matches): escape whitespace correctly in
2148 filename completions. Bug reported by Ville.
2152 filename completions. Bug reported by Ville.
2149
2153
2150 2004-06-28 Fernando Perez <fperez@colorado.edu>
2154 2004-06-28 Fernando Perez <fperez@colorado.edu>
2151
2155
2152 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2156 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2153 the history file will be called 'history-PROFNAME' (or just
2157 the history file will be called 'history-PROFNAME' (or just
2154 'history' if no profile is loaded). I was getting annoyed at
2158 'history' if no profile is loaded). I was getting annoyed at
2155 getting my Numerical work history clobbered by pysh sessions.
2159 getting my Numerical work history clobbered by pysh sessions.
2156
2160
2157 * IPython/iplib.py (InteractiveShell.__init__): Internal
2161 * IPython/iplib.py (InteractiveShell.__init__): Internal
2158 getoutputerror() function so that we can honor the system_verbose
2162 getoutputerror() function so that we can honor the system_verbose
2159 flag for _all_ system calls. I also added escaping of #
2163 flag for _all_ system calls. I also added escaping of #
2160 characters here to avoid confusing Itpl.
2164 characters here to avoid confusing Itpl.
2161
2165
2162 * IPython/Magic.py (shlex_split): removed call to shell in
2166 * IPython/Magic.py (shlex_split): removed call to shell in
2163 parse_options and replaced it with shlex.split(). The annoying
2167 parse_options and replaced it with shlex.split(). The annoying
2164 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2168 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2165 to backport it from 2.3, with several frail hacks (the shlex
2169 to backport it from 2.3, with several frail hacks (the shlex
2166 module is rather limited in 2.2). Thanks to a suggestion by Ville
2170 module is rather limited in 2.2). Thanks to a suggestion by Ville
2167 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2171 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2168 problem.
2172 problem.
2169
2173
2170 (Magic.magic_system_verbose): new toggle to print the actual
2174 (Magic.magic_system_verbose): new toggle to print the actual
2171 system calls made by ipython. Mainly for debugging purposes.
2175 system calls made by ipython. Mainly for debugging purposes.
2172
2176
2173 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2177 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2174 doesn't support persistence. Reported (and fix suggested) by
2178 doesn't support persistence. Reported (and fix suggested) by
2175 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2179 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2176
2180
2177 2004-06-26 Fernando Perez <fperez@colorado.edu>
2181 2004-06-26 Fernando Perez <fperez@colorado.edu>
2178
2182
2179 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2183 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2180 continue prompts.
2184 continue prompts.
2181
2185
2182 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2186 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2183 function (basically a big docstring) and a few more things here to
2187 function (basically a big docstring) and a few more things here to
2184 speedup startup. pysh.py is now very lightweight. We want because
2188 speedup startup. pysh.py is now very lightweight. We want because
2185 it gets execfile'd, while InterpreterExec gets imported, so
2189 it gets execfile'd, while InterpreterExec gets imported, so
2186 byte-compilation saves time.
2190 byte-compilation saves time.
2187
2191
2188 2004-06-25 Fernando Perez <fperez@colorado.edu>
2192 2004-06-25 Fernando Perez <fperez@colorado.edu>
2189
2193
2190 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2194 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2191 -NUM', which was recently broken.
2195 -NUM', which was recently broken.
2192
2196
2193 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2197 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2194 in multi-line input (but not !!, which doesn't make sense there).
2198 in multi-line input (but not !!, which doesn't make sense there).
2195
2199
2196 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2200 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2197 It's just too useful, and people can turn it off in the less
2201 It's just too useful, and people can turn it off in the less
2198 common cases where it's a problem.
2202 common cases where it's a problem.
2199
2203
2200 2004-06-24 Fernando Perez <fperez@colorado.edu>
2204 2004-06-24 Fernando Perez <fperez@colorado.edu>
2201
2205
2202 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2206 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2203 special syntaxes (like alias calling) is now allied in multi-line
2207 special syntaxes (like alias calling) is now allied in multi-line
2204 input. This is still _very_ experimental, but it's necessary for
2208 input. This is still _very_ experimental, but it's necessary for
2205 efficient shell usage combining python looping syntax with system
2209 efficient shell usage combining python looping syntax with system
2206 calls. For now it's restricted to aliases, I don't think it
2210 calls. For now it's restricted to aliases, I don't think it
2207 really even makes sense to have this for magics.
2211 really even makes sense to have this for magics.
2208
2212
2209 2004-06-23 Fernando Perez <fperez@colorado.edu>
2213 2004-06-23 Fernando Perez <fperez@colorado.edu>
2210
2214
2211 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2215 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2212 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2216 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2213
2217
2214 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2218 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2215 extensions under Windows (after code sent by Gary Bishop). The
2219 extensions under Windows (after code sent by Gary Bishop). The
2216 extensions considered 'executable' are stored in IPython's rc
2220 extensions considered 'executable' are stored in IPython's rc
2217 structure as win_exec_ext.
2221 structure as win_exec_ext.
2218
2222
2219 * IPython/genutils.py (shell): new function, like system() but
2223 * IPython/genutils.py (shell): new function, like system() but
2220 without return value. Very useful for interactive shell work.
2224 without return value. Very useful for interactive shell work.
2221
2225
2222 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2226 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2223 delete aliases.
2227 delete aliases.
2224
2228
2225 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2229 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2226 sure that the alias table doesn't contain python keywords.
2230 sure that the alias table doesn't contain python keywords.
2227
2231
2228 2004-06-21 Fernando Perez <fperez@colorado.edu>
2232 2004-06-21 Fernando Perez <fperez@colorado.edu>
2229
2233
2230 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2234 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2231 non-existent items are found in $PATH. Reported by Thorsten.
2235 non-existent items are found in $PATH. Reported by Thorsten.
2232
2236
2233 2004-06-20 Fernando Perez <fperez@colorado.edu>
2237 2004-06-20 Fernando Perez <fperez@colorado.edu>
2234
2238
2235 * IPython/iplib.py (complete): modified the completer so that the
2239 * IPython/iplib.py (complete): modified the completer so that the
2236 order of priorities can be easily changed at runtime.
2240 order of priorities can be easily changed at runtime.
2237
2241
2238 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2242 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2239 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2243 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2240
2244
2241 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2245 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2242 expand Python variables prepended with $ in all system calls. The
2246 expand Python variables prepended with $ in all system calls. The
2243 same was done to InteractiveShell.handle_shell_escape. Now all
2247 same was done to InteractiveShell.handle_shell_escape. Now all
2244 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2248 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2245 expansion of python variables and expressions according to the
2249 expansion of python variables and expressions according to the
2246 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2250 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2247
2251
2248 Though PEP-215 has been rejected, a similar (but simpler) one
2252 Though PEP-215 has been rejected, a similar (but simpler) one
2249 seems like it will go into Python 2.4, PEP-292 -
2253 seems like it will go into Python 2.4, PEP-292 -
2250 http://www.python.org/peps/pep-0292.html.
2254 http://www.python.org/peps/pep-0292.html.
2251
2255
2252 I'll keep the full syntax of PEP-215, since IPython has since the
2256 I'll keep the full syntax of PEP-215, since IPython has since the
2253 start used Ka-Ping Yee's reference implementation discussed there
2257 start used Ka-Ping Yee's reference implementation discussed there
2254 (Itpl), and I actually like the powerful semantics it offers.
2258 (Itpl), and I actually like the powerful semantics it offers.
2255
2259
2256 In order to access normal shell variables, the $ has to be escaped
2260 In order to access normal shell variables, the $ has to be escaped
2257 via an extra $. For example:
2261 via an extra $. For example:
2258
2262
2259 In [7]: PATH='a python variable'
2263 In [7]: PATH='a python variable'
2260
2264
2261 In [8]: !echo $PATH
2265 In [8]: !echo $PATH
2262 a python variable
2266 a python variable
2263
2267
2264 In [9]: !echo $$PATH
2268 In [9]: !echo $$PATH
2265 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2269 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2266
2270
2267 (Magic.parse_options): escape $ so the shell doesn't evaluate
2271 (Magic.parse_options): escape $ so the shell doesn't evaluate
2268 things prematurely.
2272 things prematurely.
2269
2273
2270 * IPython/iplib.py (InteractiveShell.call_alias): added the
2274 * IPython/iplib.py (InteractiveShell.call_alias): added the
2271 ability for aliases to expand python variables via $.
2275 ability for aliases to expand python variables via $.
2272
2276
2273 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2277 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2274 system, now there's a @rehash/@rehashx pair of magics. These work
2278 system, now there's a @rehash/@rehashx pair of magics. These work
2275 like the csh rehash command, and can be invoked at any time. They
2279 like the csh rehash command, and can be invoked at any time. They
2276 build a table of aliases to everything in the user's $PATH
2280 build a table of aliases to everything in the user's $PATH
2277 (@rehash uses everything, @rehashx is slower but only adds
2281 (@rehash uses everything, @rehashx is slower but only adds
2278 executable files). With this, the pysh.py-based shell profile can
2282 executable files). With this, the pysh.py-based shell profile can
2279 now simply call rehash upon startup, and full access to all
2283 now simply call rehash upon startup, and full access to all
2280 programs in the user's path is obtained.
2284 programs in the user's path is obtained.
2281
2285
2282 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2286 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2283 functionality is now fully in place. I removed the old dynamic
2287 functionality is now fully in place. I removed the old dynamic
2284 code generation based approach, in favor of a much lighter one
2288 code generation based approach, in favor of a much lighter one
2285 based on a simple dict. The advantage is that this allows me to
2289 based on a simple dict. The advantage is that this allows me to
2286 now have thousands of aliases with negligible cost (unthinkable
2290 now have thousands of aliases with negligible cost (unthinkable
2287 with the old system).
2291 with the old system).
2288
2292
2289 2004-06-19 Fernando Perez <fperez@colorado.edu>
2293 2004-06-19 Fernando Perez <fperez@colorado.edu>
2290
2294
2291 * IPython/iplib.py (__init__): extended MagicCompleter class to
2295 * IPython/iplib.py (__init__): extended MagicCompleter class to
2292 also complete (last in priority) on user aliases.
2296 also complete (last in priority) on user aliases.
2293
2297
2294 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2298 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2295 call to eval.
2299 call to eval.
2296 (ItplNS.__init__): Added a new class which functions like Itpl,
2300 (ItplNS.__init__): Added a new class which functions like Itpl,
2297 but allows configuring the namespace for the evaluation to occur
2301 but allows configuring the namespace for the evaluation to occur
2298 in.
2302 in.
2299
2303
2300 2004-06-18 Fernando Perez <fperez@colorado.edu>
2304 2004-06-18 Fernando Perez <fperez@colorado.edu>
2301
2305
2302 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2306 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2303 better message when 'exit' or 'quit' are typed (a common newbie
2307 better message when 'exit' or 'quit' are typed (a common newbie
2304 confusion).
2308 confusion).
2305
2309
2306 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2310 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2307 check for Windows users.
2311 check for Windows users.
2308
2312
2309 * IPython/iplib.py (InteractiveShell.user_setup): removed
2313 * IPython/iplib.py (InteractiveShell.user_setup): removed
2310 disabling of colors for Windows. I'll test at runtime and issue a
2314 disabling of colors for Windows. I'll test at runtime and issue a
2311 warning if Gary's readline isn't found, as to nudge users to
2315 warning if Gary's readline isn't found, as to nudge users to
2312 download it.
2316 download it.
2313
2317
2314 2004-06-16 Fernando Perez <fperez@colorado.edu>
2318 2004-06-16 Fernando Perez <fperez@colorado.edu>
2315
2319
2316 * IPython/genutils.py (Stream.__init__): changed to print errors
2320 * IPython/genutils.py (Stream.__init__): changed to print errors
2317 to sys.stderr. I had a circular dependency here. Now it's
2321 to sys.stderr. I had a circular dependency here. Now it's
2318 possible to run ipython as IDLE's shell (consider this pre-alpha,
2322 possible to run ipython as IDLE's shell (consider this pre-alpha,
2319 since true stdout things end up in the starting terminal instead
2323 since true stdout things end up in the starting terminal instead
2320 of IDLE's out).
2324 of IDLE's out).
2321
2325
2322 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2326 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2323 users who haven't # updated their prompt_in2 definitions. Remove
2327 users who haven't # updated their prompt_in2 definitions. Remove
2324 eventually.
2328 eventually.
2325 (multiple_replace): added credit to original ASPN recipe.
2329 (multiple_replace): added credit to original ASPN recipe.
2326
2330
2327 2004-06-15 Fernando Perez <fperez@colorado.edu>
2331 2004-06-15 Fernando Perez <fperez@colorado.edu>
2328
2332
2329 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2333 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2330 list of auto-defined aliases.
2334 list of auto-defined aliases.
2331
2335
2332 2004-06-13 Fernando Perez <fperez@colorado.edu>
2336 2004-06-13 Fernando Perez <fperez@colorado.edu>
2333
2337
2334 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2338 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2335 install was really requested (so setup.py can be used for other
2339 install was really requested (so setup.py can be used for other
2336 things under Windows).
2340 things under Windows).
2337
2341
2338 2004-06-10 Fernando Perez <fperez@colorado.edu>
2342 2004-06-10 Fernando Perez <fperez@colorado.edu>
2339
2343
2340 * IPython/Logger.py (Logger.create_log): Manually remove any old
2344 * IPython/Logger.py (Logger.create_log): Manually remove any old
2341 backup, since os.remove may fail under Windows. Fixes bug
2345 backup, since os.remove may fail under Windows. Fixes bug
2342 reported by Thorsten.
2346 reported by Thorsten.
2343
2347
2344 2004-06-09 Fernando Perez <fperez@colorado.edu>
2348 2004-06-09 Fernando Perez <fperez@colorado.edu>
2345
2349
2346 * examples/example-embed.py: fixed all references to %n (replaced
2350 * examples/example-embed.py: fixed all references to %n (replaced
2347 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2351 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2348 for all examples and the manual as well.
2352 for all examples and the manual as well.
2349
2353
2350 2004-06-08 Fernando Perez <fperez@colorado.edu>
2354 2004-06-08 Fernando Perez <fperez@colorado.edu>
2351
2355
2352 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2356 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2353 alignment and color management. All 3 prompt subsystems now
2357 alignment and color management. All 3 prompt subsystems now
2354 inherit from BasePrompt.
2358 inherit from BasePrompt.
2355
2359
2356 * tools/release: updates for windows installer build and tag rpms
2360 * tools/release: updates for windows installer build and tag rpms
2357 with python version (since paths are fixed).
2361 with python version (since paths are fixed).
2358
2362
2359 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2363 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2360 which will become eventually obsolete. Also fixed the default
2364 which will become eventually obsolete. Also fixed the default
2361 prompt_in2 to use \D, so at least new users start with the correct
2365 prompt_in2 to use \D, so at least new users start with the correct
2362 defaults.
2366 defaults.
2363 WARNING: Users with existing ipythonrc files will need to apply
2367 WARNING: Users with existing ipythonrc files will need to apply
2364 this fix manually!
2368 this fix manually!
2365
2369
2366 * setup.py: make windows installer (.exe). This is finally the
2370 * setup.py: make windows installer (.exe). This is finally the
2367 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2371 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2368 which I hadn't included because it required Python 2.3 (or recent
2372 which I hadn't included because it required Python 2.3 (or recent
2369 distutils).
2373 distutils).
2370
2374
2371 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2375 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2372 usage of new '\D' escape.
2376 usage of new '\D' escape.
2373
2377
2374 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2378 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2375 lacks os.getuid())
2379 lacks os.getuid())
2376 (CachedOutput.set_colors): Added the ability to turn coloring
2380 (CachedOutput.set_colors): Added the ability to turn coloring
2377 on/off with @colors even for manually defined prompt colors. It
2381 on/off with @colors even for manually defined prompt colors. It
2378 uses a nasty global, but it works safely and via the generic color
2382 uses a nasty global, but it works safely and via the generic color
2379 handling mechanism.
2383 handling mechanism.
2380 (Prompt2.__init__): Introduced new escape '\D' for continuation
2384 (Prompt2.__init__): Introduced new escape '\D' for continuation
2381 prompts. It represents the counter ('\#') as dots.
2385 prompts. It represents the counter ('\#') as dots.
2382 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2386 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2383 need to update their ipythonrc files and replace '%n' with '\D' in
2387 need to update their ipythonrc files and replace '%n' with '\D' in
2384 their prompt_in2 settings everywhere. Sorry, but there's
2388 their prompt_in2 settings everywhere. Sorry, but there's
2385 otherwise no clean way to get all prompts to properly align. The
2389 otherwise no clean way to get all prompts to properly align. The
2386 ipythonrc shipped with IPython has been updated.
2390 ipythonrc shipped with IPython has been updated.
2387
2391
2388 2004-06-07 Fernando Perez <fperez@colorado.edu>
2392 2004-06-07 Fernando Perez <fperez@colorado.edu>
2389
2393
2390 * setup.py (isfile): Pass local_icons option to latex2html, so the
2394 * setup.py (isfile): Pass local_icons option to latex2html, so the
2391 resulting HTML file is self-contained. Thanks to
2395 resulting HTML file is self-contained. Thanks to
2392 dryice-AT-liu.com.cn for the tip.
2396 dryice-AT-liu.com.cn for the tip.
2393
2397
2394 * pysh.py: I created a new profile 'shell', which implements a
2398 * pysh.py: I created a new profile 'shell', which implements a
2395 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2399 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2396 system shell, nor will it become one anytime soon. It's mainly
2400 system shell, nor will it become one anytime soon. It's mainly
2397 meant to illustrate the use of the new flexible bash-like prompts.
2401 meant to illustrate the use of the new flexible bash-like prompts.
2398 I guess it could be used by hardy souls for true shell management,
2402 I guess it could be used by hardy souls for true shell management,
2399 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2403 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2400 profile. This uses the InterpreterExec extension provided by
2404 profile. This uses the InterpreterExec extension provided by
2401 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2405 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2402
2406
2403 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2407 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2404 auto-align itself with the length of the previous input prompt
2408 auto-align itself with the length of the previous input prompt
2405 (taking into account the invisible color escapes).
2409 (taking into account the invisible color escapes).
2406 (CachedOutput.__init__): Large restructuring of this class. Now
2410 (CachedOutput.__init__): Large restructuring of this class. Now
2407 all three prompts (primary1, primary2, output) are proper objects,
2411 all three prompts (primary1, primary2, output) are proper objects,
2408 managed by the 'parent' CachedOutput class. The code is still a
2412 managed by the 'parent' CachedOutput class. The code is still a
2409 bit hackish (all prompts share state via a pointer to the cache),
2413 bit hackish (all prompts share state via a pointer to the cache),
2410 but it's overall far cleaner than before.
2414 but it's overall far cleaner than before.
2411
2415
2412 * IPython/genutils.py (getoutputerror): modified to add verbose,
2416 * IPython/genutils.py (getoutputerror): modified to add verbose,
2413 debug and header options. This makes the interface of all getout*
2417 debug and header options. This makes the interface of all getout*
2414 functions uniform.
2418 functions uniform.
2415 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2419 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2416
2420
2417 * IPython/Magic.py (Magic.default_option): added a function to
2421 * IPython/Magic.py (Magic.default_option): added a function to
2418 allow registering default options for any magic command. This
2422 allow registering default options for any magic command. This
2419 makes it easy to have profiles which customize the magics globally
2423 makes it easy to have profiles which customize the magics globally
2420 for a certain use. The values set through this function are
2424 for a certain use. The values set through this function are
2421 picked up by the parse_options() method, which all magics should
2425 picked up by the parse_options() method, which all magics should
2422 use to parse their options.
2426 use to parse their options.
2423
2427
2424 * IPython/genutils.py (warn): modified the warnings framework to
2428 * IPython/genutils.py (warn): modified the warnings framework to
2425 use the Term I/O class. I'm trying to slowly unify all of
2429 use the Term I/O class. I'm trying to slowly unify all of
2426 IPython's I/O operations to pass through Term.
2430 IPython's I/O operations to pass through Term.
2427
2431
2428 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2432 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2429 the secondary prompt to correctly match the length of the primary
2433 the secondary prompt to correctly match the length of the primary
2430 one for any prompt. Now multi-line code will properly line up
2434 one for any prompt. Now multi-line code will properly line up
2431 even for path dependent prompts, such as the new ones available
2435 even for path dependent prompts, such as the new ones available
2432 via the prompt_specials.
2436 via the prompt_specials.
2433
2437
2434 2004-06-06 Fernando Perez <fperez@colorado.edu>
2438 2004-06-06 Fernando Perez <fperez@colorado.edu>
2435
2439
2436 * IPython/Prompts.py (prompt_specials): Added the ability to have
2440 * IPython/Prompts.py (prompt_specials): Added the ability to have
2437 bash-like special sequences in the prompts, which get
2441 bash-like special sequences in the prompts, which get
2438 automatically expanded. Things like hostname, current working
2442 automatically expanded. Things like hostname, current working
2439 directory and username are implemented already, but it's easy to
2443 directory and username are implemented already, but it's easy to
2440 add more in the future. Thanks to a patch by W.J. van der Laan
2444 add more in the future. Thanks to a patch by W.J. van der Laan
2441 <gnufnork-AT-hetdigitalegat.nl>
2445 <gnufnork-AT-hetdigitalegat.nl>
2442 (prompt_specials): Added color support for prompt strings, so
2446 (prompt_specials): Added color support for prompt strings, so
2443 users can define arbitrary color setups for their prompts.
2447 users can define arbitrary color setups for their prompts.
2444
2448
2445 2004-06-05 Fernando Perez <fperez@colorado.edu>
2449 2004-06-05 Fernando Perez <fperez@colorado.edu>
2446
2450
2447 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2451 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2448 code to load Gary Bishop's readline and configure it
2452 code to load Gary Bishop's readline and configure it
2449 automatically. Thanks to Gary for help on this.
2453 automatically. Thanks to Gary for help on this.
2450
2454
2451 2004-06-01 Fernando Perez <fperez@colorado.edu>
2455 2004-06-01 Fernando Perez <fperez@colorado.edu>
2452
2456
2453 * IPython/Logger.py (Logger.create_log): fix bug for logging
2457 * IPython/Logger.py (Logger.create_log): fix bug for logging
2454 with no filename (previous fix was incomplete).
2458 with no filename (previous fix was incomplete).
2455
2459
2456 2004-05-25 Fernando Perez <fperez@colorado.edu>
2460 2004-05-25 Fernando Perez <fperez@colorado.edu>
2457
2461
2458 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2462 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2459 parens would get passed to the shell.
2463 parens would get passed to the shell.
2460
2464
2461 2004-05-20 Fernando Perez <fperez@colorado.edu>
2465 2004-05-20 Fernando Perez <fperez@colorado.edu>
2462
2466
2463 * IPython/Magic.py (Magic.magic_prun): changed default profile
2467 * IPython/Magic.py (Magic.magic_prun): changed default profile
2464 sort order to 'time' (the more common profiling need).
2468 sort order to 'time' (the more common profiling need).
2465
2469
2466 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2470 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2467 so that source code shown is guaranteed in sync with the file on
2471 so that source code shown is guaranteed in sync with the file on
2468 disk (also changed in psource). Similar fix to the one for
2472 disk (also changed in psource). Similar fix to the one for
2469 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2473 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2470 <yann.ledu-AT-noos.fr>.
2474 <yann.ledu-AT-noos.fr>.
2471
2475
2472 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2476 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2473 with a single option would not be correctly parsed. Closes
2477 with a single option would not be correctly parsed. Closes
2474 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2478 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2475 introduced in 0.6.0 (on 2004-05-06).
2479 introduced in 0.6.0 (on 2004-05-06).
2476
2480
2477 2004-05-13 *** Released version 0.6.0
2481 2004-05-13 *** Released version 0.6.0
2478
2482
2479 2004-05-13 Fernando Perez <fperez@colorado.edu>
2483 2004-05-13 Fernando Perez <fperez@colorado.edu>
2480
2484
2481 * debian/: Added debian/ directory to CVS, so that debian support
2485 * debian/: Added debian/ directory to CVS, so that debian support
2482 is publicly accessible. The debian package is maintained by Jack
2486 is publicly accessible. The debian package is maintained by Jack
2483 Moffit <jack-AT-xiph.org>.
2487 Moffit <jack-AT-xiph.org>.
2484
2488
2485 * Documentation: included the notes about an ipython-based system
2489 * Documentation: included the notes about an ipython-based system
2486 shell (the hypothetical 'pysh') into the new_design.pdf document,
2490 shell (the hypothetical 'pysh') into the new_design.pdf document,
2487 so that these ideas get distributed to users along with the
2491 so that these ideas get distributed to users along with the
2488 official documentation.
2492 official documentation.
2489
2493
2490 2004-05-10 Fernando Perez <fperez@colorado.edu>
2494 2004-05-10 Fernando Perez <fperez@colorado.edu>
2491
2495
2492 * IPython/Logger.py (Logger.create_log): fix recently introduced
2496 * IPython/Logger.py (Logger.create_log): fix recently introduced
2493 bug (misindented line) where logstart would fail when not given an
2497 bug (misindented line) where logstart would fail when not given an
2494 explicit filename.
2498 explicit filename.
2495
2499
2496 2004-05-09 Fernando Perez <fperez@colorado.edu>
2500 2004-05-09 Fernando Perez <fperez@colorado.edu>
2497
2501
2498 * IPython/Magic.py (Magic.parse_options): skip system call when
2502 * IPython/Magic.py (Magic.parse_options): skip system call when
2499 there are no options to look for. Faster, cleaner for the common
2503 there are no options to look for. Faster, cleaner for the common
2500 case.
2504 case.
2501
2505
2502 * Documentation: many updates to the manual: describing Windows
2506 * Documentation: many updates to the manual: describing Windows
2503 support better, Gnuplot updates, credits, misc small stuff. Also
2507 support better, Gnuplot updates, credits, misc small stuff. Also
2504 updated the new_design doc a bit.
2508 updated the new_design doc a bit.
2505
2509
2506 2004-05-06 *** Released version 0.6.0.rc1
2510 2004-05-06 *** Released version 0.6.0.rc1
2507
2511
2508 2004-05-06 Fernando Perez <fperez@colorado.edu>
2512 2004-05-06 Fernando Perez <fperez@colorado.edu>
2509
2513
2510 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2514 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2511 operations to use the vastly more efficient list/''.join() method.
2515 operations to use the vastly more efficient list/''.join() method.
2512 (FormattedTB.text): Fix
2516 (FormattedTB.text): Fix
2513 http://www.scipy.net/roundup/ipython/issue12 - exception source
2517 http://www.scipy.net/roundup/ipython/issue12 - exception source
2514 extract not updated after reload. Thanks to Mike Salib
2518 extract not updated after reload. Thanks to Mike Salib
2515 <msalib-AT-mit.edu> for pinning the source of the problem.
2519 <msalib-AT-mit.edu> for pinning the source of the problem.
2516 Fortunately, the solution works inside ipython and doesn't require
2520 Fortunately, the solution works inside ipython and doesn't require
2517 any changes to python proper.
2521 any changes to python proper.
2518
2522
2519 * IPython/Magic.py (Magic.parse_options): Improved to process the
2523 * IPython/Magic.py (Magic.parse_options): Improved to process the
2520 argument list as a true shell would (by actually using the
2524 argument list as a true shell would (by actually using the
2521 underlying system shell). This way, all @magics automatically get
2525 underlying system shell). This way, all @magics automatically get
2522 shell expansion for variables. Thanks to a comment by Alex
2526 shell expansion for variables. Thanks to a comment by Alex
2523 Schmolck.
2527 Schmolck.
2524
2528
2525 2004-04-04 Fernando Perez <fperez@colorado.edu>
2529 2004-04-04 Fernando Perez <fperez@colorado.edu>
2526
2530
2527 * IPython/iplib.py (InteractiveShell.interact): Added a special
2531 * IPython/iplib.py (InteractiveShell.interact): Added a special
2528 trap for a debugger quit exception, which is basically impossible
2532 trap for a debugger quit exception, which is basically impossible
2529 to handle by normal mechanisms, given what pdb does to the stack.
2533 to handle by normal mechanisms, given what pdb does to the stack.
2530 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2534 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2531
2535
2532 2004-04-03 Fernando Perez <fperez@colorado.edu>
2536 2004-04-03 Fernando Perez <fperez@colorado.edu>
2533
2537
2534 * IPython/genutils.py (Term): Standardized the names of the Term
2538 * IPython/genutils.py (Term): Standardized the names of the Term
2535 class streams to cin/cout/cerr, following C++ naming conventions
2539 class streams to cin/cout/cerr, following C++ naming conventions
2536 (I can't use in/out/err because 'in' is not a valid attribute
2540 (I can't use in/out/err because 'in' is not a valid attribute
2537 name).
2541 name).
2538
2542
2539 * IPython/iplib.py (InteractiveShell.interact): don't increment
2543 * IPython/iplib.py (InteractiveShell.interact): don't increment
2540 the prompt if there's no user input. By Daniel 'Dang' Griffith
2544 the prompt if there's no user input. By Daniel 'Dang' Griffith
2541 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2545 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2542 Francois Pinard.
2546 Francois Pinard.
2543
2547
2544 2004-04-02 Fernando Perez <fperez@colorado.edu>
2548 2004-04-02 Fernando Perez <fperez@colorado.edu>
2545
2549
2546 * IPython/genutils.py (Stream.__init__): Modified to survive at
2550 * IPython/genutils.py (Stream.__init__): Modified to survive at
2547 least importing in contexts where stdin/out/err aren't true file
2551 least importing in contexts where stdin/out/err aren't true file
2548 objects, such as PyCrust (they lack fileno() and mode). However,
2552 objects, such as PyCrust (they lack fileno() and mode). However,
2549 the recovery facilities which rely on these things existing will
2553 the recovery facilities which rely on these things existing will
2550 not work.
2554 not work.
2551
2555
2552 2004-04-01 Fernando Perez <fperez@colorado.edu>
2556 2004-04-01 Fernando Perez <fperez@colorado.edu>
2553
2557
2554 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2558 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2555 use the new getoutputerror() function, so it properly
2559 use the new getoutputerror() function, so it properly
2556 distinguishes stdout/err.
2560 distinguishes stdout/err.
2557
2561
2558 * IPython/genutils.py (getoutputerror): added a function to
2562 * IPython/genutils.py (getoutputerror): added a function to
2559 capture separately the standard output and error of a command.
2563 capture separately the standard output and error of a command.
2560 After a comment from dang on the mailing lists. This code is
2564 After a comment from dang on the mailing lists. This code is
2561 basically a modified version of commands.getstatusoutput(), from
2565 basically a modified version of commands.getstatusoutput(), from
2562 the standard library.
2566 the standard library.
2563
2567
2564 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2568 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2565 '!!' as a special syntax (shorthand) to access @sx.
2569 '!!' as a special syntax (shorthand) to access @sx.
2566
2570
2567 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2571 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2568 command and return its output as a list split on '\n'.
2572 command and return its output as a list split on '\n'.
2569
2573
2570 2004-03-31 Fernando Perez <fperez@colorado.edu>
2574 2004-03-31 Fernando Perez <fperez@colorado.edu>
2571
2575
2572 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2576 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2573 method to dictionaries used as FakeModule instances if they lack
2577 method to dictionaries used as FakeModule instances if they lack
2574 it. At least pydoc in python2.3 breaks for runtime-defined
2578 it. At least pydoc in python2.3 breaks for runtime-defined
2575 functions without this hack. At some point I need to _really_
2579 functions without this hack. At some point I need to _really_
2576 understand what FakeModule is doing, because it's a gross hack.
2580 understand what FakeModule is doing, because it's a gross hack.
2577 But it solves Arnd's problem for now...
2581 But it solves Arnd's problem for now...
2578
2582
2579 2004-02-27 Fernando Perez <fperez@colorado.edu>
2583 2004-02-27 Fernando Perez <fperez@colorado.edu>
2580
2584
2581 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2585 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2582 mode would behave erratically. Also increased the number of
2586 mode would behave erratically. Also increased the number of
2583 possible logs in rotate mod to 999. Thanks to Rod Holland
2587 possible logs in rotate mod to 999. Thanks to Rod Holland
2584 <rhh@StructureLABS.com> for the report and fixes.
2588 <rhh@StructureLABS.com> for the report and fixes.
2585
2589
2586 2004-02-26 Fernando Perez <fperez@colorado.edu>
2590 2004-02-26 Fernando Perez <fperez@colorado.edu>
2587
2591
2588 * IPython/genutils.py (page): Check that the curses module really
2592 * IPython/genutils.py (page): Check that the curses module really
2589 has the initscr attribute before trying to use it. For some
2593 has the initscr attribute before trying to use it. For some
2590 reason, the Solaris curses module is missing this. I think this
2594 reason, the Solaris curses module is missing this. I think this
2591 should be considered a Solaris python bug, but I'm not sure.
2595 should be considered a Solaris python bug, but I'm not sure.
2592
2596
2593 2004-01-17 Fernando Perez <fperez@colorado.edu>
2597 2004-01-17 Fernando Perez <fperez@colorado.edu>
2594
2598
2595 * IPython/genutils.py (Stream.__init__): Changes to try to make
2599 * IPython/genutils.py (Stream.__init__): Changes to try to make
2596 ipython robust against stdin/out/err being closed by the user.
2600 ipython robust against stdin/out/err being closed by the user.
2597 This is 'user error' (and blocks a normal python session, at least
2601 This is 'user error' (and blocks a normal python session, at least
2598 the stdout case). However, Ipython should be able to survive such
2602 the stdout case). However, Ipython should be able to survive such
2599 instances of abuse as gracefully as possible. To simplify the
2603 instances of abuse as gracefully as possible. To simplify the
2600 coding and maintain compatibility with Gary Bishop's Term
2604 coding and maintain compatibility with Gary Bishop's Term
2601 contributions, I've made use of classmethods for this. I think
2605 contributions, I've made use of classmethods for this. I think
2602 this introduces a dependency on python 2.2.
2606 this introduces a dependency on python 2.2.
2603
2607
2604 2004-01-13 Fernando Perez <fperez@colorado.edu>
2608 2004-01-13 Fernando Perez <fperez@colorado.edu>
2605
2609
2606 * IPython/numutils.py (exp_safe): simplified the code a bit and
2610 * IPython/numutils.py (exp_safe): simplified the code a bit and
2607 removed the need for importing the kinds module altogether.
2611 removed the need for importing the kinds module altogether.
2608
2612
2609 2004-01-06 Fernando Perez <fperez@colorado.edu>
2613 2004-01-06 Fernando Perez <fperez@colorado.edu>
2610
2614
2611 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2615 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2612 a magic function instead, after some community feedback. No
2616 a magic function instead, after some community feedback. No
2613 special syntax will exist for it, but its name is deliberately
2617 special syntax will exist for it, but its name is deliberately
2614 very short.
2618 very short.
2615
2619
2616 2003-12-20 Fernando Perez <fperez@colorado.edu>
2620 2003-12-20 Fernando Perez <fperez@colorado.edu>
2617
2621
2618 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2622 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2619 new functionality, to automagically assign the result of a shell
2623 new functionality, to automagically assign the result of a shell
2620 command to a variable. I'll solicit some community feedback on
2624 command to a variable. I'll solicit some community feedback on
2621 this before making it permanent.
2625 this before making it permanent.
2622
2626
2623 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2627 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2624 requested about callables for which inspect couldn't obtain a
2628 requested about callables for which inspect couldn't obtain a
2625 proper argspec. Thanks to a crash report sent by Etienne
2629 proper argspec. Thanks to a crash report sent by Etienne
2626 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2630 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2627
2631
2628 2003-12-09 Fernando Perez <fperez@colorado.edu>
2632 2003-12-09 Fernando Perez <fperez@colorado.edu>
2629
2633
2630 * IPython/genutils.py (page): patch for the pager to work across
2634 * IPython/genutils.py (page): patch for the pager to work across
2631 various versions of Windows. By Gary Bishop.
2635 various versions of Windows. By Gary Bishop.
2632
2636
2633 2003-12-04 Fernando Perez <fperez@colorado.edu>
2637 2003-12-04 Fernando Perez <fperez@colorado.edu>
2634
2638
2635 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2639 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2636 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2640 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2637 While I tested this and it looks ok, there may still be corner
2641 While I tested this and it looks ok, there may still be corner
2638 cases I've missed.
2642 cases I've missed.
2639
2643
2640 2003-12-01 Fernando Perez <fperez@colorado.edu>
2644 2003-12-01 Fernando Perez <fperez@colorado.edu>
2641
2645
2642 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2646 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2643 where a line like 'p,q=1,2' would fail because the automagic
2647 where a line like 'p,q=1,2' would fail because the automagic
2644 system would be triggered for @p.
2648 system would be triggered for @p.
2645
2649
2646 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2650 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2647 cleanups, code unmodified.
2651 cleanups, code unmodified.
2648
2652
2649 * IPython/genutils.py (Term): added a class for IPython to handle
2653 * IPython/genutils.py (Term): added a class for IPython to handle
2650 output. In most cases it will just be a proxy for stdout/err, but
2654 output. In most cases it will just be a proxy for stdout/err, but
2651 having this allows modifications to be made for some platforms,
2655 having this allows modifications to be made for some platforms,
2652 such as handling color escapes under Windows. All of this code
2656 such as handling color escapes under Windows. All of this code
2653 was contributed by Gary Bishop, with minor modifications by me.
2657 was contributed by Gary Bishop, with minor modifications by me.
2654 The actual changes affect many files.
2658 The actual changes affect many files.
2655
2659
2656 2003-11-30 Fernando Perez <fperez@colorado.edu>
2660 2003-11-30 Fernando Perez <fperez@colorado.edu>
2657
2661
2658 * IPython/iplib.py (file_matches): new completion code, courtesy
2662 * IPython/iplib.py (file_matches): new completion code, courtesy
2659 of Jeff Collins. This enables filename completion again under
2663 of Jeff Collins. This enables filename completion again under
2660 python 2.3, which disabled it at the C level.
2664 python 2.3, which disabled it at the C level.
2661
2665
2662 2003-11-11 Fernando Perez <fperez@colorado.edu>
2666 2003-11-11 Fernando Perez <fperez@colorado.edu>
2663
2667
2664 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2668 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2665 for Numeric.array(map(...)), but often convenient.
2669 for Numeric.array(map(...)), but often convenient.
2666
2670
2667 2003-11-05 Fernando Perez <fperez@colorado.edu>
2671 2003-11-05 Fernando Perez <fperez@colorado.edu>
2668
2672
2669 * IPython/numutils.py (frange): Changed a call from int() to
2673 * IPython/numutils.py (frange): Changed a call from int() to
2670 int(round()) to prevent a problem reported with arange() in the
2674 int(round()) to prevent a problem reported with arange() in the
2671 numpy list.
2675 numpy list.
2672
2676
2673 2003-10-06 Fernando Perez <fperez@colorado.edu>
2677 2003-10-06 Fernando Perez <fperez@colorado.edu>
2674
2678
2675 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2679 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2676 prevent crashes if sys lacks an argv attribute (it happens with
2680 prevent crashes if sys lacks an argv attribute (it happens with
2677 embedded interpreters which build a bare-bones sys module).
2681 embedded interpreters which build a bare-bones sys module).
2678 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2682 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2679
2683
2680 2003-09-24 Fernando Perez <fperez@colorado.edu>
2684 2003-09-24 Fernando Perez <fperez@colorado.edu>
2681
2685
2682 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2686 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2683 to protect against poorly written user objects where __getattr__
2687 to protect against poorly written user objects where __getattr__
2684 raises exceptions other than AttributeError. Thanks to a bug
2688 raises exceptions other than AttributeError. Thanks to a bug
2685 report by Oliver Sander <osander-AT-gmx.de>.
2689 report by Oliver Sander <osander-AT-gmx.de>.
2686
2690
2687 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2691 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2688 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2692 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2689
2693
2690 2003-09-09 Fernando Perez <fperez@colorado.edu>
2694 2003-09-09 Fernando Perez <fperez@colorado.edu>
2691
2695
2692 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2696 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2693 unpacking a list whith a callable as first element would
2697 unpacking a list whith a callable as first element would
2694 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2698 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2695 Collins.
2699 Collins.
2696
2700
2697 2003-08-25 *** Released version 0.5.0
2701 2003-08-25 *** Released version 0.5.0
2698
2702
2699 2003-08-22 Fernando Perez <fperez@colorado.edu>
2703 2003-08-22 Fernando Perez <fperez@colorado.edu>
2700
2704
2701 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2705 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2702 improperly defined user exceptions. Thanks to feedback from Mark
2706 improperly defined user exceptions. Thanks to feedback from Mark
2703 Russell <mrussell-AT-verio.net>.
2707 Russell <mrussell-AT-verio.net>.
2704
2708
2705 2003-08-20 Fernando Perez <fperez@colorado.edu>
2709 2003-08-20 Fernando Perez <fperez@colorado.edu>
2706
2710
2707 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2711 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2708 printing so that it would print multi-line string forms starting
2712 printing so that it would print multi-line string forms starting
2709 with a new line. This way the formatting is better respected for
2713 with a new line. This way the formatting is better respected for
2710 objects which work hard to make nice string forms.
2714 objects which work hard to make nice string forms.
2711
2715
2712 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2716 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2713 autocall would overtake data access for objects with both
2717 autocall would overtake data access for objects with both
2714 __getitem__ and __call__.
2718 __getitem__ and __call__.
2715
2719
2716 2003-08-19 *** Released version 0.5.0-rc1
2720 2003-08-19 *** Released version 0.5.0-rc1
2717
2721
2718 2003-08-19 Fernando Perez <fperez@colorado.edu>
2722 2003-08-19 Fernando Perez <fperez@colorado.edu>
2719
2723
2720 * IPython/deep_reload.py (load_tail): single tiny change here
2724 * IPython/deep_reload.py (load_tail): single tiny change here
2721 seems to fix the long-standing bug of dreload() failing to work
2725 seems to fix the long-standing bug of dreload() failing to work
2722 for dotted names. But this module is pretty tricky, so I may have
2726 for dotted names. But this module is pretty tricky, so I may have
2723 missed some subtlety. Needs more testing!.
2727 missed some subtlety. Needs more testing!.
2724
2728
2725 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2729 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2726 exceptions which have badly implemented __str__ methods.
2730 exceptions which have badly implemented __str__ methods.
2727 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2731 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2728 which I've been getting reports about from Python 2.3 users. I
2732 which I've been getting reports about from Python 2.3 users. I
2729 wish I had a simple test case to reproduce the problem, so I could
2733 wish I had a simple test case to reproduce the problem, so I could
2730 either write a cleaner workaround or file a bug report if
2734 either write a cleaner workaround or file a bug report if
2731 necessary.
2735 necessary.
2732
2736
2733 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2737 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2734 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2738 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2735 a bug report by Tjabo Kloppenburg.
2739 a bug report by Tjabo Kloppenburg.
2736
2740
2737 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2741 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2738 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2742 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2739 seems rather unstable. Thanks to a bug report by Tjabo
2743 seems rather unstable. Thanks to a bug report by Tjabo
2740 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2744 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2741
2745
2742 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2746 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2743 this out soon because of the critical fixes in the inner loop for
2747 this out soon because of the critical fixes in the inner loop for
2744 generators.
2748 generators.
2745
2749
2746 * IPython/Magic.py (Magic.getargspec): removed. This (and
2750 * IPython/Magic.py (Magic.getargspec): removed. This (and
2747 _get_def) have been obsoleted by OInspect for a long time, I
2751 _get_def) have been obsoleted by OInspect for a long time, I
2748 hadn't noticed that they were dead code.
2752 hadn't noticed that they were dead code.
2749 (Magic._ofind): restored _ofind functionality for a few literals
2753 (Magic._ofind): restored _ofind functionality for a few literals
2750 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2754 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2751 for things like "hello".capitalize?, since that would require a
2755 for things like "hello".capitalize?, since that would require a
2752 potentially dangerous eval() again.
2756 potentially dangerous eval() again.
2753
2757
2754 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2758 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2755 logic a bit more to clean up the escapes handling and minimize the
2759 logic a bit more to clean up the escapes handling and minimize the
2756 use of _ofind to only necessary cases. The interactive 'feel' of
2760 use of _ofind to only necessary cases. The interactive 'feel' of
2757 IPython should have improved quite a bit with the changes in
2761 IPython should have improved quite a bit with the changes in
2758 _prefilter and _ofind (besides being far safer than before).
2762 _prefilter and _ofind (besides being far safer than before).
2759
2763
2760 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2764 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2761 obscure, never reported). Edit would fail to find the object to
2765 obscure, never reported). Edit would fail to find the object to
2762 edit under some circumstances.
2766 edit under some circumstances.
2763 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2767 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2764 which were causing double-calling of generators. Those eval calls
2768 which were causing double-calling of generators. Those eval calls
2765 were _very_ dangerous, since code with side effects could be
2769 were _very_ dangerous, since code with side effects could be
2766 triggered. As they say, 'eval is evil'... These were the
2770 triggered. As they say, 'eval is evil'... These were the
2767 nastiest evals in IPython. Besides, _ofind is now far simpler,
2771 nastiest evals in IPython. Besides, _ofind is now far simpler,
2768 and it should also be quite a bit faster. Its use of inspect is
2772 and it should also be quite a bit faster. Its use of inspect is
2769 also safer, so perhaps some of the inspect-related crashes I've
2773 also safer, so perhaps some of the inspect-related crashes I've
2770 seen lately with Python 2.3 might be taken care of. That will
2774 seen lately with Python 2.3 might be taken care of. That will
2771 need more testing.
2775 need more testing.
2772
2776
2773 2003-08-17 Fernando Perez <fperez@colorado.edu>
2777 2003-08-17 Fernando Perez <fperez@colorado.edu>
2774
2778
2775 * IPython/iplib.py (InteractiveShell._prefilter): significant
2779 * IPython/iplib.py (InteractiveShell._prefilter): significant
2776 simplifications to the logic for handling user escapes. Faster
2780 simplifications to the logic for handling user escapes. Faster
2777 and simpler code.
2781 and simpler code.
2778
2782
2779 2003-08-14 Fernando Perez <fperez@colorado.edu>
2783 2003-08-14 Fernando Perez <fperez@colorado.edu>
2780
2784
2781 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2785 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2782 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2786 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2783 but it should be quite a bit faster. And the recursive version
2787 but it should be quite a bit faster. And the recursive version
2784 generated O(log N) intermediate storage for all rank>1 arrays,
2788 generated O(log N) intermediate storage for all rank>1 arrays,
2785 even if they were contiguous.
2789 even if they were contiguous.
2786 (l1norm): Added this function.
2790 (l1norm): Added this function.
2787 (norm): Added this function for arbitrary norms (including
2791 (norm): Added this function for arbitrary norms (including
2788 l-infinity). l1 and l2 are still special cases for convenience
2792 l-infinity). l1 and l2 are still special cases for convenience
2789 and speed.
2793 and speed.
2790
2794
2791 2003-08-03 Fernando Perez <fperez@colorado.edu>
2795 2003-08-03 Fernando Perez <fperez@colorado.edu>
2792
2796
2793 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2797 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2794 exceptions, which now raise PendingDeprecationWarnings in Python
2798 exceptions, which now raise PendingDeprecationWarnings in Python
2795 2.3. There were some in Magic and some in Gnuplot2.
2799 2.3. There were some in Magic and some in Gnuplot2.
2796
2800
2797 2003-06-30 Fernando Perez <fperez@colorado.edu>
2801 2003-06-30 Fernando Perez <fperez@colorado.edu>
2798
2802
2799 * IPython/genutils.py (page): modified to call curses only for
2803 * IPython/genutils.py (page): modified to call curses only for
2800 terminals where TERM=='xterm'. After problems under many other
2804 terminals where TERM=='xterm'. After problems under many other
2801 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2805 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2802
2806
2803 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2807 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2804 would be triggered when readline was absent. This was just an old
2808 would be triggered when readline was absent. This was just an old
2805 debugging statement I'd forgotten to take out.
2809 debugging statement I'd forgotten to take out.
2806
2810
2807 2003-06-20 Fernando Perez <fperez@colorado.edu>
2811 2003-06-20 Fernando Perez <fperez@colorado.edu>
2808
2812
2809 * IPython/genutils.py (clock): modified to return only user time
2813 * IPython/genutils.py (clock): modified to return only user time
2810 (not counting system time), after a discussion on scipy. While
2814 (not counting system time), after a discussion on scipy. While
2811 system time may be a useful quantity occasionally, it may much
2815 system time may be a useful quantity occasionally, it may much
2812 more easily be skewed by occasional swapping or other similar
2816 more easily be skewed by occasional swapping or other similar
2813 activity.
2817 activity.
2814
2818
2815 2003-06-05 Fernando Perez <fperez@colorado.edu>
2819 2003-06-05 Fernando Perez <fperez@colorado.edu>
2816
2820
2817 * IPython/numutils.py (identity): new function, for building
2821 * IPython/numutils.py (identity): new function, for building
2818 arbitrary rank Kronecker deltas (mostly backwards compatible with
2822 arbitrary rank Kronecker deltas (mostly backwards compatible with
2819 Numeric.identity)
2823 Numeric.identity)
2820
2824
2821 2003-06-03 Fernando Perez <fperez@colorado.edu>
2825 2003-06-03 Fernando Perez <fperez@colorado.edu>
2822
2826
2823 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2827 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2824 arguments passed to magics with spaces, to allow trailing '\' to
2828 arguments passed to magics with spaces, to allow trailing '\' to
2825 work normally (mainly for Windows users).
2829 work normally (mainly for Windows users).
2826
2830
2827 2003-05-29 Fernando Perez <fperez@colorado.edu>
2831 2003-05-29 Fernando Perez <fperez@colorado.edu>
2828
2832
2829 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2833 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2830 instead of pydoc.help. This fixes a bizarre behavior where
2834 instead of pydoc.help. This fixes a bizarre behavior where
2831 printing '%s' % locals() would trigger the help system. Now
2835 printing '%s' % locals() would trigger the help system. Now
2832 ipython behaves like normal python does.
2836 ipython behaves like normal python does.
2833
2837
2834 Note that if one does 'from pydoc import help', the bizarre
2838 Note that if one does 'from pydoc import help', the bizarre
2835 behavior returns, but this will also happen in normal python, so
2839 behavior returns, but this will also happen in normal python, so
2836 it's not an ipython bug anymore (it has to do with how pydoc.help
2840 it's not an ipython bug anymore (it has to do with how pydoc.help
2837 is implemented).
2841 is implemented).
2838
2842
2839 2003-05-22 Fernando Perez <fperez@colorado.edu>
2843 2003-05-22 Fernando Perez <fperez@colorado.edu>
2840
2844
2841 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2845 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2842 return [] instead of None when nothing matches, also match to end
2846 return [] instead of None when nothing matches, also match to end
2843 of line. Patch by Gary Bishop.
2847 of line. Patch by Gary Bishop.
2844
2848
2845 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2849 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2846 protection as before, for files passed on the command line. This
2850 protection as before, for files passed on the command line. This
2847 prevents the CrashHandler from kicking in if user files call into
2851 prevents the CrashHandler from kicking in if user files call into
2848 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2852 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2849 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2853 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2850
2854
2851 2003-05-20 *** Released version 0.4.0
2855 2003-05-20 *** Released version 0.4.0
2852
2856
2853 2003-05-20 Fernando Perez <fperez@colorado.edu>
2857 2003-05-20 Fernando Perez <fperez@colorado.edu>
2854
2858
2855 * setup.py: added support for manpages. It's a bit hackish b/c of
2859 * setup.py: added support for manpages. It's a bit hackish b/c of
2856 a bug in the way the bdist_rpm distutils target handles gzipped
2860 a bug in the way the bdist_rpm distutils target handles gzipped
2857 manpages, but it works. After a patch by Jack.
2861 manpages, but it works. After a patch by Jack.
2858
2862
2859 2003-05-19 Fernando Perez <fperez@colorado.edu>
2863 2003-05-19 Fernando Perez <fperez@colorado.edu>
2860
2864
2861 * IPython/numutils.py: added a mockup of the kinds module, since
2865 * IPython/numutils.py: added a mockup of the kinds module, since
2862 it was recently removed from Numeric. This way, numutils will
2866 it was recently removed from Numeric. This way, numutils will
2863 work for all users even if they are missing kinds.
2867 work for all users even if they are missing kinds.
2864
2868
2865 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2869 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2866 failure, which can occur with SWIG-wrapped extensions. After a
2870 failure, which can occur with SWIG-wrapped extensions. After a
2867 crash report from Prabhu.
2871 crash report from Prabhu.
2868
2872
2869 2003-05-16 Fernando Perez <fperez@colorado.edu>
2873 2003-05-16 Fernando Perez <fperez@colorado.edu>
2870
2874
2871 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2875 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2872 protect ipython from user code which may call directly
2876 protect ipython from user code which may call directly
2873 sys.excepthook (this looks like an ipython crash to the user, even
2877 sys.excepthook (this looks like an ipython crash to the user, even
2874 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2878 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2875 This is especially important to help users of WxWindows, but may
2879 This is especially important to help users of WxWindows, but may
2876 also be useful in other cases.
2880 also be useful in other cases.
2877
2881
2878 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2882 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2879 an optional tb_offset to be specified, and to preserve exception
2883 an optional tb_offset to be specified, and to preserve exception
2880 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2884 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2881
2885
2882 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2886 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2883
2887
2884 2003-05-15 Fernando Perez <fperez@colorado.edu>
2888 2003-05-15 Fernando Perez <fperez@colorado.edu>
2885
2889
2886 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2890 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2887 installing for a new user under Windows.
2891 installing for a new user under Windows.
2888
2892
2889 2003-05-12 Fernando Perez <fperez@colorado.edu>
2893 2003-05-12 Fernando Perez <fperez@colorado.edu>
2890
2894
2891 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2895 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2892 handler for Emacs comint-based lines. Currently it doesn't do
2896 handler for Emacs comint-based lines. Currently it doesn't do
2893 much (but importantly, it doesn't update the history cache). In
2897 much (but importantly, it doesn't update the history cache). In
2894 the future it may be expanded if Alex needs more functionality
2898 the future it may be expanded if Alex needs more functionality
2895 there.
2899 there.
2896
2900
2897 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2901 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2898 info to crash reports.
2902 info to crash reports.
2899
2903
2900 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2904 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2901 just like Python's -c. Also fixed crash with invalid -color
2905 just like Python's -c. Also fixed crash with invalid -color
2902 option value at startup. Thanks to Will French
2906 option value at startup. Thanks to Will French
2903 <wfrench-AT-bestweb.net> for the bug report.
2907 <wfrench-AT-bestweb.net> for the bug report.
2904
2908
2905 2003-05-09 Fernando Perez <fperez@colorado.edu>
2909 2003-05-09 Fernando Perez <fperez@colorado.edu>
2906
2910
2907 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2911 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2908 to EvalDict (it's a mapping, after all) and simplified its code
2912 to EvalDict (it's a mapping, after all) and simplified its code
2909 quite a bit, after a nice discussion on c.l.py where Gustavo
2913 quite a bit, after a nice discussion on c.l.py where Gustavo
2910 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2914 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2911
2915
2912 2003-04-30 Fernando Perez <fperez@colorado.edu>
2916 2003-04-30 Fernando Perez <fperez@colorado.edu>
2913
2917
2914 * IPython/genutils.py (timings_out): modified it to reduce its
2918 * IPython/genutils.py (timings_out): modified it to reduce its
2915 overhead in the common reps==1 case.
2919 overhead in the common reps==1 case.
2916
2920
2917 2003-04-29 Fernando Perez <fperez@colorado.edu>
2921 2003-04-29 Fernando Perez <fperez@colorado.edu>
2918
2922
2919 * IPython/genutils.py (timings_out): Modified to use the resource
2923 * IPython/genutils.py (timings_out): Modified to use the resource
2920 module, which avoids the wraparound problems of time.clock().
2924 module, which avoids the wraparound problems of time.clock().
2921
2925
2922 2003-04-17 *** Released version 0.2.15pre4
2926 2003-04-17 *** Released version 0.2.15pre4
2923
2927
2924 2003-04-17 Fernando Perez <fperez@colorado.edu>
2928 2003-04-17 Fernando Perez <fperez@colorado.edu>
2925
2929
2926 * setup.py (scriptfiles): Split windows-specific stuff over to a
2930 * setup.py (scriptfiles): Split windows-specific stuff over to a
2927 separate file, in an attempt to have a Windows GUI installer.
2931 separate file, in an attempt to have a Windows GUI installer.
2928 That didn't work, but part of the groundwork is done.
2932 That didn't work, but part of the groundwork is done.
2929
2933
2930 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2934 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2931 indent/unindent with 4 spaces. Particularly useful in combination
2935 indent/unindent with 4 spaces. Particularly useful in combination
2932 with the new auto-indent option.
2936 with the new auto-indent option.
2933
2937
2934 2003-04-16 Fernando Perez <fperez@colorado.edu>
2938 2003-04-16 Fernando Perez <fperez@colorado.edu>
2935
2939
2936 * IPython/Magic.py: various replacements of self.rc for
2940 * IPython/Magic.py: various replacements of self.rc for
2937 self.shell.rc. A lot more remains to be done to fully disentangle
2941 self.shell.rc. A lot more remains to be done to fully disentangle
2938 this class from the main Shell class.
2942 this class from the main Shell class.
2939
2943
2940 * IPython/GnuplotRuntime.py: added checks for mouse support so
2944 * IPython/GnuplotRuntime.py: added checks for mouse support so
2941 that we don't try to enable it if the current gnuplot doesn't
2945 that we don't try to enable it if the current gnuplot doesn't
2942 really support it. Also added checks so that we don't try to
2946 really support it. Also added checks so that we don't try to
2943 enable persist under Windows (where Gnuplot doesn't recognize the
2947 enable persist under Windows (where Gnuplot doesn't recognize the
2944 option).
2948 option).
2945
2949
2946 * IPython/iplib.py (InteractiveShell.interact): Added optional
2950 * IPython/iplib.py (InteractiveShell.interact): Added optional
2947 auto-indenting code, after a patch by King C. Shu
2951 auto-indenting code, after a patch by King C. Shu
2948 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2952 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2949 get along well with pasting indented code. If I ever figure out
2953 get along well with pasting indented code. If I ever figure out
2950 how to make that part go well, it will become on by default.
2954 how to make that part go well, it will become on by default.
2951
2955
2952 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2956 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2953 crash ipython if there was an unmatched '%' in the user's prompt
2957 crash ipython if there was an unmatched '%' in the user's prompt
2954 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2958 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2955
2959
2956 * IPython/iplib.py (InteractiveShell.interact): removed the
2960 * IPython/iplib.py (InteractiveShell.interact): removed the
2957 ability to ask the user whether he wants to crash or not at the
2961 ability to ask the user whether he wants to crash or not at the
2958 'last line' exception handler. Calling functions at that point
2962 'last line' exception handler. Calling functions at that point
2959 changes the stack, and the error reports would have incorrect
2963 changes the stack, and the error reports would have incorrect
2960 tracebacks.
2964 tracebacks.
2961
2965
2962 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2966 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2963 pass through a peger a pretty-printed form of any object. After a
2967 pass through a peger a pretty-printed form of any object. After a
2964 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2968 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2965
2969
2966 2003-04-14 Fernando Perez <fperez@colorado.edu>
2970 2003-04-14 Fernando Perez <fperez@colorado.edu>
2967
2971
2968 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2972 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2969 all files in ~ would be modified at first install (instead of
2973 all files in ~ would be modified at first install (instead of
2970 ~/.ipython). This could be potentially disastrous, as the
2974 ~/.ipython). This could be potentially disastrous, as the
2971 modification (make line-endings native) could damage binary files.
2975 modification (make line-endings native) could damage binary files.
2972
2976
2973 2003-04-10 Fernando Perez <fperez@colorado.edu>
2977 2003-04-10 Fernando Perez <fperez@colorado.edu>
2974
2978
2975 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2979 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2976 handle only lines which are invalid python. This now means that
2980 handle only lines which are invalid python. This now means that
2977 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2981 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2978 for the bug report.
2982 for the bug report.
2979
2983
2980 2003-04-01 Fernando Perez <fperez@colorado.edu>
2984 2003-04-01 Fernando Perez <fperez@colorado.edu>
2981
2985
2982 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2986 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2983 where failing to set sys.last_traceback would crash pdb.pm().
2987 where failing to set sys.last_traceback would crash pdb.pm().
2984 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2988 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2985 report.
2989 report.
2986
2990
2987 2003-03-25 Fernando Perez <fperez@colorado.edu>
2991 2003-03-25 Fernando Perez <fperez@colorado.edu>
2988
2992
2989 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2993 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2990 before printing it (it had a lot of spurious blank lines at the
2994 before printing it (it had a lot of spurious blank lines at the
2991 end).
2995 end).
2992
2996
2993 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2997 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2994 output would be sent 21 times! Obviously people don't use this
2998 output would be sent 21 times! Obviously people don't use this
2995 too often, or I would have heard about it.
2999 too often, or I would have heard about it.
2996
3000
2997 2003-03-24 Fernando Perez <fperez@colorado.edu>
3001 2003-03-24 Fernando Perez <fperez@colorado.edu>
2998
3002
2999 * setup.py (scriptfiles): renamed the data_files parameter from
3003 * setup.py (scriptfiles): renamed the data_files parameter from
3000 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3004 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3001 for the patch.
3005 for the patch.
3002
3006
3003 2003-03-20 Fernando Perez <fperez@colorado.edu>
3007 2003-03-20 Fernando Perez <fperez@colorado.edu>
3004
3008
3005 * IPython/genutils.py (error): added error() and fatal()
3009 * IPython/genutils.py (error): added error() and fatal()
3006 functions.
3010 functions.
3007
3011
3008 2003-03-18 *** Released version 0.2.15pre3
3012 2003-03-18 *** Released version 0.2.15pre3
3009
3013
3010 2003-03-18 Fernando Perez <fperez@colorado.edu>
3014 2003-03-18 Fernando Perez <fperez@colorado.edu>
3011
3015
3012 * setupext/install_data_ext.py
3016 * setupext/install_data_ext.py
3013 (install_data_ext.initialize_options): Class contributed by Jack
3017 (install_data_ext.initialize_options): Class contributed by Jack
3014 Moffit for fixing the old distutils hack. He is sending this to
3018 Moffit for fixing the old distutils hack. He is sending this to
3015 the distutils folks so in the future we may not need it as a
3019 the distutils folks so in the future we may not need it as a
3016 private fix.
3020 private fix.
3017
3021
3018 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3022 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3019 changes for Debian packaging. See his patch for full details.
3023 changes for Debian packaging. See his patch for full details.
3020 The old distutils hack of making the ipythonrc* files carry a
3024 The old distutils hack of making the ipythonrc* files carry a
3021 bogus .py extension is gone, at last. Examples were moved to a
3025 bogus .py extension is gone, at last. Examples were moved to a
3022 separate subdir under doc/, and the separate executable scripts
3026 separate subdir under doc/, and the separate executable scripts
3023 now live in their own directory. Overall a great cleanup. The
3027 now live in their own directory. Overall a great cleanup. The
3024 manual was updated to use the new files, and setup.py has been
3028 manual was updated to use the new files, and setup.py has been
3025 fixed for this setup.
3029 fixed for this setup.
3026
3030
3027 * IPython/PyColorize.py (Parser.usage): made non-executable and
3031 * IPython/PyColorize.py (Parser.usage): made non-executable and
3028 created a pycolor wrapper around it to be included as a script.
3032 created a pycolor wrapper around it to be included as a script.
3029
3033
3030 2003-03-12 *** Released version 0.2.15pre2
3034 2003-03-12 *** Released version 0.2.15pre2
3031
3035
3032 2003-03-12 Fernando Perez <fperez@colorado.edu>
3036 2003-03-12 Fernando Perez <fperez@colorado.edu>
3033
3037
3034 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3038 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3035 long-standing problem with garbage characters in some terminals.
3039 long-standing problem with garbage characters in some terminals.
3036 The issue was really that the \001 and \002 escapes must _only_ be
3040 The issue was really that the \001 and \002 escapes must _only_ be
3037 passed to input prompts (which call readline), but _never_ to
3041 passed to input prompts (which call readline), but _never_ to
3038 normal text to be printed on screen. I changed ColorANSI to have
3042 normal text to be printed on screen. I changed ColorANSI to have
3039 two classes: TermColors and InputTermColors, each with the
3043 two classes: TermColors and InputTermColors, each with the
3040 appropriate escapes for input prompts or normal text. The code in
3044 appropriate escapes for input prompts or normal text. The code in
3041 Prompts.py got slightly more complicated, but this very old and
3045 Prompts.py got slightly more complicated, but this very old and
3042 annoying bug is finally fixed.
3046 annoying bug is finally fixed.
3043
3047
3044 All the credit for nailing down the real origin of this problem
3048 All the credit for nailing down the real origin of this problem
3045 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3049 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3046 *Many* thanks to him for spending quite a bit of effort on this.
3050 *Many* thanks to him for spending quite a bit of effort on this.
3047
3051
3048 2003-03-05 *** Released version 0.2.15pre1
3052 2003-03-05 *** Released version 0.2.15pre1
3049
3053
3050 2003-03-03 Fernando Perez <fperez@colorado.edu>
3054 2003-03-03 Fernando Perez <fperez@colorado.edu>
3051
3055
3052 * IPython/FakeModule.py: Moved the former _FakeModule to a
3056 * IPython/FakeModule.py: Moved the former _FakeModule to a
3053 separate file, because it's also needed by Magic (to fix a similar
3057 separate file, because it's also needed by Magic (to fix a similar
3054 pickle-related issue in @run).
3058 pickle-related issue in @run).
3055
3059
3056 2003-03-02 Fernando Perez <fperez@colorado.edu>
3060 2003-03-02 Fernando Perez <fperez@colorado.edu>
3057
3061
3058 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3062 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3059 the autocall option at runtime.
3063 the autocall option at runtime.
3060 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3064 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3061 across Magic.py to start separating Magic from InteractiveShell.
3065 across Magic.py to start separating Magic from InteractiveShell.
3062 (Magic._ofind): Fixed to return proper namespace for dotted
3066 (Magic._ofind): Fixed to return proper namespace for dotted
3063 names. Before, a dotted name would always return 'not currently
3067 names. Before, a dotted name would always return 'not currently
3064 defined', because it would find the 'parent'. s.x would be found,
3068 defined', because it would find the 'parent'. s.x would be found,
3065 but since 'x' isn't defined by itself, it would get confused.
3069 but since 'x' isn't defined by itself, it would get confused.
3066 (Magic.magic_run): Fixed pickling problems reported by Ralf
3070 (Magic.magic_run): Fixed pickling problems reported by Ralf
3067 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3071 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3068 that I'd used when Mike Heeter reported similar issues at the
3072 that I'd used when Mike Heeter reported similar issues at the
3069 top-level, but now for @run. It boils down to injecting the
3073 top-level, but now for @run. It boils down to injecting the
3070 namespace where code is being executed with something that looks
3074 namespace where code is being executed with something that looks
3071 enough like a module to fool pickle.dump(). Since a pickle stores
3075 enough like a module to fool pickle.dump(). Since a pickle stores
3072 a named reference to the importing module, we need this for
3076 a named reference to the importing module, we need this for
3073 pickles to save something sensible.
3077 pickles to save something sensible.
3074
3078
3075 * IPython/ipmaker.py (make_IPython): added an autocall option.
3079 * IPython/ipmaker.py (make_IPython): added an autocall option.
3076
3080
3077 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3081 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3078 the auto-eval code. Now autocalling is an option, and the code is
3082 the auto-eval code. Now autocalling is an option, and the code is
3079 also vastly safer. There is no more eval() involved at all.
3083 also vastly safer. There is no more eval() involved at all.
3080
3084
3081 2003-03-01 Fernando Perez <fperez@colorado.edu>
3085 2003-03-01 Fernando Perez <fperez@colorado.edu>
3082
3086
3083 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3087 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3084 dict with named keys instead of a tuple.
3088 dict with named keys instead of a tuple.
3085
3089
3086 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3090 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3087
3091
3088 * setup.py (make_shortcut): Fixed message about directories
3092 * setup.py (make_shortcut): Fixed message about directories
3089 created during Windows installation (the directories were ok, just
3093 created during Windows installation (the directories were ok, just
3090 the printed message was misleading). Thanks to Chris Liechti
3094 the printed message was misleading). Thanks to Chris Liechti
3091 <cliechti-AT-gmx.net> for the heads up.
3095 <cliechti-AT-gmx.net> for the heads up.
3092
3096
3093 2003-02-21 Fernando Perez <fperez@colorado.edu>
3097 2003-02-21 Fernando Perez <fperez@colorado.edu>
3094
3098
3095 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3099 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3096 of ValueError exception when checking for auto-execution. This
3100 of ValueError exception when checking for auto-execution. This
3097 one is raised by things like Numeric arrays arr.flat when the
3101 one is raised by things like Numeric arrays arr.flat when the
3098 array is non-contiguous.
3102 array is non-contiguous.
3099
3103
3100 2003-01-31 Fernando Perez <fperez@colorado.edu>
3104 2003-01-31 Fernando Perez <fperez@colorado.edu>
3101
3105
3102 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3106 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3103 not return any value at all (even though the command would get
3107 not return any value at all (even though the command would get
3104 executed).
3108 executed).
3105 (xsys): Flush stdout right after printing the command to ensure
3109 (xsys): Flush stdout right after printing the command to ensure
3106 proper ordering of commands and command output in the total
3110 proper ordering of commands and command output in the total
3107 output.
3111 output.
3108 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3112 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3109 system/getoutput as defaults. The old ones are kept for
3113 system/getoutput as defaults. The old ones are kept for
3110 compatibility reasons, so no code which uses this library needs
3114 compatibility reasons, so no code which uses this library needs
3111 changing.
3115 changing.
3112
3116
3113 2003-01-27 *** Released version 0.2.14
3117 2003-01-27 *** Released version 0.2.14
3114
3118
3115 2003-01-25 Fernando Perez <fperez@colorado.edu>
3119 2003-01-25 Fernando Perez <fperez@colorado.edu>
3116
3120
3117 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3121 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3118 functions defined in previous edit sessions could not be re-edited
3122 functions defined in previous edit sessions could not be re-edited
3119 (because the temp files were immediately removed). Now temp files
3123 (because the temp files were immediately removed). Now temp files
3120 are removed only at IPython's exit.
3124 are removed only at IPython's exit.
3121 (Magic.magic_run): Improved @run to perform shell-like expansions
3125 (Magic.magic_run): Improved @run to perform shell-like expansions
3122 on its arguments (~users and $VARS). With this, @run becomes more
3126 on its arguments (~users and $VARS). With this, @run becomes more
3123 like a normal command-line.
3127 like a normal command-line.
3124
3128
3125 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3129 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3126 bugs related to embedding and cleaned up that code. A fairly
3130 bugs related to embedding and cleaned up that code. A fairly
3127 important one was the impossibility to access the global namespace
3131 important one was the impossibility to access the global namespace
3128 through the embedded IPython (only local variables were visible).
3132 through the embedded IPython (only local variables were visible).
3129
3133
3130 2003-01-14 Fernando Perez <fperez@colorado.edu>
3134 2003-01-14 Fernando Perez <fperez@colorado.edu>
3131
3135
3132 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3136 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3133 auto-calling to be a bit more conservative. Now it doesn't get
3137 auto-calling to be a bit more conservative. Now it doesn't get
3134 triggered if any of '!=()<>' are in the rest of the input line, to
3138 triggered if any of '!=()<>' are in the rest of the input line, to
3135 allow comparing callables. Thanks to Alex for the heads up.
3139 allow comparing callables. Thanks to Alex for the heads up.
3136
3140
3137 2003-01-07 Fernando Perez <fperez@colorado.edu>
3141 2003-01-07 Fernando Perez <fperez@colorado.edu>
3138
3142
3139 * IPython/genutils.py (page): fixed estimation of the number of
3143 * IPython/genutils.py (page): fixed estimation of the number of
3140 lines in a string to be paged to simply count newlines. This
3144 lines in a string to be paged to simply count newlines. This
3141 prevents over-guessing due to embedded escape sequences. A better
3145 prevents over-guessing due to embedded escape sequences. A better
3142 long-term solution would involve stripping out the control chars
3146 long-term solution would involve stripping out the control chars
3143 for the count, but it's potentially so expensive I just don't
3147 for the count, but it's potentially so expensive I just don't
3144 think it's worth doing.
3148 think it's worth doing.
3145
3149
3146 2002-12-19 *** Released version 0.2.14pre50
3150 2002-12-19 *** Released version 0.2.14pre50
3147
3151
3148 2002-12-19 Fernando Perez <fperez@colorado.edu>
3152 2002-12-19 Fernando Perez <fperez@colorado.edu>
3149
3153
3150 * tools/release (version): Changed release scripts to inform
3154 * tools/release (version): Changed release scripts to inform
3151 Andrea and build a NEWS file with a list of recent changes.
3155 Andrea and build a NEWS file with a list of recent changes.
3152
3156
3153 * IPython/ColorANSI.py (__all__): changed terminal detection
3157 * IPython/ColorANSI.py (__all__): changed terminal detection
3154 code. Seems to work better for xterms without breaking
3158 code. Seems to work better for xterms without breaking
3155 konsole. Will need more testing to determine if WinXP and Mac OSX
3159 konsole. Will need more testing to determine if WinXP and Mac OSX
3156 also work ok.
3160 also work ok.
3157
3161
3158 2002-12-18 *** Released version 0.2.14pre49
3162 2002-12-18 *** Released version 0.2.14pre49
3159
3163
3160 2002-12-18 Fernando Perez <fperez@colorado.edu>
3164 2002-12-18 Fernando Perez <fperez@colorado.edu>
3161
3165
3162 * Docs: added new info about Mac OSX, from Andrea.
3166 * Docs: added new info about Mac OSX, from Andrea.
3163
3167
3164 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3168 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3165 allow direct plotting of python strings whose format is the same
3169 allow direct plotting of python strings whose format is the same
3166 of gnuplot data files.
3170 of gnuplot data files.
3167
3171
3168 2002-12-16 Fernando Perez <fperez@colorado.edu>
3172 2002-12-16 Fernando Perez <fperez@colorado.edu>
3169
3173
3170 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3174 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3171 value of exit question to be acknowledged.
3175 value of exit question to be acknowledged.
3172
3176
3173 2002-12-03 Fernando Perez <fperez@colorado.edu>
3177 2002-12-03 Fernando Perez <fperez@colorado.edu>
3174
3178
3175 * IPython/ipmaker.py: removed generators, which had been added
3179 * IPython/ipmaker.py: removed generators, which had been added
3176 by mistake in an earlier debugging run. This was causing trouble
3180 by mistake in an earlier debugging run. This was causing trouble
3177 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3181 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3178 for pointing this out.
3182 for pointing this out.
3179
3183
3180 2002-11-17 Fernando Perez <fperez@colorado.edu>
3184 2002-11-17 Fernando Perez <fperez@colorado.edu>
3181
3185
3182 * Manual: updated the Gnuplot section.
3186 * Manual: updated the Gnuplot section.
3183
3187
3184 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3188 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3185 a much better split of what goes in Runtime and what goes in
3189 a much better split of what goes in Runtime and what goes in
3186 Interactive.
3190 Interactive.
3187
3191
3188 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3192 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3189 being imported from iplib.
3193 being imported from iplib.
3190
3194
3191 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3195 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3192 for command-passing. Now the global Gnuplot instance is called
3196 for command-passing. Now the global Gnuplot instance is called
3193 'gp' instead of 'g', which was really a far too fragile and
3197 'gp' instead of 'g', which was really a far too fragile and
3194 common name.
3198 common name.
3195
3199
3196 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3200 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3197 bounding boxes generated by Gnuplot for square plots.
3201 bounding boxes generated by Gnuplot for square plots.
3198
3202
3199 * IPython/genutils.py (popkey): new function added. I should
3203 * IPython/genutils.py (popkey): new function added. I should
3200 suggest this on c.l.py as a dict method, it seems useful.
3204 suggest this on c.l.py as a dict method, it seems useful.
3201
3205
3202 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3206 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3203 to transparently handle PostScript generation. MUCH better than
3207 to transparently handle PostScript generation. MUCH better than
3204 the previous plot_eps/replot_eps (which I removed now). The code
3208 the previous plot_eps/replot_eps (which I removed now). The code
3205 is also fairly clean and well documented now (including
3209 is also fairly clean and well documented now (including
3206 docstrings).
3210 docstrings).
3207
3211
3208 2002-11-13 Fernando Perez <fperez@colorado.edu>
3212 2002-11-13 Fernando Perez <fperez@colorado.edu>
3209
3213
3210 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3214 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3211 (inconsistent with options).
3215 (inconsistent with options).
3212
3216
3213 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3217 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3214 manually disabled, I don't know why. Fixed it.
3218 manually disabled, I don't know why. Fixed it.
3215 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3219 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3216 eps output.
3220 eps output.
3217
3221
3218 2002-11-12 Fernando Perez <fperez@colorado.edu>
3222 2002-11-12 Fernando Perez <fperez@colorado.edu>
3219
3223
3220 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3224 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3221 don't propagate up to caller. Fixes crash reported by François
3225 don't propagate up to caller. Fixes crash reported by François
3222 Pinard.
3226 Pinard.
3223
3227
3224 2002-11-09 Fernando Perez <fperez@colorado.edu>
3228 2002-11-09 Fernando Perez <fperez@colorado.edu>
3225
3229
3226 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3230 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3227 history file for new users.
3231 history file for new users.
3228 (make_IPython): fixed bug where initial install would leave the
3232 (make_IPython): fixed bug where initial install would leave the
3229 user running in the .ipython dir.
3233 user running in the .ipython dir.
3230 (make_IPython): fixed bug where config dir .ipython would be
3234 (make_IPython): fixed bug where config dir .ipython would be
3231 created regardless of the given -ipythondir option. Thanks to Cory
3235 created regardless of the given -ipythondir option. Thanks to Cory
3232 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3236 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3233
3237
3234 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3238 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3235 type confirmations. Will need to use it in all of IPython's code
3239 type confirmations. Will need to use it in all of IPython's code
3236 consistently.
3240 consistently.
3237
3241
3238 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3242 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3239 context to print 31 lines instead of the default 5. This will make
3243 context to print 31 lines instead of the default 5. This will make
3240 the crash reports extremely detailed in case the problem is in
3244 the crash reports extremely detailed in case the problem is in
3241 libraries I don't have access to.
3245 libraries I don't have access to.
3242
3246
3243 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3247 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3244 line of defense' code to still crash, but giving users fair
3248 line of defense' code to still crash, but giving users fair
3245 warning. I don't want internal errors to go unreported: if there's
3249 warning. I don't want internal errors to go unreported: if there's
3246 an internal problem, IPython should crash and generate a full
3250 an internal problem, IPython should crash and generate a full
3247 report.
3251 report.
3248
3252
3249 2002-11-08 Fernando Perez <fperez@colorado.edu>
3253 2002-11-08 Fernando Perez <fperez@colorado.edu>
3250
3254
3251 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3255 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3252 otherwise uncaught exceptions which can appear if people set
3256 otherwise uncaught exceptions which can appear if people set
3253 sys.stdout to something badly broken. Thanks to a crash report
3257 sys.stdout to something badly broken. Thanks to a crash report
3254 from henni-AT-mail.brainbot.com.
3258 from henni-AT-mail.brainbot.com.
3255
3259
3256 2002-11-04 Fernando Perez <fperez@colorado.edu>
3260 2002-11-04 Fernando Perez <fperez@colorado.edu>
3257
3261
3258 * IPython/iplib.py (InteractiveShell.interact): added
3262 * IPython/iplib.py (InteractiveShell.interact): added
3259 __IPYTHON__active to the builtins. It's a flag which goes on when
3263 __IPYTHON__active to the builtins. It's a flag which goes on when
3260 the interaction starts and goes off again when it stops. This
3264 the interaction starts and goes off again when it stops. This
3261 allows embedding code to detect being inside IPython. Before this
3265 allows embedding code to detect being inside IPython. Before this
3262 was done via __IPYTHON__, but that only shows that an IPython
3266 was done via __IPYTHON__, but that only shows that an IPython
3263 instance has been created.
3267 instance has been created.
3264
3268
3265 * IPython/Magic.py (Magic.magic_env): I realized that in a
3269 * IPython/Magic.py (Magic.magic_env): I realized that in a
3266 UserDict, instance.data holds the data as a normal dict. So I
3270 UserDict, instance.data holds the data as a normal dict. So I
3267 modified @env to return os.environ.data instead of rebuilding a
3271 modified @env to return os.environ.data instead of rebuilding a
3268 dict by hand.
3272 dict by hand.
3269
3273
3270 2002-11-02 Fernando Perez <fperez@colorado.edu>
3274 2002-11-02 Fernando Perez <fperez@colorado.edu>
3271
3275
3272 * IPython/genutils.py (warn): changed so that level 1 prints no
3276 * IPython/genutils.py (warn): changed so that level 1 prints no
3273 header. Level 2 is now the default (with 'WARNING' header, as
3277 header. Level 2 is now the default (with 'WARNING' header, as
3274 before). I think I tracked all places where changes were needed in
3278 before). I think I tracked all places where changes were needed in
3275 IPython, but outside code using the old level numbering may have
3279 IPython, but outside code using the old level numbering may have
3276 broken.
3280 broken.
3277
3281
3278 * IPython/iplib.py (InteractiveShell.runcode): added this to
3282 * IPython/iplib.py (InteractiveShell.runcode): added this to
3279 handle the tracebacks in SystemExit traps correctly. The previous
3283 handle the tracebacks in SystemExit traps correctly. The previous
3280 code (through interact) was printing more of the stack than
3284 code (through interact) was printing more of the stack than
3281 necessary, showing IPython internal code to the user.
3285 necessary, showing IPython internal code to the user.
3282
3286
3283 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3287 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3284 default. Now that the default at the confirmation prompt is yes,
3288 default. Now that the default at the confirmation prompt is yes,
3285 it's not so intrusive. François' argument that ipython sessions
3289 it's not so intrusive. François' argument that ipython sessions
3286 tend to be complex enough not to lose them from an accidental C-d,
3290 tend to be complex enough not to lose them from an accidental C-d,
3287 is a valid one.
3291 is a valid one.
3288
3292
3289 * IPython/iplib.py (InteractiveShell.interact): added a
3293 * IPython/iplib.py (InteractiveShell.interact): added a
3290 showtraceback() call to the SystemExit trap, and modified the exit
3294 showtraceback() call to the SystemExit trap, and modified the exit
3291 confirmation to have yes as the default.
3295 confirmation to have yes as the default.
3292
3296
3293 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3297 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3294 this file. It's been gone from the code for a long time, this was
3298 this file. It's been gone from the code for a long time, this was
3295 simply leftover junk.
3299 simply leftover junk.
3296
3300
3297 2002-11-01 Fernando Perez <fperez@colorado.edu>
3301 2002-11-01 Fernando Perez <fperez@colorado.edu>
3298
3302
3299 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3303 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3300 added. If set, IPython now traps EOF and asks for
3304 added. If set, IPython now traps EOF and asks for
3301 confirmation. After a request by François Pinard.
3305 confirmation. After a request by François Pinard.
3302
3306
3303 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3307 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3304 of @abort, and with a new (better) mechanism for handling the
3308 of @abort, and with a new (better) mechanism for handling the
3305 exceptions.
3309 exceptions.
3306
3310
3307 2002-10-27 Fernando Perez <fperez@colorado.edu>
3311 2002-10-27 Fernando Perez <fperez@colorado.edu>
3308
3312
3309 * IPython/usage.py (__doc__): updated the --help information and
3313 * IPython/usage.py (__doc__): updated the --help information and
3310 the ipythonrc file to indicate that -log generates
3314 the ipythonrc file to indicate that -log generates
3311 ./ipython.log. Also fixed the corresponding info in @logstart.
3315 ./ipython.log. Also fixed the corresponding info in @logstart.
3312 This and several other fixes in the manuals thanks to reports by
3316 This and several other fixes in the manuals thanks to reports by
3313 François Pinard <pinard-AT-iro.umontreal.ca>.
3317 François Pinard <pinard-AT-iro.umontreal.ca>.
3314
3318
3315 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3319 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3316 refer to @logstart (instead of @log, which doesn't exist).
3320 refer to @logstart (instead of @log, which doesn't exist).
3317
3321
3318 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3322 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3319 AttributeError crash. Thanks to Christopher Armstrong
3323 AttributeError crash. Thanks to Christopher Armstrong
3320 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3324 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3321 introduced recently (in 0.2.14pre37) with the fix to the eval
3325 introduced recently (in 0.2.14pre37) with the fix to the eval
3322 problem mentioned below.
3326 problem mentioned below.
3323
3327
3324 2002-10-17 Fernando Perez <fperez@colorado.edu>
3328 2002-10-17 Fernando Perez <fperez@colorado.edu>
3325
3329
3326 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3330 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3327 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3331 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3328
3332
3329 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3333 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3330 this function to fix a problem reported by Alex Schmolck. He saw
3334 this function to fix a problem reported by Alex Schmolck. He saw
3331 it with list comprehensions and generators, which were getting
3335 it with list comprehensions and generators, which were getting
3332 called twice. The real problem was an 'eval' call in testing for
3336 called twice. The real problem was an 'eval' call in testing for
3333 automagic which was evaluating the input line silently.
3337 automagic which was evaluating the input line silently.
3334
3338
3335 This is a potentially very nasty bug, if the input has side
3339 This is a potentially very nasty bug, if the input has side
3336 effects which must not be repeated. The code is much cleaner now,
3340 effects which must not be repeated. The code is much cleaner now,
3337 without any blanket 'except' left and with a regexp test for
3341 without any blanket 'except' left and with a regexp test for
3338 actual function names.
3342 actual function names.
3339
3343
3340 But an eval remains, which I'm not fully comfortable with. I just
3344 But an eval remains, which I'm not fully comfortable with. I just
3341 don't know how to find out if an expression could be a callable in
3345 don't know how to find out if an expression could be a callable in
3342 the user's namespace without doing an eval on the string. However
3346 the user's namespace without doing an eval on the string. However
3343 that string is now much more strictly checked so that no code
3347 that string is now much more strictly checked so that no code
3344 slips by, so the eval should only happen for things that can
3348 slips by, so the eval should only happen for things that can
3345 really be only function/method names.
3349 really be only function/method names.
3346
3350
3347 2002-10-15 Fernando Perez <fperez@colorado.edu>
3351 2002-10-15 Fernando Perez <fperez@colorado.edu>
3348
3352
3349 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3353 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3350 OSX information to main manual, removed README_Mac_OSX file from
3354 OSX information to main manual, removed README_Mac_OSX file from
3351 distribution. Also updated credits for recent additions.
3355 distribution. Also updated credits for recent additions.
3352
3356
3353 2002-10-10 Fernando Perez <fperez@colorado.edu>
3357 2002-10-10 Fernando Perez <fperez@colorado.edu>
3354
3358
3355 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3359 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3356 terminal-related issues. Many thanks to Andrea Riciputi
3360 terminal-related issues. Many thanks to Andrea Riciputi
3357 <andrea.riciputi-AT-libero.it> for writing it.
3361 <andrea.riciputi-AT-libero.it> for writing it.
3358
3362
3359 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3363 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3360 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3364 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3361
3365
3362 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3366 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3363 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3367 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3364 <syver-en-AT-online.no> who both submitted patches for this problem.
3368 <syver-en-AT-online.no> who both submitted patches for this problem.
3365
3369
3366 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3370 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3367 global embedding to make sure that things don't overwrite user
3371 global embedding to make sure that things don't overwrite user
3368 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3372 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3369
3373
3370 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3374 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3371 compatibility. Thanks to Hayden Callow
3375 compatibility. Thanks to Hayden Callow
3372 <h.callow-AT-elec.canterbury.ac.nz>
3376 <h.callow-AT-elec.canterbury.ac.nz>
3373
3377
3374 2002-10-04 Fernando Perez <fperez@colorado.edu>
3378 2002-10-04 Fernando Perez <fperez@colorado.edu>
3375
3379
3376 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3380 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3377 Gnuplot.File objects.
3381 Gnuplot.File objects.
3378
3382
3379 2002-07-23 Fernando Perez <fperez@colorado.edu>
3383 2002-07-23 Fernando Perez <fperez@colorado.edu>
3380
3384
3381 * IPython/genutils.py (timing): Added timings() and timing() for
3385 * IPython/genutils.py (timing): Added timings() and timing() for
3382 quick access to the most commonly needed data, the execution
3386 quick access to the most commonly needed data, the execution
3383 times. Old timing() renamed to timings_out().
3387 times. Old timing() renamed to timings_out().
3384
3388
3385 2002-07-18 Fernando Perez <fperez@colorado.edu>
3389 2002-07-18 Fernando Perez <fperez@colorado.edu>
3386
3390
3387 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3391 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3388 bug with nested instances disrupting the parent's tab completion.
3392 bug with nested instances disrupting the parent's tab completion.
3389
3393
3390 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3394 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3391 all_completions code to begin the emacs integration.
3395 all_completions code to begin the emacs integration.
3392
3396
3393 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3397 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3394 argument to allow titling individual arrays when plotting.
3398 argument to allow titling individual arrays when plotting.
3395
3399
3396 2002-07-15 Fernando Perez <fperez@colorado.edu>
3400 2002-07-15 Fernando Perez <fperez@colorado.edu>
3397
3401
3398 * setup.py (make_shortcut): changed to retrieve the value of
3402 * setup.py (make_shortcut): changed to retrieve the value of
3399 'Program Files' directory from the registry (this value changes in
3403 'Program Files' directory from the registry (this value changes in
3400 non-english versions of Windows). Thanks to Thomas Fanslau
3404 non-english versions of Windows). Thanks to Thomas Fanslau
3401 <tfanslau-AT-gmx.de> for the report.
3405 <tfanslau-AT-gmx.de> for the report.
3402
3406
3403 2002-07-10 Fernando Perez <fperez@colorado.edu>
3407 2002-07-10 Fernando Perez <fperez@colorado.edu>
3404
3408
3405 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3409 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3406 a bug in pdb, which crashes if a line with only whitespace is
3410 a bug in pdb, which crashes if a line with only whitespace is
3407 entered. Bug report submitted to sourceforge.
3411 entered. Bug report submitted to sourceforge.
3408
3412
3409 2002-07-09 Fernando Perez <fperez@colorado.edu>
3413 2002-07-09 Fernando Perez <fperez@colorado.edu>
3410
3414
3411 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3415 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3412 reporting exceptions (it's a bug in inspect.py, I just set a
3416 reporting exceptions (it's a bug in inspect.py, I just set a
3413 workaround).
3417 workaround).
3414
3418
3415 2002-07-08 Fernando Perez <fperez@colorado.edu>
3419 2002-07-08 Fernando Perez <fperez@colorado.edu>
3416
3420
3417 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3421 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3418 __IPYTHON__ in __builtins__ to show up in user_ns.
3422 __IPYTHON__ in __builtins__ to show up in user_ns.
3419
3423
3420 2002-07-03 Fernando Perez <fperez@colorado.edu>
3424 2002-07-03 Fernando Perez <fperez@colorado.edu>
3421
3425
3422 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3426 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3423 name from @gp_set_instance to @gp_set_default.
3427 name from @gp_set_instance to @gp_set_default.
3424
3428
3425 * IPython/ipmaker.py (make_IPython): default editor value set to
3429 * IPython/ipmaker.py (make_IPython): default editor value set to
3426 '0' (a string), to match the rc file. Otherwise will crash when
3430 '0' (a string), to match the rc file. Otherwise will crash when
3427 .strip() is called on it.
3431 .strip() is called on it.
3428
3432
3429
3433
3430 2002-06-28 Fernando Perez <fperez@colorado.edu>
3434 2002-06-28 Fernando Perez <fperez@colorado.edu>
3431
3435
3432 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3436 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3433 of files in current directory when a file is executed via
3437 of files in current directory when a file is executed via
3434 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3438 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3435
3439
3436 * setup.py (manfiles): fix for rpm builds, submitted by RA
3440 * setup.py (manfiles): fix for rpm builds, submitted by RA
3437 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3441 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3438
3442
3439 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3443 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3440 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3444 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3441 string!). A. Schmolck caught this one.
3445 string!). A. Schmolck caught this one.
3442
3446
3443 2002-06-27 Fernando Perez <fperez@colorado.edu>
3447 2002-06-27 Fernando Perez <fperez@colorado.edu>
3444
3448
3445 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3449 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3446 defined files at the cmd line. __name__ wasn't being set to
3450 defined files at the cmd line. __name__ wasn't being set to
3447 __main__.
3451 __main__.
3448
3452
3449 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3453 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3450 regular lists and tuples besides Numeric arrays.
3454 regular lists and tuples besides Numeric arrays.
3451
3455
3452 * IPython/Prompts.py (CachedOutput.__call__): Added output
3456 * IPython/Prompts.py (CachedOutput.__call__): Added output
3453 supression for input ending with ';'. Similar to Mathematica and
3457 supression for input ending with ';'. Similar to Mathematica and
3454 Matlab. The _* vars and Out[] list are still updated, just like
3458 Matlab. The _* vars and Out[] list are still updated, just like
3455 Mathematica behaves.
3459 Mathematica behaves.
3456
3460
3457 2002-06-25 Fernando Perez <fperez@colorado.edu>
3461 2002-06-25 Fernando Perez <fperez@colorado.edu>
3458
3462
3459 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3463 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3460 .ini extensions for profiels under Windows.
3464 .ini extensions for profiels under Windows.
3461
3465
3462 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3466 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3463 string form. Fix contributed by Alexander Schmolck
3467 string form. Fix contributed by Alexander Schmolck
3464 <a.schmolck-AT-gmx.net>
3468 <a.schmolck-AT-gmx.net>
3465
3469
3466 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3470 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3467 pre-configured Gnuplot instance.
3471 pre-configured Gnuplot instance.
3468
3472
3469 2002-06-21 Fernando Perez <fperez@colorado.edu>
3473 2002-06-21 Fernando Perez <fperez@colorado.edu>
3470
3474
3471 * IPython/numutils.py (exp_safe): new function, works around the
3475 * IPython/numutils.py (exp_safe): new function, works around the
3472 underflow problems in Numeric.
3476 underflow problems in Numeric.
3473 (log2): New fn. Safe log in base 2: returns exact integer answer
3477 (log2): New fn. Safe log in base 2: returns exact integer answer
3474 for exact integer powers of 2.
3478 for exact integer powers of 2.
3475
3479
3476 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3480 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3477 properly.
3481 properly.
3478
3482
3479 2002-06-20 Fernando Perez <fperez@colorado.edu>
3483 2002-06-20 Fernando Perez <fperez@colorado.edu>
3480
3484
3481 * IPython/genutils.py (timing): new function like
3485 * IPython/genutils.py (timing): new function like
3482 Mathematica's. Similar to time_test, but returns more info.
3486 Mathematica's. Similar to time_test, but returns more info.
3483
3487
3484 2002-06-18 Fernando Perez <fperez@colorado.edu>
3488 2002-06-18 Fernando Perez <fperez@colorado.edu>
3485
3489
3486 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3490 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3487 according to Mike Heeter's suggestions.
3491 according to Mike Heeter's suggestions.
3488
3492
3489 2002-06-16 Fernando Perez <fperez@colorado.edu>
3493 2002-06-16 Fernando Perez <fperez@colorado.edu>
3490
3494
3491 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3495 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3492 system. GnuplotMagic is gone as a user-directory option. New files
3496 system. GnuplotMagic is gone as a user-directory option. New files
3493 make it easier to use all the gnuplot stuff both from external
3497 make it easier to use all the gnuplot stuff both from external
3494 programs as well as from IPython. Had to rewrite part of
3498 programs as well as from IPython. Had to rewrite part of
3495 hardcopy() b/c of a strange bug: often the ps files simply don't
3499 hardcopy() b/c of a strange bug: often the ps files simply don't
3496 get created, and require a repeat of the command (often several
3500 get created, and require a repeat of the command (often several
3497 times).
3501 times).
3498
3502
3499 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3503 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3500 resolve output channel at call time, so that if sys.stderr has
3504 resolve output channel at call time, so that if sys.stderr has
3501 been redirected by user this gets honored.
3505 been redirected by user this gets honored.
3502
3506
3503 2002-06-13 Fernando Perez <fperez@colorado.edu>
3507 2002-06-13 Fernando Perez <fperez@colorado.edu>
3504
3508
3505 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3509 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3506 IPShell. Kept a copy with the old names to avoid breaking people's
3510 IPShell. Kept a copy with the old names to avoid breaking people's
3507 embedded code.
3511 embedded code.
3508
3512
3509 * IPython/ipython: simplified it to the bare minimum after
3513 * IPython/ipython: simplified it to the bare minimum after
3510 Holger's suggestions. Added info about how to use it in
3514 Holger's suggestions. Added info about how to use it in
3511 PYTHONSTARTUP.
3515 PYTHONSTARTUP.
3512
3516
3513 * IPython/Shell.py (IPythonShell): changed the options passing
3517 * IPython/Shell.py (IPythonShell): changed the options passing
3514 from a string with funky %s replacements to a straight list. Maybe
3518 from a string with funky %s replacements to a straight list. Maybe
3515 a bit more typing, but it follows sys.argv conventions, so there's
3519 a bit more typing, but it follows sys.argv conventions, so there's
3516 less special-casing to remember.
3520 less special-casing to remember.
3517
3521
3518 2002-06-12 Fernando Perez <fperez@colorado.edu>
3522 2002-06-12 Fernando Perez <fperez@colorado.edu>
3519
3523
3520 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3524 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3521 command. Thanks to a suggestion by Mike Heeter.
3525 command. Thanks to a suggestion by Mike Heeter.
3522 (Magic.magic_pfile): added behavior to look at filenames if given
3526 (Magic.magic_pfile): added behavior to look at filenames if given
3523 arg is not a defined object.
3527 arg is not a defined object.
3524 (Magic.magic_save): New @save function to save code snippets. Also
3528 (Magic.magic_save): New @save function to save code snippets. Also
3525 a Mike Heeter idea.
3529 a Mike Heeter idea.
3526
3530
3527 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3531 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3528 plot() and replot(). Much more convenient now, especially for
3532 plot() and replot(). Much more convenient now, especially for
3529 interactive use.
3533 interactive use.
3530
3534
3531 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3535 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3532 filenames.
3536 filenames.
3533
3537
3534 2002-06-02 Fernando Perez <fperez@colorado.edu>
3538 2002-06-02 Fernando Perez <fperez@colorado.edu>
3535
3539
3536 * IPython/Struct.py (Struct.__init__): modified to admit
3540 * IPython/Struct.py (Struct.__init__): modified to admit
3537 initialization via another struct.
3541 initialization via another struct.
3538
3542
3539 * IPython/genutils.py (SystemExec.__init__): New stateful
3543 * IPython/genutils.py (SystemExec.__init__): New stateful
3540 interface to xsys and bq. Useful for writing system scripts.
3544 interface to xsys and bq. Useful for writing system scripts.
3541
3545
3542 2002-05-30 Fernando Perez <fperez@colorado.edu>
3546 2002-05-30 Fernando Perez <fperez@colorado.edu>
3543
3547
3544 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3548 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3545 documents. This will make the user download smaller (it's getting
3549 documents. This will make the user download smaller (it's getting
3546 too big).
3550 too big).
3547
3551
3548 2002-05-29 Fernando Perez <fperez@colorado.edu>
3552 2002-05-29 Fernando Perez <fperez@colorado.edu>
3549
3553
3550 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3554 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3551 fix problems with shelve and pickle. Seems to work, but I don't
3555 fix problems with shelve and pickle. Seems to work, but I don't
3552 know if corner cases break it. Thanks to Mike Heeter
3556 know if corner cases break it. Thanks to Mike Heeter
3553 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3557 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3554
3558
3555 2002-05-24 Fernando Perez <fperez@colorado.edu>
3559 2002-05-24 Fernando Perez <fperez@colorado.edu>
3556
3560
3557 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3561 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3558 macros having broken.
3562 macros having broken.
3559
3563
3560 2002-05-21 Fernando Perez <fperez@colorado.edu>
3564 2002-05-21 Fernando Perez <fperez@colorado.edu>
3561
3565
3562 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3566 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3563 introduced logging bug: all history before logging started was
3567 introduced logging bug: all history before logging started was
3564 being written one character per line! This came from the redesign
3568 being written one character per line! This came from the redesign
3565 of the input history as a special list which slices to strings,
3569 of the input history as a special list which slices to strings,
3566 not to lists.
3570 not to lists.
3567
3571
3568 2002-05-20 Fernando Perez <fperez@colorado.edu>
3572 2002-05-20 Fernando Perez <fperez@colorado.edu>
3569
3573
3570 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3574 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3571 be an attribute of all classes in this module. The design of these
3575 be an attribute of all classes in this module. The design of these
3572 classes needs some serious overhauling.
3576 classes needs some serious overhauling.
3573
3577
3574 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3578 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3575 which was ignoring '_' in option names.
3579 which was ignoring '_' in option names.
3576
3580
3577 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3581 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3578 'Verbose_novars' to 'Context' and made it the new default. It's a
3582 'Verbose_novars' to 'Context' and made it the new default. It's a
3579 bit more readable and also safer than verbose.
3583 bit more readable and also safer than verbose.
3580
3584
3581 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3585 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3582 triple-quoted strings.
3586 triple-quoted strings.
3583
3587
3584 * IPython/OInspect.py (__all__): new module exposing the object
3588 * IPython/OInspect.py (__all__): new module exposing the object
3585 introspection facilities. Now the corresponding magics are dummy
3589 introspection facilities. Now the corresponding magics are dummy
3586 wrappers around this. Having this module will make it much easier
3590 wrappers around this. Having this module will make it much easier
3587 to put these functions into our modified pdb.
3591 to put these functions into our modified pdb.
3588 This new object inspector system uses the new colorizing module,
3592 This new object inspector system uses the new colorizing module,
3589 so source code and other things are nicely syntax highlighted.
3593 so source code and other things are nicely syntax highlighted.
3590
3594
3591 2002-05-18 Fernando Perez <fperez@colorado.edu>
3595 2002-05-18 Fernando Perez <fperez@colorado.edu>
3592
3596
3593 * IPython/ColorANSI.py: Split the coloring tools into a separate
3597 * IPython/ColorANSI.py: Split the coloring tools into a separate
3594 module so I can use them in other code easier (they were part of
3598 module so I can use them in other code easier (they were part of
3595 ultraTB).
3599 ultraTB).
3596
3600
3597 2002-05-17 Fernando Perez <fperez@colorado.edu>
3601 2002-05-17 Fernando Perez <fperez@colorado.edu>
3598
3602
3599 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3603 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3600 fixed it to set the global 'g' also to the called instance, as
3604 fixed it to set the global 'g' also to the called instance, as
3601 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3605 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3602 user's 'g' variables).
3606 user's 'g' variables).
3603
3607
3604 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3608 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3605 global variables (aliases to _ih,_oh) so that users which expect
3609 global variables (aliases to _ih,_oh) so that users which expect
3606 In[5] or Out[7] to work aren't unpleasantly surprised.
3610 In[5] or Out[7] to work aren't unpleasantly surprised.
3607 (InputList.__getslice__): new class to allow executing slices of
3611 (InputList.__getslice__): new class to allow executing slices of
3608 input history directly. Very simple class, complements the use of
3612 input history directly. Very simple class, complements the use of
3609 macros.
3613 macros.
3610
3614
3611 2002-05-16 Fernando Perez <fperez@colorado.edu>
3615 2002-05-16 Fernando Perez <fperez@colorado.edu>
3612
3616
3613 * setup.py (docdirbase): make doc directory be just doc/IPython
3617 * setup.py (docdirbase): make doc directory be just doc/IPython
3614 without version numbers, it will reduce clutter for users.
3618 without version numbers, it will reduce clutter for users.
3615
3619
3616 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3620 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3617 execfile call to prevent possible memory leak. See for details:
3621 execfile call to prevent possible memory leak. See for details:
3618 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3622 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3619
3623
3620 2002-05-15 Fernando Perez <fperez@colorado.edu>
3624 2002-05-15 Fernando Perez <fperez@colorado.edu>
3621
3625
3622 * IPython/Magic.py (Magic.magic_psource): made the object
3626 * IPython/Magic.py (Magic.magic_psource): made the object
3623 introspection names be more standard: pdoc, pdef, pfile and
3627 introspection names be more standard: pdoc, pdef, pfile and
3624 psource. They all print/page their output, and it makes
3628 psource. They all print/page their output, and it makes
3625 remembering them easier. Kept old names for compatibility as
3629 remembering them easier. Kept old names for compatibility as
3626 aliases.
3630 aliases.
3627
3631
3628 2002-05-14 Fernando Perez <fperez@colorado.edu>
3632 2002-05-14 Fernando Perez <fperez@colorado.edu>
3629
3633
3630 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3634 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3631 what the mouse problem was. The trick is to use gnuplot with temp
3635 what the mouse problem was. The trick is to use gnuplot with temp
3632 files and NOT with pipes (for data communication), because having
3636 files and NOT with pipes (for data communication), because having
3633 both pipes and the mouse on is bad news.
3637 both pipes and the mouse on is bad news.
3634
3638
3635 2002-05-13 Fernando Perez <fperez@colorado.edu>
3639 2002-05-13 Fernando Perez <fperez@colorado.edu>
3636
3640
3637 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3641 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3638 bug. Information would be reported about builtins even when
3642 bug. Information would be reported about builtins even when
3639 user-defined functions overrode them.
3643 user-defined functions overrode them.
3640
3644
3641 2002-05-11 Fernando Perez <fperez@colorado.edu>
3645 2002-05-11 Fernando Perez <fperez@colorado.edu>
3642
3646
3643 * IPython/__init__.py (__all__): removed FlexCompleter from
3647 * IPython/__init__.py (__all__): removed FlexCompleter from
3644 __all__ so that things don't fail in platforms without readline.
3648 __all__ so that things don't fail in platforms without readline.
3645
3649
3646 2002-05-10 Fernando Perez <fperez@colorado.edu>
3650 2002-05-10 Fernando Perez <fperez@colorado.edu>
3647
3651
3648 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3652 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3649 it requires Numeric, effectively making Numeric a dependency for
3653 it requires Numeric, effectively making Numeric a dependency for
3650 IPython.
3654 IPython.
3651
3655
3652 * Released 0.2.13
3656 * Released 0.2.13
3653
3657
3654 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3658 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3655 profiler interface. Now all the major options from the profiler
3659 profiler interface. Now all the major options from the profiler
3656 module are directly supported in IPython, both for single
3660 module are directly supported in IPython, both for single
3657 expressions (@prun) and for full programs (@run -p).
3661 expressions (@prun) and for full programs (@run -p).
3658
3662
3659 2002-05-09 Fernando Perez <fperez@colorado.edu>
3663 2002-05-09 Fernando Perez <fperez@colorado.edu>
3660
3664
3661 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3665 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3662 magic properly formatted for screen.
3666 magic properly formatted for screen.
3663
3667
3664 * setup.py (make_shortcut): Changed things to put pdf version in
3668 * setup.py (make_shortcut): Changed things to put pdf version in
3665 doc/ instead of doc/manual (had to change lyxport a bit).
3669 doc/ instead of doc/manual (had to change lyxport a bit).
3666
3670
3667 * IPython/Magic.py (Profile.string_stats): made profile runs go
3671 * IPython/Magic.py (Profile.string_stats): made profile runs go
3668 through pager (they are long and a pager allows searching, saving,
3672 through pager (they are long and a pager allows searching, saving,
3669 etc.)
3673 etc.)
3670
3674
3671 2002-05-08 Fernando Perez <fperez@colorado.edu>
3675 2002-05-08 Fernando Perez <fperez@colorado.edu>
3672
3676
3673 * Released 0.2.12
3677 * Released 0.2.12
3674
3678
3675 2002-05-06 Fernando Perez <fperez@colorado.edu>
3679 2002-05-06 Fernando Perez <fperez@colorado.edu>
3676
3680
3677 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3681 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3678 introduced); 'hist n1 n2' was broken.
3682 introduced); 'hist n1 n2' was broken.
3679 (Magic.magic_pdb): added optional on/off arguments to @pdb
3683 (Magic.magic_pdb): added optional on/off arguments to @pdb
3680 (Magic.magic_run): added option -i to @run, which executes code in
3684 (Magic.magic_run): added option -i to @run, which executes code in
3681 the IPython namespace instead of a clean one. Also added @irun as
3685 the IPython namespace instead of a clean one. Also added @irun as
3682 an alias to @run -i.
3686 an alias to @run -i.
3683
3687
3684 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3688 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3685 fixed (it didn't really do anything, the namespaces were wrong).
3689 fixed (it didn't really do anything, the namespaces were wrong).
3686
3690
3687 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3691 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3688
3692
3689 * IPython/__init__.py (__all__): Fixed package namespace, now
3693 * IPython/__init__.py (__all__): Fixed package namespace, now
3690 'import IPython' does give access to IPython.<all> as
3694 'import IPython' does give access to IPython.<all> as
3691 expected. Also renamed __release__ to Release.
3695 expected. Also renamed __release__ to Release.
3692
3696
3693 * IPython/Debugger.py (__license__): created new Pdb class which
3697 * IPython/Debugger.py (__license__): created new Pdb class which
3694 functions like a drop-in for the normal pdb.Pdb but does NOT
3698 functions like a drop-in for the normal pdb.Pdb but does NOT
3695 import readline by default. This way it doesn't muck up IPython's
3699 import readline by default. This way it doesn't muck up IPython's
3696 readline handling, and now tab-completion finally works in the
3700 readline handling, and now tab-completion finally works in the
3697 debugger -- sort of. It completes things globally visible, but the
3701 debugger -- sort of. It completes things globally visible, but the
3698 completer doesn't track the stack as pdb walks it. That's a bit
3702 completer doesn't track the stack as pdb walks it. That's a bit
3699 tricky, and I'll have to implement it later.
3703 tricky, and I'll have to implement it later.
3700
3704
3701 2002-05-05 Fernando Perez <fperez@colorado.edu>
3705 2002-05-05 Fernando Perez <fperez@colorado.edu>
3702
3706
3703 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3707 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3704 magic docstrings when printed via ? (explicit \'s were being
3708 magic docstrings when printed via ? (explicit \'s were being
3705 printed).
3709 printed).
3706
3710
3707 * IPython/ipmaker.py (make_IPython): fixed namespace
3711 * IPython/ipmaker.py (make_IPython): fixed namespace
3708 identification bug. Now variables loaded via logs or command-line
3712 identification bug. Now variables loaded via logs or command-line
3709 files are recognized in the interactive namespace by @who.
3713 files are recognized in the interactive namespace by @who.
3710
3714
3711 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3715 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3712 log replay system stemming from the string form of Structs.
3716 log replay system stemming from the string form of Structs.
3713
3717
3714 * IPython/Magic.py (Macro.__init__): improved macros to properly
3718 * IPython/Magic.py (Macro.__init__): improved macros to properly
3715 handle magic commands in them.
3719 handle magic commands in them.
3716 (Magic.magic_logstart): usernames are now expanded so 'logstart
3720 (Magic.magic_logstart): usernames are now expanded so 'logstart
3717 ~/mylog' now works.
3721 ~/mylog' now works.
3718
3722
3719 * IPython/iplib.py (complete): fixed bug where paths starting with
3723 * IPython/iplib.py (complete): fixed bug where paths starting with
3720 '/' would be completed as magic names.
3724 '/' would be completed as magic names.
3721
3725
3722 2002-05-04 Fernando Perez <fperez@colorado.edu>
3726 2002-05-04 Fernando Perez <fperez@colorado.edu>
3723
3727
3724 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3728 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3725 allow running full programs under the profiler's control.
3729 allow running full programs under the profiler's control.
3726
3730
3727 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3731 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3728 mode to report exceptions verbosely but without formatting
3732 mode to report exceptions verbosely but without formatting
3729 variables. This addresses the issue of ipython 'freezing' (it's
3733 variables. This addresses the issue of ipython 'freezing' (it's
3730 not frozen, but caught in an expensive formatting loop) when huge
3734 not frozen, but caught in an expensive formatting loop) when huge
3731 variables are in the context of an exception.
3735 variables are in the context of an exception.
3732 (VerboseTB.text): Added '--->' markers at line where exception was
3736 (VerboseTB.text): Added '--->' markers at line where exception was
3733 triggered. Much clearer to read, especially in NoColor modes.
3737 triggered. Much clearer to read, especially in NoColor modes.
3734
3738
3735 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3739 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3736 implemented in reverse when changing to the new parse_options().
3740 implemented in reverse when changing to the new parse_options().
3737
3741
3738 2002-05-03 Fernando Perez <fperez@colorado.edu>
3742 2002-05-03 Fernando Perez <fperez@colorado.edu>
3739
3743
3740 * IPython/Magic.py (Magic.parse_options): new function so that
3744 * IPython/Magic.py (Magic.parse_options): new function so that
3741 magics can parse options easier.
3745 magics can parse options easier.
3742 (Magic.magic_prun): new function similar to profile.run(),
3746 (Magic.magic_prun): new function similar to profile.run(),
3743 suggested by Chris Hart.
3747 suggested by Chris Hart.
3744 (Magic.magic_cd): fixed behavior so that it only changes if
3748 (Magic.magic_cd): fixed behavior so that it only changes if
3745 directory actually is in history.
3749 directory actually is in history.
3746
3750
3747 * IPython/usage.py (__doc__): added information about potential
3751 * IPython/usage.py (__doc__): added information about potential
3748 slowness of Verbose exception mode when there are huge data
3752 slowness of Verbose exception mode when there are huge data
3749 structures to be formatted (thanks to Archie Paulson).
3753 structures to be formatted (thanks to Archie Paulson).
3750
3754
3751 * IPython/ipmaker.py (make_IPython): Changed default logging
3755 * IPython/ipmaker.py (make_IPython): Changed default logging
3752 (when simply called with -log) to use curr_dir/ipython.log in
3756 (when simply called with -log) to use curr_dir/ipython.log in
3753 rotate mode. Fixed crash which was occuring with -log before
3757 rotate mode. Fixed crash which was occuring with -log before
3754 (thanks to Jim Boyle).
3758 (thanks to Jim Boyle).
3755
3759
3756 2002-05-01 Fernando Perez <fperez@colorado.edu>
3760 2002-05-01 Fernando Perez <fperez@colorado.edu>
3757
3761
3758 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3762 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3759 was nasty -- though somewhat of a corner case).
3763 was nasty -- though somewhat of a corner case).
3760
3764
3761 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3765 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3762 text (was a bug).
3766 text (was a bug).
3763
3767
3764 2002-04-30 Fernando Perez <fperez@colorado.edu>
3768 2002-04-30 Fernando Perez <fperez@colorado.edu>
3765
3769
3766 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3770 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3767 a print after ^D or ^C from the user so that the In[] prompt
3771 a print after ^D or ^C from the user so that the In[] prompt
3768 doesn't over-run the gnuplot one.
3772 doesn't over-run the gnuplot one.
3769
3773
3770 2002-04-29 Fernando Perez <fperez@colorado.edu>
3774 2002-04-29 Fernando Perez <fperez@colorado.edu>
3771
3775
3772 * Released 0.2.10
3776 * Released 0.2.10
3773
3777
3774 * IPython/__release__.py (version): get date dynamically.
3778 * IPython/__release__.py (version): get date dynamically.
3775
3779
3776 * Misc. documentation updates thanks to Arnd's comments. Also ran
3780 * Misc. documentation updates thanks to Arnd's comments. Also ran
3777 a full spellcheck on the manual (hadn't been done in a while).
3781 a full spellcheck on the manual (hadn't been done in a while).
3778
3782
3779 2002-04-27 Fernando Perez <fperez@colorado.edu>
3783 2002-04-27 Fernando Perez <fperez@colorado.edu>
3780
3784
3781 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3785 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3782 starting a log in mid-session would reset the input history list.
3786 starting a log in mid-session would reset the input history list.
3783
3787
3784 2002-04-26 Fernando Perez <fperez@colorado.edu>
3788 2002-04-26 Fernando Perez <fperez@colorado.edu>
3785
3789
3786 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3790 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3787 all files were being included in an update. Now anything in
3791 all files were being included in an update. Now anything in
3788 UserConfig that matches [A-Za-z]*.py will go (this excludes
3792 UserConfig that matches [A-Za-z]*.py will go (this excludes
3789 __init__.py)
3793 __init__.py)
3790
3794
3791 2002-04-25 Fernando Perez <fperez@colorado.edu>
3795 2002-04-25 Fernando Perez <fperez@colorado.edu>
3792
3796
3793 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3797 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3794 to __builtins__ so that any form of embedded or imported code can
3798 to __builtins__ so that any form of embedded or imported code can
3795 test for being inside IPython.
3799 test for being inside IPython.
3796
3800
3797 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3801 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3798 changed to GnuplotMagic because it's now an importable module,
3802 changed to GnuplotMagic because it's now an importable module,
3799 this makes the name follow that of the standard Gnuplot module.
3803 this makes the name follow that of the standard Gnuplot module.
3800 GnuplotMagic can now be loaded at any time in mid-session.
3804 GnuplotMagic can now be loaded at any time in mid-session.
3801
3805
3802 2002-04-24 Fernando Perez <fperez@colorado.edu>
3806 2002-04-24 Fernando Perez <fperez@colorado.edu>
3803
3807
3804 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3808 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3805 the globals (IPython has its own namespace) and the
3809 the globals (IPython has its own namespace) and the
3806 PhysicalQuantity stuff is much better anyway.
3810 PhysicalQuantity stuff is much better anyway.
3807
3811
3808 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3812 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3809 embedding example to standard user directory for
3813 embedding example to standard user directory for
3810 distribution. Also put it in the manual.
3814 distribution. Also put it in the manual.
3811
3815
3812 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3816 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3813 instance as first argument (so it doesn't rely on some obscure
3817 instance as first argument (so it doesn't rely on some obscure
3814 hidden global).
3818 hidden global).
3815
3819
3816 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3820 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3817 delimiters. While it prevents ().TAB from working, it allows
3821 delimiters. While it prevents ().TAB from working, it allows
3818 completions in open (... expressions. This is by far a more common
3822 completions in open (... expressions. This is by far a more common
3819 case.
3823 case.
3820
3824
3821 2002-04-23 Fernando Perez <fperez@colorado.edu>
3825 2002-04-23 Fernando Perez <fperez@colorado.edu>
3822
3826
3823 * IPython/Extensions/InterpreterPasteInput.py: new
3827 * IPython/Extensions/InterpreterPasteInput.py: new
3824 syntax-processing module for pasting lines with >>> or ... at the
3828 syntax-processing module for pasting lines with >>> or ... at the
3825 start.
3829 start.
3826
3830
3827 * IPython/Extensions/PhysicalQ_Interactive.py
3831 * IPython/Extensions/PhysicalQ_Interactive.py
3828 (PhysicalQuantityInteractive.__int__): fixed to work with either
3832 (PhysicalQuantityInteractive.__int__): fixed to work with either
3829 Numeric or math.
3833 Numeric or math.
3830
3834
3831 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3835 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3832 provided profiles. Now we have:
3836 provided profiles. Now we have:
3833 -math -> math module as * and cmath with its own namespace.
3837 -math -> math module as * and cmath with its own namespace.
3834 -numeric -> Numeric as *, plus gnuplot & grace
3838 -numeric -> Numeric as *, plus gnuplot & grace
3835 -physics -> same as before
3839 -physics -> same as before
3836
3840
3837 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3841 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3838 user-defined magics wouldn't be found by @magic if they were
3842 user-defined magics wouldn't be found by @magic if they were
3839 defined as class methods. Also cleaned up the namespace search
3843 defined as class methods. Also cleaned up the namespace search
3840 logic and the string building (to use %s instead of many repeated
3844 logic and the string building (to use %s instead of many repeated
3841 string adds).
3845 string adds).
3842
3846
3843 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3847 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3844 of user-defined magics to operate with class methods (cleaner, in
3848 of user-defined magics to operate with class methods (cleaner, in
3845 line with the gnuplot code).
3849 line with the gnuplot code).
3846
3850
3847 2002-04-22 Fernando Perez <fperez@colorado.edu>
3851 2002-04-22 Fernando Perez <fperez@colorado.edu>
3848
3852
3849 * setup.py: updated dependency list so that manual is updated when
3853 * setup.py: updated dependency list so that manual is updated when
3850 all included files change.
3854 all included files change.
3851
3855
3852 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3856 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3853 the delimiter removal option (the fix is ugly right now).
3857 the delimiter removal option (the fix is ugly right now).
3854
3858
3855 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3859 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3856 all of the math profile (quicker loading, no conflict between
3860 all of the math profile (quicker loading, no conflict between
3857 g-9.8 and g-gnuplot).
3861 g-9.8 and g-gnuplot).
3858
3862
3859 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3863 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3860 name of post-mortem files to IPython_crash_report.txt.
3864 name of post-mortem files to IPython_crash_report.txt.
3861
3865
3862 * Cleanup/update of the docs. Added all the new readline info and
3866 * Cleanup/update of the docs. Added all the new readline info and
3863 formatted all lists as 'real lists'.
3867 formatted all lists as 'real lists'.
3864
3868
3865 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3869 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3866 tab-completion options, since the full readline parse_and_bind is
3870 tab-completion options, since the full readline parse_and_bind is
3867 now accessible.
3871 now accessible.
3868
3872
3869 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3873 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3870 handling of readline options. Now users can specify any string to
3874 handling of readline options. Now users can specify any string to
3871 be passed to parse_and_bind(), as well as the delimiters to be
3875 be passed to parse_and_bind(), as well as the delimiters to be
3872 removed.
3876 removed.
3873 (InteractiveShell.__init__): Added __name__ to the global
3877 (InteractiveShell.__init__): Added __name__ to the global
3874 namespace so that things like Itpl which rely on its existence
3878 namespace so that things like Itpl which rely on its existence
3875 don't crash.
3879 don't crash.
3876 (InteractiveShell._prefilter): Defined the default with a _ so
3880 (InteractiveShell._prefilter): Defined the default with a _ so
3877 that prefilter() is easier to override, while the default one
3881 that prefilter() is easier to override, while the default one
3878 remains available.
3882 remains available.
3879
3883
3880 2002-04-18 Fernando Perez <fperez@colorado.edu>
3884 2002-04-18 Fernando Perez <fperez@colorado.edu>
3881
3885
3882 * Added information about pdb in the docs.
3886 * Added information about pdb in the docs.
3883
3887
3884 2002-04-17 Fernando Perez <fperez@colorado.edu>
3888 2002-04-17 Fernando Perez <fperez@colorado.edu>
3885
3889
3886 * IPython/ipmaker.py (make_IPython): added rc_override option to
3890 * IPython/ipmaker.py (make_IPython): added rc_override option to
3887 allow passing config options at creation time which may override
3891 allow passing config options at creation time which may override
3888 anything set in the config files or command line. This is
3892 anything set in the config files or command line. This is
3889 particularly useful for configuring embedded instances.
3893 particularly useful for configuring embedded instances.
3890
3894
3891 2002-04-15 Fernando Perez <fperez@colorado.edu>
3895 2002-04-15 Fernando Perez <fperez@colorado.edu>
3892
3896
3893 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3897 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3894 crash embedded instances because of the input cache falling out of
3898 crash embedded instances because of the input cache falling out of
3895 sync with the output counter.
3899 sync with the output counter.
3896
3900
3897 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3901 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3898 mode which calls pdb after an uncaught exception in IPython itself.
3902 mode which calls pdb after an uncaught exception in IPython itself.
3899
3903
3900 2002-04-14 Fernando Perez <fperez@colorado.edu>
3904 2002-04-14 Fernando Perez <fperez@colorado.edu>
3901
3905
3902 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3906 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3903 readline, fix it back after each call.
3907 readline, fix it back after each call.
3904
3908
3905 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3909 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3906 method to force all access via __call__(), which guarantees that
3910 method to force all access via __call__(), which guarantees that
3907 traceback references are properly deleted.
3911 traceback references are properly deleted.
3908
3912
3909 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3913 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3910 improve printing when pprint is in use.
3914 improve printing when pprint is in use.
3911
3915
3912 2002-04-13 Fernando Perez <fperez@colorado.edu>
3916 2002-04-13 Fernando Perez <fperez@colorado.edu>
3913
3917
3914 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3918 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3915 exceptions aren't caught anymore. If the user triggers one, he
3919 exceptions aren't caught anymore. If the user triggers one, he
3916 should know why he's doing it and it should go all the way up,
3920 should know why he's doing it and it should go all the way up,
3917 just like any other exception. So now @abort will fully kill the
3921 just like any other exception. So now @abort will fully kill the
3918 embedded interpreter and the embedding code (unless that happens
3922 embedded interpreter and the embedding code (unless that happens
3919 to catch SystemExit).
3923 to catch SystemExit).
3920
3924
3921 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3925 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3922 and a debugger() method to invoke the interactive pdb debugger
3926 and a debugger() method to invoke the interactive pdb debugger
3923 after printing exception information. Also added the corresponding
3927 after printing exception information. Also added the corresponding
3924 -pdb option and @pdb magic to control this feature, and updated
3928 -pdb option and @pdb magic to control this feature, and updated
3925 the docs. After a suggestion from Christopher Hart
3929 the docs. After a suggestion from Christopher Hart
3926 (hart-AT-caltech.edu).
3930 (hart-AT-caltech.edu).
3927
3931
3928 2002-04-12 Fernando Perez <fperez@colorado.edu>
3932 2002-04-12 Fernando Perez <fperez@colorado.edu>
3929
3933
3930 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3934 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3931 the exception handlers defined by the user (not the CrashHandler)
3935 the exception handlers defined by the user (not the CrashHandler)
3932 so that user exceptions don't trigger an ipython bug report.
3936 so that user exceptions don't trigger an ipython bug report.
3933
3937
3934 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3938 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3935 configurable (it should have always been so).
3939 configurable (it should have always been so).
3936
3940
3937 2002-03-26 Fernando Perez <fperez@colorado.edu>
3941 2002-03-26 Fernando Perez <fperez@colorado.edu>
3938
3942
3939 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3943 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3940 and there to fix embedding namespace issues. This should all be
3944 and there to fix embedding namespace issues. This should all be
3941 done in a more elegant way.
3945 done in a more elegant way.
3942
3946
3943 2002-03-25 Fernando Perez <fperez@colorado.edu>
3947 2002-03-25 Fernando Perez <fperez@colorado.edu>
3944
3948
3945 * IPython/genutils.py (get_home_dir): Try to make it work under
3949 * IPython/genutils.py (get_home_dir): Try to make it work under
3946 win9x also.
3950 win9x also.
3947
3951
3948 2002-03-20 Fernando Perez <fperez@colorado.edu>
3952 2002-03-20 Fernando Perez <fperez@colorado.edu>
3949
3953
3950 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3954 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3951 sys.displayhook untouched upon __init__.
3955 sys.displayhook untouched upon __init__.
3952
3956
3953 2002-03-19 Fernando Perez <fperez@colorado.edu>
3957 2002-03-19 Fernando Perez <fperez@colorado.edu>
3954
3958
3955 * Released 0.2.9 (for embedding bug, basically).
3959 * Released 0.2.9 (for embedding bug, basically).
3956
3960
3957 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3961 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3958 exceptions so that enclosing shell's state can be restored.
3962 exceptions so that enclosing shell's state can be restored.
3959
3963
3960 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3964 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3961 naming conventions in the .ipython/ dir.
3965 naming conventions in the .ipython/ dir.
3962
3966
3963 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3967 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3964 from delimiters list so filenames with - in them get expanded.
3968 from delimiters list so filenames with - in them get expanded.
3965
3969
3966 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3970 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3967 sys.displayhook not being properly restored after an embedded call.
3971 sys.displayhook not being properly restored after an embedded call.
3968
3972
3969 2002-03-18 Fernando Perez <fperez@colorado.edu>
3973 2002-03-18 Fernando Perez <fperez@colorado.edu>
3970
3974
3971 * Released 0.2.8
3975 * Released 0.2.8
3972
3976
3973 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3977 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3974 some files weren't being included in a -upgrade.
3978 some files weren't being included in a -upgrade.
3975 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3979 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3976 on' so that the first tab completes.
3980 on' so that the first tab completes.
3977 (InteractiveShell.handle_magic): fixed bug with spaces around
3981 (InteractiveShell.handle_magic): fixed bug with spaces around
3978 quotes breaking many magic commands.
3982 quotes breaking many magic commands.
3979
3983
3980 * setup.py: added note about ignoring the syntax error messages at
3984 * setup.py: added note about ignoring the syntax error messages at
3981 installation.
3985 installation.
3982
3986
3983 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3987 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3984 streamlining the gnuplot interface, now there's only one magic @gp.
3988 streamlining the gnuplot interface, now there's only one magic @gp.
3985
3989
3986 2002-03-17 Fernando Perez <fperez@colorado.edu>
3990 2002-03-17 Fernando Perez <fperez@colorado.edu>
3987
3991
3988 * IPython/UserConfig/magic_gnuplot.py: new name for the
3992 * IPython/UserConfig/magic_gnuplot.py: new name for the
3989 example-magic_pm.py file. Much enhanced system, now with a shell
3993 example-magic_pm.py file. Much enhanced system, now with a shell
3990 for communicating directly with gnuplot, one command at a time.
3994 for communicating directly with gnuplot, one command at a time.
3991
3995
3992 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3996 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3993 setting __name__=='__main__'.
3997 setting __name__=='__main__'.
3994
3998
3995 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3999 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3996 mini-shell for accessing gnuplot from inside ipython. Should
4000 mini-shell for accessing gnuplot from inside ipython. Should
3997 extend it later for grace access too. Inspired by Arnd's
4001 extend it later for grace access too. Inspired by Arnd's
3998 suggestion.
4002 suggestion.
3999
4003
4000 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4004 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4001 calling magic functions with () in their arguments. Thanks to Arnd
4005 calling magic functions with () in their arguments. Thanks to Arnd
4002 Baecker for pointing this to me.
4006 Baecker for pointing this to me.
4003
4007
4004 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4008 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4005 infinitely for integer or complex arrays (only worked with floats).
4009 infinitely for integer or complex arrays (only worked with floats).
4006
4010
4007 2002-03-16 Fernando Perez <fperez@colorado.edu>
4011 2002-03-16 Fernando Perez <fperez@colorado.edu>
4008
4012
4009 * setup.py: Merged setup and setup_windows into a single script
4013 * setup.py: Merged setup and setup_windows into a single script
4010 which properly handles things for windows users.
4014 which properly handles things for windows users.
4011
4015
4012 2002-03-15 Fernando Perez <fperez@colorado.edu>
4016 2002-03-15 Fernando Perez <fperez@colorado.edu>
4013
4017
4014 * Big change to the manual: now the magics are all automatically
4018 * Big change to the manual: now the magics are all automatically
4015 documented. This information is generated from their docstrings
4019 documented. This information is generated from their docstrings
4016 and put in a latex file included by the manual lyx file. This way
4020 and put in a latex file included by the manual lyx file. This way
4017 we get always up to date information for the magics. The manual
4021 we get always up to date information for the magics. The manual
4018 now also has proper version information, also auto-synced.
4022 now also has proper version information, also auto-synced.
4019
4023
4020 For this to work, an undocumented --magic_docstrings option was added.
4024 For this to work, an undocumented --magic_docstrings option was added.
4021
4025
4022 2002-03-13 Fernando Perez <fperez@colorado.edu>
4026 2002-03-13 Fernando Perez <fperez@colorado.edu>
4023
4027
4024 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4028 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4025 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4029 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4026
4030
4027 2002-03-12 Fernando Perez <fperez@colorado.edu>
4031 2002-03-12 Fernando Perez <fperez@colorado.edu>
4028
4032
4029 * IPython/ultraTB.py (TermColors): changed color escapes again to
4033 * IPython/ultraTB.py (TermColors): changed color escapes again to
4030 fix the (old, reintroduced) line-wrapping bug. Basically, if
4034 fix the (old, reintroduced) line-wrapping bug. Basically, if
4031 \001..\002 aren't given in the color escapes, lines get wrapped
4035 \001..\002 aren't given in the color escapes, lines get wrapped
4032 weirdly. But giving those screws up old xterms and emacs terms. So
4036 weirdly. But giving those screws up old xterms and emacs terms. So
4033 I added some logic for emacs terms to be ok, but I can't identify old
4037 I added some logic for emacs terms to be ok, but I can't identify old
4034 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4038 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4035
4039
4036 2002-03-10 Fernando Perez <fperez@colorado.edu>
4040 2002-03-10 Fernando Perez <fperez@colorado.edu>
4037
4041
4038 * IPython/usage.py (__doc__): Various documentation cleanups and
4042 * IPython/usage.py (__doc__): Various documentation cleanups and
4039 updates, both in usage docstrings and in the manual.
4043 updates, both in usage docstrings and in the manual.
4040
4044
4041 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4045 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4042 handling of caching. Set minimum acceptabe value for having a
4046 handling of caching. Set minimum acceptabe value for having a
4043 cache at 20 values.
4047 cache at 20 values.
4044
4048
4045 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4049 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4046 install_first_time function to a method, renamed it and added an
4050 install_first_time function to a method, renamed it and added an
4047 'upgrade' mode. Now people can update their config directory with
4051 'upgrade' mode. Now people can update their config directory with
4048 a simple command line switch (-upgrade, also new).
4052 a simple command line switch (-upgrade, also new).
4049
4053
4050 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4054 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4051 @file (convenient for automagic users under Python >= 2.2).
4055 @file (convenient for automagic users under Python >= 2.2).
4052 Removed @files (it seemed more like a plural than an abbrev. of
4056 Removed @files (it seemed more like a plural than an abbrev. of
4053 'file show').
4057 'file show').
4054
4058
4055 * IPython/iplib.py (install_first_time): Fixed crash if there were
4059 * IPython/iplib.py (install_first_time): Fixed crash if there were
4056 backup files ('~') in .ipython/ install directory.
4060 backup files ('~') in .ipython/ install directory.
4057
4061
4058 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4062 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4059 system. Things look fine, but these changes are fairly
4063 system. Things look fine, but these changes are fairly
4060 intrusive. Test them for a few days.
4064 intrusive. Test them for a few days.
4061
4065
4062 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4066 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4063 the prompts system. Now all in/out prompt strings are user
4067 the prompts system. Now all in/out prompt strings are user
4064 controllable. This is particularly useful for embedding, as one
4068 controllable. This is particularly useful for embedding, as one
4065 can tag embedded instances with particular prompts.
4069 can tag embedded instances with particular prompts.
4066
4070
4067 Also removed global use of sys.ps1/2, which now allows nested
4071 Also removed global use of sys.ps1/2, which now allows nested
4068 embeddings without any problems. Added command-line options for
4072 embeddings without any problems. Added command-line options for
4069 the prompt strings.
4073 the prompt strings.
4070
4074
4071 2002-03-08 Fernando Perez <fperez@colorado.edu>
4075 2002-03-08 Fernando Perez <fperez@colorado.edu>
4072
4076
4073 * IPython/UserConfig/example-embed-short.py (ipshell): added
4077 * IPython/UserConfig/example-embed-short.py (ipshell): added
4074 example file with the bare minimum code for embedding.
4078 example file with the bare minimum code for embedding.
4075
4079
4076 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4080 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4077 functionality for the embeddable shell to be activated/deactivated
4081 functionality for the embeddable shell to be activated/deactivated
4078 either globally or at each call.
4082 either globally or at each call.
4079
4083
4080 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4084 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4081 rewriting the prompt with '--->' for auto-inputs with proper
4085 rewriting the prompt with '--->' for auto-inputs with proper
4082 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4086 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4083 this is handled by the prompts class itself, as it should.
4087 this is handled by the prompts class itself, as it should.
4084
4088
4085 2002-03-05 Fernando Perez <fperez@colorado.edu>
4089 2002-03-05 Fernando Perez <fperez@colorado.edu>
4086
4090
4087 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4091 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4088 @logstart to avoid name clashes with the math log function.
4092 @logstart to avoid name clashes with the math log function.
4089
4093
4090 * Big updates to X/Emacs section of the manual.
4094 * Big updates to X/Emacs section of the manual.
4091
4095
4092 * Removed ipython_emacs. Milan explained to me how to pass
4096 * Removed ipython_emacs. Milan explained to me how to pass
4093 arguments to ipython through Emacs. Some day I'm going to end up
4097 arguments to ipython through Emacs. Some day I'm going to end up
4094 learning some lisp...
4098 learning some lisp...
4095
4099
4096 2002-03-04 Fernando Perez <fperez@colorado.edu>
4100 2002-03-04 Fernando Perez <fperez@colorado.edu>
4097
4101
4098 * IPython/ipython_emacs: Created script to be used as the
4102 * IPython/ipython_emacs: Created script to be used as the
4099 py-python-command Emacs variable so we can pass IPython
4103 py-python-command Emacs variable so we can pass IPython
4100 parameters. I can't figure out how to tell Emacs directly to pass
4104 parameters. I can't figure out how to tell Emacs directly to pass
4101 parameters to IPython, so a dummy shell script will do it.
4105 parameters to IPython, so a dummy shell script will do it.
4102
4106
4103 Other enhancements made for things to work better under Emacs'
4107 Other enhancements made for things to work better under Emacs'
4104 various types of terminals. Many thanks to Milan Zamazal
4108 various types of terminals. Many thanks to Milan Zamazal
4105 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4109 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4106
4110
4107 2002-03-01 Fernando Perez <fperez@colorado.edu>
4111 2002-03-01 Fernando Perez <fperez@colorado.edu>
4108
4112
4109 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4113 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4110 that loading of readline is now optional. This gives better
4114 that loading of readline is now optional. This gives better
4111 control to emacs users.
4115 control to emacs users.
4112
4116
4113 * IPython/ultraTB.py (__date__): Modified color escape sequences
4117 * IPython/ultraTB.py (__date__): Modified color escape sequences
4114 and now things work fine under xterm and in Emacs' term buffers
4118 and now things work fine under xterm and in Emacs' term buffers
4115 (though not shell ones). Well, in emacs you get colors, but all
4119 (though not shell ones). Well, in emacs you get colors, but all
4116 seem to be 'light' colors (no difference between dark and light
4120 seem to be 'light' colors (no difference between dark and light
4117 ones). But the garbage chars are gone, and also in xterms. It
4121 ones). But the garbage chars are gone, and also in xterms. It
4118 seems that now I'm using 'cleaner' ansi sequences.
4122 seems that now I'm using 'cleaner' ansi sequences.
4119
4123
4120 2002-02-21 Fernando Perez <fperez@colorado.edu>
4124 2002-02-21 Fernando Perez <fperez@colorado.edu>
4121
4125
4122 * Released 0.2.7 (mainly to publish the scoping fix).
4126 * Released 0.2.7 (mainly to publish the scoping fix).
4123
4127
4124 * IPython/Logger.py (Logger.logstate): added. A corresponding
4128 * IPython/Logger.py (Logger.logstate): added. A corresponding
4125 @logstate magic was created.
4129 @logstate magic was created.
4126
4130
4127 * IPython/Magic.py: fixed nested scoping problem under Python
4131 * IPython/Magic.py: fixed nested scoping problem under Python
4128 2.1.x (automagic wasn't working).
4132 2.1.x (automagic wasn't working).
4129
4133
4130 2002-02-20 Fernando Perez <fperez@colorado.edu>
4134 2002-02-20 Fernando Perez <fperez@colorado.edu>
4131
4135
4132 * Released 0.2.6.
4136 * Released 0.2.6.
4133
4137
4134 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4138 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4135 option so that logs can come out without any headers at all.
4139 option so that logs can come out without any headers at all.
4136
4140
4137 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4141 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4138 SciPy.
4142 SciPy.
4139
4143
4140 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4144 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4141 that embedded IPython calls don't require vars() to be explicitly
4145 that embedded IPython calls don't require vars() to be explicitly
4142 passed. Now they are extracted from the caller's frame (code
4146 passed. Now they are extracted from the caller's frame (code
4143 snatched from Eric Jones' weave). Added better documentation to
4147 snatched from Eric Jones' weave). Added better documentation to
4144 the section on embedding and the example file.
4148 the section on embedding and the example file.
4145
4149
4146 * IPython/genutils.py (page): Changed so that under emacs, it just
4150 * IPython/genutils.py (page): Changed so that under emacs, it just
4147 prints the string. You can then page up and down in the emacs
4151 prints the string. You can then page up and down in the emacs
4148 buffer itself. This is how the builtin help() works.
4152 buffer itself. This is how the builtin help() works.
4149
4153
4150 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4154 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4151 macro scoping: macros need to be executed in the user's namespace
4155 macro scoping: macros need to be executed in the user's namespace
4152 to work as if they had been typed by the user.
4156 to work as if they had been typed by the user.
4153
4157
4154 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4158 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4155 execute automatically (no need to type 'exec...'). They then
4159 execute automatically (no need to type 'exec...'). They then
4156 behave like 'true macros'. The printing system was also modified
4160 behave like 'true macros'. The printing system was also modified
4157 for this to work.
4161 for this to work.
4158
4162
4159 2002-02-19 Fernando Perez <fperez@colorado.edu>
4163 2002-02-19 Fernando Perez <fperez@colorado.edu>
4160
4164
4161 * IPython/genutils.py (page_file): new function for paging files
4165 * IPython/genutils.py (page_file): new function for paging files
4162 in an OS-independent way. Also necessary for file viewing to work
4166 in an OS-independent way. Also necessary for file viewing to work
4163 well inside Emacs buffers.
4167 well inside Emacs buffers.
4164 (page): Added checks for being in an emacs buffer.
4168 (page): Added checks for being in an emacs buffer.
4165 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4169 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4166 same bug in iplib.
4170 same bug in iplib.
4167
4171
4168 2002-02-18 Fernando Perez <fperez@colorado.edu>
4172 2002-02-18 Fernando Perez <fperez@colorado.edu>
4169
4173
4170 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4174 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4171 of readline so that IPython can work inside an Emacs buffer.
4175 of readline so that IPython can work inside an Emacs buffer.
4172
4176
4173 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4177 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4174 method signatures (they weren't really bugs, but it looks cleaner
4178 method signatures (they weren't really bugs, but it looks cleaner
4175 and keeps PyChecker happy).
4179 and keeps PyChecker happy).
4176
4180
4177 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4181 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4178 for implementing various user-defined hooks. Currently only
4182 for implementing various user-defined hooks. Currently only
4179 display is done.
4183 display is done.
4180
4184
4181 * IPython/Prompts.py (CachedOutput._display): changed display
4185 * IPython/Prompts.py (CachedOutput._display): changed display
4182 functions so that they can be dynamically changed by users easily.
4186 functions so that they can be dynamically changed by users easily.
4183
4187
4184 * IPython/Extensions/numeric_formats.py (num_display): added an
4188 * IPython/Extensions/numeric_formats.py (num_display): added an
4185 extension for printing NumPy arrays in flexible manners. It
4189 extension for printing NumPy arrays in flexible manners. It
4186 doesn't do anything yet, but all the structure is in
4190 doesn't do anything yet, but all the structure is in
4187 place. Ultimately the plan is to implement output format control
4191 place. Ultimately the plan is to implement output format control
4188 like in Octave.
4192 like in Octave.
4189
4193
4190 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4194 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4191 methods are found at run-time by all the automatic machinery.
4195 methods are found at run-time by all the automatic machinery.
4192
4196
4193 2002-02-17 Fernando Perez <fperez@colorado.edu>
4197 2002-02-17 Fernando Perez <fperez@colorado.edu>
4194
4198
4195 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4199 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4196 whole file a little.
4200 whole file a little.
4197
4201
4198 * ToDo: closed this document. Now there's a new_design.lyx
4202 * ToDo: closed this document. Now there's a new_design.lyx
4199 document for all new ideas. Added making a pdf of it for the
4203 document for all new ideas. Added making a pdf of it for the
4200 end-user distro.
4204 end-user distro.
4201
4205
4202 * IPython/Logger.py (Logger.switch_log): Created this to replace
4206 * IPython/Logger.py (Logger.switch_log): Created this to replace
4203 logon() and logoff(). It also fixes a nasty crash reported by
4207 logon() and logoff(). It also fixes a nasty crash reported by
4204 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4208 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4205
4209
4206 * IPython/iplib.py (complete): got auto-completion to work with
4210 * IPython/iplib.py (complete): got auto-completion to work with
4207 automagic (I had wanted this for a long time).
4211 automagic (I had wanted this for a long time).
4208
4212
4209 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4213 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4210 to @file, since file() is now a builtin and clashes with automagic
4214 to @file, since file() is now a builtin and clashes with automagic
4211 for @file.
4215 for @file.
4212
4216
4213 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4217 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4214 of this was previously in iplib, which had grown to more than 2000
4218 of this was previously in iplib, which had grown to more than 2000
4215 lines, way too long. No new functionality, but it makes managing
4219 lines, way too long. No new functionality, but it makes managing
4216 the code a bit easier.
4220 the code a bit easier.
4217
4221
4218 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4222 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4219 information to crash reports.
4223 information to crash reports.
4220
4224
4221 2002-02-12 Fernando Perez <fperez@colorado.edu>
4225 2002-02-12 Fernando Perez <fperez@colorado.edu>
4222
4226
4223 * Released 0.2.5.
4227 * Released 0.2.5.
4224
4228
4225 2002-02-11 Fernando Perez <fperez@colorado.edu>
4229 2002-02-11 Fernando Perez <fperez@colorado.edu>
4226
4230
4227 * Wrote a relatively complete Windows installer. It puts
4231 * Wrote a relatively complete Windows installer. It puts
4228 everything in place, creates Start Menu entries and fixes the
4232 everything in place, creates Start Menu entries and fixes the
4229 color issues. Nothing fancy, but it works.
4233 color issues. Nothing fancy, but it works.
4230
4234
4231 2002-02-10 Fernando Perez <fperez@colorado.edu>
4235 2002-02-10 Fernando Perez <fperez@colorado.edu>
4232
4236
4233 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4237 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4234 os.path.expanduser() call so that we can type @run ~/myfile.py and
4238 os.path.expanduser() call so that we can type @run ~/myfile.py and
4235 have thigs work as expected.
4239 have thigs work as expected.
4236
4240
4237 * IPython/genutils.py (page): fixed exception handling so things
4241 * IPython/genutils.py (page): fixed exception handling so things
4238 work both in Unix and Windows correctly. Quitting a pager triggers
4242 work both in Unix and Windows correctly. Quitting a pager triggers
4239 an IOError/broken pipe in Unix, and in windows not finding a pager
4243 an IOError/broken pipe in Unix, and in windows not finding a pager
4240 is also an IOError, so I had to actually look at the return value
4244 is also an IOError, so I had to actually look at the return value
4241 of the exception, not just the exception itself. Should be ok now.
4245 of the exception, not just the exception itself. Should be ok now.
4242
4246
4243 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4247 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4244 modified to allow case-insensitive color scheme changes.
4248 modified to allow case-insensitive color scheme changes.
4245
4249
4246 2002-02-09 Fernando Perez <fperez@colorado.edu>
4250 2002-02-09 Fernando Perez <fperez@colorado.edu>
4247
4251
4248 * IPython/genutils.py (native_line_ends): new function to leave
4252 * IPython/genutils.py (native_line_ends): new function to leave
4249 user config files with os-native line-endings.
4253 user config files with os-native line-endings.
4250
4254
4251 * README and manual updates.
4255 * README and manual updates.
4252
4256
4253 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4257 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4254 instead of StringType to catch Unicode strings.
4258 instead of StringType to catch Unicode strings.
4255
4259
4256 * IPython/genutils.py (filefind): fixed bug for paths with
4260 * IPython/genutils.py (filefind): fixed bug for paths with
4257 embedded spaces (very common in Windows).
4261 embedded spaces (very common in Windows).
4258
4262
4259 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4263 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4260 files under Windows, so that they get automatically associated
4264 files under Windows, so that they get automatically associated
4261 with a text editor. Windows makes it a pain to handle
4265 with a text editor. Windows makes it a pain to handle
4262 extension-less files.
4266 extension-less files.
4263
4267
4264 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4268 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4265 warning about readline only occur for Posix. In Windows there's no
4269 warning about readline only occur for Posix. In Windows there's no
4266 way to get readline, so why bother with the warning.
4270 way to get readline, so why bother with the warning.
4267
4271
4268 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4272 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4269 for __str__ instead of dir(self), since dir() changed in 2.2.
4273 for __str__ instead of dir(self), since dir() changed in 2.2.
4270
4274
4271 * Ported to Windows! Tested on XP, I suspect it should work fine
4275 * Ported to Windows! Tested on XP, I suspect it should work fine
4272 on NT/2000, but I don't think it will work on 98 et al. That
4276 on NT/2000, but I don't think it will work on 98 et al. That
4273 series of Windows is such a piece of junk anyway that I won't try
4277 series of Windows is such a piece of junk anyway that I won't try
4274 porting it there. The XP port was straightforward, showed a few
4278 porting it there. The XP port was straightforward, showed a few
4275 bugs here and there (fixed all), in particular some string
4279 bugs here and there (fixed all), in particular some string
4276 handling stuff which required considering Unicode strings (which
4280 handling stuff which required considering Unicode strings (which
4277 Windows uses). This is good, but hasn't been too tested :) No
4281 Windows uses). This is good, but hasn't been too tested :) No
4278 fancy installer yet, I'll put a note in the manual so people at
4282 fancy installer yet, I'll put a note in the manual so people at
4279 least make manually a shortcut.
4283 least make manually a shortcut.
4280
4284
4281 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4285 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4282 into a single one, "colors". This now controls both prompt and
4286 into a single one, "colors". This now controls both prompt and
4283 exception color schemes, and can be changed both at startup
4287 exception color schemes, and can be changed both at startup
4284 (either via command-line switches or via ipythonrc files) and at
4288 (either via command-line switches or via ipythonrc files) and at
4285 runtime, with @colors.
4289 runtime, with @colors.
4286 (Magic.magic_run): renamed @prun to @run and removed the old
4290 (Magic.magic_run): renamed @prun to @run and removed the old
4287 @run. The two were too similar to warrant keeping both.
4291 @run. The two were too similar to warrant keeping both.
4288
4292
4289 2002-02-03 Fernando Perez <fperez@colorado.edu>
4293 2002-02-03 Fernando Perez <fperez@colorado.edu>
4290
4294
4291 * IPython/iplib.py (install_first_time): Added comment on how to
4295 * IPython/iplib.py (install_first_time): Added comment on how to
4292 configure the color options for first-time users. Put a <return>
4296 configure the color options for first-time users. Put a <return>
4293 request at the end so that small-terminal users get a chance to
4297 request at the end so that small-terminal users get a chance to
4294 read the startup info.
4298 read the startup info.
4295
4299
4296 2002-01-23 Fernando Perez <fperez@colorado.edu>
4300 2002-01-23 Fernando Perez <fperez@colorado.edu>
4297
4301
4298 * IPython/iplib.py (CachedOutput.update): Changed output memory
4302 * IPython/iplib.py (CachedOutput.update): Changed output memory
4299 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4303 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4300 input history we still use _i. Did this b/c these variable are
4304 input history we still use _i. Did this b/c these variable are
4301 very commonly used in interactive work, so the less we need to
4305 very commonly used in interactive work, so the less we need to
4302 type the better off we are.
4306 type the better off we are.
4303 (Magic.magic_prun): updated @prun to better handle the namespaces
4307 (Magic.magic_prun): updated @prun to better handle the namespaces
4304 the file will run in, including a fix for __name__ not being set
4308 the file will run in, including a fix for __name__ not being set
4305 before.
4309 before.
4306
4310
4307 2002-01-20 Fernando Perez <fperez@colorado.edu>
4311 2002-01-20 Fernando Perez <fperez@colorado.edu>
4308
4312
4309 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4313 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4310 extra garbage for Python 2.2. Need to look more carefully into
4314 extra garbage for Python 2.2. Need to look more carefully into
4311 this later.
4315 this later.
4312
4316
4313 2002-01-19 Fernando Perez <fperez@colorado.edu>
4317 2002-01-19 Fernando Perez <fperez@colorado.edu>
4314
4318
4315 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4319 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4316 display SyntaxError exceptions properly formatted when they occur
4320 display SyntaxError exceptions properly formatted when they occur
4317 (they can be triggered by imported code).
4321 (they can be triggered by imported code).
4318
4322
4319 2002-01-18 Fernando Perez <fperez@colorado.edu>
4323 2002-01-18 Fernando Perez <fperez@colorado.edu>
4320
4324
4321 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4325 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4322 SyntaxError exceptions are reported nicely formatted, instead of
4326 SyntaxError exceptions are reported nicely formatted, instead of
4323 spitting out only offset information as before.
4327 spitting out only offset information as before.
4324 (Magic.magic_prun): Added the @prun function for executing
4328 (Magic.magic_prun): Added the @prun function for executing
4325 programs with command line args inside IPython.
4329 programs with command line args inside IPython.
4326
4330
4327 2002-01-16 Fernando Perez <fperez@colorado.edu>
4331 2002-01-16 Fernando Perez <fperez@colorado.edu>
4328
4332
4329 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4333 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4330 to *not* include the last item given in a range. This brings their
4334 to *not* include the last item given in a range. This brings their
4331 behavior in line with Python's slicing:
4335 behavior in line with Python's slicing:
4332 a[n1:n2] -> a[n1]...a[n2-1]
4336 a[n1:n2] -> a[n1]...a[n2-1]
4333 It may be a bit less convenient, but I prefer to stick to Python's
4337 It may be a bit less convenient, but I prefer to stick to Python's
4334 conventions *everywhere*, so users never have to wonder.
4338 conventions *everywhere*, so users never have to wonder.
4335 (Magic.magic_macro): Added @macro function to ease the creation of
4339 (Magic.magic_macro): Added @macro function to ease the creation of
4336 macros.
4340 macros.
4337
4341
4338 2002-01-05 Fernando Perez <fperez@colorado.edu>
4342 2002-01-05 Fernando Perez <fperez@colorado.edu>
4339
4343
4340 * Released 0.2.4.
4344 * Released 0.2.4.
4341
4345
4342 * IPython/iplib.py (Magic.magic_pdef):
4346 * IPython/iplib.py (Magic.magic_pdef):
4343 (InteractiveShell.safe_execfile): report magic lines and error
4347 (InteractiveShell.safe_execfile): report magic lines and error
4344 lines without line numbers so one can easily copy/paste them for
4348 lines without line numbers so one can easily copy/paste them for
4345 re-execution.
4349 re-execution.
4346
4350
4347 * Updated manual with recent changes.
4351 * Updated manual with recent changes.
4348
4352
4349 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4353 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4350 docstring printing when class? is called. Very handy for knowing
4354 docstring printing when class? is called. Very handy for knowing
4351 how to create class instances (as long as __init__ is well
4355 how to create class instances (as long as __init__ is well
4352 documented, of course :)
4356 documented, of course :)
4353 (Magic.magic_doc): print both class and constructor docstrings.
4357 (Magic.magic_doc): print both class and constructor docstrings.
4354 (Magic.magic_pdef): give constructor info if passed a class and
4358 (Magic.magic_pdef): give constructor info if passed a class and
4355 __call__ info for callable object instances.
4359 __call__ info for callable object instances.
4356
4360
4357 2002-01-04 Fernando Perez <fperez@colorado.edu>
4361 2002-01-04 Fernando Perez <fperez@colorado.edu>
4358
4362
4359 * Made deep_reload() off by default. It doesn't always work
4363 * Made deep_reload() off by default. It doesn't always work
4360 exactly as intended, so it's probably safer to have it off. It's
4364 exactly as intended, so it's probably safer to have it off. It's
4361 still available as dreload() anyway, so nothing is lost.
4365 still available as dreload() anyway, so nothing is lost.
4362
4366
4363 2002-01-02 Fernando Perez <fperez@colorado.edu>
4367 2002-01-02 Fernando Perez <fperez@colorado.edu>
4364
4368
4365 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4369 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4366 so I wanted an updated release).
4370 so I wanted an updated release).
4367
4371
4368 2001-12-27 Fernando Perez <fperez@colorado.edu>
4372 2001-12-27 Fernando Perez <fperez@colorado.edu>
4369
4373
4370 * IPython/iplib.py (InteractiveShell.interact): Added the original
4374 * IPython/iplib.py (InteractiveShell.interact): Added the original
4371 code from 'code.py' for this module in order to change the
4375 code from 'code.py' for this module in order to change the
4372 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4376 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4373 the history cache would break when the user hit Ctrl-C, and
4377 the history cache would break when the user hit Ctrl-C, and
4374 interact() offers no way to add any hooks to it.
4378 interact() offers no way to add any hooks to it.
4375
4379
4376 2001-12-23 Fernando Perez <fperez@colorado.edu>
4380 2001-12-23 Fernando Perez <fperez@colorado.edu>
4377
4381
4378 * setup.py: added check for 'MANIFEST' before trying to remove
4382 * setup.py: added check for 'MANIFEST' before trying to remove
4379 it. Thanks to Sean Reifschneider.
4383 it. Thanks to Sean Reifschneider.
4380
4384
4381 2001-12-22 Fernando Perez <fperez@colorado.edu>
4385 2001-12-22 Fernando Perez <fperez@colorado.edu>
4382
4386
4383 * Released 0.2.2.
4387 * Released 0.2.2.
4384
4388
4385 * Finished (reasonably) writing the manual. Later will add the
4389 * Finished (reasonably) writing the manual. Later will add the
4386 python-standard navigation stylesheets, but for the time being
4390 python-standard navigation stylesheets, but for the time being
4387 it's fairly complete. Distribution will include html and pdf
4391 it's fairly complete. Distribution will include html and pdf
4388 versions.
4392 versions.
4389
4393
4390 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4394 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4391 (MayaVi author).
4395 (MayaVi author).
4392
4396
4393 2001-12-21 Fernando Perez <fperez@colorado.edu>
4397 2001-12-21 Fernando Perez <fperez@colorado.edu>
4394
4398
4395 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4399 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4396 good public release, I think (with the manual and the distutils
4400 good public release, I think (with the manual and the distutils
4397 installer). The manual can use some work, but that can go
4401 installer). The manual can use some work, but that can go
4398 slowly. Otherwise I think it's quite nice for end users. Next
4402 slowly. Otherwise I think it's quite nice for end users. Next
4399 summer, rewrite the guts of it...
4403 summer, rewrite the guts of it...
4400
4404
4401 * Changed format of ipythonrc files to use whitespace as the
4405 * Changed format of ipythonrc files to use whitespace as the
4402 separator instead of an explicit '='. Cleaner.
4406 separator instead of an explicit '='. Cleaner.
4403
4407
4404 2001-12-20 Fernando Perez <fperez@colorado.edu>
4408 2001-12-20 Fernando Perez <fperez@colorado.edu>
4405
4409
4406 * Started a manual in LyX. For now it's just a quick merge of the
4410 * Started a manual in LyX. For now it's just a quick merge of the
4407 various internal docstrings and READMEs. Later it may grow into a
4411 various internal docstrings and READMEs. Later it may grow into a
4408 nice, full-blown manual.
4412 nice, full-blown manual.
4409
4413
4410 * Set up a distutils based installer. Installation should now be
4414 * Set up a distutils based installer. Installation should now be
4411 trivially simple for end-users.
4415 trivially simple for end-users.
4412
4416
4413 2001-12-11 Fernando Perez <fperez@colorado.edu>
4417 2001-12-11 Fernando Perez <fperez@colorado.edu>
4414
4418
4415 * Released 0.2.0. First public release, announced it at
4419 * Released 0.2.0. First public release, announced it at
4416 comp.lang.python. From now on, just bugfixes...
4420 comp.lang.python. From now on, just bugfixes...
4417
4421
4418 * Went through all the files, set copyright/license notices and
4422 * Went through all the files, set copyright/license notices and
4419 cleaned up things. Ready for release.
4423 cleaned up things. Ready for release.
4420
4424
4421 2001-12-10 Fernando Perez <fperez@colorado.edu>
4425 2001-12-10 Fernando Perez <fperez@colorado.edu>
4422
4426
4423 * Changed the first-time installer not to use tarfiles. It's more
4427 * Changed the first-time installer not to use tarfiles. It's more
4424 robust now and less unix-dependent. Also makes it easier for
4428 robust now and less unix-dependent. Also makes it easier for
4425 people to later upgrade versions.
4429 people to later upgrade versions.
4426
4430
4427 * Changed @exit to @abort to reflect the fact that it's pretty
4431 * Changed @exit to @abort to reflect the fact that it's pretty
4428 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4432 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4429 becomes significant only when IPyhton is embedded: in that case,
4433 becomes significant only when IPyhton is embedded: in that case,
4430 C-D closes IPython only, but @abort kills the enclosing program
4434 C-D closes IPython only, but @abort kills the enclosing program
4431 too (unless it had called IPython inside a try catching
4435 too (unless it had called IPython inside a try catching
4432 SystemExit).
4436 SystemExit).
4433
4437
4434 * Created Shell module which exposes the actuall IPython Shell
4438 * Created Shell module which exposes the actuall IPython Shell
4435 classes, currently the normal and the embeddable one. This at
4439 classes, currently the normal and the embeddable one. This at
4436 least offers a stable interface we won't need to change when
4440 least offers a stable interface we won't need to change when
4437 (later) the internals are rewritten. That rewrite will be confined
4441 (later) the internals are rewritten. That rewrite will be confined
4438 to iplib and ipmaker, but the Shell interface should remain as is.
4442 to iplib and ipmaker, but the Shell interface should remain as is.
4439
4443
4440 * Added embed module which offers an embeddable IPShell object,
4444 * Added embed module which offers an embeddable IPShell object,
4441 useful to fire up IPython *inside* a running program. Great for
4445 useful to fire up IPython *inside* a running program. Great for
4442 debugging or dynamical data analysis.
4446 debugging or dynamical data analysis.
4443
4447
4444 2001-12-08 Fernando Perez <fperez@colorado.edu>
4448 2001-12-08 Fernando Perez <fperez@colorado.edu>
4445
4449
4446 * Fixed small bug preventing seeing info from methods of defined
4450 * Fixed small bug preventing seeing info from methods of defined
4447 objects (incorrect namespace in _ofind()).
4451 objects (incorrect namespace in _ofind()).
4448
4452
4449 * Documentation cleanup. Moved the main usage docstrings to a
4453 * Documentation cleanup. Moved the main usage docstrings to a
4450 separate file, usage.py (cleaner to maintain, and hopefully in the
4454 separate file, usage.py (cleaner to maintain, and hopefully in the
4451 future some perlpod-like way of producing interactive, man and
4455 future some perlpod-like way of producing interactive, man and
4452 html docs out of it will be found).
4456 html docs out of it will be found).
4453
4457
4454 * Added @profile to see your profile at any time.
4458 * Added @profile to see your profile at any time.
4455
4459
4456 * Added @p as an alias for 'print'. It's especially convenient if
4460 * Added @p as an alias for 'print'. It's especially convenient if
4457 using automagic ('p x' prints x).
4461 using automagic ('p x' prints x).
4458
4462
4459 * Small cleanups and fixes after a pychecker run.
4463 * Small cleanups and fixes after a pychecker run.
4460
4464
4461 * Changed the @cd command to handle @cd - and @cd -<n> for
4465 * Changed the @cd command to handle @cd - and @cd -<n> for
4462 visiting any directory in _dh.
4466 visiting any directory in _dh.
4463
4467
4464 * Introduced _dh, a history of visited directories. @dhist prints
4468 * Introduced _dh, a history of visited directories. @dhist prints
4465 it out with numbers.
4469 it out with numbers.
4466
4470
4467 2001-12-07 Fernando Perez <fperez@colorado.edu>
4471 2001-12-07 Fernando Perez <fperez@colorado.edu>
4468
4472
4469 * Released 0.1.22
4473 * Released 0.1.22
4470
4474
4471 * Made initialization a bit more robust against invalid color
4475 * Made initialization a bit more robust against invalid color
4472 options in user input (exit, not traceback-crash).
4476 options in user input (exit, not traceback-crash).
4473
4477
4474 * Changed the bug crash reporter to write the report only in the
4478 * Changed the bug crash reporter to write the report only in the
4475 user's .ipython directory. That way IPython won't litter people's
4479 user's .ipython directory. That way IPython won't litter people's
4476 hard disks with crash files all over the place. Also print on
4480 hard disks with crash files all over the place. Also print on
4477 screen the necessary mail command.
4481 screen the necessary mail command.
4478
4482
4479 * With the new ultraTB, implemented LightBG color scheme for light
4483 * With the new ultraTB, implemented LightBG color scheme for light
4480 background terminals. A lot of people like white backgrounds, so I
4484 background terminals. A lot of people like white backgrounds, so I
4481 guess we should at least give them something readable.
4485 guess we should at least give them something readable.
4482
4486
4483 2001-12-06 Fernando Perez <fperez@colorado.edu>
4487 2001-12-06 Fernando Perez <fperez@colorado.edu>
4484
4488
4485 * Modified the structure of ultraTB. Now there's a proper class
4489 * Modified the structure of ultraTB. Now there's a proper class
4486 for tables of color schemes which allow adding schemes easily and
4490 for tables of color schemes which allow adding schemes easily and
4487 switching the active scheme without creating a new instance every
4491 switching the active scheme without creating a new instance every
4488 time (which was ridiculous). The syntax for creating new schemes
4492 time (which was ridiculous). The syntax for creating new schemes
4489 is also cleaner. I think ultraTB is finally done, with a clean
4493 is also cleaner. I think ultraTB is finally done, with a clean
4490 class structure. Names are also much cleaner (now there's proper
4494 class structure. Names are also much cleaner (now there's proper
4491 color tables, no need for every variable to also have 'color' in
4495 color tables, no need for every variable to also have 'color' in
4492 its name).
4496 its name).
4493
4497
4494 * Broke down genutils into separate files. Now genutils only
4498 * Broke down genutils into separate files. Now genutils only
4495 contains utility functions, and classes have been moved to their
4499 contains utility functions, and classes have been moved to their
4496 own files (they had enough independent functionality to warrant
4500 own files (they had enough independent functionality to warrant
4497 it): ConfigLoader, OutputTrap, Struct.
4501 it): ConfigLoader, OutputTrap, Struct.
4498
4502
4499 2001-12-05 Fernando Perez <fperez@colorado.edu>
4503 2001-12-05 Fernando Perez <fperez@colorado.edu>
4500
4504
4501 * IPython turns 21! Released version 0.1.21, as a candidate for
4505 * IPython turns 21! Released version 0.1.21, as a candidate for
4502 public consumption. If all goes well, release in a few days.
4506 public consumption. If all goes well, release in a few days.
4503
4507
4504 * Fixed path bug (files in Extensions/ directory wouldn't be found
4508 * Fixed path bug (files in Extensions/ directory wouldn't be found
4505 unless IPython/ was explicitly in sys.path).
4509 unless IPython/ was explicitly in sys.path).
4506
4510
4507 * Extended the FlexCompleter class as MagicCompleter to allow
4511 * Extended the FlexCompleter class as MagicCompleter to allow
4508 completion of @-starting lines.
4512 completion of @-starting lines.
4509
4513
4510 * Created __release__.py file as a central repository for release
4514 * Created __release__.py file as a central repository for release
4511 info that other files can read from.
4515 info that other files can read from.
4512
4516
4513 * Fixed small bug in logging: when logging was turned on in
4517 * Fixed small bug in logging: when logging was turned on in
4514 mid-session, old lines with special meanings (!@?) were being
4518 mid-session, old lines with special meanings (!@?) were being
4515 logged without the prepended comment, which is necessary since
4519 logged without the prepended comment, which is necessary since
4516 they are not truly valid python syntax. This should make session
4520 they are not truly valid python syntax. This should make session
4517 restores produce less errors.
4521 restores produce less errors.
4518
4522
4519 * The namespace cleanup forced me to make a FlexCompleter class
4523 * The namespace cleanup forced me to make a FlexCompleter class
4520 which is nothing but a ripoff of rlcompleter, but with selectable
4524 which is nothing but a ripoff of rlcompleter, but with selectable
4521 namespace (rlcompleter only works in __main__.__dict__). I'll try
4525 namespace (rlcompleter only works in __main__.__dict__). I'll try
4522 to submit a note to the authors to see if this change can be
4526 to submit a note to the authors to see if this change can be
4523 incorporated in future rlcompleter releases (Dec.6: done)
4527 incorporated in future rlcompleter releases (Dec.6: done)
4524
4528
4525 * More fixes to namespace handling. It was a mess! Now all
4529 * More fixes to namespace handling. It was a mess! Now all
4526 explicit references to __main__.__dict__ are gone (except when
4530 explicit references to __main__.__dict__ are gone (except when
4527 really needed) and everything is handled through the namespace
4531 really needed) and everything is handled through the namespace
4528 dicts in the IPython instance. We seem to be getting somewhere
4532 dicts in the IPython instance. We seem to be getting somewhere
4529 with this, finally...
4533 with this, finally...
4530
4534
4531 * Small documentation updates.
4535 * Small documentation updates.
4532
4536
4533 * Created the Extensions directory under IPython (with an
4537 * Created the Extensions directory under IPython (with an
4534 __init__.py). Put the PhysicalQ stuff there. This directory should
4538 __init__.py). Put the PhysicalQ stuff there. This directory should
4535 be used for all special-purpose extensions.
4539 be used for all special-purpose extensions.
4536
4540
4537 * File renaming:
4541 * File renaming:
4538 ipythonlib --> ipmaker
4542 ipythonlib --> ipmaker
4539 ipplib --> iplib
4543 ipplib --> iplib
4540 This makes a bit more sense in terms of what these files actually do.
4544 This makes a bit more sense in terms of what these files actually do.
4541
4545
4542 * Moved all the classes and functions in ipythonlib to ipplib, so
4546 * Moved all the classes and functions in ipythonlib to ipplib, so
4543 now ipythonlib only has make_IPython(). This will ease up its
4547 now ipythonlib only has make_IPython(). This will ease up its
4544 splitting in smaller functional chunks later.
4548 splitting in smaller functional chunks later.
4545
4549
4546 * Cleaned up (done, I think) output of @whos. Better column
4550 * Cleaned up (done, I think) output of @whos. Better column
4547 formatting, and now shows str(var) for as much as it can, which is
4551 formatting, and now shows str(var) for as much as it can, which is
4548 typically what one gets with a 'print var'.
4552 typically what one gets with a 'print var'.
4549
4553
4550 2001-12-04 Fernando Perez <fperez@colorado.edu>
4554 2001-12-04 Fernando Perez <fperez@colorado.edu>
4551
4555
4552 * Fixed namespace problems. Now builtin/IPyhton/user names get
4556 * Fixed namespace problems. Now builtin/IPyhton/user names get
4553 properly reported in their namespace. Internal namespace handling
4557 properly reported in their namespace. Internal namespace handling
4554 is finally getting decent (not perfect yet, but much better than
4558 is finally getting decent (not perfect yet, but much better than
4555 the ad-hoc mess we had).
4559 the ad-hoc mess we had).
4556
4560
4557 * Removed -exit option. If people just want to run a python
4561 * Removed -exit option. If people just want to run a python
4558 script, that's what the normal interpreter is for. Less
4562 script, that's what the normal interpreter is for. Less
4559 unnecessary options, less chances for bugs.
4563 unnecessary options, less chances for bugs.
4560
4564
4561 * Added a crash handler which generates a complete post-mortem if
4565 * Added a crash handler which generates a complete post-mortem if
4562 IPython crashes. This will help a lot in tracking bugs down the
4566 IPython crashes. This will help a lot in tracking bugs down the
4563 road.
4567 road.
4564
4568
4565 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4569 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4566 which were boud to functions being reassigned would bypass the
4570 which were boud to functions being reassigned would bypass the
4567 logger, breaking the sync of _il with the prompt counter. This
4571 logger, breaking the sync of _il with the prompt counter. This
4568 would then crash IPython later when a new line was logged.
4572 would then crash IPython later when a new line was logged.
4569
4573
4570 2001-12-02 Fernando Perez <fperez@colorado.edu>
4574 2001-12-02 Fernando Perez <fperez@colorado.edu>
4571
4575
4572 * Made IPython a package. This means people don't have to clutter
4576 * Made IPython a package. This means people don't have to clutter
4573 their sys.path with yet another directory. Changed the INSTALL
4577 their sys.path with yet another directory. Changed the INSTALL
4574 file accordingly.
4578 file accordingly.
4575
4579
4576 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4580 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4577 sorts its output (so @who shows it sorted) and @whos formats the
4581 sorts its output (so @who shows it sorted) and @whos formats the
4578 table according to the width of the first column. Nicer, easier to
4582 table according to the width of the first column. Nicer, easier to
4579 read. Todo: write a generic table_format() which takes a list of
4583 read. Todo: write a generic table_format() which takes a list of
4580 lists and prints it nicely formatted, with optional row/column
4584 lists and prints it nicely formatted, with optional row/column
4581 separators and proper padding and justification.
4585 separators and proper padding and justification.
4582
4586
4583 * Released 0.1.20
4587 * Released 0.1.20
4584
4588
4585 * Fixed bug in @log which would reverse the inputcache list (a
4589 * Fixed bug in @log which would reverse the inputcache list (a
4586 copy operation was missing).
4590 copy operation was missing).
4587
4591
4588 * Code cleanup. @config was changed to use page(). Better, since
4592 * Code cleanup. @config was changed to use page(). Better, since
4589 its output is always quite long.
4593 its output is always quite long.
4590
4594
4591 * Itpl is back as a dependency. I was having too many problems
4595 * Itpl is back as a dependency. I was having too many problems
4592 getting the parametric aliases to work reliably, and it's just
4596 getting the parametric aliases to work reliably, and it's just
4593 easier to code weird string operations with it than playing %()s
4597 easier to code weird string operations with it than playing %()s
4594 games. It's only ~6k, so I don't think it's too big a deal.
4598 games. It's only ~6k, so I don't think it's too big a deal.
4595
4599
4596 * Found (and fixed) a very nasty bug with history. !lines weren't
4600 * Found (and fixed) a very nasty bug with history. !lines weren't
4597 getting cached, and the out of sync caches would crash
4601 getting cached, and the out of sync caches would crash
4598 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4602 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4599 division of labor a bit better. Bug fixed, cleaner structure.
4603 division of labor a bit better. Bug fixed, cleaner structure.
4600
4604
4601 2001-12-01 Fernando Perez <fperez@colorado.edu>
4605 2001-12-01 Fernando Perez <fperez@colorado.edu>
4602
4606
4603 * Released 0.1.19
4607 * Released 0.1.19
4604
4608
4605 * Added option -n to @hist to prevent line number printing. Much
4609 * Added option -n to @hist to prevent line number printing. Much
4606 easier to copy/paste code this way.
4610 easier to copy/paste code this way.
4607
4611
4608 * Created global _il to hold the input list. Allows easy
4612 * Created global _il to hold the input list. Allows easy
4609 re-execution of blocks of code by slicing it (inspired by Janko's
4613 re-execution of blocks of code by slicing it (inspired by Janko's
4610 comment on 'macros').
4614 comment on 'macros').
4611
4615
4612 * Small fixes and doc updates.
4616 * Small fixes and doc updates.
4613
4617
4614 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4618 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4615 much too fragile with automagic. Handles properly multi-line
4619 much too fragile with automagic. Handles properly multi-line
4616 statements and takes parameters.
4620 statements and takes parameters.
4617
4621
4618 2001-11-30 Fernando Perez <fperez@colorado.edu>
4622 2001-11-30 Fernando Perez <fperez@colorado.edu>
4619
4623
4620 * Version 0.1.18 released.
4624 * Version 0.1.18 released.
4621
4625
4622 * Fixed nasty namespace bug in initial module imports.
4626 * Fixed nasty namespace bug in initial module imports.
4623
4627
4624 * Added copyright/license notes to all code files (except
4628 * Added copyright/license notes to all code files (except
4625 DPyGetOpt). For the time being, LGPL. That could change.
4629 DPyGetOpt). For the time being, LGPL. That could change.
4626
4630
4627 * Rewrote a much nicer README, updated INSTALL, cleaned up
4631 * Rewrote a much nicer README, updated INSTALL, cleaned up
4628 ipythonrc-* samples.
4632 ipythonrc-* samples.
4629
4633
4630 * Overall code/documentation cleanup. Basically ready for
4634 * Overall code/documentation cleanup. Basically ready for
4631 release. Only remaining thing: licence decision (LGPL?).
4635 release. Only remaining thing: licence decision (LGPL?).
4632
4636
4633 * Converted load_config to a class, ConfigLoader. Now recursion
4637 * Converted load_config to a class, ConfigLoader. Now recursion
4634 control is better organized. Doesn't include the same file twice.
4638 control is better organized. Doesn't include the same file twice.
4635
4639
4636 2001-11-29 Fernando Perez <fperez@colorado.edu>
4640 2001-11-29 Fernando Perez <fperez@colorado.edu>
4637
4641
4638 * Got input history working. Changed output history variables from
4642 * Got input history working. Changed output history variables from
4639 _p to _o so that _i is for input and _o for output. Just cleaner
4643 _p to _o so that _i is for input and _o for output. Just cleaner
4640 convention.
4644 convention.
4641
4645
4642 * Implemented parametric aliases. This pretty much allows the
4646 * Implemented parametric aliases. This pretty much allows the
4643 alias system to offer full-blown shell convenience, I think.
4647 alias system to offer full-blown shell convenience, I think.
4644
4648
4645 * Version 0.1.17 released, 0.1.18 opened.
4649 * Version 0.1.17 released, 0.1.18 opened.
4646
4650
4647 * dot_ipython/ipythonrc (alias): added documentation.
4651 * dot_ipython/ipythonrc (alias): added documentation.
4648 (xcolor): Fixed small bug (xcolors -> xcolor)
4652 (xcolor): Fixed small bug (xcolors -> xcolor)
4649
4653
4650 * Changed the alias system. Now alias is a magic command to define
4654 * Changed the alias system. Now alias is a magic command to define
4651 aliases just like the shell. Rationale: the builtin magics should
4655 aliases just like the shell. Rationale: the builtin magics should
4652 be there for things deeply connected to IPython's
4656 be there for things deeply connected to IPython's
4653 architecture. And this is a much lighter system for what I think
4657 architecture. And this is a much lighter system for what I think
4654 is the really important feature: allowing users to define quickly
4658 is the really important feature: allowing users to define quickly
4655 magics that will do shell things for them, so they can customize
4659 magics that will do shell things for them, so they can customize
4656 IPython easily to match their work habits. If someone is really
4660 IPython easily to match their work habits. If someone is really
4657 desperate to have another name for a builtin alias, they can
4661 desperate to have another name for a builtin alias, they can
4658 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4662 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4659 works.
4663 works.
4660
4664
4661 2001-11-28 Fernando Perez <fperez@colorado.edu>
4665 2001-11-28 Fernando Perez <fperez@colorado.edu>
4662
4666
4663 * Changed @file so that it opens the source file at the proper
4667 * Changed @file so that it opens the source file at the proper
4664 line. Since it uses less, if your EDITOR environment is
4668 line. Since it uses less, if your EDITOR environment is
4665 configured, typing v will immediately open your editor of choice
4669 configured, typing v will immediately open your editor of choice
4666 right at the line where the object is defined. Not as quick as
4670 right at the line where the object is defined. Not as quick as
4667 having a direct @edit command, but for all intents and purposes it
4671 having a direct @edit command, but for all intents and purposes it
4668 works. And I don't have to worry about writing @edit to deal with
4672 works. And I don't have to worry about writing @edit to deal with
4669 all the editors, less does that.
4673 all the editors, less does that.
4670
4674
4671 * Version 0.1.16 released, 0.1.17 opened.
4675 * Version 0.1.16 released, 0.1.17 opened.
4672
4676
4673 * Fixed some nasty bugs in the page/page_dumb combo that could
4677 * Fixed some nasty bugs in the page/page_dumb combo that could
4674 crash IPython.
4678 crash IPython.
4675
4679
4676 2001-11-27 Fernando Perez <fperez@colorado.edu>
4680 2001-11-27 Fernando Perez <fperez@colorado.edu>
4677
4681
4678 * Version 0.1.15 released, 0.1.16 opened.
4682 * Version 0.1.15 released, 0.1.16 opened.
4679
4683
4680 * Finally got ? and ?? to work for undefined things: now it's
4684 * Finally got ? and ?? to work for undefined things: now it's
4681 possible to type {}.get? and get information about the get method
4685 possible to type {}.get? and get information about the get method
4682 of dicts, or os.path? even if only os is defined (so technically
4686 of dicts, or os.path? even if only os is defined (so technically
4683 os.path isn't). Works at any level. For example, after import os,
4687 os.path isn't). Works at any level. For example, after import os,
4684 os?, os.path?, os.path.abspath? all work. This is great, took some
4688 os?, os.path?, os.path.abspath? all work. This is great, took some
4685 work in _ofind.
4689 work in _ofind.
4686
4690
4687 * Fixed more bugs with logging. The sanest way to do it was to add
4691 * Fixed more bugs with logging. The sanest way to do it was to add
4688 to @log a 'mode' parameter. Killed two in one shot (this mode
4692 to @log a 'mode' parameter. Killed two in one shot (this mode
4689 option was a request of Janko's). I think it's finally clean
4693 option was a request of Janko's). I think it's finally clean
4690 (famous last words).
4694 (famous last words).
4691
4695
4692 * Added a page_dumb() pager which does a decent job of paging on
4696 * Added a page_dumb() pager which does a decent job of paging on
4693 screen, if better things (like less) aren't available. One less
4697 screen, if better things (like less) aren't available. One less
4694 unix dependency (someday maybe somebody will port this to
4698 unix dependency (someday maybe somebody will port this to
4695 windows).
4699 windows).
4696
4700
4697 * Fixed problem in magic_log: would lock of logging out if log
4701 * Fixed problem in magic_log: would lock of logging out if log
4698 creation failed (because it would still think it had succeeded).
4702 creation failed (because it would still think it had succeeded).
4699
4703
4700 * Improved the page() function using curses to auto-detect screen
4704 * Improved the page() function using curses to auto-detect screen
4701 size. Now it can make a much better decision on whether to print
4705 size. Now it can make a much better decision on whether to print
4702 or page a string. Option screen_length was modified: a value 0
4706 or page a string. Option screen_length was modified: a value 0
4703 means auto-detect, and that's the default now.
4707 means auto-detect, and that's the default now.
4704
4708
4705 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4709 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4706 go out. I'll test it for a few days, then talk to Janko about
4710 go out. I'll test it for a few days, then talk to Janko about
4707 licences and announce it.
4711 licences and announce it.
4708
4712
4709 * Fixed the length of the auto-generated ---> prompt which appears
4713 * Fixed the length of the auto-generated ---> prompt which appears
4710 for auto-parens and auto-quotes. Getting this right isn't trivial,
4714 for auto-parens and auto-quotes. Getting this right isn't trivial,
4711 with all the color escapes, different prompt types and optional
4715 with all the color escapes, different prompt types and optional
4712 separators. But it seems to be working in all the combinations.
4716 separators. But it seems to be working in all the combinations.
4713
4717
4714 2001-11-26 Fernando Perez <fperez@colorado.edu>
4718 2001-11-26 Fernando Perez <fperez@colorado.edu>
4715
4719
4716 * Wrote a regexp filter to get option types from the option names
4720 * Wrote a regexp filter to get option types from the option names
4717 string. This eliminates the need to manually keep two duplicate
4721 string. This eliminates the need to manually keep two duplicate
4718 lists.
4722 lists.
4719
4723
4720 * Removed the unneeded check_option_names. Now options are handled
4724 * Removed the unneeded check_option_names. Now options are handled
4721 in a much saner manner and it's easy to visually check that things
4725 in a much saner manner and it's easy to visually check that things
4722 are ok.
4726 are ok.
4723
4727
4724 * Updated version numbers on all files I modified to carry a
4728 * Updated version numbers on all files I modified to carry a
4725 notice so Janko and Nathan have clear version markers.
4729 notice so Janko and Nathan have clear version markers.
4726
4730
4727 * Updated docstring for ultraTB with my changes. I should send
4731 * Updated docstring for ultraTB with my changes. I should send
4728 this to Nathan.
4732 this to Nathan.
4729
4733
4730 * Lots of small fixes. Ran everything through pychecker again.
4734 * Lots of small fixes. Ran everything through pychecker again.
4731
4735
4732 * Made loading of deep_reload an cmd line option. If it's not too
4736 * Made loading of deep_reload an cmd line option. If it's not too
4733 kosher, now people can just disable it. With -nodeep_reload it's
4737 kosher, now people can just disable it. With -nodeep_reload it's
4734 still available as dreload(), it just won't overwrite reload().
4738 still available as dreload(), it just won't overwrite reload().
4735
4739
4736 * Moved many options to the no| form (-opt and -noopt
4740 * Moved many options to the no| form (-opt and -noopt
4737 accepted). Cleaner.
4741 accepted). Cleaner.
4738
4742
4739 * Changed magic_log so that if called with no parameters, it uses
4743 * Changed magic_log so that if called with no parameters, it uses
4740 'rotate' mode. That way auto-generated logs aren't automatically
4744 'rotate' mode. That way auto-generated logs aren't automatically
4741 over-written. For normal logs, now a backup is made if it exists
4745 over-written. For normal logs, now a backup is made if it exists
4742 (only 1 level of backups). A new 'backup' mode was added to the
4746 (only 1 level of backups). A new 'backup' mode was added to the
4743 Logger class to support this. This was a request by Janko.
4747 Logger class to support this. This was a request by Janko.
4744
4748
4745 * Added @logoff/@logon to stop/restart an active log.
4749 * Added @logoff/@logon to stop/restart an active log.
4746
4750
4747 * Fixed a lot of bugs in log saving/replay. It was pretty
4751 * Fixed a lot of bugs in log saving/replay. It was pretty
4748 broken. Now special lines (!@,/) appear properly in the command
4752 broken. Now special lines (!@,/) appear properly in the command
4749 history after a log replay.
4753 history after a log replay.
4750
4754
4751 * Tried and failed to implement full session saving via pickle. My
4755 * Tried and failed to implement full session saving via pickle. My
4752 idea was to pickle __main__.__dict__, but modules can't be
4756 idea was to pickle __main__.__dict__, but modules can't be
4753 pickled. This would be a better alternative to replaying logs, but
4757 pickled. This would be a better alternative to replaying logs, but
4754 seems quite tricky to get to work. Changed -session to be called
4758 seems quite tricky to get to work. Changed -session to be called
4755 -logplay, which more accurately reflects what it does. And if we
4759 -logplay, which more accurately reflects what it does. And if we
4756 ever get real session saving working, -session is now available.
4760 ever get real session saving working, -session is now available.
4757
4761
4758 * Implemented color schemes for prompts also. As for tracebacks,
4762 * Implemented color schemes for prompts also. As for tracebacks,
4759 currently only NoColor and Linux are supported. But now the
4763 currently only NoColor and Linux are supported. But now the
4760 infrastructure is in place, based on a generic ColorScheme
4764 infrastructure is in place, based on a generic ColorScheme
4761 class. So writing and activating new schemes both for the prompts
4765 class. So writing and activating new schemes both for the prompts
4762 and the tracebacks should be straightforward.
4766 and the tracebacks should be straightforward.
4763
4767
4764 * Version 0.1.13 released, 0.1.14 opened.
4768 * Version 0.1.13 released, 0.1.14 opened.
4765
4769
4766 * Changed handling of options for output cache. Now counter is
4770 * Changed handling of options for output cache. Now counter is
4767 hardwired starting at 1 and one specifies the maximum number of
4771 hardwired starting at 1 and one specifies the maximum number of
4768 entries *in the outcache* (not the max prompt counter). This is
4772 entries *in the outcache* (not the max prompt counter). This is
4769 much better, since many statements won't increase the cache
4773 much better, since many statements won't increase the cache
4770 count. It also eliminated some confusing options, now there's only
4774 count. It also eliminated some confusing options, now there's only
4771 one: cache_size.
4775 one: cache_size.
4772
4776
4773 * Added 'alias' magic function and magic_alias option in the
4777 * Added 'alias' magic function and magic_alias option in the
4774 ipythonrc file. Now the user can easily define whatever names he
4778 ipythonrc file. Now the user can easily define whatever names he
4775 wants for the magic functions without having to play weird
4779 wants for the magic functions without having to play weird
4776 namespace games. This gives IPython a real shell-like feel.
4780 namespace games. This gives IPython a real shell-like feel.
4777
4781
4778 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4782 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4779 @ or not).
4783 @ or not).
4780
4784
4781 This was one of the last remaining 'visible' bugs (that I know
4785 This was one of the last remaining 'visible' bugs (that I know
4782 of). I think if I can clean up the session loading so it works
4786 of). I think if I can clean up the session loading so it works
4783 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4787 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4784 about licensing).
4788 about licensing).
4785
4789
4786 2001-11-25 Fernando Perez <fperez@colorado.edu>
4790 2001-11-25 Fernando Perez <fperez@colorado.edu>
4787
4791
4788 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4792 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4789 there's a cleaner distinction between what ? and ?? show.
4793 there's a cleaner distinction between what ? and ?? show.
4790
4794
4791 * Added screen_length option. Now the user can define his own
4795 * Added screen_length option. Now the user can define his own
4792 screen size for page() operations.
4796 screen size for page() operations.
4793
4797
4794 * Implemented magic shell-like functions with automatic code
4798 * Implemented magic shell-like functions with automatic code
4795 generation. Now adding another function is just a matter of adding
4799 generation. Now adding another function is just a matter of adding
4796 an entry to a dict, and the function is dynamically generated at
4800 an entry to a dict, and the function is dynamically generated at
4797 run-time. Python has some really cool features!
4801 run-time. Python has some really cool features!
4798
4802
4799 * Renamed many options to cleanup conventions a little. Now all
4803 * Renamed many options to cleanup conventions a little. Now all
4800 are lowercase, and only underscores where needed. Also in the code
4804 are lowercase, and only underscores where needed. Also in the code
4801 option name tables are clearer.
4805 option name tables are clearer.
4802
4806
4803 * Changed prompts a little. Now input is 'In [n]:' instead of
4807 * Changed prompts a little. Now input is 'In [n]:' instead of
4804 'In[n]:='. This allows it the numbers to be aligned with the
4808 'In[n]:='. This allows it the numbers to be aligned with the
4805 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4809 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4806 Python (it was a Mathematica thing). The '...' continuation prompt
4810 Python (it was a Mathematica thing). The '...' continuation prompt
4807 was also changed a little to align better.
4811 was also changed a little to align better.
4808
4812
4809 * Fixed bug when flushing output cache. Not all _p<n> variables
4813 * Fixed bug when flushing output cache. Not all _p<n> variables
4810 exist, so their deletion needs to be wrapped in a try:
4814 exist, so their deletion needs to be wrapped in a try:
4811
4815
4812 * Figured out how to properly use inspect.formatargspec() (it
4816 * Figured out how to properly use inspect.formatargspec() (it
4813 requires the args preceded by *). So I removed all the code from
4817 requires the args preceded by *). So I removed all the code from
4814 _get_pdef in Magic, which was just replicating that.
4818 _get_pdef in Magic, which was just replicating that.
4815
4819
4816 * Added test to prefilter to allow redefining magic function names
4820 * Added test to prefilter to allow redefining magic function names
4817 as variables. This is ok, since the @ form is always available,
4821 as variables. This is ok, since the @ form is always available,
4818 but whe should allow the user to define a variable called 'ls' if
4822 but whe should allow the user to define a variable called 'ls' if
4819 he needs it.
4823 he needs it.
4820
4824
4821 * Moved the ToDo information from README into a separate ToDo.
4825 * Moved the ToDo information from README into a separate ToDo.
4822
4826
4823 * General code cleanup and small bugfixes. I think it's close to a
4827 * General code cleanup and small bugfixes. I think it's close to a
4824 state where it can be released, obviously with a big 'beta'
4828 state where it can be released, obviously with a big 'beta'
4825 warning on it.
4829 warning on it.
4826
4830
4827 * Got the magic function split to work. Now all magics are defined
4831 * Got the magic function split to work. Now all magics are defined
4828 in a separate class. It just organizes things a bit, and now
4832 in a separate class. It just organizes things a bit, and now
4829 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4833 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4830 was too long).
4834 was too long).
4831
4835
4832 * Changed @clear to @reset to avoid potential confusions with
4836 * Changed @clear to @reset to avoid potential confusions with
4833 the shell command clear. Also renamed @cl to @clear, which does
4837 the shell command clear. Also renamed @cl to @clear, which does
4834 exactly what people expect it to from their shell experience.
4838 exactly what people expect it to from their shell experience.
4835
4839
4836 Added a check to the @reset command (since it's so
4840 Added a check to the @reset command (since it's so
4837 destructive, it's probably a good idea to ask for confirmation).
4841 destructive, it's probably a good idea to ask for confirmation).
4838 But now reset only works for full namespace resetting. Since the
4842 But now reset only works for full namespace resetting. Since the
4839 del keyword is already there for deleting a few specific
4843 del keyword is already there for deleting a few specific
4840 variables, I don't see the point of having a redundant magic
4844 variables, I don't see the point of having a redundant magic
4841 function for the same task.
4845 function for the same task.
4842
4846
4843 2001-11-24 Fernando Perez <fperez@colorado.edu>
4847 2001-11-24 Fernando Perez <fperez@colorado.edu>
4844
4848
4845 * Updated the builtin docs (esp. the ? ones).
4849 * Updated the builtin docs (esp. the ? ones).
4846
4850
4847 * Ran all the code through pychecker. Not terribly impressed with
4851 * Ran all the code through pychecker. Not terribly impressed with
4848 it: lots of spurious warnings and didn't really find anything of
4852 it: lots of spurious warnings and didn't really find anything of
4849 substance (just a few modules being imported and not used).
4853 substance (just a few modules being imported and not used).
4850
4854
4851 * Implemented the new ultraTB functionality into IPython. New
4855 * Implemented the new ultraTB functionality into IPython. New
4852 option: xcolors. This chooses color scheme. xmode now only selects
4856 option: xcolors. This chooses color scheme. xmode now only selects
4853 between Plain and Verbose. Better orthogonality.
4857 between Plain and Verbose. Better orthogonality.
4854
4858
4855 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4859 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4856 mode and color scheme for the exception handlers. Now it's
4860 mode and color scheme for the exception handlers. Now it's
4857 possible to have the verbose traceback with no coloring.
4861 possible to have the verbose traceback with no coloring.
4858
4862
4859 2001-11-23 Fernando Perez <fperez@colorado.edu>
4863 2001-11-23 Fernando Perez <fperez@colorado.edu>
4860
4864
4861 * Version 0.1.12 released, 0.1.13 opened.
4865 * Version 0.1.12 released, 0.1.13 opened.
4862
4866
4863 * Removed option to set auto-quote and auto-paren escapes by
4867 * Removed option to set auto-quote and auto-paren escapes by
4864 user. The chances of breaking valid syntax are just too high. If
4868 user. The chances of breaking valid syntax are just too high. If
4865 someone *really* wants, they can always dig into the code.
4869 someone *really* wants, they can always dig into the code.
4866
4870
4867 * Made prompt separators configurable.
4871 * Made prompt separators configurable.
4868
4872
4869 2001-11-22 Fernando Perez <fperez@colorado.edu>
4873 2001-11-22 Fernando Perez <fperez@colorado.edu>
4870
4874
4871 * Small bugfixes in many places.
4875 * Small bugfixes in many places.
4872
4876
4873 * Removed the MyCompleter class from ipplib. It seemed redundant
4877 * Removed the MyCompleter class from ipplib. It seemed redundant
4874 with the C-p,C-n history search functionality. Less code to
4878 with the C-p,C-n history search functionality. Less code to
4875 maintain.
4879 maintain.
4876
4880
4877 * Moved all the original ipython.py code into ipythonlib.py. Right
4881 * Moved all the original ipython.py code into ipythonlib.py. Right
4878 now it's just one big dump into a function called make_IPython, so
4882 now it's just one big dump into a function called make_IPython, so
4879 no real modularity has been gained. But at least it makes the
4883 no real modularity has been gained. But at least it makes the
4880 wrapper script tiny, and since ipythonlib is a module, it gets
4884 wrapper script tiny, and since ipythonlib is a module, it gets
4881 compiled and startup is much faster.
4885 compiled and startup is much faster.
4882
4886
4883 This is a reasobably 'deep' change, so we should test it for a
4887 This is a reasobably 'deep' change, so we should test it for a
4884 while without messing too much more with the code.
4888 while without messing too much more with the code.
4885
4889
4886 2001-11-21 Fernando Perez <fperez@colorado.edu>
4890 2001-11-21 Fernando Perez <fperez@colorado.edu>
4887
4891
4888 * Version 0.1.11 released, 0.1.12 opened for further work.
4892 * Version 0.1.11 released, 0.1.12 opened for further work.
4889
4893
4890 * Removed dependency on Itpl. It was only needed in one place. It
4894 * Removed dependency on Itpl. It was only needed in one place. It
4891 would be nice if this became part of python, though. It makes life
4895 would be nice if this became part of python, though. It makes life
4892 *a lot* easier in some cases.
4896 *a lot* easier in some cases.
4893
4897
4894 * Simplified the prefilter code a bit. Now all handlers are
4898 * Simplified the prefilter code a bit. Now all handlers are
4895 expected to explicitly return a value (at least a blank string).
4899 expected to explicitly return a value (at least a blank string).
4896
4900
4897 * Heavy edits in ipplib. Removed the help system altogether. Now
4901 * Heavy edits in ipplib. Removed the help system altogether. Now
4898 obj?/?? is used for inspecting objects, a magic @doc prints
4902 obj?/?? is used for inspecting objects, a magic @doc prints
4899 docstrings, and full-blown Python help is accessed via the 'help'
4903 docstrings, and full-blown Python help is accessed via the 'help'
4900 keyword. This cleans up a lot of code (less to maintain) and does
4904 keyword. This cleans up a lot of code (less to maintain) and does
4901 the job. Since 'help' is now a standard Python component, might as
4905 the job. Since 'help' is now a standard Python component, might as
4902 well use it and remove duplicate functionality.
4906 well use it and remove duplicate functionality.
4903
4907
4904 Also removed the option to use ipplib as a standalone program. By
4908 Also removed the option to use ipplib as a standalone program. By
4905 now it's too dependent on other parts of IPython to function alone.
4909 now it's too dependent on other parts of IPython to function alone.
4906
4910
4907 * Fixed bug in genutils.pager. It would crash if the pager was
4911 * Fixed bug in genutils.pager. It would crash if the pager was
4908 exited immediately after opening (broken pipe).
4912 exited immediately after opening (broken pipe).
4909
4913
4910 * Trimmed down the VerboseTB reporting a little. The header is
4914 * Trimmed down the VerboseTB reporting a little. The header is
4911 much shorter now and the repeated exception arguments at the end
4915 much shorter now and the repeated exception arguments at the end
4912 have been removed. For interactive use the old header seemed a bit
4916 have been removed. For interactive use the old header seemed a bit
4913 excessive.
4917 excessive.
4914
4918
4915 * Fixed small bug in output of @whos for variables with multi-word
4919 * Fixed small bug in output of @whos for variables with multi-word
4916 types (only first word was displayed).
4920 types (only first word was displayed).
4917
4921
4918 2001-11-17 Fernando Perez <fperez@colorado.edu>
4922 2001-11-17 Fernando Perez <fperez@colorado.edu>
4919
4923
4920 * Version 0.1.10 released, 0.1.11 opened for further work.
4924 * Version 0.1.10 released, 0.1.11 opened for further work.
4921
4925
4922 * Modified dirs and friends. dirs now *returns* the stack (not
4926 * Modified dirs and friends. dirs now *returns* the stack (not
4923 prints), so one can manipulate it as a variable. Convenient to
4927 prints), so one can manipulate it as a variable. Convenient to
4924 travel along many directories.
4928 travel along many directories.
4925
4929
4926 * Fixed bug in magic_pdef: would only work with functions with
4930 * Fixed bug in magic_pdef: would only work with functions with
4927 arguments with default values.
4931 arguments with default values.
4928
4932
4929 2001-11-14 Fernando Perez <fperez@colorado.edu>
4933 2001-11-14 Fernando Perez <fperez@colorado.edu>
4930
4934
4931 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4935 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4932 example with IPython. Various other minor fixes and cleanups.
4936 example with IPython. Various other minor fixes and cleanups.
4933
4937
4934 * Version 0.1.9 released, 0.1.10 opened for further work.
4938 * Version 0.1.9 released, 0.1.10 opened for further work.
4935
4939
4936 * Added sys.path to the list of directories searched in the
4940 * Added sys.path to the list of directories searched in the
4937 execfile= option. It used to be the current directory and the
4941 execfile= option. It used to be the current directory and the
4938 user's IPYTHONDIR only.
4942 user's IPYTHONDIR only.
4939
4943
4940 2001-11-13 Fernando Perez <fperez@colorado.edu>
4944 2001-11-13 Fernando Perez <fperez@colorado.edu>
4941
4945
4942 * Reinstated the raw_input/prefilter separation that Janko had
4946 * Reinstated the raw_input/prefilter separation that Janko had
4943 initially. This gives a more convenient setup for extending the
4947 initially. This gives a more convenient setup for extending the
4944 pre-processor from the outside: raw_input always gets a string,
4948 pre-processor from the outside: raw_input always gets a string,
4945 and prefilter has to process it. We can then redefine prefilter
4949 and prefilter has to process it. We can then redefine prefilter
4946 from the outside and implement extensions for special
4950 from the outside and implement extensions for special
4947 purposes.
4951 purposes.
4948
4952
4949 Today I got one for inputting PhysicalQuantity objects
4953 Today I got one for inputting PhysicalQuantity objects
4950 (from Scientific) without needing any function calls at
4954 (from Scientific) without needing any function calls at
4951 all. Extremely convenient, and it's all done as a user-level
4955 all. Extremely convenient, and it's all done as a user-level
4952 extension (no IPython code was touched). Now instead of:
4956 extension (no IPython code was touched). Now instead of:
4953 a = PhysicalQuantity(4.2,'m/s**2')
4957 a = PhysicalQuantity(4.2,'m/s**2')
4954 one can simply say
4958 one can simply say
4955 a = 4.2 m/s**2
4959 a = 4.2 m/s**2
4956 or even
4960 or even
4957 a = 4.2 m/s^2
4961 a = 4.2 m/s^2
4958
4962
4959 I use this, but it's also a proof of concept: IPython really is
4963 I use this, but it's also a proof of concept: IPython really is
4960 fully user-extensible, even at the level of the parsing of the
4964 fully user-extensible, even at the level of the parsing of the
4961 command line. It's not trivial, but it's perfectly doable.
4965 command line. It's not trivial, but it's perfectly doable.
4962
4966
4963 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4967 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4964 the problem of modules being loaded in the inverse order in which
4968 the problem of modules being loaded in the inverse order in which
4965 they were defined in
4969 they were defined in
4966
4970
4967 * Version 0.1.8 released, 0.1.9 opened for further work.
4971 * Version 0.1.8 released, 0.1.9 opened for further work.
4968
4972
4969 * Added magics pdef, source and file. They respectively show the
4973 * Added magics pdef, source and file. They respectively show the
4970 definition line ('prototype' in C), source code and full python
4974 definition line ('prototype' in C), source code and full python
4971 file for any callable object. The object inspector oinfo uses
4975 file for any callable object. The object inspector oinfo uses
4972 these to show the same information.
4976 these to show the same information.
4973
4977
4974 * Version 0.1.7 released, 0.1.8 opened for further work.
4978 * Version 0.1.7 released, 0.1.8 opened for further work.
4975
4979
4976 * Separated all the magic functions into a class called Magic. The
4980 * Separated all the magic functions into a class called Magic. The
4977 InteractiveShell class was becoming too big for Xemacs to handle
4981 InteractiveShell class was becoming too big for Xemacs to handle
4978 (de-indenting a line would lock it up for 10 seconds while it
4982 (de-indenting a line would lock it up for 10 seconds while it
4979 backtracked on the whole class!)
4983 backtracked on the whole class!)
4980
4984
4981 FIXME: didn't work. It can be done, but right now namespaces are
4985 FIXME: didn't work. It can be done, but right now namespaces are
4982 all messed up. Do it later (reverted it for now, so at least
4986 all messed up. Do it later (reverted it for now, so at least
4983 everything works as before).
4987 everything works as before).
4984
4988
4985 * Got the object introspection system (magic_oinfo) working! I
4989 * Got the object introspection system (magic_oinfo) working! I
4986 think this is pretty much ready for release to Janko, so he can
4990 think this is pretty much ready for release to Janko, so he can
4987 test it for a while and then announce it. Pretty much 100% of what
4991 test it for a while and then announce it. Pretty much 100% of what
4988 I wanted for the 'phase 1' release is ready. Happy, tired.
4992 I wanted for the 'phase 1' release is ready. Happy, tired.
4989
4993
4990 2001-11-12 Fernando Perez <fperez@colorado.edu>
4994 2001-11-12 Fernando Perez <fperez@colorado.edu>
4991
4995
4992 * Version 0.1.6 released, 0.1.7 opened for further work.
4996 * Version 0.1.6 released, 0.1.7 opened for further work.
4993
4997
4994 * Fixed bug in printing: it used to test for truth before
4998 * Fixed bug in printing: it used to test for truth before
4995 printing, so 0 wouldn't print. Now checks for None.
4999 printing, so 0 wouldn't print. Now checks for None.
4996
5000
4997 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5001 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4998 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5002 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4999 reaches by hand into the outputcache. Think of a better way to do
5003 reaches by hand into the outputcache. Think of a better way to do
5000 this later.
5004 this later.
5001
5005
5002 * Various small fixes thanks to Nathan's comments.
5006 * Various small fixes thanks to Nathan's comments.
5003
5007
5004 * Changed magic_pprint to magic_Pprint. This way it doesn't
5008 * Changed magic_pprint to magic_Pprint. This way it doesn't
5005 collide with pprint() and the name is consistent with the command
5009 collide with pprint() and the name is consistent with the command
5006 line option.
5010 line option.
5007
5011
5008 * Changed prompt counter behavior to be fully like
5012 * Changed prompt counter behavior to be fully like
5009 Mathematica's. That is, even input that doesn't return a result
5013 Mathematica's. That is, even input that doesn't return a result
5010 raises the prompt counter. The old behavior was kind of confusing
5014 raises the prompt counter. The old behavior was kind of confusing
5011 (getting the same prompt number several times if the operation
5015 (getting the same prompt number several times if the operation
5012 didn't return a result).
5016 didn't return a result).
5013
5017
5014 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5018 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5015
5019
5016 * Fixed -Classic mode (wasn't working anymore).
5020 * Fixed -Classic mode (wasn't working anymore).
5017
5021
5018 * Added colored prompts using Nathan's new code. Colors are
5022 * Added colored prompts using Nathan's new code. Colors are
5019 currently hardwired, they can be user-configurable. For
5023 currently hardwired, they can be user-configurable. For
5020 developers, they can be chosen in file ipythonlib.py, at the
5024 developers, they can be chosen in file ipythonlib.py, at the
5021 beginning of the CachedOutput class def.
5025 beginning of the CachedOutput class def.
5022
5026
5023 2001-11-11 Fernando Perez <fperez@colorado.edu>
5027 2001-11-11 Fernando Perez <fperez@colorado.edu>
5024
5028
5025 * Version 0.1.5 released, 0.1.6 opened for further work.
5029 * Version 0.1.5 released, 0.1.6 opened for further work.
5026
5030
5027 * Changed magic_env to *return* the environment as a dict (not to
5031 * Changed magic_env to *return* the environment as a dict (not to
5028 print it). This way it prints, but it can also be processed.
5032 print it). This way it prints, but it can also be processed.
5029
5033
5030 * Added Verbose exception reporting to interactive
5034 * Added Verbose exception reporting to interactive
5031 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5035 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5032 traceback. Had to make some changes to the ultraTB file. This is
5036 traceback. Had to make some changes to the ultraTB file. This is
5033 probably the last 'big' thing in my mental todo list. This ties
5037 probably the last 'big' thing in my mental todo list. This ties
5034 in with the next entry:
5038 in with the next entry:
5035
5039
5036 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5040 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5037 has to specify is Plain, Color or Verbose for all exception
5041 has to specify is Plain, Color or Verbose for all exception
5038 handling.
5042 handling.
5039
5043
5040 * Removed ShellServices option. All this can really be done via
5044 * Removed ShellServices option. All this can really be done via
5041 the magic system. It's easier to extend, cleaner and has automatic
5045 the magic system. It's easier to extend, cleaner and has automatic
5042 namespace protection and documentation.
5046 namespace protection and documentation.
5043
5047
5044 2001-11-09 Fernando Perez <fperez@colorado.edu>
5048 2001-11-09 Fernando Perez <fperez@colorado.edu>
5045
5049
5046 * Fixed bug in output cache flushing (missing parameter to
5050 * Fixed bug in output cache flushing (missing parameter to
5047 __init__). Other small bugs fixed (found using pychecker).
5051 __init__). Other small bugs fixed (found using pychecker).
5048
5052
5049 * Version 0.1.4 opened for bugfixing.
5053 * Version 0.1.4 opened for bugfixing.
5050
5054
5051 2001-11-07 Fernando Perez <fperez@colorado.edu>
5055 2001-11-07 Fernando Perez <fperez@colorado.edu>
5052
5056
5053 * Version 0.1.3 released, mainly because of the raw_input bug.
5057 * Version 0.1.3 released, mainly because of the raw_input bug.
5054
5058
5055 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5059 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5056 and when testing for whether things were callable, a call could
5060 and when testing for whether things were callable, a call could
5057 actually be made to certain functions. They would get called again
5061 actually be made to certain functions. They would get called again
5058 once 'really' executed, with a resulting double call. A disaster
5062 once 'really' executed, with a resulting double call. A disaster
5059 in many cases (list.reverse() would never work!).
5063 in many cases (list.reverse() would never work!).
5060
5064
5061 * Removed prefilter() function, moved its code to raw_input (which
5065 * Removed prefilter() function, moved its code to raw_input (which
5062 after all was just a near-empty caller for prefilter). This saves
5066 after all was just a near-empty caller for prefilter). This saves
5063 a function call on every prompt, and simplifies the class a tiny bit.
5067 a function call on every prompt, and simplifies the class a tiny bit.
5064
5068
5065 * Fix _ip to __ip name in magic example file.
5069 * Fix _ip to __ip name in magic example file.
5066
5070
5067 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5071 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5068 work with non-gnu versions of tar.
5072 work with non-gnu versions of tar.
5069
5073
5070 2001-11-06 Fernando Perez <fperez@colorado.edu>
5074 2001-11-06 Fernando Perez <fperez@colorado.edu>
5071
5075
5072 * Version 0.1.2. Just to keep track of the recent changes.
5076 * Version 0.1.2. Just to keep track of the recent changes.
5073
5077
5074 * Fixed nasty bug in output prompt routine. It used to check 'if
5078 * Fixed nasty bug in output prompt routine. It used to check 'if
5075 arg != None...'. Problem is, this fails if arg implements a
5079 arg != None...'. Problem is, this fails if arg implements a
5076 special comparison (__cmp__) which disallows comparing to
5080 special comparison (__cmp__) which disallows comparing to
5077 None. Found it when trying to use the PhysicalQuantity module from
5081 None. Found it when trying to use the PhysicalQuantity module from
5078 ScientificPython.
5082 ScientificPython.
5079
5083
5080 2001-11-05 Fernando Perez <fperez@colorado.edu>
5084 2001-11-05 Fernando Perez <fperez@colorado.edu>
5081
5085
5082 * Also added dirs. Now the pushd/popd/dirs family functions
5086 * Also added dirs. Now the pushd/popd/dirs family functions
5083 basically like the shell, with the added convenience of going home
5087 basically like the shell, with the added convenience of going home
5084 when called with no args.
5088 when called with no args.
5085
5089
5086 * pushd/popd slightly modified to mimic shell behavior more
5090 * pushd/popd slightly modified to mimic shell behavior more
5087 closely.
5091 closely.
5088
5092
5089 * Added env,pushd,popd from ShellServices as magic functions. I
5093 * Added env,pushd,popd from ShellServices as magic functions. I
5090 think the cleanest will be to port all desired functions from
5094 think the cleanest will be to port all desired functions from
5091 ShellServices as magics and remove ShellServices altogether. This
5095 ShellServices as magics and remove ShellServices altogether. This
5092 will provide a single, clean way of adding functionality
5096 will provide a single, clean way of adding functionality
5093 (shell-type or otherwise) to IP.
5097 (shell-type or otherwise) to IP.
5094
5098
5095 2001-11-04 Fernando Perez <fperez@colorado.edu>
5099 2001-11-04 Fernando Perez <fperez@colorado.edu>
5096
5100
5097 * Added .ipython/ directory to sys.path. This way users can keep
5101 * Added .ipython/ directory to sys.path. This way users can keep
5098 customizations there and access them via import.
5102 customizations there and access them via import.
5099
5103
5100 2001-11-03 Fernando Perez <fperez@colorado.edu>
5104 2001-11-03 Fernando Perez <fperez@colorado.edu>
5101
5105
5102 * Opened version 0.1.1 for new changes.
5106 * Opened version 0.1.1 for new changes.
5103
5107
5104 * Changed version number to 0.1.0: first 'public' release, sent to
5108 * Changed version number to 0.1.0: first 'public' release, sent to
5105 Nathan and Janko.
5109 Nathan and Janko.
5106
5110
5107 * Lots of small fixes and tweaks.
5111 * Lots of small fixes and tweaks.
5108
5112
5109 * Minor changes to whos format. Now strings are shown, snipped if
5113 * Minor changes to whos format. Now strings are shown, snipped if
5110 too long.
5114 too long.
5111
5115
5112 * Changed ShellServices to work on __main__ so they show up in @who
5116 * Changed ShellServices to work on __main__ so they show up in @who
5113
5117
5114 * Help also works with ? at the end of a line:
5118 * Help also works with ? at the end of a line:
5115 ?sin and sin?
5119 ?sin and sin?
5116 both produce the same effect. This is nice, as often I use the
5120 both produce the same effect. This is nice, as often I use the
5117 tab-complete to find the name of a method, but I used to then have
5121 tab-complete to find the name of a method, but I used to then have
5118 to go to the beginning of the line to put a ? if I wanted more
5122 to go to the beginning of the line to put a ? if I wanted more
5119 info. Now I can just add the ? and hit return. Convenient.
5123 info. Now I can just add the ? and hit return. Convenient.
5120
5124
5121 2001-11-02 Fernando Perez <fperez@colorado.edu>
5125 2001-11-02 Fernando Perez <fperez@colorado.edu>
5122
5126
5123 * Python version check (>=2.1) added.
5127 * Python version check (>=2.1) added.
5124
5128
5125 * Added LazyPython documentation. At this point the docs are quite
5129 * Added LazyPython documentation. At this point the docs are quite
5126 a mess. A cleanup is in order.
5130 a mess. A cleanup is in order.
5127
5131
5128 * Auto-installer created. For some bizarre reason, the zipfiles
5132 * Auto-installer created. For some bizarre reason, the zipfiles
5129 module isn't working on my system. So I made a tar version
5133 module isn't working on my system. So I made a tar version
5130 (hopefully the command line options in various systems won't kill
5134 (hopefully the command line options in various systems won't kill
5131 me).
5135 me).
5132
5136
5133 * Fixes to Struct in genutils. Now all dictionary-like methods are
5137 * Fixes to Struct in genutils. Now all dictionary-like methods are
5134 protected (reasonably).
5138 protected (reasonably).
5135
5139
5136 * Added pager function to genutils and changed ? to print usage
5140 * Added pager function to genutils and changed ? to print usage
5137 note through it (it was too long).
5141 note through it (it was too long).
5138
5142
5139 * Added the LazyPython functionality. Works great! I changed the
5143 * Added the LazyPython functionality. Works great! I changed the
5140 auto-quote escape to ';', it's on home row and next to '. But
5144 auto-quote escape to ';', it's on home row and next to '. But
5141 both auto-quote and auto-paren (still /) escapes are command-line
5145 both auto-quote and auto-paren (still /) escapes are command-line
5142 parameters.
5146 parameters.
5143
5147
5144
5148
5145 2001-11-01 Fernando Perez <fperez@colorado.edu>
5149 2001-11-01 Fernando Perez <fperez@colorado.edu>
5146
5150
5147 * Version changed to 0.0.7. Fairly large change: configuration now
5151 * Version changed to 0.0.7. Fairly large change: configuration now
5148 is all stored in a directory, by default .ipython. There, all
5152 is all stored in a directory, by default .ipython. There, all
5149 config files have normal looking names (not .names)
5153 config files have normal looking names (not .names)
5150
5154
5151 * Version 0.0.6 Released first to Lucas and Archie as a test
5155 * Version 0.0.6 Released first to Lucas and Archie as a test
5152 run. Since it's the first 'semi-public' release, change version to
5156 run. Since it's the first 'semi-public' release, change version to
5153 > 0.0.6 for any changes now.
5157 > 0.0.6 for any changes now.
5154
5158
5155 * Stuff I had put in the ipplib.py changelog:
5159 * Stuff I had put in the ipplib.py changelog:
5156
5160
5157 Changes to InteractiveShell:
5161 Changes to InteractiveShell:
5158
5162
5159 - Made the usage message a parameter.
5163 - Made the usage message a parameter.
5160
5164
5161 - Require the name of the shell variable to be given. It's a bit
5165 - Require the name of the shell variable to be given. It's a bit
5162 of a hack, but allows the name 'shell' not to be hardwire in the
5166 of a hack, but allows the name 'shell' not to be hardwire in the
5163 magic (@) handler, which is problematic b/c it requires
5167 magic (@) handler, which is problematic b/c it requires
5164 polluting the global namespace with 'shell'. This in turn is
5168 polluting the global namespace with 'shell'. This in turn is
5165 fragile: if a user redefines a variable called shell, things
5169 fragile: if a user redefines a variable called shell, things
5166 break.
5170 break.
5167
5171
5168 - magic @: all functions available through @ need to be defined
5172 - magic @: all functions available through @ need to be defined
5169 as magic_<name>, even though they can be called simply as
5173 as magic_<name>, even though they can be called simply as
5170 @<name>. This allows the special command @magic to gather
5174 @<name>. This allows the special command @magic to gather
5171 information automatically about all existing magic functions,
5175 information automatically about all existing magic functions,
5172 even if they are run-time user extensions, by parsing the shell
5176 even if they are run-time user extensions, by parsing the shell
5173 instance __dict__ looking for special magic_ names.
5177 instance __dict__ looking for special magic_ names.
5174
5178
5175 - mainloop: added *two* local namespace parameters. This allows
5179 - mainloop: added *two* local namespace parameters. This allows
5176 the class to differentiate between parameters which were there
5180 the class to differentiate between parameters which were there
5177 before and after command line initialization was processed. This
5181 before and after command line initialization was processed. This
5178 way, later @who can show things loaded at startup by the
5182 way, later @who can show things loaded at startup by the
5179 user. This trick was necessary to make session saving/reloading
5183 user. This trick was necessary to make session saving/reloading
5180 really work: ideally after saving/exiting/reloading a session,
5184 really work: ideally after saving/exiting/reloading a session,
5181 *everythin* should look the same, including the output of @who. I
5185 *everythin* should look the same, including the output of @who. I
5182 was only able to make this work with this double namespace
5186 was only able to make this work with this double namespace
5183 trick.
5187 trick.
5184
5188
5185 - added a header to the logfile which allows (almost) full
5189 - added a header to the logfile which allows (almost) full
5186 session restoring.
5190 session restoring.
5187
5191
5188 - prepend lines beginning with @ or !, with a and log
5192 - prepend lines beginning with @ or !, with a and log
5189 them. Why? !lines: may be useful to know what you did @lines:
5193 them. Why? !lines: may be useful to know what you did @lines:
5190 they may affect session state. So when restoring a session, at
5194 they may affect session state. So when restoring a session, at
5191 least inform the user of their presence. I couldn't quite get
5195 least inform the user of their presence. I couldn't quite get
5192 them to properly re-execute, but at least the user is warned.
5196 them to properly re-execute, but at least the user is warned.
5193
5197
5194 * Started ChangeLog.
5198 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now