##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5178 +1,5183 b''
1 2006-02-07 Ville Vainio <vivainio@gmail.com>
2
3 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
4 instead use "f(1 2)" as before.
5
1 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
6 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2
7
3 * IPython/demo.py (IPythonDemo): Add new classes to the demo
8 * IPython/demo.py (IPythonDemo): Add new classes to the demo
4 facilities, for demos processed by the IPython input filter
9 facilities, for demos processed by the IPython input filter
5 (IPythonDemo), and for running a script one-line-at-a-time as a
10 (IPythonDemo), and for running a script one-line-at-a-time as a
6 demo, both for pure Python (LineDemo) and for IPython-processed
11 demo, both for pure Python (LineDemo) and for IPython-processed
7 input (IPythonLineDemo). After a request by Dave Kohel, from the
12 input (IPythonLineDemo). After a request by Dave Kohel, from the
8 SAGE team.
13 SAGE team.
9 (Demo.edit): added and edit() method to the demo objects, to edit
14 (Demo.edit): added and edit() method to the demo objects, to edit
10 the in-memory copy of the last executed block.
15 the in-memory copy of the last executed block.
11
16
12 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
17 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
13 processing to %edit, %macro and %save. These commands can now be
18 processing to %edit, %macro and %save. These commands can now be
14 invoked on the unprocessed input as it was typed by the user
19 invoked on the unprocessed input as it was typed by the user
15 (without any prefilters applied). After requests by the SAGE team
20 (without any prefilters applied). After requests by the SAGE team
16 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
21 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
17
22
18 2006-02-01 Ville Vainio <vivainio@gmail.com>
23 2006-02-01 Ville Vainio <vivainio@gmail.com>
19
24
20 * setup.py, eggsetup.py: easy_install ipython==dev works
25 * setup.py, eggsetup.py: easy_install ipython==dev works
21 correctly now (on Linux)
26 correctly now (on Linux)
22
27
23 * ipy_user_conf,ipmaker: user config changes, removed spurious
28 * ipy_user_conf,ipmaker: user config changes, removed spurious
24 warnings
29 warnings
25
30
26 * iplib: if rc.banner is string, use it as is.
31 * iplib: if rc.banner is string, use it as is.
27
32
28 * Magic: %pycat accepts a string argument and pages it's contents.
33 * Magic: %pycat accepts a string argument and pages it's contents.
29
34
30
35
31 2006-01-30 Ville Vainio <vivainio@gmail.com>
36 2006-01-30 Ville Vainio <vivainio@gmail.com>
32
37
33 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
38 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
34 Now %store and bookmarks work through PickleShare, meaning that
39 Now %store and bookmarks work through PickleShare, meaning that
35 concurrent access is possible and all ipython sessions see the
40 concurrent access is possible and all ipython sessions see the
36 same database situation all the time, instead of snapshot of
41 same database situation all the time, instead of snapshot of
37 the situation when the session was started. Hence, %bookmark
42 the situation when the session was started. Hence, %bookmark
38 results are immediately accessible from othes sessions. The database
43 results are immediately accessible from othes sessions. The database
39 is also available for use by user extensions. See:
44 is also available for use by user extensions. See:
40 http://www.python.org/pypi/pickleshare
45 http://www.python.org/pypi/pickleshare
41
46
42 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
47 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
43
48
44 * aliases can now be %store'd
49 * aliases can now be %store'd
45
50
46 * path.py move to Extensions so that pickleshare does not need
51 * path.py move to Extensions so that pickleshare does not need
47 IPython-specific import. Extensions added to pythonpath right
52 IPython-specific import. Extensions added to pythonpath right
48 at __init__.
53 at __init__.
49
54
50 * iplib.py: ipalias deprecated/redundant; aliases are converted and
55 * iplib.py: ipalias deprecated/redundant; aliases are converted and
51 called with _ip.system and the pre-transformed command string.
56 called with _ip.system and the pre-transformed command string.
52
57
53 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
58 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
54
59
55 * IPython/iplib.py (interact): Fix that we were not catching
60 * IPython/iplib.py (interact): Fix that we were not catching
56 KeyboardInterrupt exceptions properly. I'm not quite sure why the
61 KeyboardInterrupt exceptions properly. I'm not quite sure why the
57 logic here had to change, but it's fixed now.
62 logic here had to change, but it's fixed now.
58
63
59 2006-01-29 Ville Vainio <vivainio@gmail.com>
64 2006-01-29 Ville Vainio <vivainio@gmail.com>
60
65
61 * iplib.py: Try to import pyreadline on Windows.
66 * iplib.py: Try to import pyreadline on Windows.
62
67
63 2006-01-27 Ville Vainio <vivainio@gmail.com>
68 2006-01-27 Ville Vainio <vivainio@gmail.com>
64
69
65 * iplib.py: Expose ipapi as _ip in builtin namespace.
70 * iplib.py: Expose ipapi as _ip in builtin namespace.
66 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
71 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
67 and ip_set_hook (-> _ip.set_hook) redundant. % and !
72 and ip_set_hook (-> _ip.set_hook) redundant. % and !
68 syntax now produce _ip.* variant of the commands.
73 syntax now produce _ip.* variant of the commands.
69
74
70 * "_ip.options().autoedit_syntax = 2" automatically throws
75 * "_ip.options().autoedit_syntax = 2" automatically throws
71 user to editor for syntax error correction without prompting.
76 user to editor for syntax error correction without prompting.
72
77
73 2006-01-27 Ville Vainio <vivainio@gmail.com>
78 2006-01-27 Ville Vainio <vivainio@gmail.com>
74
79
75 * ipmaker.py: Give "realistic" sys.argv for scripts (without
80 * ipmaker.py: Give "realistic" sys.argv for scripts (without
76 'ipython' at argv[0]) executed through command line.
81 'ipython' at argv[0]) executed through command line.
77 NOTE: this DEPRECATES calling ipython with multiple scripts
82 NOTE: this DEPRECATES calling ipython with multiple scripts
78 ("ipython a.py b.py c.py")
83 ("ipython a.py b.py c.py")
79
84
80 * iplib.py, hooks.py: Added configurable input prefilter,
85 * iplib.py, hooks.py: Added configurable input prefilter,
81 named 'input_prefilter'. See ext_rescapture.py for example
86 named 'input_prefilter'. See ext_rescapture.py for example
82 usage.
87 usage.
83
88
84 * ext_rescapture.py, Magic.py: Better system command output capture
89 * ext_rescapture.py, Magic.py: Better system command output capture
85 through 'var = !ls' (deprecates user-visible %sc). Same notation
90 through 'var = !ls' (deprecates user-visible %sc). Same notation
86 applies for magics, 'var = %alias' assigns alias list to var.
91 applies for magics, 'var = %alias' assigns alias list to var.
87
92
88 * ipapi.py: added meta() for accessing extension-usable data store.
93 * ipapi.py: added meta() for accessing extension-usable data store.
89
94
90 * iplib.py: added InteractiveShell.getapi(). New magics should be
95 * iplib.py: added InteractiveShell.getapi(). New magics should be
91 written doing self.getapi() instead of using the shell directly.
96 written doing self.getapi() instead of using the shell directly.
92
97
93 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
98 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
94 %store foo >> ~/myfoo.txt to store variables to files (in clean
99 %store foo >> ~/myfoo.txt to store variables to files (in clean
95 textual form, not a restorable pickle).
100 textual form, not a restorable pickle).
96
101
97 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
102 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
98
103
99 * usage.py, Magic.py: added %quickref
104 * usage.py, Magic.py: added %quickref
100
105
101 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
106 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
102
107
103 * GetoptErrors when invoking magics etc. with wrong args
108 * GetoptErrors when invoking magics etc. with wrong args
104 are now more helpful:
109 are now more helpful:
105 GetoptError: option -l not recognized (allowed: "qb" )
110 GetoptError: option -l not recognized (allowed: "qb" )
106
111
107 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
112 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
108
113
109 * IPython/demo.py (Demo.show): Flush stdout after each block, so
114 * IPython/demo.py (Demo.show): Flush stdout after each block, so
110 computationally intensive blocks don't appear to stall the demo.
115 computationally intensive blocks don't appear to stall the demo.
111
116
112 2006-01-24 Ville Vainio <vivainio@gmail.com>
117 2006-01-24 Ville Vainio <vivainio@gmail.com>
113
118
114 * iplib.py, hooks.py: 'result_display' hook can return a non-None
119 * iplib.py, hooks.py: 'result_display' hook can return a non-None
115 value to manipulate resulting history entry.
120 value to manipulate resulting history entry.
116
121
117 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
122 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
118 to instance methods of IPApi class, to make extending an embedded
123 to instance methods of IPApi class, to make extending an embedded
119 IPython feasible. See ext_rehashdir.py for example usage.
124 IPython feasible. See ext_rehashdir.py for example usage.
120
125
121 * Merged 1071-1076 from banches/0.7.1
126 * Merged 1071-1076 from banches/0.7.1
122
127
123
128
124 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
129 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
125
130
126 * tools/release (daystamp): Fix build tools to use the new
131 * tools/release (daystamp): Fix build tools to use the new
127 eggsetup.py script to build lightweight eggs.
132 eggsetup.py script to build lightweight eggs.
128
133
129 * Applied changesets 1062 and 1064 before 0.7.1 release.
134 * Applied changesets 1062 and 1064 before 0.7.1 release.
130
135
131 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
136 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
132 see the raw input history (without conversions like %ls ->
137 see the raw input history (without conversions like %ls ->
133 ipmagic("ls")). After a request from W. Stein, SAGE
138 ipmagic("ls")). After a request from W. Stein, SAGE
134 (http://modular.ucsd.edu/sage) developer. This information is
139 (http://modular.ucsd.edu/sage) developer. This information is
135 stored in the input_hist_raw attribute of the IPython instance, so
140 stored in the input_hist_raw attribute of the IPython instance, so
136 developers can access it if needed (it's an InputList instance).
141 developers can access it if needed (it's an InputList instance).
137
142
138 * Versionstring = 0.7.2.svn
143 * Versionstring = 0.7.2.svn
139
144
140 * eggsetup.py: A separate script for constructing eggs, creates
145 * eggsetup.py: A separate script for constructing eggs, creates
141 proper launch scripts even on Windows (an .exe file in
146 proper launch scripts even on Windows (an .exe file in
142 \python24\scripts).
147 \python24\scripts).
143
148
144 * ipapi.py: launch_new_instance, launch entry point needed for the
149 * ipapi.py: launch_new_instance, launch entry point needed for the
145 egg.
150 egg.
146
151
147 2006-01-23 Ville Vainio <vivainio@gmail.com>
152 2006-01-23 Ville Vainio <vivainio@gmail.com>
148
153
149 * Added %cpaste magic for pasting python code
154 * Added %cpaste magic for pasting python code
150
155
151 2006-01-22 Ville Vainio <vivainio@gmail.com>
156 2006-01-22 Ville Vainio <vivainio@gmail.com>
152
157
153 * Merge from branches/0.7.1 into trunk, revs 1052-1057
158 * Merge from branches/0.7.1 into trunk, revs 1052-1057
154
159
155 * Versionstring = 0.7.2.svn
160 * Versionstring = 0.7.2.svn
156
161
157 * eggsetup.py: A separate script for constructing eggs, creates
162 * eggsetup.py: A separate script for constructing eggs, creates
158 proper launch scripts even on Windows (an .exe file in
163 proper launch scripts even on Windows (an .exe file in
159 \python24\scripts).
164 \python24\scripts).
160
165
161 * ipapi.py: launch_new_instance, launch entry point needed for the
166 * ipapi.py: launch_new_instance, launch entry point needed for the
162 egg.
167 egg.
163
168
164 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
169 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
165
170
166 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
171 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
167 %pfile foo would print the file for foo even if it was a binary.
172 %pfile foo would print the file for foo even if it was a binary.
168 Now, extensions '.so' and '.dll' are skipped.
173 Now, extensions '.so' and '.dll' are skipped.
169
174
170 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
175 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
171 bug, where macros would fail in all threaded modes. I'm not 100%
176 bug, where macros would fail in all threaded modes. I'm not 100%
172 sure, so I'm going to put out an rc instead of making a release
177 sure, so I'm going to put out an rc instead of making a release
173 today, and wait for feedback for at least a few days.
178 today, and wait for feedback for at least a few days.
174
179
175 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
180 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
176 it...) the handling of pasting external code with autoindent on.
181 it...) the handling of pasting external code with autoindent on.
177 To get out of a multiline input, the rule will appear for most
182 To get out of a multiline input, the rule will appear for most
178 users unchanged: two blank lines or change the indent level
183 users unchanged: two blank lines or change the indent level
179 proposed by IPython. But there is a twist now: you can
184 proposed by IPython. But there is a twist now: you can
180 add/subtract only *one or two spaces*. If you add/subtract three
185 add/subtract only *one or two spaces*. If you add/subtract three
181 or more (unless you completely delete the line), IPython will
186 or more (unless you completely delete the line), IPython will
182 accept that line, and you'll need to enter a second one of pure
187 accept that line, and you'll need to enter a second one of pure
183 whitespace. I know it sounds complicated, but I can't find a
188 whitespace. I know it sounds complicated, but I can't find a
184 different solution that covers all the cases, with the right
189 different solution that covers all the cases, with the right
185 heuristics. Hopefully in actual use, nobody will really notice
190 heuristics. Hopefully in actual use, nobody will really notice
186 all these strange rules and things will 'just work'.
191 all these strange rules and things will 'just work'.
187
192
188 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
193 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
189
194
190 * IPython/iplib.py (interact): catch exceptions which can be
195 * IPython/iplib.py (interact): catch exceptions which can be
191 triggered asynchronously by signal handlers. Thanks to an
196 triggered asynchronously by signal handlers. Thanks to an
192 automatic crash report, submitted by Colin Kingsley
197 automatic crash report, submitted by Colin Kingsley
193 <tercel-AT-gentoo.org>.
198 <tercel-AT-gentoo.org>.
194
199
195 2006-01-20 Ville Vainio <vivainio@gmail.com>
200 2006-01-20 Ville Vainio <vivainio@gmail.com>
196
201
197 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
202 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
198 (%rehashdir, very useful, try it out) of how to extend ipython
203 (%rehashdir, very useful, try it out) of how to extend ipython
199 with new magics. Also added Extensions dir to pythonpath to make
204 with new magics. Also added Extensions dir to pythonpath to make
200 importing extensions easy.
205 importing extensions easy.
201
206
202 * %store now complains when trying to store interactively declared
207 * %store now complains when trying to store interactively declared
203 classes / instances of those classes.
208 classes / instances of those classes.
204
209
205 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
210 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
206 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
211 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
207 if they exist, and ipy_user_conf.py with some defaults is created for
212 if they exist, and ipy_user_conf.py with some defaults is created for
208 the user.
213 the user.
209
214
210 * Startup rehashing done by the config file, not InterpreterExec.
215 * Startup rehashing done by the config file, not InterpreterExec.
211 This means system commands are available even without selecting the
216 This means system commands are available even without selecting the
212 pysh profile. It's the sensible default after all.
217 pysh profile. It's the sensible default after all.
213
218
214 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
219 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
215
220
216 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
221 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
217 multiline code with autoindent on working. But I am really not
222 multiline code with autoindent on working. But I am really not
218 sure, so this needs more testing. Will commit a debug-enabled
223 sure, so this needs more testing. Will commit a debug-enabled
219 version for now, while I test it some more, so that Ville and
224 version for now, while I test it some more, so that Ville and
220 others may also catch any problems. Also made
225 others may also catch any problems. Also made
221 self.indent_current_str() a method, to ensure that there's no
226 self.indent_current_str() a method, to ensure that there's no
222 chance of the indent space count and the corresponding string
227 chance of the indent space count and the corresponding string
223 falling out of sync. All code needing the string should just call
228 falling out of sync. All code needing the string should just call
224 the method.
229 the method.
225
230
226 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
231 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
227
232
228 * IPython/Magic.py (magic_edit): fix check for when users don't
233 * IPython/Magic.py (magic_edit): fix check for when users don't
229 save their output files, the try/except was in the wrong section.
234 save their output files, the try/except was in the wrong section.
230
235
231 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
236 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
232
237
233 * IPython/Magic.py (magic_run): fix __file__ global missing from
238 * IPython/Magic.py (magic_run): fix __file__ global missing from
234 script's namespace when executed via %run. After a report by
239 script's namespace when executed via %run. After a report by
235 Vivian.
240 Vivian.
236
241
237 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
242 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
238 when using python 2.4. The parent constructor changed in 2.4, and
243 when using python 2.4. The parent constructor changed in 2.4, and
239 we need to track it directly (we can't call it, as it messes up
244 we need to track it directly (we can't call it, as it messes up
240 readline and tab-completion inside our pdb would stop working).
245 readline and tab-completion inside our pdb would stop working).
241 After a bug report by R. Bernstein <rocky-AT-panix.com>.
246 After a bug report by R. Bernstein <rocky-AT-panix.com>.
242
247
243 2006-01-16 Ville Vainio <vivainio@gmail.com>
248 2006-01-16 Ville Vainio <vivainio@gmail.com>
244
249
245 * Ipython/magic.py:Reverted back to old %edit functionality
250 * Ipython/magic.py:Reverted back to old %edit functionality
246 that returns file contents on exit.
251 that returns file contents on exit.
247
252
248 * IPython/path.py: Added Jason Orendorff's "path" module to
253 * IPython/path.py: Added Jason Orendorff's "path" module to
249 IPython tree, http://www.jorendorff.com/articles/python/path/.
254 IPython tree, http://www.jorendorff.com/articles/python/path/.
250 You can get path objects conveniently through %sc, and !!, e.g.:
255 You can get path objects conveniently through %sc, and !!, e.g.:
251 sc files=ls
256 sc files=ls
252 for p in files.paths: # or files.p
257 for p in files.paths: # or files.p
253 print p,p.mtime
258 print p,p.mtime
254
259
255 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
260 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
256 now work again without considering the exclusion regexp -
261 now work again without considering the exclusion regexp -
257 hence, things like ',foo my/path' turn to 'foo("my/path")'
262 hence, things like ',foo my/path' turn to 'foo("my/path")'
258 instead of syntax error.
263 instead of syntax error.
259
264
260
265
261 2006-01-14 Ville Vainio <vivainio@gmail.com>
266 2006-01-14 Ville Vainio <vivainio@gmail.com>
262
267
263 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
268 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
264 ipapi decorators for python 2.4 users, options() provides access to rc
269 ipapi decorators for python 2.4 users, options() provides access to rc
265 data.
270 data.
266
271
267 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
272 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
268 as path separators (even on Linux ;-). Space character after
273 as path separators (even on Linux ;-). Space character after
269 backslash (as yielded by tab completer) is still space;
274 backslash (as yielded by tab completer) is still space;
270 "%cd long\ name" works as expected.
275 "%cd long\ name" works as expected.
271
276
272 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
277 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
273 as "chain of command", with priority. API stays the same,
278 as "chain of command", with priority. API stays the same,
274 TryNext exception raised by a hook function signals that
279 TryNext exception raised by a hook function signals that
275 current hook failed and next hook should try handling it, as
280 current hook failed and next hook should try handling it, as
276 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
281 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
277 requested configurable display hook, which is now implemented.
282 requested configurable display hook, which is now implemented.
278
283
279 2006-01-13 Ville Vainio <vivainio@gmail.com>
284 2006-01-13 Ville Vainio <vivainio@gmail.com>
280
285
281 * IPython/platutils*.py: platform specific utility functions,
286 * IPython/platutils*.py: platform specific utility functions,
282 so far only set_term_title is implemented (change terminal
287 so far only set_term_title is implemented (change terminal
283 label in windowing systems). %cd now changes the title to
288 label in windowing systems). %cd now changes the title to
284 current dir.
289 current dir.
285
290
286 * IPython/Release.py: Added myself to "authors" list,
291 * IPython/Release.py: Added myself to "authors" list,
287 had to create new files.
292 had to create new files.
288
293
289 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
294 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
290 shell escape; not a known bug but had potential to be one in the
295 shell escape; not a known bug but had potential to be one in the
291 future.
296 future.
292
297
293 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
298 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
294 extension API for IPython! See the module for usage example. Fix
299 extension API for IPython! See the module for usage example. Fix
295 OInspect for docstring-less magic functions.
300 OInspect for docstring-less magic functions.
296
301
297
302
298 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
303 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
299
304
300 * IPython/iplib.py (raw_input): temporarily deactivate all
305 * IPython/iplib.py (raw_input): temporarily deactivate all
301 attempts at allowing pasting of code with autoindent on. It
306 attempts at allowing pasting of code with autoindent on. It
302 introduced bugs (reported by Prabhu) and I can't seem to find a
307 introduced bugs (reported by Prabhu) and I can't seem to find a
303 robust combination which works in all cases. Will have to revisit
308 robust combination which works in all cases. Will have to revisit
304 later.
309 later.
305
310
306 * IPython/genutils.py: remove isspace() function. We've dropped
311 * IPython/genutils.py: remove isspace() function. We've dropped
307 2.2 compatibility, so it's OK to use the string method.
312 2.2 compatibility, so it's OK to use the string method.
308
313
309 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
314 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
310
315
311 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
316 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
312 matching what NOT to autocall on, to include all python binary
317 matching what NOT to autocall on, to include all python binary
313 operators (including things like 'and', 'or', 'is' and 'in').
318 operators (including things like 'and', 'or', 'is' and 'in').
314 Prompted by a bug report on 'foo & bar', but I realized we had
319 Prompted by a bug report on 'foo & bar', but I realized we had
315 many more potential bug cases with other operators. The regexp is
320 many more potential bug cases with other operators. The regexp is
316 self.re_exclude_auto, it's fairly commented.
321 self.re_exclude_auto, it's fairly commented.
317
322
318 2006-01-12 Ville Vainio <vivainio@gmail.com>
323 2006-01-12 Ville Vainio <vivainio@gmail.com>
319
324
320 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
325 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
321 Prettified and hardened string/backslash quoting with ipsystem(),
326 Prettified and hardened string/backslash quoting with ipsystem(),
322 ipalias() and ipmagic(). Now even \ characters are passed to
327 ipalias() and ipmagic(). Now even \ characters are passed to
323 %magics, !shell escapes and aliases exactly as they are in the
328 %magics, !shell escapes and aliases exactly as they are in the
324 ipython command line. Should improve backslash experience,
329 ipython command line. Should improve backslash experience,
325 particularly in Windows (path delimiter for some commands that
330 particularly in Windows (path delimiter for some commands that
326 won't understand '/'), but Unix benefits as well (regexps). %cd
331 won't understand '/'), but Unix benefits as well (regexps). %cd
327 magic still doesn't support backslash path delimiters, though. Also
332 magic still doesn't support backslash path delimiters, though. Also
328 deleted all pretense of supporting multiline command strings in
333 deleted all pretense of supporting multiline command strings in
329 !system or %magic commands. Thanks to Jerry McRae for suggestions.
334 !system or %magic commands. Thanks to Jerry McRae for suggestions.
330
335
331 * doc/build_doc_instructions.txt added. Documentation on how to
336 * doc/build_doc_instructions.txt added. Documentation on how to
332 use doc/update_manual.py, added yesterday. Both files contributed
337 use doc/update_manual.py, added yesterday. Both files contributed
333 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
338 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
334 doc/*.sh for deprecation at a later date.
339 doc/*.sh for deprecation at a later date.
335
340
336 * /ipython.py Added ipython.py to root directory for
341 * /ipython.py Added ipython.py to root directory for
337 zero-installation (tar xzvf ipython.tgz; cd ipython; python
342 zero-installation (tar xzvf ipython.tgz; cd ipython; python
338 ipython.py) and development convenience (no need to kee doing
343 ipython.py) and development convenience (no need to kee doing
339 "setup.py install" between changes).
344 "setup.py install" between changes).
340
345
341 * Made ! and !! shell escapes work (again) in multiline expressions:
346 * Made ! and !! shell escapes work (again) in multiline expressions:
342 if 1:
347 if 1:
343 !ls
348 !ls
344 !!ls
349 !!ls
345
350
346 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
351 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
347
352
348 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
353 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
349 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
354 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
350 module in case-insensitive installation. Was causing crashes
355 module in case-insensitive installation. Was causing crashes
351 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
356 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
352
357
353 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
358 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
354 <marienz-AT-gentoo.org>, closes
359 <marienz-AT-gentoo.org>, closes
355 http://www.scipy.net/roundup/ipython/issue51.
360 http://www.scipy.net/roundup/ipython/issue51.
356
361
357 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
362 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
358
363
359 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
364 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
360 problem of excessive CPU usage under *nix and keyboard lag under
365 problem of excessive CPU usage under *nix and keyboard lag under
361 win32.
366 win32.
362
367
363 2006-01-10 *** Released version 0.7.0
368 2006-01-10 *** Released version 0.7.0
364
369
365 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
370 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
366
371
367 * IPython/Release.py (revision): tag version number to 0.7.0,
372 * IPython/Release.py (revision): tag version number to 0.7.0,
368 ready for release.
373 ready for release.
369
374
370 * IPython/Magic.py (magic_edit): Add print statement to %edit so
375 * IPython/Magic.py (magic_edit): Add print statement to %edit so
371 it informs the user of the name of the temp. file used. This can
376 it informs the user of the name of the temp. file used. This can
372 help if you decide later to reuse that same file, so you know
377 help if you decide later to reuse that same file, so you know
373 where to copy the info from.
378 where to copy the info from.
374
379
375 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
380 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
376
381
377 * setup_bdist_egg.py: little script to build an egg. Added
382 * setup_bdist_egg.py: little script to build an egg. Added
378 support in the release tools as well.
383 support in the release tools as well.
379
384
380 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
385 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
381
386
382 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
387 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
383 version selection (new -wxversion command line and ipythonrc
388 version selection (new -wxversion command line and ipythonrc
384 parameter). Patch contributed by Arnd Baecker
389 parameter). Patch contributed by Arnd Baecker
385 <arnd.baecker-AT-web.de>.
390 <arnd.baecker-AT-web.de>.
386
391
387 * IPython/iplib.py (embed_mainloop): fix tab-completion in
392 * IPython/iplib.py (embed_mainloop): fix tab-completion in
388 embedded instances, for variables defined at the interactive
393 embedded instances, for variables defined at the interactive
389 prompt of the embedded ipython. Reported by Arnd.
394 prompt of the embedded ipython. Reported by Arnd.
390
395
391 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
396 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
392 it can be used as a (stateful) toggle, or with a direct parameter.
397 it can be used as a (stateful) toggle, or with a direct parameter.
393
398
394 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
399 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
395 could be triggered in certain cases and cause the traceback
400 could be triggered in certain cases and cause the traceback
396 printer not to work.
401 printer not to work.
397
402
398 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
403 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
399
404
400 * IPython/iplib.py (_should_recompile): Small fix, closes
405 * IPython/iplib.py (_should_recompile): Small fix, closes
401 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
406 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
402
407
403 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
408 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
404
409
405 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
410 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
406 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
411 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
407 Moad for help with tracking it down.
412 Moad for help with tracking it down.
408
413
409 * IPython/iplib.py (handle_auto): fix autocall handling for
414 * IPython/iplib.py (handle_auto): fix autocall handling for
410 objects which support BOTH __getitem__ and __call__ (so that f [x]
415 objects which support BOTH __getitem__ and __call__ (so that f [x]
411 is left alone, instead of becoming f([x]) automatically).
416 is left alone, instead of becoming f([x]) automatically).
412
417
413 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
418 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
414 Ville's patch.
419 Ville's patch.
415
420
416 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
421 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
417
422
418 * IPython/iplib.py (handle_auto): changed autocall semantics to
423 * IPython/iplib.py (handle_auto): changed autocall semantics to
419 include 'smart' mode, where the autocall transformation is NOT
424 include 'smart' mode, where the autocall transformation is NOT
420 applied if there are no arguments on the line. This allows you to
425 applied if there are no arguments on the line. This allows you to
421 just type 'foo' if foo is a callable to see its internal form,
426 just type 'foo' if foo is a callable to see its internal form,
422 instead of having it called with no arguments (typically a
427 instead of having it called with no arguments (typically a
423 mistake). The old 'full' autocall still exists: for that, you
428 mistake). The old 'full' autocall still exists: for that, you
424 need to set the 'autocall' parameter to 2 in your ipythonrc file.
429 need to set the 'autocall' parameter to 2 in your ipythonrc file.
425
430
426 * IPython/completer.py (Completer.attr_matches): add
431 * IPython/completer.py (Completer.attr_matches): add
427 tab-completion support for Enthoughts' traits. After a report by
432 tab-completion support for Enthoughts' traits. After a report by
428 Arnd and a patch by Prabhu.
433 Arnd and a patch by Prabhu.
429
434
430 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
435 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
431
436
432 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
437 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
433 Schmolck's patch to fix inspect.getinnerframes().
438 Schmolck's patch to fix inspect.getinnerframes().
434
439
435 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
440 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
436 for embedded instances, regarding handling of namespaces and items
441 for embedded instances, regarding handling of namespaces and items
437 added to the __builtin__ one. Multiple embedded instances and
442 added to the __builtin__ one. Multiple embedded instances and
438 recursive embeddings should work better now (though I'm not sure
443 recursive embeddings should work better now (though I'm not sure
439 I've got all the corner cases fixed, that code is a bit of a brain
444 I've got all the corner cases fixed, that code is a bit of a brain
440 twister).
445 twister).
441
446
442 * IPython/Magic.py (magic_edit): added support to edit in-memory
447 * IPython/Magic.py (magic_edit): added support to edit in-memory
443 macros (automatically creates the necessary temp files). %edit
448 macros (automatically creates the necessary temp files). %edit
444 also doesn't return the file contents anymore, it's just noise.
449 also doesn't return the file contents anymore, it's just noise.
445
450
446 * IPython/completer.py (Completer.attr_matches): revert change to
451 * IPython/completer.py (Completer.attr_matches): revert change to
447 complete only on attributes listed in __all__. I realized it
452 complete only on attributes listed in __all__. I realized it
448 cripples the tab-completion system as a tool for exploring the
453 cripples the tab-completion system as a tool for exploring the
449 internals of unknown libraries (it renders any non-__all__
454 internals of unknown libraries (it renders any non-__all__
450 attribute off-limits). I got bit by this when trying to see
455 attribute off-limits). I got bit by this when trying to see
451 something inside the dis module.
456 something inside the dis module.
452
457
453 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
458 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
454
459
455 * IPython/iplib.py (InteractiveShell.__init__): add .meta
460 * IPython/iplib.py (InteractiveShell.__init__): add .meta
456 namespace for users and extension writers to hold data in. This
461 namespace for users and extension writers to hold data in. This
457 follows the discussion in
462 follows the discussion in
458 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
463 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
459
464
460 * IPython/completer.py (IPCompleter.complete): small patch to help
465 * IPython/completer.py (IPCompleter.complete): small patch to help
461 tab-completion under Emacs, after a suggestion by John Barnard
466 tab-completion under Emacs, after a suggestion by John Barnard
462 <barnarj-AT-ccf.org>.
467 <barnarj-AT-ccf.org>.
463
468
464 * IPython/Magic.py (Magic.extract_input_slices): added support for
469 * IPython/Magic.py (Magic.extract_input_slices): added support for
465 the slice notation in magics to use N-M to represent numbers N...M
470 the slice notation in magics to use N-M to represent numbers N...M
466 (closed endpoints). This is used by %macro and %save.
471 (closed endpoints). This is used by %macro and %save.
467
472
468 * IPython/completer.py (Completer.attr_matches): for modules which
473 * IPython/completer.py (Completer.attr_matches): for modules which
469 define __all__, complete only on those. After a patch by Jeffrey
474 define __all__, complete only on those. After a patch by Jeffrey
470 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
475 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
471 speed up this routine.
476 speed up this routine.
472
477
473 * IPython/Logger.py (Logger.log): fix a history handling bug. I
478 * IPython/Logger.py (Logger.log): fix a history handling bug. I
474 don't know if this is the end of it, but the behavior now is
479 don't know if this is the end of it, but the behavior now is
475 certainly much more correct. Note that coupled with macros,
480 certainly much more correct. Note that coupled with macros,
476 slightly surprising (at first) behavior may occur: a macro will in
481 slightly surprising (at first) behavior may occur: a macro will in
477 general expand to multiple lines of input, so upon exiting, the
482 general expand to multiple lines of input, so upon exiting, the
478 in/out counters will both be bumped by the corresponding amount
483 in/out counters will both be bumped by the corresponding amount
479 (as if the macro's contents had been typed interactively). Typing
484 (as if the macro's contents had been typed interactively). Typing
480 %hist will reveal the intermediate (silently processed) lines.
485 %hist will reveal the intermediate (silently processed) lines.
481
486
482 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
487 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
483 pickle to fail (%run was overwriting __main__ and not restoring
488 pickle to fail (%run was overwriting __main__ and not restoring
484 it, but pickle relies on __main__ to operate).
489 it, but pickle relies on __main__ to operate).
485
490
486 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
491 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
487 using properties, but forgot to make the main InteractiveShell
492 using properties, but forgot to make the main InteractiveShell
488 class a new-style class. Properties fail silently, and
493 class a new-style class. Properties fail silently, and
489 misteriously, with old-style class (getters work, but
494 misteriously, with old-style class (getters work, but
490 setters don't do anything).
495 setters don't do anything).
491
496
492 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
497 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
493
498
494 * IPython/Magic.py (magic_history): fix history reporting bug (I
499 * IPython/Magic.py (magic_history): fix history reporting bug (I
495 know some nasties are still there, I just can't seem to find a
500 know some nasties are still there, I just can't seem to find a
496 reproducible test case to track them down; the input history is
501 reproducible test case to track them down; the input history is
497 falling out of sync...)
502 falling out of sync...)
498
503
499 * IPython/iplib.py (handle_shell_escape): fix bug where both
504 * IPython/iplib.py (handle_shell_escape): fix bug where both
500 aliases and system accesses where broken for indented code (such
505 aliases and system accesses where broken for indented code (such
501 as loops).
506 as loops).
502
507
503 * IPython/genutils.py (shell): fix small but critical bug for
508 * IPython/genutils.py (shell): fix small but critical bug for
504 win32 system access.
509 win32 system access.
505
510
506 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
511 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
507
512
508 * IPython/iplib.py (showtraceback): remove use of the
513 * IPython/iplib.py (showtraceback): remove use of the
509 sys.last_{type/value/traceback} structures, which are non
514 sys.last_{type/value/traceback} structures, which are non
510 thread-safe.
515 thread-safe.
511 (_prefilter): change control flow to ensure that we NEVER
516 (_prefilter): change control flow to ensure that we NEVER
512 introspect objects when autocall is off. This will guarantee that
517 introspect objects when autocall is off. This will guarantee that
513 having an input line of the form 'x.y', where access to attribute
518 having an input line of the form 'x.y', where access to attribute
514 'y' has side effects, doesn't trigger the side effect TWICE. It
519 'y' has side effects, doesn't trigger the side effect TWICE. It
515 is important to note that, with autocall on, these side effects
520 is important to note that, with autocall on, these side effects
516 can still happen.
521 can still happen.
517 (ipsystem): new builtin, to complete the ip{magic/alias/system}
522 (ipsystem): new builtin, to complete the ip{magic/alias/system}
518 trio. IPython offers these three kinds of special calls which are
523 trio. IPython offers these three kinds of special calls which are
519 not python code, and it's a good thing to have their call method
524 not python code, and it's a good thing to have their call method
520 be accessible as pure python functions (not just special syntax at
525 be accessible as pure python functions (not just special syntax at
521 the command line). It gives us a better internal implementation
526 the command line). It gives us a better internal implementation
522 structure, as well as exposing these for user scripting more
527 structure, as well as exposing these for user scripting more
523 cleanly.
528 cleanly.
524
529
525 * IPython/macro.py (Macro.__init__): moved macros to a standalone
530 * IPython/macro.py (Macro.__init__): moved macros to a standalone
526 file. Now that they'll be more likely to be used with the
531 file. Now that they'll be more likely to be used with the
527 persistance system (%store), I want to make sure their module path
532 persistance system (%store), I want to make sure their module path
528 doesn't change in the future, so that we don't break things for
533 doesn't change in the future, so that we don't break things for
529 users' persisted data.
534 users' persisted data.
530
535
531 * IPython/iplib.py (autoindent_update): move indentation
536 * IPython/iplib.py (autoindent_update): move indentation
532 management into the _text_ processing loop, not the keyboard
537 management into the _text_ processing loop, not the keyboard
533 interactive one. This is necessary to correctly process non-typed
538 interactive one. This is necessary to correctly process non-typed
534 multiline input (such as macros).
539 multiline input (such as macros).
535
540
536 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
541 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
537 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
542 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
538 which was producing problems in the resulting manual.
543 which was producing problems in the resulting manual.
539 (magic_whos): improve reporting of instances (show their class,
544 (magic_whos): improve reporting of instances (show their class,
540 instead of simply printing 'instance' which isn't terribly
545 instead of simply printing 'instance' which isn't terribly
541 informative).
546 informative).
542
547
543 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
548 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
544 (minor mods) to support network shares under win32.
549 (minor mods) to support network shares under win32.
545
550
546 * IPython/winconsole.py (get_console_size): add new winconsole
551 * IPython/winconsole.py (get_console_size): add new winconsole
547 module and fixes to page_dumb() to improve its behavior under
552 module and fixes to page_dumb() to improve its behavior under
548 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
553 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
549
554
550 * IPython/Magic.py (Macro): simplified Macro class to just
555 * IPython/Magic.py (Macro): simplified Macro class to just
551 subclass list. We've had only 2.2 compatibility for a very long
556 subclass list. We've had only 2.2 compatibility for a very long
552 time, yet I was still avoiding subclassing the builtin types. No
557 time, yet I was still avoiding subclassing the builtin types. No
553 more (I'm also starting to use properties, though I won't shift to
558 more (I'm also starting to use properties, though I won't shift to
554 2.3-specific features quite yet).
559 2.3-specific features quite yet).
555 (magic_store): added Ville's patch for lightweight variable
560 (magic_store): added Ville's patch for lightweight variable
556 persistence, after a request on the user list by Matt Wilkie
561 persistence, after a request on the user list by Matt Wilkie
557 <maphew-AT-gmail.com>. The new %store magic's docstring has full
562 <maphew-AT-gmail.com>. The new %store magic's docstring has full
558 details.
563 details.
559
564
560 * IPython/iplib.py (InteractiveShell.post_config_initialization):
565 * IPython/iplib.py (InteractiveShell.post_config_initialization):
561 changed the default logfile name from 'ipython.log' to
566 changed the default logfile name from 'ipython.log' to
562 'ipython_log.py'. These logs are real python files, and now that
567 'ipython_log.py'. These logs are real python files, and now that
563 we have much better multiline support, people are more likely to
568 we have much better multiline support, people are more likely to
564 want to use them as such. Might as well name them correctly.
569 want to use them as such. Might as well name them correctly.
565
570
566 * IPython/Magic.py: substantial cleanup. While we can't stop
571 * IPython/Magic.py: substantial cleanup. While we can't stop
567 using magics as mixins, due to the existing customizations 'out
572 using magics as mixins, due to the existing customizations 'out
568 there' which rely on the mixin naming conventions, at least I
573 there' which rely on the mixin naming conventions, at least I
569 cleaned out all cross-class name usage. So once we are OK with
574 cleaned out all cross-class name usage. So once we are OK with
570 breaking compatibility, the two systems can be separated.
575 breaking compatibility, the two systems can be separated.
571
576
572 * IPython/Logger.py: major cleanup. This one is NOT a mixin
577 * IPython/Logger.py: major cleanup. This one is NOT a mixin
573 anymore, and the class is a fair bit less hideous as well. New
578 anymore, and the class is a fair bit less hideous as well. New
574 features were also introduced: timestamping of input, and logging
579 features were also introduced: timestamping of input, and logging
575 of output results. These are user-visible with the -t and -o
580 of output results. These are user-visible with the -t and -o
576 options to %logstart. Closes
581 options to %logstart. Closes
577 http://www.scipy.net/roundup/ipython/issue11 and a request by
582 http://www.scipy.net/roundup/ipython/issue11 and a request by
578 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
583 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
579
584
580 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
585 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
581
586
582 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
587 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
583 better hadnle backslashes in paths. See the thread 'More Windows
588 better hadnle backslashes in paths. See the thread 'More Windows
584 questions part 2 - \/ characters revisited' on the iypthon user
589 questions part 2 - \/ characters revisited' on the iypthon user
585 list:
590 list:
586 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
591 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
587
592
588 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
593 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
589
594
590 (InteractiveShell.__init__): change threaded shells to not use the
595 (InteractiveShell.__init__): change threaded shells to not use the
591 ipython crash handler. This was causing more problems than not,
596 ipython crash handler. This was causing more problems than not,
592 as exceptions in the main thread (GUI code, typically) would
597 as exceptions in the main thread (GUI code, typically) would
593 always show up as a 'crash', when they really weren't.
598 always show up as a 'crash', when they really weren't.
594
599
595 The colors and exception mode commands (%colors/%xmode) have been
600 The colors and exception mode commands (%colors/%xmode) have been
596 synchronized to also take this into account, so users can get
601 synchronized to also take this into account, so users can get
597 verbose exceptions for their threaded code as well. I also added
602 verbose exceptions for their threaded code as well. I also added
598 support for activating pdb inside this exception handler as well,
603 support for activating pdb inside this exception handler as well,
599 so now GUI authors can use IPython's enhanced pdb at runtime.
604 so now GUI authors can use IPython's enhanced pdb at runtime.
600
605
601 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
606 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
602 true by default, and add it to the shipped ipythonrc file. Since
607 true by default, and add it to the shipped ipythonrc file. Since
603 this asks the user before proceeding, I think it's OK to make it
608 this asks the user before proceeding, I think it's OK to make it
604 true by default.
609 true by default.
605
610
606 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
611 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
607 of the previous special-casing of input in the eval loop. I think
612 of the previous special-casing of input in the eval loop. I think
608 this is cleaner, as they really are commands and shouldn't have
613 this is cleaner, as they really are commands and shouldn't have
609 a special role in the middle of the core code.
614 a special role in the middle of the core code.
610
615
611 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
616 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
612
617
613 * IPython/iplib.py (edit_syntax_error): added support for
618 * IPython/iplib.py (edit_syntax_error): added support for
614 automatically reopening the editor if the file had a syntax error
619 automatically reopening the editor if the file had a syntax error
615 in it. Thanks to scottt who provided the patch at:
620 in it. Thanks to scottt who provided the patch at:
616 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
621 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
617 version committed).
622 version committed).
618
623
619 * IPython/iplib.py (handle_normal): add suport for multi-line
624 * IPython/iplib.py (handle_normal): add suport for multi-line
620 input with emtpy lines. This fixes
625 input with emtpy lines. This fixes
621 http://www.scipy.net/roundup/ipython/issue43 and a similar
626 http://www.scipy.net/roundup/ipython/issue43 and a similar
622 discussion on the user list.
627 discussion on the user list.
623
628
624 WARNING: a behavior change is necessarily introduced to support
629 WARNING: a behavior change is necessarily introduced to support
625 blank lines: now a single blank line with whitespace does NOT
630 blank lines: now a single blank line with whitespace does NOT
626 break the input loop, which means that when autoindent is on, by
631 break the input loop, which means that when autoindent is on, by
627 default hitting return on the next (indented) line does NOT exit.
632 default hitting return on the next (indented) line does NOT exit.
628
633
629 Instead, to exit a multiline input you can either have:
634 Instead, to exit a multiline input you can either have:
630
635
631 - TWO whitespace lines (just hit return again), or
636 - TWO whitespace lines (just hit return again), or
632 - a single whitespace line of a different length than provided
637 - a single whitespace line of a different length than provided
633 by the autoindent (add or remove a space).
638 by the autoindent (add or remove a space).
634
639
635 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
640 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
636 module to better organize all readline-related functionality.
641 module to better organize all readline-related functionality.
637 I've deleted FlexCompleter and put all completion clases here.
642 I've deleted FlexCompleter and put all completion clases here.
638
643
639 * IPython/iplib.py (raw_input): improve indentation management.
644 * IPython/iplib.py (raw_input): improve indentation management.
640 It is now possible to paste indented code with autoindent on, and
645 It is now possible to paste indented code with autoindent on, and
641 the code is interpreted correctly (though it still looks bad on
646 the code is interpreted correctly (though it still looks bad on
642 screen, due to the line-oriented nature of ipython).
647 screen, due to the line-oriented nature of ipython).
643 (MagicCompleter.complete): change behavior so that a TAB key on an
648 (MagicCompleter.complete): change behavior so that a TAB key on an
644 otherwise empty line actually inserts a tab, instead of completing
649 otherwise empty line actually inserts a tab, instead of completing
645 on the entire global namespace. This makes it easier to use the
650 on the entire global namespace. This makes it easier to use the
646 TAB key for indentation. After a request by Hans Meine
651 TAB key for indentation. After a request by Hans Meine
647 <hans_meine-AT-gmx.net>
652 <hans_meine-AT-gmx.net>
648 (_prefilter): add support so that typing plain 'exit' or 'quit'
653 (_prefilter): add support so that typing plain 'exit' or 'quit'
649 does a sensible thing. Originally I tried to deviate as little as
654 does a sensible thing. Originally I tried to deviate as little as
650 possible from the default python behavior, but even that one may
655 possible from the default python behavior, but even that one may
651 change in this direction (thread on python-dev to that effect).
656 change in this direction (thread on python-dev to that effect).
652 Regardless, ipython should do the right thing even if CPython's
657 Regardless, ipython should do the right thing even if CPython's
653 '>>>' prompt doesn't.
658 '>>>' prompt doesn't.
654 (InteractiveShell): removed subclassing code.InteractiveConsole
659 (InteractiveShell): removed subclassing code.InteractiveConsole
655 class. By now we'd overridden just about all of its methods: I've
660 class. By now we'd overridden just about all of its methods: I've
656 copied the remaining two over, and now ipython is a standalone
661 copied the remaining two over, and now ipython is a standalone
657 class. This will provide a clearer picture for the chainsaw
662 class. This will provide a clearer picture for the chainsaw
658 branch refactoring.
663 branch refactoring.
659
664
660 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
665 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
661
666
662 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
667 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
663 failures for objects which break when dir() is called on them.
668 failures for objects which break when dir() is called on them.
664
669
665 * IPython/FlexCompleter.py (Completer.__init__): Added support for
670 * IPython/FlexCompleter.py (Completer.__init__): Added support for
666 distinct local and global namespaces in the completer API. This
671 distinct local and global namespaces in the completer API. This
667 change allows us top properly handle completion with distinct
672 change allows us top properly handle completion with distinct
668 scopes, including in embedded instances (this had never really
673 scopes, including in embedded instances (this had never really
669 worked correctly).
674 worked correctly).
670
675
671 Note: this introduces a change in the constructor for
676 Note: this introduces a change in the constructor for
672 MagicCompleter, as a new global_namespace parameter is now the
677 MagicCompleter, as a new global_namespace parameter is now the
673 second argument (the others were bumped one position).
678 second argument (the others were bumped one position).
674
679
675 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
680 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
676
681
677 * IPython/iplib.py (embed_mainloop): fix tab-completion in
682 * IPython/iplib.py (embed_mainloop): fix tab-completion in
678 embedded instances (which can be done now thanks to Vivian's
683 embedded instances (which can be done now thanks to Vivian's
679 frame-handling fixes for pdb).
684 frame-handling fixes for pdb).
680 (InteractiveShell.__init__): Fix namespace handling problem in
685 (InteractiveShell.__init__): Fix namespace handling problem in
681 embedded instances. We were overwriting __main__ unconditionally,
686 embedded instances. We were overwriting __main__ unconditionally,
682 and this should only be done for 'full' (non-embedded) IPython;
687 and this should only be done for 'full' (non-embedded) IPython;
683 embedded instances must respect the caller's __main__. Thanks to
688 embedded instances must respect the caller's __main__. Thanks to
684 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
689 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
685
690
686 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
691 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
687
692
688 * setup.py: added download_url to setup(). This registers the
693 * setup.py: added download_url to setup(). This registers the
689 download address at PyPI, which is not only useful to humans
694 download address at PyPI, which is not only useful to humans
690 browsing the site, but is also picked up by setuptools (the Eggs
695 browsing the site, but is also picked up by setuptools (the Eggs
691 machinery). Thanks to Ville and R. Kern for the info/discussion
696 machinery). Thanks to Ville and R. Kern for the info/discussion
692 on this.
697 on this.
693
698
694 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
699 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
695
700
696 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
701 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
697 This brings a lot of nice functionality to the pdb mode, which now
702 This brings a lot of nice functionality to the pdb mode, which now
698 has tab-completion, syntax highlighting, and better stack handling
703 has tab-completion, syntax highlighting, and better stack handling
699 than before. Many thanks to Vivian De Smedt
704 than before. Many thanks to Vivian De Smedt
700 <vivian-AT-vdesmedt.com> for the original patches.
705 <vivian-AT-vdesmedt.com> for the original patches.
701
706
702 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
707 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
703
708
704 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
709 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
705 sequence to consistently accept the banner argument. The
710 sequence to consistently accept the banner argument. The
706 inconsistency was tripping SAGE, thanks to Gary Zablackis
711 inconsistency was tripping SAGE, thanks to Gary Zablackis
707 <gzabl-AT-yahoo.com> for the report.
712 <gzabl-AT-yahoo.com> for the report.
708
713
709 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
714 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
710
715
711 * IPython/iplib.py (InteractiveShell.post_config_initialization):
716 * IPython/iplib.py (InteractiveShell.post_config_initialization):
712 Fix bug where a naked 'alias' call in the ipythonrc file would
717 Fix bug where a naked 'alias' call in the ipythonrc file would
713 cause a crash. Bug reported by Jorgen Stenarson.
718 cause a crash. Bug reported by Jorgen Stenarson.
714
719
715 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
720 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
716
721
717 * IPython/ipmaker.py (make_IPython): cleanups which should improve
722 * IPython/ipmaker.py (make_IPython): cleanups which should improve
718 startup time.
723 startup time.
719
724
720 * IPython/iplib.py (runcode): my globals 'fix' for embedded
725 * IPython/iplib.py (runcode): my globals 'fix' for embedded
721 instances had introduced a bug with globals in normal code. Now
726 instances had introduced a bug with globals in normal code. Now
722 it's working in all cases.
727 it's working in all cases.
723
728
724 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
729 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
725 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
730 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
726 has been introduced to set the default case sensitivity of the
731 has been introduced to set the default case sensitivity of the
727 searches. Users can still select either mode at runtime on a
732 searches. Users can still select either mode at runtime on a
728 per-search basis.
733 per-search basis.
729
734
730 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
735 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
731
736
732 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
737 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
733 attributes in wildcard searches for subclasses. Modified version
738 attributes in wildcard searches for subclasses. Modified version
734 of a patch by Jorgen.
739 of a patch by Jorgen.
735
740
736 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
741 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
737
742
738 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
743 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
739 embedded instances. I added a user_global_ns attribute to the
744 embedded instances. I added a user_global_ns attribute to the
740 InteractiveShell class to handle this.
745 InteractiveShell class to handle this.
741
746
742 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
747 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
743
748
744 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
749 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
745 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
750 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
746 (reported under win32, but may happen also in other platforms).
751 (reported under win32, but may happen also in other platforms).
747 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
752 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
748
753
749 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
754 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
750
755
751 * IPython/Magic.py (magic_psearch): new support for wildcard
756 * IPython/Magic.py (magic_psearch): new support for wildcard
752 patterns. Now, typing ?a*b will list all names which begin with a
757 patterns. Now, typing ?a*b will list all names which begin with a
753 and end in b, for example. The %psearch magic has full
758 and end in b, for example. The %psearch magic has full
754 docstrings. Many thanks to JΓΆrgen Stenarson
759 docstrings. Many thanks to JΓΆrgen Stenarson
755 <jorgen.stenarson-AT-bostream.nu>, author of the patches
760 <jorgen.stenarson-AT-bostream.nu>, author of the patches
756 implementing this functionality.
761 implementing this functionality.
757
762
758 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
763 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
759
764
760 * Manual: fixed long-standing annoyance of double-dashes (as in
765 * Manual: fixed long-standing annoyance of double-dashes (as in
761 --prefix=~, for example) being stripped in the HTML version. This
766 --prefix=~, for example) being stripped in the HTML version. This
762 is a latex2html bug, but a workaround was provided. Many thanks
767 is a latex2html bug, but a workaround was provided. Many thanks
763 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
768 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
764 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
769 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
765 rolling. This seemingly small issue had tripped a number of users
770 rolling. This seemingly small issue had tripped a number of users
766 when first installing, so I'm glad to see it gone.
771 when first installing, so I'm glad to see it gone.
767
772
768 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
773 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
769
774
770 * IPython/Extensions/numeric_formats.py: fix missing import,
775 * IPython/Extensions/numeric_formats.py: fix missing import,
771 reported by Stephen Walton.
776 reported by Stephen Walton.
772
777
773 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
778 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
774
779
775 * IPython/demo.py: finish demo module, fully documented now.
780 * IPython/demo.py: finish demo module, fully documented now.
776
781
777 * IPython/genutils.py (file_read): simple little utility to read a
782 * IPython/genutils.py (file_read): simple little utility to read a
778 file and ensure it's closed afterwards.
783 file and ensure it's closed afterwards.
779
784
780 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
785 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
781
786
782 * IPython/demo.py (Demo.__init__): added support for individually
787 * IPython/demo.py (Demo.__init__): added support for individually
783 tagging blocks for automatic execution.
788 tagging blocks for automatic execution.
784
789
785 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
790 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
786 syntax-highlighted python sources, requested by John.
791 syntax-highlighted python sources, requested by John.
787
792
788 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
793 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
789
794
790 * IPython/demo.py (Demo.again): fix bug where again() blocks after
795 * IPython/demo.py (Demo.again): fix bug where again() blocks after
791 finishing.
796 finishing.
792
797
793 * IPython/genutils.py (shlex_split): moved from Magic to here,
798 * IPython/genutils.py (shlex_split): moved from Magic to here,
794 where all 2.2 compatibility stuff lives. I needed it for demo.py.
799 where all 2.2 compatibility stuff lives. I needed it for demo.py.
795
800
796 * IPython/demo.py (Demo.__init__): added support for silent
801 * IPython/demo.py (Demo.__init__): added support for silent
797 blocks, improved marks as regexps, docstrings written.
802 blocks, improved marks as regexps, docstrings written.
798 (Demo.__init__): better docstring, added support for sys.argv.
803 (Demo.__init__): better docstring, added support for sys.argv.
799
804
800 * IPython/genutils.py (marquee): little utility used by the demo
805 * IPython/genutils.py (marquee): little utility used by the demo
801 code, handy in general.
806 code, handy in general.
802
807
803 * IPython/demo.py (Demo.__init__): new class for interactive
808 * IPython/demo.py (Demo.__init__): new class for interactive
804 demos. Not documented yet, I just wrote it in a hurry for
809 demos. Not documented yet, I just wrote it in a hurry for
805 scipy'05. Will docstring later.
810 scipy'05. Will docstring later.
806
811
807 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
812 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
808
813
809 * IPython/Shell.py (sigint_handler): Drastic simplification which
814 * IPython/Shell.py (sigint_handler): Drastic simplification which
810 also seems to make Ctrl-C work correctly across threads! This is
815 also seems to make Ctrl-C work correctly across threads! This is
811 so simple, that I can't beleive I'd missed it before. Needs more
816 so simple, that I can't beleive I'd missed it before. Needs more
812 testing, though.
817 testing, though.
813 (KBINT): Never mind, revert changes. I'm sure I'd tried something
818 (KBINT): Never mind, revert changes. I'm sure I'd tried something
814 like this before...
819 like this before...
815
820
816 * IPython/genutils.py (get_home_dir): add protection against
821 * IPython/genutils.py (get_home_dir): add protection against
817 non-dirs in win32 registry.
822 non-dirs in win32 registry.
818
823
819 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
824 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
820 bug where dict was mutated while iterating (pysh crash).
825 bug where dict was mutated while iterating (pysh crash).
821
826
822 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
827 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
823
828
824 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
829 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
825 spurious newlines added by this routine. After a report by
830 spurious newlines added by this routine. After a report by
826 F. Mantegazza.
831 F. Mantegazza.
827
832
828 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
833 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
829
834
830 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
835 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
831 calls. These were a leftover from the GTK 1.x days, and can cause
836 calls. These were a leftover from the GTK 1.x days, and can cause
832 problems in certain cases (after a report by John Hunter).
837 problems in certain cases (after a report by John Hunter).
833
838
834 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
839 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
835 os.getcwd() fails at init time. Thanks to patch from David Remahl
840 os.getcwd() fails at init time. Thanks to patch from David Remahl
836 <chmod007-AT-mac.com>.
841 <chmod007-AT-mac.com>.
837 (InteractiveShell.__init__): prevent certain special magics from
842 (InteractiveShell.__init__): prevent certain special magics from
838 being shadowed by aliases. Closes
843 being shadowed by aliases. Closes
839 http://www.scipy.net/roundup/ipython/issue41.
844 http://www.scipy.net/roundup/ipython/issue41.
840
845
841 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
846 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
842
847
843 * IPython/iplib.py (InteractiveShell.complete): Added new
848 * IPython/iplib.py (InteractiveShell.complete): Added new
844 top-level completion method to expose the completion mechanism
849 top-level completion method to expose the completion mechanism
845 beyond readline-based environments.
850 beyond readline-based environments.
846
851
847 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
852 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
848
853
849 * tools/ipsvnc (svnversion): fix svnversion capture.
854 * tools/ipsvnc (svnversion): fix svnversion capture.
850
855
851 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
856 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
852 attribute to self, which was missing. Before, it was set by a
857 attribute to self, which was missing. Before, it was set by a
853 routine which in certain cases wasn't being called, so the
858 routine which in certain cases wasn't being called, so the
854 instance could end up missing the attribute. This caused a crash.
859 instance could end up missing the attribute. This caused a crash.
855 Closes http://www.scipy.net/roundup/ipython/issue40.
860 Closes http://www.scipy.net/roundup/ipython/issue40.
856
861
857 2005-08-16 Fernando Perez <fperez@colorado.edu>
862 2005-08-16 Fernando Perez <fperez@colorado.edu>
858
863
859 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
864 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
860 contains non-string attribute. Closes
865 contains non-string attribute. Closes
861 http://www.scipy.net/roundup/ipython/issue38.
866 http://www.scipy.net/roundup/ipython/issue38.
862
867
863 2005-08-14 Fernando Perez <fperez@colorado.edu>
868 2005-08-14 Fernando Perez <fperez@colorado.edu>
864
869
865 * tools/ipsvnc: Minor improvements, to add changeset info.
870 * tools/ipsvnc: Minor improvements, to add changeset info.
866
871
867 2005-08-12 Fernando Perez <fperez@colorado.edu>
872 2005-08-12 Fernando Perez <fperez@colorado.edu>
868
873
869 * IPython/iplib.py (runsource): remove self.code_to_run_src
874 * IPython/iplib.py (runsource): remove self.code_to_run_src
870 attribute. I realized this is nothing more than
875 attribute. I realized this is nothing more than
871 '\n'.join(self.buffer), and having the same data in two different
876 '\n'.join(self.buffer), and having the same data in two different
872 places is just asking for synchronization bugs. This may impact
877 places is just asking for synchronization bugs. This may impact
873 people who have custom exception handlers, so I need to warn
878 people who have custom exception handlers, so I need to warn
874 ipython-dev about it (F. Mantegazza may use them).
879 ipython-dev about it (F. Mantegazza may use them).
875
880
876 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
881 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
877
882
878 * IPython/genutils.py: fix 2.2 compatibility (generators)
883 * IPython/genutils.py: fix 2.2 compatibility (generators)
879
884
880 2005-07-18 Fernando Perez <fperez@colorado.edu>
885 2005-07-18 Fernando Perez <fperez@colorado.edu>
881
886
882 * IPython/genutils.py (get_home_dir): fix to help users with
887 * IPython/genutils.py (get_home_dir): fix to help users with
883 invalid $HOME under win32.
888 invalid $HOME under win32.
884
889
885 2005-07-17 Fernando Perez <fperez@colorado.edu>
890 2005-07-17 Fernando Perez <fperez@colorado.edu>
886
891
887 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
892 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
888 some old hacks and clean up a bit other routines; code should be
893 some old hacks and clean up a bit other routines; code should be
889 simpler and a bit faster.
894 simpler and a bit faster.
890
895
891 * IPython/iplib.py (interact): removed some last-resort attempts
896 * IPython/iplib.py (interact): removed some last-resort attempts
892 to survive broken stdout/stderr. That code was only making it
897 to survive broken stdout/stderr. That code was only making it
893 harder to abstract out the i/o (necessary for gui integration),
898 harder to abstract out the i/o (necessary for gui integration),
894 and the crashes it could prevent were extremely rare in practice
899 and the crashes it could prevent were extremely rare in practice
895 (besides being fully user-induced in a pretty violent manner).
900 (besides being fully user-induced in a pretty violent manner).
896
901
897 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
902 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
898 Nothing major yet, but the code is simpler to read; this should
903 Nothing major yet, but the code is simpler to read; this should
899 make it easier to do more serious modifications in the future.
904 make it easier to do more serious modifications in the future.
900
905
901 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
906 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
902 which broke in .15 (thanks to a report by Ville).
907 which broke in .15 (thanks to a report by Ville).
903
908
904 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
909 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
905 be quite correct, I know next to nothing about unicode). This
910 be quite correct, I know next to nothing about unicode). This
906 will allow unicode strings to be used in prompts, amongst other
911 will allow unicode strings to be used in prompts, amongst other
907 cases. It also will prevent ipython from crashing when unicode
912 cases. It also will prevent ipython from crashing when unicode
908 shows up unexpectedly in many places. If ascii encoding fails, we
913 shows up unexpectedly in many places. If ascii encoding fails, we
909 assume utf_8. Currently the encoding is not a user-visible
914 assume utf_8. Currently the encoding is not a user-visible
910 setting, though it could be made so if there is demand for it.
915 setting, though it could be made so if there is demand for it.
911
916
912 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
917 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
913
918
914 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
919 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
915
920
916 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
921 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
917
922
918 * IPython/genutils.py: Add 2.2 compatibility here, so all other
923 * IPython/genutils.py: Add 2.2 compatibility here, so all other
919 code can work transparently for 2.2/2.3.
924 code can work transparently for 2.2/2.3.
920
925
921 2005-07-16 Fernando Perez <fperez@colorado.edu>
926 2005-07-16 Fernando Perez <fperez@colorado.edu>
922
927
923 * IPython/ultraTB.py (ExceptionColors): Make a global variable
928 * IPython/ultraTB.py (ExceptionColors): Make a global variable
924 out of the color scheme table used for coloring exception
929 out of the color scheme table used for coloring exception
925 tracebacks. This allows user code to add new schemes at runtime.
930 tracebacks. This allows user code to add new schemes at runtime.
926 This is a minimally modified version of the patch at
931 This is a minimally modified version of the patch at
927 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
932 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
928 for the contribution.
933 for the contribution.
929
934
930 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
935 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
931 slightly modified version of the patch in
936 slightly modified version of the patch in
932 http://www.scipy.net/roundup/ipython/issue34, which also allows me
937 http://www.scipy.net/roundup/ipython/issue34, which also allows me
933 to remove the previous try/except solution (which was costlier).
938 to remove the previous try/except solution (which was costlier).
934 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
939 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
935
940
936 2005-06-08 Fernando Perez <fperez@colorado.edu>
941 2005-06-08 Fernando Perez <fperez@colorado.edu>
937
942
938 * IPython/iplib.py (write/write_err): Add methods to abstract all
943 * IPython/iplib.py (write/write_err): Add methods to abstract all
939 I/O a bit more.
944 I/O a bit more.
940
945
941 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
946 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
942 warning, reported by Aric Hagberg, fix by JD Hunter.
947 warning, reported by Aric Hagberg, fix by JD Hunter.
943
948
944 2005-06-02 *** Released version 0.6.15
949 2005-06-02 *** Released version 0.6.15
945
950
946 2005-06-01 Fernando Perez <fperez@colorado.edu>
951 2005-06-01 Fernando Perez <fperez@colorado.edu>
947
952
948 * IPython/iplib.py (MagicCompleter.file_matches): Fix
953 * IPython/iplib.py (MagicCompleter.file_matches): Fix
949 tab-completion of filenames within open-quoted strings. Note that
954 tab-completion of filenames within open-quoted strings. Note that
950 this requires that in ~/.ipython/ipythonrc, users change the
955 this requires that in ~/.ipython/ipythonrc, users change the
951 readline delimiters configuration to read:
956 readline delimiters configuration to read:
952
957
953 readline_remove_delims -/~
958 readline_remove_delims -/~
954
959
955
960
956 2005-05-31 *** Released version 0.6.14
961 2005-05-31 *** Released version 0.6.14
957
962
958 2005-05-29 Fernando Perez <fperez@colorado.edu>
963 2005-05-29 Fernando Perez <fperez@colorado.edu>
959
964
960 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
965 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
961 with files not on the filesystem. Reported by Eliyahu Sandler
966 with files not on the filesystem. Reported by Eliyahu Sandler
962 <eli@gondolin.net>
967 <eli@gondolin.net>
963
968
964 2005-05-22 Fernando Perez <fperez@colorado.edu>
969 2005-05-22 Fernando Perez <fperez@colorado.edu>
965
970
966 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
971 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
967 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
972 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
968
973
969 2005-05-19 Fernando Perez <fperez@colorado.edu>
974 2005-05-19 Fernando Perez <fperez@colorado.edu>
970
975
971 * IPython/iplib.py (safe_execfile): close a file which could be
976 * IPython/iplib.py (safe_execfile): close a file which could be
972 left open (causing problems in win32, which locks open files).
977 left open (causing problems in win32, which locks open files).
973 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
978 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
974
979
975 2005-05-18 Fernando Perez <fperez@colorado.edu>
980 2005-05-18 Fernando Perez <fperez@colorado.edu>
976
981
977 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
982 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
978 keyword arguments correctly to safe_execfile().
983 keyword arguments correctly to safe_execfile().
979
984
980 2005-05-13 Fernando Perez <fperez@colorado.edu>
985 2005-05-13 Fernando Perez <fperez@colorado.edu>
981
986
982 * ipython.1: Added info about Qt to manpage, and threads warning
987 * ipython.1: Added info about Qt to manpage, and threads warning
983 to usage page (invoked with --help).
988 to usage page (invoked with --help).
984
989
985 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
990 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
986 new matcher (it goes at the end of the priority list) to do
991 new matcher (it goes at the end of the priority list) to do
987 tab-completion on named function arguments. Submitted by George
992 tab-completion on named function arguments. Submitted by George
988 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
993 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
989 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
994 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
990 for more details.
995 for more details.
991
996
992 * IPython/Magic.py (magic_run): Added new -e flag to ignore
997 * IPython/Magic.py (magic_run): Added new -e flag to ignore
993 SystemExit exceptions in the script being run. Thanks to a report
998 SystemExit exceptions in the script being run. Thanks to a report
994 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
999 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
995 producing very annoying behavior when running unit tests.
1000 producing very annoying behavior when running unit tests.
996
1001
997 2005-05-12 Fernando Perez <fperez@colorado.edu>
1002 2005-05-12 Fernando Perez <fperez@colorado.edu>
998
1003
999 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1004 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1000 which I'd broken (again) due to a changed regexp. In the process,
1005 which I'd broken (again) due to a changed regexp. In the process,
1001 added ';' as an escape to auto-quote the whole line without
1006 added ';' as an escape to auto-quote the whole line without
1002 splitting its arguments. Thanks to a report by Jerry McRae
1007 splitting its arguments. Thanks to a report by Jerry McRae
1003 <qrs0xyc02-AT-sneakemail.com>.
1008 <qrs0xyc02-AT-sneakemail.com>.
1004
1009
1005 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1010 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1006 possible crashes caused by a TokenError. Reported by Ed Schofield
1011 possible crashes caused by a TokenError. Reported by Ed Schofield
1007 <schofield-AT-ftw.at>.
1012 <schofield-AT-ftw.at>.
1008
1013
1009 2005-05-06 Fernando Perez <fperez@colorado.edu>
1014 2005-05-06 Fernando Perez <fperez@colorado.edu>
1010
1015
1011 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1016 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1012
1017
1013 2005-04-29 Fernando Perez <fperez@colorado.edu>
1018 2005-04-29 Fernando Perez <fperez@colorado.edu>
1014
1019
1015 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1020 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1016 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1021 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1017 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1022 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1018 which provides support for Qt interactive usage (similar to the
1023 which provides support for Qt interactive usage (similar to the
1019 existing one for WX and GTK). This had been often requested.
1024 existing one for WX and GTK). This had been often requested.
1020
1025
1021 2005-04-14 *** Released version 0.6.13
1026 2005-04-14 *** Released version 0.6.13
1022
1027
1023 2005-04-08 Fernando Perez <fperez@colorado.edu>
1028 2005-04-08 Fernando Perez <fperez@colorado.edu>
1024
1029
1025 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1030 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1026 from _ofind, which gets called on almost every input line. Now,
1031 from _ofind, which gets called on almost every input line. Now,
1027 we only try to get docstrings if they are actually going to be
1032 we only try to get docstrings if they are actually going to be
1028 used (the overhead of fetching unnecessary docstrings can be
1033 used (the overhead of fetching unnecessary docstrings can be
1029 noticeable for certain objects, such as Pyro proxies).
1034 noticeable for certain objects, such as Pyro proxies).
1030
1035
1031 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1036 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1032 for completers. For some reason I had been passing them the state
1037 for completers. For some reason I had been passing them the state
1033 variable, which completers never actually need, and was in
1038 variable, which completers never actually need, and was in
1034 conflict with the rlcompleter API. Custom completers ONLY need to
1039 conflict with the rlcompleter API. Custom completers ONLY need to
1035 take the text parameter.
1040 take the text parameter.
1036
1041
1037 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1042 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1038 work correctly in pysh. I've also moved all the logic which used
1043 work correctly in pysh. I've also moved all the logic which used
1039 to be in pysh.py here, which will prevent problems with future
1044 to be in pysh.py here, which will prevent problems with future
1040 upgrades. However, this time I must warn users to update their
1045 upgrades. However, this time I must warn users to update their
1041 pysh profile to include the line
1046 pysh profile to include the line
1042
1047
1043 import_all IPython.Extensions.InterpreterExec
1048 import_all IPython.Extensions.InterpreterExec
1044
1049
1045 because otherwise things won't work for them. They MUST also
1050 because otherwise things won't work for them. They MUST also
1046 delete pysh.py and the line
1051 delete pysh.py and the line
1047
1052
1048 execfile pysh.py
1053 execfile pysh.py
1049
1054
1050 from their ipythonrc-pysh.
1055 from their ipythonrc-pysh.
1051
1056
1052 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1057 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1053 robust in the face of objects whose dir() returns non-strings
1058 robust in the face of objects whose dir() returns non-strings
1054 (which it shouldn't, but some broken libs like ITK do). Thanks to
1059 (which it shouldn't, but some broken libs like ITK do). Thanks to
1055 a patch by John Hunter (implemented differently, though). Also
1060 a patch by John Hunter (implemented differently, though). Also
1056 minor improvements by using .extend instead of + on lists.
1061 minor improvements by using .extend instead of + on lists.
1057
1062
1058 * pysh.py:
1063 * pysh.py:
1059
1064
1060 2005-04-06 Fernando Perez <fperez@colorado.edu>
1065 2005-04-06 Fernando Perez <fperez@colorado.edu>
1061
1066
1062 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1067 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1063 by default, so that all users benefit from it. Those who don't
1068 by default, so that all users benefit from it. Those who don't
1064 want it can still turn it off.
1069 want it can still turn it off.
1065
1070
1066 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1071 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1067 config file, I'd forgotten about this, so users were getting it
1072 config file, I'd forgotten about this, so users were getting it
1068 off by default.
1073 off by default.
1069
1074
1070 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1075 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1071 consistency. Now magics can be called in multiline statements,
1076 consistency. Now magics can be called in multiline statements,
1072 and python variables can be expanded in magic calls via $var.
1077 and python variables can be expanded in magic calls via $var.
1073 This makes the magic system behave just like aliases or !system
1078 This makes the magic system behave just like aliases or !system
1074 calls.
1079 calls.
1075
1080
1076 2005-03-28 Fernando Perez <fperez@colorado.edu>
1081 2005-03-28 Fernando Perez <fperez@colorado.edu>
1077
1082
1078 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1083 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1079 expensive string additions for building command. Add support for
1084 expensive string additions for building command. Add support for
1080 trailing ';' when autocall is used.
1085 trailing ';' when autocall is used.
1081
1086
1082 2005-03-26 Fernando Perez <fperez@colorado.edu>
1087 2005-03-26 Fernando Perez <fperez@colorado.edu>
1083
1088
1084 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1089 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1085 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1090 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1086 ipython.el robust against prompts with any number of spaces
1091 ipython.el robust against prompts with any number of spaces
1087 (including 0) after the ':' character.
1092 (including 0) after the ':' character.
1088
1093
1089 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1094 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1090 continuation prompt, which misled users to think the line was
1095 continuation prompt, which misled users to think the line was
1091 already indented. Closes debian Bug#300847, reported to me by
1096 already indented. Closes debian Bug#300847, reported to me by
1092 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1097 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1093
1098
1094 2005-03-23 Fernando Perez <fperez@colorado.edu>
1099 2005-03-23 Fernando Perez <fperez@colorado.edu>
1095
1100
1096 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1101 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1097 properly aligned if they have embedded newlines.
1102 properly aligned if they have embedded newlines.
1098
1103
1099 * IPython/iplib.py (runlines): Add a public method to expose
1104 * IPython/iplib.py (runlines): Add a public method to expose
1100 IPython's code execution machinery, so that users can run strings
1105 IPython's code execution machinery, so that users can run strings
1101 as if they had been typed at the prompt interactively.
1106 as if they had been typed at the prompt interactively.
1102 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1107 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1103 methods which can call the system shell, but with python variable
1108 methods which can call the system shell, but with python variable
1104 expansion. The three such methods are: __IPYTHON__.system,
1109 expansion. The three such methods are: __IPYTHON__.system,
1105 .getoutput and .getoutputerror. These need to be documented in a
1110 .getoutput and .getoutputerror. These need to be documented in a
1106 'public API' section (to be written) of the manual.
1111 'public API' section (to be written) of the manual.
1107
1112
1108 2005-03-20 Fernando Perez <fperez@colorado.edu>
1113 2005-03-20 Fernando Perez <fperez@colorado.edu>
1109
1114
1110 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1115 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1111 for custom exception handling. This is quite powerful, and it
1116 for custom exception handling. This is quite powerful, and it
1112 allows for user-installable exception handlers which can trap
1117 allows for user-installable exception handlers which can trap
1113 custom exceptions at runtime and treat them separately from
1118 custom exceptions at runtime and treat them separately from
1114 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1119 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1115 Mantegazza <mantegazza-AT-ill.fr>.
1120 Mantegazza <mantegazza-AT-ill.fr>.
1116 (InteractiveShell.set_custom_completer): public API function to
1121 (InteractiveShell.set_custom_completer): public API function to
1117 add new completers at runtime.
1122 add new completers at runtime.
1118
1123
1119 2005-03-19 Fernando Perez <fperez@colorado.edu>
1124 2005-03-19 Fernando Perez <fperez@colorado.edu>
1120
1125
1121 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1126 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1122 allow objects which provide their docstrings via non-standard
1127 allow objects which provide their docstrings via non-standard
1123 mechanisms (like Pyro proxies) to still be inspected by ipython's
1128 mechanisms (like Pyro proxies) to still be inspected by ipython's
1124 ? system.
1129 ? system.
1125
1130
1126 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1131 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1127 automatic capture system. I tried quite hard to make it work
1132 automatic capture system. I tried quite hard to make it work
1128 reliably, and simply failed. I tried many combinations with the
1133 reliably, and simply failed. I tried many combinations with the
1129 subprocess module, but eventually nothing worked in all needed
1134 subprocess module, but eventually nothing worked in all needed
1130 cases (not blocking stdin for the child, duplicating stdout
1135 cases (not blocking stdin for the child, duplicating stdout
1131 without blocking, etc). The new %sc/%sx still do capture to these
1136 without blocking, etc). The new %sc/%sx still do capture to these
1132 magical list/string objects which make shell use much more
1137 magical list/string objects which make shell use much more
1133 conveninent, so not all is lost.
1138 conveninent, so not all is lost.
1134
1139
1135 XXX - FIX MANUAL for the change above!
1140 XXX - FIX MANUAL for the change above!
1136
1141
1137 (runsource): I copied code.py's runsource() into ipython to modify
1142 (runsource): I copied code.py's runsource() into ipython to modify
1138 it a bit. Now the code object and source to be executed are
1143 it a bit. Now the code object and source to be executed are
1139 stored in ipython. This makes this info accessible to third-party
1144 stored in ipython. This makes this info accessible to third-party
1140 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1145 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1141 Mantegazza <mantegazza-AT-ill.fr>.
1146 Mantegazza <mantegazza-AT-ill.fr>.
1142
1147
1143 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1148 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1144 history-search via readline (like C-p/C-n). I'd wanted this for a
1149 history-search via readline (like C-p/C-n). I'd wanted this for a
1145 long time, but only recently found out how to do it. For users
1150 long time, but only recently found out how to do it. For users
1146 who already have their ipythonrc files made and want this, just
1151 who already have their ipythonrc files made and want this, just
1147 add:
1152 add:
1148
1153
1149 readline_parse_and_bind "\e[A": history-search-backward
1154 readline_parse_and_bind "\e[A": history-search-backward
1150 readline_parse_and_bind "\e[B": history-search-forward
1155 readline_parse_and_bind "\e[B": history-search-forward
1151
1156
1152 2005-03-18 Fernando Perez <fperez@colorado.edu>
1157 2005-03-18 Fernando Perez <fperez@colorado.edu>
1153
1158
1154 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1159 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1155 LSString and SList classes which allow transparent conversions
1160 LSString and SList classes which allow transparent conversions
1156 between list mode and whitespace-separated string.
1161 between list mode and whitespace-separated string.
1157 (magic_r): Fix recursion problem in %r.
1162 (magic_r): Fix recursion problem in %r.
1158
1163
1159 * IPython/genutils.py (LSString): New class to be used for
1164 * IPython/genutils.py (LSString): New class to be used for
1160 automatic storage of the results of all alias/system calls in _o
1165 automatic storage of the results of all alias/system calls in _o
1161 and _e (stdout/err). These provide a .l/.list attribute which
1166 and _e (stdout/err). These provide a .l/.list attribute which
1162 does automatic splitting on newlines. This means that for most
1167 does automatic splitting on newlines. This means that for most
1163 uses, you'll never need to do capturing of output with %sc/%sx
1168 uses, you'll never need to do capturing of output with %sc/%sx
1164 anymore, since ipython keeps this always done for you. Note that
1169 anymore, since ipython keeps this always done for you. Note that
1165 only the LAST results are stored, the _o/e variables are
1170 only the LAST results are stored, the _o/e variables are
1166 overwritten on each call. If you need to save their contents
1171 overwritten on each call. If you need to save their contents
1167 further, simply bind them to any other name.
1172 further, simply bind them to any other name.
1168
1173
1169 2005-03-17 Fernando Perez <fperez@colorado.edu>
1174 2005-03-17 Fernando Perez <fperez@colorado.edu>
1170
1175
1171 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1176 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1172 prompt namespace handling.
1177 prompt namespace handling.
1173
1178
1174 2005-03-16 Fernando Perez <fperez@colorado.edu>
1179 2005-03-16 Fernando Perez <fperez@colorado.edu>
1175
1180
1176 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1181 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1177 classic prompts to be '>>> ' (final space was missing, and it
1182 classic prompts to be '>>> ' (final space was missing, and it
1178 trips the emacs python mode).
1183 trips the emacs python mode).
1179 (BasePrompt.__str__): Added safe support for dynamic prompt
1184 (BasePrompt.__str__): Added safe support for dynamic prompt
1180 strings. Now you can set your prompt string to be '$x', and the
1185 strings. Now you can set your prompt string to be '$x', and the
1181 value of x will be printed from your interactive namespace. The
1186 value of x will be printed from your interactive namespace. The
1182 interpolation syntax includes the full Itpl support, so
1187 interpolation syntax includes the full Itpl support, so
1183 ${foo()+x+bar()} is a valid prompt string now, and the function
1188 ${foo()+x+bar()} is a valid prompt string now, and the function
1184 calls will be made at runtime.
1189 calls will be made at runtime.
1185
1190
1186 2005-03-15 Fernando Perez <fperez@colorado.edu>
1191 2005-03-15 Fernando Perez <fperez@colorado.edu>
1187
1192
1188 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1193 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1189 avoid name clashes in pylab. %hist still works, it just forwards
1194 avoid name clashes in pylab. %hist still works, it just forwards
1190 the call to %history.
1195 the call to %history.
1191
1196
1192 2005-03-02 *** Released version 0.6.12
1197 2005-03-02 *** Released version 0.6.12
1193
1198
1194 2005-03-02 Fernando Perez <fperez@colorado.edu>
1199 2005-03-02 Fernando Perez <fperez@colorado.edu>
1195
1200
1196 * IPython/iplib.py (handle_magic): log magic calls properly as
1201 * IPython/iplib.py (handle_magic): log magic calls properly as
1197 ipmagic() function calls.
1202 ipmagic() function calls.
1198
1203
1199 * IPython/Magic.py (magic_time): Improved %time to support
1204 * IPython/Magic.py (magic_time): Improved %time to support
1200 statements and provide wall-clock as well as CPU time.
1205 statements and provide wall-clock as well as CPU time.
1201
1206
1202 2005-02-27 Fernando Perez <fperez@colorado.edu>
1207 2005-02-27 Fernando Perez <fperez@colorado.edu>
1203
1208
1204 * IPython/hooks.py: New hooks module, to expose user-modifiable
1209 * IPython/hooks.py: New hooks module, to expose user-modifiable
1205 IPython functionality in a clean manner. For now only the editor
1210 IPython functionality in a clean manner. For now only the editor
1206 hook is actually written, and other thigns which I intend to turn
1211 hook is actually written, and other thigns which I intend to turn
1207 into proper hooks aren't yet there. The display and prefilter
1212 into proper hooks aren't yet there. The display and prefilter
1208 stuff, for example, should be hooks. But at least now the
1213 stuff, for example, should be hooks. But at least now the
1209 framework is in place, and the rest can be moved here with more
1214 framework is in place, and the rest can be moved here with more
1210 time later. IPython had had a .hooks variable for a long time for
1215 time later. IPython had had a .hooks variable for a long time for
1211 this purpose, but I'd never actually used it for anything.
1216 this purpose, but I'd never actually used it for anything.
1212
1217
1213 2005-02-26 Fernando Perez <fperez@colorado.edu>
1218 2005-02-26 Fernando Perez <fperez@colorado.edu>
1214
1219
1215 * IPython/ipmaker.py (make_IPython): make the default ipython
1220 * IPython/ipmaker.py (make_IPython): make the default ipython
1216 directory be called _ipython under win32, to follow more the
1221 directory be called _ipython under win32, to follow more the
1217 naming peculiarities of that platform (where buggy software like
1222 naming peculiarities of that platform (where buggy software like
1218 Visual Sourcesafe breaks with .named directories). Reported by
1223 Visual Sourcesafe breaks with .named directories). Reported by
1219 Ville Vainio.
1224 Ville Vainio.
1220
1225
1221 2005-02-23 Fernando Perez <fperez@colorado.edu>
1226 2005-02-23 Fernando Perez <fperez@colorado.edu>
1222
1227
1223 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1228 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1224 auto_aliases for win32 which were causing problems. Users can
1229 auto_aliases for win32 which were causing problems. Users can
1225 define the ones they personally like.
1230 define the ones they personally like.
1226
1231
1227 2005-02-21 Fernando Perez <fperez@colorado.edu>
1232 2005-02-21 Fernando Perez <fperez@colorado.edu>
1228
1233
1229 * IPython/Magic.py (magic_time): new magic to time execution of
1234 * IPython/Magic.py (magic_time): new magic to time execution of
1230 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1235 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1231
1236
1232 2005-02-19 Fernando Perez <fperez@colorado.edu>
1237 2005-02-19 Fernando Perez <fperez@colorado.edu>
1233
1238
1234 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1239 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1235 into keys (for prompts, for example).
1240 into keys (for prompts, for example).
1236
1241
1237 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1242 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1238 prompts in case users want them. This introduces a small behavior
1243 prompts in case users want them. This introduces a small behavior
1239 change: ipython does not automatically add a space to all prompts
1244 change: ipython does not automatically add a space to all prompts
1240 anymore. To get the old prompts with a space, users should add it
1245 anymore. To get the old prompts with a space, users should add it
1241 manually to their ipythonrc file, so for example prompt_in1 should
1246 manually to their ipythonrc file, so for example prompt_in1 should
1242 now read 'In [\#]: ' instead of 'In [\#]:'.
1247 now read 'In [\#]: ' instead of 'In [\#]:'.
1243 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1248 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1244 file) to control left-padding of secondary prompts.
1249 file) to control left-padding of secondary prompts.
1245
1250
1246 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1251 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1247 the profiler can't be imported. Fix for Debian, which removed
1252 the profiler can't be imported. Fix for Debian, which removed
1248 profile.py because of License issues. I applied a slightly
1253 profile.py because of License issues. I applied a slightly
1249 modified version of the original Debian patch at
1254 modified version of the original Debian patch at
1250 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1255 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1251
1256
1252 2005-02-17 Fernando Perez <fperez@colorado.edu>
1257 2005-02-17 Fernando Perez <fperez@colorado.edu>
1253
1258
1254 * IPython/genutils.py (native_line_ends): Fix bug which would
1259 * IPython/genutils.py (native_line_ends): Fix bug which would
1255 cause improper line-ends under win32 b/c I was not opening files
1260 cause improper line-ends under win32 b/c I was not opening files
1256 in binary mode. Bug report and fix thanks to Ville.
1261 in binary mode. Bug report and fix thanks to Ville.
1257
1262
1258 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1263 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1259 trying to catch spurious foo[1] autocalls. My fix actually broke
1264 trying to catch spurious foo[1] autocalls. My fix actually broke
1260 ',/' autoquote/call with explicit escape (bad regexp).
1265 ',/' autoquote/call with explicit escape (bad regexp).
1261
1266
1262 2005-02-15 *** Released version 0.6.11
1267 2005-02-15 *** Released version 0.6.11
1263
1268
1264 2005-02-14 Fernando Perez <fperez@colorado.edu>
1269 2005-02-14 Fernando Perez <fperez@colorado.edu>
1265
1270
1266 * IPython/background_jobs.py: New background job management
1271 * IPython/background_jobs.py: New background job management
1267 subsystem. This is implemented via a new set of classes, and
1272 subsystem. This is implemented via a new set of classes, and
1268 IPython now provides a builtin 'jobs' object for background job
1273 IPython now provides a builtin 'jobs' object for background job
1269 execution. A convenience %bg magic serves as a lightweight
1274 execution. A convenience %bg magic serves as a lightweight
1270 frontend for starting the more common type of calls. This was
1275 frontend for starting the more common type of calls. This was
1271 inspired by discussions with B. Granger and the BackgroundCommand
1276 inspired by discussions with B. Granger and the BackgroundCommand
1272 class described in the book Python Scripting for Computational
1277 class described in the book Python Scripting for Computational
1273 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1278 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1274 (although ultimately no code from this text was used, as IPython's
1279 (although ultimately no code from this text was used, as IPython's
1275 system is a separate implementation).
1280 system is a separate implementation).
1276
1281
1277 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1282 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1278 to control the completion of single/double underscore names
1283 to control the completion of single/double underscore names
1279 separately. As documented in the example ipytonrc file, the
1284 separately. As documented in the example ipytonrc file, the
1280 readline_omit__names variable can now be set to 2, to omit even
1285 readline_omit__names variable can now be set to 2, to omit even
1281 single underscore names. Thanks to a patch by Brian Wong
1286 single underscore names. Thanks to a patch by Brian Wong
1282 <BrianWong-AT-AirgoNetworks.Com>.
1287 <BrianWong-AT-AirgoNetworks.Com>.
1283 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1288 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1284 be autocalled as foo([1]) if foo were callable. A problem for
1289 be autocalled as foo([1]) if foo were callable. A problem for
1285 things which are both callable and implement __getitem__.
1290 things which are both callable and implement __getitem__.
1286 (init_readline): Fix autoindentation for win32. Thanks to a patch
1291 (init_readline): Fix autoindentation for win32. Thanks to a patch
1287 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1292 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1288
1293
1289 2005-02-12 Fernando Perez <fperez@colorado.edu>
1294 2005-02-12 Fernando Perez <fperez@colorado.edu>
1290
1295
1291 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1296 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1292 which I had written long ago to sort out user error messages which
1297 which I had written long ago to sort out user error messages which
1293 may occur during startup. This seemed like a good idea initially,
1298 may occur during startup. This seemed like a good idea initially,
1294 but it has proven a disaster in retrospect. I don't want to
1299 but it has proven a disaster in retrospect. I don't want to
1295 change much code for now, so my fix is to set the internal 'debug'
1300 change much code for now, so my fix is to set the internal 'debug'
1296 flag to true everywhere, whose only job was precisely to control
1301 flag to true everywhere, whose only job was precisely to control
1297 this subsystem. This closes issue 28 (as well as avoiding all
1302 this subsystem. This closes issue 28 (as well as avoiding all
1298 sorts of strange hangups which occur from time to time).
1303 sorts of strange hangups which occur from time to time).
1299
1304
1300 2005-02-07 Fernando Perez <fperez@colorado.edu>
1305 2005-02-07 Fernando Perez <fperez@colorado.edu>
1301
1306
1302 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1307 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1303 previous call produced a syntax error.
1308 previous call produced a syntax error.
1304
1309
1305 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1310 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1306 classes without constructor.
1311 classes without constructor.
1307
1312
1308 2005-02-06 Fernando Perez <fperez@colorado.edu>
1313 2005-02-06 Fernando Perez <fperez@colorado.edu>
1309
1314
1310 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1315 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1311 completions with the results of each matcher, so we return results
1316 completions with the results of each matcher, so we return results
1312 to the user from all namespaces. This breaks with ipython
1317 to the user from all namespaces. This breaks with ipython
1313 tradition, but I think it's a nicer behavior. Now you get all
1318 tradition, but I think it's a nicer behavior. Now you get all
1314 possible completions listed, from all possible namespaces (python,
1319 possible completions listed, from all possible namespaces (python,
1315 filesystem, magics...) After a request by John Hunter
1320 filesystem, magics...) After a request by John Hunter
1316 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1321 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1317
1322
1318 2005-02-05 Fernando Perez <fperez@colorado.edu>
1323 2005-02-05 Fernando Perez <fperez@colorado.edu>
1319
1324
1320 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1325 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1321 the call had quote characters in it (the quotes were stripped).
1326 the call had quote characters in it (the quotes were stripped).
1322
1327
1323 2005-01-31 Fernando Perez <fperez@colorado.edu>
1328 2005-01-31 Fernando Perez <fperez@colorado.edu>
1324
1329
1325 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1330 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1326 Itpl.itpl() to make the code more robust against psyco
1331 Itpl.itpl() to make the code more robust against psyco
1327 optimizations.
1332 optimizations.
1328
1333
1329 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1334 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1330 of causing an exception. Quicker, cleaner.
1335 of causing an exception. Quicker, cleaner.
1331
1336
1332 2005-01-28 Fernando Perez <fperez@colorado.edu>
1337 2005-01-28 Fernando Perez <fperez@colorado.edu>
1333
1338
1334 * scripts/ipython_win_post_install.py (install): hardcode
1339 * scripts/ipython_win_post_install.py (install): hardcode
1335 sys.prefix+'python.exe' as the executable path. It turns out that
1340 sys.prefix+'python.exe' as the executable path. It turns out that
1336 during the post-installation run, sys.executable resolves to the
1341 during the post-installation run, sys.executable resolves to the
1337 name of the binary installer! I should report this as a distutils
1342 name of the binary installer! I should report this as a distutils
1338 bug, I think. I updated the .10 release with this tiny fix, to
1343 bug, I think. I updated the .10 release with this tiny fix, to
1339 avoid annoying the lists further.
1344 avoid annoying the lists further.
1340
1345
1341 2005-01-27 *** Released version 0.6.10
1346 2005-01-27 *** Released version 0.6.10
1342
1347
1343 2005-01-27 Fernando Perez <fperez@colorado.edu>
1348 2005-01-27 Fernando Perez <fperez@colorado.edu>
1344
1349
1345 * IPython/numutils.py (norm): Added 'inf' as optional name for
1350 * IPython/numutils.py (norm): Added 'inf' as optional name for
1346 L-infinity norm, included references to mathworld.com for vector
1351 L-infinity norm, included references to mathworld.com for vector
1347 norm definitions.
1352 norm definitions.
1348 (amin/amax): added amin/amax for array min/max. Similar to what
1353 (amin/amax): added amin/amax for array min/max. Similar to what
1349 pylab ships with after the recent reorganization of names.
1354 pylab ships with after the recent reorganization of names.
1350 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1355 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1351
1356
1352 * ipython.el: committed Alex's recent fixes and improvements.
1357 * ipython.el: committed Alex's recent fixes and improvements.
1353 Tested with python-mode from CVS, and it looks excellent. Since
1358 Tested with python-mode from CVS, and it looks excellent. Since
1354 python-mode hasn't released anything in a while, I'm temporarily
1359 python-mode hasn't released anything in a while, I'm temporarily
1355 putting a copy of today's CVS (v 4.70) of python-mode in:
1360 putting a copy of today's CVS (v 4.70) of python-mode in:
1356 http://ipython.scipy.org/tmp/python-mode.el
1361 http://ipython.scipy.org/tmp/python-mode.el
1357
1362
1358 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1363 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1359 sys.executable for the executable name, instead of assuming it's
1364 sys.executable for the executable name, instead of assuming it's
1360 called 'python.exe' (the post-installer would have produced broken
1365 called 'python.exe' (the post-installer would have produced broken
1361 setups on systems with a differently named python binary).
1366 setups on systems with a differently named python binary).
1362
1367
1363 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1368 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1364 references to os.linesep, to make the code more
1369 references to os.linesep, to make the code more
1365 platform-independent. This is also part of the win32 coloring
1370 platform-independent. This is also part of the win32 coloring
1366 fixes.
1371 fixes.
1367
1372
1368 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1373 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1369 lines, which actually cause coloring bugs because the length of
1374 lines, which actually cause coloring bugs because the length of
1370 the line is very difficult to correctly compute with embedded
1375 the line is very difficult to correctly compute with embedded
1371 escapes. This was the source of all the coloring problems under
1376 escapes. This was the source of all the coloring problems under
1372 Win32. I think that _finally_, Win32 users have a properly
1377 Win32. I think that _finally_, Win32 users have a properly
1373 working ipython in all respects. This would never have happened
1378 working ipython in all respects. This would never have happened
1374 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1379 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1375
1380
1376 2005-01-26 *** Released version 0.6.9
1381 2005-01-26 *** Released version 0.6.9
1377
1382
1378 2005-01-25 Fernando Perez <fperez@colorado.edu>
1383 2005-01-25 Fernando Perez <fperez@colorado.edu>
1379
1384
1380 * setup.py: finally, we have a true Windows installer, thanks to
1385 * setup.py: finally, we have a true Windows installer, thanks to
1381 the excellent work of Viktor Ransmayr
1386 the excellent work of Viktor Ransmayr
1382 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1387 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1383 Windows users. The setup routine is quite a bit cleaner thanks to
1388 Windows users. The setup routine is quite a bit cleaner thanks to
1384 this, and the post-install script uses the proper functions to
1389 this, and the post-install script uses the proper functions to
1385 allow a clean de-installation using the standard Windows Control
1390 allow a clean de-installation using the standard Windows Control
1386 Panel.
1391 Panel.
1387
1392
1388 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1393 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1389 environment variable under all OSes (including win32) if
1394 environment variable under all OSes (including win32) if
1390 available. This will give consistency to win32 users who have set
1395 available. This will give consistency to win32 users who have set
1391 this variable for any reason. If os.environ['HOME'] fails, the
1396 this variable for any reason. If os.environ['HOME'] fails, the
1392 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1397 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1393
1398
1394 2005-01-24 Fernando Perez <fperez@colorado.edu>
1399 2005-01-24 Fernando Perez <fperez@colorado.edu>
1395
1400
1396 * IPython/numutils.py (empty_like): add empty_like(), similar to
1401 * IPython/numutils.py (empty_like): add empty_like(), similar to
1397 zeros_like() but taking advantage of the new empty() Numeric routine.
1402 zeros_like() but taking advantage of the new empty() Numeric routine.
1398
1403
1399 2005-01-23 *** Released version 0.6.8
1404 2005-01-23 *** Released version 0.6.8
1400
1405
1401 2005-01-22 Fernando Perez <fperez@colorado.edu>
1406 2005-01-22 Fernando Perez <fperez@colorado.edu>
1402
1407
1403 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1408 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1404 automatic show() calls. After discussing things with JDH, it
1409 automatic show() calls. After discussing things with JDH, it
1405 turns out there are too many corner cases where this can go wrong.
1410 turns out there are too many corner cases where this can go wrong.
1406 It's best not to try to be 'too smart', and simply have ipython
1411 It's best not to try to be 'too smart', and simply have ipython
1407 reproduce as much as possible the default behavior of a normal
1412 reproduce as much as possible the default behavior of a normal
1408 python shell.
1413 python shell.
1409
1414
1410 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1415 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1411 line-splitting regexp and _prefilter() to avoid calling getattr()
1416 line-splitting regexp and _prefilter() to avoid calling getattr()
1412 on assignments. This closes
1417 on assignments. This closes
1413 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1418 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1414 readline uses getattr(), so a simple <TAB> keypress is still
1419 readline uses getattr(), so a simple <TAB> keypress is still
1415 enough to trigger getattr() calls on an object.
1420 enough to trigger getattr() calls on an object.
1416
1421
1417 2005-01-21 Fernando Perez <fperez@colorado.edu>
1422 2005-01-21 Fernando Perez <fperez@colorado.edu>
1418
1423
1419 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1424 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1420 docstring under pylab so it doesn't mask the original.
1425 docstring under pylab so it doesn't mask the original.
1421
1426
1422 2005-01-21 *** Released version 0.6.7
1427 2005-01-21 *** Released version 0.6.7
1423
1428
1424 2005-01-21 Fernando Perez <fperez@colorado.edu>
1429 2005-01-21 Fernando Perez <fperez@colorado.edu>
1425
1430
1426 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1431 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1427 signal handling for win32 users in multithreaded mode.
1432 signal handling for win32 users in multithreaded mode.
1428
1433
1429 2005-01-17 Fernando Perez <fperez@colorado.edu>
1434 2005-01-17 Fernando Perez <fperez@colorado.edu>
1430
1435
1431 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1436 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1432 instances with no __init__. After a crash report by Norbert Nemec
1437 instances with no __init__. After a crash report by Norbert Nemec
1433 <Norbert-AT-nemec-online.de>.
1438 <Norbert-AT-nemec-online.de>.
1434
1439
1435 2005-01-14 Fernando Perez <fperez@colorado.edu>
1440 2005-01-14 Fernando Perez <fperez@colorado.edu>
1436
1441
1437 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1442 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1438 names for verbose exceptions, when multiple dotted names and the
1443 names for verbose exceptions, when multiple dotted names and the
1439 'parent' object were present on the same line.
1444 'parent' object were present on the same line.
1440
1445
1441 2005-01-11 Fernando Perez <fperez@colorado.edu>
1446 2005-01-11 Fernando Perez <fperez@colorado.edu>
1442
1447
1443 * IPython/genutils.py (flag_calls): new utility to trap and flag
1448 * IPython/genutils.py (flag_calls): new utility to trap and flag
1444 calls in functions. I need it to clean up matplotlib support.
1449 calls in functions. I need it to clean up matplotlib support.
1445 Also removed some deprecated code in genutils.
1450 Also removed some deprecated code in genutils.
1446
1451
1447 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1452 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1448 that matplotlib scripts called with %run, which don't call show()
1453 that matplotlib scripts called with %run, which don't call show()
1449 themselves, still have their plotting windows open.
1454 themselves, still have their plotting windows open.
1450
1455
1451 2005-01-05 Fernando Perez <fperez@colorado.edu>
1456 2005-01-05 Fernando Perez <fperez@colorado.edu>
1452
1457
1453 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1458 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1454 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1459 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1455
1460
1456 2004-12-19 Fernando Perez <fperez@colorado.edu>
1461 2004-12-19 Fernando Perez <fperez@colorado.edu>
1457
1462
1458 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1463 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1459 parent_runcode, which was an eyesore. The same result can be
1464 parent_runcode, which was an eyesore. The same result can be
1460 obtained with Python's regular superclass mechanisms.
1465 obtained with Python's regular superclass mechanisms.
1461
1466
1462 2004-12-17 Fernando Perez <fperez@colorado.edu>
1467 2004-12-17 Fernando Perez <fperez@colorado.edu>
1463
1468
1464 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1469 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1465 reported by Prabhu.
1470 reported by Prabhu.
1466 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1471 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1467 sys.stderr) instead of explicitly calling sys.stderr. This helps
1472 sys.stderr) instead of explicitly calling sys.stderr. This helps
1468 maintain our I/O abstractions clean, for future GUI embeddings.
1473 maintain our I/O abstractions clean, for future GUI embeddings.
1469
1474
1470 * IPython/genutils.py (info): added new utility for sys.stderr
1475 * IPython/genutils.py (info): added new utility for sys.stderr
1471 unified info message handling (thin wrapper around warn()).
1476 unified info message handling (thin wrapper around warn()).
1472
1477
1473 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1478 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1474 composite (dotted) names on verbose exceptions.
1479 composite (dotted) names on verbose exceptions.
1475 (VerboseTB.nullrepr): harden against another kind of errors which
1480 (VerboseTB.nullrepr): harden against another kind of errors which
1476 Python's inspect module can trigger, and which were crashing
1481 Python's inspect module can trigger, and which were crashing
1477 IPython. Thanks to a report by Marco Lombardi
1482 IPython. Thanks to a report by Marco Lombardi
1478 <mlombard-AT-ma010192.hq.eso.org>.
1483 <mlombard-AT-ma010192.hq.eso.org>.
1479
1484
1480 2004-12-13 *** Released version 0.6.6
1485 2004-12-13 *** Released version 0.6.6
1481
1486
1482 2004-12-12 Fernando Perez <fperez@colorado.edu>
1487 2004-12-12 Fernando Perez <fperez@colorado.edu>
1483
1488
1484 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1489 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1485 generated by pygtk upon initialization if it was built without
1490 generated by pygtk upon initialization if it was built without
1486 threads (for matplotlib users). After a crash reported by
1491 threads (for matplotlib users). After a crash reported by
1487 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1492 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1488
1493
1489 * IPython/ipmaker.py (make_IPython): fix small bug in the
1494 * IPython/ipmaker.py (make_IPython): fix small bug in the
1490 import_some parameter for multiple imports.
1495 import_some parameter for multiple imports.
1491
1496
1492 * IPython/iplib.py (ipmagic): simplified the interface of
1497 * IPython/iplib.py (ipmagic): simplified the interface of
1493 ipmagic() to take a single string argument, just as it would be
1498 ipmagic() to take a single string argument, just as it would be
1494 typed at the IPython cmd line.
1499 typed at the IPython cmd line.
1495 (ipalias): Added new ipalias() with an interface identical to
1500 (ipalias): Added new ipalias() with an interface identical to
1496 ipmagic(). This completes exposing a pure python interface to the
1501 ipmagic(). This completes exposing a pure python interface to the
1497 alias and magic system, which can be used in loops or more complex
1502 alias and magic system, which can be used in loops or more complex
1498 code where IPython's automatic line mangling is not active.
1503 code where IPython's automatic line mangling is not active.
1499
1504
1500 * IPython/genutils.py (timing): changed interface of timing to
1505 * IPython/genutils.py (timing): changed interface of timing to
1501 simply run code once, which is the most common case. timings()
1506 simply run code once, which is the most common case. timings()
1502 remains unchanged, for the cases where you want multiple runs.
1507 remains unchanged, for the cases where you want multiple runs.
1503
1508
1504 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1509 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1505 bug where Python2.2 crashes with exec'ing code which does not end
1510 bug where Python2.2 crashes with exec'ing code which does not end
1506 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1511 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1507 before.
1512 before.
1508
1513
1509 2004-12-10 Fernando Perez <fperez@colorado.edu>
1514 2004-12-10 Fernando Perez <fperez@colorado.edu>
1510
1515
1511 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1516 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1512 -t to -T, to accomodate the new -t flag in %run (the %run and
1517 -t to -T, to accomodate the new -t flag in %run (the %run and
1513 %prun options are kind of intermixed, and it's not easy to change
1518 %prun options are kind of intermixed, and it's not easy to change
1514 this with the limitations of python's getopt).
1519 this with the limitations of python's getopt).
1515
1520
1516 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1521 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1517 the execution of scripts. It's not as fine-tuned as timeit.py,
1522 the execution of scripts. It's not as fine-tuned as timeit.py,
1518 but it works from inside ipython (and under 2.2, which lacks
1523 but it works from inside ipython (and under 2.2, which lacks
1519 timeit.py). Optionally a number of runs > 1 can be given for
1524 timeit.py). Optionally a number of runs > 1 can be given for
1520 timing very short-running code.
1525 timing very short-running code.
1521
1526
1522 * IPython/genutils.py (uniq_stable): new routine which returns a
1527 * IPython/genutils.py (uniq_stable): new routine which returns a
1523 list of unique elements in any iterable, but in stable order of
1528 list of unique elements in any iterable, but in stable order of
1524 appearance. I needed this for the ultraTB fixes, and it's a handy
1529 appearance. I needed this for the ultraTB fixes, and it's a handy
1525 utility.
1530 utility.
1526
1531
1527 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1532 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1528 dotted names in Verbose exceptions. This had been broken since
1533 dotted names in Verbose exceptions. This had been broken since
1529 the very start, now x.y will properly be printed in a Verbose
1534 the very start, now x.y will properly be printed in a Verbose
1530 traceback, instead of x being shown and y appearing always as an
1535 traceback, instead of x being shown and y appearing always as an
1531 'undefined global'. Getting this to work was a bit tricky,
1536 'undefined global'. Getting this to work was a bit tricky,
1532 because by default python tokenizers are stateless. Saved by
1537 because by default python tokenizers are stateless. Saved by
1533 python's ability to easily add a bit of state to an arbitrary
1538 python's ability to easily add a bit of state to an arbitrary
1534 function (without needing to build a full-blown callable object).
1539 function (without needing to build a full-blown callable object).
1535
1540
1536 Also big cleanup of this code, which had horrendous runtime
1541 Also big cleanup of this code, which had horrendous runtime
1537 lookups of zillions of attributes for colorization. Moved all
1542 lookups of zillions of attributes for colorization. Moved all
1538 this code into a few templates, which make it cleaner and quicker.
1543 this code into a few templates, which make it cleaner and quicker.
1539
1544
1540 Printout quality was also improved for Verbose exceptions: one
1545 Printout quality was also improved for Verbose exceptions: one
1541 variable per line, and memory addresses are printed (this can be
1546 variable per line, and memory addresses are printed (this can be
1542 quite handy in nasty debugging situations, which is what Verbose
1547 quite handy in nasty debugging situations, which is what Verbose
1543 is for).
1548 is for).
1544
1549
1545 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1550 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1546 the command line as scripts to be loaded by embedded instances.
1551 the command line as scripts to be loaded by embedded instances.
1547 Doing so has the potential for an infinite recursion if there are
1552 Doing so has the potential for an infinite recursion if there are
1548 exceptions thrown in the process. This fixes a strange crash
1553 exceptions thrown in the process. This fixes a strange crash
1549 reported by Philippe MULLER <muller-AT-irit.fr>.
1554 reported by Philippe MULLER <muller-AT-irit.fr>.
1550
1555
1551 2004-12-09 Fernando Perez <fperez@colorado.edu>
1556 2004-12-09 Fernando Perez <fperez@colorado.edu>
1552
1557
1553 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1558 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1554 to reflect new names in matplotlib, which now expose the
1559 to reflect new names in matplotlib, which now expose the
1555 matlab-compatible interface via a pylab module instead of the
1560 matlab-compatible interface via a pylab module instead of the
1556 'matlab' name. The new code is backwards compatible, so users of
1561 'matlab' name. The new code is backwards compatible, so users of
1557 all matplotlib versions are OK. Patch by J. Hunter.
1562 all matplotlib versions are OK. Patch by J. Hunter.
1558
1563
1559 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1564 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1560 of __init__ docstrings for instances (class docstrings are already
1565 of __init__ docstrings for instances (class docstrings are already
1561 automatically printed). Instances with customized docstrings
1566 automatically printed). Instances with customized docstrings
1562 (indep. of the class) are also recognized and all 3 separate
1567 (indep. of the class) are also recognized and all 3 separate
1563 docstrings are printed (instance, class, constructor). After some
1568 docstrings are printed (instance, class, constructor). After some
1564 comments/suggestions by J. Hunter.
1569 comments/suggestions by J. Hunter.
1565
1570
1566 2004-12-05 Fernando Perez <fperez@colorado.edu>
1571 2004-12-05 Fernando Perez <fperez@colorado.edu>
1567
1572
1568 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1573 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1569 warnings when tab-completion fails and triggers an exception.
1574 warnings when tab-completion fails and triggers an exception.
1570
1575
1571 2004-12-03 Fernando Perez <fperez@colorado.edu>
1576 2004-12-03 Fernando Perez <fperez@colorado.edu>
1572
1577
1573 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1578 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1574 be triggered when using 'run -p'. An incorrect option flag was
1579 be triggered when using 'run -p'. An incorrect option flag was
1575 being set ('d' instead of 'D').
1580 being set ('d' instead of 'D').
1576 (manpage): fix missing escaped \- sign.
1581 (manpage): fix missing escaped \- sign.
1577
1582
1578 2004-11-30 *** Released version 0.6.5
1583 2004-11-30 *** Released version 0.6.5
1579
1584
1580 2004-11-30 Fernando Perez <fperez@colorado.edu>
1585 2004-11-30 Fernando Perez <fperez@colorado.edu>
1581
1586
1582 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1587 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1583 setting with -d option.
1588 setting with -d option.
1584
1589
1585 * setup.py (docfiles): Fix problem where the doc glob I was using
1590 * setup.py (docfiles): Fix problem where the doc glob I was using
1586 was COMPLETELY BROKEN. It was giving the right files by pure
1591 was COMPLETELY BROKEN. It was giving the right files by pure
1587 accident, but failed once I tried to include ipython.el. Note:
1592 accident, but failed once I tried to include ipython.el. Note:
1588 glob() does NOT allow you to do exclusion on multiple endings!
1593 glob() does NOT allow you to do exclusion on multiple endings!
1589
1594
1590 2004-11-29 Fernando Perez <fperez@colorado.edu>
1595 2004-11-29 Fernando Perez <fperez@colorado.edu>
1591
1596
1592 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1597 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1593 the manpage as the source. Better formatting & consistency.
1598 the manpage as the source. Better formatting & consistency.
1594
1599
1595 * IPython/Magic.py (magic_run): Added new -d option, to run
1600 * IPython/Magic.py (magic_run): Added new -d option, to run
1596 scripts under the control of the python pdb debugger. Note that
1601 scripts under the control of the python pdb debugger. Note that
1597 this required changing the %prun option -d to -D, to avoid a clash
1602 this required changing the %prun option -d to -D, to avoid a clash
1598 (since %run must pass options to %prun, and getopt is too dumb to
1603 (since %run must pass options to %prun, and getopt is too dumb to
1599 handle options with string values with embedded spaces). Thanks
1604 handle options with string values with embedded spaces). Thanks
1600 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1605 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1601 (magic_who_ls): added type matching to %who and %whos, so that one
1606 (magic_who_ls): added type matching to %who and %whos, so that one
1602 can filter their output to only include variables of certain
1607 can filter their output to only include variables of certain
1603 types. Another suggestion by Matthew.
1608 types. Another suggestion by Matthew.
1604 (magic_whos): Added memory summaries in kb and Mb for arrays.
1609 (magic_whos): Added memory summaries in kb and Mb for arrays.
1605 (magic_who): Improve formatting (break lines every 9 vars).
1610 (magic_who): Improve formatting (break lines every 9 vars).
1606
1611
1607 2004-11-28 Fernando Perez <fperez@colorado.edu>
1612 2004-11-28 Fernando Perez <fperez@colorado.edu>
1608
1613
1609 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1614 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1610 cache when empty lines were present.
1615 cache when empty lines were present.
1611
1616
1612 2004-11-24 Fernando Perez <fperez@colorado.edu>
1617 2004-11-24 Fernando Perez <fperez@colorado.edu>
1613
1618
1614 * IPython/usage.py (__doc__): document the re-activated threading
1619 * IPython/usage.py (__doc__): document the re-activated threading
1615 options for WX and GTK.
1620 options for WX and GTK.
1616
1621
1617 2004-11-23 Fernando Perez <fperez@colorado.edu>
1622 2004-11-23 Fernando Perez <fperez@colorado.edu>
1618
1623
1619 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1624 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1620 the -wthread and -gthread options, along with a new -tk one to try
1625 the -wthread and -gthread options, along with a new -tk one to try
1621 and coordinate Tk threading with wx/gtk. The tk support is very
1626 and coordinate Tk threading with wx/gtk. The tk support is very
1622 platform dependent, since it seems to require Tcl and Tk to be
1627 platform dependent, since it seems to require Tcl and Tk to be
1623 built with threads (Fedora1/2 appears NOT to have it, but in
1628 built with threads (Fedora1/2 appears NOT to have it, but in
1624 Prabhu's Debian boxes it works OK). But even with some Tk
1629 Prabhu's Debian boxes it works OK). But even with some Tk
1625 limitations, this is a great improvement.
1630 limitations, this is a great improvement.
1626
1631
1627 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1632 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1628 info in user prompts. Patch by Prabhu.
1633 info in user prompts. Patch by Prabhu.
1629
1634
1630 2004-11-18 Fernando Perez <fperez@colorado.edu>
1635 2004-11-18 Fernando Perez <fperez@colorado.edu>
1631
1636
1632 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1637 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1633 EOFErrors and bail, to avoid infinite loops if a non-terminating
1638 EOFErrors and bail, to avoid infinite loops if a non-terminating
1634 file is fed into ipython. Patch submitted in issue 19 by user,
1639 file is fed into ipython. Patch submitted in issue 19 by user,
1635 many thanks.
1640 many thanks.
1636
1641
1637 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1642 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1638 autoquote/parens in continuation prompts, which can cause lots of
1643 autoquote/parens in continuation prompts, which can cause lots of
1639 problems. Closes roundup issue 20.
1644 problems. Closes roundup issue 20.
1640
1645
1641 2004-11-17 Fernando Perez <fperez@colorado.edu>
1646 2004-11-17 Fernando Perez <fperez@colorado.edu>
1642
1647
1643 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1648 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1644 reported as debian bug #280505. I'm not sure my local changelog
1649 reported as debian bug #280505. I'm not sure my local changelog
1645 entry has the proper debian format (Jack?).
1650 entry has the proper debian format (Jack?).
1646
1651
1647 2004-11-08 *** Released version 0.6.4
1652 2004-11-08 *** Released version 0.6.4
1648
1653
1649 2004-11-08 Fernando Perez <fperez@colorado.edu>
1654 2004-11-08 Fernando Perez <fperez@colorado.edu>
1650
1655
1651 * IPython/iplib.py (init_readline): Fix exit message for Windows
1656 * IPython/iplib.py (init_readline): Fix exit message for Windows
1652 when readline is active. Thanks to a report by Eric Jones
1657 when readline is active. Thanks to a report by Eric Jones
1653 <eric-AT-enthought.com>.
1658 <eric-AT-enthought.com>.
1654
1659
1655 2004-11-07 Fernando Perez <fperez@colorado.edu>
1660 2004-11-07 Fernando Perez <fperez@colorado.edu>
1656
1661
1657 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1662 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1658 sometimes seen by win2k/cygwin users.
1663 sometimes seen by win2k/cygwin users.
1659
1664
1660 2004-11-06 Fernando Perez <fperez@colorado.edu>
1665 2004-11-06 Fernando Perez <fperez@colorado.edu>
1661
1666
1662 * IPython/iplib.py (interact): Change the handling of %Exit from
1667 * IPython/iplib.py (interact): Change the handling of %Exit from
1663 trying to propagate a SystemExit to an internal ipython flag.
1668 trying to propagate a SystemExit to an internal ipython flag.
1664 This is less elegant than using Python's exception mechanism, but
1669 This is less elegant than using Python's exception mechanism, but
1665 I can't get that to work reliably with threads, so under -pylab
1670 I can't get that to work reliably with threads, so under -pylab
1666 %Exit was hanging IPython. Cross-thread exception handling is
1671 %Exit was hanging IPython. Cross-thread exception handling is
1667 really a bitch. Thaks to a bug report by Stephen Walton
1672 really a bitch. Thaks to a bug report by Stephen Walton
1668 <stephen.walton-AT-csun.edu>.
1673 <stephen.walton-AT-csun.edu>.
1669
1674
1670 2004-11-04 Fernando Perez <fperez@colorado.edu>
1675 2004-11-04 Fernando Perez <fperez@colorado.edu>
1671
1676
1672 * IPython/iplib.py (raw_input_original): store a pointer to the
1677 * IPython/iplib.py (raw_input_original): store a pointer to the
1673 true raw_input to harden against code which can modify it
1678 true raw_input to harden against code which can modify it
1674 (wx.py.PyShell does this and would otherwise crash ipython).
1679 (wx.py.PyShell does this and would otherwise crash ipython).
1675 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1680 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1676
1681
1677 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1682 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1678 Ctrl-C problem, which does not mess up the input line.
1683 Ctrl-C problem, which does not mess up the input line.
1679
1684
1680 2004-11-03 Fernando Perez <fperez@colorado.edu>
1685 2004-11-03 Fernando Perez <fperez@colorado.edu>
1681
1686
1682 * IPython/Release.py: Changed licensing to BSD, in all files.
1687 * IPython/Release.py: Changed licensing to BSD, in all files.
1683 (name): lowercase name for tarball/RPM release.
1688 (name): lowercase name for tarball/RPM release.
1684
1689
1685 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1690 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1686 use throughout ipython.
1691 use throughout ipython.
1687
1692
1688 * IPython/Magic.py (Magic._ofind): Switch to using the new
1693 * IPython/Magic.py (Magic._ofind): Switch to using the new
1689 OInspect.getdoc() function.
1694 OInspect.getdoc() function.
1690
1695
1691 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1696 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1692 of the line currently being canceled via Ctrl-C. It's extremely
1697 of the line currently being canceled via Ctrl-C. It's extremely
1693 ugly, but I don't know how to do it better (the problem is one of
1698 ugly, but I don't know how to do it better (the problem is one of
1694 handling cross-thread exceptions).
1699 handling cross-thread exceptions).
1695
1700
1696 2004-10-28 Fernando Perez <fperez@colorado.edu>
1701 2004-10-28 Fernando Perez <fperez@colorado.edu>
1697
1702
1698 * IPython/Shell.py (signal_handler): add signal handlers to trap
1703 * IPython/Shell.py (signal_handler): add signal handlers to trap
1699 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1704 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1700 report by Francesc Alted.
1705 report by Francesc Alted.
1701
1706
1702 2004-10-21 Fernando Perez <fperez@colorado.edu>
1707 2004-10-21 Fernando Perez <fperez@colorado.edu>
1703
1708
1704 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1709 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1705 to % for pysh syntax extensions.
1710 to % for pysh syntax extensions.
1706
1711
1707 2004-10-09 Fernando Perez <fperez@colorado.edu>
1712 2004-10-09 Fernando Perez <fperez@colorado.edu>
1708
1713
1709 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1714 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1710 arrays to print a more useful summary, without calling str(arr).
1715 arrays to print a more useful summary, without calling str(arr).
1711 This avoids the problem of extremely lengthy computations which
1716 This avoids the problem of extremely lengthy computations which
1712 occur if arr is large, and appear to the user as a system lockup
1717 occur if arr is large, and appear to the user as a system lockup
1713 with 100% cpu activity. After a suggestion by Kristian Sandberg
1718 with 100% cpu activity. After a suggestion by Kristian Sandberg
1714 <Kristian.Sandberg@colorado.edu>.
1719 <Kristian.Sandberg@colorado.edu>.
1715 (Magic.__init__): fix bug in global magic escapes not being
1720 (Magic.__init__): fix bug in global magic escapes not being
1716 correctly set.
1721 correctly set.
1717
1722
1718 2004-10-08 Fernando Perez <fperez@colorado.edu>
1723 2004-10-08 Fernando Perez <fperez@colorado.edu>
1719
1724
1720 * IPython/Magic.py (__license__): change to absolute imports of
1725 * IPython/Magic.py (__license__): change to absolute imports of
1721 ipython's own internal packages, to start adapting to the absolute
1726 ipython's own internal packages, to start adapting to the absolute
1722 import requirement of PEP-328.
1727 import requirement of PEP-328.
1723
1728
1724 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1729 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1725 files, and standardize author/license marks through the Release
1730 files, and standardize author/license marks through the Release
1726 module instead of having per/file stuff (except for files with
1731 module instead of having per/file stuff (except for files with
1727 particular licenses, like the MIT/PSF-licensed codes).
1732 particular licenses, like the MIT/PSF-licensed codes).
1728
1733
1729 * IPython/Debugger.py: remove dead code for python 2.1
1734 * IPython/Debugger.py: remove dead code for python 2.1
1730
1735
1731 2004-10-04 Fernando Perez <fperez@colorado.edu>
1736 2004-10-04 Fernando Perez <fperez@colorado.edu>
1732
1737
1733 * IPython/iplib.py (ipmagic): New function for accessing magics
1738 * IPython/iplib.py (ipmagic): New function for accessing magics
1734 via a normal python function call.
1739 via a normal python function call.
1735
1740
1736 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1741 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1737 from '@' to '%', to accomodate the new @decorator syntax of python
1742 from '@' to '%', to accomodate the new @decorator syntax of python
1738 2.4.
1743 2.4.
1739
1744
1740 2004-09-29 Fernando Perez <fperez@colorado.edu>
1745 2004-09-29 Fernando Perez <fperez@colorado.edu>
1741
1746
1742 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1747 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1743 matplotlib.use to prevent running scripts which try to switch
1748 matplotlib.use to prevent running scripts which try to switch
1744 interactive backends from within ipython. This will just crash
1749 interactive backends from within ipython. This will just crash
1745 the python interpreter, so we can't allow it (but a detailed error
1750 the python interpreter, so we can't allow it (but a detailed error
1746 is given to the user).
1751 is given to the user).
1747
1752
1748 2004-09-28 Fernando Perez <fperez@colorado.edu>
1753 2004-09-28 Fernando Perez <fperez@colorado.edu>
1749
1754
1750 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1755 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1751 matplotlib-related fixes so that using @run with non-matplotlib
1756 matplotlib-related fixes so that using @run with non-matplotlib
1752 scripts doesn't pop up spurious plot windows. This requires
1757 scripts doesn't pop up spurious plot windows. This requires
1753 matplotlib >= 0.63, where I had to make some changes as well.
1758 matplotlib >= 0.63, where I had to make some changes as well.
1754
1759
1755 * IPython/ipmaker.py (make_IPython): update version requirement to
1760 * IPython/ipmaker.py (make_IPython): update version requirement to
1756 python 2.2.
1761 python 2.2.
1757
1762
1758 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1763 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1759 banner arg for embedded customization.
1764 banner arg for embedded customization.
1760
1765
1761 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1766 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1762 explicit uses of __IP as the IPython's instance name. Now things
1767 explicit uses of __IP as the IPython's instance name. Now things
1763 are properly handled via the shell.name value. The actual code
1768 are properly handled via the shell.name value. The actual code
1764 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1769 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1765 is much better than before. I'll clean things completely when the
1770 is much better than before. I'll clean things completely when the
1766 magic stuff gets a real overhaul.
1771 magic stuff gets a real overhaul.
1767
1772
1768 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1773 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1769 minor changes to debian dir.
1774 minor changes to debian dir.
1770
1775
1771 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1776 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1772 pointer to the shell itself in the interactive namespace even when
1777 pointer to the shell itself in the interactive namespace even when
1773 a user-supplied dict is provided. This is needed for embedding
1778 a user-supplied dict is provided. This is needed for embedding
1774 purposes (found by tests with Michel Sanner).
1779 purposes (found by tests with Michel Sanner).
1775
1780
1776 2004-09-27 Fernando Perez <fperez@colorado.edu>
1781 2004-09-27 Fernando Perez <fperez@colorado.edu>
1777
1782
1778 * IPython/UserConfig/ipythonrc: remove []{} from
1783 * IPython/UserConfig/ipythonrc: remove []{} from
1779 readline_remove_delims, so that things like [modname.<TAB> do
1784 readline_remove_delims, so that things like [modname.<TAB> do
1780 proper completion. This disables [].TAB, but that's a less common
1785 proper completion. This disables [].TAB, but that's a less common
1781 case than module names in list comprehensions, for example.
1786 case than module names in list comprehensions, for example.
1782 Thanks to a report by Andrea Riciputi.
1787 Thanks to a report by Andrea Riciputi.
1783
1788
1784 2004-09-09 Fernando Perez <fperez@colorado.edu>
1789 2004-09-09 Fernando Perez <fperez@colorado.edu>
1785
1790
1786 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1791 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1787 blocking problems in win32 and osx. Fix by John.
1792 blocking problems in win32 and osx. Fix by John.
1788
1793
1789 2004-09-08 Fernando Perez <fperez@colorado.edu>
1794 2004-09-08 Fernando Perez <fperez@colorado.edu>
1790
1795
1791 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1796 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1792 for Win32 and OSX. Fix by John Hunter.
1797 for Win32 and OSX. Fix by John Hunter.
1793
1798
1794 2004-08-30 *** Released version 0.6.3
1799 2004-08-30 *** Released version 0.6.3
1795
1800
1796 2004-08-30 Fernando Perez <fperez@colorado.edu>
1801 2004-08-30 Fernando Perez <fperez@colorado.edu>
1797
1802
1798 * setup.py (isfile): Add manpages to list of dependent files to be
1803 * setup.py (isfile): Add manpages to list of dependent files to be
1799 updated.
1804 updated.
1800
1805
1801 2004-08-27 Fernando Perez <fperez@colorado.edu>
1806 2004-08-27 Fernando Perez <fperez@colorado.edu>
1802
1807
1803 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1808 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1804 for now. They don't really work with standalone WX/GTK code
1809 for now. They don't really work with standalone WX/GTK code
1805 (though matplotlib IS working fine with both of those backends).
1810 (though matplotlib IS working fine with both of those backends).
1806 This will neeed much more testing. I disabled most things with
1811 This will neeed much more testing. I disabled most things with
1807 comments, so turning it back on later should be pretty easy.
1812 comments, so turning it back on later should be pretty easy.
1808
1813
1809 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1814 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1810 autocalling of expressions like r'foo', by modifying the line
1815 autocalling of expressions like r'foo', by modifying the line
1811 split regexp. Closes
1816 split regexp. Closes
1812 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1817 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1813 Riley <ipythonbugs-AT-sabi.net>.
1818 Riley <ipythonbugs-AT-sabi.net>.
1814 (InteractiveShell.mainloop): honor --nobanner with banner
1819 (InteractiveShell.mainloop): honor --nobanner with banner
1815 extensions.
1820 extensions.
1816
1821
1817 * IPython/Shell.py: Significant refactoring of all classes, so
1822 * IPython/Shell.py: Significant refactoring of all classes, so
1818 that we can really support ALL matplotlib backends and threading
1823 that we can really support ALL matplotlib backends and threading
1819 models (John spotted a bug with Tk which required this). Now we
1824 models (John spotted a bug with Tk which required this). Now we
1820 should support single-threaded, WX-threads and GTK-threads, both
1825 should support single-threaded, WX-threads and GTK-threads, both
1821 for generic code and for matplotlib.
1826 for generic code and for matplotlib.
1822
1827
1823 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1828 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1824 -pylab, to simplify things for users. Will also remove the pylab
1829 -pylab, to simplify things for users. Will also remove the pylab
1825 profile, since now all of matplotlib configuration is directly
1830 profile, since now all of matplotlib configuration is directly
1826 handled here. This also reduces startup time.
1831 handled here. This also reduces startup time.
1827
1832
1828 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1833 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1829 shell wasn't being correctly called. Also in IPShellWX.
1834 shell wasn't being correctly called. Also in IPShellWX.
1830
1835
1831 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1836 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1832 fine-tune banner.
1837 fine-tune banner.
1833
1838
1834 * IPython/numutils.py (spike): Deprecate these spike functions,
1839 * IPython/numutils.py (spike): Deprecate these spike functions,
1835 delete (long deprecated) gnuplot_exec handler.
1840 delete (long deprecated) gnuplot_exec handler.
1836
1841
1837 2004-08-26 Fernando Perez <fperez@colorado.edu>
1842 2004-08-26 Fernando Perez <fperez@colorado.edu>
1838
1843
1839 * ipython.1: Update for threading options, plus some others which
1844 * ipython.1: Update for threading options, plus some others which
1840 were missing.
1845 were missing.
1841
1846
1842 * IPython/ipmaker.py (__call__): Added -wthread option for
1847 * IPython/ipmaker.py (__call__): Added -wthread option for
1843 wxpython thread handling. Make sure threading options are only
1848 wxpython thread handling. Make sure threading options are only
1844 valid at the command line.
1849 valid at the command line.
1845
1850
1846 * scripts/ipython: moved shell selection into a factory function
1851 * scripts/ipython: moved shell selection into a factory function
1847 in Shell.py, to keep the starter script to a minimum.
1852 in Shell.py, to keep the starter script to a minimum.
1848
1853
1849 2004-08-25 Fernando Perez <fperez@colorado.edu>
1854 2004-08-25 Fernando Perez <fperez@colorado.edu>
1850
1855
1851 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1856 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1852 John. Along with some recent changes he made to matplotlib, the
1857 John. Along with some recent changes he made to matplotlib, the
1853 next versions of both systems should work very well together.
1858 next versions of both systems should work very well together.
1854
1859
1855 2004-08-24 Fernando Perez <fperez@colorado.edu>
1860 2004-08-24 Fernando Perez <fperez@colorado.edu>
1856
1861
1857 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1862 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1858 tried to switch the profiling to using hotshot, but I'm getting
1863 tried to switch the profiling to using hotshot, but I'm getting
1859 strange errors from prof.runctx() there. I may be misreading the
1864 strange errors from prof.runctx() there. I may be misreading the
1860 docs, but it looks weird. For now the profiling code will
1865 docs, but it looks weird. For now the profiling code will
1861 continue to use the standard profiler.
1866 continue to use the standard profiler.
1862
1867
1863 2004-08-23 Fernando Perez <fperez@colorado.edu>
1868 2004-08-23 Fernando Perez <fperez@colorado.edu>
1864
1869
1865 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1870 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1866 threaded shell, by John Hunter. It's not quite ready yet, but
1871 threaded shell, by John Hunter. It's not quite ready yet, but
1867 close.
1872 close.
1868
1873
1869 2004-08-22 Fernando Perez <fperez@colorado.edu>
1874 2004-08-22 Fernando Perez <fperez@colorado.edu>
1870
1875
1871 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1876 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1872 in Magic and ultraTB.
1877 in Magic and ultraTB.
1873
1878
1874 * ipython.1: document threading options in manpage.
1879 * ipython.1: document threading options in manpage.
1875
1880
1876 * scripts/ipython: Changed name of -thread option to -gthread,
1881 * scripts/ipython: Changed name of -thread option to -gthread,
1877 since this is GTK specific. I want to leave the door open for a
1882 since this is GTK specific. I want to leave the door open for a
1878 -wthread option for WX, which will most likely be necessary. This
1883 -wthread option for WX, which will most likely be necessary. This
1879 change affects usage and ipmaker as well.
1884 change affects usage and ipmaker as well.
1880
1885
1881 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1886 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1882 handle the matplotlib shell issues. Code by John Hunter
1887 handle the matplotlib shell issues. Code by John Hunter
1883 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1888 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1884 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1889 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1885 broken (and disabled for end users) for now, but it puts the
1890 broken (and disabled for end users) for now, but it puts the
1886 infrastructure in place.
1891 infrastructure in place.
1887
1892
1888 2004-08-21 Fernando Perez <fperez@colorado.edu>
1893 2004-08-21 Fernando Perez <fperez@colorado.edu>
1889
1894
1890 * ipythonrc-pylab: Add matplotlib support.
1895 * ipythonrc-pylab: Add matplotlib support.
1891
1896
1892 * matplotlib_config.py: new files for matplotlib support, part of
1897 * matplotlib_config.py: new files for matplotlib support, part of
1893 the pylab profile.
1898 the pylab profile.
1894
1899
1895 * IPython/usage.py (__doc__): documented the threading options.
1900 * IPython/usage.py (__doc__): documented the threading options.
1896
1901
1897 2004-08-20 Fernando Perez <fperez@colorado.edu>
1902 2004-08-20 Fernando Perez <fperez@colorado.edu>
1898
1903
1899 * ipython: Modified the main calling routine to handle the -thread
1904 * ipython: Modified the main calling routine to handle the -thread
1900 and -mpthread options. This needs to be done as a top-level hack,
1905 and -mpthread options. This needs to be done as a top-level hack,
1901 because it determines which class to instantiate for IPython
1906 because it determines which class to instantiate for IPython
1902 itself.
1907 itself.
1903
1908
1904 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1909 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1905 classes to support multithreaded GTK operation without blocking,
1910 classes to support multithreaded GTK operation without blocking,
1906 and matplotlib with all backends. This is a lot of still very
1911 and matplotlib with all backends. This is a lot of still very
1907 experimental code, and threads are tricky. So it may still have a
1912 experimental code, and threads are tricky. So it may still have a
1908 few rough edges... This code owes a lot to
1913 few rough edges... This code owes a lot to
1909 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1914 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1910 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1915 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1911 to John Hunter for all the matplotlib work.
1916 to John Hunter for all the matplotlib work.
1912
1917
1913 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1918 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1914 options for gtk thread and matplotlib support.
1919 options for gtk thread and matplotlib support.
1915
1920
1916 2004-08-16 Fernando Perez <fperez@colorado.edu>
1921 2004-08-16 Fernando Perez <fperez@colorado.edu>
1917
1922
1918 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1923 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1919 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1924 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1920 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1925 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1921
1926
1922 2004-08-11 Fernando Perez <fperez@colorado.edu>
1927 2004-08-11 Fernando Perez <fperez@colorado.edu>
1923
1928
1924 * setup.py (isfile): Fix build so documentation gets updated for
1929 * setup.py (isfile): Fix build so documentation gets updated for
1925 rpms (it was only done for .tgz builds).
1930 rpms (it was only done for .tgz builds).
1926
1931
1927 2004-08-10 Fernando Perez <fperez@colorado.edu>
1932 2004-08-10 Fernando Perez <fperez@colorado.edu>
1928
1933
1929 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1934 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1930
1935
1931 * iplib.py : Silence syntax error exceptions in tab-completion.
1936 * iplib.py : Silence syntax error exceptions in tab-completion.
1932
1937
1933 2004-08-05 Fernando Perez <fperez@colorado.edu>
1938 2004-08-05 Fernando Perez <fperez@colorado.edu>
1934
1939
1935 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1940 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1936 'color off' mark for continuation prompts. This was causing long
1941 'color off' mark for continuation prompts. This was causing long
1937 continuation lines to mis-wrap.
1942 continuation lines to mis-wrap.
1938
1943
1939 2004-08-01 Fernando Perez <fperez@colorado.edu>
1944 2004-08-01 Fernando Perez <fperez@colorado.edu>
1940
1945
1941 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1946 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1942 for building ipython to be a parameter. All this is necessary
1947 for building ipython to be a parameter. All this is necessary
1943 right now to have a multithreaded version, but this insane
1948 right now to have a multithreaded version, but this insane
1944 non-design will be cleaned up soon. For now, it's a hack that
1949 non-design will be cleaned up soon. For now, it's a hack that
1945 works.
1950 works.
1946
1951
1947 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1952 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1948 args in various places. No bugs so far, but it's a dangerous
1953 args in various places. No bugs so far, but it's a dangerous
1949 practice.
1954 practice.
1950
1955
1951 2004-07-31 Fernando Perez <fperez@colorado.edu>
1956 2004-07-31 Fernando Perez <fperez@colorado.edu>
1952
1957
1953 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1958 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1954 fix completion of files with dots in their names under most
1959 fix completion of files with dots in their names under most
1955 profiles (pysh was OK because the completion order is different).
1960 profiles (pysh was OK because the completion order is different).
1956
1961
1957 2004-07-27 Fernando Perez <fperez@colorado.edu>
1962 2004-07-27 Fernando Perez <fperez@colorado.edu>
1958
1963
1959 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1964 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1960 keywords manually, b/c the one in keyword.py was removed in python
1965 keywords manually, b/c the one in keyword.py was removed in python
1961 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1966 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1962 This is NOT a bug under python 2.3 and earlier.
1967 This is NOT a bug under python 2.3 and earlier.
1963
1968
1964 2004-07-26 Fernando Perez <fperez@colorado.edu>
1969 2004-07-26 Fernando Perez <fperez@colorado.edu>
1965
1970
1966 * IPython/ultraTB.py (VerboseTB.text): Add another
1971 * IPython/ultraTB.py (VerboseTB.text): Add another
1967 linecache.checkcache() call to try to prevent inspect.py from
1972 linecache.checkcache() call to try to prevent inspect.py from
1968 crashing under python 2.3. I think this fixes
1973 crashing under python 2.3. I think this fixes
1969 http://www.scipy.net/roundup/ipython/issue17.
1974 http://www.scipy.net/roundup/ipython/issue17.
1970
1975
1971 2004-07-26 *** Released version 0.6.2
1976 2004-07-26 *** Released version 0.6.2
1972
1977
1973 2004-07-26 Fernando Perez <fperez@colorado.edu>
1978 2004-07-26 Fernando Perez <fperez@colorado.edu>
1974
1979
1975 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1980 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1976 fail for any number.
1981 fail for any number.
1977 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1982 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1978 empty bookmarks.
1983 empty bookmarks.
1979
1984
1980 2004-07-26 *** Released version 0.6.1
1985 2004-07-26 *** Released version 0.6.1
1981
1986
1982 2004-07-26 Fernando Perez <fperez@colorado.edu>
1987 2004-07-26 Fernando Perez <fperez@colorado.edu>
1983
1988
1984 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1989 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1985
1990
1986 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1991 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1987 escaping '()[]{}' in filenames.
1992 escaping '()[]{}' in filenames.
1988
1993
1989 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1994 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1990 Python 2.2 users who lack a proper shlex.split.
1995 Python 2.2 users who lack a proper shlex.split.
1991
1996
1992 2004-07-19 Fernando Perez <fperez@colorado.edu>
1997 2004-07-19 Fernando Perez <fperez@colorado.edu>
1993
1998
1994 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1999 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1995 for reading readline's init file. I follow the normal chain:
2000 for reading readline's init file. I follow the normal chain:
1996 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2001 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1997 report by Mike Heeter. This closes
2002 report by Mike Heeter. This closes
1998 http://www.scipy.net/roundup/ipython/issue16.
2003 http://www.scipy.net/roundup/ipython/issue16.
1999
2004
2000 2004-07-18 Fernando Perez <fperez@colorado.edu>
2005 2004-07-18 Fernando Perez <fperez@colorado.edu>
2001
2006
2002 * IPython/iplib.py (__init__): Add better handling of '\' under
2007 * IPython/iplib.py (__init__): Add better handling of '\' under
2003 Win32 for filenames. After a patch by Ville.
2008 Win32 for filenames. After a patch by Ville.
2004
2009
2005 2004-07-17 Fernando Perez <fperez@colorado.edu>
2010 2004-07-17 Fernando Perez <fperez@colorado.edu>
2006
2011
2007 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2012 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2008 autocalling would be triggered for 'foo is bar' if foo is
2013 autocalling would be triggered for 'foo is bar' if foo is
2009 callable. I also cleaned up the autocall detection code to use a
2014 callable. I also cleaned up the autocall detection code to use a
2010 regexp, which is faster. Bug reported by Alexander Schmolck.
2015 regexp, which is faster. Bug reported by Alexander Schmolck.
2011
2016
2012 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2017 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2013 '?' in them would confuse the help system. Reported by Alex
2018 '?' in them would confuse the help system. Reported by Alex
2014 Schmolck.
2019 Schmolck.
2015
2020
2016 2004-07-16 Fernando Perez <fperez@colorado.edu>
2021 2004-07-16 Fernando Perez <fperez@colorado.edu>
2017
2022
2018 * IPython/GnuplotInteractive.py (__all__): added plot2.
2023 * IPython/GnuplotInteractive.py (__all__): added plot2.
2019
2024
2020 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2025 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2021 plotting dictionaries, lists or tuples of 1d arrays.
2026 plotting dictionaries, lists or tuples of 1d arrays.
2022
2027
2023 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2028 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2024 optimizations.
2029 optimizations.
2025
2030
2026 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2031 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2027 the information which was there from Janko's original IPP code:
2032 the information which was there from Janko's original IPP code:
2028
2033
2029 03.05.99 20:53 porto.ifm.uni-kiel.de
2034 03.05.99 20:53 porto.ifm.uni-kiel.de
2030 --Started changelog.
2035 --Started changelog.
2031 --make clear do what it say it does
2036 --make clear do what it say it does
2032 --added pretty output of lines from inputcache
2037 --added pretty output of lines from inputcache
2033 --Made Logger a mixin class, simplifies handling of switches
2038 --Made Logger a mixin class, simplifies handling of switches
2034 --Added own completer class. .string<TAB> expands to last history
2039 --Added own completer class. .string<TAB> expands to last history
2035 line which starts with string. The new expansion is also present
2040 line which starts with string. The new expansion is also present
2036 with Ctrl-r from the readline library. But this shows, who this
2041 with Ctrl-r from the readline library. But this shows, who this
2037 can be done for other cases.
2042 can be done for other cases.
2038 --Added convention that all shell functions should accept a
2043 --Added convention that all shell functions should accept a
2039 parameter_string This opens the door for different behaviour for
2044 parameter_string This opens the door for different behaviour for
2040 each function. @cd is a good example of this.
2045 each function. @cd is a good example of this.
2041
2046
2042 04.05.99 12:12 porto.ifm.uni-kiel.de
2047 04.05.99 12:12 porto.ifm.uni-kiel.de
2043 --added logfile rotation
2048 --added logfile rotation
2044 --added new mainloop method which freezes first the namespace
2049 --added new mainloop method which freezes first the namespace
2045
2050
2046 07.05.99 21:24 porto.ifm.uni-kiel.de
2051 07.05.99 21:24 porto.ifm.uni-kiel.de
2047 --added the docreader classes. Now there is a help system.
2052 --added the docreader classes. Now there is a help system.
2048 -This is only a first try. Currently it's not easy to put new
2053 -This is only a first try. Currently it's not easy to put new
2049 stuff in the indices. But this is the way to go. Info would be
2054 stuff in the indices. But this is the way to go. Info would be
2050 better, but HTML is every where and not everybody has an info
2055 better, but HTML is every where and not everybody has an info
2051 system installed and it's not so easy to change html-docs to info.
2056 system installed and it's not so easy to change html-docs to info.
2052 --added global logfile option
2057 --added global logfile option
2053 --there is now a hook for object inspection method pinfo needs to
2058 --there is now a hook for object inspection method pinfo needs to
2054 be provided for this. Can be reached by two '??'.
2059 be provided for this. Can be reached by two '??'.
2055
2060
2056 08.05.99 20:51 porto.ifm.uni-kiel.de
2061 08.05.99 20:51 porto.ifm.uni-kiel.de
2057 --added a README
2062 --added a README
2058 --bug in rc file. Something has changed so functions in the rc
2063 --bug in rc file. Something has changed so functions in the rc
2059 file need to reference the shell and not self. Not clear if it's a
2064 file need to reference the shell and not self. Not clear if it's a
2060 bug or feature.
2065 bug or feature.
2061 --changed rc file for new behavior
2066 --changed rc file for new behavior
2062
2067
2063 2004-07-15 Fernando Perez <fperez@colorado.edu>
2068 2004-07-15 Fernando Perez <fperez@colorado.edu>
2064
2069
2065 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2070 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2066 cache was falling out of sync in bizarre manners when multi-line
2071 cache was falling out of sync in bizarre manners when multi-line
2067 input was present. Minor optimizations and cleanup.
2072 input was present. Minor optimizations and cleanup.
2068
2073
2069 (Logger): Remove old Changelog info for cleanup. This is the
2074 (Logger): Remove old Changelog info for cleanup. This is the
2070 information which was there from Janko's original code:
2075 information which was there from Janko's original code:
2071
2076
2072 Changes to Logger: - made the default log filename a parameter
2077 Changes to Logger: - made the default log filename a parameter
2073
2078
2074 - put a check for lines beginning with !@? in log(). Needed
2079 - put a check for lines beginning with !@? in log(). Needed
2075 (even if the handlers properly log their lines) for mid-session
2080 (even if the handlers properly log their lines) for mid-session
2076 logging activation to work properly. Without this, lines logged
2081 logging activation to work properly. Without this, lines logged
2077 in mid session, which get read from the cache, would end up
2082 in mid session, which get read from the cache, would end up
2078 'bare' (with !@? in the open) in the log. Now they are caught
2083 'bare' (with !@? in the open) in the log. Now they are caught
2079 and prepended with a #.
2084 and prepended with a #.
2080
2085
2081 * IPython/iplib.py (InteractiveShell.init_readline): added check
2086 * IPython/iplib.py (InteractiveShell.init_readline): added check
2082 in case MagicCompleter fails to be defined, so we don't crash.
2087 in case MagicCompleter fails to be defined, so we don't crash.
2083
2088
2084 2004-07-13 Fernando Perez <fperez@colorado.edu>
2089 2004-07-13 Fernando Perez <fperez@colorado.edu>
2085
2090
2086 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2091 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2087 of EPS if the requested filename ends in '.eps'.
2092 of EPS if the requested filename ends in '.eps'.
2088
2093
2089 2004-07-04 Fernando Perez <fperez@colorado.edu>
2094 2004-07-04 Fernando Perez <fperez@colorado.edu>
2090
2095
2091 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2096 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2092 escaping of quotes when calling the shell.
2097 escaping of quotes when calling the shell.
2093
2098
2094 2004-07-02 Fernando Perez <fperez@colorado.edu>
2099 2004-07-02 Fernando Perez <fperez@colorado.edu>
2095
2100
2096 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2101 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2097 gettext not working because we were clobbering '_'. Fixes
2102 gettext not working because we were clobbering '_'. Fixes
2098 http://www.scipy.net/roundup/ipython/issue6.
2103 http://www.scipy.net/roundup/ipython/issue6.
2099
2104
2100 2004-07-01 Fernando Perez <fperez@colorado.edu>
2105 2004-07-01 Fernando Perez <fperez@colorado.edu>
2101
2106
2102 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2107 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2103 into @cd. Patch by Ville.
2108 into @cd. Patch by Ville.
2104
2109
2105 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2110 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2106 new function to store things after ipmaker runs. Patch by Ville.
2111 new function to store things after ipmaker runs. Patch by Ville.
2107 Eventually this will go away once ipmaker is removed and the class
2112 Eventually this will go away once ipmaker is removed and the class
2108 gets cleaned up, but for now it's ok. Key functionality here is
2113 gets cleaned up, but for now it's ok. Key functionality here is
2109 the addition of the persistent storage mechanism, a dict for
2114 the addition of the persistent storage mechanism, a dict for
2110 keeping data across sessions (for now just bookmarks, but more can
2115 keeping data across sessions (for now just bookmarks, but more can
2111 be implemented later).
2116 be implemented later).
2112
2117
2113 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2118 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2114 persistent across sections. Patch by Ville, I modified it
2119 persistent across sections. Patch by Ville, I modified it
2115 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2120 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2116 added a '-l' option to list all bookmarks.
2121 added a '-l' option to list all bookmarks.
2117
2122
2118 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2123 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2119 center for cleanup. Registered with atexit.register(). I moved
2124 center for cleanup. Registered with atexit.register(). I moved
2120 here the old exit_cleanup(). After a patch by Ville.
2125 here the old exit_cleanup(). After a patch by Ville.
2121
2126
2122 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2127 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2123 characters in the hacked shlex_split for python 2.2.
2128 characters in the hacked shlex_split for python 2.2.
2124
2129
2125 * IPython/iplib.py (file_matches): more fixes to filenames with
2130 * IPython/iplib.py (file_matches): more fixes to filenames with
2126 whitespace in them. It's not perfect, but limitations in python's
2131 whitespace in them. It's not perfect, but limitations in python's
2127 readline make it impossible to go further.
2132 readline make it impossible to go further.
2128
2133
2129 2004-06-29 Fernando Perez <fperez@colorado.edu>
2134 2004-06-29 Fernando Perez <fperez@colorado.edu>
2130
2135
2131 * IPython/iplib.py (file_matches): escape whitespace correctly in
2136 * IPython/iplib.py (file_matches): escape whitespace correctly in
2132 filename completions. Bug reported by Ville.
2137 filename completions. Bug reported by Ville.
2133
2138
2134 2004-06-28 Fernando Perez <fperez@colorado.edu>
2139 2004-06-28 Fernando Perez <fperez@colorado.edu>
2135
2140
2136 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2141 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2137 the history file will be called 'history-PROFNAME' (or just
2142 the history file will be called 'history-PROFNAME' (or just
2138 'history' if no profile is loaded). I was getting annoyed at
2143 'history' if no profile is loaded). I was getting annoyed at
2139 getting my Numerical work history clobbered by pysh sessions.
2144 getting my Numerical work history clobbered by pysh sessions.
2140
2145
2141 * IPython/iplib.py (InteractiveShell.__init__): Internal
2146 * IPython/iplib.py (InteractiveShell.__init__): Internal
2142 getoutputerror() function so that we can honor the system_verbose
2147 getoutputerror() function so that we can honor the system_verbose
2143 flag for _all_ system calls. I also added escaping of #
2148 flag for _all_ system calls. I also added escaping of #
2144 characters here to avoid confusing Itpl.
2149 characters here to avoid confusing Itpl.
2145
2150
2146 * IPython/Magic.py (shlex_split): removed call to shell in
2151 * IPython/Magic.py (shlex_split): removed call to shell in
2147 parse_options and replaced it with shlex.split(). The annoying
2152 parse_options and replaced it with shlex.split(). The annoying
2148 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2153 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2149 to backport it from 2.3, with several frail hacks (the shlex
2154 to backport it from 2.3, with several frail hacks (the shlex
2150 module is rather limited in 2.2). Thanks to a suggestion by Ville
2155 module is rather limited in 2.2). Thanks to a suggestion by Ville
2151 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2156 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2152 problem.
2157 problem.
2153
2158
2154 (Magic.magic_system_verbose): new toggle to print the actual
2159 (Magic.magic_system_verbose): new toggle to print the actual
2155 system calls made by ipython. Mainly for debugging purposes.
2160 system calls made by ipython. Mainly for debugging purposes.
2156
2161
2157 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2162 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2158 doesn't support persistence. Reported (and fix suggested) by
2163 doesn't support persistence. Reported (and fix suggested) by
2159 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2164 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2160
2165
2161 2004-06-26 Fernando Perez <fperez@colorado.edu>
2166 2004-06-26 Fernando Perez <fperez@colorado.edu>
2162
2167
2163 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2168 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2164 continue prompts.
2169 continue prompts.
2165
2170
2166 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2171 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2167 function (basically a big docstring) and a few more things here to
2172 function (basically a big docstring) and a few more things here to
2168 speedup startup. pysh.py is now very lightweight. We want because
2173 speedup startup. pysh.py is now very lightweight. We want because
2169 it gets execfile'd, while InterpreterExec gets imported, so
2174 it gets execfile'd, while InterpreterExec gets imported, so
2170 byte-compilation saves time.
2175 byte-compilation saves time.
2171
2176
2172 2004-06-25 Fernando Perez <fperez@colorado.edu>
2177 2004-06-25 Fernando Perez <fperez@colorado.edu>
2173
2178
2174 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2179 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2175 -NUM', which was recently broken.
2180 -NUM', which was recently broken.
2176
2181
2177 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2182 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2178 in multi-line input (but not !!, which doesn't make sense there).
2183 in multi-line input (but not !!, which doesn't make sense there).
2179
2184
2180 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2185 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2181 It's just too useful, and people can turn it off in the less
2186 It's just too useful, and people can turn it off in the less
2182 common cases where it's a problem.
2187 common cases where it's a problem.
2183
2188
2184 2004-06-24 Fernando Perez <fperez@colorado.edu>
2189 2004-06-24 Fernando Perez <fperez@colorado.edu>
2185
2190
2186 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2191 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2187 special syntaxes (like alias calling) is now allied in multi-line
2192 special syntaxes (like alias calling) is now allied in multi-line
2188 input. This is still _very_ experimental, but it's necessary for
2193 input. This is still _very_ experimental, but it's necessary for
2189 efficient shell usage combining python looping syntax with system
2194 efficient shell usage combining python looping syntax with system
2190 calls. For now it's restricted to aliases, I don't think it
2195 calls. For now it's restricted to aliases, I don't think it
2191 really even makes sense to have this for magics.
2196 really even makes sense to have this for magics.
2192
2197
2193 2004-06-23 Fernando Perez <fperez@colorado.edu>
2198 2004-06-23 Fernando Perez <fperez@colorado.edu>
2194
2199
2195 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2200 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2196 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2201 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2197
2202
2198 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2203 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2199 extensions under Windows (after code sent by Gary Bishop). The
2204 extensions under Windows (after code sent by Gary Bishop). The
2200 extensions considered 'executable' are stored in IPython's rc
2205 extensions considered 'executable' are stored in IPython's rc
2201 structure as win_exec_ext.
2206 structure as win_exec_ext.
2202
2207
2203 * IPython/genutils.py (shell): new function, like system() but
2208 * IPython/genutils.py (shell): new function, like system() but
2204 without return value. Very useful for interactive shell work.
2209 without return value. Very useful for interactive shell work.
2205
2210
2206 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2211 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2207 delete aliases.
2212 delete aliases.
2208
2213
2209 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2214 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2210 sure that the alias table doesn't contain python keywords.
2215 sure that the alias table doesn't contain python keywords.
2211
2216
2212 2004-06-21 Fernando Perez <fperez@colorado.edu>
2217 2004-06-21 Fernando Perez <fperez@colorado.edu>
2213
2218
2214 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2219 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2215 non-existent items are found in $PATH. Reported by Thorsten.
2220 non-existent items are found in $PATH. Reported by Thorsten.
2216
2221
2217 2004-06-20 Fernando Perez <fperez@colorado.edu>
2222 2004-06-20 Fernando Perez <fperez@colorado.edu>
2218
2223
2219 * IPython/iplib.py (complete): modified the completer so that the
2224 * IPython/iplib.py (complete): modified the completer so that the
2220 order of priorities can be easily changed at runtime.
2225 order of priorities can be easily changed at runtime.
2221
2226
2222 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2227 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2223 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2228 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2224
2229
2225 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2230 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2226 expand Python variables prepended with $ in all system calls. The
2231 expand Python variables prepended with $ in all system calls. The
2227 same was done to InteractiveShell.handle_shell_escape. Now all
2232 same was done to InteractiveShell.handle_shell_escape. Now all
2228 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2233 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2229 expansion of python variables and expressions according to the
2234 expansion of python variables and expressions according to the
2230 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2235 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2231
2236
2232 Though PEP-215 has been rejected, a similar (but simpler) one
2237 Though PEP-215 has been rejected, a similar (but simpler) one
2233 seems like it will go into Python 2.4, PEP-292 -
2238 seems like it will go into Python 2.4, PEP-292 -
2234 http://www.python.org/peps/pep-0292.html.
2239 http://www.python.org/peps/pep-0292.html.
2235
2240
2236 I'll keep the full syntax of PEP-215, since IPython has since the
2241 I'll keep the full syntax of PEP-215, since IPython has since the
2237 start used Ka-Ping Yee's reference implementation discussed there
2242 start used Ka-Ping Yee's reference implementation discussed there
2238 (Itpl), and I actually like the powerful semantics it offers.
2243 (Itpl), and I actually like the powerful semantics it offers.
2239
2244
2240 In order to access normal shell variables, the $ has to be escaped
2245 In order to access normal shell variables, the $ has to be escaped
2241 via an extra $. For example:
2246 via an extra $. For example:
2242
2247
2243 In [7]: PATH='a python variable'
2248 In [7]: PATH='a python variable'
2244
2249
2245 In [8]: !echo $PATH
2250 In [8]: !echo $PATH
2246 a python variable
2251 a python variable
2247
2252
2248 In [9]: !echo $$PATH
2253 In [9]: !echo $$PATH
2249 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2254 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2250
2255
2251 (Magic.parse_options): escape $ so the shell doesn't evaluate
2256 (Magic.parse_options): escape $ so the shell doesn't evaluate
2252 things prematurely.
2257 things prematurely.
2253
2258
2254 * IPython/iplib.py (InteractiveShell.call_alias): added the
2259 * IPython/iplib.py (InteractiveShell.call_alias): added the
2255 ability for aliases to expand python variables via $.
2260 ability for aliases to expand python variables via $.
2256
2261
2257 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2262 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2258 system, now there's a @rehash/@rehashx pair of magics. These work
2263 system, now there's a @rehash/@rehashx pair of magics. These work
2259 like the csh rehash command, and can be invoked at any time. They
2264 like the csh rehash command, and can be invoked at any time. They
2260 build a table of aliases to everything in the user's $PATH
2265 build a table of aliases to everything in the user's $PATH
2261 (@rehash uses everything, @rehashx is slower but only adds
2266 (@rehash uses everything, @rehashx is slower but only adds
2262 executable files). With this, the pysh.py-based shell profile can
2267 executable files). With this, the pysh.py-based shell profile can
2263 now simply call rehash upon startup, and full access to all
2268 now simply call rehash upon startup, and full access to all
2264 programs in the user's path is obtained.
2269 programs in the user's path is obtained.
2265
2270
2266 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2271 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2267 functionality is now fully in place. I removed the old dynamic
2272 functionality is now fully in place. I removed the old dynamic
2268 code generation based approach, in favor of a much lighter one
2273 code generation based approach, in favor of a much lighter one
2269 based on a simple dict. The advantage is that this allows me to
2274 based on a simple dict. The advantage is that this allows me to
2270 now have thousands of aliases with negligible cost (unthinkable
2275 now have thousands of aliases with negligible cost (unthinkable
2271 with the old system).
2276 with the old system).
2272
2277
2273 2004-06-19 Fernando Perez <fperez@colorado.edu>
2278 2004-06-19 Fernando Perez <fperez@colorado.edu>
2274
2279
2275 * IPython/iplib.py (__init__): extended MagicCompleter class to
2280 * IPython/iplib.py (__init__): extended MagicCompleter class to
2276 also complete (last in priority) on user aliases.
2281 also complete (last in priority) on user aliases.
2277
2282
2278 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2283 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2279 call to eval.
2284 call to eval.
2280 (ItplNS.__init__): Added a new class which functions like Itpl,
2285 (ItplNS.__init__): Added a new class which functions like Itpl,
2281 but allows configuring the namespace for the evaluation to occur
2286 but allows configuring the namespace for the evaluation to occur
2282 in.
2287 in.
2283
2288
2284 2004-06-18 Fernando Perez <fperez@colorado.edu>
2289 2004-06-18 Fernando Perez <fperez@colorado.edu>
2285
2290
2286 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2291 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2287 better message when 'exit' or 'quit' are typed (a common newbie
2292 better message when 'exit' or 'quit' are typed (a common newbie
2288 confusion).
2293 confusion).
2289
2294
2290 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2295 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2291 check for Windows users.
2296 check for Windows users.
2292
2297
2293 * IPython/iplib.py (InteractiveShell.user_setup): removed
2298 * IPython/iplib.py (InteractiveShell.user_setup): removed
2294 disabling of colors for Windows. I'll test at runtime and issue a
2299 disabling of colors for Windows. I'll test at runtime and issue a
2295 warning if Gary's readline isn't found, as to nudge users to
2300 warning if Gary's readline isn't found, as to nudge users to
2296 download it.
2301 download it.
2297
2302
2298 2004-06-16 Fernando Perez <fperez@colorado.edu>
2303 2004-06-16 Fernando Perez <fperez@colorado.edu>
2299
2304
2300 * IPython/genutils.py (Stream.__init__): changed to print errors
2305 * IPython/genutils.py (Stream.__init__): changed to print errors
2301 to sys.stderr. I had a circular dependency here. Now it's
2306 to sys.stderr. I had a circular dependency here. Now it's
2302 possible to run ipython as IDLE's shell (consider this pre-alpha,
2307 possible to run ipython as IDLE's shell (consider this pre-alpha,
2303 since true stdout things end up in the starting terminal instead
2308 since true stdout things end up in the starting terminal instead
2304 of IDLE's out).
2309 of IDLE's out).
2305
2310
2306 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2311 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2307 users who haven't # updated their prompt_in2 definitions. Remove
2312 users who haven't # updated their prompt_in2 definitions. Remove
2308 eventually.
2313 eventually.
2309 (multiple_replace): added credit to original ASPN recipe.
2314 (multiple_replace): added credit to original ASPN recipe.
2310
2315
2311 2004-06-15 Fernando Perez <fperez@colorado.edu>
2316 2004-06-15 Fernando Perez <fperez@colorado.edu>
2312
2317
2313 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2318 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2314 list of auto-defined aliases.
2319 list of auto-defined aliases.
2315
2320
2316 2004-06-13 Fernando Perez <fperez@colorado.edu>
2321 2004-06-13 Fernando Perez <fperez@colorado.edu>
2317
2322
2318 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2323 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2319 install was really requested (so setup.py can be used for other
2324 install was really requested (so setup.py can be used for other
2320 things under Windows).
2325 things under Windows).
2321
2326
2322 2004-06-10 Fernando Perez <fperez@colorado.edu>
2327 2004-06-10 Fernando Perez <fperez@colorado.edu>
2323
2328
2324 * IPython/Logger.py (Logger.create_log): Manually remove any old
2329 * IPython/Logger.py (Logger.create_log): Manually remove any old
2325 backup, since os.remove may fail under Windows. Fixes bug
2330 backup, since os.remove may fail under Windows. Fixes bug
2326 reported by Thorsten.
2331 reported by Thorsten.
2327
2332
2328 2004-06-09 Fernando Perez <fperez@colorado.edu>
2333 2004-06-09 Fernando Perez <fperez@colorado.edu>
2329
2334
2330 * examples/example-embed.py: fixed all references to %n (replaced
2335 * examples/example-embed.py: fixed all references to %n (replaced
2331 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2336 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2332 for all examples and the manual as well.
2337 for all examples and the manual as well.
2333
2338
2334 2004-06-08 Fernando Perez <fperez@colorado.edu>
2339 2004-06-08 Fernando Perez <fperez@colorado.edu>
2335
2340
2336 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2341 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2337 alignment and color management. All 3 prompt subsystems now
2342 alignment and color management. All 3 prompt subsystems now
2338 inherit from BasePrompt.
2343 inherit from BasePrompt.
2339
2344
2340 * tools/release: updates for windows installer build and tag rpms
2345 * tools/release: updates for windows installer build and tag rpms
2341 with python version (since paths are fixed).
2346 with python version (since paths are fixed).
2342
2347
2343 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2348 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2344 which will become eventually obsolete. Also fixed the default
2349 which will become eventually obsolete. Also fixed the default
2345 prompt_in2 to use \D, so at least new users start with the correct
2350 prompt_in2 to use \D, so at least new users start with the correct
2346 defaults.
2351 defaults.
2347 WARNING: Users with existing ipythonrc files will need to apply
2352 WARNING: Users with existing ipythonrc files will need to apply
2348 this fix manually!
2353 this fix manually!
2349
2354
2350 * setup.py: make windows installer (.exe). This is finally the
2355 * setup.py: make windows installer (.exe). This is finally the
2351 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2356 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2352 which I hadn't included because it required Python 2.3 (or recent
2357 which I hadn't included because it required Python 2.3 (or recent
2353 distutils).
2358 distutils).
2354
2359
2355 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2360 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2356 usage of new '\D' escape.
2361 usage of new '\D' escape.
2357
2362
2358 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2363 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2359 lacks os.getuid())
2364 lacks os.getuid())
2360 (CachedOutput.set_colors): Added the ability to turn coloring
2365 (CachedOutput.set_colors): Added the ability to turn coloring
2361 on/off with @colors even for manually defined prompt colors. It
2366 on/off with @colors even for manually defined prompt colors. It
2362 uses a nasty global, but it works safely and via the generic color
2367 uses a nasty global, but it works safely and via the generic color
2363 handling mechanism.
2368 handling mechanism.
2364 (Prompt2.__init__): Introduced new escape '\D' for continuation
2369 (Prompt2.__init__): Introduced new escape '\D' for continuation
2365 prompts. It represents the counter ('\#') as dots.
2370 prompts. It represents the counter ('\#') as dots.
2366 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2371 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2367 need to update their ipythonrc files and replace '%n' with '\D' in
2372 need to update their ipythonrc files and replace '%n' with '\D' in
2368 their prompt_in2 settings everywhere. Sorry, but there's
2373 their prompt_in2 settings everywhere. Sorry, but there's
2369 otherwise no clean way to get all prompts to properly align. The
2374 otherwise no clean way to get all prompts to properly align. The
2370 ipythonrc shipped with IPython has been updated.
2375 ipythonrc shipped with IPython has been updated.
2371
2376
2372 2004-06-07 Fernando Perez <fperez@colorado.edu>
2377 2004-06-07 Fernando Perez <fperez@colorado.edu>
2373
2378
2374 * setup.py (isfile): Pass local_icons option to latex2html, so the
2379 * setup.py (isfile): Pass local_icons option to latex2html, so the
2375 resulting HTML file is self-contained. Thanks to
2380 resulting HTML file is self-contained. Thanks to
2376 dryice-AT-liu.com.cn for the tip.
2381 dryice-AT-liu.com.cn for the tip.
2377
2382
2378 * pysh.py: I created a new profile 'shell', which implements a
2383 * pysh.py: I created a new profile 'shell', which implements a
2379 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2384 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2380 system shell, nor will it become one anytime soon. It's mainly
2385 system shell, nor will it become one anytime soon. It's mainly
2381 meant to illustrate the use of the new flexible bash-like prompts.
2386 meant to illustrate the use of the new flexible bash-like prompts.
2382 I guess it could be used by hardy souls for true shell management,
2387 I guess it could be used by hardy souls for true shell management,
2383 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2388 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2384 profile. This uses the InterpreterExec extension provided by
2389 profile. This uses the InterpreterExec extension provided by
2385 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2390 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2386
2391
2387 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2392 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2388 auto-align itself with the length of the previous input prompt
2393 auto-align itself with the length of the previous input prompt
2389 (taking into account the invisible color escapes).
2394 (taking into account the invisible color escapes).
2390 (CachedOutput.__init__): Large restructuring of this class. Now
2395 (CachedOutput.__init__): Large restructuring of this class. Now
2391 all three prompts (primary1, primary2, output) are proper objects,
2396 all three prompts (primary1, primary2, output) are proper objects,
2392 managed by the 'parent' CachedOutput class. The code is still a
2397 managed by the 'parent' CachedOutput class. The code is still a
2393 bit hackish (all prompts share state via a pointer to the cache),
2398 bit hackish (all prompts share state via a pointer to the cache),
2394 but it's overall far cleaner than before.
2399 but it's overall far cleaner than before.
2395
2400
2396 * IPython/genutils.py (getoutputerror): modified to add verbose,
2401 * IPython/genutils.py (getoutputerror): modified to add verbose,
2397 debug and header options. This makes the interface of all getout*
2402 debug and header options. This makes the interface of all getout*
2398 functions uniform.
2403 functions uniform.
2399 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2404 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2400
2405
2401 * IPython/Magic.py (Magic.default_option): added a function to
2406 * IPython/Magic.py (Magic.default_option): added a function to
2402 allow registering default options for any magic command. This
2407 allow registering default options for any magic command. This
2403 makes it easy to have profiles which customize the magics globally
2408 makes it easy to have profiles which customize the magics globally
2404 for a certain use. The values set through this function are
2409 for a certain use. The values set through this function are
2405 picked up by the parse_options() method, which all magics should
2410 picked up by the parse_options() method, which all magics should
2406 use to parse their options.
2411 use to parse their options.
2407
2412
2408 * IPython/genutils.py (warn): modified the warnings framework to
2413 * IPython/genutils.py (warn): modified the warnings framework to
2409 use the Term I/O class. I'm trying to slowly unify all of
2414 use the Term I/O class. I'm trying to slowly unify all of
2410 IPython's I/O operations to pass through Term.
2415 IPython's I/O operations to pass through Term.
2411
2416
2412 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2417 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2413 the secondary prompt to correctly match the length of the primary
2418 the secondary prompt to correctly match the length of the primary
2414 one for any prompt. Now multi-line code will properly line up
2419 one for any prompt. Now multi-line code will properly line up
2415 even for path dependent prompts, such as the new ones available
2420 even for path dependent prompts, such as the new ones available
2416 via the prompt_specials.
2421 via the prompt_specials.
2417
2422
2418 2004-06-06 Fernando Perez <fperez@colorado.edu>
2423 2004-06-06 Fernando Perez <fperez@colorado.edu>
2419
2424
2420 * IPython/Prompts.py (prompt_specials): Added the ability to have
2425 * IPython/Prompts.py (prompt_specials): Added the ability to have
2421 bash-like special sequences in the prompts, which get
2426 bash-like special sequences in the prompts, which get
2422 automatically expanded. Things like hostname, current working
2427 automatically expanded. Things like hostname, current working
2423 directory and username are implemented already, but it's easy to
2428 directory and username are implemented already, but it's easy to
2424 add more in the future. Thanks to a patch by W.J. van der Laan
2429 add more in the future. Thanks to a patch by W.J. van der Laan
2425 <gnufnork-AT-hetdigitalegat.nl>
2430 <gnufnork-AT-hetdigitalegat.nl>
2426 (prompt_specials): Added color support for prompt strings, so
2431 (prompt_specials): Added color support for prompt strings, so
2427 users can define arbitrary color setups for their prompts.
2432 users can define arbitrary color setups for their prompts.
2428
2433
2429 2004-06-05 Fernando Perez <fperez@colorado.edu>
2434 2004-06-05 Fernando Perez <fperez@colorado.edu>
2430
2435
2431 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2436 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2432 code to load Gary Bishop's readline and configure it
2437 code to load Gary Bishop's readline and configure it
2433 automatically. Thanks to Gary for help on this.
2438 automatically. Thanks to Gary for help on this.
2434
2439
2435 2004-06-01 Fernando Perez <fperez@colorado.edu>
2440 2004-06-01 Fernando Perez <fperez@colorado.edu>
2436
2441
2437 * IPython/Logger.py (Logger.create_log): fix bug for logging
2442 * IPython/Logger.py (Logger.create_log): fix bug for logging
2438 with no filename (previous fix was incomplete).
2443 with no filename (previous fix was incomplete).
2439
2444
2440 2004-05-25 Fernando Perez <fperez@colorado.edu>
2445 2004-05-25 Fernando Perez <fperez@colorado.edu>
2441
2446
2442 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2447 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2443 parens would get passed to the shell.
2448 parens would get passed to the shell.
2444
2449
2445 2004-05-20 Fernando Perez <fperez@colorado.edu>
2450 2004-05-20 Fernando Perez <fperez@colorado.edu>
2446
2451
2447 * IPython/Magic.py (Magic.magic_prun): changed default profile
2452 * IPython/Magic.py (Magic.magic_prun): changed default profile
2448 sort order to 'time' (the more common profiling need).
2453 sort order to 'time' (the more common profiling need).
2449
2454
2450 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2455 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2451 so that source code shown is guaranteed in sync with the file on
2456 so that source code shown is guaranteed in sync with the file on
2452 disk (also changed in psource). Similar fix to the one for
2457 disk (also changed in psource). Similar fix to the one for
2453 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2458 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2454 <yann.ledu-AT-noos.fr>.
2459 <yann.ledu-AT-noos.fr>.
2455
2460
2456 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2461 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2457 with a single option would not be correctly parsed. Closes
2462 with a single option would not be correctly parsed. Closes
2458 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2463 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2459 introduced in 0.6.0 (on 2004-05-06).
2464 introduced in 0.6.0 (on 2004-05-06).
2460
2465
2461 2004-05-13 *** Released version 0.6.0
2466 2004-05-13 *** Released version 0.6.0
2462
2467
2463 2004-05-13 Fernando Perez <fperez@colorado.edu>
2468 2004-05-13 Fernando Perez <fperez@colorado.edu>
2464
2469
2465 * debian/: Added debian/ directory to CVS, so that debian support
2470 * debian/: Added debian/ directory to CVS, so that debian support
2466 is publicly accessible. The debian package is maintained by Jack
2471 is publicly accessible. The debian package is maintained by Jack
2467 Moffit <jack-AT-xiph.org>.
2472 Moffit <jack-AT-xiph.org>.
2468
2473
2469 * Documentation: included the notes about an ipython-based system
2474 * Documentation: included the notes about an ipython-based system
2470 shell (the hypothetical 'pysh') into the new_design.pdf document,
2475 shell (the hypothetical 'pysh') into the new_design.pdf document,
2471 so that these ideas get distributed to users along with the
2476 so that these ideas get distributed to users along with the
2472 official documentation.
2477 official documentation.
2473
2478
2474 2004-05-10 Fernando Perez <fperez@colorado.edu>
2479 2004-05-10 Fernando Perez <fperez@colorado.edu>
2475
2480
2476 * IPython/Logger.py (Logger.create_log): fix recently introduced
2481 * IPython/Logger.py (Logger.create_log): fix recently introduced
2477 bug (misindented line) where logstart would fail when not given an
2482 bug (misindented line) where logstart would fail when not given an
2478 explicit filename.
2483 explicit filename.
2479
2484
2480 2004-05-09 Fernando Perez <fperez@colorado.edu>
2485 2004-05-09 Fernando Perez <fperez@colorado.edu>
2481
2486
2482 * IPython/Magic.py (Magic.parse_options): skip system call when
2487 * IPython/Magic.py (Magic.parse_options): skip system call when
2483 there are no options to look for. Faster, cleaner for the common
2488 there are no options to look for. Faster, cleaner for the common
2484 case.
2489 case.
2485
2490
2486 * Documentation: many updates to the manual: describing Windows
2491 * Documentation: many updates to the manual: describing Windows
2487 support better, Gnuplot updates, credits, misc small stuff. Also
2492 support better, Gnuplot updates, credits, misc small stuff. Also
2488 updated the new_design doc a bit.
2493 updated the new_design doc a bit.
2489
2494
2490 2004-05-06 *** Released version 0.6.0.rc1
2495 2004-05-06 *** Released version 0.6.0.rc1
2491
2496
2492 2004-05-06 Fernando Perez <fperez@colorado.edu>
2497 2004-05-06 Fernando Perez <fperez@colorado.edu>
2493
2498
2494 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2499 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2495 operations to use the vastly more efficient list/''.join() method.
2500 operations to use the vastly more efficient list/''.join() method.
2496 (FormattedTB.text): Fix
2501 (FormattedTB.text): Fix
2497 http://www.scipy.net/roundup/ipython/issue12 - exception source
2502 http://www.scipy.net/roundup/ipython/issue12 - exception source
2498 extract not updated after reload. Thanks to Mike Salib
2503 extract not updated after reload. Thanks to Mike Salib
2499 <msalib-AT-mit.edu> for pinning the source of the problem.
2504 <msalib-AT-mit.edu> for pinning the source of the problem.
2500 Fortunately, the solution works inside ipython and doesn't require
2505 Fortunately, the solution works inside ipython and doesn't require
2501 any changes to python proper.
2506 any changes to python proper.
2502
2507
2503 * IPython/Magic.py (Magic.parse_options): Improved to process the
2508 * IPython/Magic.py (Magic.parse_options): Improved to process the
2504 argument list as a true shell would (by actually using the
2509 argument list as a true shell would (by actually using the
2505 underlying system shell). This way, all @magics automatically get
2510 underlying system shell). This way, all @magics automatically get
2506 shell expansion for variables. Thanks to a comment by Alex
2511 shell expansion for variables. Thanks to a comment by Alex
2507 Schmolck.
2512 Schmolck.
2508
2513
2509 2004-04-04 Fernando Perez <fperez@colorado.edu>
2514 2004-04-04 Fernando Perez <fperez@colorado.edu>
2510
2515
2511 * IPython/iplib.py (InteractiveShell.interact): Added a special
2516 * IPython/iplib.py (InteractiveShell.interact): Added a special
2512 trap for a debugger quit exception, which is basically impossible
2517 trap for a debugger quit exception, which is basically impossible
2513 to handle by normal mechanisms, given what pdb does to the stack.
2518 to handle by normal mechanisms, given what pdb does to the stack.
2514 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2519 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2515
2520
2516 2004-04-03 Fernando Perez <fperez@colorado.edu>
2521 2004-04-03 Fernando Perez <fperez@colorado.edu>
2517
2522
2518 * IPython/genutils.py (Term): Standardized the names of the Term
2523 * IPython/genutils.py (Term): Standardized the names of the Term
2519 class streams to cin/cout/cerr, following C++ naming conventions
2524 class streams to cin/cout/cerr, following C++ naming conventions
2520 (I can't use in/out/err because 'in' is not a valid attribute
2525 (I can't use in/out/err because 'in' is not a valid attribute
2521 name).
2526 name).
2522
2527
2523 * IPython/iplib.py (InteractiveShell.interact): don't increment
2528 * IPython/iplib.py (InteractiveShell.interact): don't increment
2524 the prompt if there's no user input. By Daniel 'Dang' Griffith
2529 the prompt if there's no user input. By Daniel 'Dang' Griffith
2525 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2530 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2526 Francois Pinard.
2531 Francois Pinard.
2527
2532
2528 2004-04-02 Fernando Perez <fperez@colorado.edu>
2533 2004-04-02 Fernando Perez <fperez@colorado.edu>
2529
2534
2530 * IPython/genutils.py (Stream.__init__): Modified to survive at
2535 * IPython/genutils.py (Stream.__init__): Modified to survive at
2531 least importing in contexts where stdin/out/err aren't true file
2536 least importing in contexts where stdin/out/err aren't true file
2532 objects, such as PyCrust (they lack fileno() and mode). However,
2537 objects, such as PyCrust (they lack fileno() and mode). However,
2533 the recovery facilities which rely on these things existing will
2538 the recovery facilities which rely on these things existing will
2534 not work.
2539 not work.
2535
2540
2536 2004-04-01 Fernando Perez <fperez@colorado.edu>
2541 2004-04-01 Fernando Perez <fperez@colorado.edu>
2537
2542
2538 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2543 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2539 use the new getoutputerror() function, so it properly
2544 use the new getoutputerror() function, so it properly
2540 distinguishes stdout/err.
2545 distinguishes stdout/err.
2541
2546
2542 * IPython/genutils.py (getoutputerror): added a function to
2547 * IPython/genutils.py (getoutputerror): added a function to
2543 capture separately the standard output and error of a command.
2548 capture separately the standard output and error of a command.
2544 After a comment from dang on the mailing lists. This code is
2549 After a comment from dang on the mailing lists. This code is
2545 basically a modified version of commands.getstatusoutput(), from
2550 basically a modified version of commands.getstatusoutput(), from
2546 the standard library.
2551 the standard library.
2547
2552
2548 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2553 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2549 '!!' as a special syntax (shorthand) to access @sx.
2554 '!!' as a special syntax (shorthand) to access @sx.
2550
2555
2551 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2556 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2552 command and return its output as a list split on '\n'.
2557 command and return its output as a list split on '\n'.
2553
2558
2554 2004-03-31 Fernando Perez <fperez@colorado.edu>
2559 2004-03-31 Fernando Perez <fperez@colorado.edu>
2555
2560
2556 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2561 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2557 method to dictionaries used as FakeModule instances if they lack
2562 method to dictionaries used as FakeModule instances if they lack
2558 it. At least pydoc in python2.3 breaks for runtime-defined
2563 it. At least pydoc in python2.3 breaks for runtime-defined
2559 functions without this hack. At some point I need to _really_
2564 functions without this hack. At some point I need to _really_
2560 understand what FakeModule is doing, because it's a gross hack.
2565 understand what FakeModule is doing, because it's a gross hack.
2561 But it solves Arnd's problem for now...
2566 But it solves Arnd's problem for now...
2562
2567
2563 2004-02-27 Fernando Perez <fperez@colorado.edu>
2568 2004-02-27 Fernando Perez <fperez@colorado.edu>
2564
2569
2565 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2570 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2566 mode would behave erratically. Also increased the number of
2571 mode would behave erratically. Also increased the number of
2567 possible logs in rotate mod to 999. Thanks to Rod Holland
2572 possible logs in rotate mod to 999. Thanks to Rod Holland
2568 <rhh@StructureLABS.com> for the report and fixes.
2573 <rhh@StructureLABS.com> for the report and fixes.
2569
2574
2570 2004-02-26 Fernando Perez <fperez@colorado.edu>
2575 2004-02-26 Fernando Perez <fperez@colorado.edu>
2571
2576
2572 * IPython/genutils.py (page): Check that the curses module really
2577 * IPython/genutils.py (page): Check that the curses module really
2573 has the initscr attribute before trying to use it. For some
2578 has the initscr attribute before trying to use it. For some
2574 reason, the Solaris curses module is missing this. I think this
2579 reason, the Solaris curses module is missing this. I think this
2575 should be considered a Solaris python bug, but I'm not sure.
2580 should be considered a Solaris python bug, but I'm not sure.
2576
2581
2577 2004-01-17 Fernando Perez <fperez@colorado.edu>
2582 2004-01-17 Fernando Perez <fperez@colorado.edu>
2578
2583
2579 * IPython/genutils.py (Stream.__init__): Changes to try to make
2584 * IPython/genutils.py (Stream.__init__): Changes to try to make
2580 ipython robust against stdin/out/err being closed by the user.
2585 ipython robust against stdin/out/err being closed by the user.
2581 This is 'user error' (and blocks a normal python session, at least
2586 This is 'user error' (and blocks a normal python session, at least
2582 the stdout case). However, Ipython should be able to survive such
2587 the stdout case). However, Ipython should be able to survive such
2583 instances of abuse as gracefully as possible. To simplify the
2588 instances of abuse as gracefully as possible. To simplify the
2584 coding and maintain compatibility with Gary Bishop's Term
2589 coding and maintain compatibility with Gary Bishop's Term
2585 contributions, I've made use of classmethods for this. I think
2590 contributions, I've made use of classmethods for this. I think
2586 this introduces a dependency on python 2.2.
2591 this introduces a dependency on python 2.2.
2587
2592
2588 2004-01-13 Fernando Perez <fperez@colorado.edu>
2593 2004-01-13 Fernando Perez <fperez@colorado.edu>
2589
2594
2590 * IPython/numutils.py (exp_safe): simplified the code a bit and
2595 * IPython/numutils.py (exp_safe): simplified the code a bit and
2591 removed the need for importing the kinds module altogether.
2596 removed the need for importing the kinds module altogether.
2592
2597
2593 2004-01-06 Fernando Perez <fperez@colorado.edu>
2598 2004-01-06 Fernando Perez <fperez@colorado.edu>
2594
2599
2595 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2600 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2596 a magic function instead, after some community feedback. No
2601 a magic function instead, after some community feedback. No
2597 special syntax will exist for it, but its name is deliberately
2602 special syntax will exist for it, but its name is deliberately
2598 very short.
2603 very short.
2599
2604
2600 2003-12-20 Fernando Perez <fperez@colorado.edu>
2605 2003-12-20 Fernando Perez <fperez@colorado.edu>
2601
2606
2602 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2607 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2603 new functionality, to automagically assign the result of a shell
2608 new functionality, to automagically assign the result of a shell
2604 command to a variable. I'll solicit some community feedback on
2609 command to a variable. I'll solicit some community feedback on
2605 this before making it permanent.
2610 this before making it permanent.
2606
2611
2607 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2612 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2608 requested about callables for which inspect couldn't obtain a
2613 requested about callables for which inspect couldn't obtain a
2609 proper argspec. Thanks to a crash report sent by Etienne
2614 proper argspec. Thanks to a crash report sent by Etienne
2610 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2615 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2611
2616
2612 2003-12-09 Fernando Perez <fperez@colorado.edu>
2617 2003-12-09 Fernando Perez <fperez@colorado.edu>
2613
2618
2614 * IPython/genutils.py (page): patch for the pager to work across
2619 * IPython/genutils.py (page): patch for the pager to work across
2615 various versions of Windows. By Gary Bishop.
2620 various versions of Windows. By Gary Bishop.
2616
2621
2617 2003-12-04 Fernando Perez <fperez@colorado.edu>
2622 2003-12-04 Fernando Perez <fperez@colorado.edu>
2618
2623
2619 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2624 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2620 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2625 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2621 While I tested this and it looks ok, there may still be corner
2626 While I tested this and it looks ok, there may still be corner
2622 cases I've missed.
2627 cases I've missed.
2623
2628
2624 2003-12-01 Fernando Perez <fperez@colorado.edu>
2629 2003-12-01 Fernando Perez <fperez@colorado.edu>
2625
2630
2626 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2631 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2627 where a line like 'p,q=1,2' would fail because the automagic
2632 where a line like 'p,q=1,2' would fail because the automagic
2628 system would be triggered for @p.
2633 system would be triggered for @p.
2629
2634
2630 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2635 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2631 cleanups, code unmodified.
2636 cleanups, code unmodified.
2632
2637
2633 * IPython/genutils.py (Term): added a class for IPython to handle
2638 * IPython/genutils.py (Term): added a class for IPython to handle
2634 output. In most cases it will just be a proxy for stdout/err, but
2639 output. In most cases it will just be a proxy for stdout/err, but
2635 having this allows modifications to be made for some platforms,
2640 having this allows modifications to be made for some platforms,
2636 such as handling color escapes under Windows. All of this code
2641 such as handling color escapes under Windows. All of this code
2637 was contributed by Gary Bishop, with minor modifications by me.
2642 was contributed by Gary Bishop, with minor modifications by me.
2638 The actual changes affect many files.
2643 The actual changes affect many files.
2639
2644
2640 2003-11-30 Fernando Perez <fperez@colorado.edu>
2645 2003-11-30 Fernando Perez <fperez@colorado.edu>
2641
2646
2642 * IPython/iplib.py (file_matches): new completion code, courtesy
2647 * IPython/iplib.py (file_matches): new completion code, courtesy
2643 of Jeff Collins. This enables filename completion again under
2648 of Jeff Collins. This enables filename completion again under
2644 python 2.3, which disabled it at the C level.
2649 python 2.3, which disabled it at the C level.
2645
2650
2646 2003-11-11 Fernando Perez <fperez@colorado.edu>
2651 2003-11-11 Fernando Perez <fperez@colorado.edu>
2647
2652
2648 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2653 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2649 for Numeric.array(map(...)), but often convenient.
2654 for Numeric.array(map(...)), but often convenient.
2650
2655
2651 2003-11-05 Fernando Perez <fperez@colorado.edu>
2656 2003-11-05 Fernando Perez <fperez@colorado.edu>
2652
2657
2653 * IPython/numutils.py (frange): Changed a call from int() to
2658 * IPython/numutils.py (frange): Changed a call from int() to
2654 int(round()) to prevent a problem reported with arange() in the
2659 int(round()) to prevent a problem reported with arange() in the
2655 numpy list.
2660 numpy list.
2656
2661
2657 2003-10-06 Fernando Perez <fperez@colorado.edu>
2662 2003-10-06 Fernando Perez <fperez@colorado.edu>
2658
2663
2659 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2664 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2660 prevent crashes if sys lacks an argv attribute (it happens with
2665 prevent crashes if sys lacks an argv attribute (it happens with
2661 embedded interpreters which build a bare-bones sys module).
2666 embedded interpreters which build a bare-bones sys module).
2662 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2667 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2663
2668
2664 2003-09-24 Fernando Perez <fperez@colorado.edu>
2669 2003-09-24 Fernando Perez <fperez@colorado.edu>
2665
2670
2666 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2671 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2667 to protect against poorly written user objects where __getattr__
2672 to protect against poorly written user objects where __getattr__
2668 raises exceptions other than AttributeError. Thanks to a bug
2673 raises exceptions other than AttributeError. Thanks to a bug
2669 report by Oliver Sander <osander-AT-gmx.de>.
2674 report by Oliver Sander <osander-AT-gmx.de>.
2670
2675
2671 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2676 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2672 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2677 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2673
2678
2674 2003-09-09 Fernando Perez <fperez@colorado.edu>
2679 2003-09-09 Fernando Perez <fperez@colorado.edu>
2675
2680
2676 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2681 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2677 unpacking a list whith a callable as first element would
2682 unpacking a list whith a callable as first element would
2678 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2683 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2679 Collins.
2684 Collins.
2680
2685
2681 2003-08-25 *** Released version 0.5.0
2686 2003-08-25 *** Released version 0.5.0
2682
2687
2683 2003-08-22 Fernando Perez <fperez@colorado.edu>
2688 2003-08-22 Fernando Perez <fperez@colorado.edu>
2684
2689
2685 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2690 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2686 improperly defined user exceptions. Thanks to feedback from Mark
2691 improperly defined user exceptions. Thanks to feedback from Mark
2687 Russell <mrussell-AT-verio.net>.
2692 Russell <mrussell-AT-verio.net>.
2688
2693
2689 2003-08-20 Fernando Perez <fperez@colorado.edu>
2694 2003-08-20 Fernando Perez <fperez@colorado.edu>
2690
2695
2691 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2696 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2692 printing so that it would print multi-line string forms starting
2697 printing so that it would print multi-line string forms starting
2693 with a new line. This way the formatting is better respected for
2698 with a new line. This way the formatting is better respected for
2694 objects which work hard to make nice string forms.
2699 objects which work hard to make nice string forms.
2695
2700
2696 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2701 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2697 autocall would overtake data access for objects with both
2702 autocall would overtake data access for objects with both
2698 __getitem__ and __call__.
2703 __getitem__ and __call__.
2699
2704
2700 2003-08-19 *** Released version 0.5.0-rc1
2705 2003-08-19 *** Released version 0.5.0-rc1
2701
2706
2702 2003-08-19 Fernando Perez <fperez@colorado.edu>
2707 2003-08-19 Fernando Perez <fperez@colorado.edu>
2703
2708
2704 * IPython/deep_reload.py (load_tail): single tiny change here
2709 * IPython/deep_reload.py (load_tail): single tiny change here
2705 seems to fix the long-standing bug of dreload() failing to work
2710 seems to fix the long-standing bug of dreload() failing to work
2706 for dotted names. But this module is pretty tricky, so I may have
2711 for dotted names. But this module is pretty tricky, so I may have
2707 missed some subtlety. Needs more testing!.
2712 missed some subtlety. Needs more testing!.
2708
2713
2709 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2714 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2710 exceptions which have badly implemented __str__ methods.
2715 exceptions which have badly implemented __str__ methods.
2711 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2716 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2712 which I've been getting reports about from Python 2.3 users. I
2717 which I've been getting reports about from Python 2.3 users. I
2713 wish I had a simple test case to reproduce the problem, so I could
2718 wish I had a simple test case to reproduce the problem, so I could
2714 either write a cleaner workaround or file a bug report if
2719 either write a cleaner workaround or file a bug report if
2715 necessary.
2720 necessary.
2716
2721
2717 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2722 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2718 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2723 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2719 a bug report by Tjabo Kloppenburg.
2724 a bug report by Tjabo Kloppenburg.
2720
2725
2721 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2726 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2722 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2727 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2723 seems rather unstable. Thanks to a bug report by Tjabo
2728 seems rather unstable. Thanks to a bug report by Tjabo
2724 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2729 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2725
2730
2726 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2731 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2727 this out soon because of the critical fixes in the inner loop for
2732 this out soon because of the critical fixes in the inner loop for
2728 generators.
2733 generators.
2729
2734
2730 * IPython/Magic.py (Magic.getargspec): removed. This (and
2735 * IPython/Magic.py (Magic.getargspec): removed. This (and
2731 _get_def) have been obsoleted by OInspect for a long time, I
2736 _get_def) have been obsoleted by OInspect for a long time, I
2732 hadn't noticed that they were dead code.
2737 hadn't noticed that they were dead code.
2733 (Magic._ofind): restored _ofind functionality for a few literals
2738 (Magic._ofind): restored _ofind functionality for a few literals
2734 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2739 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2735 for things like "hello".capitalize?, since that would require a
2740 for things like "hello".capitalize?, since that would require a
2736 potentially dangerous eval() again.
2741 potentially dangerous eval() again.
2737
2742
2738 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2743 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2739 logic a bit more to clean up the escapes handling and minimize the
2744 logic a bit more to clean up the escapes handling and minimize the
2740 use of _ofind to only necessary cases. The interactive 'feel' of
2745 use of _ofind to only necessary cases. The interactive 'feel' of
2741 IPython should have improved quite a bit with the changes in
2746 IPython should have improved quite a bit with the changes in
2742 _prefilter and _ofind (besides being far safer than before).
2747 _prefilter and _ofind (besides being far safer than before).
2743
2748
2744 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2749 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2745 obscure, never reported). Edit would fail to find the object to
2750 obscure, never reported). Edit would fail to find the object to
2746 edit under some circumstances.
2751 edit under some circumstances.
2747 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2752 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2748 which were causing double-calling of generators. Those eval calls
2753 which were causing double-calling of generators. Those eval calls
2749 were _very_ dangerous, since code with side effects could be
2754 were _very_ dangerous, since code with side effects could be
2750 triggered. As they say, 'eval is evil'... These were the
2755 triggered. As they say, 'eval is evil'... These were the
2751 nastiest evals in IPython. Besides, _ofind is now far simpler,
2756 nastiest evals in IPython. Besides, _ofind is now far simpler,
2752 and it should also be quite a bit faster. Its use of inspect is
2757 and it should also be quite a bit faster. Its use of inspect is
2753 also safer, so perhaps some of the inspect-related crashes I've
2758 also safer, so perhaps some of the inspect-related crashes I've
2754 seen lately with Python 2.3 might be taken care of. That will
2759 seen lately with Python 2.3 might be taken care of. That will
2755 need more testing.
2760 need more testing.
2756
2761
2757 2003-08-17 Fernando Perez <fperez@colorado.edu>
2762 2003-08-17 Fernando Perez <fperez@colorado.edu>
2758
2763
2759 * IPython/iplib.py (InteractiveShell._prefilter): significant
2764 * IPython/iplib.py (InteractiveShell._prefilter): significant
2760 simplifications to the logic for handling user escapes. Faster
2765 simplifications to the logic for handling user escapes. Faster
2761 and simpler code.
2766 and simpler code.
2762
2767
2763 2003-08-14 Fernando Perez <fperez@colorado.edu>
2768 2003-08-14 Fernando Perez <fperez@colorado.edu>
2764
2769
2765 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2770 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2766 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2771 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2767 but it should be quite a bit faster. And the recursive version
2772 but it should be quite a bit faster. And the recursive version
2768 generated O(log N) intermediate storage for all rank>1 arrays,
2773 generated O(log N) intermediate storage for all rank>1 arrays,
2769 even if they were contiguous.
2774 even if they were contiguous.
2770 (l1norm): Added this function.
2775 (l1norm): Added this function.
2771 (norm): Added this function for arbitrary norms (including
2776 (norm): Added this function for arbitrary norms (including
2772 l-infinity). l1 and l2 are still special cases for convenience
2777 l-infinity). l1 and l2 are still special cases for convenience
2773 and speed.
2778 and speed.
2774
2779
2775 2003-08-03 Fernando Perez <fperez@colorado.edu>
2780 2003-08-03 Fernando Perez <fperez@colorado.edu>
2776
2781
2777 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2782 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2778 exceptions, which now raise PendingDeprecationWarnings in Python
2783 exceptions, which now raise PendingDeprecationWarnings in Python
2779 2.3. There were some in Magic and some in Gnuplot2.
2784 2.3. There were some in Magic and some in Gnuplot2.
2780
2785
2781 2003-06-30 Fernando Perez <fperez@colorado.edu>
2786 2003-06-30 Fernando Perez <fperez@colorado.edu>
2782
2787
2783 * IPython/genutils.py (page): modified to call curses only for
2788 * IPython/genutils.py (page): modified to call curses only for
2784 terminals where TERM=='xterm'. After problems under many other
2789 terminals where TERM=='xterm'. After problems under many other
2785 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2790 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2786
2791
2787 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2792 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2788 would be triggered when readline was absent. This was just an old
2793 would be triggered when readline was absent. This was just an old
2789 debugging statement I'd forgotten to take out.
2794 debugging statement I'd forgotten to take out.
2790
2795
2791 2003-06-20 Fernando Perez <fperez@colorado.edu>
2796 2003-06-20 Fernando Perez <fperez@colorado.edu>
2792
2797
2793 * IPython/genutils.py (clock): modified to return only user time
2798 * IPython/genutils.py (clock): modified to return only user time
2794 (not counting system time), after a discussion on scipy. While
2799 (not counting system time), after a discussion on scipy. While
2795 system time may be a useful quantity occasionally, it may much
2800 system time may be a useful quantity occasionally, it may much
2796 more easily be skewed by occasional swapping or other similar
2801 more easily be skewed by occasional swapping or other similar
2797 activity.
2802 activity.
2798
2803
2799 2003-06-05 Fernando Perez <fperez@colorado.edu>
2804 2003-06-05 Fernando Perez <fperez@colorado.edu>
2800
2805
2801 * IPython/numutils.py (identity): new function, for building
2806 * IPython/numutils.py (identity): new function, for building
2802 arbitrary rank Kronecker deltas (mostly backwards compatible with
2807 arbitrary rank Kronecker deltas (mostly backwards compatible with
2803 Numeric.identity)
2808 Numeric.identity)
2804
2809
2805 2003-06-03 Fernando Perez <fperez@colorado.edu>
2810 2003-06-03 Fernando Perez <fperez@colorado.edu>
2806
2811
2807 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2812 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2808 arguments passed to magics with spaces, to allow trailing '\' to
2813 arguments passed to magics with spaces, to allow trailing '\' to
2809 work normally (mainly for Windows users).
2814 work normally (mainly for Windows users).
2810
2815
2811 2003-05-29 Fernando Perez <fperez@colorado.edu>
2816 2003-05-29 Fernando Perez <fperez@colorado.edu>
2812
2817
2813 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2818 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2814 instead of pydoc.help. This fixes a bizarre behavior where
2819 instead of pydoc.help. This fixes a bizarre behavior where
2815 printing '%s' % locals() would trigger the help system. Now
2820 printing '%s' % locals() would trigger the help system. Now
2816 ipython behaves like normal python does.
2821 ipython behaves like normal python does.
2817
2822
2818 Note that if one does 'from pydoc import help', the bizarre
2823 Note that if one does 'from pydoc import help', the bizarre
2819 behavior returns, but this will also happen in normal python, so
2824 behavior returns, but this will also happen in normal python, so
2820 it's not an ipython bug anymore (it has to do with how pydoc.help
2825 it's not an ipython bug anymore (it has to do with how pydoc.help
2821 is implemented).
2826 is implemented).
2822
2827
2823 2003-05-22 Fernando Perez <fperez@colorado.edu>
2828 2003-05-22 Fernando Perez <fperez@colorado.edu>
2824
2829
2825 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2830 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2826 return [] instead of None when nothing matches, also match to end
2831 return [] instead of None when nothing matches, also match to end
2827 of line. Patch by Gary Bishop.
2832 of line. Patch by Gary Bishop.
2828
2833
2829 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2834 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2830 protection as before, for files passed on the command line. This
2835 protection as before, for files passed on the command line. This
2831 prevents the CrashHandler from kicking in if user files call into
2836 prevents the CrashHandler from kicking in if user files call into
2832 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2837 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2833 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2838 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2834
2839
2835 2003-05-20 *** Released version 0.4.0
2840 2003-05-20 *** Released version 0.4.0
2836
2841
2837 2003-05-20 Fernando Perez <fperez@colorado.edu>
2842 2003-05-20 Fernando Perez <fperez@colorado.edu>
2838
2843
2839 * setup.py: added support for manpages. It's a bit hackish b/c of
2844 * setup.py: added support for manpages. It's a bit hackish b/c of
2840 a bug in the way the bdist_rpm distutils target handles gzipped
2845 a bug in the way the bdist_rpm distutils target handles gzipped
2841 manpages, but it works. After a patch by Jack.
2846 manpages, but it works. After a patch by Jack.
2842
2847
2843 2003-05-19 Fernando Perez <fperez@colorado.edu>
2848 2003-05-19 Fernando Perez <fperez@colorado.edu>
2844
2849
2845 * IPython/numutils.py: added a mockup of the kinds module, since
2850 * IPython/numutils.py: added a mockup of the kinds module, since
2846 it was recently removed from Numeric. This way, numutils will
2851 it was recently removed from Numeric. This way, numutils will
2847 work for all users even if they are missing kinds.
2852 work for all users even if they are missing kinds.
2848
2853
2849 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2854 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2850 failure, which can occur with SWIG-wrapped extensions. After a
2855 failure, which can occur with SWIG-wrapped extensions. After a
2851 crash report from Prabhu.
2856 crash report from Prabhu.
2852
2857
2853 2003-05-16 Fernando Perez <fperez@colorado.edu>
2858 2003-05-16 Fernando Perez <fperez@colorado.edu>
2854
2859
2855 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2860 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2856 protect ipython from user code which may call directly
2861 protect ipython from user code which may call directly
2857 sys.excepthook (this looks like an ipython crash to the user, even
2862 sys.excepthook (this looks like an ipython crash to the user, even
2858 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2863 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2859 This is especially important to help users of WxWindows, but may
2864 This is especially important to help users of WxWindows, but may
2860 also be useful in other cases.
2865 also be useful in other cases.
2861
2866
2862 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2867 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2863 an optional tb_offset to be specified, and to preserve exception
2868 an optional tb_offset to be specified, and to preserve exception
2864 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2869 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2865
2870
2866 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2871 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2867
2872
2868 2003-05-15 Fernando Perez <fperez@colorado.edu>
2873 2003-05-15 Fernando Perez <fperez@colorado.edu>
2869
2874
2870 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2875 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2871 installing for a new user under Windows.
2876 installing for a new user under Windows.
2872
2877
2873 2003-05-12 Fernando Perez <fperez@colorado.edu>
2878 2003-05-12 Fernando Perez <fperez@colorado.edu>
2874
2879
2875 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2880 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2876 handler for Emacs comint-based lines. Currently it doesn't do
2881 handler for Emacs comint-based lines. Currently it doesn't do
2877 much (but importantly, it doesn't update the history cache). In
2882 much (but importantly, it doesn't update the history cache). In
2878 the future it may be expanded if Alex needs more functionality
2883 the future it may be expanded if Alex needs more functionality
2879 there.
2884 there.
2880
2885
2881 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2886 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2882 info to crash reports.
2887 info to crash reports.
2883
2888
2884 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2889 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2885 just like Python's -c. Also fixed crash with invalid -color
2890 just like Python's -c. Also fixed crash with invalid -color
2886 option value at startup. Thanks to Will French
2891 option value at startup. Thanks to Will French
2887 <wfrench-AT-bestweb.net> for the bug report.
2892 <wfrench-AT-bestweb.net> for the bug report.
2888
2893
2889 2003-05-09 Fernando Perez <fperez@colorado.edu>
2894 2003-05-09 Fernando Perez <fperez@colorado.edu>
2890
2895
2891 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2896 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2892 to EvalDict (it's a mapping, after all) and simplified its code
2897 to EvalDict (it's a mapping, after all) and simplified its code
2893 quite a bit, after a nice discussion on c.l.py where Gustavo
2898 quite a bit, after a nice discussion on c.l.py where Gustavo
2894 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2899 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2895
2900
2896 2003-04-30 Fernando Perez <fperez@colorado.edu>
2901 2003-04-30 Fernando Perez <fperez@colorado.edu>
2897
2902
2898 * IPython/genutils.py (timings_out): modified it to reduce its
2903 * IPython/genutils.py (timings_out): modified it to reduce its
2899 overhead in the common reps==1 case.
2904 overhead in the common reps==1 case.
2900
2905
2901 2003-04-29 Fernando Perez <fperez@colorado.edu>
2906 2003-04-29 Fernando Perez <fperez@colorado.edu>
2902
2907
2903 * IPython/genutils.py (timings_out): Modified to use the resource
2908 * IPython/genutils.py (timings_out): Modified to use the resource
2904 module, which avoids the wraparound problems of time.clock().
2909 module, which avoids the wraparound problems of time.clock().
2905
2910
2906 2003-04-17 *** Released version 0.2.15pre4
2911 2003-04-17 *** Released version 0.2.15pre4
2907
2912
2908 2003-04-17 Fernando Perez <fperez@colorado.edu>
2913 2003-04-17 Fernando Perez <fperez@colorado.edu>
2909
2914
2910 * setup.py (scriptfiles): Split windows-specific stuff over to a
2915 * setup.py (scriptfiles): Split windows-specific stuff over to a
2911 separate file, in an attempt to have a Windows GUI installer.
2916 separate file, in an attempt to have a Windows GUI installer.
2912 That didn't work, but part of the groundwork is done.
2917 That didn't work, but part of the groundwork is done.
2913
2918
2914 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2919 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2915 indent/unindent with 4 spaces. Particularly useful in combination
2920 indent/unindent with 4 spaces. Particularly useful in combination
2916 with the new auto-indent option.
2921 with the new auto-indent option.
2917
2922
2918 2003-04-16 Fernando Perez <fperez@colorado.edu>
2923 2003-04-16 Fernando Perez <fperez@colorado.edu>
2919
2924
2920 * IPython/Magic.py: various replacements of self.rc for
2925 * IPython/Magic.py: various replacements of self.rc for
2921 self.shell.rc. A lot more remains to be done to fully disentangle
2926 self.shell.rc. A lot more remains to be done to fully disentangle
2922 this class from the main Shell class.
2927 this class from the main Shell class.
2923
2928
2924 * IPython/GnuplotRuntime.py: added checks for mouse support so
2929 * IPython/GnuplotRuntime.py: added checks for mouse support so
2925 that we don't try to enable it if the current gnuplot doesn't
2930 that we don't try to enable it if the current gnuplot doesn't
2926 really support it. Also added checks so that we don't try to
2931 really support it. Also added checks so that we don't try to
2927 enable persist under Windows (where Gnuplot doesn't recognize the
2932 enable persist under Windows (where Gnuplot doesn't recognize the
2928 option).
2933 option).
2929
2934
2930 * IPython/iplib.py (InteractiveShell.interact): Added optional
2935 * IPython/iplib.py (InteractiveShell.interact): Added optional
2931 auto-indenting code, after a patch by King C. Shu
2936 auto-indenting code, after a patch by King C. Shu
2932 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2937 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2933 get along well with pasting indented code. If I ever figure out
2938 get along well with pasting indented code. If I ever figure out
2934 how to make that part go well, it will become on by default.
2939 how to make that part go well, it will become on by default.
2935
2940
2936 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2941 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2937 crash ipython if there was an unmatched '%' in the user's prompt
2942 crash ipython if there was an unmatched '%' in the user's prompt
2938 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2943 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2939
2944
2940 * IPython/iplib.py (InteractiveShell.interact): removed the
2945 * IPython/iplib.py (InteractiveShell.interact): removed the
2941 ability to ask the user whether he wants to crash or not at the
2946 ability to ask the user whether he wants to crash or not at the
2942 'last line' exception handler. Calling functions at that point
2947 'last line' exception handler. Calling functions at that point
2943 changes the stack, and the error reports would have incorrect
2948 changes the stack, and the error reports would have incorrect
2944 tracebacks.
2949 tracebacks.
2945
2950
2946 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2951 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2947 pass through a peger a pretty-printed form of any object. After a
2952 pass through a peger a pretty-printed form of any object. After a
2948 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2953 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2949
2954
2950 2003-04-14 Fernando Perez <fperez@colorado.edu>
2955 2003-04-14 Fernando Perez <fperez@colorado.edu>
2951
2956
2952 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2957 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2953 all files in ~ would be modified at first install (instead of
2958 all files in ~ would be modified at first install (instead of
2954 ~/.ipython). This could be potentially disastrous, as the
2959 ~/.ipython). This could be potentially disastrous, as the
2955 modification (make line-endings native) could damage binary files.
2960 modification (make line-endings native) could damage binary files.
2956
2961
2957 2003-04-10 Fernando Perez <fperez@colorado.edu>
2962 2003-04-10 Fernando Perez <fperez@colorado.edu>
2958
2963
2959 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2964 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2960 handle only lines which are invalid python. This now means that
2965 handle only lines which are invalid python. This now means that
2961 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2966 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2962 for the bug report.
2967 for the bug report.
2963
2968
2964 2003-04-01 Fernando Perez <fperez@colorado.edu>
2969 2003-04-01 Fernando Perez <fperez@colorado.edu>
2965
2970
2966 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2971 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2967 where failing to set sys.last_traceback would crash pdb.pm().
2972 where failing to set sys.last_traceback would crash pdb.pm().
2968 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2973 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2969 report.
2974 report.
2970
2975
2971 2003-03-25 Fernando Perez <fperez@colorado.edu>
2976 2003-03-25 Fernando Perez <fperez@colorado.edu>
2972
2977
2973 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2978 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2974 before printing it (it had a lot of spurious blank lines at the
2979 before printing it (it had a lot of spurious blank lines at the
2975 end).
2980 end).
2976
2981
2977 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2982 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2978 output would be sent 21 times! Obviously people don't use this
2983 output would be sent 21 times! Obviously people don't use this
2979 too often, or I would have heard about it.
2984 too often, or I would have heard about it.
2980
2985
2981 2003-03-24 Fernando Perez <fperez@colorado.edu>
2986 2003-03-24 Fernando Perez <fperez@colorado.edu>
2982
2987
2983 * setup.py (scriptfiles): renamed the data_files parameter from
2988 * setup.py (scriptfiles): renamed the data_files parameter from
2984 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2989 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2985 for the patch.
2990 for the patch.
2986
2991
2987 2003-03-20 Fernando Perez <fperez@colorado.edu>
2992 2003-03-20 Fernando Perez <fperez@colorado.edu>
2988
2993
2989 * IPython/genutils.py (error): added error() and fatal()
2994 * IPython/genutils.py (error): added error() and fatal()
2990 functions.
2995 functions.
2991
2996
2992 2003-03-18 *** Released version 0.2.15pre3
2997 2003-03-18 *** Released version 0.2.15pre3
2993
2998
2994 2003-03-18 Fernando Perez <fperez@colorado.edu>
2999 2003-03-18 Fernando Perez <fperez@colorado.edu>
2995
3000
2996 * setupext/install_data_ext.py
3001 * setupext/install_data_ext.py
2997 (install_data_ext.initialize_options): Class contributed by Jack
3002 (install_data_ext.initialize_options): Class contributed by Jack
2998 Moffit for fixing the old distutils hack. He is sending this to
3003 Moffit for fixing the old distutils hack. He is sending this to
2999 the distutils folks so in the future we may not need it as a
3004 the distutils folks so in the future we may not need it as a
3000 private fix.
3005 private fix.
3001
3006
3002 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3007 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3003 changes for Debian packaging. See his patch for full details.
3008 changes for Debian packaging. See his patch for full details.
3004 The old distutils hack of making the ipythonrc* files carry a
3009 The old distutils hack of making the ipythonrc* files carry a
3005 bogus .py extension is gone, at last. Examples were moved to a
3010 bogus .py extension is gone, at last. Examples were moved to a
3006 separate subdir under doc/, and the separate executable scripts
3011 separate subdir under doc/, and the separate executable scripts
3007 now live in their own directory. Overall a great cleanup. The
3012 now live in their own directory. Overall a great cleanup. The
3008 manual was updated to use the new files, and setup.py has been
3013 manual was updated to use the new files, and setup.py has been
3009 fixed for this setup.
3014 fixed for this setup.
3010
3015
3011 * IPython/PyColorize.py (Parser.usage): made non-executable and
3016 * IPython/PyColorize.py (Parser.usage): made non-executable and
3012 created a pycolor wrapper around it to be included as a script.
3017 created a pycolor wrapper around it to be included as a script.
3013
3018
3014 2003-03-12 *** Released version 0.2.15pre2
3019 2003-03-12 *** Released version 0.2.15pre2
3015
3020
3016 2003-03-12 Fernando Perez <fperez@colorado.edu>
3021 2003-03-12 Fernando Perez <fperez@colorado.edu>
3017
3022
3018 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3023 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3019 long-standing problem with garbage characters in some terminals.
3024 long-standing problem with garbage characters in some terminals.
3020 The issue was really that the \001 and \002 escapes must _only_ be
3025 The issue was really that the \001 and \002 escapes must _only_ be
3021 passed to input prompts (which call readline), but _never_ to
3026 passed to input prompts (which call readline), but _never_ to
3022 normal text to be printed on screen. I changed ColorANSI to have
3027 normal text to be printed on screen. I changed ColorANSI to have
3023 two classes: TermColors and InputTermColors, each with the
3028 two classes: TermColors and InputTermColors, each with the
3024 appropriate escapes for input prompts or normal text. The code in
3029 appropriate escapes for input prompts or normal text. The code in
3025 Prompts.py got slightly more complicated, but this very old and
3030 Prompts.py got slightly more complicated, but this very old and
3026 annoying bug is finally fixed.
3031 annoying bug is finally fixed.
3027
3032
3028 All the credit for nailing down the real origin of this problem
3033 All the credit for nailing down the real origin of this problem
3029 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3034 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3030 *Many* thanks to him for spending quite a bit of effort on this.
3035 *Many* thanks to him for spending quite a bit of effort on this.
3031
3036
3032 2003-03-05 *** Released version 0.2.15pre1
3037 2003-03-05 *** Released version 0.2.15pre1
3033
3038
3034 2003-03-03 Fernando Perez <fperez@colorado.edu>
3039 2003-03-03 Fernando Perez <fperez@colorado.edu>
3035
3040
3036 * IPython/FakeModule.py: Moved the former _FakeModule to a
3041 * IPython/FakeModule.py: Moved the former _FakeModule to a
3037 separate file, because it's also needed by Magic (to fix a similar
3042 separate file, because it's also needed by Magic (to fix a similar
3038 pickle-related issue in @run).
3043 pickle-related issue in @run).
3039
3044
3040 2003-03-02 Fernando Perez <fperez@colorado.edu>
3045 2003-03-02 Fernando Perez <fperez@colorado.edu>
3041
3046
3042 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3047 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3043 the autocall option at runtime.
3048 the autocall option at runtime.
3044 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3049 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3045 across Magic.py to start separating Magic from InteractiveShell.
3050 across Magic.py to start separating Magic from InteractiveShell.
3046 (Magic._ofind): Fixed to return proper namespace for dotted
3051 (Magic._ofind): Fixed to return proper namespace for dotted
3047 names. Before, a dotted name would always return 'not currently
3052 names. Before, a dotted name would always return 'not currently
3048 defined', because it would find the 'parent'. s.x would be found,
3053 defined', because it would find the 'parent'. s.x would be found,
3049 but since 'x' isn't defined by itself, it would get confused.
3054 but since 'x' isn't defined by itself, it would get confused.
3050 (Magic.magic_run): Fixed pickling problems reported by Ralf
3055 (Magic.magic_run): Fixed pickling problems reported by Ralf
3051 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3056 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3052 that I'd used when Mike Heeter reported similar issues at the
3057 that I'd used when Mike Heeter reported similar issues at the
3053 top-level, but now for @run. It boils down to injecting the
3058 top-level, but now for @run. It boils down to injecting the
3054 namespace where code is being executed with something that looks
3059 namespace where code is being executed with something that looks
3055 enough like a module to fool pickle.dump(). Since a pickle stores
3060 enough like a module to fool pickle.dump(). Since a pickle stores
3056 a named reference to the importing module, we need this for
3061 a named reference to the importing module, we need this for
3057 pickles to save something sensible.
3062 pickles to save something sensible.
3058
3063
3059 * IPython/ipmaker.py (make_IPython): added an autocall option.
3064 * IPython/ipmaker.py (make_IPython): added an autocall option.
3060
3065
3061 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3066 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3062 the auto-eval code. Now autocalling is an option, and the code is
3067 the auto-eval code. Now autocalling is an option, and the code is
3063 also vastly safer. There is no more eval() involved at all.
3068 also vastly safer. There is no more eval() involved at all.
3064
3069
3065 2003-03-01 Fernando Perez <fperez@colorado.edu>
3070 2003-03-01 Fernando Perez <fperez@colorado.edu>
3066
3071
3067 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3072 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3068 dict with named keys instead of a tuple.
3073 dict with named keys instead of a tuple.
3069
3074
3070 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3075 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3071
3076
3072 * setup.py (make_shortcut): Fixed message about directories
3077 * setup.py (make_shortcut): Fixed message about directories
3073 created during Windows installation (the directories were ok, just
3078 created during Windows installation (the directories were ok, just
3074 the printed message was misleading). Thanks to Chris Liechti
3079 the printed message was misleading). Thanks to Chris Liechti
3075 <cliechti-AT-gmx.net> for the heads up.
3080 <cliechti-AT-gmx.net> for the heads up.
3076
3081
3077 2003-02-21 Fernando Perez <fperez@colorado.edu>
3082 2003-02-21 Fernando Perez <fperez@colorado.edu>
3078
3083
3079 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3084 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3080 of ValueError exception when checking for auto-execution. This
3085 of ValueError exception when checking for auto-execution. This
3081 one is raised by things like Numeric arrays arr.flat when the
3086 one is raised by things like Numeric arrays arr.flat when the
3082 array is non-contiguous.
3087 array is non-contiguous.
3083
3088
3084 2003-01-31 Fernando Perez <fperez@colorado.edu>
3089 2003-01-31 Fernando Perez <fperez@colorado.edu>
3085
3090
3086 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3091 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3087 not return any value at all (even though the command would get
3092 not return any value at all (even though the command would get
3088 executed).
3093 executed).
3089 (xsys): Flush stdout right after printing the command to ensure
3094 (xsys): Flush stdout right after printing the command to ensure
3090 proper ordering of commands and command output in the total
3095 proper ordering of commands and command output in the total
3091 output.
3096 output.
3092 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3097 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3093 system/getoutput as defaults. The old ones are kept for
3098 system/getoutput as defaults. The old ones are kept for
3094 compatibility reasons, so no code which uses this library needs
3099 compatibility reasons, so no code which uses this library needs
3095 changing.
3100 changing.
3096
3101
3097 2003-01-27 *** Released version 0.2.14
3102 2003-01-27 *** Released version 0.2.14
3098
3103
3099 2003-01-25 Fernando Perez <fperez@colorado.edu>
3104 2003-01-25 Fernando Perez <fperez@colorado.edu>
3100
3105
3101 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3106 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3102 functions defined in previous edit sessions could not be re-edited
3107 functions defined in previous edit sessions could not be re-edited
3103 (because the temp files were immediately removed). Now temp files
3108 (because the temp files were immediately removed). Now temp files
3104 are removed only at IPython's exit.
3109 are removed only at IPython's exit.
3105 (Magic.magic_run): Improved @run to perform shell-like expansions
3110 (Magic.magic_run): Improved @run to perform shell-like expansions
3106 on its arguments (~users and $VARS). With this, @run becomes more
3111 on its arguments (~users and $VARS). With this, @run becomes more
3107 like a normal command-line.
3112 like a normal command-line.
3108
3113
3109 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3114 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3110 bugs related to embedding and cleaned up that code. A fairly
3115 bugs related to embedding and cleaned up that code. A fairly
3111 important one was the impossibility to access the global namespace
3116 important one was the impossibility to access the global namespace
3112 through the embedded IPython (only local variables were visible).
3117 through the embedded IPython (only local variables were visible).
3113
3118
3114 2003-01-14 Fernando Perez <fperez@colorado.edu>
3119 2003-01-14 Fernando Perez <fperez@colorado.edu>
3115
3120
3116 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3121 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3117 auto-calling to be a bit more conservative. Now it doesn't get
3122 auto-calling to be a bit more conservative. Now it doesn't get
3118 triggered if any of '!=()<>' are in the rest of the input line, to
3123 triggered if any of '!=()<>' are in the rest of the input line, to
3119 allow comparing callables. Thanks to Alex for the heads up.
3124 allow comparing callables. Thanks to Alex for the heads up.
3120
3125
3121 2003-01-07 Fernando Perez <fperez@colorado.edu>
3126 2003-01-07 Fernando Perez <fperez@colorado.edu>
3122
3127
3123 * IPython/genutils.py (page): fixed estimation of the number of
3128 * IPython/genutils.py (page): fixed estimation of the number of
3124 lines in a string to be paged to simply count newlines. This
3129 lines in a string to be paged to simply count newlines. This
3125 prevents over-guessing due to embedded escape sequences. A better
3130 prevents over-guessing due to embedded escape sequences. A better
3126 long-term solution would involve stripping out the control chars
3131 long-term solution would involve stripping out the control chars
3127 for the count, but it's potentially so expensive I just don't
3132 for the count, but it's potentially so expensive I just don't
3128 think it's worth doing.
3133 think it's worth doing.
3129
3134
3130 2002-12-19 *** Released version 0.2.14pre50
3135 2002-12-19 *** Released version 0.2.14pre50
3131
3136
3132 2002-12-19 Fernando Perez <fperez@colorado.edu>
3137 2002-12-19 Fernando Perez <fperez@colorado.edu>
3133
3138
3134 * tools/release (version): Changed release scripts to inform
3139 * tools/release (version): Changed release scripts to inform
3135 Andrea and build a NEWS file with a list of recent changes.
3140 Andrea and build a NEWS file with a list of recent changes.
3136
3141
3137 * IPython/ColorANSI.py (__all__): changed terminal detection
3142 * IPython/ColorANSI.py (__all__): changed terminal detection
3138 code. Seems to work better for xterms without breaking
3143 code. Seems to work better for xterms without breaking
3139 konsole. Will need more testing to determine if WinXP and Mac OSX
3144 konsole. Will need more testing to determine if WinXP and Mac OSX
3140 also work ok.
3145 also work ok.
3141
3146
3142 2002-12-18 *** Released version 0.2.14pre49
3147 2002-12-18 *** Released version 0.2.14pre49
3143
3148
3144 2002-12-18 Fernando Perez <fperez@colorado.edu>
3149 2002-12-18 Fernando Perez <fperez@colorado.edu>
3145
3150
3146 * Docs: added new info about Mac OSX, from Andrea.
3151 * Docs: added new info about Mac OSX, from Andrea.
3147
3152
3148 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3153 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3149 allow direct plotting of python strings whose format is the same
3154 allow direct plotting of python strings whose format is the same
3150 of gnuplot data files.
3155 of gnuplot data files.
3151
3156
3152 2002-12-16 Fernando Perez <fperez@colorado.edu>
3157 2002-12-16 Fernando Perez <fperez@colorado.edu>
3153
3158
3154 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3159 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3155 value of exit question to be acknowledged.
3160 value of exit question to be acknowledged.
3156
3161
3157 2002-12-03 Fernando Perez <fperez@colorado.edu>
3162 2002-12-03 Fernando Perez <fperez@colorado.edu>
3158
3163
3159 * IPython/ipmaker.py: removed generators, which had been added
3164 * IPython/ipmaker.py: removed generators, which had been added
3160 by mistake in an earlier debugging run. This was causing trouble
3165 by mistake in an earlier debugging run. This was causing trouble
3161 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3166 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3162 for pointing this out.
3167 for pointing this out.
3163
3168
3164 2002-11-17 Fernando Perez <fperez@colorado.edu>
3169 2002-11-17 Fernando Perez <fperez@colorado.edu>
3165
3170
3166 * Manual: updated the Gnuplot section.
3171 * Manual: updated the Gnuplot section.
3167
3172
3168 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3173 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3169 a much better split of what goes in Runtime and what goes in
3174 a much better split of what goes in Runtime and what goes in
3170 Interactive.
3175 Interactive.
3171
3176
3172 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3177 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3173 being imported from iplib.
3178 being imported from iplib.
3174
3179
3175 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3180 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3176 for command-passing. Now the global Gnuplot instance is called
3181 for command-passing. Now the global Gnuplot instance is called
3177 'gp' instead of 'g', which was really a far too fragile and
3182 'gp' instead of 'g', which was really a far too fragile and
3178 common name.
3183 common name.
3179
3184
3180 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3185 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3181 bounding boxes generated by Gnuplot for square plots.
3186 bounding boxes generated by Gnuplot for square plots.
3182
3187
3183 * IPython/genutils.py (popkey): new function added. I should
3188 * IPython/genutils.py (popkey): new function added. I should
3184 suggest this on c.l.py as a dict method, it seems useful.
3189 suggest this on c.l.py as a dict method, it seems useful.
3185
3190
3186 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3191 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3187 to transparently handle PostScript generation. MUCH better than
3192 to transparently handle PostScript generation. MUCH better than
3188 the previous plot_eps/replot_eps (which I removed now). The code
3193 the previous plot_eps/replot_eps (which I removed now). The code
3189 is also fairly clean and well documented now (including
3194 is also fairly clean and well documented now (including
3190 docstrings).
3195 docstrings).
3191
3196
3192 2002-11-13 Fernando Perez <fperez@colorado.edu>
3197 2002-11-13 Fernando Perez <fperez@colorado.edu>
3193
3198
3194 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3199 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3195 (inconsistent with options).
3200 (inconsistent with options).
3196
3201
3197 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3202 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3198 manually disabled, I don't know why. Fixed it.
3203 manually disabled, I don't know why. Fixed it.
3199 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3204 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3200 eps output.
3205 eps output.
3201
3206
3202 2002-11-12 Fernando Perez <fperez@colorado.edu>
3207 2002-11-12 Fernando Perez <fperez@colorado.edu>
3203
3208
3204 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3209 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3205 don't propagate up to caller. Fixes crash reported by François
3210 don't propagate up to caller. Fixes crash reported by François
3206 Pinard.
3211 Pinard.
3207
3212
3208 2002-11-09 Fernando Perez <fperez@colorado.edu>
3213 2002-11-09 Fernando Perez <fperez@colorado.edu>
3209
3214
3210 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3215 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3211 history file for new users.
3216 history file for new users.
3212 (make_IPython): fixed bug where initial install would leave the
3217 (make_IPython): fixed bug where initial install would leave the
3213 user running in the .ipython dir.
3218 user running in the .ipython dir.
3214 (make_IPython): fixed bug where config dir .ipython would be
3219 (make_IPython): fixed bug where config dir .ipython would be
3215 created regardless of the given -ipythondir option. Thanks to Cory
3220 created regardless of the given -ipythondir option. Thanks to Cory
3216 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3221 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3217
3222
3218 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3223 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3219 type confirmations. Will need to use it in all of IPython's code
3224 type confirmations. Will need to use it in all of IPython's code
3220 consistently.
3225 consistently.
3221
3226
3222 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3227 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3223 context to print 31 lines instead of the default 5. This will make
3228 context to print 31 lines instead of the default 5. This will make
3224 the crash reports extremely detailed in case the problem is in
3229 the crash reports extremely detailed in case the problem is in
3225 libraries I don't have access to.
3230 libraries I don't have access to.
3226
3231
3227 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3232 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3228 line of defense' code to still crash, but giving users fair
3233 line of defense' code to still crash, but giving users fair
3229 warning. I don't want internal errors to go unreported: if there's
3234 warning. I don't want internal errors to go unreported: if there's
3230 an internal problem, IPython should crash and generate a full
3235 an internal problem, IPython should crash and generate a full
3231 report.
3236 report.
3232
3237
3233 2002-11-08 Fernando Perez <fperez@colorado.edu>
3238 2002-11-08 Fernando Perez <fperez@colorado.edu>
3234
3239
3235 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3240 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3236 otherwise uncaught exceptions which can appear if people set
3241 otherwise uncaught exceptions which can appear if people set
3237 sys.stdout to something badly broken. Thanks to a crash report
3242 sys.stdout to something badly broken. Thanks to a crash report
3238 from henni-AT-mail.brainbot.com.
3243 from henni-AT-mail.brainbot.com.
3239
3244
3240 2002-11-04 Fernando Perez <fperez@colorado.edu>
3245 2002-11-04 Fernando Perez <fperez@colorado.edu>
3241
3246
3242 * IPython/iplib.py (InteractiveShell.interact): added
3247 * IPython/iplib.py (InteractiveShell.interact): added
3243 __IPYTHON__active to the builtins. It's a flag which goes on when
3248 __IPYTHON__active to the builtins. It's a flag which goes on when
3244 the interaction starts and goes off again when it stops. This
3249 the interaction starts and goes off again when it stops. This
3245 allows embedding code to detect being inside IPython. Before this
3250 allows embedding code to detect being inside IPython. Before this
3246 was done via __IPYTHON__, but that only shows that an IPython
3251 was done via __IPYTHON__, but that only shows that an IPython
3247 instance has been created.
3252 instance has been created.
3248
3253
3249 * IPython/Magic.py (Magic.magic_env): I realized that in a
3254 * IPython/Magic.py (Magic.magic_env): I realized that in a
3250 UserDict, instance.data holds the data as a normal dict. So I
3255 UserDict, instance.data holds the data as a normal dict. So I
3251 modified @env to return os.environ.data instead of rebuilding a
3256 modified @env to return os.environ.data instead of rebuilding a
3252 dict by hand.
3257 dict by hand.
3253
3258
3254 2002-11-02 Fernando Perez <fperez@colorado.edu>
3259 2002-11-02 Fernando Perez <fperez@colorado.edu>
3255
3260
3256 * IPython/genutils.py (warn): changed so that level 1 prints no
3261 * IPython/genutils.py (warn): changed so that level 1 prints no
3257 header. Level 2 is now the default (with 'WARNING' header, as
3262 header. Level 2 is now the default (with 'WARNING' header, as
3258 before). I think I tracked all places where changes were needed in
3263 before). I think I tracked all places where changes were needed in
3259 IPython, but outside code using the old level numbering may have
3264 IPython, but outside code using the old level numbering may have
3260 broken.
3265 broken.
3261
3266
3262 * IPython/iplib.py (InteractiveShell.runcode): added this to
3267 * IPython/iplib.py (InteractiveShell.runcode): added this to
3263 handle the tracebacks in SystemExit traps correctly. The previous
3268 handle the tracebacks in SystemExit traps correctly. The previous
3264 code (through interact) was printing more of the stack than
3269 code (through interact) was printing more of the stack than
3265 necessary, showing IPython internal code to the user.
3270 necessary, showing IPython internal code to the user.
3266
3271
3267 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3272 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3268 default. Now that the default at the confirmation prompt is yes,
3273 default. Now that the default at the confirmation prompt is yes,
3269 it's not so intrusive. François' argument that ipython sessions
3274 it's not so intrusive. François' argument that ipython sessions
3270 tend to be complex enough not to lose them from an accidental C-d,
3275 tend to be complex enough not to lose them from an accidental C-d,
3271 is a valid one.
3276 is a valid one.
3272
3277
3273 * IPython/iplib.py (InteractiveShell.interact): added a
3278 * IPython/iplib.py (InteractiveShell.interact): added a
3274 showtraceback() call to the SystemExit trap, and modified the exit
3279 showtraceback() call to the SystemExit trap, and modified the exit
3275 confirmation to have yes as the default.
3280 confirmation to have yes as the default.
3276
3281
3277 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3282 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3278 this file. It's been gone from the code for a long time, this was
3283 this file. It's been gone from the code for a long time, this was
3279 simply leftover junk.
3284 simply leftover junk.
3280
3285
3281 2002-11-01 Fernando Perez <fperez@colorado.edu>
3286 2002-11-01 Fernando Perez <fperez@colorado.edu>
3282
3287
3283 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3288 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3284 added. If set, IPython now traps EOF and asks for
3289 added. If set, IPython now traps EOF and asks for
3285 confirmation. After a request by François Pinard.
3290 confirmation. After a request by François Pinard.
3286
3291
3287 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3292 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3288 of @abort, and with a new (better) mechanism for handling the
3293 of @abort, and with a new (better) mechanism for handling the
3289 exceptions.
3294 exceptions.
3290
3295
3291 2002-10-27 Fernando Perez <fperez@colorado.edu>
3296 2002-10-27 Fernando Perez <fperez@colorado.edu>
3292
3297
3293 * IPython/usage.py (__doc__): updated the --help information and
3298 * IPython/usage.py (__doc__): updated the --help information and
3294 the ipythonrc file to indicate that -log generates
3299 the ipythonrc file to indicate that -log generates
3295 ./ipython.log. Also fixed the corresponding info in @logstart.
3300 ./ipython.log. Also fixed the corresponding info in @logstart.
3296 This and several other fixes in the manuals thanks to reports by
3301 This and several other fixes in the manuals thanks to reports by
3297 François Pinard <pinard-AT-iro.umontreal.ca>.
3302 François Pinard <pinard-AT-iro.umontreal.ca>.
3298
3303
3299 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3304 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3300 refer to @logstart (instead of @log, which doesn't exist).
3305 refer to @logstart (instead of @log, which doesn't exist).
3301
3306
3302 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3307 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3303 AttributeError crash. Thanks to Christopher Armstrong
3308 AttributeError crash. Thanks to Christopher Armstrong
3304 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3309 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3305 introduced recently (in 0.2.14pre37) with the fix to the eval
3310 introduced recently (in 0.2.14pre37) with the fix to the eval
3306 problem mentioned below.
3311 problem mentioned below.
3307
3312
3308 2002-10-17 Fernando Perez <fperez@colorado.edu>
3313 2002-10-17 Fernando Perez <fperez@colorado.edu>
3309
3314
3310 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3315 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3311 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3316 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3312
3317
3313 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3318 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3314 this function to fix a problem reported by Alex Schmolck. He saw
3319 this function to fix a problem reported by Alex Schmolck. He saw
3315 it with list comprehensions and generators, which were getting
3320 it with list comprehensions and generators, which were getting
3316 called twice. The real problem was an 'eval' call in testing for
3321 called twice. The real problem was an 'eval' call in testing for
3317 automagic which was evaluating the input line silently.
3322 automagic which was evaluating the input line silently.
3318
3323
3319 This is a potentially very nasty bug, if the input has side
3324 This is a potentially very nasty bug, if the input has side
3320 effects which must not be repeated. The code is much cleaner now,
3325 effects which must not be repeated. The code is much cleaner now,
3321 without any blanket 'except' left and with a regexp test for
3326 without any blanket 'except' left and with a regexp test for
3322 actual function names.
3327 actual function names.
3323
3328
3324 But an eval remains, which I'm not fully comfortable with. I just
3329 But an eval remains, which I'm not fully comfortable with. I just
3325 don't know how to find out if an expression could be a callable in
3330 don't know how to find out if an expression could be a callable in
3326 the user's namespace without doing an eval on the string. However
3331 the user's namespace without doing an eval on the string. However
3327 that string is now much more strictly checked so that no code
3332 that string is now much more strictly checked so that no code
3328 slips by, so the eval should only happen for things that can
3333 slips by, so the eval should only happen for things that can
3329 really be only function/method names.
3334 really be only function/method names.
3330
3335
3331 2002-10-15 Fernando Perez <fperez@colorado.edu>
3336 2002-10-15 Fernando Perez <fperez@colorado.edu>
3332
3337
3333 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3338 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3334 OSX information to main manual, removed README_Mac_OSX file from
3339 OSX information to main manual, removed README_Mac_OSX file from
3335 distribution. Also updated credits for recent additions.
3340 distribution. Also updated credits for recent additions.
3336
3341
3337 2002-10-10 Fernando Perez <fperez@colorado.edu>
3342 2002-10-10 Fernando Perez <fperez@colorado.edu>
3338
3343
3339 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3344 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3340 terminal-related issues. Many thanks to Andrea Riciputi
3345 terminal-related issues. Many thanks to Andrea Riciputi
3341 <andrea.riciputi-AT-libero.it> for writing it.
3346 <andrea.riciputi-AT-libero.it> for writing it.
3342
3347
3343 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3348 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3344 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3349 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3345
3350
3346 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3351 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3347 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3352 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3348 <syver-en-AT-online.no> who both submitted patches for this problem.
3353 <syver-en-AT-online.no> who both submitted patches for this problem.
3349
3354
3350 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3355 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3351 global embedding to make sure that things don't overwrite user
3356 global embedding to make sure that things don't overwrite user
3352 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3357 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3353
3358
3354 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3359 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3355 compatibility. Thanks to Hayden Callow
3360 compatibility. Thanks to Hayden Callow
3356 <h.callow-AT-elec.canterbury.ac.nz>
3361 <h.callow-AT-elec.canterbury.ac.nz>
3357
3362
3358 2002-10-04 Fernando Perez <fperez@colorado.edu>
3363 2002-10-04 Fernando Perez <fperez@colorado.edu>
3359
3364
3360 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3365 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3361 Gnuplot.File objects.
3366 Gnuplot.File objects.
3362
3367
3363 2002-07-23 Fernando Perez <fperez@colorado.edu>
3368 2002-07-23 Fernando Perez <fperez@colorado.edu>
3364
3369
3365 * IPython/genutils.py (timing): Added timings() and timing() for
3370 * IPython/genutils.py (timing): Added timings() and timing() for
3366 quick access to the most commonly needed data, the execution
3371 quick access to the most commonly needed data, the execution
3367 times. Old timing() renamed to timings_out().
3372 times. Old timing() renamed to timings_out().
3368
3373
3369 2002-07-18 Fernando Perez <fperez@colorado.edu>
3374 2002-07-18 Fernando Perez <fperez@colorado.edu>
3370
3375
3371 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3376 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3372 bug with nested instances disrupting the parent's tab completion.
3377 bug with nested instances disrupting the parent's tab completion.
3373
3378
3374 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3379 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3375 all_completions code to begin the emacs integration.
3380 all_completions code to begin the emacs integration.
3376
3381
3377 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3382 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3378 argument to allow titling individual arrays when plotting.
3383 argument to allow titling individual arrays when plotting.
3379
3384
3380 2002-07-15 Fernando Perez <fperez@colorado.edu>
3385 2002-07-15 Fernando Perez <fperez@colorado.edu>
3381
3386
3382 * setup.py (make_shortcut): changed to retrieve the value of
3387 * setup.py (make_shortcut): changed to retrieve the value of
3383 'Program Files' directory from the registry (this value changes in
3388 'Program Files' directory from the registry (this value changes in
3384 non-english versions of Windows). Thanks to Thomas Fanslau
3389 non-english versions of Windows). Thanks to Thomas Fanslau
3385 <tfanslau-AT-gmx.de> for the report.
3390 <tfanslau-AT-gmx.de> for the report.
3386
3391
3387 2002-07-10 Fernando Perez <fperez@colorado.edu>
3392 2002-07-10 Fernando Perez <fperez@colorado.edu>
3388
3393
3389 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3394 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3390 a bug in pdb, which crashes if a line with only whitespace is
3395 a bug in pdb, which crashes if a line with only whitespace is
3391 entered. Bug report submitted to sourceforge.
3396 entered. Bug report submitted to sourceforge.
3392
3397
3393 2002-07-09 Fernando Perez <fperez@colorado.edu>
3398 2002-07-09 Fernando Perez <fperez@colorado.edu>
3394
3399
3395 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3400 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3396 reporting exceptions (it's a bug in inspect.py, I just set a
3401 reporting exceptions (it's a bug in inspect.py, I just set a
3397 workaround).
3402 workaround).
3398
3403
3399 2002-07-08 Fernando Perez <fperez@colorado.edu>
3404 2002-07-08 Fernando Perez <fperez@colorado.edu>
3400
3405
3401 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3406 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3402 __IPYTHON__ in __builtins__ to show up in user_ns.
3407 __IPYTHON__ in __builtins__ to show up in user_ns.
3403
3408
3404 2002-07-03 Fernando Perez <fperez@colorado.edu>
3409 2002-07-03 Fernando Perez <fperez@colorado.edu>
3405
3410
3406 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3411 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3407 name from @gp_set_instance to @gp_set_default.
3412 name from @gp_set_instance to @gp_set_default.
3408
3413
3409 * IPython/ipmaker.py (make_IPython): default editor value set to
3414 * IPython/ipmaker.py (make_IPython): default editor value set to
3410 '0' (a string), to match the rc file. Otherwise will crash when
3415 '0' (a string), to match the rc file. Otherwise will crash when
3411 .strip() is called on it.
3416 .strip() is called on it.
3412
3417
3413
3418
3414 2002-06-28 Fernando Perez <fperez@colorado.edu>
3419 2002-06-28 Fernando Perez <fperez@colorado.edu>
3415
3420
3416 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3421 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3417 of files in current directory when a file is executed via
3422 of files in current directory when a file is executed via
3418 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3423 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3419
3424
3420 * setup.py (manfiles): fix for rpm builds, submitted by RA
3425 * setup.py (manfiles): fix for rpm builds, submitted by RA
3421 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3426 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3422
3427
3423 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3428 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3424 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3429 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3425 string!). A. Schmolck caught this one.
3430 string!). A. Schmolck caught this one.
3426
3431
3427 2002-06-27 Fernando Perez <fperez@colorado.edu>
3432 2002-06-27 Fernando Perez <fperez@colorado.edu>
3428
3433
3429 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3434 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3430 defined files at the cmd line. __name__ wasn't being set to
3435 defined files at the cmd line. __name__ wasn't being set to
3431 __main__.
3436 __main__.
3432
3437
3433 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3438 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3434 regular lists and tuples besides Numeric arrays.
3439 regular lists and tuples besides Numeric arrays.
3435
3440
3436 * IPython/Prompts.py (CachedOutput.__call__): Added output
3441 * IPython/Prompts.py (CachedOutput.__call__): Added output
3437 supression for input ending with ';'. Similar to Mathematica and
3442 supression for input ending with ';'. Similar to Mathematica and
3438 Matlab. The _* vars and Out[] list are still updated, just like
3443 Matlab. The _* vars and Out[] list are still updated, just like
3439 Mathematica behaves.
3444 Mathematica behaves.
3440
3445
3441 2002-06-25 Fernando Perez <fperez@colorado.edu>
3446 2002-06-25 Fernando Perez <fperez@colorado.edu>
3442
3447
3443 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3448 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3444 .ini extensions for profiels under Windows.
3449 .ini extensions for profiels under Windows.
3445
3450
3446 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3451 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3447 string form. Fix contributed by Alexander Schmolck
3452 string form. Fix contributed by Alexander Schmolck
3448 <a.schmolck-AT-gmx.net>
3453 <a.schmolck-AT-gmx.net>
3449
3454
3450 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3455 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3451 pre-configured Gnuplot instance.
3456 pre-configured Gnuplot instance.
3452
3457
3453 2002-06-21 Fernando Perez <fperez@colorado.edu>
3458 2002-06-21 Fernando Perez <fperez@colorado.edu>
3454
3459
3455 * IPython/numutils.py (exp_safe): new function, works around the
3460 * IPython/numutils.py (exp_safe): new function, works around the
3456 underflow problems in Numeric.
3461 underflow problems in Numeric.
3457 (log2): New fn. Safe log in base 2: returns exact integer answer
3462 (log2): New fn. Safe log in base 2: returns exact integer answer
3458 for exact integer powers of 2.
3463 for exact integer powers of 2.
3459
3464
3460 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3465 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3461 properly.
3466 properly.
3462
3467
3463 2002-06-20 Fernando Perez <fperez@colorado.edu>
3468 2002-06-20 Fernando Perez <fperez@colorado.edu>
3464
3469
3465 * IPython/genutils.py (timing): new function like
3470 * IPython/genutils.py (timing): new function like
3466 Mathematica's. Similar to time_test, but returns more info.
3471 Mathematica's. Similar to time_test, but returns more info.
3467
3472
3468 2002-06-18 Fernando Perez <fperez@colorado.edu>
3473 2002-06-18 Fernando Perez <fperez@colorado.edu>
3469
3474
3470 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3475 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3471 according to Mike Heeter's suggestions.
3476 according to Mike Heeter's suggestions.
3472
3477
3473 2002-06-16 Fernando Perez <fperez@colorado.edu>
3478 2002-06-16 Fernando Perez <fperez@colorado.edu>
3474
3479
3475 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3480 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3476 system. GnuplotMagic is gone as a user-directory option. New files
3481 system. GnuplotMagic is gone as a user-directory option. New files
3477 make it easier to use all the gnuplot stuff both from external
3482 make it easier to use all the gnuplot stuff both from external
3478 programs as well as from IPython. Had to rewrite part of
3483 programs as well as from IPython. Had to rewrite part of
3479 hardcopy() b/c of a strange bug: often the ps files simply don't
3484 hardcopy() b/c of a strange bug: often the ps files simply don't
3480 get created, and require a repeat of the command (often several
3485 get created, and require a repeat of the command (often several
3481 times).
3486 times).
3482
3487
3483 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3488 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3484 resolve output channel at call time, so that if sys.stderr has
3489 resolve output channel at call time, so that if sys.stderr has
3485 been redirected by user this gets honored.
3490 been redirected by user this gets honored.
3486
3491
3487 2002-06-13 Fernando Perez <fperez@colorado.edu>
3492 2002-06-13 Fernando Perez <fperez@colorado.edu>
3488
3493
3489 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3494 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3490 IPShell. Kept a copy with the old names to avoid breaking people's
3495 IPShell. Kept a copy with the old names to avoid breaking people's
3491 embedded code.
3496 embedded code.
3492
3497
3493 * IPython/ipython: simplified it to the bare minimum after
3498 * IPython/ipython: simplified it to the bare minimum after
3494 Holger's suggestions. Added info about how to use it in
3499 Holger's suggestions. Added info about how to use it in
3495 PYTHONSTARTUP.
3500 PYTHONSTARTUP.
3496
3501
3497 * IPython/Shell.py (IPythonShell): changed the options passing
3502 * IPython/Shell.py (IPythonShell): changed the options passing
3498 from a string with funky %s replacements to a straight list. Maybe
3503 from a string with funky %s replacements to a straight list. Maybe
3499 a bit more typing, but it follows sys.argv conventions, so there's
3504 a bit more typing, but it follows sys.argv conventions, so there's
3500 less special-casing to remember.
3505 less special-casing to remember.
3501
3506
3502 2002-06-12 Fernando Perez <fperez@colorado.edu>
3507 2002-06-12 Fernando Perez <fperez@colorado.edu>
3503
3508
3504 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3509 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3505 command. Thanks to a suggestion by Mike Heeter.
3510 command. Thanks to a suggestion by Mike Heeter.
3506 (Magic.magic_pfile): added behavior to look at filenames if given
3511 (Magic.magic_pfile): added behavior to look at filenames if given
3507 arg is not a defined object.
3512 arg is not a defined object.
3508 (Magic.magic_save): New @save function to save code snippets. Also
3513 (Magic.magic_save): New @save function to save code snippets. Also
3509 a Mike Heeter idea.
3514 a Mike Heeter idea.
3510
3515
3511 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3516 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3512 plot() and replot(). Much more convenient now, especially for
3517 plot() and replot(). Much more convenient now, especially for
3513 interactive use.
3518 interactive use.
3514
3519
3515 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3520 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3516 filenames.
3521 filenames.
3517
3522
3518 2002-06-02 Fernando Perez <fperez@colorado.edu>
3523 2002-06-02 Fernando Perez <fperez@colorado.edu>
3519
3524
3520 * IPython/Struct.py (Struct.__init__): modified to admit
3525 * IPython/Struct.py (Struct.__init__): modified to admit
3521 initialization via another struct.
3526 initialization via another struct.
3522
3527
3523 * IPython/genutils.py (SystemExec.__init__): New stateful
3528 * IPython/genutils.py (SystemExec.__init__): New stateful
3524 interface to xsys and bq. Useful for writing system scripts.
3529 interface to xsys and bq. Useful for writing system scripts.
3525
3530
3526 2002-05-30 Fernando Perez <fperez@colorado.edu>
3531 2002-05-30 Fernando Perez <fperez@colorado.edu>
3527
3532
3528 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3533 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3529 documents. This will make the user download smaller (it's getting
3534 documents. This will make the user download smaller (it's getting
3530 too big).
3535 too big).
3531
3536
3532 2002-05-29 Fernando Perez <fperez@colorado.edu>
3537 2002-05-29 Fernando Perez <fperez@colorado.edu>
3533
3538
3534 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3539 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3535 fix problems with shelve and pickle. Seems to work, but I don't
3540 fix problems with shelve and pickle. Seems to work, but I don't
3536 know if corner cases break it. Thanks to Mike Heeter
3541 know if corner cases break it. Thanks to Mike Heeter
3537 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3542 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3538
3543
3539 2002-05-24 Fernando Perez <fperez@colorado.edu>
3544 2002-05-24 Fernando Perez <fperez@colorado.edu>
3540
3545
3541 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3546 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3542 macros having broken.
3547 macros having broken.
3543
3548
3544 2002-05-21 Fernando Perez <fperez@colorado.edu>
3549 2002-05-21 Fernando Perez <fperez@colorado.edu>
3545
3550
3546 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3551 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3547 introduced logging bug: all history before logging started was
3552 introduced logging bug: all history before logging started was
3548 being written one character per line! This came from the redesign
3553 being written one character per line! This came from the redesign
3549 of the input history as a special list which slices to strings,
3554 of the input history as a special list which slices to strings,
3550 not to lists.
3555 not to lists.
3551
3556
3552 2002-05-20 Fernando Perez <fperez@colorado.edu>
3557 2002-05-20 Fernando Perez <fperez@colorado.edu>
3553
3558
3554 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3559 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3555 be an attribute of all classes in this module. The design of these
3560 be an attribute of all classes in this module. The design of these
3556 classes needs some serious overhauling.
3561 classes needs some serious overhauling.
3557
3562
3558 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3563 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3559 which was ignoring '_' in option names.
3564 which was ignoring '_' in option names.
3560
3565
3561 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3566 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3562 'Verbose_novars' to 'Context' and made it the new default. It's a
3567 'Verbose_novars' to 'Context' and made it the new default. It's a
3563 bit more readable and also safer than verbose.
3568 bit more readable and also safer than verbose.
3564
3569
3565 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3570 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3566 triple-quoted strings.
3571 triple-quoted strings.
3567
3572
3568 * IPython/OInspect.py (__all__): new module exposing the object
3573 * IPython/OInspect.py (__all__): new module exposing the object
3569 introspection facilities. Now the corresponding magics are dummy
3574 introspection facilities. Now the corresponding magics are dummy
3570 wrappers around this. Having this module will make it much easier
3575 wrappers around this. Having this module will make it much easier
3571 to put these functions into our modified pdb.
3576 to put these functions into our modified pdb.
3572 This new object inspector system uses the new colorizing module,
3577 This new object inspector system uses the new colorizing module,
3573 so source code and other things are nicely syntax highlighted.
3578 so source code and other things are nicely syntax highlighted.
3574
3579
3575 2002-05-18 Fernando Perez <fperez@colorado.edu>
3580 2002-05-18 Fernando Perez <fperez@colorado.edu>
3576
3581
3577 * IPython/ColorANSI.py: Split the coloring tools into a separate
3582 * IPython/ColorANSI.py: Split the coloring tools into a separate
3578 module so I can use them in other code easier (they were part of
3583 module so I can use them in other code easier (they were part of
3579 ultraTB).
3584 ultraTB).
3580
3585
3581 2002-05-17 Fernando Perez <fperez@colorado.edu>
3586 2002-05-17 Fernando Perez <fperez@colorado.edu>
3582
3587
3583 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3588 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3584 fixed it to set the global 'g' also to the called instance, as
3589 fixed it to set the global 'g' also to the called instance, as
3585 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3590 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3586 user's 'g' variables).
3591 user's 'g' variables).
3587
3592
3588 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3593 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3589 global variables (aliases to _ih,_oh) so that users which expect
3594 global variables (aliases to _ih,_oh) so that users which expect
3590 In[5] or Out[7] to work aren't unpleasantly surprised.
3595 In[5] or Out[7] to work aren't unpleasantly surprised.
3591 (InputList.__getslice__): new class to allow executing slices of
3596 (InputList.__getslice__): new class to allow executing slices of
3592 input history directly. Very simple class, complements the use of
3597 input history directly. Very simple class, complements the use of
3593 macros.
3598 macros.
3594
3599
3595 2002-05-16 Fernando Perez <fperez@colorado.edu>
3600 2002-05-16 Fernando Perez <fperez@colorado.edu>
3596
3601
3597 * setup.py (docdirbase): make doc directory be just doc/IPython
3602 * setup.py (docdirbase): make doc directory be just doc/IPython
3598 without version numbers, it will reduce clutter for users.
3603 without version numbers, it will reduce clutter for users.
3599
3604
3600 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3605 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3601 execfile call to prevent possible memory leak. See for details:
3606 execfile call to prevent possible memory leak. See for details:
3602 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3607 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3603
3608
3604 2002-05-15 Fernando Perez <fperez@colorado.edu>
3609 2002-05-15 Fernando Perez <fperez@colorado.edu>
3605
3610
3606 * IPython/Magic.py (Magic.magic_psource): made the object
3611 * IPython/Magic.py (Magic.magic_psource): made the object
3607 introspection names be more standard: pdoc, pdef, pfile and
3612 introspection names be more standard: pdoc, pdef, pfile and
3608 psource. They all print/page their output, and it makes
3613 psource. They all print/page their output, and it makes
3609 remembering them easier. Kept old names for compatibility as
3614 remembering them easier. Kept old names for compatibility as
3610 aliases.
3615 aliases.
3611
3616
3612 2002-05-14 Fernando Perez <fperez@colorado.edu>
3617 2002-05-14 Fernando Perez <fperez@colorado.edu>
3613
3618
3614 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3619 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3615 what the mouse problem was. The trick is to use gnuplot with temp
3620 what the mouse problem was. The trick is to use gnuplot with temp
3616 files and NOT with pipes (for data communication), because having
3621 files and NOT with pipes (for data communication), because having
3617 both pipes and the mouse on is bad news.
3622 both pipes and the mouse on is bad news.
3618
3623
3619 2002-05-13 Fernando Perez <fperez@colorado.edu>
3624 2002-05-13 Fernando Perez <fperez@colorado.edu>
3620
3625
3621 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3626 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3622 bug. Information would be reported about builtins even when
3627 bug. Information would be reported about builtins even when
3623 user-defined functions overrode them.
3628 user-defined functions overrode them.
3624
3629
3625 2002-05-11 Fernando Perez <fperez@colorado.edu>
3630 2002-05-11 Fernando Perez <fperez@colorado.edu>
3626
3631
3627 * IPython/__init__.py (__all__): removed FlexCompleter from
3632 * IPython/__init__.py (__all__): removed FlexCompleter from
3628 __all__ so that things don't fail in platforms without readline.
3633 __all__ so that things don't fail in platforms without readline.
3629
3634
3630 2002-05-10 Fernando Perez <fperez@colorado.edu>
3635 2002-05-10 Fernando Perez <fperez@colorado.edu>
3631
3636
3632 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3637 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3633 it requires Numeric, effectively making Numeric a dependency for
3638 it requires Numeric, effectively making Numeric a dependency for
3634 IPython.
3639 IPython.
3635
3640
3636 * Released 0.2.13
3641 * Released 0.2.13
3637
3642
3638 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3643 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3639 profiler interface. Now all the major options from the profiler
3644 profiler interface. Now all the major options from the profiler
3640 module are directly supported in IPython, both for single
3645 module are directly supported in IPython, both for single
3641 expressions (@prun) and for full programs (@run -p).
3646 expressions (@prun) and for full programs (@run -p).
3642
3647
3643 2002-05-09 Fernando Perez <fperez@colorado.edu>
3648 2002-05-09 Fernando Perez <fperez@colorado.edu>
3644
3649
3645 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3650 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3646 magic properly formatted for screen.
3651 magic properly formatted for screen.
3647
3652
3648 * setup.py (make_shortcut): Changed things to put pdf version in
3653 * setup.py (make_shortcut): Changed things to put pdf version in
3649 doc/ instead of doc/manual (had to change lyxport a bit).
3654 doc/ instead of doc/manual (had to change lyxport a bit).
3650
3655
3651 * IPython/Magic.py (Profile.string_stats): made profile runs go
3656 * IPython/Magic.py (Profile.string_stats): made profile runs go
3652 through pager (they are long and a pager allows searching, saving,
3657 through pager (they are long and a pager allows searching, saving,
3653 etc.)
3658 etc.)
3654
3659
3655 2002-05-08 Fernando Perez <fperez@colorado.edu>
3660 2002-05-08 Fernando Perez <fperez@colorado.edu>
3656
3661
3657 * Released 0.2.12
3662 * Released 0.2.12
3658
3663
3659 2002-05-06 Fernando Perez <fperez@colorado.edu>
3664 2002-05-06 Fernando Perez <fperez@colorado.edu>
3660
3665
3661 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3666 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3662 introduced); 'hist n1 n2' was broken.
3667 introduced); 'hist n1 n2' was broken.
3663 (Magic.magic_pdb): added optional on/off arguments to @pdb
3668 (Magic.magic_pdb): added optional on/off arguments to @pdb
3664 (Magic.magic_run): added option -i to @run, which executes code in
3669 (Magic.magic_run): added option -i to @run, which executes code in
3665 the IPython namespace instead of a clean one. Also added @irun as
3670 the IPython namespace instead of a clean one. Also added @irun as
3666 an alias to @run -i.
3671 an alias to @run -i.
3667
3672
3668 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3673 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3669 fixed (it didn't really do anything, the namespaces were wrong).
3674 fixed (it didn't really do anything, the namespaces were wrong).
3670
3675
3671 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3676 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3672
3677
3673 * IPython/__init__.py (__all__): Fixed package namespace, now
3678 * IPython/__init__.py (__all__): Fixed package namespace, now
3674 'import IPython' does give access to IPython.<all> as
3679 'import IPython' does give access to IPython.<all> as
3675 expected. Also renamed __release__ to Release.
3680 expected. Also renamed __release__ to Release.
3676
3681
3677 * IPython/Debugger.py (__license__): created new Pdb class which
3682 * IPython/Debugger.py (__license__): created new Pdb class which
3678 functions like a drop-in for the normal pdb.Pdb but does NOT
3683 functions like a drop-in for the normal pdb.Pdb but does NOT
3679 import readline by default. This way it doesn't muck up IPython's
3684 import readline by default. This way it doesn't muck up IPython's
3680 readline handling, and now tab-completion finally works in the
3685 readline handling, and now tab-completion finally works in the
3681 debugger -- sort of. It completes things globally visible, but the
3686 debugger -- sort of. It completes things globally visible, but the
3682 completer doesn't track the stack as pdb walks it. That's a bit
3687 completer doesn't track the stack as pdb walks it. That's a bit
3683 tricky, and I'll have to implement it later.
3688 tricky, and I'll have to implement it later.
3684
3689
3685 2002-05-05 Fernando Perez <fperez@colorado.edu>
3690 2002-05-05 Fernando Perez <fperez@colorado.edu>
3686
3691
3687 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3692 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3688 magic docstrings when printed via ? (explicit \'s were being
3693 magic docstrings when printed via ? (explicit \'s were being
3689 printed).
3694 printed).
3690
3695
3691 * IPython/ipmaker.py (make_IPython): fixed namespace
3696 * IPython/ipmaker.py (make_IPython): fixed namespace
3692 identification bug. Now variables loaded via logs or command-line
3697 identification bug. Now variables loaded via logs or command-line
3693 files are recognized in the interactive namespace by @who.
3698 files are recognized in the interactive namespace by @who.
3694
3699
3695 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3700 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3696 log replay system stemming from the string form of Structs.
3701 log replay system stemming from the string form of Structs.
3697
3702
3698 * IPython/Magic.py (Macro.__init__): improved macros to properly
3703 * IPython/Magic.py (Macro.__init__): improved macros to properly
3699 handle magic commands in them.
3704 handle magic commands in them.
3700 (Magic.magic_logstart): usernames are now expanded so 'logstart
3705 (Magic.magic_logstart): usernames are now expanded so 'logstart
3701 ~/mylog' now works.
3706 ~/mylog' now works.
3702
3707
3703 * IPython/iplib.py (complete): fixed bug where paths starting with
3708 * IPython/iplib.py (complete): fixed bug where paths starting with
3704 '/' would be completed as magic names.
3709 '/' would be completed as magic names.
3705
3710
3706 2002-05-04 Fernando Perez <fperez@colorado.edu>
3711 2002-05-04 Fernando Perez <fperez@colorado.edu>
3707
3712
3708 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3713 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3709 allow running full programs under the profiler's control.
3714 allow running full programs under the profiler's control.
3710
3715
3711 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3716 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3712 mode to report exceptions verbosely but without formatting
3717 mode to report exceptions verbosely but without formatting
3713 variables. This addresses the issue of ipython 'freezing' (it's
3718 variables. This addresses the issue of ipython 'freezing' (it's
3714 not frozen, but caught in an expensive formatting loop) when huge
3719 not frozen, but caught in an expensive formatting loop) when huge
3715 variables are in the context of an exception.
3720 variables are in the context of an exception.
3716 (VerboseTB.text): Added '--->' markers at line where exception was
3721 (VerboseTB.text): Added '--->' markers at line where exception was
3717 triggered. Much clearer to read, especially in NoColor modes.
3722 triggered. Much clearer to read, especially in NoColor modes.
3718
3723
3719 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3724 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3720 implemented in reverse when changing to the new parse_options().
3725 implemented in reverse when changing to the new parse_options().
3721
3726
3722 2002-05-03 Fernando Perez <fperez@colorado.edu>
3727 2002-05-03 Fernando Perez <fperez@colorado.edu>
3723
3728
3724 * IPython/Magic.py (Magic.parse_options): new function so that
3729 * IPython/Magic.py (Magic.parse_options): new function so that
3725 magics can parse options easier.
3730 magics can parse options easier.
3726 (Magic.magic_prun): new function similar to profile.run(),
3731 (Magic.magic_prun): new function similar to profile.run(),
3727 suggested by Chris Hart.
3732 suggested by Chris Hart.
3728 (Magic.magic_cd): fixed behavior so that it only changes if
3733 (Magic.magic_cd): fixed behavior so that it only changes if
3729 directory actually is in history.
3734 directory actually is in history.
3730
3735
3731 * IPython/usage.py (__doc__): added information about potential
3736 * IPython/usage.py (__doc__): added information about potential
3732 slowness of Verbose exception mode when there are huge data
3737 slowness of Verbose exception mode when there are huge data
3733 structures to be formatted (thanks to Archie Paulson).
3738 structures to be formatted (thanks to Archie Paulson).
3734
3739
3735 * IPython/ipmaker.py (make_IPython): Changed default logging
3740 * IPython/ipmaker.py (make_IPython): Changed default logging
3736 (when simply called with -log) to use curr_dir/ipython.log in
3741 (when simply called with -log) to use curr_dir/ipython.log in
3737 rotate mode. Fixed crash which was occuring with -log before
3742 rotate mode. Fixed crash which was occuring with -log before
3738 (thanks to Jim Boyle).
3743 (thanks to Jim Boyle).
3739
3744
3740 2002-05-01 Fernando Perez <fperez@colorado.edu>
3745 2002-05-01 Fernando Perez <fperez@colorado.edu>
3741
3746
3742 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3747 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3743 was nasty -- though somewhat of a corner case).
3748 was nasty -- though somewhat of a corner case).
3744
3749
3745 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3750 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3746 text (was a bug).
3751 text (was a bug).
3747
3752
3748 2002-04-30 Fernando Perez <fperez@colorado.edu>
3753 2002-04-30 Fernando Perez <fperez@colorado.edu>
3749
3754
3750 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3755 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3751 a print after ^D or ^C from the user so that the In[] prompt
3756 a print after ^D or ^C from the user so that the In[] prompt
3752 doesn't over-run the gnuplot one.
3757 doesn't over-run the gnuplot one.
3753
3758
3754 2002-04-29 Fernando Perez <fperez@colorado.edu>
3759 2002-04-29 Fernando Perez <fperez@colorado.edu>
3755
3760
3756 * Released 0.2.10
3761 * Released 0.2.10
3757
3762
3758 * IPython/__release__.py (version): get date dynamically.
3763 * IPython/__release__.py (version): get date dynamically.
3759
3764
3760 * Misc. documentation updates thanks to Arnd's comments. Also ran
3765 * Misc. documentation updates thanks to Arnd's comments. Also ran
3761 a full spellcheck on the manual (hadn't been done in a while).
3766 a full spellcheck on the manual (hadn't been done in a while).
3762
3767
3763 2002-04-27 Fernando Perez <fperez@colorado.edu>
3768 2002-04-27 Fernando Perez <fperez@colorado.edu>
3764
3769
3765 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3770 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3766 starting a log in mid-session would reset the input history list.
3771 starting a log in mid-session would reset the input history list.
3767
3772
3768 2002-04-26 Fernando Perez <fperez@colorado.edu>
3773 2002-04-26 Fernando Perez <fperez@colorado.edu>
3769
3774
3770 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3775 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3771 all files were being included in an update. Now anything in
3776 all files were being included in an update. Now anything in
3772 UserConfig that matches [A-Za-z]*.py will go (this excludes
3777 UserConfig that matches [A-Za-z]*.py will go (this excludes
3773 __init__.py)
3778 __init__.py)
3774
3779
3775 2002-04-25 Fernando Perez <fperez@colorado.edu>
3780 2002-04-25 Fernando Perez <fperez@colorado.edu>
3776
3781
3777 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3782 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3778 to __builtins__ so that any form of embedded or imported code can
3783 to __builtins__ so that any form of embedded or imported code can
3779 test for being inside IPython.
3784 test for being inside IPython.
3780
3785
3781 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3786 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3782 changed to GnuplotMagic because it's now an importable module,
3787 changed to GnuplotMagic because it's now an importable module,
3783 this makes the name follow that of the standard Gnuplot module.
3788 this makes the name follow that of the standard Gnuplot module.
3784 GnuplotMagic can now be loaded at any time in mid-session.
3789 GnuplotMagic can now be loaded at any time in mid-session.
3785
3790
3786 2002-04-24 Fernando Perez <fperez@colorado.edu>
3791 2002-04-24 Fernando Perez <fperez@colorado.edu>
3787
3792
3788 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3793 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3789 the globals (IPython has its own namespace) and the
3794 the globals (IPython has its own namespace) and the
3790 PhysicalQuantity stuff is much better anyway.
3795 PhysicalQuantity stuff is much better anyway.
3791
3796
3792 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3797 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3793 embedding example to standard user directory for
3798 embedding example to standard user directory for
3794 distribution. Also put it in the manual.
3799 distribution. Also put it in the manual.
3795
3800
3796 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3801 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3797 instance as first argument (so it doesn't rely on some obscure
3802 instance as first argument (so it doesn't rely on some obscure
3798 hidden global).
3803 hidden global).
3799
3804
3800 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3805 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3801 delimiters. While it prevents ().TAB from working, it allows
3806 delimiters. While it prevents ().TAB from working, it allows
3802 completions in open (... expressions. This is by far a more common
3807 completions in open (... expressions. This is by far a more common
3803 case.
3808 case.
3804
3809
3805 2002-04-23 Fernando Perez <fperez@colorado.edu>
3810 2002-04-23 Fernando Perez <fperez@colorado.edu>
3806
3811
3807 * IPython/Extensions/InterpreterPasteInput.py: new
3812 * IPython/Extensions/InterpreterPasteInput.py: new
3808 syntax-processing module for pasting lines with >>> or ... at the
3813 syntax-processing module for pasting lines with >>> or ... at the
3809 start.
3814 start.
3810
3815
3811 * IPython/Extensions/PhysicalQ_Interactive.py
3816 * IPython/Extensions/PhysicalQ_Interactive.py
3812 (PhysicalQuantityInteractive.__int__): fixed to work with either
3817 (PhysicalQuantityInteractive.__int__): fixed to work with either
3813 Numeric or math.
3818 Numeric or math.
3814
3819
3815 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3820 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3816 provided profiles. Now we have:
3821 provided profiles. Now we have:
3817 -math -> math module as * and cmath with its own namespace.
3822 -math -> math module as * and cmath with its own namespace.
3818 -numeric -> Numeric as *, plus gnuplot & grace
3823 -numeric -> Numeric as *, plus gnuplot & grace
3819 -physics -> same as before
3824 -physics -> same as before
3820
3825
3821 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3826 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3822 user-defined magics wouldn't be found by @magic if they were
3827 user-defined magics wouldn't be found by @magic if they were
3823 defined as class methods. Also cleaned up the namespace search
3828 defined as class methods. Also cleaned up the namespace search
3824 logic and the string building (to use %s instead of many repeated
3829 logic and the string building (to use %s instead of many repeated
3825 string adds).
3830 string adds).
3826
3831
3827 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3832 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3828 of user-defined magics to operate with class methods (cleaner, in
3833 of user-defined magics to operate with class methods (cleaner, in
3829 line with the gnuplot code).
3834 line with the gnuplot code).
3830
3835
3831 2002-04-22 Fernando Perez <fperez@colorado.edu>
3836 2002-04-22 Fernando Perez <fperez@colorado.edu>
3832
3837
3833 * setup.py: updated dependency list so that manual is updated when
3838 * setup.py: updated dependency list so that manual is updated when
3834 all included files change.
3839 all included files change.
3835
3840
3836 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3841 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3837 the delimiter removal option (the fix is ugly right now).
3842 the delimiter removal option (the fix is ugly right now).
3838
3843
3839 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3844 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3840 all of the math profile (quicker loading, no conflict between
3845 all of the math profile (quicker loading, no conflict between
3841 g-9.8 and g-gnuplot).
3846 g-9.8 and g-gnuplot).
3842
3847
3843 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3848 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3844 name of post-mortem files to IPython_crash_report.txt.
3849 name of post-mortem files to IPython_crash_report.txt.
3845
3850
3846 * Cleanup/update of the docs. Added all the new readline info and
3851 * Cleanup/update of the docs. Added all the new readline info and
3847 formatted all lists as 'real lists'.
3852 formatted all lists as 'real lists'.
3848
3853
3849 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3854 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3850 tab-completion options, since the full readline parse_and_bind is
3855 tab-completion options, since the full readline parse_and_bind is
3851 now accessible.
3856 now accessible.
3852
3857
3853 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3858 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3854 handling of readline options. Now users can specify any string to
3859 handling of readline options. Now users can specify any string to
3855 be passed to parse_and_bind(), as well as the delimiters to be
3860 be passed to parse_and_bind(), as well as the delimiters to be
3856 removed.
3861 removed.
3857 (InteractiveShell.__init__): Added __name__ to the global
3862 (InteractiveShell.__init__): Added __name__ to the global
3858 namespace so that things like Itpl which rely on its existence
3863 namespace so that things like Itpl which rely on its existence
3859 don't crash.
3864 don't crash.
3860 (InteractiveShell._prefilter): Defined the default with a _ so
3865 (InteractiveShell._prefilter): Defined the default with a _ so
3861 that prefilter() is easier to override, while the default one
3866 that prefilter() is easier to override, while the default one
3862 remains available.
3867 remains available.
3863
3868
3864 2002-04-18 Fernando Perez <fperez@colorado.edu>
3869 2002-04-18 Fernando Perez <fperez@colorado.edu>
3865
3870
3866 * Added information about pdb in the docs.
3871 * Added information about pdb in the docs.
3867
3872
3868 2002-04-17 Fernando Perez <fperez@colorado.edu>
3873 2002-04-17 Fernando Perez <fperez@colorado.edu>
3869
3874
3870 * IPython/ipmaker.py (make_IPython): added rc_override option to
3875 * IPython/ipmaker.py (make_IPython): added rc_override option to
3871 allow passing config options at creation time which may override
3876 allow passing config options at creation time which may override
3872 anything set in the config files or command line. This is
3877 anything set in the config files or command line. This is
3873 particularly useful for configuring embedded instances.
3878 particularly useful for configuring embedded instances.
3874
3879
3875 2002-04-15 Fernando Perez <fperez@colorado.edu>
3880 2002-04-15 Fernando Perez <fperez@colorado.edu>
3876
3881
3877 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3882 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3878 crash embedded instances because of the input cache falling out of
3883 crash embedded instances because of the input cache falling out of
3879 sync with the output counter.
3884 sync with the output counter.
3880
3885
3881 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3886 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3882 mode which calls pdb after an uncaught exception in IPython itself.
3887 mode which calls pdb after an uncaught exception in IPython itself.
3883
3888
3884 2002-04-14 Fernando Perez <fperez@colorado.edu>
3889 2002-04-14 Fernando Perez <fperez@colorado.edu>
3885
3890
3886 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3891 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3887 readline, fix it back after each call.
3892 readline, fix it back after each call.
3888
3893
3889 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3894 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3890 method to force all access via __call__(), which guarantees that
3895 method to force all access via __call__(), which guarantees that
3891 traceback references are properly deleted.
3896 traceback references are properly deleted.
3892
3897
3893 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3898 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3894 improve printing when pprint is in use.
3899 improve printing when pprint is in use.
3895
3900
3896 2002-04-13 Fernando Perez <fperez@colorado.edu>
3901 2002-04-13 Fernando Perez <fperez@colorado.edu>
3897
3902
3898 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3903 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3899 exceptions aren't caught anymore. If the user triggers one, he
3904 exceptions aren't caught anymore. If the user triggers one, he
3900 should know why he's doing it and it should go all the way up,
3905 should know why he's doing it and it should go all the way up,
3901 just like any other exception. So now @abort will fully kill the
3906 just like any other exception. So now @abort will fully kill the
3902 embedded interpreter and the embedding code (unless that happens
3907 embedded interpreter and the embedding code (unless that happens
3903 to catch SystemExit).
3908 to catch SystemExit).
3904
3909
3905 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3910 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3906 and a debugger() method to invoke the interactive pdb debugger
3911 and a debugger() method to invoke the interactive pdb debugger
3907 after printing exception information. Also added the corresponding
3912 after printing exception information. Also added the corresponding
3908 -pdb option and @pdb magic to control this feature, and updated
3913 -pdb option and @pdb magic to control this feature, and updated
3909 the docs. After a suggestion from Christopher Hart
3914 the docs. After a suggestion from Christopher Hart
3910 (hart-AT-caltech.edu).
3915 (hart-AT-caltech.edu).
3911
3916
3912 2002-04-12 Fernando Perez <fperez@colorado.edu>
3917 2002-04-12 Fernando Perez <fperez@colorado.edu>
3913
3918
3914 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3919 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3915 the exception handlers defined by the user (not the CrashHandler)
3920 the exception handlers defined by the user (not the CrashHandler)
3916 so that user exceptions don't trigger an ipython bug report.
3921 so that user exceptions don't trigger an ipython bug report.
3917
3922
3918 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3923 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3919 configurable (it should have always been so).
3924 configurable (it should have always been so).
3920
3925
3921 2002-03-26 Fernando Perez <fperez@colorado.edu>
3926 2002-03-26 Fernando Perez <fperez@colorado.edu>
3922
3927
3923 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3928 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3924 and there to fix embedding namespace issues. This should all be
3929 and there to fix embedding namespace issues. This should all be
3925 done in a more elegant way.
3930 done in a more elegant way.
3926
3931
3927 2002-03-25 Fernando Perez <fperez@colorado.edu>
3932 2002-03-25 Fernando Perez <fperez@colorado.edu>
3928
3933
3929 * IPython/genutils.py (get_home_dir): Try to make it work under
3934 * IPython/genutils.py (get_home_dir): Try to make it work under
3930 win9x also.
3935 win9x also.
3931
3936
3932 2002-03-20 Fernando Perez <fperez@colorado.edu>
3937 2002-03-20 Fernando Perez <fperez@colorado.edu>
3933
3938
3934 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3939 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3935 sys.displayhook untouched upon __init__.
3940 sys.displayhook untouched upon __init__.
3936
3941
3937 2002-03-19 Fernando Perez <fperez@colorado.edu>
3942 2002-03-19 Fernando Perez <fperez@colorado.edu>
3938
3943
3939 * Released 0.2.9 (for embedding bug, basically).
3944 * Released 0.2.9 (for embedding bug, basically).
3940
3945
3941 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3946 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3942 exceptions so that enclosing shell's state can be restored.
3947 exceptions so that enclosing shell's state can be restored.
3943
3948
3944 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3949 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3945 naming conventions in the .ipython/ dir.
3950 naming conventions in the .ipython/ dir.
3946
3951
3947 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3952 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3948 from delimiters list so filenames with - in them get expanded.
3953 from delimiters list so filenames with - in them get expanded.
3949
3954
3950 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3955 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3951 sys.displayhook not being properly restored after an embedded call.
3956 sys.displayhook not being properly restored after an embedded call.
3952
3957
3953 2002-03-18 Fernando Perez <fperez@colorado.edu>
3958 2002-03-18 Fernando Perez <fperez@colorado.edu>
3954
3959
3955 * Released 0.2.8
3960 * Released 0.2.8
3956
3961
3957 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3962 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3958 some files weren't being included in a -upgrade.
3963 some files weren't being included in a -upgrade.
3959 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3964 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3960 on' so that the first tab completes.
3965 on' so that the first tab completes.
3961 (InteractiveShell.handle_magic): fixed bug with spaces around
3966 (InteractiveShell.handle_magic): fixed bug with spaces around
3962 quotes breaking many magic commands.
3967 quotes breaking many magic commands.
3963
3968
3964 * setup.py: added note about ignoring the syntax error messages at
3969 * setup.py: added note about ignoring the syntax error messages at
3965 installation.
3970 installation.
3966
3971
3967 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3972 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3968 streamlining the gnuplot interface, now there's only one magic @gp.
3973 streamlining the gnuplot interface, now there's only one magic @gp.
3969
3974
3970 2002-03-17 Fernando Perez <fperez@colorado.edu>
3975 2002-03-17 Fernando Perez <fperez@colorado.edu>
3971
3976
3972 * IPython/UserConfig/magic_gnuplot.py: new name for the
3977 * IPython/UserConfig/magic_gnuplot.py: new name for the
3973 example-magic_pm.py file. Much enhanced system, now with a shell
3978 example-magic_pm.py file. Much enhanced system, now with a shell
3974 for communicating directly with gnuplot, one command at a time.
3979 for communicating directly with gnuplot, one command at a time.
3975
3980
3976 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3981 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3977 setting __name__=='__main__'.
3982 setting __name__=='__main__'.
3978
3983
3979 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3984 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3980 mini-shell for accessing gnuplot from inside ipython. Should
3985 mini-shell for accessing gnuplot from inside ipython. Should
3981 extend it later for grace access too. Inspired by Arnd's
3986 extend it later for grace access too. Inspired by Arnd's
3982 suggestion.
3987 suggestion.
3983
3988
3984 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3989 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3985 calling magic functions with () in their arguments. Thanks to Arnd
3990 calling magic functions with () in their arguments. Thanks to Arnd
3986 Baecker for pointing this to me.
3991 Baecker for pointing this to me.
3987
3992
3988 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3993 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3989 infinitely for integer or complex arrays (only worked with floats).
3994 infinitely for integer or complex arrays (only worked with floats).
3990
3995
3991 2002-03-16 Fernando Perez <fperez@colorado.edu>
3996 2002-03-16 Fernando Perez <fperez@colorado.edu>
3992
3997
3993 * setup.py: Merged setup and setup_windows into a single script
3998 * setup.py: Merged setup and setup_windows into a single script
3994 which properly handles things for windows users.
3999 which properly handles things for windows users.
3995
4000
3996 2002-03-15 Fernando Perez <fperez@colorado.edu>
4001 2002-03-15 Fernando Perez <fperez@colorado.edu>
3997
4002
3998 * Big change to the manual: now the magics are all automatically
4003 * Big change to the manual: now the magics are all automatically
3999 documented. This information is generated from their docstrings
4004 documented. This information is generated from their docstrings
4000 and put in a latex file included by the manual lyx file. This way
4005 and put in a latex file included by the manual lyx file. This way
4001 we get always up to date information for the magics. The manual
4006 we get always up to date information for the magics. The manual
4002 now also has proper version information, also auto-synced.
4007 now also has proper version information, also auto-synced.
4003
4008
4004 For this to work, an undocumented --magic_docstrings option was added.
4009 For this to work, an undocumented --magic_docstrings option was added.
4005
4010
4006 2002-03-13 Fernando Perez <fperez@colorado.edu>
4011 2002-03-13 Fernando Perez <fperez@colorado.edu>
4007
4012
4008 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4013 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4009 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4014 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4010
4015
4011 2002-03-12 Fernando Perez <fperez@colorado.edu>
4016 2002-03-12 Fernando Perez <fperez@colorado.edu>
4012
4017
4013 * IPython/ultraTB.py (TermColors): changed color escapes again to
4018 * IPython/ultraTB.py (TermColors): changed color escapes again to
4014 fix the (old, reintroduced) line-wrapping bug. Basically, if
4019 fix the (old, reintroduced) line-wrapping bug. Basically, if
4015 \001..\002 aren't given in the color escapes, lines get wrapped
4020 \001..\002 aren't given in the color escapes, lines get wrapped
4016 weirdly. But giving those screws up old xterms and emacs terms. So
4021 weirdly. But giving those screws up old xterms and emacs terms. So
4017 I added some logic for emacs terms to be ok, but I can't identify old
4022 I added some logic for emacs terms to be ok, but I can't identify old
4018 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4023 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4019
4024
4020 2002-03-10 Fernando Perez <fperez@colorado.edu>
4025 2002-03-10 Fernando Perez <fperez@colorado.edu>
4021
4026
4022 * IPython/usage.py (__doc__): Various documentation cleanups and
4027 * IPython/usage.py (__doc__): Various documentation cleanups and
4023 updates, both in usage docstrings and in the manual.
4028 updates, both in usage docstrings and in the manual.
4024
4029
4025 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4030 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4026 handling of caching. Set minimum acceptabe value for having a
4031 handling of caching. Set minimum acceptabe value for having a
4027 cache at 20 values.
4032 cache at 20 values.
4028
4033
4029 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4034 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4030 install_first_time function to a method, renamed it and added an
4035 install_first_time function to a method, renamed it and added an
4031 'upgrade' mode. Now people can update their config directory with
4036 'upgrade' mode. Now people can update their config directory with
4032 a simple command line switch (-upgrade, also new).
4037 a simple command line switch (-upgrade, also new).
4033
4038
4034 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4039 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4035 @file (convenient for automagic users under Python >= 2.2).
4040 @file (convenient for automagic users under Python >= 2.2).
4036 Removed @files (it seemed more like a plural than an abbrev. of
4041 Removed @files (it seemed more like a plural than an abbrev. of
4037 'file show').
4042 'file show').
4038
4043
4039 * IPython/iplib.py (install_first_time): Fixed crash if there were
4044 * IPython/iplib.py (install_first_time): Fixed crash if there were
4040 backup files ('~') in .ipython/ install directory.
4045 backup files ('~') in .ipython/ install directory.
4041
4046
4042 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4047 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4043 system. Things look fine, but these changes are fairly
4048 system. Things look fine, but these changes are fairly
4044 intrusive. Test them for a few days.
4049 intrusive. Test them for a few days.
4045
4050
4046 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4051 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4047 the prompts system. Now all in/out prompt strings are user
4052 the prompts system. Now all in/out prompt strings are user
4048 controllable. This is particularly useful for embedding, as one
4053 controllable. This is particularly useful for embedding, as one
4049 can tag embedded instances with particular prompts.
4054 can tag embedded instances with particular prompts.
4050
4055
4051 Also removed global use of sys.ps1/2, which now allows nested
4056 Also removed global use of sys.ps1/2, which now allows nested
4052 embeddings without any problems. Added command-line options for
4057 embeddings without any problems. Added command-line options for
4053 the prompt strings.
4058 the prompt strings.
4054
4059
4055 2002-03-08 Fernando Perez <fperez@colorado.edu>
4060 2002-03-08 Fernando Perez <fperez@colorado.edu>
4056
4061
4057 * IPython/UserConfig/example-embed-short.py (ipshell): added
4062 * IPython/UserConfig/example-embed-short.py (ipshell): added
4058 example file with the bare minimum code for embedding.
4063 example file with the bare minimum code for embedding.
4059
4064
4060 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4065 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4061 functionality for the embeddable shell to be activated/deactivated
4066 functionality for the embeddable shell to be activated/deactivated
4062 either globally or at each call.
4067 either globally or at each call.
4063
4068
4064 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4069 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4065 rewriting the prompt with '--->' for auto-inputs with proper
4070 rewriting the prompt with '--->' for auto-inputs with proper
4066 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4071 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4067 this is handled by the prompts class itself, as it should.
4072 this is handled by the prompts class itself, as it should.
4068
4073
4069 2002-03-05 Fernando Perez <fperez@colorado.edu>
4074 2002-03-05 Fernando Perez <fperez@colorado.edu>
4070
4075
4071 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4076 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4072 @logstart to avoid name clashes with the math log function.
4077 @logstart to avoid name clashes with the math log function.
4073
4078
4074 * Big updates to X/Emacs section of the manual.
4079 * Big updates to X/Emacs section of the manual.
4075
4080
4076 * Removed ipython_emacs. Milan explained to me how to pass
4081 * Removed ipython_emacs. Milan explained to me how to pass
4077 arguments to ipython through Emacs. Some day I'm going to end up
4082 arguments to ipython through Emacs. Some day I'm going to end up
4078 learning some lisp...
4083 learning some lisp...
4079
4084
4080 2002-03-04 Fernando Perez <fperez@colorado.edu>
4085 2002-03-04 Fernando Perez <fperez@colorado.edu>
4081
4086
4082 * IPython/ipython_emacs: Created script to be used as the
4087 * IPython/ipython_emacs: Created script to be used as the
4083 py-python-command Emacs variable so we can pass IPython
4088 py-python-command Emacs variable so we can pass IPython
4084 parameters. I can't figure out how to tell Emacs directly to pass
4089 parameters. I can't figure out how to tell Emacs directly to pass
4085 parameters to IPython, so a dummy shell script will do it.
4090 parameters to IPython, so a dummy shell script will do it.
4086
4091
4087 Other enhancements made for things to work better under Emacs'
4092 Other enhancements made for things to work better under Emacs'
4088 various types of terminals. Many thanks to Milan Zamazal
4093 various types of terminals. Many thanks to Milan Zamazal
4089 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4094 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4090
4095
4091 2002-03-01 Fernando Perez <fperez@colorado.edu>
4096 2002-03-01 Fernando Perez <fperez@colorado.edu>
4092
4097
4093 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4098 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4094 that loading of readline is now optional. This gives better
4099 that loading of readline is now optional. This gives better
4095 control to emacs users.
4100 control to emacs users.
4096
4101
4097 * IPython/ultraTB.py (__date__): Modified color escape sequences
4102 * IPython/ultraTB.py (__date__): Modified color escape sequences
4098 and now things work fine under xterm and in Emacs' term buffers
4103 and now things work fine under xterm and in Emacs' term buffers
4099 (though not shell ones). Well, in emacs you get colors, but all
4104 (though not shell ones). Well, in emacs you get colors, but all
4100 seem to be 'light' colors (no difference between dark and light
4105 seem to be 'light' colors (no difference between dark and light
4101 ones). But the garbage chars are gone, and also in xterms. It
4106 ones). But the garbage chars are gone, and also in xterms. It
4102 seems that now I'm using 'cleaner' ansi sequences.
4107 seems that now I'm using 'cleaner' ansi sequences.
4103
4108
4104 2002-02-21 Fernando Perez <fperez@colorado.edu>
4109 2002-02-21 Fernando Perez <fperez@colorado.edu>
4105
4110
4106 * Released 0.2.7 (mainly to publish the scoping fix).
4111 * Released 0.2.7 (mainly to publish the scoping fix).
4107
4112
4108 * IPython/Logger.py (Logger.logstate): added. A corresponding
4113 * IPython/Logger.py (Logger.logstate): added. A corresponding
4109 @logstate magic was created.
4114 @logstate magic was created.
4110
4115
4111 * IPython/Magic.py: fixed nested scoping problem under Python
4116 * IPython/Magic.py: fixed nested scoping problem under Python
4112 2.1.x (automagic wasn't working).
4117 2.1.x (automagic wasn't working).
4113
4118
4114 2002-02-20 Fernando Perez <fperez@colorado.edu>
4119 2002-02-20 Fernando Perez <fperez@colorado.edu>
4115
4120
4116 * Released 0.2.6.
4121 * Released 0.2.6.
4117
4122
4118 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4123 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4119 option so that logs can come out without any headers at all.
4124 option so that logs can come out without any headers at all.
4120
4125
4121 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4126 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4122 SciPy.
4127 SciPy.
4123
4128
4124 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4129 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4125 that embedded IPython calls don't require vars() to be explicitly
4130 that embedded IPython calls don't require vars() to be explicitly
4126 passed. Now they are extracted from the caller's frame (code
4131 passed. Now they are extracted from the caller's frame (code
4127 snatched from Eric Jones' weave). Added better documentation to
4132 snatched from Eric Jones' weave). Added better documentation to
4128 the section on embedding and the example file.
4133 the section on embedding and the example file.
4129
4134
4130 * IPython/genutils.py (page): Changed so that under emacs, it just
4135 * IPython/genutils.py (page): Changed so that under emacs, it just
4131 prints the string. You can then page up and down in the emacs
4136 prints the string. You can then page up and down in the emacs
4132 buffer itself. This is how the builtin help() works.
4137 buffer itself. This is how the builtin help() works.
4133
4138
4134 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4139 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4135 macro scoping: macros need to be executed in the user's namespace
4140 macro scoping: macros need to be executed in the user's namespace
4136 to work as if they had been typed by the user.
4141 to work as if they had been typed by the user.
4137
4142
4138 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4143 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4139 execute automatically (no need to type 'exec...'). They then
4144 execute automatically (no need to type 'exec...'). They then
4140 behave like 'true macros'. The printing system was also modified
4145 behave like 'true macros'. The printing system was also modified
4141 for this to work.
4146 for this to work.
4142
4147
4143 2002-02-19 Fernando Perez <fperez@colorado.edu>
4148 2002-02-19 Fernando Perez <fperez@colorado.edu>
4144
4149
4145 * IPython/genutils.py (page_file): new function for paging files
4150 * IPython/genutils.py (page_file): new function for paging files
4146 in an OS-independent way. Also necessary for file viewing to work
4151 in an OS-independent way. Also necessary for file viewing to work
4147 well inside Emacs buffers.
4152 well inside Emacs buffers.
4148 (page): Added checks for being in an emacs buffer.
4153 (page): Added checks for being in an emacs buffer.
4149 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4154 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4150 same bug in iplib.
4155 same bug in iplib.
4151
4156
4152 2002-02-18 Fernando Perez <fperez@colorado.edu>
4157 2002-02-18 Fernando Perez <fperez@colorado.edu>
4153
4158
4154 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4159 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4155 of readline so that IPython can work inside an Emacs buffer.
4160 of readline so that IPython can work inside an Emacs buffer.
4156
4161
4157 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4162 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4158 method signatures (they weren't really bugs, but it looks cleaner
4163 method signatures (they weren't really bugs, but it looks cleaner
4159 and keeps PyChecker happy).
4164 and keeps PyChecker happy).
4160
4165
4161 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4166 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4162 for implementing various user-defined hooks. Currently only
4167 for implementing various user-defined hooks. Currently only
4163 display is done.
4168 display is done.
4164
4169
4165 * IPython/Prompts.py (CachedOutput._display): changed display
4170 * IPython/Prompts.py (CachedOutput._display): changed display
4166 functions so that they can be dynamically changed by users easily.
4171 functions so that they can be dynamically changed by users easily.
4167
4172
4168 * IPython/Extensions/numeric_formats.py (num_display): added an
4173 * IPython/Extensions/numeric_formats.py (num_display): added an
4169 extension for printing NumPy arrays in flexible manners. It
4174 extension for printing NumPy arrays in flexible manners. It
4170 doesn't do anything yet, but all the structure is in
4175 doesn't do anything yet, but all the structure is in
4171 place. Ultimately the plan is to implement output format control
4176 place. Ultimately the plan is to implement output format control
4172 like in Octave.
4177 like in Octave.
4173
4178
4174 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4179 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4175 methods are found at run-time by all the automatic machinery.
4180 methods are found at run-time by all the automatic machinery.
4176
4181
4177 2002-02-17 Fernando Perez <fperez@colorado.edu>
4182 2002-02-17 Fernando Perez <fperez@colorado.edu>
4178
4183
4179 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4184 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4180 whole file a little.
4185 whole file a little.
4181
4186
4182 * ToDo: closed this document. Now there's a new_design.lyx
4187 * ToDo: closed this document. Now there's a new_design.lyx
4183 document for all new ideas. Added making a pdf of it for the
4188 document for all new ideas. Added making a pdf of it for the
4184 end-user distro.
4189 end-user distro.
4185
4190
4186 * IPython/Logger.py (Logger.switch_log): Created this to replace
4191 * IPython/Logger.py (Logger.switch_log): Created this to replace
4187 logon() and logoff(). It also fixes a nasty crash reported by
4192 logon() and logoff(). It also fixes a nasty crash reported by
4188 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4193 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4189
4194
4190 * IPython/iplib.py (complete): got auto-completion to work with
4195 * IPython/iplib.py (complete): got auto-completion to work with
4191 automagic (I had wanted this for a long time).
4196 automagic (I had wanted this for a long time).
4192
4197
4193 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4198 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4194 to @file, since file() is now a builtin and clashes with automagic
4199 to @file, since file() is now a builtin and clashes with automagic
4195 for @file.
4200 for @file.
4196
4201
4197 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4202 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4198 of this was previously in iplib, which had grown to more than 2000
4203 of this was previously in iplib, which had grown to more than 2000
4199 lines, way too long. No new functionality, but it makes managing
4204 lines, way too long. No new functionality, but it makes managing
4200 the code a bit easier.
4205 the code a bit easier.
4201
4206
4202 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4207 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4203 information to crash reports.
4208 information to crash reports.
4204
4209
4205 2002-02-12 Fernando Perez <fperez@colorado.edu>
4210 2002-02-12 Fernando Perez <fperez@colorado.edu>
4206
4211
4207 * Released 0.2.5.
4212 * Released 0.2.5.
4208
4213
4209 2002-02-11 Fernando Perez <fperez@colorado.edu>
4214 2002-02-11 Fernando Perez <fperez@colorado.edu>
4210
4215
4211 * Wrote a relatively complete Windows installer. It puts
4216 * Wrote a relatively complete Windows installer. It puts
4212 everything in place, creates Start Menu entries and fixes the
4217 everything in place, creates Start Menu entries and fixes the
4213 color issues. Nothing fancy, but it works.
4218 color issues. Nothing fancy, but it works.
4214
4219
4215 2002-02-10 Fernando Perez <fperez@colorado.edu>
4220 2002-02-10 Fernando Perez <fperez@colorado.edu>
4216
4221
4217 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4222 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4218 os.path.expanduser() call so that we can type @run ~/myfile.py and
4223 os.path.expanduser() call so that we can type @run ~/myfile.py and
4219 have thigs work as expected.
4224 have thigs work as expected.
4220
4225
4221 * IPython/genutils.py (page): fixed exception handling so things
4226 * IPython/genutils.py (page): fixed exception handling so things
4222 work both in Unix and Windows correctly. Quitting a pager triggers
4227 work both in Unix and Windows correctly. Quitting a pager triggers
4223 an IOError/broken pipe in Unix, and in windows not finding a pager
4228 an IOError/broken pipe in Unix, and in windows not finding a pager
4224 is also an IOError, so I had to actually look at the return value
4229 is also an IOError, so I had to actually look at the return value
4225 of the exception, not just the exception itself. Should be ok now.
4230 of the exception, not just the exception itself. Should be ok now.
4226
4231
4227 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4232 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4228 modified to allow case-insensitive color scheme changes.
4233 modified to allow case-insensitive color scheme changes.
4229
4234
4230 2002-02-09 Fernando Perez <fperez@colorado.edu>
4235 2002-02-09 Fernando Perez <fperez@colorado.edu>
4231
4236
4232 * IPython/genutils.py (native_line_ends): new function to leave
4237 * IPython/genutils.py (native_line_ends): new function to leave
4233 user config files with os-native line-endings.
4238 user config files with os-native line-endings.
4234
4239
4235 * README and manual updates.
4240 * README and manual updates.
4236
4241
4237 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4242 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4238 instead of StringType to catch Unicode strings.
4243 instead of StringType to catch Unicode strings.
4239
4244
4240 * IPython/genutils.py (filefind): fixed bug for paths with
4245 * IPython/genutils.py (filefind): fixed bug for paths with
4241 embedded spaces (very common in Windows).
4246 embedded spaces (very common in Windows).
4242
4247
4243 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4248 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4244 files under Windows, so that they get automatically associated
4249 files under Windows, so that they get automatically associated
4245 with a text editor. Windows makes it a pain to handle
4250 with a text editor. Windows makes it a pain to handle
4246 extension-less files.
4251 extension-less files.
4247
4252
4248 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4253 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4249 warning about readline only occur for Posix. In Windows there's no
4254 warning about readline only occur for Posix. In Windows there's no
4250 way to get readline, so why bother with the warning.
4255 way to get readline, so why bother with the warning.
4251
4256
4252 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4257 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4253 for __str__ instead of dir(self), since dir() changed in 2.2.
4258 for __str__ instead of dir(self), since dir() changed in 2.2.
4254
4259
4255 * Ported to Windows! Tested on XP, I suspect it should work fine
4260 * Ported to Windows! Tested on XP, I suspect it should work fine
4256 on NT/2000, but I don't think it will work on 98 et al. That
4261 on NT/2000, but I don't think it will work on 98 et al. That
4257 series of Windows is such a piece of junk anyway that I won't try
4262 series of Windows is such a piece of junk anyway that I won't try
4258 porting it there. The XP port was straightforward, showed a few
4263 porting it there. The XP port was straightforward, showed a few
4259 bugs here and there (fixed all), in particular some string
4264 bugs here and there (fixed all), in particular some string
4260 handling stuff which required considering Unicode strings (which
4265 handling stuff which required considering Unicode strings (which
4261 Windows uses). This is good, but hasn't been too tested :) No
4266 Windows uses). This is good, but hasn't been too tested :) No
4262 fancy installer yet, I'll put a note in the manual so people at
4267 fancy installer yet, I'll put a note in the manual so people at
4263 least make manually a shortcut.
4268 least make manually a shortcut.
4264
4269
4265 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4270 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4266 into a single one, "colors". This now controls both prompt and
4271 into a single one, "colors". This now controls both prompt and
4267 exception color schemes, and can be changed both at startup
4272 exception color schemes, and can be changed both at startup
4268 (either via command-line switches or via ipythonrc files) and at
4273 (either via command-line switches or via ipythonrc files) and at
4269 runtime, with @colors.
4274 runtime, with @colors.
4270 (Magic.magic_run): renamed @prun to @run and removed the old
4275 (Magic.magic_run): renamed @prun to @run and removed the old
4271 @run. The two were too similar to warrant keeping both.
4276 @run. The two were too similar to warrant keeping both.
4272
4277
4273 2002-02-03 Fernando Perez <fperez@colorado.edu>
4278 2002-02-03 Fernando Perez <fperez@colorado.edu>
4274
4279
4275 * IPython/iplib.py (install_first_time): Added comment on how to
4280 * IPython/iplib.py (install_first_time): Added comment on how to
4276 configure the color options for first-time users. Put a <return>
4281 configure the color options for first-time users. Put a <return>
4277 request at the end so that small-terminal users get a chance to
4282 request at the end so that small-terminal users get a chance to
4278 read the startup info.
4283 read the startup info.
4279
4284
4280 2002-01-23 Fernando Perez <fperez@colorado.edu>
4285 2002-01-23 Fernando Perez <fperez@colorado.edu>
4281
4286
4282 * IPython/iplib.py (CachedOutput.update): Changed output memory
4287 * IPython/iplib.py (CachedOutput.update): Changed output memory
4283 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4288 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4284 input history we still use _i. Did this b/c these variable are
4289 input history we still use _i. Did this b/c these variable are
4285 very commonly used in interactive work, so the less we need to
4290 very commonly used in interactive work, so the less we need to
4286 type the better off we are.
4291 type the better off we are.
4287 (Magic.magic_prun): updated @prun to better handle the namespaces
4292 (Magic.magic_prun): updated @prun to better handle the namespaces
4288 the file will run in, including a fix for __name__ not being set
4293 the file will run in, including a fix for __name__ not being set
4289 before.
4294 before.
4290
4295
4291 2002-01-20 Fernando Perez <fperez@colorado.edu>
4296 2002-01-20 Fernando Perez <fperez@colorado.edu>
4292
4297
4293 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4298 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4294 extra garbage for Python 2.2. Need to look more carefully into
4299 extra garbage for Python 2.2. Need to look more carefully into
4295 this later.
4300 this later.
4296
4301
4297 2002-01-19 Fernando Perez <fperez@colorado.edu>
4302 2002-01-19 Fernando Perez <fperez@colorado.edu>
4298
4303
4299 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4304 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4300 display SyntaxError exceptions properly formatted when they occur
4305 display SyntaxError exceptions properly formatted when they occur
4301 (they can be triggered by imported code).
4306 (they can be triggered by imported code).
4302
4307
4303 2002-01-18 Fernando Perez <fperez@colorado.edu>
4308 2002-01-18 Fernando Perez <fperez@colorado.edu>
4304
4309
4305 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4310 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4306 SyntaxError exceptions are reported nicely formatted, instead of
4311 SyntaxError exceptions are reported nicely formatted, instead of
4307 spitting out only offset information as before.
4312 spitting out only offset information as before.
4308 (Magic.magic_prun): Added the @prun function for executing
4313 (Magic.magic_prun): Added the @prun function for executing
4309 programs with command line args inside IPython.
4314 programs with command line args inside IPython.
4310
4315
4311 2002-01-16 Fernando Perez <fperez@colorado.edu>
4316 2002-01-16 Fernando Perez <fperez@colorado.edu>
4312
4317
4313 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4318 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4314 to *not* include the last item given in a range. This brings their
4319 to *not* include the last item given in a range. This brings their
4315 behavior in line with Python's slicing:
4320 behavior in line with Python's slicing:
4316 a[n1:n2] -> a[n1]...a[n2-1]
4321 a[n1:n2] -> a[n1]...a[n2-1]
4317 It may be a bit less convenient, but I prefer to stick to Python's
4322 It may be a bit less convenient, but I prefer to stick to Python's
4318 conventions *everywhere*, so users never have to wonder.
4323 conventions *everywhere*, so users never have to wonder.
4319 (Magic.magic_macro): Added @macro function to ease the creation of
4324 (Magic.magic_macro): Added @macro function to ease the creation of
4320 macros.
4325 macros.
4321
4326
4322 2002-01-05 Fernando Perez <fperez@colorado.edu>
4327 2002-01-05 Fernando Perez <fperez@colorado.edu>
4323
4328
4324 * Released 0.2.4.
4329 * Released 0.2.4.
4325
4330
4326 * IPython/iplib.py (Magic.magic_pdef):
4331 * IPython/iplib.py (Magic.magic_pdef):
4327 (InteractiveShell.safe_execfile): report magic lines and error
4332 (InteractiveShell.safe_execfile): report magic lines and error
4328 lines without line numbers so one can easily copy/paste them for
4333 lines without line numbers so one can easily copy/paste them for
4329 re-execution.
4334 re-execution.
4330
4335
4331 * Updated manual with recent changes.
4336 * Updated manual with recent changes.
4332
4337
4333 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4338 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4334 docstring printing when class? is called. Very handy for knowing
4339 docstring printing when class? is called. Very handy for knowing
4335 how to create class instances (as long as __init__ is well
4340 how to create class instances (as long as __init__ is well
4336 documented, of course :)
4341 documented, of course :)
4337 (Magic.magic_doc): print both class and constructor docstrings.
4342 (Magic.magic_doc): print both class and constructor docstrings.
4338 (Magic.magic_pdef): give constructor info if passed a class and
4343 (Magic.magic_pdef): give constructor info if passed a class and
4339 __call__ info for callable object instances.
4344 __call__ info for callable object instances.
4340
4345
4341 2002-01-04 Fernando Perez <fperez@colorado.edu>
4346 2002-01-04 Fernando Perez <fperez@colorado.edu>
4342
4347
4343 * Made deep_reload() off by default. It doesn't always work
4348 * Made deep_reload() off by default. It doesn't always work
4344 exactly as intended, so it's probably safer to have it off. It's
4349 exactly as intended, so it's probably safer to have it off. It's
4345 still available as dreload() anyway, so nothing is lost.
4350 still available as dreload() anyway, so nothing is lost.
4346
4351
4347 2002-01-02 Fernando Perez <fperez@colorado.edu>
4352 2002-01-02 Fernando Perez <fperez@colorado.edu>
4348
4353
4349 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4354 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4350 so I wanted an updated release).
4355 so I wanted an updated release).
4351
4356
4352 2001-12-27 Fernando Perez <fperez@colorado.edu>
4357 2001-12-27 Fernando Perez <fperez@colorado.edu>
4353
4358
4354 * IPython/iplib.py (InteractiveShell.interact): Added the original
4359 * IPython/iplib.py (InteractiveShell.interact): Added the original
4355 code from 'code.py' for this module in order to change the
4360 code from 'code.py' for this module in order to change the
4356 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4361 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4357 the history cache would break when the user hit Ctrl-C, and
4362 the history cache would break when the user hit Ctrl-C, and
4358 interact() offers no way to add any hooks to it.
4363 interact() offers no way to add any hooks to it.
4359
4364
4360 2001-12-23 Fernando Perez <fperez@colorado.edu>
4365 2001-12-23 Fernando Perez <fperez@colorado.edu>
4361
4366
4362 * setup.py: added check for 'MANIFEST' before trying to remove
4367 * setup.py: added check for 'MANIFEST' before trying to remove
4363 it. Thanks to Sean Reifschneider.
4368 it. Thanks to Sean Reifschneider.
4364
4369
4365 2001-12-22 Fernando Perez <fperez@colorado.edu>
4370 2001-12-22 Fernando Perez <fperez@colorado.edu>
4366
4371
4367 * Released 0.2.2.
4372 * Released 0.2.2.
4368
4373
4369 * Finished (reasonably) writing the manual. Later will add the
4374 * Finished (reasonably) writing the manual. Later will add the
4370 python-standard navigation stylesheets, but for the time being
4375 python-standard navigation stylesheets, but for the time being
4371 it's fairly complete. Distribution will include html and pdf
4376 it's fairly complete. Distribution will include html and pdf
4372 versions.
4377 versions.
4373
4378
4374 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4379 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4375 (MayaVi author).
4380 (MayaVi author).
4376
4381
4377 2001-12-21 Fernando Perez <fperez@colorado.edu>
4382 2001-12-21 Fernando Perez <fperez@colorado.edu>
4378
4383
4379 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4384 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4380 good public release, I think (with the manual and the distutils
4385 good public release, I think (with the manual and the distutils
4381 installer). The manual can use some work, but that can go
4386 installer). The manual can use some work, but that can go
4382 slowly. Otherwise I think it's quite nice for end users. Next
4387 slowly. Otherwise I think it's quite nice for end users. Next
4383 summer, rewrite the guts of it...
4388 summer, rewrite the guts of it...
4384
4389
4385 * Changed format of ipythonrc files to use whitespace as the
4390 * Changed format of ipythonrc files to use whitespace as the
4386 separator instead of an explicit '='. Cleaner.
4391 separator instead of an explicit '='. Cleaner.
4387
4392
4388 2001-12-20 Fernando Perez <fperez@colorado.edu>
4393 2001-12-20 Fernando Perez <fperez@colorado.edu>
4389
4394
4390 * Started a manual in LyX. For now it's just a quick merge of the
4395 * Started a manual in LyX. For now it's just a quick merge of the
4391 various internal docstrings and READMEs. Later it may grow into a
4396 various internal docstrings and READMEs. Later it may grow into a
4392 nice, full-blown manual.
4397 nice, full-blown manual.
4393
4398
4394 * Set up a distutils based installer. Installation should now be
4399 * Set up a distutils based installer. Installation should now be
4395 trivially simple for end-users.
4400 trivially simple for end-users.
4396
4401
4397 2001-12-11 Fernando Perez <fperez@colorado.edu>
4402 2001-12-11 Fernando Perez <fperez@colorado.edu>
4398
4403
4399 * Released 0.2.0. First public release, announced it at
4404 * Released 0.2.0. First public release, announced it at
4400 comp.lang.python. From now on, just bugfixes...
4405 comp.lang.python. From now on, just bugfixes...
4401
4406
4402 * Went through all the files, set copyright/license notices and
4407 * Went through all the files, set copyright/license notices and
4403 cleaned up things. Ready for release.
4408 cleaned up things. Ready for release.
4404
4409
4405 2001-12-10 Fernando Perez <fperez@colorado.edu>
4410 2001-12-10 Fernando Perez <fperez@colorado.edu>
4406
4411
4407 * Changed the first-time installer not to use tarfiles. It's more
4412 * Changed the first-time installer not to use tarfiles. It's more
4408 robust now and less unix-dependent. Also makes it easier for
4413 robust now and less unix-dependent. Also makes it easier for
4409 people to later upgrade versions.
4414 people to later upgrade versions.
4410
4415
4411 * Changed @exit to @abort to reflect the fact that it's pretty
4416 * Changed @exit to @abort to reflect the fact that it's pretty
4412 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4417 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4413 becomes significant only when IPyhton is embedded: in that case,
4418 becomes significant only when IPyhton is embedded: in that case,
4414 C-D closes IPython only, but @abort kills the enclosing program
4419 C-D closes IPython only, but @abort kills the enclosing program
4415 too (unless it had called IPython inside a try catching
4420 too (unless it had called IPython inside a try catching
4416 SystemExit).
4421 SystemExit).
4417
4422
4418 * Created Shell module which exposes the actuall IPython Shell
4423 * Created Shell module which exposes the actuall IPython Shell
4419 classes, currently the normal and the embeddable one. This at
4424 classes, currently the normal and the embeddable one. This at
4420 least offers a stable interface we won't need to change when
4425 least offers a stable interface we won't need to change when
4421 (later) the internals are rewritten. That rewrite will be confined
4426 (later) the internals are rewritten. That rewrite will be confined
4422 to iplib and ipmaker, but the Shell interface should remain as is.
4427 to iplib and ipmaker, but the Shell interface should remain as is.
4423
4428
4424 * Added embed module which offers an embeddable IPShell object,
4429 * Added embed module which offers an embeddable IPShell object,
4425 useful to fire up IPython *inside* a running program. Great for
4430 useful to fire up IPython *inside* a running program. Great for
4426 debugging or dynamical data analysis.
4431 debugging or dynamical data analysis.
4427
4432
4428 2001-12-08 Fernando Perez <fperez@colorado.edu>
4433 2001-12-08 Fernando Perez <fperez@colorado.edu>
4429
4434
4430 * Fixed small bug preventing seeing info from methods of defined
4435 * Fixed small bug preventing seeing info from methods of defined
4431 objects (incorrect namespace in _ofind()).
4436 objects (incorrect namespace in _ofind()).
4432
4437
4433 * Documentation cleanup. Moved the main usage docstrings to a
4438 * Documentation cleanup. Moved the main usage docstrings to a
4434 separate file, usage.py (cleaner to maintain, and hopefully in the
4439 separate file, usage.py (cleaner to maintain, and hopefully in the
4435 future some perlpod-like way of producing interactive, man and
4440 future some perlpod-like way of producing interactive, man and
4436 html docs out of it will be found).
4441 html docs out of it will be found).
4437
4442
4438 * Added @profile to see your profile at any time.
4443 * Added @profile to see your profile at any time.
4439
4444
4440 * Added @p as an alias for 'print'. It's especially convenient if
4445 * Added @p as an alias for 'print'. It's especially convenient if
4441 using automagic ('p x' prints x).
4446 using automagic ('p x' prints x).
4442
4447
4443 * Small cleanups and fixes after a pychecker run.
4448 * Small cleanups and fixes after a pychecker run.
4444
4449
4445 * Changed the @cd command to handle @cd - and @cd -<n> for
4450 * Changed the @cd command to handle @cd - and @cd -<n> for
4446 visiting any directory in _dh.
4451 visiting any directory in _dh.
4447
4452
4448 * Introduced _dh, a history of visited directories. @dhist prints
4453 * Introduced _dh, a history of visited directories. @dhist prints
4449 it out with numbers.
4454 it out with numbers.
4450
4455
4451 2001-12-07 Fernando Perez <fperez@colorado.edu>
4456 2001-12-07 Fernando Perez <fperez@colorado.edu>
4452
4457
4453 * Released 0.1.22
4458 * Released 0.1.22
4454
4459
4455 * Made initialization a bit more robust against invalid color
4460 * Made initialization a bit more robust against invalid color
4456 options in user input (exit, not traceback-crash).
4461 options in user input (exit, not traceback-crash).
4457
4462
4458 * Changed the bug crash reporter to write the report only in the
4463 * Changed the bug crash reporter to write the report only in the
4459 user's .ipython directory. That way IPython won't litter people's
4464 user's .ipython directory. That way IPython won't litter people's
4460 hard disks with crash files all over the place. Also print on
4465 hard disks with crash files all over the place. Also print on
4461 screen the necessary mail command.
4466 screen the necessary mail command.
4462
4467
4463 * With the new ultraTB, implemented LightBG color scheme for light
4468 * With the new ultraTB, implemented LightBG color scheme for light
4464 background terminals. A lot of people like white backgrounds, so I
4469 background terminals. A lot of people like white backgrounds, so I
4465 guess we should at least give them something readable.
4470 guess we should at least give them something readable.
4466
4471
4467 2001-12-06 Fernando Perez <fperez@colorado.edu>
4472 2001-12-06 Fernando Perez <fperez@colorado.edu>
4468
4473
4469 * Modified the structure of ultraTB. Now there's a proper class
4474 * Modified the structure of ultraTB. Now there's a proper class
4470 for tables of color schemes which allow adding schemes easily and
4475 for tables of color schemes which allow adding schemes easily and
4471 switching the active scheme without creating a new instance every
4476 switching the active scheme without creating a new instance every
4472 time (which was ridiculous). The syntax for creating new schemes
4477 time (which was ridiculous). The syntax for creating new schemes
4473 is also cleaner. I think ultraTB is finally done, with a clean
4478 is also cleaner. I think ultraTB is finally done, with a clean
4474 class structure. Names are also much cleaner (now there's proper
4479 class structure. Names are also much cleaner (now there's proper
4475 color tables, no need for every variable to also have 'color' in
4480 color tables, no need for every variable to also have 'color' in
4476 its name).
4481 its name).
4477
4482
4478 * Broke down genutils into separate files. Now genutils only
4483 * Broke down genutils into separate files. Now genutils only
4479 contains utility functions, and classes have been moved to their
4484 contains utility functions, and classes have been moved to their
4480 own files (they had enough independent functionality to warrant
4485 own files (they had enough independent functionality to warrant
4481 it): ConfigLoader, OutputTrap, Struct.
4486 it): ConfigLoader, OutputTrap, Struct.
4482
4487
4483 2001-12-05 Fernando Perez <fperez@colorado.edu>
4488 2001-12-05 Fernando Perez <fperez@colorado.edu>
4484
4489
4485 * IPython turns 21! Released version 0.1.21, as a candidate for
4490 * IPython turns 21! Released version 0.1.21, as a candidate for
4486 public consumption. If all goes well, release in a few days.
4491 public consumption. If all goes well, release in a few days.
4487
4492
4488 * Fixed path bug (files in Extensions/ directory wouldn't be found
4493 * Fixed path bug (files in Extensions/ directory wouldn't be found
4489 unless IPython/ was explicitly in sys.path).
4494 unless IPython/ was explicitly in sys.path).
4490
4495
4491 * Extended the FlexCompleter class as MagicCompleter to allow
4496 * Extended the FlexCompleter class as MagicCompleter to allow
4492 completion of @-starting lines.
4497 completion of @-starting lines.
4493
4498
4494 * Created __release__.py file as a central repository for release
4499 * Created __release__.py file as a central repository for release
4495 info that other files can read from.
4500 info that other files can read from.
4496
4501
4497 * Fixed small bug in logging: when logging was turned on in
4502 * Fixed small bug in logging: when logging was turned on in
4498 mid-session, old lines with special meanings (!@?) were being
4503 mid-session, old lines with special meanings (!@?) were being
4499 logged without the prepended comment, which is necessary since
4504 logged without the prepended comment, which is necessary since
4500 they are not truly valid python syntax. This should make session
4505 they are not truly valid python syntax. This should make session
4501 restores produce less errors.
4506 restores produce less errors.
4502
4507
4503 * The namespace cleanup forced me to make a FlexCompleter class
4508 * The namespace cleanup forced me to make a FlexCompleter class
4504 which is nothing but a ripoff of rlcompleter, but with selectable
4509 which is nothing but a ripoff of rlcompleter, but with selectable
4505 namespace (rlcompleter only works in __main__.__dict__). I'll try
4510 namespace (rlcompleter only works in __main__.__dict__). I'll try
4506 to submit a note to the authors to see if this change can be
4511 to submit a note to the authors to see if this change can be
4507 incorporated in future rlcompleter releases (Dec.6: done)
4512 incorporated in future rlcompleter releases (Dec.6: done)
4508
4513
4509 * More fixes to namespace handling. It was a mess! Now all
4514 * More fixes to namespace handling. It was a mess! Now all
4510 explicit references to __main__.__dict__ are gone (except when
4515 explicit references to __main__.__dict__ are gone (except when
4511 really needed) and everything is handled through the namespace
4516 really needed) and everything is handled through the namespace
4512 dicts in the IPython instance. We seem to be getting somewhere
4517 dicts in the IPython instance. We seem to be getting somewhere
4513 with this, finally...
4518 with this, finally...
4514
4519
4515 * Small documentation updates.
4520 * Small documentation updates.
4516
4521
4517 * Created the Extensions directory under IPython (with an
4522 * Created the Extensions directory under IPython (with an
4518 __init__.py). Put the PhysicalQ stuff there. This directory should
4523 __init__.py). Put the PhysicalQ stuff there. This directory should
4519 be used for all special-purpose extensions.
4524 be used for all special-purpose extensions.
4520
4525
4521 * File renaming:
4526 * File renaming:
4522 ipythonlib --> ipmaker
4527 ipythonlib --> ipmaker
4523 ipplib --> iplib
4528 ipplib --> iplib
4524 This makes a bit more sense in terms of what these files actually do.
4529 This makes a bit more sense in terms of what these files actually do.
4525
4530
4526 * Moved all the classes and functions in ipythonlib to ipplib, so
4531 * Moved all the classes and functions in ipythonlib to ipplib, so
4527 now ipythonlib only has make_IPython(). This will ease up its
4532 now ipythonlib only has make_IPython(). This will ease up its
4528 splitting in smaller functional chunks later.
4533 splitting in smaller functional chunks later.
4529
4534
4530 * Cleaned up (done, I think) output of @whos. Better column
4535 * Cleaned up (done, I think) output of @whos. Better column
4531 formatting, and now shows str(var) for as much as it can, which is
4536 formatting, and now shows str(var) for as much as it can, which is
4532 typically what one gets with a 'print var'.
4537 typically what one gets with a 'print var'.
4533
4538
4534 2001-12-04 Fernando Perez <fperez@colorado.edu>
4539 2001-12-04 Fernando Perez <fperez@colorado.edu>
4535
4540
4536 * Fixed namespace problems. Now builtin/IPyhton/user names get
4541 * Fixed namespace problems. Now builtin/IPyhton/user names get
4537 properly reported in their namespace. Internal namespace handling
4542 properly reported in their namespace. Internal namespace handling
4538 is finally getting decent (not perfect yet, but much better than
4543 is finally getting decent (not perfect yet, but much better than
4539 the ad-hoc mess we had).
4544 the ad-hoc mess we had).
4540
4545
4541 * Removed -exit option. If people just want to run a python
4546 * Removed -exit option. If people just want to run a python
4542 script, that's what the normal interpreter is for. Less
4547 script, that's what the normal interpreter is for. Less
4543 unnecessary options, less chances for bugs.
4548 unnecessary options, less chances for bugs.
4544
4549
4545 * Added a crash handler which generates a complete post-mortem if
4550 * Added a crash handler which generates a complete post-mortem if
4546 IPython crashes. This will help a lot in tracking bugs down the
4551 IPython crashes. This will help a lot in tracking bugs down the
4547 road.
4552 road.
4548
4553
4549 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4554 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4550 which were boud to functions being reassigned would bypass the
4555 which were boud to functions being reassigned would bypass the
4551 logger, breaking the sync of _il with the prompt counter. This
4556 logger, breaking the sync of _il with the prompt counter. This
4552 would then crash IPython later when a new line was logged.
4557 would then crash IPython later when a new line was logged.
4553
4558
4554 2001-12-02 Fernando Perez <fperez@colorado.edu>
4559 2001-12-02 Fernando Perez <fperez@colorado.edu>
4555
4560
4556 * Made IPython a package. This means people don't have to clutter
4561 * Made IPython a package. This means people don't have to clutter
4557 their sys.path with yet another directory. Changed the INSTALL
4562 their sys.path with yet another directory. Changed the INSTALL
4558 file accordingly.
4563 file accordingly.
4559
4564
4560 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4565 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4561 sorts its output (so @who shows it sorted) and @whos formats the
4566 sorts its output (so @who shows it sorted) and @whos formats the
4562 table according to the width of the first column. Nicer, easier to
4567 table according to the width of the first column. Nicer, easier to
4563 read. Todo: write a generic table_format() which takes a list of
4568 read. Todo: write a generic table_format() which takes a list of
4564 lists and prints it nicely formatted, with optional row/column
4569 lists and prints it nicely formatted, with optional row/column
4565 separators and proper padding and justification.
4570 separators and proper padding and justification.
4566
4571
4567 * Released 0.1.20
4572 * Released 0.1.20
4568
4573
4569 * Fixed bug in @log which would reverse the inputcache list (a
4574 * Fixed bug in @log which would reverse the inputcache list (a
4570 copy operation was missing).
4575 copy operation was missing).
4571
4576
4572 * Code cleanup. @config was changed to use page(). Better, since
4577 * Code cleanup. @config was changed to use page(). Better, since
4573 its output is always quite long.
4578 its output is always quite long.
4574
4579
4575 * Itpl is back as a dependency. I was having too many problems
4580 * Itpl is back as a dependency. I was having too many problems
4576 getting the parametric aliases to work reliably, and it's just
4581 getting the parametric aliases to work reliably, and it's just
4577 easier to code weird string operations with it than playing %()s
4582 easier to code weird string operations with it than playing %()s
4578 games. It's only ~6k, so I don't think it's too big a deal.
4583 games. It's only ~6k, so I don't think it's too big a deal.
4579
4584
4580 * Found (and fixed) a very nasty bug with history. !lines weren't
4585 * Found (and fixed) a very nasty bug with history. !lines weren't
4581 getting cached, and the out of sync caches would crash
4586 getting cached, and the out of sync caches would crash
4582 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4587 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4583 division of labor a bit better. Bug fixed, cleaner structure.
4588 division of labor a bit better. Bug fixed, cleaner structure.
4584
4589
4585 2001-12-01 Fernando Perez <fperez@colorado.edu>
4590 2001-12-01 Fernando Perez <fperez@colorado.edu>
4586
4591
4587 * Released 0.1.19
4592 * Released 0.1.19
4588
4593
4589 * Added option -n to @hist to prevent line number printing. Much
4594 * Added option -n to @hist to prevent line number printing. Much
4590 easier to copy/paste code this way.
4595 easier to copy/paste code this way.
4591
4596
4592 * Created global _il to hold the input list. Allows easy
4597 * Created global _il to hold the input list. Allows easy
4593 re-execution of blocks of code by slicing it (inspired by Janko's
4598 re-execution of blocks of code by slicing it (inspired by Janko's
4594 comment on 'macros').
4599 comment on 'macros').
4595
4600
4596 * Small fixes and doc updates.
4601 * Small fixes and doc updates.
4597
4602
4598 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4603 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4599 much too fragile with automagic. Handles properly multi-line
4604 much too fragile with automagic. Handles properly multi-line
4600 statements and takes parameters.
4605 statements and takes parameters.
4601
4606
4602 2001-11-30 Fernando Perez <fperez@colorado.edu>
4607 2001-11-30 Fernando Perez <fperez@colorado.edu>
4603
4608
4604 * Version 0.1.18 released.
4609 * Version 0.1.18 released.
4605
4610
4606 * Fixed nasty namespace bug in initial module imports.
4611 * Fixed nasty namespace bug in initial module imports.
4607
4612
4608 * Added copyright/license notes to all code files (except
4613 * Added copyright/license notes to all code files (except
4609 DPyGetOpt). For the time being, LGPL. That could change.
4614 DPyGetOpt). For the time being, LGPL. That could change.
4610
4615
4611 * Rewrote a much nicer README, updated INSTALL, cleaned up
4616 * Rewrote a much nicer README, updated INSTALL, cleaned up
4612 ipythonrc-* samples.
4617 ipythonrc-* samples.
4613
4618
4614 * Overall code/documentation cleanup. Basically ready for
4619 * Overall code/documentation cleanup. Basically ready for
4615 release. Only remaining thing: licence decision (LGPL?).
4620 release. Only remaining thing: licence decision (LGPL?).
4616
4621
4617 * Converted load_config to a class, ConfigLoader. Now recursion
4622 * Converted load_config to a class, ConfigLoader. Now recursion
4618 control is better organized. Doesn't include the same file twice.
4623 control is better organized. Doesn't include the same file twice.
4619
4624
4620 2001-11-29 Fernando Perez <fperez@colorado.edu>
4625 2001-11-29 Fernando Perez <fperez@colorado.edu>
4621
4626
4622 * Got input history working. Changed output history variables from
4627 * Got input history working. Changed output history variables from
4623 _p to _o so that _i is for input and _o for output. Just cleaner
4628 _p to _o so that _i is for input and _o for output. Just cleaner
4624 convention.
4629 convention.
4625
4630
4626 * Implemented parametric aliases. This pretty much allows the
4631 * Implemented parametric aliases. This pretty much allows the
4627 alias system to offer full-blown shell convenience, I think.
4632 alias system to offer full-blown shell convenience, I think.
4628
4633
4629 * Version 0.1.17 released, 0.1.18 opened.
4634 * Version 0.1.17 released, 0.1.18 opened.
4630
4635
4631 * dot_ipython/ipythonrc (alias): added documentation.
4636 * dot_ipython/ipythonrc (alias): added documentation.
4632 (xcolor): Fixed small bug (xcolors -> xcolor)
4637 (xcolor): Fixed small bug (xcolors -> xcolor)
4633
4638
4634 * Changed the alias system. Now alias is a magic command to define
4639 * Changed the alias system. Now alias is a magic command to define
4635 aliases just like the shell. Rationale: the builtin magics should
4640 aliases just like the shell. Rationale: the builtin magics should
4636 be there for things deeply connected to IPython's
4641 be there for things deeply connected to IPython's
4637 architecture. And this is a much lighter system for what I think
4642 architecture. And this is a much lighter system for what I think
4638 is the really important feature: allowing users to define quickly
4643 is the really important feature: allowing users to define quickly
4639 magics that will do shell things for them, so they can customize
4644 magics that will do shell things for them, so they can customize
4640 IPython easily to match their work habits. If someone is really
4645 IPython easily to match their work habits. If someone is really
4641 desperate to have another name for a builtin alias, they can
4646 desperate to have another name for a builtin alias, they can
4642 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4647 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4643 works.
4648 works.
4644
4649
4645 2001-11-28 Fernando Perez <fperez@colorado.edu>
4650 2001-11-28 Fernando Perez <fperez@colorado.edu>
4646
4651
4647 * Changed @file so that it opens the source file at the proper
4652 * Changed @file so that it opens the source file at the proper
4648 line. Since it uses less, if your EDITOR environment is
4653 line. Since it uses less, if your EDITOR environment is
4649 configured, typing v will immediately open your editor of choice
4654 configured, typing v will immediately open your editor of choice
4650 right at the line where the object is defined. Not as quick as
4655 right at the line where the object is defined. Not as quick as
4651 having a direct @edit command, but for all intents and purposes it
4656 having a direct @edit command, but for all intents and purposes it
4652 works. And I don't have to worry about writing @edit to deal with
4657 works. And I don't have to worry about writing @edit to deal with
4653 all the editors, less does that.
4658 all the editors, less does that.
4654
4659
4655 * Version 0.1.16 released, 0.1.17 opened.
4660 * Version 0.1.16 released, 0.1.17 opened.
4656
4661
4657 * Fixed some nasty bugs in the page/page_dumb combo that could
4662 * Fixed some nasty bugs in the page/page_dumb combo that could
4658 crash IPython.
4663 crash IPython.
4659
4664
4660 2001-11-27 Fernando Perez <fperez@colorado.edu>
4665 2001-11-27 Fernando Perez <fperez@colorado.edu>
4661
4666
4662 * Version 0.1.15 released, 0.1.16 opened.
4667 * Version 0.1.15 released, 0.1.16 opened.
4663
4668
4664 * Finally got ? and ?? to work for undefined things: now it's
4669 * Finally got ? and ?? to work for undefined things: now it's
4665 possible to type {}.get? and get information about the get method
4670 possible to type {}.get? and get information about the get method
4666 of dicts, or os.path? even if only os is defined (so technically
4671 of dicts, or os.path? even if only os is defined (so technically
4667 os.path isn't). Works at any level. For example, after import os,
4672 os.path isn't). Works at any level. For example, after import os,
4668 os?, os.path?, os.path.abspath? all work. This is great, took some
4673 os?, os.path?, os.path.abspath? all work. This is great, took some
4669 work in _ofind.
4674 work in _ofind.
4670
4675
4671 * Fixed more bugs with logging. The sanest way to do it was to add
4676 * Fixed more bugs with logging. The sanest way to do it was to add
4672 to @log a 'mode' parameter. Killed two in one shot (this mode
4677 to @log a 'mode' parameter. Killed two in one shot (this mode
4673 option was a request of Janko's). I think it's finally clean
4678 option was a request of Janko's). I think it's finally clean
4674 (famous last words).
4679 (famous last words).
4675
4680
4676 * Added a page_dumb() pager which does a decent job of paging on
4681 * Added a page_dumb() pager which does a decent job of paging on
4677 screen, if better things (like less) aren't available. One less
4682 screen, if better things (like less) aren't available. One less
4678 unix dependency (someday maybe somebody will port this to
4683 unix dependency (someday maybe somebody will port this to
4679 windows).
4684 windows).
4680
4685
4681 * Fixed problem in magic_log: would lock of logging out if log
4686 * Fixed problem in magic_log: would lock of logging out if log
4682 creation failed (because it would still think it had succeeded).
4687 creation failed (because it would still think it had succeeded).
4683
4688
4684 * Improved the page() function using curses to auto-detect screen
4689 * Improved the page() function using curses to auto-detect screen
4685 size. Now it can make a much better decision on whether to print
4690 size. Now it can make a much better decision on whether to print
4686 or page a string. Option screen_length was modified: a value 0
4691 or page a string. Option screen_length was modified: a value 0
4687 means auto-detect, and that's the default now.
4692 means auto-detect, and that's the default now.
4688
4693
4689 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4694 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4690 go out. I'll test it for a few days, then talk to Janko about
4695 go out. I'll test it for a few days, then talk to Janko about
4691 licences and announce it.
4696 licences and announce it.
4692
4697
4693 * Fixed the length of the auto-generated ---> prompt which appears
4698 * Fixed the length of the auto-generated ---> prompt which appears
4694 for auto-parens and auto-quotes. Getting this right isn't trivial,
4699 for auto-parens and auto-quotes. Getting this right isn't trivial,
4695 with all the color escapes, different prompt types and optional
4700 with all the color escapes, different prompt types and optional
4696 separators. But it seems to be working in all the combinations.
4701 separators. But it seems to be working in all the combinations.
4697
4702
4698 2001-11-26 Fernando Perez <fperez@colorado.edu>
4703 2001-11-26 Fernando Perez <fperez@colorado.edu>
4699
4704
4700 * Wrote a regexp filter to get option types from the option names
4705 * Wrote a regexp filter to get option types from the option names
4701 string. This eliminates the need to manually keep two duplicate
4706 string. This eliminates the need to manually keep two duplicate
4702 lists.
4707 lists.
4703
4708
4704 * Removed the unneeded check_option_names. Now options are handled
4709 * Removed the unneeded check_option_names. Now options are handled
4705 in a much saner manner and it's easy to visually check that things
4710 in a much saner manner and it's easy to visually check that things
4706 are ok.
4711 are ok.
4707
4712
4708 * Updated version numbers on all files I modified to carry a
4713 * Updated version numbers on all files I modified to carry a
4709 notice so Janko and Nathan have clear version markers.
4714 notice so Janko and Nathan have clear version markers.
4710
4715
4711 * Updated docstring for ultraTB with my changes. I should send
4716 * Updated docstring for ultraTB with my changes. I should send
4712 this to Nathan.
4717 this to Nathan.
4713
4718
4714 * Lots of small fixes. Ran everything through pychecker again.
4719 * Lots of small fixes. Ran everything through pychecker again.
4715
4720
4716 * Made loading of deep_reload an cmd line option. If it's not too
4721 * Made loading of deep_reload an cmd line option. If it's not too
4717 kosher, now people can just disable it. With -nodeep_reload it's
4722 kosher, now people can just disable it. With -nodeep_reload it's
4718 still available as dreload(), it just won't overwrite reload().
4723 still available as dreload(), it just won't overwrite reload().
4719
4724
4720 * Moved many options to the no| form (-opt and -noopt
4725 * Moved many options to the no| form (-opt and -noopt
4721 accepted). Cleaner.
4726 accepted). Cleaner.
4722
4727
4723 * Changed magic_log so that if called with no parameters, it uses
4728 * Changed magic_log so that if called with no parameters, it uses
4724 'rotate' mode. That way auto-generated logs aren't automatically
4729 'rotate' mode. That way auto-generated logs aren't automatically
4725 over-written. For normal logs, now a backup is made if it exists
4730 over-written. For normal logs, now a backup is made if it exists
4726 (only 1 level of backups). A new 'backup' mode was added to the
4731 (only 1 level of backups). A new 'backup' mode was added to the
4727 Logger class to support this. This was a request by Janko.
4732 Logger class to support this. This was a request by Janko.
4728
4733
4729 * Added @logoff/@logon to stop/restart an active log.
4734 * Added @logoff/@logon to stop/restart an active log.
4730
4735
4731 * Fixed a lot of bugs in log saving/replay. It was pretty
4736 * Fixed a lot of bugs in log saving/replay. It was pretty
4732 broken. Now special lines (!@,/) appear properly in the command
4737 broken. Now special lines (!@,/) appear properly in the command
4733 history after a log replay.
4738 history after a log replay.
4734
4739
4735 * Tried and failed to implement full session saving via pickle. My
4740 * Tried and failed to implement full session saving via pickle. My
4736 idea was to pickle __main__.__dict__, but modules can't be
4741 idea was to pickle __main__.__dict__, but modules can't be
4737 pickled. This would be a better alternative to replaying logs, but
4742 pickled. This would be a better alternative to replaying logs, but
4738 seems quite tricky to get to work. Changed -session to be called
4743 seems quite tricky to get to work. Changed -session to be called
4739 -logplay, which more accurately reflects what it does. And if we
4744 -logplay, which more accurately reflects what it does. And if we
4740 ever get real session saving working, -session is now available.
4745 ever get real session saving working, -session is now available.
4741
4746
4742 * Implemented color schemes for prompts also. As for tracebacks,
4747 * Implemented color schemes for prompts also. As for tracebacks,
4743 currently only NoColor and Linux are supported. But now the
4748 currently only NoColor and Linux are supported. But now the
4744 infrastructure is in place, based on a generic ColorScheme
4749 infrastructure is in place, based on a generic ColorScheme
4745 class. So writing and activating new schemes both for the prompts
4750 class. So writing and activating new schemes both for the prompts
4746 and the tracebacks should be straightforward.
4751 and the tracebacks should be straightforward.
4747
4752
4748 * Version 0.1.13 released, 0.1.14 opened.
4753 * Version 0.1.13 released, 0.1.14 opened.
4749
4754
4750 * Changed handling of options for output cache. Now counter is
4755 * Changed handling of options for output cache. Now counter is
4751 hardwired starting at 1 and one specifies the maximum number of
4756 hardwired starting at 1 and one specifies the maximum number of
4752 entries *in the outcache* (not the max prompt counter). This is
4757 entries *in the outcache* (not the max prompt counter). This is
4753 much better, since many statements won't increase the cache
4758 much better, since many statements won't increase the cache
4754 count. It also eliminated some confusing options, now there's only
4759 count. It also eliminated some confusing options, now there's only
4755 one: cache_size.
4760 one: cache_size.
4756
4761
4757 * Added 'alias' magic function and magic_alias option in the
4762 * Added 'alias' magic function and magic_alias option in the
4758 ipythonrc file. Now the user can easily define whatever names he
4763 ipythonrc file. Now the user can easily define whatever names he
4759 wants for the magic functions without having to play weird
4764 wants for the magic functions without having to play weird
4760 namespace games. This gives IPython a real shell-like feel.
4765 namespace games. This gives IPython a real shell-like feel.
4761
4766
4762 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4767 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4763 @ or not).
4768 @ or not).
4764
4769
4765 This was one of the last remaining 'visible' bugs (that I know
4770 This was one of the last remaining 'visible' bugs (that I know
4766 of). I think if I can clean up the session loading so it works
4771 of). I think if I can clean up the session loading so it works
4767 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4772 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4768 about licensing).
4773 about licensing).
4769
4774
4770 2001-11-25 Fernando Perez <fperez@colorado.edu>
4775 2001-11-25 Fernando Perez <fperez@colorado.edu>
4771
4776
4772 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4777 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4773 there's a cleaner distinction between what ? and ?? show.
4778 there's a cleaner distinction between what ? and ?? show.
4774
4779
4775 * Added screen_length option. Now the user can define his own
4780 * Added screen_length option. Now the user can define his own
4776 screen size for page() operations.
4781 screen size for page() operations.
4777
4782
4778 * Implemented magic shell-like functions with automatic code
4783 * Implemented magic shell-like functions with automatic code
4779 generation. Now adding another function is just a matter of adding
4784 generation. Now adding another function is just a matter of adding
4780 an entry to a dict, and the function is dynamically generated at
4785 an entry to a dict, and the function is dynamically generated at
4781 run-time. Python has some really cool features!
4786 run-time. Python has some really cool features!
4782
4787
4783 * Renamed many options to cleanup conventions a little. Now all
4788 * Renamed many options to cleanup conventions a little. Now all
4784 are lowercase, and only underscores where needed. Also in the code
4789 are lowercase, and only underscores where needed. Also in the code
4785 option name tables are clearer.
4790 option name tables are clearer.
4786
4791
4787 * Changed prompts a little. Now input is 'In [n]:' instead of
4792 * Changed prompts a little. Now input is 'In [n]:' instead of
4788 'In[n]:='. This allows it the numbers to be aligned with the
4793 'In[n]:='. This allows it the numbers to be aligned with the
4789 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4794 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4790 Python (it was a Mathematica thing). The '...' continuation prompt
4795 Python (it was a Mathematica thing). The '...' continuation prompt
4791 was also changed a little to align better.
4796 was also changed a little to align better.
4792
4797
4793 * Fixed bug when flushing output cache. Not all _p<n> variables
4798 * Fixed bug when flushing output cache. Not all _p<n> variables
4794 exist, so their deletion needs to be wrapped in a try:
4799 exist, so their deletion needs to be wrapped in a try:
4795
4800
4796 * Figured out how to properly use inspect.formatargspec() (it
4801 * Figured out how to properly use inspect.formatargspec() (it
4797 requires the args preceded by *). So I removed all the code from
4802 requires the args preceded by *). So I removed all the code from
4798 _get_pdef in Magic, which was just replicating that.
4803 _get_pdef in Magic, which was just replicating that.
4799
4804
4800 * Added test to prefilter to allow redefining magic function names
4805 * Added test to prefilter to allow redefining magic function names
4801 as variables. This is ok, since the @ form is always available,
4806 as variables. This is ok, since the @ form is always available,
4802 but whe should allow the user to define a variable called 'ls' if
4807 but whe should allow the user to define a variable called 'ls' if
4803 he needs it.
4808 he needs it.
4804
4809
4805 * Moved the ToDo information from README into a separate ToDo.
4810 * Moved the ToDo information from README into a separate ToDo.
4806
4811
4807 * General code cleanup and small bugfixes. I think it's close to a
4812 * General code cleanup and small bugfixes. I think it's close to a
4808 state where it can be released, obviously with a big 'beta'
4813 state where it can be released, obviously with a big 'beta'
4809 warning on it.
4814 warning on it.
4810
4815
4811 * Got the magic function split to work. Now all magics are defined
4816 * Got the magic function split to work. Now all magics are defined
4812 in a separate class. It just organizes things a bit, and now
4817 in a separate class. It just organizes things a bit, and now
4813 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4818 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4814 was too long).
4819 was too long).
4815
4820
4816 * Changed @clear to @reset to avoid potential confusions with
4821 * Changed @clear to @reset to avoid potential confusions with
4817 the shell command clear. Also renamed @cl to @clear, which does
4822 the shell command clear. Also renamed @cl to @clear, which does
4818 exactly what people expect it to from their shell experience.
4823 exactly what people expect it to from their shell experience.
4819
4824
4820 Added a check to the @reset command (since it's so
4825 Added a check to the @reset command (since it's so
4821 destructive, it's probably a good idea to ask for confirmation).
4826 destructive, it's probably a good idea to ask for confirmation).
4822 But now reset only works for full namespace resetting. Since the
4827 But now reset only works for full namespace resetting. Since the
4823 del keyword is already there for deleting a few specific
4828 del keyword is already there for deleting a few specific
4824 variables, I don't see the point of having a redundant magic
4829 variables, I don't see the point of having a redundant magic
4825 function for the same task.
4830 function for the same task.
4826
4831
4827 2001-11-24 Fernando Perez <fperez@colorado.edu>
4832 2001-11-24 Fernando Perez <fperez@colorado.edu>
4828
4833
4829 * Updated the builtin docs (esp. the ? ones).
4834 * Updated the builtin docs (esp. the ? ones).
4830
4835
4831 * Ran all the code through pychecker. Not terribly impressed with
4836 * Ran all the code through pychecker. Not terribly impressed with
4832 it: lots of spurious warnings and didn't really find anything of
4837 it: lots of spurious warnings and didn't really find anything of
4833 substance (just a few modules being imported and not used).
4838 substance (just a few modules being imported and not used).
4834
4839
4835 * Implemented the new ultraTB functionality into IPython. New
4840 * Implemented the new ultraTB functionality into IPython. New
4836 option: xcolors. This chooses color scheme. xmode now only selects
4841 option: xcolors. This chooses color scheme. xmode now only selects
4837 between Plain and Verbose. Better orthogonality.
4842 between Plain and Verbose. Better orthogonality.
4838
4843
4839 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4844 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4840 mode and color scheme for the exception handlers. Now it's
4845 mode and color scheme for the exception handlers. Now it's
4841 possible to have the verbose traceback with no coloring.
4846 possible to have the verbose traceback with no coloring.
4842
4847
4843 2001-11-23 Fernando Perez <fperez@colorado.edu>
4848 2001-11-23 Fernando Perez <fperez@colorado.edu>
4844
4849
4845 * Version 0.1.12 released, 0.1.13 opened.
4850 * Version 0.1.12 released, 0.1.13 opened.
4846
4851
4847 * Removed option to set auto-quote and auto-paren escapes by
4852 * Removed option to set auto-quote and auto-paren escapes by
4848 user. The chances of breaking valid syntax are just too high. If
4853 user. The chances of breaking valid syntax are just too high. If
4849 someone *really* wants, they can always dig into the code.
4854 someone *really* wants, they can always dig into the code.
4850
4855
4851 * Made prompt separators configurable.
4856 * Made prompt separators configurable.
4852
4857
4853 2001-11-22 Fernando Perez <fperez@colorado.edu>
4858 2001-11-22 Fernando Perez <fperez@colorado.edu>
4854
4859
4855 * Small bugfixes in many places.
4860 * Small bugfixes in many places.
4856
4861
4857 * Removed the MyCompleter class from ipplib. It seemed redundant
4862 * Removed the MyCompleter class from ipplib. It seemed redundant
4858 with the C-p,C-n history search functionality. Less code to
4863 with the C-p,C-n history search functionality. Less code to
4859 maintain.
4864 maintain.
4860
4865
4861 * Moved all the original ipython.py code into ipythonlib.py. Right
4866 * Moved all the original ipython.py code into ipythonlib.py. Right
4862 now it's just one big dump into a function called make_IPython, so
4867 now it's just one big dump into a function called make_IPython, so
4863 no real modularity has been gained. But at least it makes the
4868 no real modularity has been gained. But at least it makes the
4864 wrapper script tiny, and since ipythonlib is a module, it gets
4869 wrapper script tiny, and since ipythonlib is a module, it gets
4865 compiled and startup is much faster.
4870 compiled and startup is much faster.
4866
4871
4867 This is a reasobably 'deep' change, so we should test it for a
4872 This is a reasobably 'deep' change, so we should test it for a
4868 while without messing too much more with the code.
4873 while without messing too much more with the code.
4869
4874
4870 2001-11-21 Fernando Perez <fperez@colorado.edu>
4875 2001-11-21 Fernando Perez <fperez@colorado.edu>
4871
4876
4872 * Version 0.1.11 released, 0.1.12 opened for further work.
4877 * Version 0.1.11 released, 0.1.12 opened for further work.
4873
4878
4874 * Removed dependency on Itpl. It was only needed in one place. It
4879 * Removed dependency on Itpl. It was only needed in one place. It
4875 would be nice if this became part of python, though. It makes life
4880 would be nice if this became part of python, though. It makes life
4876 *a lot* easier in some cases.
4881 *a lot* easier in some cases.
4877
4882
4878 * Simplified the prefilter code a bit. Now all handlers are
4883 * Simplified the prefilter code a bit. Now all handlers are
4879 expected to explicitly return a value (at least a blank string).
4884 expected to explicitly return a value (at least a blank string).
4880
4885
4881 * Heavy edits in ipplib. Removed the help system altogether. Now
4886 * Heavy edits in ipplib. Removed the help system altogether. Now
4882 obj?/?? is used for inspecting objects, a magic @doc prints
4887 obj?/?? is used for inspecting objects, a magic @doc prints
4883 docstrings, and full-blown Python help is accessed via the 'help'
4888 docstrings, and full-blown Python help is accessed via the 'help'
4884 keyword. This cleans up a lot of code (less to maintain) and does
4889 keyword. This cleans up a lot of code (less to maintain) and does
4885 the job. Since 'help' is now a standard Python component, might as
4890 the job. Since 'help' is now a standard Python component, might as
4886 well use it and remove duplicate functionality.
4891 well use it and remove duplicate functionality.
4887
4892
4888 Also removed the option to use ipplib as a standalone program. By
4893 Also removed the option to use ipplib as a standalone program. By
4889 now it's too dependent on other parts of IPython to function alone.
4894 now it's too dependent on other parts of IPython to function alone.
4890
4895
4891 * Fixed bug in genutils.pager. It would crash if the pager was
4896 * Fixed bug in genutils.pager. It would crash if the pager was
4892 exited immediately after opening (broken pipe).
4897 exited immediately after opening (broken pipe).
4893
4898
4894 * Trimmed down the VerboseTB reporting a little. The header is
4899 * Trimmed down the VerboseTB reporting a little. The header is
4895 much shorter now and the repeated exception arguments at the end
4900 much shorter now and the repeated exception arguments at the end
4896 have been removed. For interactive use the old header seemed a bit
4901 have been removed. For interactive use the old header seemed a bit
4897 excessive.
4902 excessive.
4898
4903
4899 * Fixed small bug in output of @whos for variables with multi-word
4904 * Fixed small bug in output of @whos for variables with multi-word
4900 types (only first word was displayed).
4905 types (only first word was displayed).
4901
4906
4902 2001-11-17 Fernando Perez <fperez@colorado.edu>
4907 2001-11-17 Fernando Perez <fperez@colorado.edu>
4903
4908
4904 * Version 0.1.10 released, 0.1.11 opened for further work.
4909 * Version 0.1.10 released, 0.1.11 opened for further work.
4905
4910
4906 * Modified dirs and friends. dirs now *returns* the stack (not
4911 * Modified dirs and friends. dirs now *returns* the stack (not
4907 prints), so one can manipulate it as a variable. Convenient to
4912 prints), so one can manipulate it as a variable. Convenient to
4908 travel along many directories.
4913 travel along many directories.
4909
4914
4910 * Fixed bug in magic_pdef: would only work with functions with
4915 * Fixed bug in magic_pdef: would only work with functions with
4911 arguments with default values.
4916 arguments with default values.
4912
4917
4913 2001-11-14 Fernando Perez <fperez@colorado.edu>
4918 2001-11-14 Fernando Perez <fperez@colorado.edu>
4914
4919
4915 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4920 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4916 example with IPython. Various other minor fixes and cleanups.
4921 example with IPython. Various other minor fixes and cleanups.
4917
4922
4918 * Version 0.1.9 released, 0.1.10 opened for further work.
4923 * Version 0.1.9 released, 0.1.10 opened for further work.
4919
4924
4920 * Added sys.path to the list of directories searched in the
4925 * Added sys.path to the list of directories searched in the
4921 execfile= option. It used to be the current directory and the
4926 execfile= option. It used to be the current directory and the
4922 user's IPYTHONDIR only.
4927 user's IPYTHONDIR only.
4923
4928
4924 2001-11-13 Fernando Perez <fperez@colorado.edu>
4929 2001-11-13 Fernando Perez <fperez@colorado.edu>
4925
4930
4926 * Reinstated the raw_input/prefilter separation that Janko had
4931 * Reinstated the raw_input/prefilter separation that Janko had
4927 initially. This gives a more convenient setup for extending the
4932 initially. This gives a more convenient setup for extending the
4928 pre-processor from the outside: raw_input always gets a string,
4933 pre-processor from the outside: raw_input always gets a string,
4929 and prefilter has to process it. We can then redefine prefilter
4934 and prefilter has to process it. We can then redefine prefilter
4930 from the outside and implement extensions for special
4935 from the outside and implement extensions for special
4931 purposes.
4936 purposes.
4932
4937
4933 Today I got one for inputting PhysicalQuantity objects
4938 Today I got one for inputting PhysicalQuantity objects
4934 (from Scientific) without needing any function calls at
4939 (from Scientific) without needing any function calls at
4935 all. Extremely convenient, and it's all done as a user-level
4940 all. Extremely convenient, and it's all done as a user-level
4936 extension (no IPython code was touched). Now instead of:
4941 extension (no IPython code was touched). Now instead of:
4937 a = PhysicalQuantity(4.2,'m/s**2')
4942 a = PhysicalQuantity(4.2,'m/s**2')
4938 one can simply say
4943 one can simply say
4939 a = 4.2 m/s**2
4944 a = 4.2 m/s**2
4940 or even
4945 or even
4941 a = 4.2 m/s^2
4946 a = 4.2 m/s^2
4942
4947
4943 I use this, but it's also a proof of concept: IPython really is
4948 I use this, but it's also a proof of concept: IPython really is
4944 fully user-extensible, even at the level of the parsing of the
4949 fully user-extensible, even at the level of the parsing of the
4945 command line. It's not trivial, but it's perfectly doable.
4950 command line. It's not trivial, but it's perfectly doable.
4946
4951
4947 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4952 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4948 the problem of modules being loaded in the inverse order in which
4953 the problem of modules being loaded in the inverse order in which
4949 they were defined in
4954 they were defined in
4950
4955
4951 * Version 0.1.8 released, 0.1.9 opened for further work.
4956 * Version 0.1.8 released, 0.1.9 opened for further work.
4952
4957
4953 * Added magics pdef, source and file. They respectively show the
4958 * Added magics pdef, source and file. They respectively show the
4954 definition line ('prototype' in C), source code and full python
4959 definition line ('prototype' in C), source code and full python
4955 file for any callable object. The object inspector oinfo uses
4960 file for any callable object. The object inspector oinfo uses
4956 these to show the same information.
4961 these to show the same information.
4957
4962
4958 * Version 0.1.7 released, 0.1.8 opened for further work.
4963 * Version 0.1.7 released, 0.1.8 opened for further work.
4959
4964
4960 * Separated all the magic functions into a class called Magic. The
4965 * Separated all the magic functions into a class called Magic. The
4961 InteractiveShell class was becoming too big for Xemacs to handle
4966 InteractiveShell class was becoming too big for Xemacs to handle
4962 (de-indenting a line would lock it up for 10 seconds while it
4967 (de-indenting a line would lock it up for 10 seconds while it
4963 backtracked on the whole class!)
4968 backtracked on the whole class!)
4964
4969
4965 FIXME: didn't work. It can be done, but right now namespaces are
4970 FIXME: didn't work. It can be done, but right now namespaces are
4966 all messed up. Do it later (reverted it for now, so at least
4971 all messed up. Do it later (reverted it for now, so at least
4967 everything works as before).
4972 everything works as before).
4968
4973
4969 * Got the object introspection system (magic_oinfo) working! I
4974 * Got the object introspection system (magic_oinfo) working! I
4970 think this is pretty much ready for release to Janko, so he can
4975 think this is pretty much ready for release to Janko, so he can
4971 test it for a while and then announce it. Pretty much 100% of what
4976 test it for a while and then announce it. Pretty much 100% of what
4972 I wanted for the 'phase 1' release is ready. Happy, tired.
4977 I wanted for the 'phase 1' release is ready. Happy, tired.
4973
4978
4974 2001-11-12 Fernando Perez <fperez@colorado.edu>
4979 2001-11-12 Fernando Perez <fperez@colorado.edu>
4975
4980
4976 * Version 0.1.6 released, 0.1.7 opened for further work.
4981 * Version 0.1.6 released, 0.1.7 opened for further work.
4977
4982
4978 * Fixed bug in printing: it used to test for truth before
4983 * Fixed bug in printing: it used to test for truth before
4979 printing, so 0 wouldn't print. Now checks for None.
4984 printing, so 0 wouldn't print. Now checks for None.
4980
4985
4981 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4986 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4982 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4987 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4983 reaches by hand into the outputcache. Think of a better way to do
4988 reaches by hand into the outputcache. Think of a better way to do
4984 this later.
4989 this later.
4985
4990
4986 * Various small fixes thanks to Nathan's comments.
4991 * Various small fixes thanks to Nathan's comments.
4987
4992
4988 * Changed magic_pprint to magic_Pprint. This way it doesn't
4993 * Changed magic_pprint to magic_Pprint. This way it doesn't
4989 collide with pprint() and the name is consistent with the command
4994 collide with pprint() and the name is consistent with the command
4990 line option.
4995 line option.
4991
4996
4992 * Changed prompt counter behavior to be fully like
4997 * Changed prompt counter behavior to be fully like
4993 Mathematica's. That is, even input that doesn't return a result
4998 Mathematica's. That is, even input that doesn't return a result
4994 raises the prompt counter. The old behavior was kind of confusing
4999 raises the prompt counter. The old behavior was kind of confusing
4995 (getting the same prompt number several times if the operation
5000 (getting the same prompt number several times if the operation
4996 didn't return a result).
5001 didn't return a result).
4997
5002
4998 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5003 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4999
5004
5000 * Fixed -Classic mode (wasn't working anymore).
5005 * Fixed -Classic mode (wasn't working anymore).
5001
5006
5002 * Added colored prompts using Nathan's new code. Colors are
5007 * Added colored prompts using Nathan's new code. Colors are
5003 currently hardwired, they can be user-configurable. For
5008 currently hardwired, they can be user-configurable. For
5004 developers, they can be chosen in file ipythonlib.py, at the
5009 developers, they can be chosen in file ipythonlib.py, at the
5005 beginning of the CachedOutput class def.
5010 beginning of the CachedOutput class def.
5006
5011
5007 2001-11-11 Fernando Perez <fperez@colorado.edu>
5012 2001-11-11 Fernando Perez <fperez@colorado.edu>
5008
5013
5009 * Version 0.1.5 released, 0.1.6 opened for further work.
5014 * Version 0.1.5 released, 0.1.6 opened for further work.
5010
5015
5011 * Changed magic_env to *return* the environment as a dict (not to
5016 * Changed magic_env to *return* the environment as a dict (not to
5012 print it). This way it prints, but it can also be processed.
5017 print it). This way it prints, but it can also be processed.
5013
5018
5014 * Added Verbose exception reporting to interactive
5019 * Added Verbose exception reporting to interactive
5015 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5020 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5016 traceback. Had to make some changes to the ultraTB file. This is
5021 traceback. Had to make some changes to the ultraTB file. This is
5017 probably the last 'big' thing in my mental todo list. This ties
5022 probably the last 'big' thing in my mental todo list. This ties
5018 in with the next entry:
5023 in with the next entry:
5019
5024
5020 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5025 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5021 has to specify is Plain, Color or Verbose for all exception
5026 has to specify is Plain, Color or Verbose for all exception
5022 handling.
5027 handling.
5023
5028
5024 * Removed ShellServices option. All this can really be done via
5029 * Removed ShellServices option. All this can really be done via
5025 the magic system. It's easier to extend, cleaner and has automatic
5030 the magic system. It's easier to extend, cleaner and has automatic
5026 namespace protection and documentation.
5031 namespace protection and documentation.
5027
5032
5028 2001-11-09 Fernando Perez <fperez@colorado.edu>
5033 2001-11-09 Fernando Perez <fperez@colorado.edu>
5029
5034
5030 * Fixed bug in output cache flushing (missing parameter to
5035 * Fixed bug in output cache flushing (missing parameter to
5031 __init__). Other small bugs fixed (found using pychecker).
5036 __init__). Other small bugs fixed (found using pychecker).
5032
5037
5033 * Version 0.1.4 opened for bugfixing.
5038 * Version 0.1.4 opened for bugfixing.
5034
5039
5035 2001-11-07 Fernando Perez <fperez@colorado.edu>
5040 2001-11-07 Fernando Perez <fperez@colorado.edu>
5036
5041
5037 * Version 0.1.3 released, mainly because of the raw_input bug.
5042 * Version 0.1.3 released, mainly because of the raw_input bug.
5038
5043
5039 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5044 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5040 and when testing for whether things were callable, a call could
5045 and when testing for whether things were callable, a call could
5041 actually be made to certain functions. They would get called again
5046 actually be made to certain functions. They would get called again
5042 once 'really' executed, with a resulting double call. A disaster
5047 once 'really' executed, with a resulting double call. A disaster
5043 in many cases (list.reverse() would never work!).
5048 in many cases (list.reverse() would never work!).
5044
5049
5045 * Removed prefilter() function, moved its code to raw_input (which
5050 * Removed prefilter() function, moved its code to raw_input (which
5046 after all was just a near-empty caller for prefilter). This saves
5051 after all was just a near-empty caller for prefilter). This saves
5047 a function call on every prompt, and simplifies the class a tiny bit.
5052 a function call on every prompt, and simplifies the class a tiny bit.
5048
5053
5049 * Fix _ip to __ip name in magic example file.
5054 * Fix _ip to __ip name in magic example file.
5050
5055
5051 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5056 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5052 work with non-gnu versions of tar.
5057 work with non-gnu versions of tar.
5053
5058
5054 2001-11-06 Fernando Perez <fperez@colorado.edu>
5059 2001-11-06 Fernando Perez <fperez@colorado.edu>
5055
5060
5056 * Version 0.1.2. Just to keep track of the recent changes.
5061 * Version 0.1.2. Just to keep track of the recent changes.
5057
5062
5058 * Fixed nasty bug in output prompt routine. It used to check 'if
5063 * Fixed nasty bug in output prompt routine. It used to check 'if
5059 arg != None...'. Problem is, this fails if arg implements a
5064 arg != None...'. Problem is, this fails if arg implements a
5060 special comparison (__cmp__) which disallows comparing to
5065 special comparison (__cmp__) which disallows comparing to
5061 None. Found it when trying to use the PhysicalQuantity module from
5066 None. Found it when trying to use the PhysicalQuantity module from
5062 ScientificPython.
5067 ScientificPython.
5063
5068
5064 2001-11-05 Fernando Perez <fperez@colorado.edu>
5069 2001-11-05 Fernando Perez <fperez@colorado.edu>
5065
5070
5066 * Also added dirs. Now the pushd/popd/dirs family functions
5071 * Also added dirs. Now the pushd/popd/dirs family functions
5067 basically like the shell, with the added convenience of going home
5072 basically like the shell, with the added convenience of going home
5068 when called with no args.
5073 when called with no args.
5069
5074
5070 * pushd/popd slightly modified to mimic shell behavior more
5075 * pushd/popd slightly modified to mimic shell behavior more
5071 closely.
5076 closely.
5072
5077
5073 * Added env,pushd,popd from ShellServices as magic functions. I
5078 * Added env,pushd,popd from ShellServices as magic functions. I
5074 think the cleanest will be to port all desired functions from
5079 think the cleanest will be to port all desired functions from
5075 ShellServices as magics and remove ShellServices altogether. This
5080 ShellServices as magics and remove ShellServices altogether. This
5076 will provide a single, clean way of adding functionality
5081 will provide a single, clean way of adding functionality
5077 (shell-type or otherwise) to IP.
5082 (shell-type or otherwise) to IP.
5078
5083
5079 2001-11-04 Fernando Perez <fperez@colorado.edu>
5084 2001-11-04 Fernando Perez <fperez@colorado.edu>
5080
5085
5081 * Added .ipython/ directory to sys.path. This way users can keep
5086 * Added .ipython/ directory to sys.path. This way users can keep
5082 customizations there and access them via import.
5087 customizations there and access them via import.
5083
5088
5084 2001-11-03 Fernando Perez <fperez@colorado.edu>
5089 2001-11-03 Fernando Perez <fperez@colorado.edu>
5085
5090
5086 * Opened version 0.1.1 for new changes.
5091 * Opened version 0.1.1 for new changes.
5087
5092
5088 * Changed version number to 0.1.0: first 'public' release, sent to
5093 * Changed version number to 0.1.0: first 'public' release, sent to
5089 Nathan and Janko.
5094 Nathan and Janko.
5090
5095
5091 * Lots of small fixes and tweaks.
5096 * Lots of small fixes and tweaks.
5092
5097
5093 * Minor changes to whos format. Now strings are shown, snipped if
5098 * Minor changes to whos format. Now strings are shown, snipped if
5094 too long.
5099 too long.
5095
5100
5096 * Changed ShellServices to work on __main__ so they show up in @who
5101 * Changed ShellServices to work on __main__ so they show up in @who
5097
5102
5098 * Help also works with ? at the end of a line:
5103 * Help also works with ? at the end of a line:
5099 ?sin and sin?
5104 ?sin and sin?
5100 both produce the same effect. This is nice, as often I use the
5105 both produce the same effect. This is nice, as often I use the
5101 tab-complete to find the name of a method, but I used to then have
5106 tab-complete to find the name of a method, but I used to then have
5102 to go to the beginning of the line to put a ? if I wanted more
5107 to go to the beginning of the line to put a ? if I wanted more
5103 info. Now I can just add the ? and hit return. Convenient.
5108 info. Now I can just add the ? and hit return. Convenient.
5104
5109
5105 2001-11-02 Fernando Perez <fperez@colorado.edu>
5110 2001-11-02 Fernando Perez <fperez@colorado.edu>
5106
5111
5107 * Python version check (>=2.1) added.
5112 * Python version check (>=2.1) added.
5108
5113
5109 * Added LazyPython documentation. At this point the docs are quite
5114 * Added LazyPython documentation. At this point the docs are quite
5110 a mess. A cleanup is in order.
5115 a mess. A cleanup is in order.
5111
5116
5112 * Auto-installer created. For some bizarre reason, the zipfiles
5117 * Auto-installer created. For some bizarre reason, the zipfiles
5113 module isn't working on my system. So I made a tar version
5118 module isn't working on my system. So I made a tar version
5114 (hopefully the command line options in various systems won't kill
5119 (hopefully the command line options in various systems won't kill
5115 me).
5120 me).
5116
5121
5117 * Fixes to Struct in genutils. Now all dictionary-like methods are
5122 * Fixes to Struct in genutils. Now all dictionary-like methods are
5118 protected (reasonably).
5123 protected (reasonably).
5119
5124
5120 * Added pager function to genutils and changed ? to print usage
5125 * Added pager function to genutils and changed ? to print usage
5121 note through it (it was too long).
5126 note through it (it was too long).
5122
5127
5123 * Added the LazyPython functionality. Works great! I changed the
5128 * Added the LazyPython functionality. Works great! I changed the
5124 auto-quote escape to ';', it's on home row and next to '. But
5129 auto-quote escape to ';', it's on home row and next to '. But
5125 both auto-quote and auto-paren (still /) escapes are command-line
5130 both auto-quote and auto-paren (still /) escapes are command-line
5126 parameters.
5131 parameters.
5127
5132
5128
5133
5129 2001-11-01 Fernando Perez <fperez@colorado.edu>
5134 2001-11-01 Fernando Perez <fperez@colorado.edu>
5130
5135
5131 * Version changed to 0.0.7. Fairly large change: configuration now
5136 * Version changed to 0.0.7. Fairly large change: configuration now
5132 is all stored in a directory, by default .ipython. There, all
5137 is all stored in a directory, by default .ipython. There, all
5133 config files have normal looking names (not .names)
5138 config files have normal looking names (not .names)
5134
5139
5135 * Version 0.0.6 Released first to Lucas and Archie as a test
5140 * Version 0.0.6 Released first to Lucas and Archie as a test
5136 run. Since it's the first 'semi-public' release, change version to
5141 run. Since it's the first 'semi-public' release, change version to
5137 > 0.0.6 for any changes now.
5142 > 0.0.6 for any changes now.
5138
5143
5139 * Stuff I had put in the ipplib.py changelog:
5144 * Stuff I had put in the ipplib.py changelog:
5140
5145
5141 Changes to InteractiveShell:
5146 Changes to InteractiveShell:
5142
5147
5143 - Made the usage message a parameter.
5148 - Made the usage message a parameter.
5144
5149
5145 - Require the name of the shell variable to be given. It's a bit
5150 - Require the name of the shell variable to be given. It's a bit
5146 of a hack, but allows the name 'shell' not to be hardwire in the
5151 of a hack, but allows the name 'shell' not to be hardwire in the
5147 magic (@) handler, which is problematic b/c it requires
5152 magic (@) handler, which is problematic b/c it requires
5148 polluting the global namespace with 'shell'. This in turn is
5153 polluting the global namespace with 'shell'. This in turn is
5149 fragile: if a user redefines a variable called shell, things
5154 fragile: if a user redefines a variable called shell, things
5150 break.
5155 break.
5151
5156
5152 - magic @: all functions available through @ need to be defined
5157 - magic @: all functions available through @ need to be defined
5153 as magic_<name>, even though they can be called simply as
5158 as magic_<name>, even though they can be called simply as
5154 @<name>. This allows the special command @magic to gather
5159 @<name>. This allows the special command @magic to gather
5155 information automatically about all existing magic functions,
5160 information automatically about all existing magic functions,
5156 even if they are run-time user extensions, by parsing the shell
5161 even if they are run-time user extensions, by parsing the shell
5157 instance __dict__ looking for special magic_ names.
5162 instance __dict__ looking for special magic_ names.
5158
5163
5159 - mainloop: added *two* local namespace parameters. This allows
5164 - mainloop: added *two* local namespace parameters. This allows
5160 the class to differentiate between parameters which were there
5165 the class to differentiate between parameters which were there
5161 before and after command line initialization was processed. This
5166 before and after command line initialization was processed. This
5162 way, later @who can show things loaded at startup by the
5167 way, later @who can show things loaded at startup by the
5163 user. This trick was necessary to make session saving/reloading
5168 user. This trick was necessary to make session saving/reloading
5164 really work: ideally after saving/exiting/reloading a session,
5169 really work: ideally after saving/exiting/reloading a session,
5165 *everythin* should look the same, including the output of @who. I
5170 *everythin* should look the same, including the output of @who. I
5166 was only able to make this work with this double namespace
5171 was only able to make this work with this double namespace
5167 trick.
5172 trick.
5168
5173
5169 - added a header to the logfile which allows (almost) full
5174 - added a header to the logfile which allows (almost) full
5170 session restoring.
5175 session restoring.
5171
5176
5172 - prepend lines beginning with @ or !, with a and log
5177 - prepend lines beginning with @ or !, with a and log
5173 them. Why? !lines: may be useful to know what you did @lines:
5178 them. Why? !lines: may be useful to know what you did @lines:
5174 they may affect session state. So when restoring a session, at
5179 they may affect session state. So when restoring a session, at
5175 least inform the user of their presence. I couldn't quite get
5180 least inform the user of their presence. I couldn't quite get
5176 them to properly re-execute, but at least the user is warned.
5181 them to properly re-execute, but at least the user is warned.
5177
5182
5178 * Started ChangeLog.
5183 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now