##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5225 +1,5230 b''
1 2006-02-24 Ville Vainio <vivainio@gmail.com>
2
3 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
4 "cleanly" and safely than the older upgrade mechanism.
5
1 2006-02-21 Ville Vainio <vivainio@gmail.com>
6 2006-02-21 Ville Vainio <vivainio@gmail.com>
2
7
3 * Magic.py: %save works again.
8 * Magic.py: %save works again.
4
9
5 2006-02-15 Ville Vainio <vivainio@gmail.com>
10 2006-02-15 Ville Vainio <vivainio@gmail.com>
6
11
7 * Magic.py: %Pprint works again
12 * Magic.py: %Pprint works again
8
13
9 * Extensions/ipy_sane_defaults.py: Provide everything provided
14 * Extensions/ipy_sane_defaults.py: Provide everything provided
10 in default ipythonrc, to make it possible to have a completely empty
15 in default ipythonrc, to make it possible to have a completely empty
11 ipythonrc (and thus completely rc-file free configuration)
16 ipythonrc (and thus completely rc-file free configuration)
12
17
13
18
14 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
19 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
15
20
16 * IPython/hooks.py (editor): quote the call to the editor command,
21 * IPython/hooks.py (editor): quote the call to the editor command,
17 to allow commands with spaces in them. Problem noted by watching
22 to allow commands with spaces in them. Problem noted by watching
18 Ian Oswald's video about textpad under win32 at
23 Ian Oswald's video about textpad under win32 at
19 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
24 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
20
25
21 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
26 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
22 describing magics (we haven't used @ for a loong time).
27 describing magics (we haven't used @ for a loong time).
23
28
24 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
29 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
25 contributed by marienz to close
30 contributed by marienz to close
26 http://www.scipy.net/roundup/ipython/issue53.
31 http://www.scipy.net/roundup/ipython/issue53.
27
32
28 2006-02-10 Ville Vainio <vivainio@gmail.com>
33 2006-02-10 Ville Vainio <vivainio@gmail.com>
29
34
30 * genutils.py: getoutput now works in win32 too
35 * genutils.py: getoutput now works in win32 too
31
36
32 * completer.py: alias and magic completion only invoked
37 * completer.py: alias and magic completion only invoked
33 at the first "item" in the line, to avoid "cd %store"
38 at the first "item" in the line, to avoid "cd %store"
34 nonsense.
39 nonsense.
35
40
36 2006-02-09 Ville Vainio <vivainio@gmail.com>
41 2006-02-09 Ville Vainio <vivainio@gmail.com>
37
42
38 * test/*: Added a unit testing framework (finally).
43 * test/*: Added a unit testing framework (finally).
39 '%run runtests.py' to run test_*.
44 '%run runtests.py' to run test_*.
40
45
41 * ipapi.py: Exposed runlines and set_custom_exc
46 * ipapi.py: Exposed runlines and set_custom_exc
42
47
43 2006-02-07 Ville Vainio <vivainio@gmail.com>
48 2006-02-07 Ville Vainio <vivainio@gmail.com>
44
49
45 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
50 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
46 instead use "f(1 2)" as before.
51 instead use "f(1 2)" as before.
47
52
48 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
53 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
49
54
50 * IPython/demo.py (IPythonDemo): Add new classes to the demo
55 * IPython/demo.py (IPythonDemo): Add new classes to the demo
51 facilities, for demos processed by the IPython input filter
56 facilities, for demos processed by the IPython input filter
52 (IPythonDemo), and for running a script one-line-at-a-time as a
57 (IPythonDemo), and for running a script one-line-at-a-time as a
53 demo, both for pure Python (LineDemo) and for IPython-processed
58 demo, both for pure Python (LineDemo) and for IPython-processed
54 input (IPythonLineDemo). After a request by Dave Kohel, from the
59 input (IPythonLineDemo). After a request by Dave Kohel, from the
55 SAGE team.
60 SAGE team.
56 (Demo.edit): added and edit() method to the demo objects, to edit
61 (Demo.edit): added and edit() method to the demo objects, to edit
57 the in-memory copy of the last executed block.
62 the in-memory copy of the last executed block.
58
63
59 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
64 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
60 processing to %edit, %macro and %save. These commands can now be
65 processing to %edit, %macro and %save. These commands can now be
61 invoked on the unprocessed input as it was typed by the user
66 invoked on the unprocessed input as it was typed by the user
62 (without any prefilters applied). After requests by the SAGE team
67 (without any prefilters applied). After requests by the SAGE team
63 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
68 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
64
69
65 2006-02-01 Ville Vainio <vivainio@gmail.com>
70 2006-02-01 Ville Vainio <vivainio@gmail.com>
66
71
67 * setup.py, eggsetup.py: easy_install ipython==dev works
72 * setup.py, eggsetup.py: easy_install ipython==dev works
68 correctly now (on Linux)
73 correctly now (on Linux)
69
74
70 * ipy_user_conf,ipmaker: user config changes, removed spurious
75 * ipy_user_conf,ipmaker: user config changes, removed spurious
71 warnings
76 warnings
72
77
73 * iplib: if rc.banner is string, use it as is.
78 * iplib: if rc.banner is string, use it as is.
74
79
75 * Magic: %pycat accepts a string argument and pages it's contents.
80 * Magic: %pycat accepts a string argument and pages it's contents.
76
81
77
82
78 2006-01-30 Ville Vainio <vivainio@gmail.com>
83 2006-01-30 Ville Vainio <vivainio@gmail.com>
79
84
80 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
85 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
81 Now %store and bookmarks work through PickleShare, meaning that
86 Now %store and bookmarks work through PickleShare, meaning that
82 concurrent access is possible and all ipython sessions see the
87 concurrent access is possible and all ipython sessions see the
83 same database situation all the time, instead of snapshot of
88 same database situation all the time, instead of snapshot of
84 the situation when the session was started. Hence, %bookmark
89 the situation when the session was started. Hence, %bookmark
85 results are immediately accessible from othes sessions. The database
90 results are immediately accessible from othes sessions. The database
86 is also available for use by user extensions. See:
91 is also available for use by user extensions. See:
87 http://www.python.org/pypi/pickleshare
92 http://www.python.org/pypi/pickleshare
88
93
89 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
94 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
90
95
91 * aliases can now be %store'd
96 * aliases can now be %store'd
92
97
93 * path.py move to Extensions so that pickleshare does not need
98 * path.py move to Extensions so that pickleshare does not need
94 IPython-specific import. Extensions added to pythonpath right
99 IPython-specific import. Extensions added to pythonpath right
95 at __init__.
100 at __init__.
96
101
97 * iplib.py: ipalias deprecated/redundant; aliases are converted and
102 * iplib.py: ipalias deprecated/redundant; aliases are converted and
98 called with _ip.system and the pre-transformed command string.
103 called with _ip.system and the pre-transformed command string.
99
104
100 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
105 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
101
106
102 * IPython/iplib.py (interact): Fix that we were not catching
107 * IPython/iplib.py (interact): Fix that we were not catching
103 KeyboardInterrupt exceptions properly. I'm not quite sure why the
108 KeyboardInterrupt exceptions properly. I'm not quite sure why the
104 logic here had to change, but it's fixed now.
109 logic here had to change, but it's fixed now.
105
110
106 2006-01-29 Ville Vainio <vivainio@gmail.com>
111 2006-01-29 Ville Vainio <vivainio@gmail.com>
107
112
108 * iplib.py: Try to import pyreadline on Windows.
113 * iplib.py: Try to import pyreadline on Windows.
109
114
110 2006-01-27 Ville Vainio <vivainio@gmail.com>
115 2006-01-27 Ville Vainio <vivainio@gmail.com>
111
116
112 * iplib.py: Expose ipapi as _ip in builtin namespace.
117 * iplib.py: Expose ipapi as _ip in builtin namespace.
113 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
118 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
114 and ip_set_hook (-> _ip.set_hook) redundant. % and !
119 and ip_set_hook (-> _ip.set_hook) redundant. % and !
115 syntax now produce _ip.* variant of the commands.
120 syntax now produce _ip.* variant of the commands.
116
121
117 * "_ip.options().autoedit_syntax = 2" automatically throws
122 * "_ip.options().autoedit_syntax = 2" automatically throws
118 user to editor for syntax error correction without prompting.
123 user to editor for syntax error correction without prompting.
119
124
120 2006-01-27 Ville Vainio <vivainio@gmail.com>
125 2006-01-27 Ville Vainio <vivainio@gmail.com>
121
126
122 * ipmaker.py: Give "realistic" sys.argv for scripts (without
127 * ipmaker.py: Give "realistic" sys.argv for scripts (without
123 'ipython' at argv[0]) executed through command line.
128 'ipython' at argv[0]) executed through command line.
124 NOTE: this DEPRECATES calling ipython with multiple scripts
129 NOTE: this DEPRECATES calling ipython with multiple scripts
125 ("ipython a.py b.py c.py")
130 ("ipython a.py b.py c.py")
126
131
127 * iplib.py, hooks.py: Added configurable input prefilter,
132 * iplib.py, hooks.py: Added configurable input prefilter,
128 named 'input_prefilter'. See ext_rescapture.py for example
133 named 'input_prefilter'. See ext_rescapture.py for example
129 usage.
134 usage.
130
135
131 * ext_rescapture.py, Magic.py: Better system command output capture
136 * ext_rescapture.py, Magic.py: Better system command output capture
132 through 'var = !ls' (deprecates user-visible %sc). Same notation
137 through 'var = !ls' (deprecates user-visible %sc). Same notation
133 applies for magics, 'var = %alias' assigns alias list to var.
138 applies for magics, 'var = %alias' assigns alias list to var.
134
139
135 * ipapi.py: added meta() for accessing extension-usable data store.
140 * ipapi.py: added meta() for accessing extension-usable data store.
136
141
137 * iplib.py: added InteractiveShell.getapi(). New magics should be
142 * iplib.py: added InteractiveShell.getapi(). New magics should be
138 written doing self.getapi() instead of using the shell directly.
143 written doing self.getapi() instead of using the shell directly.
139
144
140 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
145 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
141 %store foo >> ~/myfoo.txt to store variables to files (in clean
146 %store foo >> ~/myfoo.txt to store variables to files (in clean
142 textual form, not a restorable pickle).
147 textual form, not a restorable pickle).
143
148
144 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
149 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
145
150
146 * usage.py, Magic.py: added %quickref
151 * usage.py, Magic.py: added %quickref
147
152
148 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
153 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
149
154
150 * GetoptErrors when invoking magics etc. with wrong args
155 * GetoptErrors when invoking magics etc. with wrong args
151 are now more helpful:
156 are now more helpful:
152 GetoptError: option -l not recognized (allowed: "qb" )
157 GetoptError: option -l not recognized (allowed: "qb" )
153
158
154 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
159 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
155
160
156 * IPython/demo.py (Demo.show): Flush stdout after each block, so
161 * IPython/demo.py (Demo.show): Flush stdout after each block, so
157 computationally intensive blocks don't appear to stall the demo.
162 computationally intensive blocks don't appear to stall the demo.
158
163
159 2006-01-24 Ville Vainio <vivainio@gmail.com>
164 2006-01-24 Ville Vainio <vivainio@gmail.com>
160
165
161 * iplib.py, hooks.py: 'result_display' hook can return a non-None
166 * iplib.py, hooks.py: 'result_display' hook can return a non-None
162 value to manipulate resulting history entry.
167 value to manipulate resulting history entry.
163
168
164 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
169 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
165 to instance methods of IPApi class, to make extending an embedded
170 to instance methods of IPApi class, to make extending an embedded
166 IPython feasible. See ext_rehashdir.py for example usage.
171 IPython feasible. See ext_rehashdir.py for example usage.
167
172
168 * Merged 1071-1076 from banches/0.7.1
173 * Merged 1071-1076 from banches/0.7.1
169
174
170
175
171 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
176 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
172
177
173 * tools/release (daystamp): Fix build tools to use the new
178 * tools/release (daystamp): Fix build tools to use the new
174 eggsetup.py script to build lightweight eggs.
179 eggsetup.py script to build lightweight eggs.
175
180
176 * Applied changesets 1062 and 1064 before 0.7.1 release.
181 * Applied changesets 1062 and 1064 before 0.7.1 release.
177
182
178 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
183 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
179 see the raw input history (without conversions like %ls ->
184 see the raw input history (without conversions like %ls ->
180 ipmagic("ls")). After a request from W. Stein, SAGE
185 ipmagic("ls")). After a request from W. Stein, SAGE
181 (http://modular.ucsd.edu/sage) developer. This information is
186 (http://modular.ucsd.edu/sage) developer. This information is
182 stored in the input_hist_raw attribute of the IPython instance, so
187 stored in the input_hist_raw attribute of the IPython instance, so
183 developers can access it if needed (it's an InputList instance).
188 developers can access it if needed (it's an InputList instance).
184
189
185 * Versionstring = 0.7.2.svn
190 * Versionstring = 0.7.2.svn
186
191
187 * eggsetup.py: A separate script for constructing eggs, creates
192 * eggsetup.py: A separate script for constructing eggs, creates
188 proper launch scripts even on Windows (an .exe file in
193 proper launch scripts even on Windows (an .exe file in
189 \python24\scripts).
194 \python24\scripts).
190
195
191 * ipapi.py: launch_new_instance, launch entry point needed for the
196 * ipapi.py: launch_new_instance, launch entry point needed for the
192 egg.
197 egg.
193
198
194 2006-01-23 Ville Vainio <vivainio@gmail.com>
199 2006-01-23 Ville Vainio <vivainio@gmail.com>
195
200
196 * Added %cpaste magic for pasting python code
201 * Added %cpaste magic for pasting python code
197
202
198 2006-01-22 Ville Vainio <vivainio@gmail.com>
203 2006-01-22 Ville Vainio <vivainio@gmail.com>
199
204
200 * Merge from branches/0.7.1 into trunk, revs 1052-1057
205 * Merge from branches/0.7.1 into trunk, revs 1052-1057
201
206
202 * Versionstring = 0.7.2.svn
207 * Versionstring = 0.7.2.svn
203
208
204 * eggsetup.py: A separate script for constructing eggs, creates
209 * eggsetup.py: A separate script for constructing eggs, creates
205 proper launch scripts even on Windows (an .exe file in
210 proper launch scripts even on Windows (an .exe file in
206 \python24\scripts).
211 \python24\scripts).
207
212
208 * ipapi.py: launch_new_instance, launch entry point needed for the
213 * ipapi.py: launch_new_instance, launch entry point needed for the
209 egg.
214 egg.
210
215
211 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
216 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
212
217
213 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
218 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
214 %pfile foo would print the file for foo even if it was a binary.
219 %pfile foo would print the file for foo even if it was a binary.
215 Now, extensions '.so' and '.dll' are skipped.
220 Now, extensions '.so' and '.dll' are skipped.
216
221
217 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
222 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
218 bug, where macros would fail in all threaded modes. I'm not 100%
223 bug, where macros would fail in all threaded modes. I'm not 100%
219 sure, so I'm going to put out an rc instead of making a release
224 sure, so I'm going to put out an rc instead of making a release
220 today, and wait for feedback for at least a few days.
225 today, and wait for feedback for at least a few days.
221
226
222 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
227 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
223 it...) the handling of pasting external code with autoindent on.
228 it...) the handling of pasting external code with autoindent on.
224 To get out of a multiline input, the rule will appear for most
229 To get out of a multiline input, the rule will appear for most
225 users unchanged: two blank lines or change the indent level
230 users unchanged: two blank lines or change the indent level
226 proposed by IPython. But there is a twist now: you can
231 proposed by IPython. But there is a twist now: you can
227 add/subtract only *one or two spaces*. If you add/subtract three
232 add/subtract only *one or two spaces*. If you add/subtract three
228 or more (unless you completely delete the line), IPython will
233 or more (unless you completely delete the line), IPython will
229 accept that line, and you'll need to enter a second one of pure
234 accept that line, and you'll need to enter a second one of pure
230 whitespace. I know it sounds complicated, but I can't find a
235 whitespace. I know it sounds complicated, but I can't find a
231 different solution that covers all the cases, with the right
236 different solution that covers all the cases, with the right
232 heuristics. Hopefully in actual use, nobody will really notice
237 heuristics. Hopefully in actual use, nobody will really notice
233 all these strange rules and things will 'just work'.
238 all these strange rules and things will 'just work'.
234
239
235 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
240 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
236
241
237 * IPython/iplib.py (interact): catch exceptions which can be
242 * IPython/iplib.py (interact): catch exceptions which can be
238 triggered asynchronously by signal handlers. Thanks to an
243 triggered asynchronously by signal handlers. Thanks to an
239 automatic crash report, submitted by Colin Kingsley
244 automatic crash report, submitted by Colin Kingsley
240 <tercel-AT-gentoo.org>.
245 <tercel-AT-gentoo.org>.
241
246
242 2006-01-20 Ville Vainio <vivainio@gmail.com>
247 2006-01-20 Ville Vainio <vivainio@gmail.com>
243
248
244 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
249 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
245 (%rehashdir, very useful, try it out) of how to extend ipython
250 (%rehashdir, very useful, try it out) of how to extend ipython
246 with new magics. Also added Extensions dir to pythonpath to make
251 with new magics. Also added Extensions dir to pythonpath to make
247 importing extensions easy.
252 importing extensions easy.
248
253
249 * %store now complains when trying to store interactively declared
254 * %store now complains when trying to store interactively declared
250 classes / instances of those classes.
255 classes / instances of those classes.
251
256
252 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
257 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
253 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
258 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
254 if they exist, and ipy_user_conf.py with some defaults is created for
259 if they exist, and ipy_user_conf.py with some defaults is created for
255 the user.
260 the user.
256
261
257 * Startup rehashing done by the config file, not InterpreterExec.
262 * Startup rehashing done by the config file, not InterpreterExec.
258 This means system commands are available even without selecting the
263 This means system commands are available even without selecting the
259 pysh profile. It's the sensible default after all.
264 pysh profile. It's the sensible default after all.
260
265
261 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
266 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
262
267
263 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
268 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
264 multiline code with autoindent on working. But I am really not
269 multiline code with autoindent on working. But I am really not
265 sure, so this needs more testing. Will commit a debug-enabled
270 sure, so this needs more testing. Will commit a debug-enabled
266 version for now, while I test it some more, so that Ville and
271 version for now, while I test it some more, so that Ville and
267 others may also catch any problems. Also made
272 others may also catch any problems. Also made
268 self.indent_current_str() a method, to ensure that there's no
273 self.indent_current_str() a method, to ensure that there's no
269 chance of the indent space count and the corresponding string
274 chance of the indent space count and the corresponding string
270 falling out of sync. All code needing the string should just call
275 falling out of sync. All code needing the string should just call
271 the method.
276 the method.
272
277
273 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
278 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
274
279
275 * IPython/Magic.py (magic_edit): fix check for when users don't
280 * IPython/Magic.py (magic_edit): fix check for when users don't
276 save their output files, the try/except was in the wrong section.
281 save their output files, the try/except was in the wrong section.
277
282
278 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
283 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
279
284
280 * IPython/Magic.py (magic_run): fix __file__ global missing from
285 * IPython/Magic.py (magic_run): fix __file__ global missing from
281 script's namespace when executed via %run. After a report by
286 script's namespace when executed via %run. After a report by
282 Vivian.
287 Vivian.
283
288
284 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
289 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
285 when using python 2.4. The parent constructor changed in 2.4, and
290 when using python 2.4. The parent constructor changed in 2.4, and
286 we need to track it directly (we can't call it, as it messes up
291 we need to track it directly (we can't call it, as it messes up
287 readline and tab-completion inside our pdb would stop working).
292 readline and tab-completion inside our pdb would stop working).
288 After a bug report by R. Bernstein <rocky-AT-panix.com>.
293 After a bug report by R. Bernstein <rocky-AT-panix.com>.
289
294
290 2006-01-16 Ville Vainio <vivainio@gmail.com>
295 2006-01-16 Ville Vainio <vivainio@gmail.com>
291
296
292 * Ipython/magic.py:Reverted back to old %edit functionality
297 * Ipython/magic.py:Reverted back to old %edit functionality
293 that returns file contents on exit.
298 that returns file contents on exit.
294
299
295 * IPython/path.py: Added Jason Orendorff's "path" module to
300 * IPython/path.py: Added Jason Orendorff's "path" module to
296 IPython tree, http://www.jorendorff.com/articles/python/path/.
301 IPython tree, http://www.jorendorff.com/articles/python/path/.
297 You can get path objects conveniently through %sc, and !!, e.g.:
302 You can get path objects conveniently through %sc, and !!, e.g.:
298 sc files=ls
303 sc files=ls
299 for p in files.paths: # or files.p
304 for p in files.paths: # or files.p
300 print p,p.mtime
305 print p,p.mtime
301
306
302 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
307 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
303 now work again without considering the exclusion regexp -
308 now work again without considering the exclusion regexp -
304 hence, things like ',foo my/path' turn to 'foo("my/path")'
309 hence, things like ',foo my/path' turn to 'foo("my/path")'
305 instead of syntax error.
310 instead of syntax error.
306
311
307
312
308 2006-01-14 Ville Vainio <vivainio@gmail.com>
313 2006-01-14 Ville Vainio <vivainio@gmail.com>
309
314
310 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
315 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
311 ipapi decorators for python 2.4 users, options() provides access to rc
316 ipapi decorators for python 2.4 users, options() provides access to rc
312 data.
317 data.
313
318
314 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
319 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
315 as path separators (even on Linux ;-). Space character after
320 as path separators (even on Linux ;-). Space character after
316 backslash (as yielded by tab completer) is still space;
321 backslash (as yielded by tab completer) is still space;
317 "%cd long\ name" works as expected.
322 "%cd long\ name" works as expected.
318
323
319 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
324 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
320 as "chain of command", with priority. API stays the same,
325 as "chain of command", with priority. API stays the same,
321 TryNext exception raised by a hook function signals that
326 TryNext exception raised by a hook function signals that
322 current hook failed and next hook should try handling it, as
327 current hook failed and next hook should try handling it, as
323 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
328 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
324 requested configurable display hook, which is now implemented.
329 requested configurable display hook, which is now implemented.
325
330
326 2006-01-13 Ville Vainio <vivainio@gmail.com>
331 2006-01-13 Ville Vainio <vivainio@gmail.com>
327
332
328 * IPython/platutils*.py: platform specific utility functions,
333 * IPython/platutils*.py: platform specific utility functions,
329 so far only set_term_title is implemented (change terminal
334 so far only set_term_title is implemented (change terminal
330 label in windowing systems). %cd now changes the title to
335 label in windowing systems). %cd now changes the title to
331 current dir.
336 current dir.
332
337
333 * IPython/Release.py: Added myself to "authors" list,
338 * IPython/Release.py: Added myself to "authors" list,
334 had to create new files.
339 had to create new files.
335
340
336 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
341 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
337 shell escape; not a known bug but had potential to be one in the
342 shell escape; not a known bug but had potential to be one in the
338 future.
343 future.
339
344
340 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
345 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
341 extension API for IPython! See the module for usage example. Fix
346 extension API for IPython! See the module for usage example. Fix
342 OInspect for docstring-less magic functions.
347 OInspect for docstring-less magic functions.
343
348
344
349
345 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
350 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
346
351
347 * IPython/iplib.py (raw_input): temporarily deactivate all
352 * IPython/iplib.py (raw_input): temporarily deactivate all
348 attempts at allowing pasting of code with autoindent on. It
353 attempts at allowing pasting of code with autoindent on. It
349 introduced bugs (reported by Prabhu) and I can't seem to find a
354 introduced bugs (reported by Prabhu) and I can't seem to find a
350 robust combination which works in all cases. Will have to revisit
355 robust combination which works in all cases. Will have to revisit
351 later.
356 later.
352
357
353 * IPython/genutils.py: remove isspace() function. We've dropped
358 * IPython/genutils.py: remove isspace() function. We've dropped
354 2.2 compatibility, so it's OK to use the string method.
359 2.2 compatibility, so it's OK to use the string method.
355
360
356 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
361 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
357
362
358 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
363 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
359 matching what NOT to autocall on, to include all python binary
364 matching what NOT to autocall on, to include all python binary
360 operators (including things like 'and', 'or', 'is' and 'in').
365 operators (including things like 'and', 'or', 'is' and 'in').
361 Prompted by a bug report on 'foo & bar', but I realized we had
366 Prompted by a bug report on 'foo & bar', but I realized we had
362 many more potential bug cases with other operators. The regexp is
367 many more potential bug cases with other operators. The regexp is
363 self.re_exclude_auto, it's fairly commented.
368 self.re_exclude_auto, it's fairly commented.
364
369
365 2006-01-12 Ville Vainio <vivainio@gmail.com>
370 2006-01-12 Ville Vainio <vivainio@gmail.com>
366
371
367 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
372 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
368 Prettified and hardened string/backslash quoting with ipsystem(),
373 Prettified and hardened string/backslash quoting with ipsystem(),
369 ipalias() and ipmagic(). Now even \ characters are passed to
374 ipalias() and ipmagic(). Now even \ characters are passed to
370 %magics, !shell escapes and aliases exactly as they are in the
375 %magics, !shell escapes and aliases exactly as they are in the
371 ipython command line. Should improve backslash experience,
376 ipython command line. Should improve backslash experience,
372 particularly in Windows (path delimiter for some commands that
377 particularly in Windows (path delimiter for some commands that
373 won't understand '/'), but Unix benefits as well (regexps). %cd
378 won't understand '/'), but Unix benefits as well (regexps). %cd
374 magic still doesn't support backslash path delimiters, though. Also
379 magic still doesn't support backslash path delimiters, though. Also
375 deleted all pretense of supporting multiline command strings in
380 deleted all pretense of supporting multiline command strings in
376 !system or %magic commands. Thanks to Jerry McRae for suggestions.
381 !system or %magic commands. Thanks to Jerry McRae for suggestions.
377
382
378 * doc/build_doc_instructions.txt added. Documentation on how to
383 * doc/build_doc_instructions.txt added. Documentation on how to
379 use doc/update_manual.py, added yesterday. Both files contributed
384 use doc/update_manual.py, added yesterday. Both files contributed
380 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
385 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
381 doc/*.sh for deprecation at a later date.
386 doc/*.sh for deprecation at a later date.
382
387
383 * /ipython.py Added ipython.py to root directory for
388 * /ipython.py Added ipython.py to root directory for
384 zero-installation (tar xzvf ipython.tgz; cd ipython; python
389 zero-installation (tar xzvf ipython.tgz; cd ipython; python
385 ipython.py) and development convenience (no need to kee doing
390 ipython.py) and development convenience (no need to kee doing
386 "setup.py install" between changes).
391 "setup.py install" between changes).
387
392
388 * Made ! and !! shell escapes work (again) in multiline expressions:
393 * Made ! and !! shell escapes work (again) in multiline expressions:
389 if 1:
394 if 1:
390 !ls
395 !ls
391 !!ls
396 !!ls
392
397
393 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
398 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
394
399
395 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
400 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
396 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
401 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
397 module in case-insensitive installation. Was causing crashes
402 module in case-insensitive installation. Was causing crashes
398 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
403 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
399
404
400 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
405 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
401 <marienz-AT-gentoo.org>, closes
406 <marienz-AT-gentoo.org>, closes
402 http://www.scipy.net/roundup/ipython/issue51.
407 http://www.scipy.net/roundup/ipython/issue51.
403
408
404 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
409 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
405
410
406 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
411 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
407 problem of excessive CPU usage under *nix and keyboard lag under
412 problem of excessive CPU usage under *nix and keyboard lag under
408 win32.
413 win32.
409
414
410 2006-01-10 *** Released version 0.7.0
415 2006-01-10 *** Released version 0.7.0
411
416
412 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
417 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
413
418
414 * IPython/Release.py (revision): tag version number to 0.7.0,
419 * IPython/Release.py (revision): tag version number to 0.7.0,
415 ready for release.
420 ready for release.
416
421
417 * IPython/Magic.py (magic_edit): Add print statement to %edit so
422 * IPython/Magic.py (magic_edit): Add print statement to %edit so
418 it informs the user of the name of the temp. file used. This can
423 it informs the user of the name of the temp. file used. This can
419 help if you decide later to reuse that same file, so you know
424 help if you decide later to reuse that same file, so you know
420 where to copy the info from.
425 where to copy the info from.
421
426
422 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
427 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
423
428
424 * setup_bdist_egg.py: little script to build an egg. Added
429 * setup_bdist_egg.py: little script to build an egg. Added
425 support in the release tools as well.
430 support in the release tools as well.
426
431
427 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
432 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
428
433
429 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
434 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
430 version selection (new -wxversion command line and ipythonrc
435 version selection (new -wxversion command line and ipythonrc
431 parameter). Patch contributed by Arnd Baecker
436 parameter). Patch contributed by Arnd Baecker
432 <arnd.baecker-AT-web.de>.
437 <arnd.baecker-AT-web.de>.
433
438
434 * IPython/iplib.py (embed_mainloop): fix tab-completion in
439 * IPython/iplib.py (embed_mainloop): fix tab-completion in
435 embedded instances, for variables defined at the interactive
440 embedded instances, for variables defined at the interactive
436 prompt of the embedded ipython. Reported by Arnd.
441 prompt of the embedded ipython. Reported by Arnd.
437
442
438 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
443 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
439 it can be used as a (stateful) toggle, or with a direct parameter.
444 it can be used as a (stateful) toggle, or with a direct parameter.
440
445
441 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
446 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
442 could be triggered in certain cases and cause the traceback
447 could be triggered in certain cases and cause the traceback
443 printer not to work.
448 printer not to work.
444
449
445 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
446
451
447 * IPython/iplib.py (_should_recompile): Small fix, closes
452 * IPython/iplib.py (_should_recompile): Small fix, closes
448 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
453 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
449
454
450 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
455 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
451
456
452 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
457 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
453 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
458 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
454 Moad for help with tracking it down.
459 Moad for help with tracking it down.
455
460
456 * IPython/iplib.py (handle_auto): fix autocall handling for
461 * IPython/iplib.py (handle_auto): fix autocall handling for
457 objects which support BOTH __getitem__ and __call__ (so that f [x]
462 objects which support BOTH __getitem__ and __call__ (so that f [x]
458 is left alone, instead of becoming f([x]) automatically).
463 is left alone, instead of becoming f([x]) automatically).
459
464
460 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
465 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
461 Ville's patch.
466 Ville's patch.
462
467
463 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
468 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
464
469
465 * IPython/iplib.py (handle_auto): changed autocall semantics to
470 * IPython/iplib.py (handle_auto): changed autocall semantics to
466 include 'smart' mode, where the autocall transformation is NOT
471 include 'smart' mode, where the autocall transformation is NOT
467 applied if there are no arguments on the line. This allows you to
472 applied if there are no arguments on the line. This allows you to
468 just type 'foo' if foo is a callable to see its internal form,
473 just type 'foo' if foo is a callable to see its internal form,
469 instead of having it called with no arguments (typically a
474 instead of having it called with no arguments (typically a
470 mistake). The old 'full' autocall still exists: for that, you
475 mistake). The old 'full' autocall still exists: for that, you
471 need to set the 'autocall' parameter to 2 in your ipythonrc file.
476 need to set the 'autocall' parameter to 2 in your ipythonrc file.
472
477
473 * IPython/completer.py (Completer.attr_matches): add
478 * IPython/completer.py (Completer.attr_matches): add
474 tab-completion support for Enthoughts' traits. After a report by
479 tab-completion support for Enthoughts' traits. After a report by
475 Arnd and a patch by Prabhu.
480 Arnd and a patch by Prabhu.
476
481
477 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
482 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
478
483
479 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
484 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
480 Schmolck's patch to fix inspect.getinnerframes().
485 Schmolck's patch to fix inspect.getinnerframes().
481
486
482 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
487 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
483 for embedded instances, regarding handling of namespaces and items
488 for embedded instances, regarding handling of namespaces and items
484 added to the __builtin__ one. Multiple embedded instances and
489 added to the __builtin__ one. Multiple embedded instances and
485 recursive embeddings should work better now (though I'm not sure
490 recursive embeddings should work better now (though I'm not sure
486 I've got all the corner cases fixed, that code is a bit of a brain
491 I've got all the corner cases fixed, that code is a bit of a brain
487 twister).
492 twister).
488
493
489 * IPython/Magic.py (magic_edit): added support to edit in-memory
494 * IPython/Magic.py (magic_edit): added support to edit in-memory
490 macros (automatically creates the necessary temp files). %edit
495 macros (automatically creates the necessary temp files). %edit
491 also doesn't return the file contents anymore, it's just noise.
496 also doesn't return the file contents anymore, it's just noise.
492
497
493 * IPython/completer.py (Completer.attr_matches): revert change to
498 * IPython/completer.py (Completer.attr_matches): revert change to
494 complete only on attributes listed in __all__. I realized it
499 complete only on attributes listed in __all__. I realized it
495 cripples the tab-completion system as a tool for exploring the
500 cripples the tab-completion system as a tool for exploring the
496 internals of unknown libraries (it renders any non-__all__
501 internals of unknown libraries (it renders any non-__all__
497 attribute off-limits). I got bit by this when trying to see
502 attribute off-limits). I got bit by this when trying to see
498 something inside the dis module.
503 something inside the dis module.
499
504
500 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
505 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
501
506
502 * IPython/iplib.py (InteractiveShell.__init__): add .meta
507 * IPython/iplib.py (InteractiveShell.__init__): add .meta
503 namespace for users and extension writers to hold data in. This
508 namespace for users and extension writers to hold data in. This
504 follows the discussion in
509 follows the discussion in
505 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
510 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
506
511
507 * IPython/completer.py (IPCompleter.complete): small patch to help
512 * IPython/completer.py (IPCompleter.complete): small patch to help
508 tab-completion under Emacs, after a suggestion by John Barnard
513 tab-completion under Emacs, after a suggestion by John Barnard
509 <barnarj-AT-ccf.org>.
514 <barnarj-AT-ccf.org>.
510
515
511 * IPython/Magic.py (Magic.extract_input_slices): added support for
516 * IPython/Magic.py (Magic.extract_input_slices): added support for
512 the slice notation in magics to use N-M to represent numbers N...M
517 the slice notation in magics to use N-M to represent numbers N...M
513 (closed endpoints). This is used by %macro and %save.
518 (closed endpoints). This is used by %macro and %save.
514
519
515 * IPython/completer.py (Completer.attr_matches): for modules which
520 * IPython/completer.py (Completer.attr_matches): for modules which
516 define __all__, complete only on those. After a patch by Jeffrey
521 define __all__, complete only on those. After a patch by Jeffrey
517 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
522 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
518 speed up this routine.
523 speed up this routine.
519
524
520 * IPython/Logger.py (Logger.log): fix a history handling bug. I
525 * IPython/Logger.py (Logger.log): fix a history handling bug. I
521 don't know if this is the end of it, but the behavior now is
526 don't know if this is the end of it, but the behavior now is
522 certainly much more correct. Note that coupled with macros,
527 certainly much more correct. Note that coupled with macros,
523 slightly surprising (at first) behavior may occur: a macro will in
528 slightly surprising (at first) behavior may occur: a macro will in
524 general expand to multiple lines of input, so upon exiting, the
529 general expand to multiple lines of input, so upon exiting, the
525 in/out counters will both be bumped by the corresponding amount
530 in/out counters will both be bumped by the corresponding amount
526 (as if the macro's contents had been typed interactively). Typing
531 (as if the macro's contents had been typed interactively). Typing
527 %hist will reveal the intermediate (silently processed) lines.
532 %hist will reveal the intermediate (silently processed) lines.
528
533
529 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
534 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
530 pickle to fail (%run was overwriting __main__ and not restoring
535 pickle to fail (%run was overwriting __main__ and not restoring
531 it, but pickle relies on __main__ to operate).
536 it, but pickle relies on __main__ to operate).
532
537
533 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
538 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
534 using properties, but forgot to make the main InteractiveShell
539 using properties, but forgot to make the main InteractiveShell
535 class a new-style class. Properties fail silently, and
540 class a new-style class. Properties fail silently, and
536 misteriously, with old-style class (getters work, but
541 misteriously, with old-style class (getters work, but
537 setters don't do anything).
542 setters don't do anything).
538
543
539 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
544 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
540
545
541 * IPython/Magic.py (magic_history): fix history reporting bug (I
546 * IPython/Magic.py (magic_history): fix history reporting bug (I
542 know some nasties are still there, I just can't seem to find a
547 know some nasties are still there, I just can't seem to find a
543 reproducible test case to track them down; the input history is
548 reproducible test case to track them down; the input history is
544 falling out of sync...)
549 falling out of sync...)
545
550
546 * IPython/iplib.py (handle_shell_escape): fix bug where both
551 * IPython/iplib.py (handle_shell_escape): fix bug where both
547 aliases and system accesses where broken for indented code (such
552 aliases and system accesses where broken for indented code (such
548 as loops).
553 as loops).
549
554
550 * IPython/genutils.py (shell): fix small but critical bug for
555 * IPython/genutils.py (shell): fix small but critical bug for
551 win32 system access.
556 win32 system access.
552
557
553 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
558 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
554
559
555 * IPython/iplib.py (showtraceback): remove use of the
560 * IPython/iplib.py (showtraceback): remove use of the
556 sys.last_{type/value/traceback} structures, which are non
561 sys.last_{type/value/traceback} structures, which are non
557 thread-safe.
562 thread-safe.
558 (_prefilter): change control flow to ensure that we NEVER
563 (_prefilter): change control flow to ensure that we NEVER
559 introspect objects when autocall is off. This will guarantee that
564 introspect objects when autocall is off. This will guarantee that
560 having an input line of the form 'x.y', where access to attribute
565 having an input line of the form 'x.y', where access to attribute
561 'y' has side effects, doesn't trigger the side effect TWICE. It
566 'y' has side effects, doesn't trigger the side effect TWICE. It
562 is important to note that, with autocall on, these side effects
567 is important to note that, with autocall on, these side effects
563 can still happen.
568 can still happen.
564 (ipsystem): new builtin, to complete the ip{magic/alias/system}
569 (ipsystem): new builtin, to complete the ip{magic/alias/system}
565 trio. IPython offers these three kinds of special calls which are
570 trio. IPython offers these three kinds of special calls which are
566 not python code, and it's a good thing to have their call method
571 not python code, and it's a good thing to have their call method
567 be accessible as pure python functions (not just special syntax at
572 be accessible as pure python functions (not just special syntax at
568 the command line). It gives us a better internal implementation
573 the command line). It gives us a better internal implementation
569 structure, as well as exposing these for user scripting more
574 structure, as well as exposing these for user scripting more
570 cleanly.
575 cleanly.
571
576
572 * IPython/macro.py (Macro.__init__): moved macros to a standalone
577 * IPython/macro.py (Macro.__init__): moved macros to a standalone
573 file. Now that they'll be more likely to be used with the
578 file. Now that they'll be more likely to be used with the
574 persistance system (%store), I want to make sure their module path
579 persistance system (%store), I want to make sure their module path
575 doesn't change in the future, so that we don't break things for
580 doesn't change in the future, so that we don't break things for
576 users' persisted data.
581 users' persisted data.
577
582
578 * IPython/iplib.py (autoindent_update): move indentation
583 * IPython/iplib.py (autoindent_update): move indentation
579 management into the _text_ processing loop, not the keyboard
584 management into the _text_ processing loop, not the keyboard
580 interactive one. This is necessary to correctly process non-typed
585 interactive one. This is necessary to correctly process non-typed
581 multiline input (such as macros).
586 multiline input (such as macros).
582
587
583 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
588 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
584 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
589 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
585 which was producing problems in the resulting manual.
590 which was producing problems in the resulting manual.
586 (magic_whos): improve reporting of instances (show their class,
591 (magic_whos): improve reporting of instances (show their class,
587 instead of simply printing 'instance' which isn't terribly
592 instead of simply printing 'instance' which isn't terribly
588 informative).
593 informative).
589
594
590 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
595 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
591 (minor mods) to support network shares under win32.
596 (minor mods) to support network shares under win32.
592
597
593 * IPython/winconsole.py (get_console_size): add new winconsole
598 * IPython/winconsole.py (get_console_size): add new winconsole
594 module and fixes to page_dumb() to improve its behavior under
599 module and fixes to page_dumb() to improve its behavior under
595 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
600 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
596
601
597 * IPython/Magic.py (Macro): simplified Macro class to just
602 * IPython/Magic.py (Macro): simplified Macro class to just
598 subclass list. We've had only 2.2 compatibility for a very long
603 subclass list. We've had only 2.2 compatibility for a very long
599 time, yet I was still avoiding subclassing the builtin types. No
604 time, yet I was still avoiding subclassing the builtin types. No
600 more (I'm also starting to use properties, though I won't shift to
605 more (I'm also starting to use properties, though I won't shift to
601 2.3-specific features quite yet).
606 2.3-specific features quite yet).
602 (magic_store): added Ville's patch for lightweight variable
607 (magic_store): added Ville's patch for lightweight variable
603 persistence, after a request on the user list by Matt Wilkie
608 persistence, after a request on the user list by Matt Wilkie
604 <maphew-AT-gmail.com>. The new %store magic's docstring has full
609 <maphew-AT-gmail.com>. The new %store magic's docstring has full
605 details.
610 details.
606
611
607 * IPython/iplib.py (InteractiveShell.post_config_initialization):
612 * IPython/iplib.py (InteractiveShell.post_config_initialization):
608 changed the default logfile name from 'ipython.log' to
613 changed the default logfile name from 'ipython.log' to
609 'ipython_log.py'. These logs are real python files, and now that
614 'ipython_log.py'. These logs are real python files, and now that
610 we have much better multiline support, people are more likely to
615 we have much better multiline support, people are more likely to
611 want to use them as such. Might as well name them correctly.
616 want to use them as such. Might as well name them correctly.
612
617
613 * IPython/Magic.py: substantial cleanup. While we can't stop
618 * IPython/Magic.py: substantial cleanup. While we can't stop
614 using magics as mixins, due to the existing customizations 'out
619 using magics as mixins, due to the existing customizations 'out
615 there' which rely on the mixin naming conventions, at least I
620 there' which rely on the mixin naming conventions, at least I
616 cleaned out all cross-class name usage. So once we are OK with
621 cleaned out all cross-class name usage. So once we are OK with
617 breaking compatibility, the two systems can be separated.
622 breaking compatibility, the two systems can be separated.
618
623
619 * IPython/Logger.py: major cleanup. This one is NOT a mixin
624 * IPython/Logger.py: major cleanup. This one is NOT a mixin
620 anymore, and the class is a fair bit less hideous as well. New
625 anymore, and the class is a fair bit less hideous as well. New
621 features were also introduced: timestamping of input, and logging
626 features were also introduced: timestamping of input, and logging
622 of output results. These are user-visible with the -t and -o
627 of output results. These are user-visible with the -t and -o
623 options to %logstart. Closes
628 options to %logstart. Closes
624 http://www.scipy.net/roundup/ipython/issue11 and a request by
629 http://www.scipy.net/roundup/ipython/issue11 and a request by
625 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
630 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
626
631
627 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
632 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
628
633
629 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
634 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
630 better hadnle backslashes in paths. See the thread 'More Windows
635 better hadnle backslashes in paths. See the thread 'More Windows
631 questions part 2 - \/ characters revisited' on the iypthon user
636 questions part 2 - \/ characters revisited' on the iypthon user
632 list:
637 list:
633 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
638 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
634
639
635 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
640 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
636
641
637 (InteractiveShell.__init__): change threaded shells to not use the
642 (InteractiveShell.__init__): change threaded shells to not use the
638 ipython crash handler. This was causing more problems than not,
643 ipython crash handler. This was causing more problems than not,
639 as exceptions in the main thread (GUI code, typically) would
644 as exceptions in the main thread (GUI code, typically) would
640 always show up as a 'crash', when they really weren't.
645 always show up as a 'crash', when they really weren't.
641
646
642 The colors and exception mode commands (%colors/%xmode) have been
647 The colors and exception mode commands (%colors/%xmode) have been
643 synchronized to also take this into account, so users can get
648 synchronized to also take this into account, so users can get
644 verbose exceptions for their threaded code as well. I also added
649 verbose exceptions for their threaded code as well. I also added
645 support for activating pdb inside this exception handler as well,
650 support for activating pdb inside this exception handler as well,
646 so now GUI authors can use IPython's enhanced pdb at runtime.
651 so now GUI authors can use IPython's enhanced pdb at runtime.
647
652
648 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
653 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
649 true by default, and add it to the shipped ipythonrc file. Since
654 true by default, and add it to the shipped ipythonrc file. Since
650 this asks the user before proceeding, I think it's OK to make it
655 this asks the user before proceeding, I think it's OK to make it
651 true by default.
656 true by default.
652
657
653 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
658 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
654 of the previous special-casing of input in the eval loop. I think
659 of the previous special-casing of input in the eval loop. I think
655 this is cleaner, as they really are commands and shouldn't have
660 this is cleaner, as they really are commands and shouldn't have
656 a special role in the middle of the core code.
661 a special role in the middle of the core code.
657
662
658 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
663 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
659
664
660 * IPython/iplib.py (edit_syntax_error): added support for
665 * IPython/iplib.py (edit_syntax_error): added support for
661 automatically reopening the editor if the file had a syntax error
666 automatically reopening the editor if the file had a syntax error
662 in it. Thanks to scottt who provided the patch at:
667 in it. Thanks to scottt who provided the patch at:
663 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
668 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
664 version committed).
669 version committed).
665
670
666 * IPython/iplib.py (handle_normal): add suport for multi-line
671 * IPython/iplib.py (handle_normal): add suport for multi-line
667 input with emtpy lines. This fixes
672 input with emtpy lines. This fixes
668 http://www.scipy.net/roundup/ipython/issue43 and a similar
673 http://www.scipy.net/roundup/ipython/issue43 and a similar
669 discussion on the user list.
674 discussion on the user list.
670
675
671 WARNING: a behavior change is necessarily introduced to support
676 WARNING: a behavior change is necessarily introduced to support
672 blank lines: now a single blank line with whitespace does NOT
677 blank lines: now a single blank line with whitespace does NOT
673 break the input loop, which means that when autoindent is on, by
678 break the input loop, which means that when autoindent is on, by
674 default hitting return on the next (indented) line does NOT exit.
679 default hitting return on the next (indented) line does NOT exit.
675
680
676 Instead, to exit a multiline input you can either have:
681 Instead, to exit a multiline input you can either have:
677
682
678 - TWO whitespace lines (just hit return again), or
683 - TWO whitespace lines (just hit return again), or
679 - a single whitespace line of a different length than provided
684 - a single whitespace line of a different length than provided
680 by the autoindent (add or remove a space).
685 by the autoindent (add or remove a space).
681
686
682 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
687 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
683 module to better organize all readline-related functionality.
688 module to better organize all readline-related functionality.
684 I've deleted FlexCompleter and put all completion clases here.
689 I've deleted FlexCompleter and put all completion clases here.
685
690
686 * IPython/iplib.py (raw_input): improve indentation management.
691 * IPython/iplib.py (raw_input): improve indentation management.
687 It is now possible to paste indented code with autoindent on, and
692 It is now possible to paste indented code with autoindent on, and
688 the code is interpreted correctly (though it still looks bad on
693 the code is interpreted correctly (though it still looks bad on
689 screen, due to the line-oriented nature of ipython).
694 screen, due to the line-oriented nature of ipython).
690 (MagicCompleter.complete): change behavior so that a TAB key on an
695 (MagicCompleter.complete): change behavior so that a TAB key on an
691 otherwise empty line actually inserts a tab, instead of completing
696 otherwise empty line actually inserts a tab, instead of completing
692 on the entire global namespace. This makes it easier to use the
697 on the entire global namespace. This makes it easier to use the
693 TAB key for indentation. After a request by Hans Meine
698 TAB key for indentation. After a request by Hans Meine
694 <hans_meine-AT-gmx.net>
699 <hans_meine-AT-gmx.net>
695 (_prefilter): add support so that typing plain 'exit' or 'quit'
700 (_prefilter): add support so that typing plain 'exit' or 'quit'
696 does a sensible thing. Originally I tried to deviate as little as
701 does a sensible thing. Originally I tried to deviate as little as
697 possible from the default python behavior, but even that one may
702 possible from the default python behavior, but even that one may
698 change in this direction (thread on python-dev to that effect).
703 change in this direction (thread on python-dev to that effect).
699 Regardless, ipython should do the right thing even if CPython's
704 Regardless, ipython should do the right thing even if CPython's
700 '>>>' prompt doesn't.
705 '>>>' prompt doesn't.
701 (InteractiveShell): removed subclassing code.InteractiveConsole
706 (InteractiveShell): removed subclassing code.InteractiveConsole
702 class. By now we'd overridden just about all of its methods: I've
707 class. By now we'd overridden just about all of its methods: I've
703 copied the remaining two over, and now ipython is a standalone
708 copied the remaining two over, and now ipython is a standalone
704 class. This will provide a clearer picture for the chainsaw
709 class. This will provide a clearer picture for the chainsaw
705 branch refactoring.
710 branch refactoring.
706
711
707 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
712 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
708
713
709 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
714 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
710 failures for objects which break when dir() is called on them.
715 failures for objects which break when dir() is called on them.
711
716
712 * IPython/FlexCompleter.py (Completer.__init__): Added support for
717 * IPython/FlexCompleter.py (Completer.__init__): Added support for
713 distinct local and global namespaces in the completer API. This
718 distinct local and global namespaces in the completer API. This
714 change allows us top properly handle completion with distinct
719 change allows us top properly handle completion with distinct
715 scopes, including in embedded instances (this had never really
720 scopes, including in embedded instances (this had never really
716 worked correctly).
721 worked correctly).
717
722
718 Note: this introduces a change in the constructor for
723 Note: this introduces a change in the constructor for
719 MagicCompleter, as a new global_namespace parameter is now the
724 MagicCompleter, as a new global_namespace parameter is now the
720 second argument (the others were bumped one position).
725 second argument (the others were bumped one position).
721
726
722 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
727 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
723
728
724 * IPython/iplib.py (embed_mainloop): fix tab-completion in
729 * IPython/iplib.py (embed_mainloop): fix tab-completion in
725 embedded instances (which can be done now thanks to Vivian's
730 embedded instances (which can be done now thanks to Vivian's
726 frame-handling fixes for pdb).
731 frame-handling fixes for pdb).
727 (InteractiveShell.__init__): Fix namespace handling problem in
732 (InteractiveShell.__init__): Fix namespace handling problem in
728 embedded instances. We were overwriting __main__ unconditionally,
733 embedded instances. We were overwriting __main__ unconditionally,
729 and this should only be done for 'full' (non-embedded) IPython;
734 and this should only be done for 'full' (non-embedded) IPython;
730 embedded instances must respect the caller's __main__. Thanks to
735 embedded instances must respect the caller's __main__. Thanks to
731 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
736 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
732
737
733 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
738 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
734
739
735 * setup.py: added download_url to setup(). This registers the
740 * setup.py: added download_url to setup(). This registers the
736 download address at PyPI, which is not only useful to humans
741 download address at PyPI, which is not only useful to humans
737 browsing the site, but is also picked up by setuptools (the Eggs
742 browsing the site, but is also picked up by setuptools (the Eggs
738 machinery). Thanks to Ville and R. Kern for the info/discussion
743 machinery). Thanks to Ville and R. Kern for the info/discussion
739 on this.
744 on this.
740
745
741 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
746 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
742
747
743 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
748 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
744 This brings a lot of nice functionality to the pdb mode, which now
749 This brings a lot of nice functionality to the pdb mode, which now
745 has tab-completion, syntax highlighting, and better stack handling
750 has tab-completion, syntax highlighting, and better stack handling
746 than before. Many thanks to Vivian De Smedt
751 than before. Many thanks to Vivian De Smedt
747 <vivian-AT-vdesmedt.com> for the original patches.
752 <vivian-AT-vdesmedt.com> for the original patches.
748
753
749 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
754 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
750
755
751 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
756 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
752 sequence to consistently accept the banner argument. The
757 sequence to consistently accept the banner argument. The
753 inconsistency was tripping SAGE, thanks to Gary Zablackis
758 inconsistency was tripping SAGE, thanks to Gary Zablackis
754 <gzabl-AT-yahoo.com> for the report.
759 <gzabl-AT-yahoo.com> for the report.
755
760
756 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
761 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
757
762
758 * IPython/iplib.py (InteractiveShell.post_config_initialization):
763 * IPython/iplib.py (InteractiveShell.post_config_initialization):
759 Fix bug where a naked 'alias' call in the ipythonrc file would
764 Fix bug where a naked 'alias' call in the ipythonrc file would
760 cause a crash. Bug reported by Jorgen Stenarson.
765 cause a crash. Bug reported by Jorgen Stenarson.
761
766
762 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
767 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
763
768
764 * IPython/ipmaker.py (make_IPython): cleanups which should improve
769 * IPython/ipmaker.py (make_IPython): cleanups which should improve
765 startup time.
770 startup time.
766
771
767 * IPython/iplib.py (runcode): my globals 'fix' for embedded
772 * IPython/iplib.py (runcode): my globals 'fix' for embedded
768 instances had introduced a bug with globals in normal code. Now
773 instances had introduced a bug with globals in normal code. Now
769 it's working in all cases.
774 it's working in all cases.
770
775
771 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
776 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
772 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
777 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
773 has been introduced to set the default case sensitivity of the
778 has been introduced to set the default case sensitivity of the
774 searches. Users can still select either mode at runtime on a
779 searches. Users can still select either mode at runtime on a
775 per-search basis.
780 per-search basis.
776
781
777 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
782 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
778
783
779 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
784 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
780 attributes in wildcard searches for subclasses. Modified version
785 attributes in wildcard searches for subclasses. Modified version
781 of a patch by Jorgen.
786 of a patch by Jorgen.
782
787
783 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
788 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
784
789
785 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
790 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
786 embedded instances. I added a user_global_ns attribute to the
791 embedded instances. I added a user_global_ns attribute to the
787 InteractiveShell class to handle this.
792 InteractiveShell class to handle this.
788
793
789 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
794 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
790
795
791 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
796 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
792 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
797 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
793 (reported under win32, but may happen also in other platforms).
798 (reported under win32, but may happen also in other platforms).
794 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
799 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
795
800
796 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
801 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
797
802
798 * IPython/Magic.py (magic_psearch): new support for wildcard
803 * IPython/Magic.py (magic_psearch): new support for wildcard
799 patterns. Now, typing ?a*b will list all names which begin with a
804 patterns. Now, typing ?a*b will list all names which begin with a
800 and end in b, for example. The %psearch magic has full
805 and end in b, for example. The %psearch magic has full
801 docstrings. Many thanks to JΓΆrgen Stenarson
806 docstrings. Many thanks to JΓΆrgen Stenarson
802 <jorgen.stenarson-AT-bostream.nu>, author of the patches
807 <jorgen.stenarson-AT-bostream.nu>, author of the patches
803 implementing this functionality.
808 implementing this functionality.
804
809
805 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
810 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
806
811
807 * Manual: fixed long-standing annoyance of double-dashes (as in
812 * Manual: fixed long-standing annoyance of double-dashes (as in
808 --prefix=~, for example) being stripped in the HTML version. This
813 --prefix=~, for example) being stripped in the HTML version. This
809 is a latex2html bug, but a workaround was provided. Many thanks
814 is a latex2html bug, but a workaround was provided. Many thanks
810 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
815 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
811 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
816 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
812 rolling. This seemingly small issue had tripped a number of users
817 rolling. This seemingly small issue had tripped a number of users
813 when first installing, so I'm glad to see it gone.
818 when first installing, so I'm glad to see it gone.
814
819
815 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
820 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
816
821
817 * IPython/Extensions/numeric_formats.py: fix missing import,
822 * IPython/Extensions/numeric_formats.py: fix missing import,
818 reported by Stephen Walton.
823 reported by Stephen Walton.
819
824
820 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
825 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
821
826
822 * IPython/demo.py: finish demo module, fully documented now.
827 * IPython/demo.py: finish demo module, fully documented now.
823
828
824 * IPython/genutils.py (file_read): simple little utility to read a
829 * IPython/genutils.py (file_read): simple little utility to read a
825 file and ensure it's closed afterwards.
830 file and ensure it's closed afterwards.
826
831
827 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
832 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
828
833
829 * IPython/demo.py (Demo.__init__): added support for individually
834 * IPython/demo.py (Demo.__init__): added support for individually
830 tagging blocks for automatic execution.
835 tagging blocks for automatic execution.
831
836
832 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
837 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
833 syntax-highlighted python sources, requested by John.
838 syntax-highlighted python sources, requested by John.
834
839
835 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
840 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
836
841
837 * IPython/demo.py (Demo.again): fix bug where again() blocks after
842 * IPython/demo.py (Demo.again): fix bug where again() blocks after
838 finishing.
843 finishing.
839
844
840 * IPython/genutils.py (shlex_split): moved from Magic to here,
845 * IPython/genutils.py (shlex_split): moved from Magic to here,
841 where all 2.2 compatibility stuff lives. I needed it for demo.py.
846 where all 2.2 compatibility stuff lives. I needed it for demo.py.
842
847
843 * IPython/demo.py (Demo.__init__): added support for silent
848 * IPython/demo.py (Demo.__init__): added support for silent
844 blocks, improved marks as regexps, docstrings written.
849 blocks, improved marks as regexps, docstrings written.
845 (Demo.__init__): better docstring, added support for sys.argv.
850 (Demo.__init__): better docstring, added support for sys.argv.
846
851
847 * IPython/genutils.py (marquee): little utility used by the demo
852 * IPython/genutils.py (marquee): little utility used by the demo
848 code, handy in general.
853 code, handy in general.
849
854
850 * IPython/demo.py (Demo.__init__): new class for interactive
855 * IPython/demo.py (Demo.__init__): new class for interactive
851 demos. Not documented yet, I just wrote it in a hurry for
856 demos. Not documented yet, I just wrote it in a hurry for
852 scipy'05. Will docstring later.
857 scipy'05. Will docstring later.
853
858
854 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
859 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
855
860
856 * IPython/Shell.py (sigint_handler): Drastic simplification which
861 * IPython/Shell.py (sigint_handler): Drastic simplification which
857 also seems to make Ctrl-C work correctly across threads! This is
862 also seems to make Ctrl-C work correctly across threads! This is
858 so simple, that I can't beleive I'd missed it before. Needs more
863 so simple, that I can't beleive I'd missed it before. Needs more
859 testing, though.
864 testing, though.
860 (KBINT): Never mind, revert changes. I'm sure I'd tried something
865 (KBINT): Never mind, revert changes. I'm sure I'd tried something
861 like this before...
866 like this before...
862
867
863 * IPython/genutils.py (get_home_dir): add protection against
868 * IPython/genutils.py (get_home_dir): add protection against
864 non-dirs in win32 registry.
869 non-dirs in win32 registry.
865
870
866 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
871 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
867 bug where dict was mutated while iterating (pysh crash).
872 bug where dict was mutated while iterating (pysh crash).
868
873
869 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
874 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
870
875
871 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
876 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
872 spurious newlines added by this routine. After a report by
877 spurious newlines added by this routine. After a report by
873 F. Mantegazza.
878 F. Mantegazza.
874
879
875 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
880 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
876
881
877 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
882 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
878 calls. These were a leftover from the GTK 1.x days, and can cause
883 calls. These were a leftover from the GTK 1.x days, and can cause
879 problems in certain cases (after a report by John Hunter).
884 problems in certain cases (after a report by John Hunter).
880
885
881 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
886 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
882 os.getcwd() fails at init time. Thanks to patch from David Remahl
887 os.getcwd() fails at init time. Thanks to patch from David Remahl
883 <chmod007-AT-mac.com>.
888 <chmod007-AT-mac.com>.
884 (InteractiveShell.__init__): prevent certain special magics from
889 (InteractiveShell.__init__): prevent certain special magics from
885 being shadowed by aliases. Closes
890 being shadowed by aliases. Closes
886 http://www.scipy.net/roundup/ipython/issue41.
891 http://www.scipy.net/roundup/ipython/issue41.
887
892
888 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
893 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
889
894
890 * IPython/iplib.py (InteractiveShell.complete): Added new
895 * IPython/iplib.py (InteractiveShell.complete): Added new
891 top-level completion method to expose the completion mechanism
896 top-level completion method to expose the completion mechanism
892 beyond readline-based environments.
897 beyond readline-based environments.
893
898
894 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
899 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
895
900
896 * tools/ipsvnc (svnversion): fix svnversion capture.
901 * tools/ipsvnc (svnversion): fix svnversion capture.
897
902
898 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
903 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
899 attribute to self, which was missing. Before, it was set by a
904 attribute to self, which was missing. Before, it was set by a
900 routine which in certain cases wasn't being called, so the
905 routine which in certain cases wasn't being called, so the
901 instance could end up missing the attribute. This caused a crash.
906 instance could end up missing the attribute. This caused a crash.
902 Closes http://www.scipy.net/roundup/ipython/issue40.
907 Closes http://www.scipy.net/roundup/ipython/issue40.
903
908
904 2005-08-16 Fernando Perez <fperez@colorado.edu>
909 2005-08-16 Fernando Perez <fperez@colorado.edu>
905
910
906 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
911 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
907 contains non-string attribute. Closes
912 contains non-string attribute. Closes
908 http://www.scipy.net/roundup/ipython/issue38.
913 http://www.scipy.net/roundup/ipython/issue38.
909
914
910 2005-08-14 Fernando Perez <fperez@colorado.edu>
915 2005-08-14 Fernando Perez <fperez@colorado.edu>
911
916
912 * tools/ipsvnc: Minor improvements, to add changeset info.
917 * tools/ipsvnc: Minor improvements, to add changeset info.
913
918
914 2005-08-12 Fernando Perez <fperez@colorado.edu>
919 2005-08-12 Fernando Perez <fperez@colorado.edu>
915
920
916 * IPython/iplib.py (runsource): remove self.code_to_run_src
921 * IPython/iplib.py (runsource): remove self.code_to_run_src
917 attribute. I realized this is nothing more than
922 attribute. I realized this is nothing more than
918 '\n'.join(self.buffer), and having the same data in two different
923 '\n'.join(self.buffer), and having the same data in two different
919 places is just asking for synchronization bugs. This may impact
924 places is just asking for synchronization bugs. This may impact
920 people who have custom exception handlers, so I need to warn
925 people who have custom exception handlers, so I need to warn
921 ipython-dev about it (F. Mantegazza may use them).
926 ipython-dev about it (F. Mantegazza may use them).
922
927
923 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
928 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
924
929
925 * IPython/genutils.py: fix 2.2 compatibility (generators)
930 * IPython/genutils.py: fix 2.2 compatibility (generators)
926
931
927 2005-07-18 Fernando Perez <fperez@colorado.edu>
932 2005-07-18 Fernando Perez <fperez@colorado.edu>
928
933
929 * IPython/genutils.py (get_home_dir): fix to help users with
934 * IPython/genutils.py (get_home_dir): fix to help users with
930 invalid $HOME under win32.
935 invalid $HOME under win32.
931
936
932 2005-07-17 Fernando Perez <fperez@colorado.edu>
937 2005-07-17 Fernando Perez <fperez@colorado.edu>
933
938
934 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
939 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
935 some old hacks and clean up a bit other routines; code should be
940 some old hacks and clean up a bit other routines; code should be
936 simpler and a bit faster.
941 simpler and a bit faster.
937
942
938 * IPython/iplib.py (interact): removed some last-resort attempts
943 * IPython/iplib.py (interact): removed some last-resort attempts
939 to survive broken stdout/stderr. That code was only making it
944 to survive broken stdout/stderr. That code was only making it
940 harder to abstract out the i/o (necessary for gui integration),
945 harder to abstract out the i/o (necessary for gui integration),
941 and the crashes it could prevent were extremely rare in practice
946 and the crashes it could prevent were extremely rare in practice
942 (besides being fully user-induced in a pretty violent manner).
947 (besides being fully user-induced in a pretty violent manner).
943
948
944 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
949 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
945 Nothing major yet, but the code is simpler to read; this should
950 Nothing major yet, but the code is simpler to read; this should
946 make it easier to do more serious modifications in the future.
951 make it easier to do more serious modifications in the future.
947
952
948 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
953 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
949 which broke in .15 (thanks to a report by Ville).
954 which broke in .15 (thanks to a report by Ville).
950
955
951 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
956 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
952 be quite correct, I know next to nothing about unicode). This
957 be quite correct, I know next to nothing about unicode). This
953 will allow unicode strings to be used in prompts, amongst other
958 will allow unicode strings to be used in prompts, amongst other
954 cases. It also will prevent ipython from crashing when unicode
959 cases. It also will prevent ipython from crashing when unicode
955 shows up unexpectedly in many places. If ascii encoding fails, we
960 shows up unexpectedly in many places. If ascii encoding fails, we
956 assume utf_8. Currently the encoding is not a user-visible
961 assume utf_8. Currently the encoding is not a user-visible
957 setting, though it could be made so if there is demand for it.
962 setting, though it could be made so if there is demand for it.
958
963
959 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
964 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
960
965
961 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
966 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
962
967
963 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
968 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
964
969
965 * IPython/genutils.py: Add 2.2 compatibility here, so all other
970 * IPython/genutils.py: Add 2.2 compatibility here, so all other
966 code can work transparently for 2.2/2.3.
971 code can work transparently for 2.2/2.3.
967
972
968 2005-07-16 Fernando Perez <fperez@colorado.edu>
973 2005-07-16 Fernando Perez <fperez@colorado.edu>
969
974
970 * IPython/ultraTB.py (ExceptionColors): Make a global variable
975 * IPython/ultraTB.py (ExceptionColors): Make a global variable
971 out of the color scheme table used for coloring exception
976 out of the color scheme table used for coloring exception
972 tracebacks. This allows user code to add new schemes at runtime.
977 tracebacks. This allows user code to add new schemes at runtime.
973 This is a minimally modified version of the patch at
978 This is a minimally modified version of the patch at
974 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
979 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
975 for the contribution.
980 for the contribution.
976
981
977 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
982 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
978 slightly modified version of the patch in
983 slightly modified version of the patch in
979 http://www.scipy.net/roundup/ipython/issue34, which also allows me
984 http://www.scipy.net/roundup/ipython/issue34, which also allows me
980 to remove the previous try/except solution (which was costlier).
985 to remove the previous try/except solution (which was costlier).
981 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
986 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
982
987
983 2005-06-08 Fernando Perez <fperez@colorado.edu>
988 2005-06-08 Fernando Perez <fperez@colorado.edu>
984
989
985 * IPython/iplib.py (write/write_err): Add methods to abstract all
990 * IPython/iplib.py (write/write_err): Add methods to abstract all
986 I/O a bit more.
991 I/O a bit more.
987
992
988 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
993 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
989 warning, reported by Aric Hagberg, fix by JD Hunter.
994 warning, reported by Aric Hagberg, fix by JD Hunter.
990
995
991 2005-06-02 *** Released version 0.6.15
996 2005-06-02 *** Released version 0.6.15
992
997
993 2005-06-01 Fernando Perez <fperez@colorado.edu>
998 2005-06-01 Fernando Perez <fperez@colorado.edu>
994
999
995 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1000 * IPython/iplib.py (MagicCompleter.file_matches): Fix
996 tab-completion of filenames within open-quoted strings. Note that
1001 tab-completion of filenames within open-quoted strings. Note that
997 this requires that in ~/.ipython/ipythonrc, users change the
1002 this requires that in ~/.ipython/ipythonrc, users change the
998 readline delimiters configuration to read:
1003 readline delimiters configuration to read:
999
1004
1000 readline_remove_delims -/~
1005 readline_remove_delims -/~
1001
1006
1002
1007
1003 2005-05-31 *** Released version 0.6.14
1008 2005-05-31 *** Released version 0.6.14
1004
1009
1005 2005-05-29 Fernando Perez <fperez@colorado.edu>
1010 2005-05-29 Fernando Perez <fperez@colorado.edu>
1006
1011
1007 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1012 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1008 with files not on the filesystem. Reported by Eliyahu Sandler
1013 with files not on the filesystem. Reported by Eliyahu Sandler
1009 <eli@gondolin.net>
1014 <eli@gondolin.net>
1010
1015
1011 2005-05-22 Fernando Perez <fperez@colorado.edu>
1016 2005-05-22 Fernando Perez <fperez@colorado.edu>
1012
1017
1013 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1018 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1014 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1019 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1015
1020
1016 2005-05-19 Fernando Perez <fperez@colorado.edu>
1021 2005-05-19 Fernando Perez <fperez@colorado.edu>
1017
1022
1018 * IPython/iplib.py (safe_execfile): close a file which could be
1023 * IPython/iplib.py (safe_execfile): close a file which could be
1019 left open (causing problems in win32, which locks open files).
1024 left open (causing problems in win32, which locks open files).
1020 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1025 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1021
1026
1022 2005-05-18 Fernando Perez <fperez@colorado.edu>
1027 2005-05-18 Fernando Perez <fperez@colorado.edu>
1023
1028
1024 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1029 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1025 keyword arguments correctly to safe_execfile().
1030 keyword arguments correctly to safe_execfile().
1026
1031
1027 2005-05-13 Fernando Perez <fperez@colorado.edu>
1032 2005-05-13 Fernando Perez <fperez@colorado.edu>
1028
1033
1029 * ipython.1: Added info about Qt to manpage, and threads warning
1034 * ipython.1: Added info about Qt to manpage, and threads warning
1030 to usage page (invoked with --help).
1035 to usage page (invoked with --help).
1031
1036
1032 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1037 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1033 new matcher (it goes at the end of the priority list) to do
1038 new matcher (it goes at the end of the priority list) to do
1034 tab-completion on named function arguments. Submitted by George
1039 tab-completion on named function arguments. Submitted by George
1035 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1040 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1036 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1041 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1037 for more details.
1042 for more details.
1038
1043
1039 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1044 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1040 SystemExit exceptions in the script being run. Thanks to a report
1045 SystemExit exceptions in the script being run. Thanks to a report
1041 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1046 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1042 producing very annoying behavior when running unit tests.
1047 producing very annoying behavior when running unit tests.
1043
1048
1044 2005-05-12 Fernando Perez <fperez@colorado.edu>
1049 2005-05-12 Fernando Perez <fperez@colorado.edu>
1045
1050
1046 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1051 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1047 which I'd broken (again) due to a changed regexp. In the process,
1052 which I'd broken (again) due to a changed regexp. In the process,
1048 added ';' as an escape to auto-quote the whole line without
1053 added ';' as an escape to auto-quote the whole line without
1049 splitting its arguments. Thanks to a report by Jerry McRae
1054 splitting its arguments. Thanks to a report by Jerry McRae
1050 <qrs0xyc02-AT-sneakemail.com>.
1055 <qrs0xyc02-AT-sneakemail.com>.
1051
1056
1052 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1057 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1053 possible crashes caused by a TokenError. Reported by Ed Schofield
1058 possible crashes caused by a TokenError. Reported by Ed Schofield
1054 <schofield-AT-ftw.at>.
1059 <schofield-AT-ftw.at>.
1055
1060
1056 2005-05-06 Fernando Perez <fperez@colorado.edu>
1061 2005-05-06 Fernando Perez <fperez@colorado.edu>
1057
1062
1058 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1063 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1059
1064
1060 2005-04-29 Fernando Perez <fperez@colorado.edu>
1065 2005-04-29 Fernando Perez <fperez@colorado.edu>
1061
1066
1062 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1067 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1063 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1068 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1064 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1069 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1065 which provides support for Qt interactive usage (similar to the
1070 which provides support for Qt interactive usage (similar to the
1066 existing one for WX and GTK). This had been often requested.
1071 existing one for WX and GTK). This had been often requested.
1067
1072
1068 2005-04-14 *** Released version 0.6.13
1073 2005-04-14 *** Released version 0.6.13
1069
1074
1070 2005-04-08 Fernando Perez <fperez@colorado.edu>
1075 2005-04-08 Fernando Perez <fperez@colorado.edu>
1071
1076
1072 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1077 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1073 from _ofind, which gets called on almost every input line. Now,
1078 from _ofind, which gets called on almost every input line. Now,
1074 we only try to get docstrings if they are actually going to be
1079 we only try to get docstrings if they are actually going to be
1075 used (the overhead of fetching unnecessary docstrings can be
1080 used (the overhead of fetching unnecessary docstrings can be
1076 noticeable for certain objects, such as Pyro proxies).
1081 noticeable for certain objects, such as Pyro proxies).
1077
1082
1078 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1083 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1079 for completers. For some reason I had been passing them the state
1084 for completers. For some reason I had been passing them the state
1080 variable, which completers never actually need, and was in
1085 variable, which completers never actually need, and was in
1081 conflict with the rlcompleter API. Custom completers ONLY need to
1086 conflict with the rlcompleter API. Custom completers ONLY need to
1082 take the text parameter.
1087 take the text parameter.
1083
1088
1084 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1089 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1085 work correctly in pysh. I've also moved all the logic which used
1090 work correctly in pysh. I've also moved all the logic which used
1086 to be in pysh.py here, which will prevent problems with future
1091 to be in pysh.py here, which will prevent problems with future
1087 upgrades. However, this time I must warn users to update their
1092 upgrades. However, this time I must warn users to update their
1088 pysh profile to include the line
1093 pysh profile to include the line
1089
1094
1090 import_all IPython.Extensions.InterpreterExec
1095 import_all IPython.Extensions.InterpreterExec
1091
1096
1092 because otherwise things won't work for them. They MUST also
1097 because otherwise things won't work for them. They MUST also
1093 delete pysh.py and the line
1098 delete pysh.py and the line
1094
1099
1095 execfile pysh.py
1100 execfile pysh.py
1096
1101
1097 from their ipythonrc-pysh.
1102 from their ipythonrc-pysh.
1098
1103
1099 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1104 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1100 robust in the face of objects whose dir() returns non-strings
1105 robust in the face of objects whose dir() returns non-strings
1101 (which it shouldn't, but some broken libs like ITK do). Thanks to
1106 (which it shouldn't, but some broken libs like ITK do). Thanks to
1102 a patch by John Hunter (implemented differently, though). Also
1107 a patch by John Hunter (implemented differently, though). Also
1103 minor improvements by using .extend instead of + on lists.
1108 minor improvements by using .extend instead of + on lists.
1104
1109
1105 * pysh.py:
1110 * pysh.py:
1106
1111
1107 2005-04-06 Fernando Perez <fperez@colorado.edu>
1112 2005-04-06 Fernando Perez <fperez@colorado.edu>
1108
1113
1109 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1114 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1110 by default, so that all users benefit from it. Those who don't
1115 by default, so that all users benefit from it. Those who don't
1111 want it can still turn it off.
1116 want it can still turn it off.
1112
1117
1113 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1118 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1114 config file, I'd forgotten about this, so users were getting it
1119 config file, I'd forgotten about this, so users were getting it
1115 off by default.
1120 off by default.
1116
1121
1117 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1122 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1118 consistency. Now magics can be called in multiline statements,
1123 consistency. Now magics can be called in multiline statements,
1119 and python variables can be expanded in magic calls via $var.
1124 and python variables can be expanded in magic calls via $var.
1120 This makes the magic system behave just like aliases or !system
1125 This makes the magic system behave just like aliases or !system
1121 calls.
1126 calls.
1122
1127
1123 2005-03-28 Fernando Perez <fperez@colorado.edu>
1128 2005-03-28 Fernando Perez <fperez@colorado.edu>
1124
1129
1125 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1130 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1126 expensive string additions for building command. Add support for
1131 expensive string additions for building command. Add support for
1127 trailing ';' when autocall is used.
1132 trailing ';' when autocall is used.
1128
1133
1129 2005-03-26 Fernando Perez <fperez@colorado.edu>
1134 2005-03-26 Fernando Perez <fperez@colorado.edu>
1130
1135
1131 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1136 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1132 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1137 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1133 ipython.el robust against prompts with any number of spaces
1138 ipython.el robust against prompts with any number of spaces
1134 (including 0) after the ':' character.
1139 (including 0) after the ':' character.
1135
1140
1136 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1141 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1137 continuation prompt, which misled users to think the line was
1142 continuation prompt, which misled users to think the line was
1138 already indented. Closes debian Bug#300847, reported to me by
1143 already indented. Closes debian Bug#300847, reported to me by
1139 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1144 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1140
1145
1141 2005-03-23 Fernando Perez <fperez@colorado.edu>
1146 2005-03-23 Fernando Perez <fperez@colorado.edu>
1142
1147
1143 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1148 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1144 properly aligned if they have embedded newlines.
1149 properly aligned if they have embedded newlines.
1145
1150
1146 * IPython/iplib.py (runlines): Add a public method to expose
1151 * IPython/iplib.py (runlines): Add a public method to expose
1147 IPython's code execution machinery, so that users can run strings
1152 IPython's code execution machinery, so that users can run strings
1148 as if they had been typed at the prompt interactively.
1153 as if they had been typed at the prompt interactively.
1149 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1154 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1150 methods which can call the system shell, but with python variable
1155 methods which can call the system shell, but with python variable
1151 expansion. The three such methods are: __IPYTHON__.system,
1156 expansion. The three such methods are: __IPYTHON__.system,
1152 .getoutput and .getoutputerror. These need to be documented in a
1157 .getoutput and .getoutputerror. These need to be documented in a
1153 'public API' section (to be written) of the manual.
1158 'public API' section (to be written) of the manual.
1154
1159
1155 2005-03-20 Fernando Perez <fperez@colorado.edu>
1160 2005-03-20 Fernando Perez <fperez@colorado.edu>
1156
1161
1157 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1162 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1158 for custom exception handling. This is quite powerful, and it
1163 for custom exception handling. This is quite powerful, and it
1159 allows for user-installable exception handlers which can trap
1164 allows for user-installable exception handlers which can trap
1160 custom exceptions at runtime and treat them separately from
1165 custom exceptions at runtime and treat them separately from
1161 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1166 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1162 Mantegazza <mantegazza-AT-ill.fr>.
1167 Mantegazza <mantegazza-AT-ill.fr>.
1163 (InteractiveShell.set_custom_completer): public API function to
1168 (InteractiveShell.set_custom_completer): public API function to
1164 add new completers at runtime.
1169 add new completers at runtime.
1165
1170
1166 2005-03-19 Fernando Perez <fperez@colorado.edu>
1171 2005-03-19 Fernando Perez <fperez@colorado.edu>
1167
1172
1168 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1173 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1169 allow objects which provide their docstrings via non-standard
1174 allow objects which provide their docstrings via non-standard
1170 mechanisms (like Pyro proxies) to still be inspected by ipython's
1175 mechanisms (like Pyro proxies) to still be inspected by ipython's
1171 ? system.
1176 ? system.
1172
1177
1173 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1178 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1174 automatic capture system. I tried quite hard to make it work
1179 automatic capture system. I tried quite hard to make it work
1175 reliably, and simply failed. I tried many combinations with the
1180 reliably, and simply failed. I tried many combinations with the
1176 subprocess module, but eventually nothing worked in all needed
1181 subprocess module, but eventually nothing worked in all needed
1177 cases (not blocking stdin for the child, duplicating stdout
1182 cases (not blocking stdin for the child, duplicating stdout
1178 without blocking, etc). The new %sc/%sx still do capture to these
1183 without blocking, etc). The new %sc/%sx still do capture to these
1179 magical list/string objects which make shell use much more
1184 magical list/string objects which make shell use much more
1180 conveninent, so not all is lost.
1185 conveninent, so not all is lost.
1181
1186
1182 XXX - FIX MANUAL for the change above!
1187 XXX - FIX MANUAL for the change above!
1183
1188
1184 (runsource): I copied code.py's runsource() into ipython to modify
1189 (runsource): I copied code.py's runsource() into ipython to modify
1185 it a bit. Now the code object and source to be executed are
1190 it a bit. Now the code object and source to be executed are
1186 stored in ipython. This makes this info accessible to third-party
1191 stored in ipython. This makes this info accessible to third-party
1187 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1192 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1188 Mantegazza <mantegazza-AT-ill.fr>.
1193 Mantegazza <mantegazza-AT-ill.fr>.
1189
1194
1190 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1195 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1191 history-search via readline (like C-p/C-n). I'd wanted this for a
1196 history-search via readline (like C-p/C-n). I'd wanted this for a
1192 long time, but only recently found out how to do it. For users
1197 long time, but only recently found out how to do it. For users
1193 who already have their ipythonrc files made and want this, just
1198 who already have their ipythonrc files made and want this, just
1194 add:
1199 add:
1195
1200
1196 readline_parse_and_bind "\e[A": history-search-backward
1201 readline_parse_and_bind "\e[A": history-search-backward
1197 readline_parse_and_bind "\e[B": history-search-forward
1202 readline_parse_and_bind "\e[B": history-search-forward
1198
1203
1199 2005-03-18 Fernando Perez <fperez@colorado.edu>
1204 2005-03-18 Fernando Perez <fperez@colorado.edu>
1200
1205
1201 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1206 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1202 LSString and SList classes which allow transparent conversions
1207 LSString and SList classes which allow transparent conversions
1203 between list mode and whitespace-separated string.
1208 between list mode and whitespace-separated string.
1204 (magic_r): Fix recursion problem in %r.
1209 (magic_r): Fix recursion problem in %r.
1205
1210
1206 * IPython/genutils.py (LSString): New class to be used for
1211 * IPython/genutils.py (LSString): New class to be used for
1207 automatic storage of the results of all alias/system calls in _o
1212 automatic storage of the results of all alias/system calls in _o
1208 and _e (stdout/err). These provide a .l/.list attribute which
1213 and _e (stdout/err). These provide a .l/.list attribute which
1209 does automatic splitting on newlines. This means that for most
1214 does automatic splitting on newlines. This means that for most
1210 uses, you'll never need to do capturing of output with %sc/%sx
1215 uses, you'll never need to do capturing of output with %sc/%sx
1211 anymore, since ipython keeps this always done for you. Note that
1216 anymore, since ipython keeps this always done for you. Note that
1212 only the LAST results are stored, the _o/e variables are
1217 only the LAST results are stored, the _o/e variables are
1213 overwritten on each call. If you need to save their contents
1218 overwritten on each call. If you need to save their contents
1214 further, simply bind them to any other name.
1219 further, simply bind them to any other name.
1215
1220
1216 2005-03-17 Fernando Perez <fperez@colorado.edu>
1221 2005-03-17 Fernando Perez <fperez@colorado.edu>
1217
1222
1218 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1223 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1219 prompt namespace handling.
1224 prompt namespace handling.
1220
1225
1221 2005-03-16 Fernando Perez <fperez@colorado.edu>
1226 2005-03-16 Fernando Perez <fperez@colorado.edu>
1222
1227
1223 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1228 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1224 classic prompts to be '>>> ' (final space was missing, and it
1229 classic prompts to be '>>> ' (final space was missing, and it
1225 trips the emacs python mode).
1230 trips the emacs python mode).
1226 (BasePrompt.__str__): Added safe support for dynamic prompt
1231 (BasePrompt.__str__): Added safe support for dynamic prompt
1227 strings. Now you can set your prompt string to be '$x', and the
1232 strings. Now you can set your prompt string to be '$x', and the
1228 value of x will be printed from your interactive namespace. The
1233 value of x will be printed from your interactive namespace. The
1229 interpolation syntax includes the full Itpl support, so
1234 interpolation syntax includes the full Itpl support, so
1230 ${foo()+x+bar()} is a valid prompt string now, and the function
1235 ${foo()+x+bar()} is a valid prompt string now, and the function
1231 calls will be made at runtime.
1236 calls will be made at runtime.
1232
1237
1233 2005-03-15 Fernando Perez <fperez@colorado.edu>
1238 2005-03-15 Fernando Perez <fperez@colorado.edu>
1234
1239
1235 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1240 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1236 avoid name clashes in pylab. %hist still works, it just forwards
1241 avoid name clashes in pylab. %hist still works, it just forwards
1237 the call to %history.
1242 the call to %history.
1238
1243
1239 2005-03-02 *** Released version 0.6.12
1244 2005-03-02 *** Released version 0.6.12
1240
1245
1241 2005-03-02 Fernando Perez <fperez@colorado.edu>
1246 2005-03-02 Fernando Perez <fperez@colorado.edu>
1242
1247
1243 * IPython/iplib.py (handle_magic): log magic calls properly as
1248 * IPython/iplib.py (handle_magic): log magic calls properly as
1244 ipmagic() function calls.
1249 ipmagic() function calls.
1245
1250
1246 * IPython/Magic.py (magic_time): Improved %time to support
1251 * IPython/Magic.py (magic_time): Improved %time to support
1247 statements and provide wall-clock as well as CPU time.
1252 statements and provide wall-clock as well as CPU time.
1248
1253
1249 2005-02-27 Fernando Perez <fperez@colorado.edu>
1254 2005-02-27 Fernando Perez <fperez@colorado.edu>
1250
1255
1251 * IPython/hooks.py: New hooks module, to expose user-modifiable
1256 * IPython/hooks.py: New hooks module, to expose user-modifiable
1252 IPython functionality in a clean manner. For now only the editor
1257 IPython functionality in a clean manner. For now only the editor
1253 hook is actually written, and other thigns which I intend to turn
1258 hook is actually written, and other thigns which I intend to turn
1254 into proper hooks aren't yet there. The display and prefilter
1259 into proper hooks aren't yet there. The display and prefilter
1255 stuff, for example, should be hooks. But at least now the
1260 stuff, for example, should be hooks. But at least now the
1256 framework is in place, and the rest can be moved here with more
1261 framework is in place, and the rest can be moved here with more
1257 time later. IPython had had a .hooks variable for a long time for
1262 time later. IPython had had a .hooks variable for a long time for
1258 this purpose, but I'd never actually used it for anything.
1263 this purpose, but I'd never actually used it for anything.
1259
1264
1260 2005-02-26 Fernando Perez <fperez@colorado.edu>
1265 2005-02-26 Fernando Perez <fperez@colorado.edu>
1261
1266
1262 * IPython/ipmaker.py (make_IPython): make the default ipython
1267 * IPython/ipmaker.py (make_IPython): make the default ipython
1263 directory be called _ipython under win32, to follow more the
1268 directory be called _ipython under win32, to follow more the
1264 naming peculiarities of that platform (where buggy software like
1269 naming peculiarities of that platform (where buggy software like
1265 Visual Sourcesafe breaks with .named directories). Reported by
1270 Visual Sourcesafe breaks with .named directories). Reported by
1266 Ville Vainio.
1271 Ville Vainio.
1267
1272
1268 2005-02-23 Fernando Perez <fperez@colorado.edu>
1273 2005-02-23 Fernando Perez <fperez@colorado.edu>
1269
1274
1270 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1275 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1271 auto_aliases for win32 which were causing problems. Users can
1276 auto_aliases for win32 which were causing problems. Users can
1272 define the ones they personally like.
1277 define the ones they personally like.
1273
1278
1274 2005-02-21 Fernando Perez <fperez@colorado.edu>
1279 2005-02-21 Fernando Perez <fperez@colorado.edu>
1275
1280
1276 * IPython/Magic.py (magic_time): new magic to time execution of
1281 * IPython/Magic.py (magic_time): new magic to time execution of
1277 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1282 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1278
1283
1279 2005-02-19 Fernando Perez <fperez@colorado.edu>
1284 2005-02-19 Fernando Perez <fperez@colorado.edu>
1280
1285
1281 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1286 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1282 into keys (for prompts, for example).
1287 into keys (for prompts, for example).
1283
1288
1284 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1289 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1285 prompts in case users want them. This introduces a small behavior
1290 prompts in case users want them. This introduces a small behavior
1286 change: ipython does not automatically add a space to all prompts
1291 change: ipython does not automatically add a space to all prompts
1287 anymore. To get the old prompts with a space, users should add it
1292 anymore. To get the old prompts with a space, users should add it
1288 manually to their ipythonrc file, so for example prompt_in1 should
1293 manually to their ipythonrc file, so for example prompt_in1 should
1289 now read 'In [\#]: ' instead of 'In [\#]:'.
1294 now read 'In [\#]: ' instead of 'In [\#]:'.
1290 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1295 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1291 file) to control left-padding of secondary prompts.
1296 file) to control left-padding of secondary prompts.
1292
1297
1293 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1298 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1294 the profiler can't be imported. Fix for Debian, which removed
1299 the profiler can't be imported. Fix for Debian, which removed
1295 profile.py because of License issues. I applied a slightly
1300 profile.py because of License issues. I applied a slightly
1296 modified version of the original Debian patch at
1301 modified version of the original Debian patch at
1297 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1302 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1298
1303
1299 2005-02-17 Fernando Perez <fperez@colorado.edu>
1304 2005-02-17 Fernando Perez <fperez@colorado.edu>
1300
1305
1301 * IPython/genutils.py (native_line_ends): Fix bug which would
1306 * IPython/genutils.py (native_line_ends): Fix bug which would
1302 cause improper line-ends under win32 b/c I was not opening files
1307 cause improper line-ends under win32 b/c I was not opening files
1303 in binary mode. Bug report and fix thanks to Ville.
1308 in binary mode. Bug report and fix thanks to Ville.
1304
1309
1305 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1310 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1306 trying to catch spurious foo[1] autocalls. My fix actually broke
1311 trying to catch spurious foo[1] autocalls. My fix actually broke
1307 ',/' autoquote/call with explicit escape (bad regexp).
1312 ',/' autoquote/call with explicit escape (bad regexp).
1308
1313
1309 2005-02-15 *** Released version 0.6.11
1314 2005-02-15 *** Released version 0.6.11
1310
1315
1311 2005-02-14 Fernando Perez <fperez@colorado.edu>
1316 2005-02-14 Fernando Perez <fperez@colorado.edu>
1312
1317
1313 * IPython/background_jobs.py: New background job management
1318 * IPython/background_jobs.py: New background job management
1314 subsystem. This is implemented via a new set of classes, and
1319 subsystem. This is implemented via a new set of classes, and
1315 IPython now provides a builtin 'jobs' object for background job
1320 IPython now provides a builtin 'jobs' object for background job
1316 execution. A convenience %bg magic serves as a lightweight
1321 execution. A convenience %bg magic serves as a lightweight
1317 frontend for starting the more common type of calls. This was
1322 frontend for starting the more common type of calls. This was
1318 inspired by discussions with B. Granger and the BackgroundCommand
1323 inspired by discussions with B. Granger and the BackgroundCommand
1319 class described in the book Python Scripting for Computational
1324 class described in the book Python Scripting for Computational
1320 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1325 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1321 (although ultimately no code from this text was used, as IPython's
1326 (although ultimately no code from this text was used, as IPython's
1322 system is a separate implementation).
1327 system is a separate implementation).
1323
1328
1324 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1329 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1325 to control the completion of single/double underscore names
1330 to control the completion of single/double underscore names
1326 separately. As documented in the example ipytonrc file, the
1331 separately. As documented in the example ipytonrc file, the
1327 readline_omit__names variable can now be set to 2, to omit even
1332 readline_omit__names variable can now be set to 2, to omit even
1328 single underscore names. Thanks to a patch by Brian Wong
1333 single underscore names. Thanks to a patch by Brian Wong
1329 <BrianWong-AT-AirgoNetworks.Com>.
1334 <BrianWong-AT-AirgoNetworks.Com>.
1330 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1335 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1331 be autocalled as foo([1]) if foo were callable. A problem for
1336 be autocalled as foo([1]) if foo were callable. A problem for
1332 things which are both callable and implement __getitem__.
1337 things which are both callable and implement __getitem__.
1333 (init_readline): Fix autoindentation for win32. Thanks to a patch
1338 (init_readline): Fix autoindentation for win32. Thanks to a patch
1334 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1339 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1335
1340
1336 2005-02-12 Fernando Perez <fperez@colorado.edu>
1341 2005-02-12 Fernando Perez <fperez@colorado.edu>
1337
1342
1338 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1343 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1339 which I had written long ago to sort out user error messages which
1344 which I had written long ago to sort out user error messages which
1340 may occur during startup. This seemed like a good idea initially,
1345 may occur during startup. This seemed like a good idea initially,
1341 but it has proven a disaster in retrospect. I don't want to
1346 but it has proven a disaster in retrospect. I don't want to
1342 change much code for now, so my fix is to set the internal 'debug'
1347 change much code for now, so my fix is to set the internal 'debug'
1343 flag to true everywhere, whose only job was precisely to control
1348 flag to true everywhere, whose only job was precisely to control
1344 this subsystem. This closes issue 28 (as well as avoiding all
1349 this subsystem. This closes issue 28 (as well as avoiding all
1345 sorts of strange hangups which occur from time to time).
1350 sorts of strange hangups which occur from time to time).
1346
1351
1347 2005-02-07 Fernando Perez <fperez@colorado.edu>
1352 2005-02-07 Fernando Perez <fperez@colorado.edu>
1348
1353
1349 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1354 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1350 previous call produced a syntax error.
1355 previous call produced a syntax error.
1351
1356
1352 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1357 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1353 classes without constructor.
1358 classes without constructor.
1354
1359
1355 2005-02-06 Fernando Perez <fperez@colorado.edu>
1360 2005-02-06 Fernando Perez <fperez@colorado.edu>
1356
1361
1357 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1362 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1358 completions with the results of each matcher, so we return results
1363 completions with the results of each matcher, so we return results
1359 to the user from all namespaces. This breaks with ipython
1364 to the user from all namespaces. This breaks with ipython
1360 tradition, but I think it's a nicer behavior. Now you get all
1365 tradition, but I think it's a nicer behavior. Now you get all
1361 possible completions listed, from all possible namespaces (python,
1366 possible completions listed, from all possible namespaces (python,
1362 filesystem, magics...) After a request by John Hunter
1367 filesystem, magics...) After a request by John Hunter
1363 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1368 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1364
1369
1365 2005-02-05 Fernando Perez <fperez@colorado.edu>
1370 2005-02-05 Fernando Perez <fperez@colorado.edu>
1366
1371
1367 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1372 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1368 the call had quote characters in it (the quotes were stripped).
1373 the call had quote characters in it (the quotes were stripped).
1369
1374
1370 2005-01-31 Fernando Perez <fperez@colorado.edu>
1375 2005-01-31 Fernando Perez <fperez@colorado.edu>
1371
1376
1372 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1377 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1373 Itpl.itpl() to make the code more robust against psyco
1378 Itpl.itpl() to make the code more robust against psyco
1374 optimizations.
1379 optimizations.
1375
1380
1376 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1381 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1377 of causing an exception. Quicker, cleaner.
1382 of causing an exception. Quicker, cleaner.
1378
1383
1379 2005-01-28 Fernando Perez <fperez@colorado.edu>
1384 2005-01-28 Fernando Perez <fperez@colorado.edu>
1380
1385
1381 * scripts/ipython_win_post_install.py (install): hardcode
1386 * scripts/ipython_win_post_install.py (install): hardcode
1382 sys.prefix+'python.exe' as the executable path. It turns out that
1387 sys.prefix+'python.exe' as the executable path. It turns out that
1383 during the post-installation run, sys.executable resolves to the
1388 during the post-installation run, sys.executable resolves to the
1384 name of the binary installer! I should report this as a distutils
1389 name of the binary installer! I should report this as a distutils
1385 bug, I think. I updated the .10 release with this tiny fix, to
1390 bug, I think. I updated the .10 release with this tiny fix, to
1386 avoid annoying the lists further.
1391 avoid annoying the lists further.
1387
1392
1388 2005-01-27 *** Released version 0.6.10
1393 2005-01-27 *** Released version 0.6.10
1389
1394
1390 2005-01-27 Fernando Perez <fperez@colorado.edu>
1395 2005-01-27 Fernando Perez <fperez@colorado.edu>
1391
1396
1392 * IPython/numutils.py (norm): Added 'inf' as optional name for
1397 * IPython/numutils.py (norm): Added 'inf' as optional name for
1393 L-infinity norm, included references to mathworld.com for vector
1398 L-infinity norm, included references to mathworld.com for vector
1394 norm definitions.
1399 norm definitions.
1395 (amin/amax): added amin/amax for array min/max. Similar to what
1400 (amin/amax): added amin/amax for array min/max. Similar to what
1396 pylab ships with after the recent reorganization of names.
1401 pylab ships with after the recent reorganization of names.
1397 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1402 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1398
1403
1399 * ipython.el: committed Alex's recent fixes and improvements.
1404 * ipython.el: committed Alex's recent fixes and improvements.
1400 Tested with python-mode from CVS, and it looks excellent. Since
1405 Tested with python-mode from CVS, and it looks excellent. Since
1401 python-mode hasn't released anything in a while, I'm temporarily
1406 python-mode hasn't released anything in a while, I'm temporarily
1402 putting a copy of today's CVS (v 4.70) of python-mode in:
1407 putting a copy of today's CVS (v 4.70) of python-mode in:
1403 http://ipython.scipy.org/tmp/python-mode.el
1408 http://ipython.scipy.org/tmp/python-mode.el
1404
1409
1405 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1410 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1406 sys.executable for the executable name, instead of assuming it's
1411 sys.executable for the executable name, instead of assuming it's
1407 called 'python.exe' (the post-installer would have produced broken
1412 called 'python.exe' (the post-installer would have produced broken
1408 setups on systems with a differently named python binary).
1413 setups on systems with a differently named python binary).
1409
1414
1410 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1415 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1411 references to os.linesep, to make the code more
1416 references to os.linesep, to make the code more
1412 platform-independent. This is also part of the win32 coloring
1417 platform-independent. This is also part of the win32 coloring
1413 fixes.
1418 fixes.
1414
1419
1415 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1420 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1416 lines, which actually cause coloring bugs because the length of
1421 lines, which actually cause coloring bugs because the length of
1417 the line is very difficult to correctly compute with embedded
1422 the line is very difficult to correctly compute with embedded
1418 escapes. This was the source of all the coloring problems under
1423 escapes. This was the source of all the coloring problems under
1419 Win32. I think that _finally_, Win32 users have a properly
1424 Win32. I think that _finally_, Win32 users have a properly
1420 working ipython in all respects. This would never have happened
1425 working ipython in all respects. This would never have happened
1421 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1426 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1422
1427
1423 2005-01-26 *** Released version 0.6.9
1428 2005-01-26 *** Released version 0.6.9
1424
1429
1425 2005-01-25 Fernando Perez <fperez@colorado.edu>
1430 2005-01-25 Fernando Perez <fperez@colorado.edu>
1426
1431
1427 * setup.py: finally, we have a true Windows installer, thanks to
1432 * setup.py: finally, we have a true Windows installer, thanks to
1428 the excellent work of Viktor Ransmayr
1433 the excellent work of Viktor Ransmayr
1429 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1434 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1430 Windows users. The setup routine is quite a bit cleaner thanks to
1435 Windows users. The setup routine is quite a bit cleaner thanks to
1431 this, and the post-install script uses the proper functions to
1436 this, and the post-install script uses the proper functions to
1432 allow a clean de-installation using the standard Windows Control
1437 allow a clean de-installation using the standard Windows Control
1433 Panel.
1438 Panel.
1434
1439
1435 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1440 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1436 environment variable under all OSes (including win32) if
1441 environment variable under all OSes (including win32) if
1437 available. This will give consistency to win32 users who have set
1442 available. This will give consistency to win32 users who have set
1438 this variable for any reason. If os.environ['HOME'] fails, the
1443 this variable for any reason. If os.environ['HOME'] fails, the
1439 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1444 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1440
1445
1441 2005-01-24 Fernando Perez <fperez@colorado.edu>
1446 2005-01-24 Fernando Perez <fperez@colorado.edu>
1442
1447
1443 * IPython/numutils.py (empty_like): add empty_like(), similar to
1448 * IPython/numutils.py (empty_like): add empty_like(), similar to
1444 zeros_like() but taking advantage of the new empty() Numeric routine.
1449 zeros_like() but taking advantage of the new empty() Numeric routine.
1445
1450
1446 2005-01-23 *** Released version 0.6.8
1451 2005-01-23 *** Released version 0.6.8
1447
1452
1448 2005-01-22 Fernando Perez <fperez@colorado.edu>
1453 2005-01-22 Fernando Perez <fperez@colorado.edu>
1449
1454
1450 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1455 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1451 automatic show() calls. After discussing things with JDH, it
1456 automatic show() calls. After discussing things with JDH, it
1452 turns out there are too many corner cases where this can go wrong.
1457 turns out there are too many corner cases where this can go wrong.
1453 It's best not to try to be 'too smart', and simply have ipython
1458 It's best not to try to be 'too smart', and simply have ipython
1454 reproduce as much as possible the default behavior of a normal
1459 reproduce as much as possible the default behavior of a normal
1455 python shell.
1460 python shell.
1456
1461
1457 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1462 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1458 line-splitting regexp and _prefilter() to avoid calling getattr()
1463 line-splitting regexp and _prefilter() to avoid calling getattr()
1459 on assignments. This closes
1464 on assignments. This closes
1460 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1465 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1461 readline uses getattr(), so a simple <TAB> keypress is still
1466 readline uses getattr(), so a simple <TAB> keypress is still
1462 enough to trigger getattr() calls on an object.
1467 enough to trigger getattr() calls on an object.
1463
1468
1464 2005-01-21 Fernando Perez <fperez@colorado.edu>
1469 2005-01-21 Fernando Perez <fperez@colorado.edu>
1465
1470
1466 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1471 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1467 docstring under pylab so it doesn't mask the original.
1472 docstring under pylab so it doesn't mask the original.
1468
1473
1469 2005-01-21 *** Released version 0.6.7
1474 2005-01-21 *** Released version 0.6.7
1470
1475
1471 2005-01-21 Fernando Perez <fperez@colorado.edu>
1476 2005-01-21 Fernando Perez <fperez@colorado.edu>
1472
1477
1473 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1478 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1474 signal handling for win32 users in multithreaded mode.
1479 signal handling for win32 users in multithreaded mode.
1475
1480
1476 2005-01-17 Fernando Perez <fperez@colorado.edu>
1481 2005-01-17 Fernando Perez <fperez@colorado.edu>
1477
1482
1478 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1483 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1479 instances with no __init__. After a crash report by Norbert Nemec
1484 instances with no __init__. After a crash report by Norbert Nemec
1480 <Norbert-AT-nemec-online.de>.
1485 <Norbert-AT-nemec-online.de>.
1481
1486
1482 2005-01-14 Fernando Perez <fperez@colorado.edu>
1487 2005-01-14 Fernando Perez <fperez@colorado.edu>
1483
1488
1484 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1489 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1485 names for verbose exceptions, when multiple dotted names and the
1490 names for verbose exceptions, when multiple dotted names and the
1486 'parent' object were present on the same line.
1491 'parent' object were present on the same line.
1487
1492
1488 2005-01-11 Fernando Perez <fperez@colorado.edu>
1493 2005-01-11 Fernando Perez <fperez@colorado.edu>
1489
1494
1490 * IPython/genutils.py (flag_calls): new utility to trap and flag
1495 * IPython/genutils.py (flag_calls): new utility to trap and flag
1491 calls in functions. I need it to clean up matplotlib support.
1496 calls in functions. I need it to clean up matplotlib support.
1492 Also removed some deprecated code in genutils.
1497 Also removed some deprecated code in genutils.
1493
1498
1494 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1499 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1495 that matplotlib scripts called with %run, which don't call show()
1500 that matplotlib scripts called with %run, which don't call show()
1496 themselves, still have their plotting windows open.
1501 themselves, still have their plotting windows open.
1497
1502
1498 2005-01-05 Fernando Perez <fperez@colorado.edu>
1503 2005-01-05 Fernando Perez <fperez@colorado.edu>
1499
1504
1500 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1505 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1501 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1506 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1502
1507
1503 2004-12-19 Fernando Perez <fperez@colorado.edu>
1508 2004-12-19 Fernando Perez <fperez@colorado.edu>
1504
1509
1505 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1510 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1506 parent_runcode, which was an eyesore. The same result can be
1511 parent_runcode, which was an eyesore. The same result can be
1507 obtained with Python's regular superclass mechanisms.
1512 obtained with Python's regular superclass mechanisms.
1508
1513
1509 2004-12-17 Fernando Perez <fperez@colorado.edu>
1514 2004-12-17 Fernando Perez <fperez@colorado.edu>
1510
1515
1511 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1516 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1512 reported by Prabhu.
1517 reported by Prabhu.
1513 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1518 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1514 sys.stderr) instead of explicitly calling sys.stderr. This helps
1519 sys.stderr) instead of explicitly calling sys.stderr. This helps
1515 maintain our I/O abstractions clean, for future GUI embeddings.
1520 maintain our I/O abstractions clean, for future GUI embeddings.
1516
1521
1517 * IPython/genutils.py (info): added new utility for sys.stderr
1522 * IPython/genutils.py (info): added new utility for sys.stderr
1518 unified info message handling (thin wrapper around warn()).
1523 unified info message handling (thin wrapper around warn()).
1519
1524
1520 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1525 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1521 composite (dotted) names on verbose exceptions.
1526 composite (dotted) names on verbose exceptions.
1522 (VerboseTB.nullrepr): harden against another kind of errors which
1527 (VerboseTB.nullrepr): harden against another kind of errors which
1523 Python's inspect module can trigger, and which were crashing
1528 Python's inspect module can trigger, and which were crashing
1524 IPython. Thanks to a report by Marco Lombardi
1529 IPython. Thanks to a report by Marco Lombardi
1525 <mlombard-AT-ma010192.hq.eso.org>.
1530 <mlombard-AT-ma010192.hq.eso.org>.
1526
1531
1527 2004-12-13 *** Released version 0.6.6
1532 2004-12-13 *** Released version 0.6.6
1528
1533
1529 2004-12-12 Fernando Perez <fperez@colorado.edu>
1534 2004-12-12 Fernando Perez <fperez@colorado.edu>
1530
1535
1531 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1536 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1532 generated by pygtk upon initialization if it was built without
1537 generated by pygtk upon initialization if it was built without
1533 threads (for matplotlib users). After a crash reported by
1538 threads (for matplotlib users). After a crash reported by
1534 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1539 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1535
1540
1536 * IPython/ipmaker.py (make_IPython): fix small bug in the
1541 * IPython/ipmaker.py (make_IPython): fix small bug in the
1537 import_some parameter for multiple imports.
1542 import_some parameter for multiple imports.
1538
1543
1539 * IPython/iplib.py (ipmagic): simplified the interface of
1544 * IPython/iplib.py (ipmagic): simplified the interface of
1540 ipmagic() to take a single string argument, just as it would be
1545 ipmagic() to take a single string argument, just as it would be
1541 typed at the IPython cmd line.
1546 typed at the IPython cmd line.
1542 (ipalias): Added new ipalias() with an interface identical to
1547 (ipalias): Added new ipalias() with an interface identical to
1543 ipmagic(). This completes exposing a pure python interface to the
1548 ipmagic(). This completes exposing a pure python interface to the
1544 alias and magic system, which can be used in loops or more complex
1549 alias and magic system, which can be used in loops or more complex
1545 code where IPython's automatic line mangling is not active.
1550 code where IPython's automatic line mangling is not active.
1546
1551
1547 * IPython/genutils.py (timing): changed interface of timing to
1552 * IPython/genutils.py (timing): changed interface of timing to
1548 simply run code once, which is the most common case. timings()
1553 simply run code once, which is the most common case. timings()
1549 remains unchanged, for the cases where you want multiple runs.
1554 remains unchanged, for the cases where you want multiple runs.
1550
1555
1551 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1556 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1552 bug where Python2.2 crashes with exec'ing code which does not end
1557 bug where Python2.2 crashes with exec'ing code which does not end
1553 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1558 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1554 before.
1559 before.
1555
1560
1556 2004-12-10 Fernando Perez <fperez@colorado.edu>
1561 2004-12-10 Fernando Perez <fperez@colorado.edu>
1557
1562
1558 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1563 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1559 -t to -T, to accomodate the new -t flag in %run (the %run and
1564 -t to -T, to accomodate the new -t flag in %run (the %run and
1560 %prun options are kind of intermixed, and it's not easy to change
1565 %prun options are kind of intermixed, and it's not easy to change
1561 this with the limitations of python's getopt).
1566 this with the limitations of python's getopt).
1562
1567
1563 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1568 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1564 the execution of scripts. It's not as fine-tuned as timeit.py,
1569 the execution of scripts. It's not as fine-tuned as timeit.py,
1565 but it works from inside ipython (and under 2.2, which lacks
1570 but it works from inside ipython (and under 2.2, which lacks
1566 timeit.py). Optionally a number of runs > 1 can be given for
1571 timeit.py). Optionally a number of runs > 1 can be given for
1567 timing very short-running code.
1572 timing very short-running code.
1568
1573
1569 * IPython/genutils.py (uniq_stable): new routine which returns a
1574 * IPython/genutils.py (uniq_stable): new routine which returns a
1570 list of unique elements in any iterable, but in stable order of
1575 list of unique elements in any iterable, but in stable order of
1571 appearance. I needed this for the ultraTB fixes, and it's a handy
1576 appearance. I needed this for the ultraTB fixes, and it's a handy
1572 utility.
1577 utility.
1573
1578
1574 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1579 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1575 dotted names in Verbose exceptions. This had been broken since
1580 dotted names in Verbose exceptions. This had been broken since
1576 the very start, now x.y will properly be printed in a Verbose
1581 the very start, now x.y will properly be printed in a Verbose
1577 traceback, instead of x being shown and y appearing always as an
1582 traceback, instead of x being shown and y appearing always as an
1578 'undefined global'. Getting this to work was a bit tricky,
1583 'undefined global'. Getting this to work was a bit tricky,
1579 because by default python tokenizers are stateless. Saved by
1584 because by default python tokenizers are stateless. Saved by
1580 python's ability to easily add a bit of state to an arbitrary
1585 python's ability to easily add a bit of state to an arbitrary
1581 function (without needing to build a full-blown callable object).
1586 function (without needing to build a full-blown callable object).
1582
1587
1583 Also big cleanup of this code, which had horrendous runtime
1588 Also big cleanup of this code, which had horrendous runtime
1584 lookups of zillions of attributes for colorization. Moved all
1589 lookups of zillions of attributes for colorization. Moved all
1585 this code into a few templates, which make it cleaner and quicker.
1590 this code into a few templates, which make it cleaner and quicker.
1586
1591
1587 Printout quality was also improved for Verbose exceptions: one
1592 Printout quality was also improved for Verbose exceptions: one
1588 variable per line, and memory addresses are printed (this can be
1593 variable per line, and memory addresses are printed (this can be
1589 quite handy in nasty debugging situations, which is what Verbose
1594 quite handy in nasty debugging situations, which is what Verbose
1590 is for).
1595 is for).
1591
1596
1592 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1597 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1593 the command line as scripts to be loaded by embedded instances.
1598 the command line as scripts to be loaded by embedded instances.
1594 Doing so has the potential for an infinite recursion if there are
1599 Doing so has the potential for an infinite recursion if there are
1595 exceptions thrown in the process. This fixes a strange crash
1600 exceptions thrown in the process. This fixes a strange crash
1596 reported by Philippe MULLER <muller-AT-irit.fr>.
1601 reported by Philippe MULLER <muller-AT-irit.fr>.
1597
1602
1598 2004-12-09 Fernando Perez <fperez@colorado.edu>
1603 2004-12-09 Fernando Perez <fperez@colorado.edu>
1599
1604
1600 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1605 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1601 to reflect new names in matplotlib, which now expose the
1606 to reflect new names in matplotlib, which now expose the
1602 matlab-compatible interface via a pylab module instead of the
1607 matlab-compatible interface via a pylab module instead of the
1603 'matlab' name. The new code is backwards compatible, so users of
1608 'matlab' name. The new code is backwards compatible, so users of
1604 all matplotlib versions are OK. Patch by J. Hunter.
1609 all matplotlib versions are OK. Patch by J. Hunter.
1605
1610
1606 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1611 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1607 of __init__ docstrings for instances (class docstrings are already
1612 of __init__ docstrings for instances (class docstrings are already
1608 automatically printed). Instances with customized docstrings
1613 automatically printed). Instances with customized docstrings
1609 (indep. of the class) are also recognized and all 3 separate
1614 (indep. of the class) are also recognized and all 3 separate
1610 docstrings are printed (instance, class, constructor). After some
1615 docstrings are printed (instance, class, constructor). After some
1611 comments/suggestions by J. Hunter.
1616 comments/suggestions by J. Hunter.
1612
1617
1613 2004-12-05 Fernando Perez <fperez@colorado.edu>
1618 2004-12-05 Fernando Perez <fperez@colorado.edu>
1614
1619
1615 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1620 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1616 warnings when tab-completion fails and triggers an exception.
1621 warnings when tab-completion fails and triggers an exception.
1617
1622
1618 2004-12-03 Fernando Perez <fperez@colorado.edu>
1623 2004-12-03 Fernando Perez <fperez@colorado.edu>
1619
1624
1620 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1625 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1621 be triggered when using 'run -p'. An incorrect option flag was
1626 be triggered when using 'run -p'. An incorrect option flag was
1622 being set ('d' instead of 'D').
1627 being set ('d' instead of 'D').
1623 (manpage): fix missing escaped \- sign.
1628 (manpage): fix missing escaped \- sign.
1624
1629
1625 2004-11-30 *** Released version 0.6.5
1630 2004-11-30 *** Released version 0.6.5
1626
1631
1627 2004-11-30 Fernando Perez <fperez@colorado.edu>
1632 2004-11-30 Fernando Perez <fperez@colorado.edu>
1628
1633
1629 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1634 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1630 setting with -d option.
1635 setting with -d option.
1631
1636
1632 * setup.py (docfiles): Fix problem where the doc glob I was using
1637 * setup.py (docfiles): Fix problem where the doc glob I was using
1633 was COMPLETELY BROKEN. It was giving the right files by pure
1638 was COMPLETELY BROKEN. It was giving the right files by pure
1634 accident, but failed once I tried to include ipython.el. Note:
1639 accident, but failed once I tried to include ipython.el. Note:
1635 glob() does NOT allow you to do exclusion on multiple endings!
1640 glob() does NOT allow you to do exclusion on multiple endings!
1636
1641
1637 2004-11-29 Fernando Perez <fperez@colorado.edu>
1642 2004-11-29 Fernando Perez <fperez@colorado.edu>
1638
1643
1639 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1644 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1640 the manpage as the source. Better formatting & consistency.
1645 the manpage as the source. Better formatting & consistency.
1641
1646
1642 * IPython/Magic.py (magic_run): Added new -d option, to run
1647 * IPython/Magic.py (magic_run): Added new -d option, to run
1643 scripts under the control of the python pdb debugger. Note that
1648 scripts under the control of the python pdb debugger. Note that
1644 this required changing the %prun option -d to -D, to avoid a clash
1649 this required changing the %prun option -d to -D, to avoid a clash
1645 (since %run must pass options to %prun, and getopt is too dumb to
1650 (since %run must pass options to %prun, and getopt is too dumb to
1646 handle options with string values with embedded spaces). Thanks
1651 handle options with string values with embedded spaces). Thanks
1647 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1652 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1648 (magic_who_ls): added type matching to %who and %whos, so that one
1653 (magic_who_ls): added type matching to %who and %whos, so that one
1649 can filter their output to only include variables of certain
1654 can filter their output to only include variables of certain
1650 types. Another suggestion by Matthew.
1655 types. Another suggestion by Matthew.
1651 (magic_whos): Added memory summaries in kb and Mb for arrays.
1656 (magic_whos): Added memory summaries in kb and Mb for arrays.
1652 (magic_who): Improve formatting (break lines every 9 vars).
1657 (magic_who): Improve formatting (break lines every 9 vars).
1653
1658
1654 2004-11-28 Fernando Perez <fperez@colorado.edu>
1659 2004-11-28 Fernando Perez <fperez@colorado.edu>
1655
1660
1656 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1661 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1657 cache when empty lines were present.
1662 cache when empty lines were present.
1658
1663
1659 2004-11-24 Fernando Perez <fperez@colorado.edu>
1664 2004-11-24 Fernando Perez <fperez@colorado.edu>
1660
1665
1661 * IPython/usage.py (__doc__): document the re-activated threading
1666 * IPython/usage.py (__doc__): document the re-activated threading
1662 options for WX and GTK.
1667 options for WX and GTK.
1663
1668
1664 2004-11-23 Fernando Perez <fperez@colorado.edu>
1669 2004-11-23 Fernando Perez <fperez@colorado.edu>
1665
1670
1666 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1671 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1667 the -wthread and -gthread options, along with a new -tk one to try
1672 the -wthread and -gthread options, along with a new -tk one to try
1668 and coordinate Tk threading with wx/gtk. The tk support is very
1673 and coordinate Tk threading with wx/gtk. The tk support is very
1669 platform dependent, since it seems to require Tcl and Tk to be
1674 platform dependent, since it seems to require Tcl and Tk to be
1670 built with threads (Fedora1/2 appears NOT to have it, but in
1675 built with threads (Fedora1/2 appears NOT to have it, but in
1671 Prabhu's Debian boxes it works OK). But even with some Tk
1676 Prabhu's Debian boxes it works OK). But even with some Tk
1672 limitations, this is a great improvement.
1677 limitations, this is a great improvement.
1673
1678
1674 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1679 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1675 info in user prompts. Patch by Prabhu.
1680 info in user prompts. Patch by Prabhu.
1676
1681
1677 2004-11-18 Fernando Perez <fperez@colorado.edu>
1682 2004-11-18 Fernando Perez <fperez@colorado.edu>
1678
1683
1679 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1684 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1680 EOFErrors and bail, to avoid infinite loops if a non-terminating
1685 EOFErrors and bail, to avoid infinite loops if a non-terminating
1681 file is fed into ipython. Patch submitted in issue 19 by user,
1686 file is fed into ipython. Patch submitted in issue 19 by user,
1682 many thanks.
1687 many thanks.
1683
1688
1684 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1689 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1685 autoquote/parens in continuation prompts, which can cause lots of
1690 autoquote/parens in continuation prompts, which can cause lots of
1686 problems. Closes roundup issue 20.
1691 problems. Closes roundup issue 20.
1687
1692
1688 2004-11-17 Fernando Perez <fperez@colorado.edu>
1693 2004-11-17 Fernando Perez <fperez@colorado.edu>
1689
1694
1690 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1695 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1691 reported as debian bug #280505. I'm not sure my local changelog
1696 reported as debian bug #280505. I'm not sure my local changelog
1692 entry has the proper debian format (Jack?).
1697 entry has the proper debian format (Jack?).
1693
1698
1694 2004-11-08 *** Released version 0.6.4
1699 2004-11-08 *** Released version 0.6.4
1695
1700
1696 2004-11-08 Fernando Perez <fperez@colorado.edu>
1701 2004-11-08 Fernando Perez <fperez@colorado.edu>
1697
1702
1698 * IPython/iplib.py (init_readline): Fix exit message for Windows
1703 * IPython/iplib.py (init_readline): Fix exit message for Windows
1699 when readline is active. Thanks to a report by Eric Jones
1704 when readline is active. Thanks to a report by Eric Jones
1700 <eric-AT-enthought.com>.
1705 <eric-AT-enthought.com>.
1701
1706
1702 2004-11-07 Fernando Perez <fperez@colorado.edu>
1707 2004-11-07 Fernando Perez <fperez@colorado.edu>
1703
1708
1704 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1709 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1705 sometimes seen by win2k/cygwin users.
1710 sometimes seen by win2k/cygwin users.
1706
1711
1707 2004-11-06 Fernando Perez <fperez@colorado.edu>
1712 2004-11-06 Fernando Perez <fperez@colorado.edu>
1708
1713
1709 * IPython/iplib.py (interact): Change the handling of %Exit from
1714 * IPython/iplib.py (interact): Change the handling of %Exit from
1710 trying to propagate a SystemExit to an internal ipython flag.
1715 trying to propagate a SystemExit to an internal ipython flag.
1711 This is less elegant than using Python's exception mechanism, but
1716 This is less elegant than using Python's exception mechanism, but
1712 I can't get that to work reliably with threads, so under -pylab
1717 I can't get that to work reliably with threads, so under -pylab
1713 %Exit was hanging IPython. Cross-thread exception handling is
1718 %Exit was hanging IPython. Cross-thread exception handling is
1714 really a bitch. Thaks to a bug report by Stephen Walton
1719 really a bitch. Thaks to a bug report by Stephen Walton
1715 <stephen.walton-AT-csun.edu>.
1720 <stephen.walton-AT-csun.edu>.
1716
1721
1717 2004-11-04 Fernando Perez <fperez@colorado.edu>
1722 2004-11-04 Fernando Perez <fperez@colorado.edu>
1718
1723
1719 * IPython/iplib.py (raw_input_original): store a pointer to the
1724 * IPython/iplib.py (raw_input_original): store a pointer to the
1720 true raw_input to harden against code which can modify it
1725 true raw_input to harden against code which can modify it
1721 (wx.py.PyShell does this and would otherwise crash ipython).
1726 (wx.py.PyShell does this and would otherwise crash ipython).
1722 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1727 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1723
1728
1724 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1729 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1725 Ctrl-C problem, which does not mess up the input line.
1730 Ctrl-C problem, which does not mess up the input line.
1726
1731
1727 2004-11-03 Fernando Perez <fperez@colorado.edu>
1732 2004-11-03 Fernando Perez <fperez@colorado.edu>
1728
1733
1729 * IPython/Release.py: Changed licensing to BSD, in all files.
1734 * IPython/Release.py: Changed licensing to BSD, in all files.
1730 (name): lowercase name for tarball/RPM release.
1735 (name): lowercase name for tarball/RPM release.
1731
1736
1732 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1737 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1733 use throughout ipython.
1738 use throughout ipython.
1734
1739
1735 * IPython/Magic.py (Magic._ofind): Switch to using the new
1740 * IPython/Magic.py (Magic._ofind): Switch to using the new
1736 OInspect.getdoc() function.
1741 OInspect.getdoc() function.
1737
1742
1738 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1743 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1739 of the line currently being canceled via Ctrl-C. It's extremely
1744 of the line currently being canceled via Ctrl-C. It's extremely
1740 ugly, but I don't know how to do it better (the problem is one of
1745 ugly, but I don't know how to do it better (the problem is one of
1741 handling cross-thread exceptions).
1746 handling cross-thread exceptions).
1742
1747
1743 2004-10-28 Fernando Perez <fperez@colorado.edu>
1748 2004-10-28 Fernando Perez <fperez@colorado.edu>
1744
1749
1745 * IPython/Shell.py (signal_handler): add signal handlers to trap
1750 * IPython/Shell.py (signal_handler): add signal handlers to trap
1746 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1751 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1747 report by Francesc Alted.
1752 report by Francesc Alted.
1748
1753
1749 2004-10-21 Fernando Perez <fperez@colorado.edu>
1754 2004-10-21 Fernando Perez <fperez@colorado.edu>
1750
1755
1751 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1756 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1752 to % for pysh syntax extensions.
1757 to % for pysh syntax extensions.
1753
1758
1754 2004-10-09 Fernando Perez <fperez@colorado.edu>
1759 2004-10-09 Fernando Perez <fperez@colorado.edu>
1755
1760
1756 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1761 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1757 arrays to print a more useful summary, without calling str(arr).
1762 arrays to print a more useful summary, without calling str(arr).
1758 This avoids the problem of extremely lengthy computations which
1763 This avoids the problem of extremely lengthy computations which
1759 occur if arr is large, and appear to the user as a system lockup
1764 occur if arr is large, and appear to the user as a system lockup
1760 with 100% cpu activity. After a suggestion by Kristian Sandberg
1765 with 100% cpu activity. After a suggestion by Kristian Sandberg
1761 <Kristian.Sandberg@colorado.edu>.
1766 <Kristian.Sandberg@colorado.edu>.
1762 (Magic.__init__): fix bug in global magic escapes not being
1767 (Magic.__init__): fix bug in global magic escapes not being
1763 correctly set.
1768 correctly set.
1764
1769
1765 2004-10-08 Fernando Perez <fperez@colorado.edu>
1770 2004-10-08 Fernando Perez <fperez@colorado.edu>
1766
1771
1767 * IPython/Magic.py (__license__): change to absolute imports of
1772 * IPython/Magic.py (__license__): change to absolute imports of
1768 ipython's own internal packages, to start adapting to the absolute
1773 ipython's own internal packages, to start adapting to the absolute
1769 import requirement of PEP-328.
1774 import requirement of PEP-328.
1770
1775
1771 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1776 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1772 files, and standardize author/license marks through the Release
1777 files, and standardize author/license marks through the Release
1773 module instead of having per/file stuff (except for files with
1778 module instead of having per/file stuff (except for files with
1774 particular licenses, like the MIT/PSF-licensed codes).
1779 particular licenses, like the MIT/PSF-licensed codes).
1775
1780
1776 * IPython/Debugger.py: remove dead code for python 2.1
1781 * IPython/Debugger.py: remove dead code for python 2.1
1777
1782
1778 2004-10-04 Fernando Perez <fperez@colorado.edu>
1783 2004-10-04 Fernando Perez <fperez@colorado.edu>
1779
1784
1780 * IPython/iplib.py (ipmagic): New function for accessing magics
1785 * IPython/iplib.py (ipmagic): New function for accessing magics
1781 via a normal python function call.
1786 via a normal python function call.
1782
1787
1783 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1788 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1784 from '@' to '%', to accomodate the new @decorator syntax of python
1789 from '@' to '%', to accomodate the new @decorator syntax of python
1785 2.4.
1790 2.4.
1786
1791
1787 2004-09-29 Fernando Perez <fperez@colorado.edu>
1792 2004-09-29 Fernando Perez <fperez@colorado.edu>
1788
1793
1789 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1794 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1790 matplotlib.use to prevent running scripts which try to switch
1795 matplotlib.use to prevent running scripts which try to switch
1791 interactive backends from within ipython. This will just crash
1796 interactive backends from within ipython. This will just crash
1792 the python interpreter, so we can't allow it (but a detailed error
1797 the python interpreter, so we can't allow it (but a detailed error
1793 is given to the user).
1798 is given to the user).
1794
1799
1795 2004-09-28 Fernando Perez <fperez@colorado.edu>
1800 2004-09-28 Fernando Perez <fperez@colorado.edu>
1796
1801
1797 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1802 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1798 matplotlib-related fixes so that using @run with non-matplotlib
1803 matplotlib-related fixes so that using @run with non-matplotlib
1799 scripts doesn't pop up spurious plot windows. This requires
1804 scripts doesn't pop up spurious plot windows. This requires
1800 matplotlib >= 0.63, where I had to make some changes as well.
1805 matplotlib >= 0.63, where I had to make some changes as well.
1801
1806
1802 * IPython/ipmaker.py (make_IPython): update version requirement to
1807 * IPython/ipmaker.py (make_IPython): update version requirement to
1803 python 2.2.
1808 python 2.2.
1804
1809
1805 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1810 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1806 banner arg for embedded customization.
1811 banner arg for embedded customization.
1807
1812
1808 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1813 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1809 explicit uses of __IP as the IPython's instance name. Now things
1814 explicit uses of __IP as the IPython's instance name. Now things
1810 are properly handled via the shell.name value. The actual code
1815 are properly handled via the shell.name value. The actual code
1811 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1816 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1812 is much better than before. I'll clean things completely when the
1817 is much better than before. I'll clean things completely when the
1813 magic stuff gets a real overhaul.
1818 magic stuff gets a real overhaul.
1814
1819
1815 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1820 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1816 minor changes to debian dir.
1821 minor changes to debian dir.
1817
1822
1818 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1823 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1819 pointer to the shell itself in the interactive namespace even when
1824 pointer to the shell itself in the interactive namespace even when
1820 a user-supplied dict is provided. This is needed for embedding
1825 a user-supplied dict is provided. This is needed for embedding
1821 purposes (found by tests with Michel Sanner).
1826 purposes (found by tests with Michel Sanner).
1822
1827
1823 2004-09-27 Fernando Perez <fperez@colorado.edu>
1828 2004-09-27 Fernando Perez <fperez@colorado.edu>
1824
1829
1825 * IPython/UserConfig/ipythonrc: remove []{} from
1830 * IPython/UserConfig/ipythonrc: remove []{} from
1826 readline_remove_delims, so that things like [modname.<TAB> do
1831 readline_remove_delims, so that things like [modname.<TAB> do
1827 proper completion. This disables [].TAB, but that's a less common
1832 proper completion. This disables [].TAB, but that's a less common
1828 case than module names in list comprehensions, for example.
1833 case than module names in list comprehensions, for example.
1829 Thanks to a report by Andrea Riciputi.
1834 Thanks to a report by Andrea Riciputi.
1830
1835
1831 2004-09-09 Fernando Perez <fperez@colorado.edu>
1836 2004-09-09 Fernando Perez <fperez@colorado.edu>
1832
1837
1833 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1838 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1834 blocking problems in win32 and osx. Fix by John.
1839 blocking problems in win32 and osx. Fix by John.
1835
1840
1836 2004-09-08 Fernando Perez <fperez@colorado.edu>
1841 2004-09-08 Fernando Perez <fperez@colorado.edu>
1837
1842
1838 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1843 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1839 for Win32 and OSX. Fix by John Hunter.
1844 for Win32 and OSX. Fix by John Hunter.
1840
1845
1841 2004-08-30 *** Released version 0.6.3
1846 2004-08-30 *** Released version 0.6.3
1842
1847
1843 2004-08-30 Fernando Perez <fperez@colorado.edu>
1848 2004-08-30 Fernando Perez <fperez@colorado.edu>
1844
1849
1845 * setup.py (isfile): Add manpages to list of dependent files to be
1850 * setup.py (isfile): Add manpages to list of dependent files to be
1846 updated.
1851 updated.
1847
1852
1848 2004-08-27 Fernando Perez <fperez@colorado.edu>
1853 2004-08-27 Fernando Perez <fperez@colorado.edu>
1849
1854
1850 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1855 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1851 for now. They don't really work with standalone WX/GTK code
1856 for now. They don't really work with standalone WX/GTK code
1852 (though matplotlib IS working fine with both of those backends).
1857 (though matplotlib IS working fine with both of those backends).
1853 This will neeed much more testing. I disabled most things with
1858 This will neeed much more testing. I disabled most things with
1854 comments, so turning it back on later should be pretty easy.
1859 comments, so turning it back on later should be pretty easy.
1855
1860
1856 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1861 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1857 autocalling of expressions like r'foo', by modifying the line
1862 autocalling of expressions like r'foo', by modifying the line
1858 split regexp. Closes
1863 split regexp. Closes
1859 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1864 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1860 Riley <ipythonbugs-AT-sabi.net>.
1865 Riley <ipythonbugs-AT-sabi.net>.
1861 (InteractiveShell.mainloop): honor --nobanner with banner
1866 (InteractiveShell.mainloop): honor --nobanner with banner
1862 extensions.
1867 extensions.
1863
1868
1864 * IPython/Shell.py: Significant refactoring of all classes, so
1869 * IPython/Shell.py: Significant refactoring of all classes, so
1865 that we can really support ALL matplotlib backends and threading
1870 that we can really support ALL matplotlib backends and threading
1866 models (John spotted a bug with Tk which required this). Now we
1871 models (John spotted a bug with Tk which required this). Now we
1867 should support single-threaded, WX-threads and GTK-threads, both
1872 should support single-threaded, WX-threads and GTK-threads, both
1868 for generic code and for matplotlib.
1873 for generic code and for matplotlib.
1869
1874
1870 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1875 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1871 -pylab, to simplify things for users. Will also remove the pylab
1876 -pylab, to simplify things for users. Will also remove the pylab
1872 profile, since now all of matplotlib configuration is directly
1877 profile, since now all of matplotlib configuration is directly
1873 handled here. This also reduces startup time.
1878 handled here. This also reduces startup time.
1874
1879
1875 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1880 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1876 shell wasn't being correctly called. Also in IPShellWX.
1881 shell wasn't being correctly called. Also in IPShellWX.
1877
1882
1878 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1883 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1879 fine-tune banner.
1884 fine-tune banner.
1880
1885
1881 * IPython/numutils.py (spike): Deprecate these spike functions,
1886 * IPython/numutils.py (spike): Deprecate these spike functions,
1882 delete (long deprecated) gnuplot_exec handler.
1887 delete (long deprecated) gnuplot_exec handler.
1883
1888
1884 2004-08-26 Fernando Perez <fperez@colorado.edu>
1889 2004-08-26 Fernando Perez <fperez@colorado.edu>
1885
1890
1886 * ipython.1: Update for threading options, plus some others which
1891 * ipython.1: Update for threading options, plus some others which
1887 were missing.
1892 were missing.
1888
1893
1889 * IPython/ipmaker.py (__call__): Added -wthread option for
1894 * IPython/ipmaker.py (__call__): Added -wthread option for
1890 wxpython thread handling. Make sure threading options are only
1895 wxpython thread handling. Make sure threading options are only
1891 valid at the command line.
1896 valid at the command line.
1892
1897
1893 * scripts/ipython: moved shell selection into a factory function
1898 * scripts/ipython: moved shell selection into a factory function
1894 in Shell.py, to keep the starter script to a minimum.
1899 in Shell.py, to keep the starter script to a minimum.
1895
1900
1896 2004-08-25 Fernando Perez <fperez@colorado.edu>
1901 2004-08-25 Fernando Perez <fperez@colorado.edu>
1897
1902
1898 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1903 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1899 John. Along with some recent changes he made to matplotlib, the
1904 John. Along with some recent changes he made to matplotlib, the
1900 next versions of both systems should work very well together.
1905 next versions of both systems should work very well together.
1901
1906
1902 2004-08-24 Fernando Perez <fperez@colorado.edu>
1907 2004-08-24 Fernando Perez <fperez@colorado.edu>
1903
1908
1904 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1909 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1905 tried to switch the profiling to using hotshot, but I'm getting
1910 tried to switch the profiling to using hotshot, but I'm getting
1906 strange errors from prof.runctx() there. I may be misreading the
1911 strange errors from prof.runctx() there. I may be misreading the
1907 docs, but it looks weird. For now the profiling code will
1912 docs, but it looks weird. For now the profiling code will
1908 continue to use the standard profiler.
1913 continue to use the standard profiler.
1909
1914
1910 2004-08-23 Fernando Perez <fperez@colorado.edu>
1915 2004-08-23 Fernando Perez <fperez@colorado.edu>
1911
1916
1912 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1917 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1913 threaded shell, by John Hunter. It's not quite ready yet, but
1918 threaded shell, by John Hunter. It's not quite ready yet, but
1914 close.
1919 close.
1915
1920
1916 2004-08-22 Fernando Perez <fperez@colorado.edu>
1921 2004-08-22 Fernando Perez <fperez@colorado.edu>
1917
1922
1918 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1923 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1919 in Magic and ultraTB.
1924 in Magic and ultraTB.
1920
1925
1921 * ipython.1: document threading options in manpage.
1926 * ipython.1: document threading options in manpage.
1922
1927
1923 * scripts/ipython: Changed name of -thread option to -gthread,
1928 * scripts/ipython: Changed name of -thread option to -gthread,
1924 since this is GTK specific. I want to leave the door open for a
1929 since this is GTK specific. I want to leave the door open for a
1925 -wthread option for WX, which will most likely be necessary. This
1930 -wthread option for WX, which will most likely be necessary. This
1926 change affects usage and ipmaker as well.
1931 change affects usage and ipmaker as well.
1927
1932
1928 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1933 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1929 handle the matplotlib shell issues. Code by John Hunter
1934 handle the matplotlib shell issues. Code by John Hunter
1930 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1935 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1931 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1936 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1932 broken (and disabled for end users) for now, but it puts the
1937 broken (and disabled for end users) for now, but it puts the
1933 infrastructure in place.
1938 infrastructure in place.
1934
1939
1935 2004-08-21 Fernando Perez <fperez@colorado.edu>
1940 2004-08-21 Fernando Perez <fperez@colorado.edu>
1936
1941
1937 * ipythonrc-pylab: Add matplotlib support.
1942 * ipythonrc-pylab: Add matplotlib support.
1938
1943
1939 * matplotlib_config.py: new files for matplotlib support, part of
1944 * matplotlib_config.py: new files for matplotlib support, part of
1940 the pylab profile.
1945 the pylab profile.
1941
1946
1942 * IPython/usage.py (__doc__): documented the threading options.
1947 * IPython/usage.py (__doc__): documented the threading options.
1943
1948
1944 2004-08-20 Fernando Perez <fperez@colorado.edu>
1949 2004-08-20 Fernando Perez <fperez@colorado.edu>
1945
1950
1946 * ipython: Modified the main calling routine to handle the -thread
1951 * ipython: Modified the main calling routine to handle the -thread
1947 and -mpthread options. This needs to be done as a top-level hack,
1952 and -mpthread options. This needs to be done as a top-level hack,
1948 because it determines which class to instantiate for IPython
1953 because it determines which class to instantiate for IPython
1949 itself.
1954 itself.
1950
1955
1951 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1956 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1952 classes to support multithreaded GTK operation without blocking,
1957 classes to support multithreaded GTK operation without blocking,
1953 and matplotlib with all backends. This is a lot of still very
1958 and matplotlib with all backends. This is a lot of still very
1954 experimental code, and threads are tricky. So it may still have a
1959 experimental code, and threads are tricky. So it may still have a
1955 few rough edges... This code owes a lot to
1960 few rough edges... This code owes a lot to
1956 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1961 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1957 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1962 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1958 to John Hunter for all the matplotlib work.
1963 to John Hunter for all the matplotlib work.
1959
1964
1960 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1965 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1961 options for gtk thread and matplotlib support.
1966 options for gtk thread and matplotlib support.
1962
1967
1963 2004-08-16 Fernando Perez <fperez@colorado.edu>
1968 2004-08-16 Fernando Perez <fperez@colorado.edu>
1964
1969
1965 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1970 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1966 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1971 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1967 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1972 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1968
1973
1969 2004-08-11 Fernando Perez <fperez@colorado.edu>
1974 2004-08-11 Fernando Perez <fperez@colorado.edu>
1970
1975
1971 * setup.py (isfile): Fix build so documentation gets updated for
1976 * setup.py (isfile): Fix build so documentation gets updated for
1972 rpms (it was only done for .tgz builds).
1977 rpms (it was only done for .tgz builds).
1973
1978
1974 2004-08-10 Fernando Perez <fperez@colorado.edu>
1979 2004-08-10 Fernando Perez <fperez@colorado.edu>
1975
1980
1976 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1981 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1977
1982
1978 * iplib.py : Silence syntax error exceptions in tab-completion.
1983 * iplib.py : Silence syntax error exceptions in tab-completion.
1979
1984
1980 2004-08-05 Fernando Perez <fperez@colorado.edu>
1985 2004-08-05 Fernando Perez <fperez@colorado.edu>
1981
1986
1982 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1987 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1983 'color off' mark for continuation prompts. This was causing long
1988 'color off' mark for continuation prompts. This was causing long
1984 continuation lines to mis-wrap.
1989 continuation lines to mis-wrap.
1985
1990
1986 2004-08-01 Fernando Perez <fperez@colorado.edu>
1991 2004-08-01 Fernando Perez <fperez@colorado.edu>
1987
1992
1988 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1993 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1989 for building ipython to be a parameter. All this is necessary
1994 for building ipython to be a parameter. All this is necessary
1990 right now to have a multithreaded version, but this insane
1995 right now to have a multithreaded version, but this insane
1991 non-design will be cleaned up soon. For now, it's a hack that
1996 non-design will be cleaned up soon. For now, it's a hack that
1992 works.
1997 works.
1993
1998
1994 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1999 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1995 args in various places. No bugs so far, but it's a dangerous
2000 args in various places. No bugs so far, but it's a dangerous
1996 practice.
2001 practice.
1997
2002
1998 2004-07-31 Fernando Perez <fperez@colorado.edu>
2003 2004-07-31 Fernando Perez <fperez@colorado.edu>
1999
2004
2000 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2005 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2001 fix completion of files with dots in their names under most
2006 fix completion of files with dots in their names under most
2002 profiles (pysh was OK because the completion order is different).
2007 profiles (pysh was OK because the completion order is different).
2003
2008
2004 2004-07-27 Fernando Perez <fperez@colorado.edu>
2009 2004-07-27 Fernando Perez <fperez@colorado.edu>
2005
2010
2006 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2011 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2007 keywords manually, b/c the one in keyword.py was removed in python
2012 keywords manually, b/c the one in keyword.py was removed in python
2008 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2013 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2009 This is NOT a bug under python 2.3 and earlier.
2014 This is NOT a bug under python 2.3 and earlier.
2010
2015
2011 2004-07-26 Fernando Perez <fperez@colorado.edu>
2016 2004-07-26 Fernando Perez <fperez@colorado.edu>
2012
2017
2013 * IPython/ultraTB.py (VerboseTB.text): Add another
2018 * IPython/ultraTB.py (VerboseTB.text): Add another
2014 linecache.checkcache() call to try to prevent inspect.py from
2019 linecache.checkcache() call to try to prevent inspect.py from
2015 crashing under python 2.3. I think this fixes
2020 crashing under python 2.3. I think this fixes
2016 http://www.scipy.net/roundup/ipython/issue17.
2021 http://www.scipy.net/roundup/ipython/issue17.
2017
2022
2018 2004-07-26 *** Released version 0.6.2
2023 2004-07-26 *** Released version 0.6.2
2019
2024
2020 2004-07-26 Fernando Perez <fperez@colorado.edu>
2025 2004-07-26 Fernando Perez <fperez@colorado.edu>
2021
2026
2022 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2027 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2023 fail for any number.
2028 fail for any number.
2024 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2029 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2025 empty bookmarks.
2030 empty bookmarks.
2026
2031
2027 2004-07-26 *** Released version 0.6.1
2032 2004-07-26 *** Released version 0.6.1
2028
2033
2029 2004-07-26 Fernando Perez <fperez@colorado.edu>
2034 2004-07-26 Fernando Perez <fperez@colorado.edu>
2030
2035
2031 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2036 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2032
2037
2033 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2038 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2034 escaping '()[]{}' in filenames.
2039 escaping '()[]{}' in filenames.
2035
2040
2036 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2041 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2037 Python 2.2 users who lack a proper shlex.split.
2042 Python 2.2 users who lack a proper shlex.split.
2038
2043
2039 2004-07-19 Fernando Perez <fperez@colorado.edu>
2044 2004-07-19 Fernando Perez <fperez@colorado.edu>
2040
2045
2041 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2046 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2042 for reading readline's init file. I follow the normal chain:
2047 for reading readline's init file. I follow the normal chain:
2043 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2048 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2044 report by Mike Heeter. This closes
2049 report by Mike Heeter. This closes
2045 http://www.scipy.net/roundup/ipython/issue16.
2050 http://www.scipy.net/roundup/ipython/issue16.
2046
2051
2047 2004-07-18 Fernando Perez <fperez@colorado.edu>
2052 2004-07-18 Fernando Perez <fperez@colorado.edu>
2048
2053
2049 * IPython/iplib.py (__init__): Add better handling of '\' under
2054 * IPython/iplib.py (__init__): Add better handling of '\' under
2050 Win32 for filenames. After a patch by Ville.
2055 Win32 for filenames. After a patch by Ville.
2051
2056
2052 2004-07-17 Fernando Perez <fperez@colorado.edu>
2057 2004-07-17 Fernando Perez <fperez@colorado.edu>
2053
2058
2054 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2059 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2055 autocalling would be triggered for 'foo is bar' if foo is
2060 autocalling would be triggered for 'foo is bar' if foo is
2056 callable. I also cleaned up the autocall detection code to use a
2061 callable. I also cleaned up the autocall detection code to use a
2057 regexp, which is faster. Bug reported by Alexander Schmolck.
2062 regexp, which is faster. Bug reported by Alexander Schmolck.
2058
2063
2059 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2064 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2060 '?' in them would confuse the help system. Reported by Alex
2065 '?' in them would confuse the help system. Reported by Alex
2061 Schmolck.
2066 Schmolck.
2062
2067
2063 2004-07-16 Fernando Perez <fperez@colorado.edu>
2068 2004-07-16 Fernando Perez <fperez@colorado.edu>
2064
2069
2065 * IPython/GnuplotInteractive.py (__all__): added plot2.
2070 * IPython/GnuplotInteractive.py (__all__): added plot2.
2066
2071
2067 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2072 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2068 plotting dictionaries, lists or tuples of 1d arrays.
2073 plotting dictionaries, lists or tuples of 1d arrays.
2069
2074
2070 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2075 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2071 optimizations.
2076 optimizations.
2072
2077
2073 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2078 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2074 the information which was there from Janko's original IPP code:
2079 the information which was there from Janko's original IPP code:
2075
2080
2076 03.05.99 20:53 porto.ifm.uni-kiel.de
2081 03.05.99 20:53 porto.ifm.uni-kiel.de
2077 --Started changelog.
2082 --Started changelog.
2078 --make clear do what it say it does
2083 --make clear do what it say it does
2079 --added pretty output of lines from inputcache
2084 --added pretty output of lines from inputcache
2080 --Made Logger a mixin class, simplifies handling of switches
2085 --Made Logger a mixin class, simplifies handling of switches
2081 --Added own completer class. .string<TAB> expands to last history
2086 --Added own completer class. .string<TAB> expands to last history
2082 line which starts with string. The new expansion is also present
2087 line which starts with string. The new expansion is also present
2083 with Ctrl-r from the readline library. But this shows, who this
2088 with Ctrl-r from the readline library. But this shows, who this
2084 can be done for other cases.
2089 can be done for other cases.
2085 --Added convention that all shell functions should accept a
2090 --Added convention that all shell functions should accept a
2086 parameter_string This opens the door for different behaviour for
2091 parameter_string This opens the door for different behaviour for
2087 each function. @cd is a good example of this.
2092 each function. @cd is a good example of this.
2088
2093
2089 04.05.99 12:12 porto.ifm.uni-kiel.de
2094 04.05.99 12:12 porto.ifm.uni-kiel.de
2090 --added logfile rotation
2095 --added logfile rotation
2091 --added new mainloop method which freezes first the namespace
2096 --added new mainloop method which freezes first the namespace
2092
2097
2093 07.05.99 21:24 porto.ifm.uni-kiel.de
2098 07.05.99 21:24 porto.ifm.uni-kiel.de
2094 --added the docreader classes. Now there is a help system.
2099 --added the docreader classes. Now there is a help system.
2095 -This is only a first try. Currently it's not easy to put new
2100 -This is only a first try. Currently it's not easy to put new
2096 stuff in the indices. But this is the way to go. Info would be
2101 stuff in the indices. But this is the way to go. Info would be
2097 better, but HTML is every where and not everybody has an info
2102 better, but HTML is every where and not everybody has an info
2098 system installed and it's not so easy to change html-docs to info.
2103 system installed and it's not so easy to change html-docs to info.
2099 --added global logfile option
2104 --added global logfile option
2100 --there is now a hook for object inspection method pinfo needs to
2105 --there is now a hook for object inspection method pinfo needs to
2101 be provided for this. Can be reached by two '??'.
2106 be provided for this. Can be reached by two '??'.
2102
2107
2103 08.05.99 20:51 porto.ifm.uni-kiel.de
2108 08.05.99 20:51 porto.ifm.uni-kiel.de
2104 --added a README
2109 --added a README
2105 --bug in rc file. Something has changed so functions in the rc
2110 --bug in rc file. Something has changed so functions in the rc
2106 file need to reference the shell and not self. Not clear if it's a
2111 file need to reference the shell and not self. Not clear if it's a
2107 bug or feature.
2112 bug or feature.
2108 --changed rc file for new behavior
2113 --changed rc file for new behavior
2109
2114
2110 2004-07-15 Fernando Perez <fperez@colorado.edu>
2115 2004-07-15 Fernando Perez <fperez@colorado.edu>
2111
2116
2112 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2117 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2113 cache was falling out of sync in bizarre manners when multi-line
2118 cache was falling out of sync in bizarre manners when multi-line
2114 input was present. Minor optimizations and cleanup.
2119 input was present. Minor optimizations and cleanup.
2115
2120
2116 (Logger): Remove old Changelog info for cleanup. This is the
2121 (Logger): Remove old Changelog info for cleanup. This is the
2117 information which was there from Janko's original code:
2122 information which was there from Janko's original code:
2118
2123
2119 Changes to Logger: - made the default log filename a parameter
2124 Changes to Logger: - made the default log filename a parameter
2120
2125
2121 - put a check for lines beginning with !@? in log(). Needed
2126 - put a check for lines beginning with !@? in log(). Needed
2122 (even if the handlers properly log their lines) for mid-session
2127 (even if the handlers properly log their lines) for mid-session
2123 logging activation to work properly. Without this, lines logged
2128 logging activation to work properly. Without this, lines logged
2124 in mid session, which get read from the cache, would end up
2129 in mid session, which get read from the cache, would end up
2125 'bare' (with !@? in the open) in the log. Now they are caught
2130 'bare' (with !@? in the open) in the log. Now they are caught
2126 and prepended with a #.
2131 and prepended with a #.
2127
2132
2128 * IPython/iplib.py (InteractiveShell.init_readline): added check
2133 * IPython/iplib.py (InteractiveShell.init_readline): added check
2129 in case MagicCompleter fails to be defined, so we don't crash.
2134 in case MagicCompleter fails to be defined, so we don't crash.
2130
2135
2131 2004-07-13 Fernando Perez <fperez@colorado.edu>
2136 2004-07-13 Fernando Perez <fperez@colorado.edu>
2132
2137
2133 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2138 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2134 of EPS if the requested filename ends in '.eps'.
2139 of EPS if the requested filename ends in '.eps'.
2135
2140
2136 2004-07-04 Fernando Perez <fperez@colorado.edu>
2141 2004-07-04 Fernando Perez <fperez@colorado.edu>
2137
2142
2138 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2143 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2139 escaping of quotes when calling the shell.
2144 escaping of quotes when calling the shell.
2140
2145
2141 2004-07-02 Fernando Perez <fperez@colorado.edu>
2146 2004-07-02 Fernando Perez <fperez@colorado.edu>
2142
2147
2143 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2148 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2144 gettext not working because we were clobbering '_'. Fixes
2149 gettext not working because we were clobbering '_'. Fixes
2145 http://www.scipy.net/roundup/ipython/issue6.
2150 http://www.scipy.net/roundup/ipython/issue6.
2146
2151
2147 2004-07-01 Fernando Perez <fperez@colorado.edu>
2152 2004-07-01 Fernando Perez <fperez@colorado.edu>
2148
2153
2149 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2154 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2150 into @cd. Patch by Ville.
2155 into @cd. Patch by Ville.
2151
2156
2152 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2157 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2153 new function to store things after ipmaker runs. Patch by Ville.
2158 new function to store things after ipmaker runs. Patch by Ville.
2154 Eventually this will go away once ipmaker is removed and the class
2159 Eventually this will go away once ipmaker is removed and the class
2155 gets cleaned up, but for now it's ok. Key functionality here is
2160 gets cleaned up, but for now it's ok. Key functionality here is
2156 the addition of the persistent storage mechanism, a dict for
2161 the addition of the persistent storage mechanism, a dict for
2157 keeping data across sessions (for now just bookmarks, but more can
2162 keeping data across sessions (for now just bookmarks, but more can
2158 be implemented later).
2163 be implemented later).
2159
2164
2160 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2165 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2161 persistent across sections. Patch by Ville, I modified it
2166 persistent across sections. Patch by Ville, I modified it
2162 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2167 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2163 added a '-l' option to list all bookmarks.
2168 added a '-l' option to list all bookmarks.
2164
2169
2165 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2170 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2166 center for cleanup. Registered with atexit.register(). I moved
2171 center for cleanup. Registered with atexit.register(). I moved
2167 here the old exit_cleanup(). After a patch by Ville.
2172 here the old exit_cleanup(). After a patch by Ville.
2168
2173
2169 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2174 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2170 characters in the hacked shlex_split for python 2.2.
2175 characters in the hacked shlex_split for python 2.2.
2171
2176
2172 * IPython/iplib.py (file_matches): more fixes to filenames with
2177 * IPython/iplib.py (file_matches): more fixes to filenames with
2173 whitespace in them. It's not perfect, but limitations in python's
2178 whitespace in them. It's not perfect, but limitations in python's
2174 readline make it impossible to go further.
2179 readline make it impossible to go further.
2175
2180
2176 2004-06-29 Fernando Perez <fperez@colorado.edu>
2181 2004-06-29 Fernando Perez <fperez@colorado.edu>
2177
2182
2178 * IPython/iplib.py (file_matches): escape whitespace correctly in
2183 * IPython/iplib.py (file_matches): escape whitespace correctly in
2179 filename completions. Bug reported by Ville.
2184 filename completions. Bug reported by Ville.
2180
2185
2181 2004-06-28 Fernando Perez <fperez@colorado.edu>
2186 2004-06-28 Fernando Perez <fperez@colorado.edu>
2182
2187
2183 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2188 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2184 the history file will be called 'history-PROFNAME' (or just
2189 the history file will be called 'history-PROFNAME' (or just
2185 'history' if no profile is loaded). I was getting annoyed at
2190 'history' if no profile is loaded). I was getting annoyed at
2186 getting my Numerical work history clobbered by pysh sessions.
2191 getting my Numerical work history clobbered by pysh sessions.
2187
2192
2188 * IPython/iplib.py (InteractiveShell.__init__): Internal
2193 * IPython/iplib.py (InteractiveShell.__init__): Internal
2189 getoutputerror() function so that we can honor the system_verbose
2194 getoutputerror() function so that we can honor the system_verbose
2190 flag for _all_ system calls. I also added escaping of #
2195 flag for _all_ system calls. I also added escaping of #
2191 characters here to avoid confusing Itpl.
2196 characters here to avoid confusing Itpl.
2192
2197
2193 * IPython/Magic.py (shlex_split): removed call to shell in
2198 * IPython/Magic.py (shlex_split): removed call to shell in
2194 parse_options and replaced it with shlex.split(). The annoying
2199 parse_options and replaced it with shlex.split(). The annoying
2195 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2200 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2196 to backport it from 2.3, with several frail hacks (the shlex
2201 to backport it from 2.3, with several frail hacks (the shlex
2197 module is rather limited in 2.2). Thanks to a suggestion by Ville
2202 module is rather limited in 2.2). Thanks to a suggestion by Ville
2198 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2203 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2199 problem.
2204 problem.
2200
2205
2201 (Magic.magic_system_verbose): new toggle to print the actual
2206 (Magic.magic_system_verbose): new toggle to print the actual
2202 system calls made by ipython. Mainly for debugging purposes.
2207 system calls made by ipython. Mainly for debugging purposes.
2203
2208
2204 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2209 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2205 doesn't support persistence. Reported (and fix suggested) by
2210 doesn't support persistence. Reported (and fix suggested) by
2206 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2211 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2207
2212
2208 2004-06-26 Fernando Perez <fperez@colorado.edu>
2213 2004-06-26 Fernando Perez <fperez@colorado.edu>
2209
2214
2210 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2215 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2211 continue prompts.
2216 continue prompts.
2212
2217
2213 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2218 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2214 function (basically a big docstring) and a few more things here to
2219 function (basically a big docstring) and a few more things here to
2215 speedup startup. pysh.py is now very lightweight. We want because
2220 speedup startup. pysh.py is now very lightweight. We want because
2216 it gets execfile'd, while InterpreterExec gets imported, so
2221 it gets execfile'd, while InterpreterExec gets imported, so
2217 byte-compilation saves time.
2222 byte-compilation saves time.
2218
2223
2219 2004-06-25 Fernando Perez <fperez@colorado.edu>
2224 2004-06-25 Fernando Perez <fperez@colorado.edu>
2220
2225
2221 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2226 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2222 -NUM', which was recently broken.
2227 -NUM', which was recently broken.
2223
2228
2224 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2229 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2225 in multi-line input (but not !!, which doesn't make sense there).
2230 in multi-line input (but not !!, which doesn't make sense there).
2226
2231
2227 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2232 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2228 It's just too useful, and people can turn it off in the less
2233 It's just too useful, and people can turn it off in the less
2229 common cases where it's a problem.
2234 common cases where it's a problem.
2230
2235
2231 2004-06-24 Fernando Perez <fperez@colorado.edu>
2236 2004-06-24 Fernando Perez <fperez@colorado.edu>
2232
2237
2233 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2238 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2234 special syntaxes (like alias calling) is now allied in multi-line
2239 special syntaxes (like alias calling) is now allied in multi-line
2235 input. This is still _very_ experimental, but it's necessary for
2240 input. This is still _very_ experimental, but it's necessary for
2236 efficient shell usage combining python looping syntax with system
2241 efficient shell usage combining python looping syntax with system
2237 calls. For now it's restricted to aliases, I don't think it
2242 calls. For now it's restricted to aliases, I don't think it
2238 really even makes sense to have this for magics.
2243 really even makes sense to have this for magics.
2239
2244
2240 2004-06-23 Fernando Perez <fperez@colorado.edu>
2245 2004-06-23 Fernando Perez <fperez@colorado.edu>
2241
2246
2242 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2247 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2243 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2248 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2244
2249
2245 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2250 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2246 extensions under Windows (after code sent by Gary Bishop). The
2251 extensions under Windows (after code sent by Gary Bishop). The
2247 extensions considered 'executable' are stored in IPython's rc
2252 extensions considered 'executable' are stored in IPython's rc
2248 structure as win_exec_ext.
2253 structure as win_exec_ext.
2249
2254
2250 * IPython/genutils.py (shell): new function, like system() but
2255 * IPython/genutils.py (shell): new function, like system() but
2251 without return value. Very useful for interactive shell work.
2256 without return value. Very useful for interactive shell work.
2252
2257
2253 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2258 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2254 delete aliases.
2259 delete aliases.
2255
2260
2256 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2261 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2257 sure that the alias table doesn't contain python keywords.
2262 sure that the alias table doesn't contain python keywords.
2258
2263
2259 2004-06-21 Fernando Perez <fperez@colorado.edu>
2264 2004-06-21 Fernando Perez <fperez@colorado.edu>
2260
2265
2261 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2266 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2262 non-existent items are found in $PATH. Reported by Thorsten.
2267 non-existent items are found in $PATH. Reported by Thorsten.
2263
2268
2264 2004-06-20 Fernando Perez <fperez@colorado.edu>
2269 2004-06-20 Fernando Perez <fperez@colorado.edu>
2265
2270
2266 * IPython/iplib.py (complete): modified the completer so that the
2271 * IPython/iplib.py (complete): modified the completer so that the
2267 order of priorities can be easily changed at runtime.
2272 order of priorities can be easily changed at runtime.
2268
2273
2269 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2274 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2270 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2275 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2271
2276
2272 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2277 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2273 expand Python variables prepended with $ in all system calls. The
2278 expand Python variables prepended with $ in all system calls. The
2274 same was done to InteractiveShell.handle_shell_escape. Now all
2279 same was done to InteractiveShell.handle_shell_escape. Now all
2275 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2280 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2276 expansion of python variables and expressions according to the
2281 expansion of python variables and expressions according to the
2277 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2282 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2278
2283
2279 Though PEP-215 has been rejected, a similar (but simpler) one
2284 Though PEP-215 has been rejected, a similar (but simpler) one
2280 seems like it will go into Python 2.4, PEP-292 -
2285 seems like it will go into Python 2.4, PEP-292 -
2281 http://www.python.org/peps/pep-0292.html.
2286 http://www.python.org/peps/pep-0292.html.
2282
2287
2283 I'll keep the full syntax of PEP-215, since IPython has since the
2288 I'll keep the full syntax of PEP-215, since IPython has since the
2284 start used Ka-Ping Yee's reference implementation discussed there
2289 start used Ka-Ping Yee's reference implementation discussed there
2285 (Itpl), and I actually like the powerful semantics it offers.
2290 (Itpl), and I actually like the powerful semantics it offers.
2286
2291
2287 In order to access normal shell variables, the $ has to be escaped
2292 In order to access normal shell variables, the $ has to be escaped
2288 via an extra $. For example:
2293 via an extra $. For example:
2289
2294
2290 In [7]: PATH='a python variable'
2295 In [7]: PATH='a python variable'
2291
2296
2292 In [8]: !echo $PATH
2297 In [8]: !echo $PATH
2293 a python variable
2298 a python variable
2294
2299
2295 In [9]: !echo $$PATH
2300 In [9]: !echo $$PATH
2296 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2301 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2297
2302
2298 (Magic.parse_options): escape $ so the shell doesn't evaluate
2303 (Magic.parse_options): escape $ so the shell doesn't evaluate
2299 things prematurely.
2304 things prematurely.
2300
2305
2301 * IPython/iplib.py (InteractiveShell.call_alias): added the
2306 * IPython/iplib.py (InteractiveShell.call_alias): added the
2302 ability for aliases to expand python variables via $.
2307 ability for aliases to expand python variables via $.
2303
2308
2304 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2309 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2305 system, now there's a @rehash/@rehashx pair of magics. These work
2310 system, now there's a @rehash/@rehashx pair of magics. These work
2306 like the csh rehash command, and can be invoked at any time. They
2311 like the csh rehash command, and can be invoked at any time. They
2307 build a table of aliases to everything in the user's $PATH
2312 build a table of aliases to everything in the user's $PATH
2308 (@rehash uses everything, @rehashx is slower but only adds
2313 (@rehash uses everything, @rehashx is slower but only adds
2309 executable files). With this, the pysh.py-based shell profile can
2314 executable files). With this, the pysh.py-based shell profile can
2310 now simply call rehash upon startup, and full access to all
2315 now simply call rehash upon startup, and full access to all
2311 programs in the user's path is obtained.
2316 programs in the user's path is obtained.
2312
2317
2313 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2318 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2314 functionality is now fully in place. I removed the old dynamic
2319 functionality is now fully in place. I removed the old dynamic
2315 code generation based approach, in favor of a much lighter one
2320 code generation based approach, in favor of a much lighter one
2316 based on a simple dict. The advantage is that this allows me to
2321 based on a simple dict. The advantage is that this allows me to
2317 now have thousands of aliases with negligible cost (unthinkable
2322 now have thousands of aliases with negligible cost (unthinkable
2318 with the old system).
2323 with the old system).
2319
2324
2320 2004-06-19 Fernando Perez <fperez@colorado.edu>
2325 2004-06-19 Fernando Perez <fperez@colorado.edu>
2321
2326
2322 * IPython/iplib.py (__init__): extended MagicCompleter class to
2327 * IPython/iplib.py (__init__): extended MagicCompleter class to
2323 also complete (last in priority) on user aliases.
2328 also complete (last in priority) on user aliases.
2324
2329
2325 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2330 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2326 call to eval.
2331 call to eval.
2327 (ItplNS.__init__): Added a new class which functions like Itpl,
2332 (ItplNS.__init__): Added a new class which functions like Itpl,
2328 but allows configuring the namespace for the evaluation to occur
2333 but allows configuring the namespace for the evaluation to occur
2329 in.
2334 in.
2330
2335
2331 2004-06-18 Fernando Perez <fperez@colorado.edu>
2336 2004-06-18 Fernando Perez <fperez@colorado.edu>
2332
2337
2333 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2338 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2334 better message when 'exit' or 'quit' are typed (a common newbie
2339 better message when 'exit' or 'quit' are typed (a common newbie
2335 confusion).
2340 confusion).
2336
2341
2337 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2342 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2338 check for Windows users.
2343 check for Windows users.
2339
2344
2340 * IPython/iplib.py (InteractiveShell.user_setup): removed
2345 * IPython/iplib.py (InteractiveShell.user_setup): removed
2341 disabling of colors for Windows. I'll test at runtime and issue a
2346 disabling of colors for Windows. I'll test at runtime and issue a
2342 warning if Gary's readline isn't found, as to nudge users to
2347 warning if Gary's readline isn't found, as to nudge users to
2343 download it.
2348 download it.
2344
2349
2345 2004-06-16 Fernando Perez <fperez@colorado.edu>
2350 2004-06-16 Fernando Perez <fperez@colorado.edu>
2346
2351
2347 * IPython/genutils.py (Stream.__init__): changed to print errors
2352 * IPython/genutils.py (Stream.__init__): changed to print errors
2348 to sys.stderr. I had a circular dependency here. Now it's
2353 to sys.stderr. I had a circular dependency here. Now it's
2349 possible to run ipython as IDLE's shell (consider this pre-alpha,
2354 possible to run ipython as IDLE's shell (consider this pre-alpha,
2350 since true stdout things end up in the starting terminal instead
2355 since true stdout things end up in the starting terminal instead
2351 of IDLE's out).
2356 of IDLE's out).
2352
2357
2353 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2358 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2354 users who haven't # updated their prompt_in2 definitions. Remove
2359 users who haven't # updated their prompt_in2 definitions. Remove
2355 eventually.
2360 eventually.
2356 (multiple_replace): added credit to original ASPN recipe.
2361 (multiple_replace): added credit to original ASPN recipe.
2357
2362
2358 2004-06-15 Fernando Perez <fperez@colorado.edu>
2363 2004-06-15 Fernando Perez <fperez@colorado.edu>
2359
2364
2360 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2365 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2361 list of auto-defined aliases.
2366 list of auto-defined aliases.
2362
2367
2363 2004-06-13 Fernando Perez <fperez@colorado.edu>
2368 2004-06-13 Fernando Perez <fperez@colorado.edu>
2364
2369
2365 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2370 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2366 install was really requested (so setup.py can be used for other
2371 install was really requested (so setup.py can be used for other
2367 things under Windows).
2372 things under Windows).
2368
2373
2369 2004-06-10 Fernando Perez <fperez@colorado.edu>
2374 2004-06-10 Fernando Perez <fperez@colorado.edu>
2370
2375
2371 * IPython/Logger.py (Logger.create_log): Manually remove any old
2376 * IPython/Logger.py (Logger.create_log): Manually remove any old
2372 backup, since os.remove may fail under Windows. Fixes bug
2377 backup, since os.remove may fail under Windows. Fixes bug
2373 reported by Thorsten.
2378 reported by Thorsten.
2374
2379
2375 2004-06-09 Fernando Perez <fperez@colorado.edu>
2380 2004-06-09 Fernando Perez <fperez@colorado.edu>
2376
2381
2377 * examples/example-embed.py: fixed all references to %n (replaced
2382 * examples/example-embed.py: fixed all references to %n (replaced
2378 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2383 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2379 for all examples and the manual as well.
2384 for all examples and the manual as well.
2380
2385
2381 2004-06-08 Fernando Perez <fperez@colorado.edu>
2386 2004-06-08 Fernando Perez <fperez@colorado.edu>
2382
2387
2383 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2388 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2384 alignment and color management. All 3 prompt subsystems now
2389 alignment and color management. All 3 prompt subsystems now
2385 inherit from BasePrompt.
2390 inherit from BasePrompt.
2386
2391
2387 * tools/release: updates for windows installer build and tag rpms
2392 * tools/release: updates for windows installer build and tag rpms
2388 with python version (since paths are fixed).
2393 with python version (since paths are fixed).
2389
2394
2390 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2395 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2391 which will become eventually obsolete. Also fixed the default
2396 which will become eventually obsolete. Also fixed the default
2392 prompt_in2 to use \D, so at least new users start with the correct
2397 prompt_in2 to use \D, so at least new users start with the correct
2393 defaults.
2398 defaults.
2394 WARNING: Users with existing ipythonrc files will need to apply
2399 WARNING: Users with existing ipythonrc files will need to apply
2395 this fix manually!
2400 this fix manually!
2396
2401
2397 * setup.py: make windows installer (.exe). This is finally the
2402 * setup.py: make windows installer (.exe). This is finally the
2398 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2403 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2399 which I hadn't included because it required Python 2.3 (or recent
2404 which I hadn't included because it required Python 2.3 (or recent
2400 distutils).
2405 distutils).
2401
2406
2402 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2407 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2403 usage of new '\D' escape.
2408 usage of new '\D' escape.
2404
2409
2405 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2410 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2406 lacks os.getuid())
2411 lacks os.getuid())
2407 (CachedOutput.set_colors): Added the ability to turn coloring
2412 (CachedOutput.set_colors): Added the ability to turn coloring
2408 on/off with @colors even for manually defined prompt colors. It
2413 on/off with @colors even for manually defined prompt colors. It
2409 uses a nasty global, but it works safely and via the generic color
2414 uses a nasty global, but it works safely and via the generic color
2410 handling mechanism.
2415 handling mechanism.
2411 (Prompt2.__init__): Introduced new escape '\D' for continuation
2416 (Prompt2.__init__): Introduced new escape '\D' for continuation
2412 prompts. It represents the counter ('\#') as dots.
2417 prompts. It represents the counter ('\#') as dots.
2413 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2418 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2414 need to update their ipythonrc files and replace '%n' with '\D' in
2419 need to update their ipythonrc files and replace '%n' with '\D' in
2415 their prompt_in2 settings everywhere. Sorry, but there's
2420 their prompt_in2 settings everywhere. Sorry, but there's
2416 otherwise no clean way to get all prompts to properly align. The
2421 otherwise no clean way to get all prompts to properly align. The
2417 ipythonrc shipped with IPython has been updated.
2422 ipythonrc shipped with IPython has been updated.
2418
2423
2419 2004-06-07 Fernando Perez <fperez@colorado.edu>
2424 2004-06-07 Fernando Perez <fperez@colorado.edu>
2420
2425
2421 * setup.py (isfile): Pass local_icons option to latex2html, so the
2426 * setup.py (isfile): Pass local_icons option to latex2html, so the
2422 resulting HTML file is self-contained. Thanks to
2427 resulting HTML file is self-contained. Thanks to
2423 dryice-AT-liu.com.cn for the tip.
2428 dryice-AT-liu.com.cn for the tip.
2424
2429
2425 * pysh.py: I created a new profile 'shell', which implements a
2430 * pysh.py: I created a new profile 'shell', which implements a
2426 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2431 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2427 system shell, nor will it become one anytime soon. It's mainly
2432 system shell, nor will it become one anytime soon. It's mainly
2428 meant to illustrate the use of the new flexible bash-like prompts.
2433 meant to illustrate the use of the new flexible bash-like prompts.
2429 I guess it could be used by hardy souls for true shell management,
2434 I guess it could be used by hardy souls for true shell management,
2430 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2435 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2431 profile. This uses the InterpreterExec extension provided by
2436 profile. This uses the InterpreterExec extension provided by
2432 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2437 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2433
2438
2434 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2439 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2435 auto-align itself with the length of the previous input prompt
2440 auto-align itself with the length of the previous input prompt
2436 (taking into account the invisible color escapes).
2441 (taking into account the invisible color escapes).
2437 (CachedOutput.__init__): Large restructuring of this class. Now
2442 (CachedOutput.__init__): Large restructuring of this class. Now
2438 all three prompts (primary1, primary2, output) are proper objects,
2443 all three prompts (primary1, primary2, output) are proper objects,
2439 managed by the 'parent' CachedOutput class. The code is still a
2444 managed by the 'parent' CachedOutput class. The code is still a
2440 bit hackish (all prompts share state via a pointer to the cache),
2445 bit hackish (all prompts share state via a pointer to the cache),
2441 but it's overall far cleaner than before.
2446 but it's overall far cleaner than before.
2442
2447
2443 * IPython/genutils.py (getoutputerror): modified to add verbose,
2448 * IPython/genutils.py (getoutputerror): modified to add verbose,
2444 debug and header options. This makes the interface of all getout*
2449 debug and header options. This makes the interface of all getout*
2445 functions uniform.
2450 functions uniform.
2446 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2451 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2447
2452
2448 * IPython/Magic.py (Magic.default_option): added a function to
2453 * IPython/Magic.py (Magic.default_option): added a function to
2449 allow registering default options for any magic command. This
2454 allow registering default options for any magic command. This
2450 makes it easy to have profiles which customize the magics globally
2455 makes it easy to have profiles which customize the magics globally
2451 for a certain use. The values set through this function are
2456 for a certain use. The values set through this function are
2452 picked up by the parse_options() method, which all magics should
2457 picked up by the parse_options() method, which all magics should
2453 use to parse their options.
2458 use to parse their options.
2454
2459
2455 * IPython/genutils.py (warn): modified the warnings framework to
2460 * IPython/genutils.py (warn): modified the warnings framework to
2456 use the Term I/O class. I'm trying to slowly unify all of
2461 use the Term I/O class. I'm trying to slowly unify all of
2457 IPython's I/O operations to pass through Term.
2462 IPython's I/O operations to pass through Term.
2458
2463
2459 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2464 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2460 the secondary prompt to correctly match the length of the primary
2465 the secondary prompt to correctly match the length of the primary
2461 one for any prompt. Now multi-line code will properly line up
2466 one for any prompt. Now multi-line code will properly line up
2462 even for path dependent prompts, such as the new ones available
2467 even for path dependent prompts, such as the new ones available
2463 via the prompt_specials.
2468 via the prompt_specials.
2464
2469
2465 2004-06-06 Fernando Perez <fperez@colorado.edu>
2470 2004-06-06 Fernando Perez <fperez@colorado.edu>
2466
2471
2467 * IPython/Prompts.py (prompt_specials): Added the ability to have
2472 * IPython/Prompts.py (prompt_specials): Added the ability to have
2468 bash-like special sequences in the prompts, which get
2473 bash-like special sequences in the prompts, which get
2469 automatically expanded. Things like hostname, current working
2474 automatically expanded. Things like hostname, current working
2470 directory and username are implemented already, but it's easy to
2475 directory and username are implemented already, but it's easy to
2471 add more in the future. Thanks to a patch by W.J. van der Laan
2476 add more in the future. Thanks to a patch by W.J. van der Laan
2472 <gnufnork-AT-hetdigitalegat.nl>
2477 <gnufnork-AT-hetdigitalegat.nl>
2473 (prompt_specials): Added color support for prompt strings, so
2478 (prompt_specials): Added color support for prompt strings, so
2474 users can define arbitrary color setups for their prompts.
2479 users can define arbitrary color setups for their prompts.
2475
2480
2476 2004-06-05 Fernando Perez <fperez@colorado.edu>
2481 2004-06-05 Fernando Perez <fperez@colorado.edu>
2477
2482
2478 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2483 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2479 code to load Gary Bishop's readline and configure it
2484 code to load Gary Bishop's readline and configure it
2480 automatically. Thanks to Gary for help on this.
2485 automatically. Thanks to Gary for help on this.
2481
2486
2482 2004-06-01 Fernando Perez <fperez@colorado.edu>
2487 2004-06-01 Fernando Perez <fperez@colorado.edu>
2483
2488
2484 * IPython/Logger.py (Logger.create_log): fix bug for logging
2489 * IPython/Logger.py (Logger.create_log): fix bug for logging
2485 with no filename (previous fix was incomplete).
2490 with no filename (previous fix was incomplete).
2486
2491
2487 2004-05-25 Fernando Perez <fperez@colorado.edu>
2492 2004-05-25 Fernando Perez <fperez@colorado.edu>
2488
2493
2489 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2494 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2490 parens would get passed to the shell.
2495 parens would get passed to the shell.
2491
2496
2492 2004-05-20 Fernando Perez <fperez@colorado.edu>
2497 2004-05-20 Fernando Perez <fperez@colorado.edu>
2493
2498
2494 * IPython/Magic.py (Magic.magic_prun): changed default profile
2499 * IPython/Magic.py (Magic.magic_prun): changed default profile
2495 sort order to 'time' (the more common profiling need).
2500 sort order to 'time' (the more common profiling need).
2496
2501
2497 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2502 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2498 so that source code shown is guaranteed in sync with the file on
2503 so that source code shown is guaranteed in sync with the file on
2499 disk (also changed in psource). Similar fix to the one for
2504 disk (also changed in psource). Similar fix to the one for
2500 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2505 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2501 <yann.ledu-AT-noos.fr>.
2506 <yann.ledu-AT-noos.fr>.
2502
2507
2503 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2508 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2504 with a single option would not be correctly parsed. Closes
2509 with a single option would not be correctly parsed. Closes
2505 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2510 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2506 introduced in 0.6.0 (on 2004-05-06).
2511 introduced in 0.6.0 (on 2004-05-06).
2507
2512
2508 2004-05-13 *** Released version 0.6.0
2513 2004-05-13 *** Released version 0.6.0
2509
2514
2510 2004-05-13 Fernando Perez <fperez@colorado.edu>
2515 2004-05-13 Fernando Perez <fperez@colorado.edu>
2511
2516
2512 * debian/: Added debian/ directory to CVS, so that debian support
2517 * debian/: Added debian/ directory to CVS, so that debian support
2513 is publicly accessible. The debian package is maintained by Jack
2518 is publicly accessible. The debian package is maintained by Jack
2514 Moffit <jack-AT-xiph.org>.
2519 Moffit <jack-AT-xiph.org>.
2515
2520
2516 * Documentation: included the notes about an ipython-based system
2521 * Documentation: included the notes about an ipython-based system
2517 shell (the hypothetical 'pysh') into the new_design.pdf document,
2522 shell (the hypothetical 'pysh') into the new_design.pdf document,
2518 so that these ideas get distributed to users along with the
2523 so that these ideas get distributed to users along with the
2519 official documentation.
2524 official documentation.
2520
2525
2521 2004-05-10 Fernando Perez <fperez@colorado.edu>
2526 2004-05-10 Fernando Perez <fperez@colorado.edu>
2522
2527
2523 * IPython/Logger.py (Logger.create_log): fix recently introduced
2528 * IPython/Logger.py (Logger.create_log): fix recently introduced
2524 bug (misindented line) where logstart would fail when not given an
2529 bug (misindented line) where logstart would fail when not given an
2525 explicit filename.
2530 explicit filename.
2526
2531
2527 2004-05-09 Fernando Perez <fperez@colorado.edu>
2532 2004-05-09 Fernando Perez <fperez@colorado.edu>
2528
2533
2529 * IPython/Magic.py (Magic.parse_options): skip system call when
2534 * IPython/Magic.py (Magic.parse_options): skip system call when
2530 there are no options to look for. Faster, cleaner for the common
2535 there are no options to look for. Faster, cleaner for the common
2531 case.
2536 case.
2532
2537
2533 * Documentation: many updates to the manual: describing Windows
2538 * Documentation: many updates to the manual: describing Windows
2534 support better, Gnuplot updates, credits, misc small stuff. Also
2539 support better, Gnuplot updates, credits, misc small stuff. Also
2535 updated the new_design doc a bit.
2540 updated the new_design doc a bit.
2536
2541
2537 2004-05-06 *** Released version 0.6.0.rc1
2542 2004-05-06 *** Released version 0.6.0.rc1
2538
2543
2539 2004-05-06 Fernando Perez <fperez@colorado.edu>
2544 2004-05-06 Fernando Perez <fperez@colorado.edu>
2540
2545
2541 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2546 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2542 operations to use the vastly more efficient list/''.join() method.
2547 operations to use the vastly more efficient list/''.join() method.
2543 (FormattedTB.text): Fix
2548 (FormattedTB.text): Fix
2544 http://www.scipy.net/roundup/ipython/issue12 - exception source
2549 http://www.scipy.net/roundup/ipython/issue12 - exception source
2545 extract not updated after reload. Thanks to Mike Salib
2550 extract not updated after reload. Thanks to Mike Salib
2546 <msalib-AT-mit.edu> for pinning the source of the problem.
2551 <msalib-AT-mit.edu> for pinning the source of the problem.
2547 Fortunately, the solution works inside ipython and doesn't require
2552 Fortunately, the solution works inside ipython and doesn't require
2548 any changes to python proper.
2553 any changes to python proper.
2549
2554
2550 * IPython/Magic.py (Magic.parse_options): Improved to process the
2555 * IPython/Magic.py (Magic.parse_options): Improved to process the
2551 argument list as a true shell would (by actually using the
2556 argument list as a true shell would (by actually using the
2552 underlying system shell). This way, all @magics automatically get
2557 underlying system shell). This way, all @magics automatically get
2553 shell expansion for variables. Thanks to a comment by Alex
2558 shell expansion for variables. Thanks to a comment by Alex
2554 Schmolck.
2559 Schmolck.
2555
2560
2556 2004-04-04 Fernando Perez <fperez@colorado.edu>
2561 2004-04-04 Fernando Perez <fperez@colorado.edu>
2557
2562
2558 * IPython/iplib.py (InteractiveShell.interact): Added a special
2563 * IPython/iplib.py (InteractiveShell.interact): Added a special
2559 trap for a debugger quit exception, which is basically impossible
2564 trap for a debugger quit exception, which is basically impossible
2560 to handle by normal mechanisms, given what pdb does to the stack.
2565 to handle by normal mechanisms, given what pdb does to the stack.
2561 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2566 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2562
2567
2563 2004-04-03 Fernando Perez <fperez@colorado.edu>
2568 2004-04-03 Fernando Perez <fperez@colorado.edu>
2564
2569
2565 * IPython/genutils.py (Term): Standardized the names of the Term
2570 * IPython/genutils.py (Term): Standardized the names of the Term
2566 class streams to cin/cout/cerr, following C++ naming conventions
2571 class streams to cin/cout/cerr, following C++ naming conventions
2567 (I can't use in/out/err because 'in' is not a valid attribute
2572 (I can't use in/out/err because 'in' is not a valid attribute
2568 name).
2573 name).
2569
2574
2570 * IPython/iplib.py (InteractiveShell.interact): don't increment
2575 * IPython/iplib.py (InteractiveShell.interact): don't increment
2571 the prompt if there's no user input. By Daniel 'Dang' Griffith
2576 the prompt if there's no user input. By Daniel 'Dang' Griffith
2572 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2577 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2573 Francois Pinard.
2578 Francois Pinard.
2574
2579
2575 2004-04-02 Fernando Perez <fperez@colorado.edu>
2580 2004-04-02 Fernando Perez <fperez@colorado.edu>
2576
2581
2577 * IPython/genutils.py (Stream.__init__): Modified to survive at
2582 * IPython/genutils.py (Stream.__init__): Modified to survive at
2578 least importing in contexts where stdin/out/err aren't true file
2583 least importing in contexts where stdin/out/err aren't true file
2579 objects, such as PyCrust (they lack fileno() and mode). However,
2584 objects, such as PyCrust (they lack fileno() and mode). However,
2580 the recovery facilities which rely on these things existing will
2585 the recovery facilities which rely on these things existing will
2581 not work.
2586 not work.
2582
2587
2583 2004-04-01 Fernando Perez <fperez@colorado.edu>
2588 2004-04-01 Fernando Perez <fperez@colorado.edu>
2584
2589
2585 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2590 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2586 use the new getoutputerror() function, so it properly
2591 use the new getoutputerror() function, so it properly
2587 distinguishes stdout/err.
2592 distinguishes stdout/err.
2588
2593
2589 * IPython/genutils.py (getoutputerror): added a function to
2594 * IPython/genutils.py (getoutputerror): added a function to
2590 capture separately the standard output and error of a command.
2595 capture separately the standard output and error of a command.
2591 After a comment from dang on the mailing lists. This code is
2596 After a comment from dang on the mailing lists. This code is
2592 basically a modified version of commands.getstatusoutput(), from
2597 basically a modified version of commands.getstatusoutput(), from
2593 the standard library.
2598 the standard library.
2594
2599
2595 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2600 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2596 '!!' as a special syntax (shorthand) to access @sx.
2601 '!!' as a special syntax (shorthand) to access @sx.
2597
2602
2598 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2603 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2599 command and return its output as a list split on '\n'.
2604 command and return its output as a list split on '\n'.
2600
2605
2601 2004-03-31 Fernando Perez <fperez@colorado.edu>
2606 2004-03-31 Fernando Perez <fperez@colorado.edu>
2602
2607
2603 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2608 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2604 method to dictionaries used as FakeModule instances if they lack
2609 method to dictionaries used as FakeModule instances if they lack
2605 it. At least pydoc in python2.3 breaks for runtime-defined
2610 it. At least pydoc in python2.3 breaks for runtime-defined
2606 functions without this hack. At some point I need to _really_
2611 functions without this hack. At some point I need to _really_
2607 understand what FakeModule is doing, because it's a gross hack.
2612 understand what FakeModule is doing, because it's a gross hack.
2608 But it solves Arnd's problem for now...
2613 But it solves Arnd's problem for now...
2609
2614
2610 2004-02-27 Fernando Perez <fperez@colorado.edu>
2615 2004-02-27 Fernando Perez <fperez@colorado.edu>
2611
2616
2612 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2617 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2613 mode would behave erratically. Also increased the number of
2618 mode would behave erratically. Also increased the number of
2614 possible logs in rotate mod to 999. Thanks to Rod Holland
2619 possible logs in rotate mod to 999. Thanks to Rod Holland
2615 <rhh@StructureLABS.com> for the report and fixes.
2620 <rhh@StructureLABS.com> for the report and fixes.
2616
2621
2617 2004-02-26 Fernando Perez <fperez@colorado.edu>
2622 2004-02-26 Fernando Perez <fperez@colorado.edu>
2618
2623
2619 * IPython/genutils.py (page): Check that the curses module really
2624 * IPython/genutils.py (page): Check that the curses module really
2620 has the initscr attribute before trying to use it. For some
2625 has the initscr attribute before trying to use it. For some
2621 reason, the Solaris curses module is missing this. I think this
2626 reason, the Solaris curses module is missing this. I think this
2622 should be considered a Solaris python bug, but I'm not sure.
2627 should be considered a Solaris python bug, but I'm not sure.
2623
2628
2624 2004-01-17 Fernando Perez <fperez@colorado.edu>
2629 2004-01-17 Fernando Perez <fperez@colorado.edu>
2625
2630
2626 * IPython/genutils.py (Stream.__init__): Changes to try to make
2631 * IPython/genutils.py (Stream.__init__): Changes to try to make
2627 ipython robust against stdin/out/err being closed by the user.
2632 ipython robust against stdin/out/err being closed by the user.
2628 This is 'user error' (and blocks a normal python session, at least
2633 This is 'user error' (and blocks a normal python session, at least
2629 the stdout case). However, Ipython should be able to survive such
2634 the stdout case). However, Ipython should be able to survive such
2630 instances of abuse as gracefully as possible. To simplify the
2635 instances of abuse as gracefully as possible. To simplify the
2631 coding and maintain compatibility with Gary Bishop's Term
2636 coding and maintain compatibility with Gary Bishop's Term
2632 contributions, I've made use of classmethods for this. I think
2637 contributions, I've made use of classmethods for this. I think
2633 this introduces a dependency on python 2.2.
2638 this introduces a dependency on python 2.2.
2634
2639
2635 2004-01-13 Fernando Perez <fperez@colorado.edu>
2640 2004-01-13 Fernando Perez <fperez@colorado.edu>
2636
2641
2637 * IPython/numutils.py (exp_safe): simplified the code a bit and
2642 * IPython/numutils.py (exp_safe): simplified the code a bit and
2638 removed the need for importing the kinds module altogether.
2643 removed the need for importing the kinds module altogether.
2639
2644
2640 2004-01-06 Fernando Perez <fperez@colorado.edu>
2645 2004-01-06 Fernando Perez <fperez@colorado.edu>
2641
2646
2642 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2647 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2643 a magic function instead, after some community feedback. No
2648 a magic function instead, after some community feedback. No
2644 special syntax will exist for it, but its name is deliberately
2649 special syntax will exist for it, but its name is deliberately
2645 very short.
2650 very short.
2646
2651
2647 2003-12-20 Fernando Perez <fperez@colorado.edu>
2652 2003-12-20 Fernando Perez <fperez@colorado.edu>
2648
2653
2649 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2654 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2650 new functionality, to automagically assign the result of a shell
2655 new functionality, to automagically assign the result of a shell
2651 command to a variable. I'll solicit some community feedback on
2656 command to a variable. I'll solicit some community feedback on
2652 this before making it permanent.
2657 this before making it permanent.
2653
2658
2654 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2659 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2655 requested about callables for which inspect couldn't obtain a
2660 requested about callables for which inspect couldn't obtain a
2656 proper argspec. Thanks to a crash report sent by Etienne
2661 proper argspec. Thanks to a crash report sent by Etienne
2657 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2662 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2658
2663
2659 2003-12-09 Fernando Perez <fperez@colorado.edu>
2664 2003-12-09 Fernando Perez <fperez@colorado.edu>
2660
2665
2661 * IPython/genutils.py (page): patch for the pager to work across
2666 * IPython/genutils.py (page): patch for the pager to work across
2662 various versions of Windows. By Gary Bishop.
2667 various versions of Windows. By Gary Bishop.
2663
2668
2664 2003-12-04 Fernando Perez <fperez@colorado.edu>
2669 2003-12-04 Fernando Perez <fperez@colorado.edu>
2665
2670
2666 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2671 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2667 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2672 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2668 While I tested this and it looks ok, there may still be corner
2673 While I tested this and it looks ok, there may still be corner
2669 cases I've missed.
2674 cases I've missed.
2670
2675
2671 2003-12-01 Fernando Perez <fperez@colorado.edu>
2676 2003-12-01 Fernando Perez <fperez@colorado.edu>
2672
2677
2673 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2678 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2674 where a line like 'p,q=1,2' would fail because the automagic
2679 where a line like 'p,q=1,2' would fail because the automagic
2675 system would be triggered for @p.
2680 system would be triggered for @p.
2676
2681
2677 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2682 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2678 cleanups, code unmodified.
2683 cleanups, code unmodified.
2679
2684
2680 * IPython/genutils.py (Term): added a class for IPython to handle
2685 * IPython/genutils.py (Term): added a class for IPython to handle
2681 output. In most cases it will just be a proxy for stdout/err, but
2686 output. In most cases it will just be a proxy for stdout/err, but
2682 having this allows modifications to be made for some platforms,
2687 having this allows modifications to be made for some platforms,
2683 such as handling color escapes under Windows. All of this code
2688 such as handling color escapes under Windows. All of this code
2684 was contributed by Gary Bishop, with minor modifications by me.
2689 was contributed by Gary Bishop, with minor modifications by me.
2685 The actual changes affect many files.
2690 The actual changes affect many files.
2686
2691
2687 2003-11-30 Fernando Perez <fperez@colorado.edu>
2692 2003-11-30 Fernando Perez <fperez@colorado.edu>
2688
2693
2689 * IPython/iplib.py (file_matches): new completion code, courtesy
2694 * IPython/iplib.py (file_matches): new completion code, courtesy
2690 of Jeff Collins. This enables filename completion again under
2695 of Jeff Collins. This enables filename completion again under
2691 python 2.3, which disabled it at the C level.
2696 python 2.3, which disabled it at the C level.
2692
2697
2693 2003-11-11 Fernando Perez <fperez@colorado.edu>
2698 2003-11-11 Fernando Perez <fperez@colorado.edu>
2694
2699
2695 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2700 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2696 for Numeric.array(map(...)), but often convenient.
2701 for Numeric.array(map(...)), but often convenient.
2697
2702
2698 2003-11-05 Fernando Perez <fperez@colorado.edu>
2703 2003-11-05 Fernando Perez <fperez@colorado.edu>
2699
2704
2700 * IPython/numutils.py (frange): Changed a call from int() to
2705 * IPython/numutils.py (frange): Changed a call from int() to
2701 int(round()) to prevent a problem reported with arange() in the
2706 int(round()) to prevent a problem reported with arange() in the
2702 numpy list.
2707 numpy list.
2703
2708
2704 2003-10-06 Fernando Perez <fperez@colorado.edu>
2709 2003-10-06 Fernando Perez <fperez@colorado.edu>
2705
2710
2706 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2711 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2707 prevent crashes if sys lacks an argv attribute (it happens with
2712 prevent crashes if sys lacks an argv attribute (it happens with
2708 embedded interpreters which build a bare-bones sys module).
2713 embedded interpreters which build a bare-bones sys module).
2709 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2714 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2710
2715
2711 2003-09-24 Fernando Perez <fperez@colorado.edu>
2716 2003-09-24 Fernando Perez <fperez@colorado.edu>
2712
2717
2713 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2718 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2714 to protect against poorly written user objects where __getattr__
2719 to protect against poorly written user objects where __getattr__
2715 raises exceptions other than AttributeError. Thanks to a bug
2720 raises exceptions other than AttributeError. Thanks to a bug
2716 report by Oliver Sander <osander-AT-gmx.de>.
2721 report by Oliver Sander <osander-AT-gmx.de>.
2717
2722
2718 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2723 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2719 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2724 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2720
2725
2721 2003-09-09 Fernando Perez <fperez@colorado.edu>
2726 2003-09-09 Fernando Perez <fperez@colorado.edu>
2722
2727
2723 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2728 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2724 unpacking a list whith a callable as first element would
2729 unpacking a list whith a callable as first element would
2725 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2730 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2726 Collins.
2731 Collins.
2727
2732
2728 2003-08-25 *** Released version 0.5.0
2733 2003-08-25 *** Released version 0.5.0
2729
2734
2730 2003-08-22 Fernando Perez <fperez@colorado.edu>
2735 2003-08-22 Fernando Perez <fperez@colorado.edu>
2731
2736
2732 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2737 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2733 improperly defined user exceptions. Thanks to feedback from Mark
2738 improperly defined user exceptions. Thanks to feedback from Mark
2734 Russell <mrussell-AT-verio.net>.
2739 Russell <mrussell-AT-verio.net>.
2735
2740
2736 2003-08-20 Fernando Perez <fperez@colorado.edu>
2741 2003-08-20 Fernando Perez <fperez@colorado.edu>
2737
2742
2738 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2743 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2739 printing so that it would print multi-line string forms starting
2744 printing so that it would print multi-line string forms starting
2740 with a new line. This way the formatting is better respected for
2745 with a new line. This way the formatting is better respected for
2741 objects which work hard to make nice string forms.
2746 objects which work hard to make nice string forms.
2742
2747
2743 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2748 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2744 autocall would overtake data access for objects with both
2749 autocall would overtake data access for objects with both
2745 __getitem__ and __call__.
2750 __getitem__ and __call__.
2746
2751
2747 2003-08-19 *** Released version 0.5.0-rc1
2752 2003-08-19 *** Released version 0.5.0-rc1
2748
2753
2749 2003-08-19 Fernando Perez <fperez@colorado.edu>
2754 2003-08-19 Fernando Perez <fperez@colorado.edu>
2750
2755
2751 * IPython/deep_reload.py (load_tail): single tiny change here
2756 * IPython/deep_reload.py (load_tail): single tiny change here
2752 seems to fix the long-standing bug of dreload() failing to work
2757 seems to fix the long-standing bug of dreload() failing to work
2753 for dotted names. But this module is pretty tricky, so I may have
2758 for dotted names. But this module is pretty tricky, so I may have
2754 missed some subtlety. Needs more testing!.
2759 missed some subtlety. Needs more testing!.
2755
2760
2756 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2761 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2757 exceptions which have badly implemented __str__ methods.
2762 exceptions which have badly implemented __str__ methods.
2758 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2763 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2759 which I've been getting reports about from Python 2.3 users. I
2764 which I've been getting reports about from Python 2.3 users. I
2760 wish I had a simple test case to reproduce the problem, so I could
2765 wish I had a simple test case to reproduce the problem, so I could
2761 either write a cleaner workaround or file a bug report if
2766 either write a cleaner workaround or file a bug report if
2762 necessary.
2767 necessary.
2763
2768
2764 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2769 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2765 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2770 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2766 a bug report by Tjabo Kloppenburg.
2771 a bug report by Tjabo Kloppenburg.
2767
2772
2768 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2773 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2769 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2774 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2770 seems rather unstable. Thanks to a bug report by Tjabo
2775 seems rather unstable. Thanks to a bug report by Tjabo
2771 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2776 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2772
2777
2773 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2778 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2774 this out soon because of the critical fixes in the inner loop for
2779 this out soon because of the critical fixes in the inner loop for
2775 generators.
2780 generators.
2776
2781
2777 * IPython/Magic.py (Magic.getargspec): removed. This (and
2782 * IPython/Magic.py (Magic.getargspec): removed. This (and
2778 _get_def) have been obsoleted by OInspect for a long time, I
2783 _get_def) have been obsoleted by OInspect for a long time, I
2779 hadn't noticed that they were dead code.
2784 hadn't noticed that they were dead code.
2780 (Magic._ofind): restored _ofind functionality for a few literals
2785 (Magic._ofind): restored _ofind functionality for a few literals
2781 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2786 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2782 for things like "hello".capitalize?, since that would require a
2787 for things like "hello".capitalize?, since that would require a
2783 potentially dangerous eval() again.
2788 potentially dangerous eval() again.
2784
2789
2785 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2790 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2786 logic a bit more to clean up the escapes handling and minimize the
2791 logic a bit more to clean up the escapes handling and minimize the
2787 use of _ofind to only necessary cases. The interactive 'feel' of
2792 use of _ofind to only necessary cases. The interactive 'feel' of
2788 IPython should have improved quite a bit with the changes in
2793 IPython should have improved quite a bit with the changes in
2789 _prefilter and _ofind (besides being far safer than before).
2794 _prefilter and _ofind (besides being far safer than before).
2790
2795
2791 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2796 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2792 obscure, never reported). Edit would fail to find the object to
2797 obscure, never reported). Edit would fail to find the object to
2793 edit under some circumstances.
2798 edit under some circumstances.
2794 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2799 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2795 which were causing double-calling of generators. Those eval calls
2800 which were causing double-calling of generators. Those eval calls
2796 were _very_ dangerous, since code with side effects could be
2801 were _very_ dangerous, since code with side effects could be
2797 triggered. As they say, 'eval is evil'... These were the
2802 triggered. As they say, 'eval is evil'... These were the
2798 nastiest evals in IPython. Besides, _ofind is now far simpler,
2803 nastiest evals in IPython. Besides, _ofind is now far simpler,
2799 and it should also be quite a bit faster. Its use of inspect is
2804 and it should also be quite a bit faster. Its use of inspect is
2800 also safer, so perhaps some of the inspect-related crashes I've
2805 also safer, so perhaps some of the inspect-related crashes I've
2801 seen lately with Python 2.3 might be taken care of. That will
2806 seen lately with Python 2.3 might be taken care of. That will
2802 need more testing.
2807 need more testing.
2803
2808
2804 2003-08-17 Fernando Perez <fperez@colorado.edu>
2809 2003-08-17 Fernando Perez <fperez@colorado.edu>
2805
2810
2806 * IPython/iplib.py (InteractiveShell._prefilter): significant
2811 * IPython/iplib.py (InteractiveShell._prefilter): significant
2807 simplifications to the logic for handling user escapes. Faster
2812 simplifications to the logic for handling user escapes. Faster
2808 and simpler code.
2813 and simpler code.
2809
2814
2810 2003-08-14 Fernando Perez <fperez@colorado.edu>
2815 2003-08-14 Fernando Perez <fperez@colorado.edu>
2811
2816
2812 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2817 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2813 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2818 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2814 but it should be quite a bit faster. And the recursive version
2819 but it should be quite a bit faster. And the recursive version
2815 generated O(log N) intermediate storage for all rank>1 arrays,
2820 generated O(log N) intermediate storage for all rank>1 arrays,
2816 even if they were contiguous.
2821 even if they were contiguous.
2817 (l1norm): Added this function.
2822 (l1norm): Added this function.
2818 (norm): Added this function for arbitrary norms (including
2823 (norm): Added this function for arbitrary norms (including
2819 l-infinity). l1 and l2 are still special cases for convenience
2824 l-infinity). l1 and l2 are still special cases for convenience
2820 and speed.
2825 and speed.
2821
2826
2822 2003-08-03 Fernando Perez <fperez@colorado.edu>
2827 2003-08-03 Fernando Perez <fperez@colorado.edu>
2823
2828
2824 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2829 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2825 exceptions, which now raise PendingDeprecationWarnings in Python
2830 exceptions, which now raise PendingDeprecationWarnings in Python
2826 2.3. There were some in Magic and some in Gnuplot2.
2831 2.3. There were some in Magic and some in Gnuplot2.
2827
2832
2828 2003-06-30 Fernando Perez <fperez@colorado.edu>
2833 2003-06-30 Fernando Perez <fperez@colorado.edu>
2829
2834
2830 * IPython/genutils.py (page): modified to call curses only for
2835 * IPython/genutils.py (page): modified to call curses only for
2831 terminals where TERM=='xterm'. After problems under many other
2836 terminals where TERM=='xterm'. After problems under many other
2832 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2837 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2833
2838
2834 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2839 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2835 would be triggered when readline was absent. This was just an old
2840 would be triggered when readline was absent. This was just an old
2836 debugging statement I'd forgotten to take out.
2841 debugging statement I'd forgotten to take out.
2837
2842
2838 2003-06-20 Fernando Perez <fperez@colorado.edu>
2843 2003-06-20 Fernando Perez <fperez@colorado.edu>
2839
2844
2840 * IPython/genutils.py (clock): modified to return only user time
2845 * IPython/genutils.py (clock): modified to return only user time
2841 (not counting system time), after a discussion on scipy. While
2846 (not counting system time), after a discussion on scipy. While
2842 system time may be a useful quantity occasionally, it may much
2847 system time may be a useful quantity occasionally, it may much
2843 more easily be skewed by occasional swapping or other similar
2848 more easily be skewed by occasional swapping or other similar
2844 activity.
2849 activity.
2845
2850
2846 2003-06-05 Fernando Perez <fperez@colorado.edu>
2851 2003-06-05 Fernando Perez <fperez@colorado.edu>
2847
2852
2848 * IPython/numutils.py (identity): new function, for building
2853 * IPython/numutils.py (identity): new function, for building
2849 arbitrary rank Kronecker deltas (mostly backwards compatible with
2854 arbitrary rank Kronecker deltas (mostly backwards compatible with
2850 Numeric.identity)
2855 Numeric.identity)
2851
2856
2852 2003-06-03 Fernando Perez <fperez@colorado.edu>
2857 2003-06-03 Fernando Perez <fperez@colorado.edu>
2853
2858
2854 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2859 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2855 arguments passed to magics with spaces, to allow trailing '\' to
2860 arguments passed to magics with spaces, to allow trailing '\' to
2856 work normally (mainly for Windows users).
2861 work normally (mainly for Windows users).
2857
2862
2858 2003-05-29 Fernando Perez <fperez@colorado.edu>
2863 2003-05-29 Fernando Perez <fperez@colorado.edu>
2859
2864
2860 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2865 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2861 instead of pydoc.help. This fixes a bizarre behavior where
2866 instead of pydoc.help. This fixes a bizarre behavior where
2862 printing '%s' % locals() would trigger the help system. Now
2867 printing '%s' % locals() would trigger the help system. Now
2863 ipython behaves like normal python does.
2868 ipython behaves like normal python does.
2864
2869
2865 Note that if one does 'from pydoc import help', the bizarre
2870 Note that if one does 'from pydoc import help', the bizarre
2866 behavior returns, but this will also happen in normal python, so
2871 behavior returns, but this will also happen in normal python, so
2867 it's not an ipython bug anymore (it has to do with how pydoc.help
2872 it's not an ipython bug anymore (it has to do with how pydoc.help
2868 is implemented).
2873 is implemented).
2869
2874
2870 2003-05-22 Fernando Perez <fperez@colorado.edu>
2875 2003-05-22 Fernando Perez <fperez@colorado.edu>
2871
2876
2872 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2877 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2873 return [] instead of None when nothing matches, also match to end
2878 return [] instead of None when nothing matches, also match to end
2874 of line. Patch by Gary Bishop.
2879 of line. Patch by Gary Bishop.
2875
2880
2876 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2881 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2877 protection as before, for files passed on the command line. This
2882 protection as before, for files passed on the command line. This
2878 prevents the CrashHandler from kicking in if user files call into
2883 prevents the CrashHandler from kicking in if user files call into
2879 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2884 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2880 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2885 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2881
2886
2882 2003-05-20 *** Released version 0.4.0
2887 2003-05-20 *** Released version 0.4.0
2883
2888
2884 2003-05-20 Fernando Perez <fperez@colorado.edu>
2889 2003-05-20 Fernando Perez <fperez@colorado.edu>
2885
2890
2886 * setup.py: added support for manpages. It's a bit hackish b/c of
2891 * setup.py: added support for manpages. It's a bit hackish b/c of
2887 a bug in the way the bdist_rpm distutils target handles gzipped
2892 a bug in the way the bdist_rpm distutils target handles gzipped
2888 manpages, but it works. After a patch by Jack.
2893 manpages, but it works. After a patch by Jack.
2889
2894
2890 2003-05-19 Fernando Perez <fperez@colorado.edu>
2895 2003-05-19 Fernando Perez <fperez@colorado.edu>
2891
2896
2892 * IPython/numutils.py: added a mockup of the kinds module, since
2897 * IPython/numutils.py: added a mockup of the kinds module, since
2893 it was recently removed from Numeric. This way, numutils will
2898 it was recently removed from Numeric. This way, numutils will
2894 work for all users even if they are missing kinds.
2899 work for all users even if they are missing kinds.
2895
2900
2896 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2901 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2897 failure, which can occur with SWIG-wrapped extensions. After a
2902 failure, which can occur with SWIG-wrapped extensions. After a
2898 crash report from Prabhu.
2903 crash report from Prabhu.
2899
2904
2900 2003-05-16 Fernando Perez <fperez@colorado.edu>
2905 2003-05-16 Fernando Perez <fperez@colorado.edu>
2901
2906
2902 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2907 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2903 protect ipython from user code which may call directly
2908 protect ipython from user code which may call directly
2904 sys.excepthook (this looks like an ipython crash to the user, even
2909 sys.excepthook (this looks like an ipython crash to the user, even
2905 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2910 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2906 This is especially important to help users of WxWindows, but may
2911 This is especially important to help users of WxWindows, but may
2907 also be useful in other cases.
2912 also be useful in other cases.
2908
2913
2909 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2914 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2910 an optional tb_offset to be specified, and to preserve exception
2915 an optional tb_offset to be specified, and to preserve exception
2911 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2916 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2912
2917
2913 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2918 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2914
2919
2915 2003-05-15 Fernando Perez <fperez@colorado.edu>
2920 2003-05-15 Fernando Perez <fperez@colorado.edu>
2916
2921
2917 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2922 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2918 installing for a new user under Windows.
2923 installing for a new user under Windows.
2919
2924
2920 2003-05-12 Fernando Perez <fperez@colorado.edu>
2925 2003-05-12 Fernando Perez <fperez@colorado.edu>
2921
2926
2922 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2927 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2923 handler for Emacs comint-based lines. Currently it doesn't do
2928 handler for Emacs comint-based lines. Currently it doesn't do
2924 much (but importantly, it doesn't update the history cache). In
2929 much (but importantly, it doesn't update the history cache). In
2925 the future it may be expanded if Alex needs more functionality
2930 the future it may be expanded if Alex needs more functionality
2926 there.
2931 there.
2927
2932
2928 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2933 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2929 info to crash reports.
2934 info to crash reports.
2930
2935
2931 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2936 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2932 just like Python's -c. Also fixed crash with invalid -color
2937 just like Python's -c. Also fixed crash with invalid -color
2933 option value at startup. Thanks to Will French
2938 option value at startup. Thanks to Will French
2934 <wfrench-AT-bestweb.net> for the bug report.
2939 <wfrench-AT-bestweb.net> for the bug report.
2935
2940
2936 2003-05-09 Fernando Perez <fperez@colorado.edu>
2941 2003-05-09 Fernando Perez <fperez@colorado.edu>
2937
2942
2938 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2943 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2939 to EvalDict (it's a mapping, after all) and simplified its code
2944 to EvalDict (it's a mapping, after all) and simplified its code
2940 quite a bit, after a nice discussion on c.l.py where Gustavo
2945 quite a bit, after a nice discussion on c.l.py where Gustavo
2941 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2946 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2942
2947
2943 2003-04-30 Fernando Perez <fperez@colorado.edu>
2948 2003-04-30 Fernando Perez <fperez@colorado.edu>
2944
2949
2945 * IPython/genutils.py (timings_out): modified it to reduce its
2950 * IPython/genutils.py (timings_out): modified it to reduce its
2946 overhead in the common reps==1 case.
2951 overhead in the common reps==1 case.
2947
2952
2948 2003-04-29 Fernando Perez <fperez@colorado.edu>
2953 2003-04-29 Fernando Perez <fperez@colorado.edu>
2949
2954
2950 * IPython/genutils.py (timings_out): Modified to use the resource
2955 * IPython/genutils.py (timings_out): Modified to use the resource
2951 module, which avoids the wraparound problems of time.clock().
2956 module, which avoids the wraparound problems of time.clock().
2952
2957
2953 2003-04-17 *** Released version 0.2.15pre4
2958 2003-04-17 *** Released version 0.2.15pre4
2954
2959
2955 2003-04-17 Fernando Perez <fperez@colorado.edu>
2960 2003-04-17 Fernando Perez <fperez@colorado.edu>
2956
2961
2957 * setup.py (scriptfiles): Split windows-specific stuff over to a
2962 * setup.py (scriptfiles): Split windows-specific stuff over to a
2958 separate file, in an attempt to have a Windows GUI installer.
2963 separate file, in an attempt to have a Windows GUI installer.
2959 That didn't work, but part of the groundwork is done.
2964 That didn't work, but part of the groundwork is done.
2960
2965
2961 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2966 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2962 indent/unindent with 4 spaces. Particularly useful in combination
2967 indent/unindent with 4 spaces. Particularly useful in combination
2963 with the new auto-indent option.
2968 with the new auto-indent option.
2964
2969
2965 2003-04-16 Fernando Perez <fperez@colorado.edu>
2970 2003-04-16 Fernando Perez <fperez@colorado.edu>
2966
2971
2967 * IPython/Magic.py: various replacements of self.rc for
2972 * IPython/Magic.py: various replacements of self.rc for
2968 self.shell.rc. A lot more remains to be done to fully disentangle
2973 self.shell.rc. A lot more remains to be done to fully disentangle
2969 this class from the main Shell class.
2974 this class from the main Shell class.
2970
2975
2971 * IPython/GnuplotRuntime.py: added checks for mouse support so
2976 * IPython/GnuplotRuntime.py: added checks for mouse support so
2972 that we don't try to enable it if the current gnuplot doesn't
2977 that we don't try to enable it if the current gnuplot doesn't
2973 really support it. Also added checks so that we don't try to
2978 really support it. Also added checks so that we don't try to
2974 enable persist under Windows (where Gnuplot doesn't recognize the
2979 enable persist under Windows (where Gnuplot doesn't recognize the
2975 option).
2980 option).
2976
2981
2977 * IPython/iplib.py (InteractiveShell.interact): Added optional
2982 * IPython/iplib.py (InteractiveShell.interact): Added optional
2978 auto-indenting code, after a patch by King C. Shu
2983 auto-indenting code, after a patch by King C. Shu
2979 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2984 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2980 get along well with pasting indented code. If I ever figure out
2985 get along well with pasting indented code. If I ever figure out
2981 how to make that part go well, it will become on by default.
2986 how to make that part go well, it will become on by default.
2982
2987
2983 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2988 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2984 crash ipython if there was an unmatched '%' in the user's prompt
2989 crash ipython if there was an unmatched '%' in the user's prompt
2985 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2990 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2986
2991
2987 * IPython/iplib.py (InteractiveShell.interact): removed the
2992 * IPython/iplib.py (InteractiveShell.interact): removed the
2988 ability to ask the user whether he wants to crash or not at the
2993 ability to ask the user whether he wants to crash or not at the
2989 'last line' exception handler. Calling functions at that point
2994 'last line' exception handler. Calling functions at that point
2990 changes the stack, and the error reports would have incorrect
2995 changes the stack, and the error reports would have incorrect
2991 tracebacks.
2996 tracebacks.
2992
2997
2993 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2998 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2994 pass through a peger a pretty-printed form of any object. After a
2999 pass through a peger a pretty-printed form of any object. After a
2995 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3000 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2996
3001
2997 2003-04-14 Fernando Perez <fperez@colorado.edu>
3002 2003-04-14 Fernando Perez <fperez@colorado.edu>
2998
3003
2999 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3004 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3000 all files in ~ would be modified at first install (instead of
3005 all files in ~ would be modified at first install (instead of
3001 ~/.ipython). This could be potentially disastrous, as the
3006 ~/.ipython). This could be potentially disastrous, as the
3002 modification (make line-endings native) could damage binary files.
3007 modification (make line-endings native) could damage binary files.
3003
3008
3004 2003-04-10 Fernando Perez <fperez@colorado.edu>
3009 2003-04-10 Fernando Perez <fperez@colorado.edu>
3005
3010
3006 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3011 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3007 handle only lines which are invalid python. This now means that
3012 handle only lines which are invalid python. This now means that
3008 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3013 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3009 for the bug report.
3014 for the bug report.
3010
3015
3011 2003-04-01 Fernando Perez <fperez@colorado.edu>
3016 2003-04-01 Fernando Perez <fperez@colorado.edu>
3012
3017
3013 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3018 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3014 where failing to set sys.last_traceback would crash pdb.pm().
3019 where failing to set sys.last_traceback would crash pdb.pm().
3015 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3020 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3016 report.
3021 report.
3017
3022
3018 2003-03-25 Fernando Perez <fperez@colorado.edu>
3023 2003-03-25 Fernando Perez <fperez@colorado.edu>
3019
3024
3020 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3025 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3021 before printing it (it had a lot of spurious blank lines at the
3026 before printing it (it had a lot of spurious blank lines at the
3022 end).
3027 end).
3023
3028
3024 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3029 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3025 output would be sent 21 times! Obviously people don't use this
3030 output would be sent 21 times! Obviously people don't use this
3026 too often, or I would have heard about it.
3031 too often, or I would have heard about it.
3027
3032
3028 2003-03-24 Fernando Perez <fperez@colorado.edu>
3033 2003-03-24 Fernando Perez <fperez@colorado.edu>
3029
3034
3030 * setup.py (scriptfiles): renamed the data_files parameter from
3035 * setup.py (scriptfiles): renamed the data_files parameter from
3031 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3036 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3032 for the patch.
3037 for the patch.
3033
3038
3034 2003-03-20 Fernando Perez <fperez@colorado.edu>
3039 2003-03-20 Fernando Perez <fperez@colorado.edu>
3035
3040
3036 * IPython/genutils.py (error): added error() and fatal()
3041 * IPython/genutils.py (error): added error() and fatal()
3037 functions.
3042 functions.
3038
3043
3039 2003-03-18 *** Released version 0.2.15pre3
3044 2003-03-18 *** Released version 0.2.15pre3
3040
3045
3041 2003-03-18 Fernando Perez <fperez@colorado.edu>
3046 2003-03-18 Fernando Perez <fperez@colorado.edu>
3042
3047
3043 * setupext/install_data_ext.py
3048 * setupext/install_data_ext.py
3044 (install_data_ext.initialize_options): Class contributed by Jack
3049 (install_data_ext.initialize_options): Class contributed by Jack
3045 Moffit for fixing the old distutils hack. He is sending this to
3050 Moffit for fixing the old distutils hack. He is sending this to
3046 the distutils folks so in the future we may not need it as a
3051 the distutils folks so in the future we may not need it as a
3047 private fix.
3052 private fix.
3048
3053
3049 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3054 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3050 changes for Debian packaging. See his patch for full details.
3055 changes for Debian packaging. See his patch for full details.
3051 The old distutils hack of making the ipythonrc* files carry a
3056 The old distutils hack of making the ipythonrc* files carry a
3052 bogus .py extension is gone, at last. Examples were moved to a
3057 bogus .py extension is gone, at last. Examples were moved to a
3053 separate subdir under doc/, and the separate executable scripts
3058 separate subdir under doc/, and the separate executable scripts
3054 now live in their own directory. Overall a great cleanup. The
3059 now live in their own directory. Overall a great cleanup. The
3055 manual was updated to use the new files, and setup.py has been
3060 manual was updated to use the new files, and setup.py has been
3056 fixed for this setup.
3061 fixed for this setup.
3057
3062
3058 * IPython/PyColorize.py (Parser.usage): made non-executable and
3063 * IPython/PyColorize.py (Parser.usage): made non-executable and
3059 created a pycolor wrapper around it to be included as a script.
3064 created a pycolor wrapper around it to be included as a script.
3060
3065
3061 2003-03-12 *** Released version 0.2.15pre2
3066 2003-03-12 *** Released version 0.2.15pre2
3062
3067
3063 2003-03-12 Fernando Perez <fperez@colorado.edu>
3068 2003-03-12 Fernando Perez <fperez@colorado.edu>
3064
3069
3065 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3070 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3066 long-standing problem with garbage characters in some terminals.
3071 long-standing problem with garbage characters in some terminals.
3067 The issue was really that the \001 and \002 escapes must _only_ be
3072 The issue was really that the \001 and \002 escapes must _only_ be
3068 passed to input prompts (which call readline), but _never_ to
3073 passed to input prompts (which call readline), but _never_ to
3069 normal text to be printed on screen. I changed ColorANSI to have
3074 normal text to be printed on screen. I changed ColorANSI to have
3070 two classes: TermColors and InputTermColors, each with the
3075 two classes: TermColors and InputTermColors, each with the
3071 appropriate escapes for input prompts or normal text. The code in
3076 appropriate escapes for input prompts or normal text. The code in
3072 Prompts.py got slightly more complicated, but this very old and
3077 Prompts.py got slightly more complicated, but this very old and
3073 annoying bug is finally fixed.
3078 annoying bug is finally fixed.
3074
3079
3075 All the credit for nailing down the real origin of this problem
3080 All the credit for nailing down the real origin of this problem
3076 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3081 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3077 *Many* thanks to him for spending quite a bit of effort on this.
3082 *Many* thanks to him for spending quite a bit of effort on this.
3078
3083
3079 2003-03-05 *** Released version 0.2.15pre1
3084 2003-03-05 *** Released version 0.2.15pre1
3080
3085
3081 2003-03-03 Fernando Perez <fperez@colorado.edu>
3086 2003-03-03 Fernando Perez <fperez@colorado.edu>
3082
3087
3083 * IPython/FakeModule.py: Moved the former _FakeModule to a
3088 * IPython/FakeModule.py: Moved the former _FakeModule to a
3084 separate file, because it's also needed by Magic (to fix a similar
3089 separate file, because it's also needed by Magic (to fix a similar
3085 pickle-related issue in @run).
3090 pickle-related issue in @run).
3086
3091
3087 2003-03-02 Fernando Perez <fperez@colorado.edu>
3092 2003-03-02 Fernando Perez <fperez@colorado.edu>
3088
3093
3089 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3094 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3090 the autocall option at runtime.
3095 the autocall option at runtime.
3091 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3096 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3092 across Magic.py to start separating Magic from InteractiveShell.
3097 across Magic.py to start separating Magic from InteractiveShell.
3093 (Magic._ofind): Fixed to return proper namespace for dotted
3098 (Magic._ofind): Fixed to return proper namespace for dotted
3094 names. Before, a dotted name would always return 'not currently
3099 names. Before, a dotted name would always return 'not currently
3095 defined', because it would find the 'parent'. s.x would be found,
3100 defined', because it would find the 'parent'. s.x would be found,
3096 but since 'x' isn't defined by itself, it would get confused.
3101 but since 'x' isn't defined by itself, it would get confused.
3097 (Magic.magic_run): Fixed pickling problems reported by Ralf
3102 (Magic.magic_run): Fixed pickling problems reported by Ralf
3098 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3103 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3099 that I'd used when Mike Heeter reported similar issues at the
3104 that I'd used when Mike Heeter reported similar issues at the
3100 top-level, but now for @run. It boils down to injecting the
3105 top-level, but now for @run. It boils down to injecting the
3101 namespace where code is being executed with something that looks
3106 namespace where code is being executed with something that looks
3102 enough like a module to fool pickle.dump(). Since a pickle stores
3107 enough like a module to fool pickle.dump(). Since a pickle stores
3103 a named reference to the importing module, we need this for
3108 a named reference to the importing module, we need this for
3104 pickles to save something sensible.
3109 pickles to save something sensible.
3105
3110
3106 * IPython/ipmaker.py (make_IPython): added an autocall option.
3111 * IPython/ipmaker.py (make_IPython): added an autocall option.
3107
3112
3108 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3113 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3109 the auto-eval code. Now autocalling is an option, and the code is
3114 the auto-eval code. Now autocalling is an option, and the code is
3110 also vastly safer. There is no more eval() involved at all.
3115 also vastly safer. There is no more eval() involved at all.
3111
3116
3112 2003-03-01 Fernando Perez <fperez@colorado.edu>
3117 2003-03-01 Fernando Perez <fperez@colorado.edu>
3113
3118
3114 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3119 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3115 dict with named keys instead of a tuple.
3120 dict with named keys instead of a tuple.
3116
3121
3117 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3122 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3118
3123
3119 * setup.py (make_shortcut): Fixed message about directories
3124 * setup.py (make_shortcut): Fixed message about directories
3120 created during Windows installation (the directories were ok, just
3125 created during Windows installation (the directories were ok, just
3121 the printed message was misleading). Thanks to Chris Liechti
3126 the printed message was misleading). Thanks to Chris Liechti
3122 <cliechti-AT-gmx.net> for the heads up.
3127 <cliechti-AT-gmx.net> for the heads up.
3123
3128
3124 2003-02-21 Fernando Perez <fperez@colorado.edu>
3129 2003-02-21 Fernando Perez <fperez@colorado.edu>
3125
3130
3126 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3131 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3127 of ValueError exception when checking for auto-execution. This
3132 of ValueError exception when checking for auto-execution. This
3128 one is raised by things like Numeric arrays arr.flat when the
3133 one is raised by things like Numeric arrays arr.flat when the
3129 array is non-contiguous.
3134 array is non-contiguous.
3130
3135
3131 2003-01-31 Fernando Perez <fperez@colorado.edu>
3136 2003-01-31 Fernando Perez <fperez@colorado.edu>
3132
3137
3133 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3138 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3134 not return any value at all (even though the command would get
3139 not return any value at all (even though the command would get
3135 executed).
3140 executed).
3136 (xsys): Flush stdout right after printing the command to ensure
3141 (xsys): Flush stdout right after printing the command to ensure
3137 proper ordering of commands and command output in the total
3142 proper ordering of commands and command output in the total
3138 output.
3143 output.
3139 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3144 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3140 system/getoutput as defaults. The old ones are kept for
3145 system/getoutput as defaults. The old ones are kept for
3141 compatibility reasons, so no code which uses this library needs
3146 compatibility reasons, so no code which uses this library needs
3142 changing.
3147 changing.
3143
3148
3144 2003-01-27 *** Released version 0.2.14
3149 2003-01-27 *** Released version 0.2.14
3145
3150
3146 2003-01-25 Fernando Perez <fperez@colorado.edu>
3151 2003-01-25 Fernando Perez <fperez@colorado.edu>
3147
3152
3148 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3153 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3149 functions defined in previous edit sessions could not be re-edited
3154 functions defined in previous edit sessions could not be re-edited
3150 (because the temp files were immediately removed). Now temp files
3155 (because the temp files were immediately removed). Now temp files
3151 are removed only at IPython's exit.
3156 are removed only at IPython's exit.
3152 (Magic.magic_run): Improved @run to perform shell-like expansions
3157 (Magic.magic_run): Improved @run to perform shell-like expansions
3153 on its arguments (~users and $VARS). With this, @run becomes more
3158 on its arguments (~users and $VARS). With this, @run becomes more
3154 like a normal command-line.
3159 like a normal command-line.
3155
3160
3156 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3161 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3157 bugs related to embedding and cleaned up that code. A fairly
3162 bugs related to embedding and cleaned up that code. A fairly
3158 important one was the impossibility to access the global namespace
3163 important one was the impossibility to access the global namespace
3159 through the embedded IPython (only local variables were visible).
3164 through the embedded IPython (only local variables were visible).
3160
3165
3161 2003-01-14 Fernando Perez <fperez@colorado.edu>
3166 2003-01-14 Fernando Perez <fperez@colorado.edu>
3162
3167
3163 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3168 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3164 auto-calling to be a bit more conservative. Now it doesn't get
3169 auto-calling to be a bit more conservative. Now it doesn't get
3165 triggered if any of '!=()<>' are in the rest of the input line, to
3170 triggered if any of '!=()<>' are in the rest of the input line, to
3166 allow comparing callables. Thanks to Alex for the heads up.
3171 allow comparing callables. Thanks to Alex for the heads up.
3167
3172
3168 2003-01-07 Fernando Perez <fperez@colorado.edu>
3173 2003-01-07 Fernando Perez <fperez@colorado.edu>
3169
3174
3170 * IPython/genutils.py (page): fixed estimation of the number of
3175 * IPython/genutils.py (page): fixed estimation of the number of
3171 lines in a string to be paged to simply count newlines. This
3176 lines in a string to be paged to simply count newlines. This
3172 prevents over-guessing due to embedded escape sequences. A better
3177 prevents over-guessing due to embedded escape sequences. A better
3173 long-term solution would involve stripping out the control chars
3178 long-term solution would involve stripping out the control chars
3174 for the count, but it's potentially so expensive I just don't
3179 for the count, but it's potentially so expensive I just don't
3175 think it's worth doing.
3180 think it's worth doing.
3176
3181
3177 2002-12-19 *** Released version 0.2.14pre50
3182 2002-12-19 *** Released version 0.2.14pre50
3178
3183
3179 2002-12-19 Fernando Perez <fperez@colorado.edu>
3184 2002-12-19 Fernando Perez <fperez@colorado.edu>
3180
3185
3181 * tools/release (version): Changed release scripts to inform
3186 * tools/release (version): Changed release scripts to inform
3182 Andrea and build a NEWS file with a list of recent changes.
3187 Andrea and build a NEWS file with a list of recent changes.
3183
3188
3184 * IPython/ColorANSI.py (__all__): changed terminal detection
3189 * IPython/ColorANSI.py (__all__): changed terminal detection
3185 code. Seems to work better for xterms without breaking
3190 code. Seems to work better for xterms without breaking
3186 konsole. Will need more testing to determine if WinXP and Mac OSX
3191 konsole. Will need more testing to determine if WinXP and Mac OSX
3187 also work ok.
3192 also work ok.
3188
3193
3189 2002-12-18 *** Released version 0.2.14pre49
3194 2002-12-18 *** Released version 0.2.14pre49
3190
3195
3191 2002-12-18 Fernando Perez <fperez@colorado.edu>
3196 2002-12-18 Fernando Perez <fperez@colorado.edu>
3192
3197
3193 * Docs: added new info about Mac OSX, from Andrea.
3198 * Docs: added new info about Mac OSX, from Andrea.
3194
3199
3195 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3200 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3196 allow direct plotting of python strings whose format is the same
3201 allow direct plotting of python strings whose format is the same
3197 of gnuplot data files.
3202 of gnuplot data files.
3198
3203
3199 2002-12-16 Fernando Perez <fperez@colorado.edu>
3204 2002-12-16 Fernando Perez <fperez@colorado.edu>
3200
3205
3201 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3206 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3202 value of exit question to be acknowledged.
3207 value of exit question to be acknowledged.
3203
3208
3204 2002-12-03 Fernando Perez <fperez@colorado.edu>
3209 2002-12-03 Fernando Perez <fperez@colorado.edu>
3205
3210
3206 * IPython/ipmaker.py: removed generators, which had been added
3211 * IPython/ipmaker.py: removed generators, which had been added
3207 by mistake in an earlier debugging run. This was causing trouble
3212 by mistake in an earlier debugging run. This was causing trouble
3208 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3213 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3209 for pointing this out.
3214 for pointing this out.
3210
3215
3211 2002-11-17 Fernando Perez <fperez@colorado.edu>
3216 2002-11-17 Fernando Perez <fperez@colorado.edu>
3212
3217
3213 * Manual: updated the Gnuplot section.
3218 * Manual: updated the Gnuplot section.
3214
3219
3215 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3220 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3216 a much better split of what goes in Runtime and what goes in
3221 a much better split of what goes in Runtime and what goes in
3217 Interactive.
3222 Interactive.
3218
3223
3219 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3224 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3220 being imported from iplib.
3225 being imported from iplib.
3221
3226
3222 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3227 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3223 for command-passing. Now the global Gnuplot instance is called
3228 for command-passing. Now the global Gnuplot instance is called
3224 'gp' instead of 'g', which was really a far too fragile and
3229 'gp' instead of 'g', which was really a far too fragile and
3225 common name.
3230 common name.
3226
3231
3227 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3232 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3228 bounding boxes generated by Gnuplot for square plots.
3233 bounding boxes generated by Gnuplot for square plots.
3229
3234
3230 * IPython/genutils.py (popkey): new function added. I should
3235 * IPython/genutils.py (popkey): new function added. I should
3231 suggest this on c.l.py as a dict method, it seems useful.
3236 suggest this on c.l.py as a dict method, it seems useful.
3232
3237
3233 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3238 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3234 to transparently handle PostScript generation. MUCH better than
3239 to transparently handle PostScript generation. MUCH better than
3235 the previous plot_eps/replot_eps (which I removed now). The code
3240 the previous plot_eps/replot_eps (which I removed now). The code
3236 is also fairly clean and well documented now (including
3241 is also fairly clean and well documented now (including
3237 docstrings).
3242 docstrings).
3238
3243
3239 2002-11-13 Fernando Perez <fperez@colorado.edu>
3244 2002-11-13 Fernando Perez <fperez@colorado.edu>
3240
3245
3241 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3246 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3242 (inconsistent with options).
3247 (inconsistent with options).
3243
3248
3244 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3249 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3245 manually disabled, I don't know why. Fixed it.
3250 manually disabled, I don't know why. Fixed it.
3246 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3251 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3247 eps output.
3252 eps output.
3248
3253
3249 2002-11-12 Fernando Perez <fperez@colorado.edu>
3254 2002-11-12 Fernando Perez <fperez@colorado.edu>
3250
3255
3251 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3256 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3252 don't propagate up to caller. Fixes crash reported by François
3257 don't propagate up to caller. Fixes crash reported by François
3253 Pinard.
3258 Pinard.
3254
3259
3255 2002-11-09 Fernando Perez <fperez@colorado.edu>
3260 2002-11-09 Fernando Perez <fperez@colorado.edu>
3256
3261
3257 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3262 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3258 history file for new users.
3263 history file for new users.
3259 (make_IPython): fixed bug where initial install would leave the
3264 (make_IPython): fixed bug where initial install would leave the
3260 user running in the .ipython dir.
3265 user running in the .ipython dir.
3261 (make_IPython): fixed bug where config dir .ipython would be
3266 (make_IPython): fixed bug where config dir .ipython would be
3262 created regardless of the given -ipythondir option. Thanks to Cory
3267 created regardless of the given -ipythondir option. Thanks to Cory
3263 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3268 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3264
3269
3265 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3270 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3266 type confirmations. Will need to use it in all of IPython's code
3271 type confirmations. Will need to use it in all of IPython's code
3267 consistently.
3272 consistently.
3268
3273
3269 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3274 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3270 context to print 31 lines instead of the default 5. This will make
3275 context to print 31 lines instead of the default 5. This will make
3271 the crash reports extremely detailed in case the problem is in
3276 the crash reports extremely detailed in case the problem is in
3272 libraries I don't have access to.
3277 libraries I don't have access to.
3273
3278
3274 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3279 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3275 line of defense' code to still crash, but giving users fair
3280 line of defense' code to still crash, but giving users fair
3276 warning. I don't want internal errors to go unreported: if there's
3281 warning. I don't want internal errors to go unreported: if there's
3277 an internal problem, IPython should crash and generate a full
3282 an internal problem, IPython should crash and generate a full
3278 report.
3283 report.
3279
3284
3280 2002-11-08 Fernando Perez <fperez@colorado.edu>
3285 2002-11-08 Fernando Perez <fperez@colorado.edu>
3281
3286
3282 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3287 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3283 otherwise uncaught exceptions which can appear if people set
3288 otherwise uncaught exceptions which can appear if people set
3284 sys.stdout to something badly broken. Thanks to a crash report
3289 sys.stdout to something badly broken. Thanks to a crash report
3285 from henni-AT-mail.brainbot.com.
3290 from henni-AT-mail.brainbot.com.
3286
3291
3287 2002-11-04 Fernando Perez <fperez@colorado.edu>
3292 2002-11-04 Fernando Perez <fperez@colorado.edu>
3288
3293
3289 * IPython/iplib.py (InteractiveShell.interact): added
3294 * IPython/iplib.py (InteractiveShell.interact): added
3290 __IPYTHON__active to the builtins. It's a flag which goes on when
3295 __IPYTHON__active to the builtins. It's a flag which goes on when
3291 the interaction starts and goes off again when it stops. This
3296 the interaction starts and goes off again when it stops. This
3292 allows embedding code to detect being inside IPython. Before this
3297 allows embedding code to detect being inside IPython. Before this
3293 was done via __IPYTHON__, but that only shows that an IPython
3298 was done via __IPYTHON__, but that only shows that an IPython
3294 instance has been created.
3299 instance has been created.
3295
3300
3296 * IPython/Magic.py (Magic.magic_env): I realized that in a
3301 * IPython/Magic.py (Magic.magic_env): I realized that in a
3297 UserDict, instance.data holds the data as a normal dict. So I
3302 UserDict, instance.data holds the data as a normal dict. So I
3298 modified @env to return os.environ.data instead of rebuilding a
3303 modified @env to return os.environ.data instead of rebuilding a
3299 dict by hand.
3304 dict by hand.
3300
3305
3301 2002-11-02 Fernando Perez <fperez@colorado.edu>
3306 2002-11-02 Fernando Perez <fperez@colorado.edu>
3302
3307
3303 * IPython/genutils.py (warn): changed so that level 1 prints no
3308 * IPython/genutils.py (warn): changed so that level 1 prints no
3304 header. Level 2 is now the default (with 'WARNING' header, as
3309 header. Level 2 is now the default (with 'WARNING' header, as
3305 before). I think I tracked all places where changes were needed in
3310 before). I think I tracked all places where changes were needed in
3306 IPython, but outside code using the old level numbering may have
3311 IPython, but outside code using the old level numbering may have
3307 broken.
3312 broken.
3308
3313
3309 * IPython/iplib.py (InteractiveShell.runcode): added this to
3314 * IPython/iplib.py (InteractiveShell.runcode): added this to
3310 handle the tracebacks in SystemExit traps correctly. The previous
3315 handle the tracebacks in SystemExit traps correctly. The previous
3311 code (through interact) was printing more of the stack than
3316 code (through interact) was printing more of the stack than
3312 necessary, showing IPython internal code to the user.
3317 necessary, showing IPython internal code to the user.
3313
3318
3314 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3319 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3315 default. Now that the default at the confirmation prompt is yes,
3320 default. Now that the default at the confirmation prompt is yes,
3316 it's not so intrusive. François' argument that ipython sessions
3321 it's not so intrusive. François' argument that ipython sessions
3317 tend to be complex enough not to lose them from an accidental C-d,
3322 tend to be complex enough not to lose them from an accidental C-d,
3318 is a valid one.
3323 is a valid one.
3319
3324
3320 * IPython/iplib.py (InteractiveShell.interact): added a
3325 * IPython/iplib.py (InteractiveShell.interact): added a
3321 showtraceback() call to the SystemExit trap, and modified the exit
3326 showtraceback() call to the SystemExit trap, and modified the exit
3322 confirmation to have yes as the default.
3327 confirmation to have yes as the default.
3323
3328
3324 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3329 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3325 this file. It's been gone from the code for a long time, this was
3330 this file. It's been gone from the code for a long time, this was
3326 simply leftover junk.
3331 simply leftover junk.
3327
3332
3328 2002-11-01 Fernando Perez <fperez@colorado.edu>
3333 2002-11-01 Fernando Perez <fperez@colorado.edu>
3329
3334
3330 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3335 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3331 added. If set, IPython now traps EOF and asks for
3336 added. If set, IPython now traps EOF and asks for
3332 confirmation. After a request by François Pinard.
3337 confirmation. After a request by François Pinard.
3333
3338
3334 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3339 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3335 of @abort, and with a new (better) mechanism for handling the
3340 of @abort, and with a new (better) mechanism for handling the
3336 exceptions.
3341 exceptions.
3337
3342
3338 2002-10-27 Fernando Perez <fperez@colorado.edu>
3343 2002-10-27 Fernando Perez <fperez@colorado.edu>
3339
3344
3340 * IPython/usage.py (__doc__): updated the --help information and
3345 * IPython/usage.py (__doc__): updated the --help information and
3341 the ipythonrc file to indicate that -log generates
3346 the ipythonrc file to indicate that -log generates
3342 ./ipython.log. Also fixed the corresponding info in @logstart.
3347 ./ipython.log. Also fixed the corresponding info in @logstart.
3343 This and several other fixes in the manuals thanks to reports by
3348 This and several other fixes in the manuals thanks to reports by
3344 François Pinard <pinard-AT-iro.umontreal.ca>.
3349 François Pinard <pinard-AT-iro.umontreal.ca>.
3345
3350
3346 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3351 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3347 refer to @logstart (instead of @log, which doesn't exist).
3352 refer to @logstart (instead of @log, which doesn't exist).
3348
3353
3349 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3354 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3350 AttributeError crash. Thanks to Christopher Armstrong
3355 AttributeError crash. Thanks to Christopher Armstrong
3351 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3356 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3352 introduced recently (in 0.2.14pre37) with the fix to the eval
3357 introduced recently (in 0.2.14pre37) with the fix to the eval
3353 problem mentioned below.
3358 problem mentioned below.
3354
3359
3355 2002-10-17 Fernando Perez <fperez@colorado.edu>
3360 2002-10-17 Fernando Perez <fperez@colorado.edu>
3356
3361
3357 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3362 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3358 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3363 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3359
3364
3360 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3365 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3361 this function to fix a problem reported by Alex Schmolck. He saw
3366 this function to fix a problem reported by Alex Schmolck. He saw
3362 it with list comprehensions and generators, which were getting
3367 it with list comprehensions and generators, which were getting
3363 called twice. The real problem was an 'eval' call in testing for
3368 called twice. The real problem was an 'eval' call in testing for
3364 automagic which was evaluating the input line silently.
3369 automagic which was evaluating the input line silently.
3365
3370
3366 This is a potentially very nasty bug, if the input has side
3371 This is a potentially very nasty bug, if the input has side
3367 effects which must not be repeated. The code is much cleaner now,
3372 effects which must not be repeated. The code is much cleaner now,
3368 without any blanket 'except' left and with a regexp test for
3373 without any blanket 'except' left and with a regexp test for
3369 actual function names.
3374 actual function names.
3370
3375
3371 But an eval remains, which I'm not fully comfortable with. I just
3376 But an eval remains, which I'm not fully comfortable with. I just
3372 don't know how to find out if an expression could be a callable in
3377 don't know how to find out if an expression could be a callable in
3373 the user's namespace without doing an eval on the string. However
3378 the user's namespace without doing an eval on the string. However
3374 that string is now much more strictly checked so that no code
3379 that string is now much more strictly checked so that no code
3375 slips by, so the eval should only happen for things that can
3380 slips by, so the eval should only happen for things that can
3376 really be only function/method names.
3381 really be only function/method names.
3377
3382
3378 2002-10-15 Fernando Perez <fperez@colorado.edu>
3383 2002-10-15 Fernando Perez <fperez@colorado.edu>
3379
3384
3380 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3385 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3381 OSX information to main manual, removed README_Mac_OSX file from
3386 OSX information to main manual, removed README_Mac_OSX file from
3382 distribution. Also updated credits for recent additions.
3387 distribution. Also updated credits for recent additions.
3383
3388
3384 2002-10-10 Fernando Perez <fperez@colorado.edu>
3389 2002-10-10 Fernando Perez <fperez@colorado.edu>
3385
3390
3386 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3391 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3387 terminal-related issues. Many thanks to Andrea Riciputi
3392 terminal-related issues. Many thanks to Andrea Riciputi
3388 <andrea.riciputi-AT-libero.it> for writing it.
3393 <andrea.riciputi-AT-libero.it> for writing it.
3389
3394
3390 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3395 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3391 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3396 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3392
3397
3393 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3398 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3394 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3399 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3395 <syver-en-AT-online.no> who both submitted patches for this problem.
3400 <syver-en-AT-online.no> who both submitted patches for this problem.
3396
3401
3397 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3402 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3398 global embedding to make sure that things don't overwrite user
3403 global embedding to make sure that things don't overwrite user
3399 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3404 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3400
3405
3401 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3406 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3402 compatibility. Thanks to Hayden Callow
3407 compatibility. Thanks to Hayden Callow
3403 <h.callow-AT-elec.canterbury.ac.nz>
3408 <h.callow-AT-elec.canterbury.ac.nz>
3404
3409
3405 2002-10-04 Fernando Perez <fperez@colorado.edu>
3410 2002-10-04 Fernando Perez <fperez@colorado.edu>
3406
3411
3407 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3412 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3408 Gnuplot.File objects.
3413 Gnuplot.File objects.
3409
3414
3410 2002-07-23 Fernando Perez <fperez@colorado.edu>
3415 2002-07-23 Fernando Perez <fperez@colorado.edu>
3411
3416
3412 * IPython/genutils.py (timing): Added timings() and timing() for
3417 * IPython/genutils.py (timing): Added timings() and timing() for
3413 quick access to the most commonly needed data, the execution
3418 quick access to the most commonly needed data, the execution
3414 times. Old timing() renamed to timings_out().
3419 times. Old timing() renamed to timings_out().
3415
3420
3416 2002-07-18 Fernando Perez <fperez@colorado.edu>
3421 2002-07-18 Fernando Perez <fperez@colorado.edu>
3417
3422
3418 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3423 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3419 bug with nested instances disrupting the parent's tab completion.
3424 bug with nested instances disrupting the parent's tab completion.
3420
3425
3421 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3426 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3422 all_completions code to begin the emacs integration.
3427 all_completions code to begin the emacs integration.
3423
3428
3424 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3429 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3425 argument to allow titling individual arrays when plotting.
3430 argument to allow titling individual arrays when plotting.
3426
3431
3427 2002-07-15 Fernando Perez <fperez@colorado.edu>
3432 2002-07-15 Fernando Perez <fperez@colorado.edu>
3428
3433
3429 * setup.py (make_shortcut): changed to retrieve the value of
3434 * setup.py (make_shortcut): changed to retrieve the value of
3430 'Program Files' directory from the registry (this value changes in
3435 'Program Files' directory from the registry (this value changes in
3431 non-english versions of Windows). Thanks to Thomas Fanslau
3436 non-english versions of Windows). Thanks to Thomas Fanslau
3432 <tfanslau-AT-gmx.de> for the report.
3437 <tfanslau-AT-gmx.de> for the report.
3433
3438
3434 2002-07-10 Fernando Perez <fperez@colorado.edu>
3439 2002-07-10 Fernando Perez <fperez@colorado.edu>
3435
3440
3436 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3441 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3437 a bug in pdb, which crashes if a line with only whitespace is
3442 a bug in pdb, which crashes if a line with only whitespace is
3438 entered. Bug report submitted to sourceforge.
3443 entered. Bug report submitted to sourceforge.
3439
3444
3440 2002-07-09 Fernando Perez <fperez@colorado.edu>
3445 2002-07-09 Fernando Perez <fperez@colorado.edu>
3441
3446
3442 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3447 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3443 reporting exceptions (it's a bug in inspect.py, I just set a
3448 reporting exceptions (it's a bug in inspect.py, I just set a
3444 workaround).
3449 workaround).
3445
3450
3446 2002-07-08 Fernando Perez <fperez@colorado.edu>
3451 2002-07-08 Fernando Perez <fperez@colorado.edu>
3447
3452
3448 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3453 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3449 __IPYTHON__ in __builtins__ to show up in user_ns.
3454 __IPYTHON__ in __builtins__ to show up in user_ns.
3450
3455
3451 2002-07-03 Fernando Perez <fperez@colorado.edu>
3456 2002-07-03 Fernando Perez <fperez@colorado.edu>
3452
3457
3453 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3458 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3454 name from @gp_set_instance to @gp_set_default.
3459 name from @gp_set_instance to @gp_set_default.
3455
3460
3456 * IPython/ipmaker.py (make_IPython): default editor value set to
3461 * IPython/ipmaker.py (make_IPython): default editor value set to
3457 '0' (a string), to match the rc file. Otherwise will crash when
3462 '0' (a string), to match the rc file. Otherwise will crash when
3458 .strip() is called on it.
3463 .strip() is called on it.
3459
3464
3460
3465
3461 2002-06-28 Fernando Perez <fperez@colorado.edu>
3466 2002-06-28 Fernando Perez <fperez@colorado.edu>
3462
3467
3463 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3468 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3464 of files in current directory when a file is executed via
3469 of files in current directory when a file is executed via
3465 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3470 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3466
3471
3467 * setup.py (manfiles): fix for rpm builds, submitted by RA
3472 * setup.py (manfiles): fix for rpm builds, submitted by RA
3468 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3473 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3469
3474
3470 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3475 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3471 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3476 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3472 string!). A. Schmolck caught this one.
3477 string!). A. Schmolck caught this one.
3473
3478
3474 2002-06-27 Fernando Perez <fperez@colorado.edu>
3479 2002-06-27 Fernando Perez <fperez@colorado.edu>
3475
3480
3476 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3481 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3477 defined files at the cmd line. __name__ wasn't being set to
3482 defined files at the cmd line. __name__ wasn't being set to
3478 __main__.
3483 __main__.
3479
3484
3480 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3485 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3481 regular lists and tuples besides Numeric arrays.
3486 regular lists and tuples besides Numeric arrays.
3482
3487
3483 * IPython/Prompts.py (CachedOutput.__call__): Added output
3488 * IPython/Prompts.py (CachedOutput.__call__): Added output
3484 supression for input ending with ';'. Similar to Mathematica and
3489 supression for input ending with ';'. Similar to Mathematica and
3485 Matlab. The _* vars and Out[] list are still updated, just like
3490 Matlab. The _* vars and Out[] list are still updated, just like
3486 Mathematica behaves.
3491 Mathematica behaves.
3487
3492
3488 2002-06-25 Fernando Perez <fperez@colorado.edu>
3493 2002-06-25 Fernando Perez <fperez@colorado.edu>
3489
3494
3490 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3495 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3491 .ini extensions for profiels under Windows.
3496 .ini extensions for profiels under Windows.
3492
3497
3493 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3498 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3494 string form. Fix contributed by Alexander Schmolck
3499 string form. Fix contributed by Alexander Schmolck
3495 <a.schmolck-AT-gmx.net>
3500 <a.schmolck-AT-gmx.net>
3496
3501
3497 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3502 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3498 pre-configured Gnuplot instance.
3503 pre-configured Gnuplot instance.
3499
3504
3500 2002-06-21 Fernando Perez <fperez@colorado.edu>
3505 2002-06-21 Fernando Perez <fperez@colorado.edu>
3501
3506
3502 * IPython/numutils.py (exp_safe): new function, works around the
3507 * IPython/numutils.py (exp_safe): new function, works around the
3503 underflow problems in Numeric.
3508 underflow problems in Numeric.
3504 (log2): New fn. Safe log in base 2: returns exact integer answer
3509 (log2): New fn. Safe log in base 2: returns exact integer answer
3505 for exact integer powers of 2.
3510 for exact integer powers of 2.
3506
3511
3507 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3512 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3508 properly.
3513 properly.
3509
3514
3510 2002-06-20 Fernando Perez <fperez@colorado.edu>
3515 2002-06-20 Fernando Perez <fperez@colorado.edu>
3511
3516
3512 * IPython/genutils.py (timing): new function like
3517 * IPython/genutils.py (timing): new function like
3513 Mathematica's. Similar to time_test, but returns more info.
3518 Mathematica's. Similar to time_test, but returns more info.
3514
3519
3515 2002-06-18 Fernando Perez <fperez@colorado.edu>
3520 2002-06-18 Fernando Perez <fperez@colorado.edu>
3516
3521
3517 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3522 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3518 according to Mike Heeter's suggestions.
3523 according to Mike Heeter's suggestions.
3519
3524
3520 2002-06-16 Fernando Perez <fperez@colorado.edu>
3525 2002-06-16 Fernando Perez <fperez@colorado.edu>
3521
3526
3522 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3527 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3523 system. GnuplotMagic is gone as a user-directory option. New files
3528 system. GnuplotMagic is gone as a user-directory option. New files
3524 make it easier to use all the gnuplot stuff both from external
3529 make it easier to use all the gnuplot stuff both from external
3525 programs as well as from IPython. Had to rewrite part of
3530 programs as well as from IPython. Had to rewrite part of
3526 hardcopy() b/c of a strange bug: often the ps files simply don't
3531 hardcopy() b/c of a strange bug: often the ps files simply don't
3527 get created, and require a repeat of the command (often several
3532 get created, and require a repeat of the command (often several
3528 times).
3533 times).
3529
3534
3530 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3535 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3531 resolve output channel at call time, so that if sys.stderr has
3536 resolve output channel at call time, so that if sys.stderr has
3532 been redirected by user this gets honored.
3537 been redirected by user this gets honored.
3533
3538
3534 2002-06-13 Fernando Perez <fperez@colorado.edu>
3539 2002-06-13 Fernando Perez <fperez@colorado.edu>
3535
3540
3536 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3541 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3537 IPShell. Kept a copy with the old names to avoid breaking people's
3542 IPShell. Kept a copy with the old names to avoid breaking people's
3538 embedded code.
3543 embedded code.
3539
3544
3540 * IPython/ipython: simplified it to the bare minimum after
3545 * IPython/ipython: simplified it to the bare minimum after
3541 Holger's suggestions. Added info about how to use it in
3546 Holger's suggestions. Added info about how to use it in
3542 PYTHONSTARTUP.
3547 PYTHONSTARTUP.
3543
3548
3544 * IPython/Shell.py (IPythonShell): changed the options passing
3549 * IPython/Shell.py (IPythonShell): changed the options passing
3545 from a string with funky %s replacements to a straight list. Maybe
3550 from a string with funky %s replacements to a straight list. Maybe
3546 a bit more typing, but it follows sys.argv conventions, so there's
3551 a bit more typing, but it follows sys.argv conventions, so there's
3547 less special-casing to remember.
3552 less special-casing to remember.
3548
3553
3549 2002-06-12 Fernando Perez <fperez@colorado.edu>
3554 2002-06-12 Fernando Perez <fperez@colorado.edu>
3550
3555
3551 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3556 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3552 command. Thanks to a suggestion by Mike Heeter.
3557 command. Thanks to a suggestion by Mike Heeter.
3553 (Magic.magic_pfile): added behavior to look at filenames if given
3558 (Magic.magic_pfile): added behavior to look at filenames if given
3554 arg is not a defined object.
3559 arg is not a defined object.
3555 (Magic.magic_save): New @save function to save code snippets. Also
3560 (Magic.magic_save): New @save function to save code snippets. Also
3556 a Mike Heeter idea.
3561 a Mike Heeter idea.
3557
3562
3558 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3563 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3559 plot() and replot(). Much more convenient now, especially for
3564 plot() and replot(). Much more convenient now, especially for
3560 interactive use.
3565 interactive use.
3561
3566
3562 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3567 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3563 filenames.
3568 filenames.
3564
3569
3565 2002-06-02 Fernando Perez <fperez@colorado.edu>
3570 2002-06-02 Fernando Perez <fperez@colorado.edu>
3566
3571
3567 * IPython/Struct.py (Struct.__init__): modified to admit
3572 * IPython/Struct.py (Struct.__init__): modified to admit
3568 initialization via another struct.
3573 initialization via another struct.
3569
3574
3570 * IPython/genutils.py (SystemExec.__init__): New stateful
3575 * IPython/genutils.py (SystemExec.__init__): New stateful
3571 interface to xsys and bq. Useful for writing system scripts.
3576 interface to xsys and bq. Useful for writing system scripts.
3572
3577
3573 2002-05-30 Fernando Perez <fperez@colorado.edu>
3578 2002-05-30 Fernando Perez <fperez@colorado.edu>
3574
3579
3575 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3580 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3576 documents. This will make the user download smaller (it's getting
3581 documents. This will make the user download smaller (it's getting
3577 too big).
3582 too big).
3578
3583
3579 2002-05-29 Fernando Perez <fperez@colorado.edu>
3584 2002-05-29 Fernando Perez <fperez@colorado.edu>
3580
3585
3581 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3586 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3582 fix problems with shelve and pickle. Seems to work, but I don't
3587 fix problems with shelve and pickle. Seems to work, but I don't
3583 know if corner cases break it. Thanks to Mike Heeter
3588 know if corner cases break it. Thanks to Mike Heeter
3584 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3589 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3585
3590
3586 2002-05-24 Fernando Perez <fperez@colorado.edu>
3591 2002-05-24 Fernando Perez <fperez@colorado.edu>
3587
3592
3588 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3593 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3589 macros having broken.
3594 macros having broken.
3590
3595
3591 2002-05-21 Fernando Perez <fperez@colorado.edu>
3596 2002-05-21 Fernando Perez <fperez@colorado.edu>
3592
3597
3593 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3598 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3594 introduced logging bug: all history before logging started was
3599 introduced logging bug: all history before logging started was
3595 being written one character per line! This came from the redesign
3600 being written one character per line! This came from the redesign
3596 of the input history as a special list which slices to strings,
3601 of the input history as a special list which slices to strings,
3597 not to lists.
3602 not to lists.
3598
3603
3599 2002-05-20 Fernando Perez <fperez@colorado.edu>
3604 2002-05-20 Fernando Perez <fperez@colorado.edu>
3600
3605
3601 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3606 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3602 be an attribute of all classes in this module. The design of these
3607 be an attribute of all classes in this module. The design of these
3603 classes needs some serious overhauling.
3608 classes needs some serious overhauling.
3604
3609
3605 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3610 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3606 which was ignoring '_' in option names.
3611 which was ignoring '_' in option names.
3607
3612
3608 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3613 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3609 'Verbose_novars' to 'Context' and made it the new default. It's a
3614 'Verbose_novars' to 'Context' and made it the new default. It's a
3610 bit more readable and also safer than verbose.
3615 bit more readable and also safer than verbose.
3611
3616
3612 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3617 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3613 triple-quoted strings.
3618 triple-quoted strings.
3614
3619
3615 * IPython/OInspect.py (__all__): new module exposing the object
3620 * IPython/OInspect.py (__all__): new module exposing the object
3616 introspection facilities. Now the corresponding magics are dummy
3621 introspection facilities. Now the corresponding magics are dummy
3617 wrappers around this. Having this module will make it much easier
3622 wrappers around this. Having this module will make it much easier
3618 to put these functions into our modified pdb.
3623 to put these functions into our modified pdb.
3619 This new object inspector system uses the new colorizing module,
3624 This new object inspector system uses the new colorizing module,
3620 so source code and other things are nicely syntax highlighted.
3625 so source code and other things are nicely syntax highlighted.
3621
3626
3622 2002-05-18 Fernando Perez <fperez@colorado.edu>
3627 2002-05-18 Fernando Perez <fperez@colorado.edu>
3623
3628
3624 * IPython/ColorANSI.py: Split the coloring tools into a separate
3629 * IPython/ColorANSI.py: Split the coloring tools into a separate
3625 module so I can use them in other code easier (they were part of
3630 module so I can use them in other code easier (they were part of
3626 ultraTB).
3631 ultraTB).
3627
3632
3628 2002-05-17 Fernando Perez <fperez@colorado.edu>
3633 2002-05-17 Fernando Perez <fperez@colorado.edu>
3629
3634
3630 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3635 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3631 fixed it to set the global 'g' also to the called instance, as
3636 fixed it to set the global 'g' also to the called instance, as
3632 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3637 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3633 user's 'g' variables).
3638 user's 'g' variables).
3634
3639
3635 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3640 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3636 global variables (aliases to _ih,_oh) so that users which expect
3641 global variables (aliases to _ih,_oh) so that users which expect
3637 In[5] or Out[7] to work aren't unpleasantly surprised.
3642 In[5] or Out[7] to work aren't unpleasantly surprised.
3638 (InputList.__getslice__): new class to allow executing slices of
3643 (InputList.__getslice__): new class to allow executing slices of
3639 input history directly. Very simple class, complements the use of
3644 input history directly. Very simple class, complements the use of
3640 macros.
3645 macros.
3641
3646
3642 2002-05-16 Fernando Perez <fperez@colorado.edu>
3647 2002-05-16 Fernando Perez <fperez@colorado.edu>
3643
3648
3644 * setup.py (docdirbase): make doc directory be just doc/IPython
3649 * setup.py (docdirbase): make doc directory be just doc/IPython
3645 without version numbers, it will reduce clutter for users.
3650 without version numbers, it will reduce clutter for users.
3646
3651
3647 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3652 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3648 execfile call to prevent possible memory leak. See for details:
3653 execfile call to prevent possible memory leak. See for details:
3649 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3654 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3650
3655
3651 2002-05-15 Fernando Perez <fperez@colorado.edu>
3656 2002-05-15 Fernando Perez <fperez@colorado.edu>
3652
3657
3653 * IPython/Magic.py (Magic.magic_psource): made the object
3658 * IPython/Magic.py (Magic.magic_psource): made the object
3654 introspection names be more standard: pdoc, pdef, pfile and
3659 introspection names be more standard: pdoc, pdef, pfile and
3655 psource. They all print/page their output, and it makes
3660 psource. They all print/page their output, and it makes
3656 remembering them easier. Kept old names for compatibility as
3661 remembering them easier. Kept old names for compatibility as
3657 aliases.
3662 aliases.
3658
3663
3659 2002-05-14 Fernando Perez <fperez@colorado.edu>
3664 2002-05-14 Fernando Perez <fperez@colorado.edu>
3660
3665
3661 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3666 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3662 what the mouse problem was. The trick is to use gnuplot with temp
3667 what the mouse problem was. The trick is to use gnuplot with temp
3663 files and NOT with pipes (for data communication), because having
3668 files and NOT with pipes (for data communication), because having
3664 both pipes and the mouse on is bad news.
3669 both pipes and the mouse on is bad news.
3665
3670
3666 2002-05-13 Fernando Perez <fperez@colorado.edu>
3671 2002-05-13 Fernando Perez <fperez@colorado.edu>
3667
3672
3668 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3673 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3669 bug. Information would be reported about builtins even when
3674 bug. Information would be reported about builtins even when
3670 user-defined functions overrode them.
3675 user-defined functions overrode them.
3671
3676
3672 2002-05-11 Fernando Perez <fperez@colorado.edu>
3677 2002-05-11 Fernando Perez <fperez@colorado.edu>
3673
3678
3674 * IPython/__init__.py (__all__): removed FlexCompleter from
3679 * IPython/__init__.py (__all__): removed FlexCompleter from
3675 __all__ so that things don't fail in platforms without readline.
3680 __all__ so that things don't fail in platforms without readline.
3676
3681
3677 2002-05-10 Fernando Perez <fperez@colorado.edu>
3682 2002-05-10 Fernando Perez <fperez@colorado.edu>
3678
3683
3679 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3684 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3680 it requires Numeric, effectively making Numeric a dependency for
3685 it requires Numeric, effectively making Numeric a dependency for
3681 IPython.
3686 IPython.
3682
3687
3683 * Released 0.2.13
3688 * Released 0.2.13
3684
3689
3685 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3690 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3686 profiler interface. Now all the major options from the profiler
3691 profiler interface. Now all the major options from the profiler
3687 module are directly supported in IPython, both for single
3692 module are directly supported in IPython, both for single
3688 expressions (@prun) and for full programs (@run -p).
3693 expressions (@prun) and for full programs (@run -p).
3689
3694
3690 2002-05-09 Fernando Perez <fperez@colorado.edu>
3695 2002-05-09 Fernando Perez <fperez@colorado.edu>
3691
3696
3692 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3697 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3693 magic properly formatted for screen.
3698 magic properly formatted for screen.
3694
3699
3695 * setup.py (make_shortcut): Changed things to put pdf version in
3700 * setup.py (make_shortcut): Changed things to put pdf version in
3696 doc/ instead of doc/manual (had to change lyxport a bit).
3701 doc/ instead of doc/manual (had to change lyxport a bit).
3697
3702
3698 * IPython/Magic.py (Profile.string_stats): made profile runs go
3703 * IPython/Magic.py (Profile.string_stats): made profile runs go
3699 through pager (they are long and a pager allows searching, saving,
3704 through pager (they are long and a pager allows searching, saving,
3700 etc.)
3705 etc.)
3701
3706
3702 2002-05-08 Fernando Perez <fperez@colorado.edu>
3707 2002-05-08 Fernando Perez <fperez@colorado.edu>
3703
3708
3704 * Released 0.2.12
3709 * Released 0.2.12
3705
3710
3706 2002-05-06 Fernando Perez <fperez@colorado.edu>
3711 2002-05-06 Fernando Perez <fperez@colorado.edu>
3707
3712
3708 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3713 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3709 introduced); 'hist n1 n2' was broken.
3714 introduced); 'hist n1 n2' was broken.
3710 (Magic.magic_pdb): added optional on/off arguments to @pdb
3715 (Magic.magic_pdb): added optional on/off arguments to @pdb
3711 (Magic.magic_run): added option -i to @run, which executes code in
3716 (Magic.magic_run): added option -i to @run, which executes code in
3712 the IPython namespace instead of a clean one. Also added @irun as
3717 the IPython namespace instead of a clean one. Also added @irun as
3713 an alias to @run -i.
3718 an alias to @run -i.
3714
3719
3715 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3720 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3716 fixed (it didn't really do anything, the namespaces were wrong).
3721 fixed (it didn't really do anything, the namespaces were wrong).
3717
3722
3718 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3723 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3719
3724
3720 * IPython/__init__.py (__all__): Fixed package namespace, now
3725 * IPython/__init__.py (__all__): Fixed package namespace, now
3721 'import IPython' does give access to IPython.<all> as
3726 'import IPython' does give access to IPython.<all> as
3722 expected. Also renamed __release__ to Release.
3727 expected. Also renamed __release__ to Release.
3723
3728
3724 * IPython/Debugger.py (__license__): created new Pdb class which
3729 * IPython/Debugger.py (__license__): created new Pdb class which
3725 functions like a drop-in for the normal pdb.Pdb but does NOT
3730 functions like a drop-in for the normal pdb.Pdb but does NOT
3726 import readline by default. This way it doesn't muck up IPython's
3731 import readline by default. This way it doesn't muck up IPython's
3727 readline handling, and now tab-completion finally works in the
3732 readline handling, and now tab-completion finally works in the
3728 debugger -- sort of. It completes things globally visible, but the
3733 debugger -- sort of. It completes things globally visible, but the
3729 completer doesn't track the stack as pdb walks it. That's a bit
3734 completer doesn't track the stack as pdb walks it. That's a bit
3730 tricky, and I'll have to implement it later.
3735 tricky, and I'll have to implement it later.
3731
3736
3732 2002-05-05 Fernando Perez <fperez@colorado.edu>
3737 2002-05-05 Fernando Perez <fperez@colorado.edu>
3733
3738
3734 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3739 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3735 magic docstrings when printed via ? (explicit \'s were being
3740 magic docstrings when printed via ? (explicit \'s were being
3736 printed).
3741 printed).
3737
3742
3738 * IPython/ipmaker.py (make_IPython): fixed namespace
3743 * IPython/ipmaker.py (make_IPython): fixed namespace
3739 identification bug. Now variables loaded via logs or command-line
3744 identification bug. Now variables loaded via logs or command-line
3740 files are recognized in the interactive namespace by @who.
3745 files are recognized in the interactive namespace by @who.
3741
3746
3742 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3747 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3743 log replay system stemming from the string form of Structs.
3748 log replay system stemming from the string form of Structs.
3744
3749
3745 * IPython/Magic.py (Macro.__init__): improved macros to properly
3750 * IPython/Magic.py (Macro.__init__): improved macros to properly
3746 handle magic commands in them.
3751 handle magic commands in them.
3747 (Magic.magic_logstart): usernames are now expanded so 'logstart
3752 (Magic.magic_logstart): usernames are now expanded so 'logstart
3748 ~/mylog' now works.
3753 ~/mylog' now works.
3749
3754
3750 * IPython/iplib.py (complete): fixed bug where paths starting with
3755 * IPython/iplib.py (complete): fixed bug where paths starting with
3751 '/' would be completed as magic names.
3756 '/' would be completed as magic names.
3752
3757
3753 2002-05-04 Fernando Perez <fperez@colorado.edu>
3758 2002-05-04 Fernando Perez <fperez@colorado.edu>
3754
3759
3755 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3760 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3756 allow running full programs under the profiler's control.
3761 allow running full programs under the profiler's control.
3757
3762
3758 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3763 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3759 mode to report exceptions verbosely but without formatting
3764 mode to report exceptions verbosely but without formatting
3760 variables. This addresses the issue of ipython 'freezing' (it's
3765 variables. This addresses the issue of ipython 'freezing' (it's
3761 not frozen, but caught in an expensive formatting loop) when huge
3766 not frozen, but caught in an expensive formatting loop) when huge
3762 variables are in the context of an exception.
3767 variables are in the context of an exception.
3763 (VerboseTB.text): Added '--->' markers at line where exception was
3768 (VerboseTB.text): Added '--->' markers at line where exception was
3764 triggered. Much clearer to read, especially in NoColor modes.
3769 triggered. Much clearer to read, especially in NoColor modes.
3765
3770
3766 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3771 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3767 implemented in reverse when changing to the new parse_options().
3772 implemented in reverse when changing to the new parse_options().
3768
3773
3769 2002-05-03 Fernando Perez <fperez@colorado.edu>
3774 2002-05-03 Fernando Perez <fperez@colorado.edu>
3770
3775
3771 * IPython/Magic.py (Magic.parse_options): new function so that
3776 * IPython/Magic.py (Magic.parse_options): new function so that
3772 magics can parse options easier.
3777 magics can parse options easier.
3773 (Magic.magic_prun): new function similar to profile.run(),
3778 (Magic.magic_prun): new function similar to profile.run(),
3774 suggested by Chris Hart.
3779 suggested by Chris Hart.
3775 (Magic.magic_cd): fixed behavior so that it only changes if
3780 (Magic.magic_cd): fixed behavior so that it only changes if
3776 directory actually is in history.
3781 directory actually is in history.
3777
3782
3778 * IPython/usage.py (__doc__): added information about potential
3783 * IPython/usage.py (__doc__): added information about potential
3779 slowness of Verbose exception mode when there are huge data
3784 slowness of Verbose exception mode when there are huge data
3780 structures to be formatted (thanks to Archie Paulson).
3785 structures to be formatted (thanks to Archie Paulson).
3781
3786
3782 * IPython/ipmaker.py (make_IPython): Changed default logging
3787 * IPython/ipmaker.py (make_IPython): Changed default logging
3783 (when simply called with -log) to use curr_dir/ipython.log in
3788 (when simply called with -log) to use curr_dir/ipython.log in
3784 rotate mode. Fixed crash which was occuring with -log before
3789 rotate mode. Fixed crash which was occuring with -log before
3785 (thanks to Jim Boyle).
3790 (thanks to Jim Boyle).
3786
3791
3787 2002-05-01 Fernando Perez <fperez@colorado.edu>
3792 2002-05-01 Fernando Perez <fperez@colorado.edu>
3788
3793
3789 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3794 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3790 was nasty -- though somewhat of a corner case).
3795 was nasty -- though somewhat of a corner case).
3791
3796
3792 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3797 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3793 text (was a bug).
3798 text (was a bug).
3794
3799
3795 2002-04-30 Fernando Perez <fperez@colorado.edu>
3800 2002-04-30 Fernando Perez <fperez@colorado.edu>
3796
3801
3797 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3802 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3798 a print after ^D or ^C from the user so that the In[] prompt
3803 a print after ^D or ^C from the user so that the In[] prompt
3799 doesn't over-run the gnuplot one.
3804 doesn't over-run the gnuplot one.
3800
3805
3801 2002-04-29 Fernando Perez <fperez@colorado.edu>
3806 2002-04-29 Fernando Perez <fperez@colorado.edu>
3802
3807
3803 * Released 0.2.10
3808 * Released 0.2.10
3804
3809
3805 * IPython/__release__.py (version): get date dynamically.
3810 * IPython/__release__.py (version): get date dynamically.
3806
3811
3807 * Misc. documentation updates thanks to Arnd's comments. Also ran
3812 * Misc. documentation updates thanks to Arnd's comments. Also ran
3808 a full spellcheck on the manual (hadn't been done in a while).
3813 a full spellcheck on the manual (hadn't been done in a while).
3809
3814
3810 2002-04-27 Fernando Perez <fperez@colorado.edu>
3815 2002-04-27 Fernando Perez <fperez@colorado.edu>
3811
3816
3812 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3817 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3813 starting a log in mid-session would reset the input history list.
3818 starting a log in mid-session would reset the input history list.
3814
3819
3815 2002-04-26 Fernando Perez <fperez@colorado.edu>
3820 2002-04-26 Fernando Perez <fperez@colorado.edu>
3816
3821
3817 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3822 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3818 all files were being included in an update. Now anything in
3823 all files were being included in an update. Now anything in
3819 UserConfig that matches [A-Za-z]*.py will go (this excludes
3824 UserConfig that matches [A-Za-z]*.py will go (this excludes
3820 __init__.py)
3825 __init__.py)
3821
3826
3822 2002-04-25 Fernando Perez <fperez@colorado.edu>
3827 2002-04-25 Fernando Perez <fperez@colorado.edu>
3823
3828
3824 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3829 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3825 to __builtins__ so that any form of embedded or imported code can
3830 to __builtins__ so that any form of embedded or imported code can
3826 test for being inside IPython.
3831 test for being inside IPython.
3827
3832
3828 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3833 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3829 changed to GnuplotMagic because it's now an importable module,
3834 changed to GnuplotMagic because it's now an importable module,
3830 this makes the name follow that of the standard Gnuplot module.
3835 this makes the name follow that of the standard Gnuplot module.
3831 GnuplotMagic can now be loaded at any time in mid-session.
3836 GnuplotMagic can now be loaded at any time in mid-session.
3832
3837
3833 2002-04-24 Fernando Perez <fperez@colorado.edu>
3838 2002-04-24 Fernando Perez <fperez@colorado.edu>
3834
3839
3835 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3840 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3836 the globals (IPython has its own namespace) and the
3841 the globals (IPython has its own namespace) and the
3837 PhysicalQuantity stuff is much better anyway.
3842 PhysicalQuantity stuff is much better anyway.
3838
3843
3839 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3844 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3840 embedding example to standard user directory for
3845 embedding example to standard user directory for
3841 distribution. Also put it in the manual.
3846 distribution. Also put it in the manual.
3842
3847
3843 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3848 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3844 instance as first argument (so it doesn't rely on some obscure
3849 instance as first argument (so it doesn't rely on some obscure
3845 hidden global).
3850 hidden global).
3846
3851
3847 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3852 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3848 delimiters. While it prevents ().TAB from working, it allows
3853 delimiters. While it prevents ().TAB from working, it allows
3849 completions in open (... expressions. This is by far a more common
3854 completions in open (... expressions. This is by far a more common
3850 case.
3855 case.
3851
3856
3852 2002-04-23 Fernando Perez <fperez@colorado.edu>
3857 2002-04-23 Fernando Perez <fperez@colorado.edu>
3853
3858
3854 * IPython/Extensions/InterpreterPasteInput.py: new
3859 * IPython/Extensions/InterpreterPasteInput.py: new
3855 syntax-processing module for pasting lines with >>> or ... at the
3860 syntax-processing module for pasting lines with >>> or ... at the
3856 start.
3861 start.
3857
3862
3858 * IPython/Extensions/PhysicalQ_Interactive.py
3863 * IPython/Extensions/PhysicalQ_Interactive.py
3859 (PhysicalQuantityInteractive.__int__): fixed to work with either
3864 (PhysicalQuantityInteractive.__int__): fixed to work with either
3860 Numeric or math.
3865 Numeric or math.
3861
3866
3862 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3867 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3863 provided profiles. Now we have:
3868 provided profiles. Now we have:
3864 -math -> math module as * and cmath with its own namespace.
3869 -math -> math module as * and cmath with its own namespace.
3865 -numeric -> Numeric as *, plus gnuplot & grace
3870 -numeric -> Numeric as *, plus gnuplot & grace
3866 -physics -> same as before
3871 -physics -> same as before
3867
3872
3868 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3873 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3869 user-defined magics wouldn't be found by @magic if they were
3874 user-defined magics wouldn't be found by @magic if they were
3870 defined as class methods. Also cleaned up the namespace search
3875 defined as class methods. Also cleaned up the namespace search
3871 logic and the string building (to use %s instead of many repeated
3876 logic and the string building (to use %s instead of many repeated
3872 string adds).
3877 string adds).
3873
3878
3874 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3879 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3875 of user-defined magics to operate with class methods (cleaner, in
3880 of user-defined magics to operate with class methods (cleaner, in
3876 line with the gnuplot code).
3881 line with the gnuplot code).
3877
3882
3878 2002-04-22 Fernando Perez <fperez@colorado.edu>
3883 2002-04-22 Fernando Perez <fperez@colorado.edu>
3879
3884
3880 * setup.py: updated dependency list so that manual is updated when
3885 * setup.py: updated dependency list so that manual is updated when
3881 all included files change.
3886 all included files change.
3882
3887
3883 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3888 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3884 the delimiter removal option (the fix is ugly right now).
3889 the delimiter removal option (the fix is ugly right now).
3885
3890
3886 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3891 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3887 all of the math profile (quicker loading, no conflict between
3892 all of the math profile (quicker loading, no conflict between
3888 g-9.8 and g-gnuplot).
3893 g-9.8 and g-gnuplot).
3889
3894
3890 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3895 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3891 name of post-mortem files to IPython_crash_report.txt.
3896 name of post-mortem files to IPython_crash_report.txt.
3892
3897
3893 * Cleanup/update of the docs. Added all the new readline info and
3898 * Cleanup/update of the docs. Added all the new readline info and
3894 formatted all lists as 'real lists'.
3899 formatted all lists as 'real lists'.
3895
3900
3896 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3901 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3897 tab-completion options, since the full readline parse_and_bind is
3902 tab-completion options, since the full readline parse_and_bind is
3898 now accessible.
3903 now accessible.
3899
3904
3900 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3905 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3901 handling of readline options. Now users can specify any string to
3906 handling of readline options. Now users can specify any string to
3902 be passed to parse_and_bind(), as well as the delimiters to be
3907 be passed to parse_and_bind(), as well as the delimiters to be
3903 removed.
3908 removed.
3904 (InteractiveShell.__init__): Added __name__ to the global
3909 (InteractiveShell.__init__): Added __name__ to the global
3905 namespace so that things like Itpl which rely on its existence
3910 namespace so that things like Itpl which rely on its existence
3906 don't crash.
3911 don't crash.
3907 (InteractiveShell._prefilter): Defined the default with a _ so
3912 (InteractiveShell._prefilter): Defined the default with a _ so
3908 that prefilter() is easier to override, while the default one
3913 that prefilter() is easier to override, while the default one
3909 remains available.
3914 remains available.
3910
3915
3911 2002-04-18 Fernando Perez <fperez@colorado.edu>
3916 2002-04-18 Fernando Perez <fperez@colorado.edu>
3912
3917
3913 * Added information about pdb in the docs.
3918 * Added information about pdb in the docs.
3914
3919
3915 2002-04-17 Fernando Perez <fperez@colorado.edu>
3920 2002-04-17 Fernando Perez <fperez@colorado.edu>
3916
3921
3917 * IPython/ipmaker.py (make_IPython): added rc_override option to
3922 * IPython/ipmaker.py (make_IPython): added rc_override option to
3918 allow passing config options at creation time which may override
3923 allow passing config options at creation time which may override
3919 anything set in the config files or command line. This is
3924 anything set in the config files or command line. This is
3920 particularly useful for configuring embedded instances.
3925 particularly useful for configuring embedded instances.
3921
3926
3922 2002-04-15 Fernando Perez <fperez@colorado.edu>
3927 2002-04-15 Fernando Perez <fperez@colorado.edu>
3923
3928
3924 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3929 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3925 crash embedded instances because of the input cache falling out of
3930 crash embedded instances because of the input cache falling out of
3926 sync with the output counter.
3931 sync with the output counter.
3927
3932
3928 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3933 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3929 mode which calls pdb after an uncaught exception in IPython itself.
3934 mode which calls pdb after an uncaught exception in IPython itself.
3930
3935
3931 2002-04-14 Fernando Perez <fperez@colorado.edu>
3936 2002-04-14 Fernando Perez <fperez@colorado.edu>
3932
3937
3933 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3938 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3934 readline, fix it back after each call.
3939 readline, fix it back after each call.
3935
3940
3936 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3941 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3937 method to force all access via __call__(), which guarantees that
3942 method to force all access via __call__(), which guarantees that
3938 traceback references are properly deleted.
3943 traceback references are properly deleted.
3939
3944
3940 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3945 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3941 improve printing when pprint is in use.
3946 improve printing when pprint is in use.
3942
3947
3943 2002-04-13 Fernando Perez <fperez@colorado.edu>
3948 2002-04-13 Fernando Perez <fperez@colorado.edu>
3944
3949
3945 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3950 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3946 exceptions aren't caught anymore. If the user triggers one, he
3951 exceptions aren't caught anymore. If the user triggers one, he
3947 should know why he's doing it and it should go all the way up,
3952 should know why he's doing it and it should go all the way up,
3948 just like any other exception. So now @abort will fully kill the
3953 just like any other exception. So now @abort will fully kill the
3949 embedded interpreter and the embedding code (unless that happens
3954 embedded interpreter and the embedding code (unless that happens
3950 to catch SystemExit).
3955 to catch SystemExit).
3951
3956
3952 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3957 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3953 and a debugger() method to invoke the interactive pdb debugger
3958 and a debugger() method to invoke the interactive pdb debugger
3954 after printing exception information. Also added the corresponding
3959 after printing exception information. Also added the corresponding
3955 -pdb option and @pdb magic to control this feature, and updated
3960 -pdb option and @pdb magic to control this feature, and updated
3956 the docs. After a suggestion from Christopher Hart
3961 the docs. After a suggestion from Christopher Hart
3957 (hart-AT-caltech.edu).
3962 (hart-AT-caltech.edu).
3958
3963
3959 2002-04-12 Fernando Perez <fperez@colorado.edu>
3964 2002-04-12 Fernando Perez <fperez@colorado.edu>
3960
3965
3961 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3966 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3962 the exception handlers defined by the user (not the CrashHandler)
3967 the exception handlers defined by the user (not the CrashHandler)
3963 so that user exceptions don't trigger an ipython bug report.
3968 so that user exceptions don't trigger an ipython bug report.
3964
3969
3965 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3970 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3966 configurable (it should have always been so).
3971 configurable (it should have always been so).
3967
3972
3968 2002-03-26 Fernando Perez <fperez@colorado.edu>
3973 2002-03-26 Fernando Perez <fperez@colorado.edu>
3969
3974
3970 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3975 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3971 and there to fix embedding namespace issues. This should all be
3976 and there to fix embedding namespace issues. This should all be
3972 done in a more elegant way.
3977 done in a more elegant way.
3973
3978
3974 2002-03-25 Fernando Perez <fperez@colorado.edu>
3979 2002-03-25 Fernando Perez <fperez@colorado.edu>
3975
3980
3976 * IPython/genutils.py (get_home_dir): Try to make it work under
3981 * IPython/genutils.py (get_home_dir): Try to make it work under
3977 win9x also.
3982 win9x also.
3978
3983
3979 2002-03-20 Fernando Perez <fperez@colorado.edu>
3984 2002-03-20 Fernando Perez <fperez@colorado.edu>
3980
3985
3981 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3986 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3982 sys.displayhook untouched upon __init__.
3987 sys.displayhook untouched upon __init__.
3983
3988
3984 2002-03-19 Fernando Perez <fperez@colorado.edu>
3989 2002-03-19 Fernando Perez <fperez@colorado.edu>
3985
3990
3986 * Released 0.2.9 (for embedding bug, basically).
3991 * Released 0.2.9 (for embedding bug, basically).
3987
3992
3988 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3993 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3989 exceptions so that enclosing shell's state can be restored.
3994 exceptions so that enclosing shell's state can be restored.
3990
3995
3991 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3996 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3992 naming conventions in the .ipython/ dir.
3997 naming conventions in the .ipython/ dir.
3993
3998
3994 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3999 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3995 from delimiters list so filenames with - in them get expanded.
4000 from delimiters list so filenames with - in them get expanded.
3996
4001
3997 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4002 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3998 sys.displayhook not being properly restored after an embedded call.
4003 sys.displayhook not being properly restored after an embedded call.
3999
4004
4000 2002-03-18 Fernando Perez <fperez@colorado.edu>
4005 2002-03-18 Fernando Perez <fperez@colorado.edu>
4001
4006
4002 * Released 0.2.8
4007 * Released 0.2.8
4003
4008
4004 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4009 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4005 some files weren't being included in a -upgrade.
4010 some files weren't being included in a -upgrade.
4006 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4011 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4007 on' so that the first tab completes.
4012 on' so that the first tab completes.
4008 (InteractiveShell.handle_magic): fixed bug with spaces around
4013 (InteractiveShell.handle_magic): fixed bug with spaces around
4009 quotes breaking many magic commands.
4014 quotes breaking many magic commands.
4010
4015
4011 * setup.py: added note about ignoring the syntax error messages at
4016 * setup.py: added note about ignoring the syntax error messages at
4012 installation.
4017 installation.
4013
4018
4014 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4019 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4015 streamlining the gnuplot interface, now there's only one magic @gp.
4020 streamlining the gnuplot interface, now there's only one magic @gp.
4016
4021
4017 2002-03-17 Fernando Perez <fperez@colorado.edu>
4022 2002-03-17 Fernando Perez <fperez@colorado.edu>
4018
4023
4019 * IPython/UserConfig/magic_gnuplot.py: new name for the
4024 * IPython/UserConfig/magic_gnuplot.py: new name for the
4020 example-magic_pm.py file. Much enhanced system, now with a shell
4025 example-magic_pm.py file. Much enhanced system, now with a shell
4021 for communicating directly with gnuplot, one command at a time.
4026 for communicating directly with gnuplot, one command at a time.
4022
4027
4023 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4028 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4024 setting __name__=='__main__'.
4029 setting __name__=='__main__'.
4025
4030
4026 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4031 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4027 mini-shell for accessing gnuplot from inside ipython. Should
4032 mini-shell for accessing gnuplot from inside ipython. Should
4028 extend it later for grace access too. Inspired by Arnd's
4033 extend it later for grace access too. Inspired by Arnd's
4029 suggestion.
4034 suggestion.
4030
4035
4031 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4036 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4032 calling magic functions with () in their arguments. Thanks to Arnd
4037 calling magic functions with () in their arguments. Thanks to Arnd
4033 Baecker for pointing this to me.
4038 Baecker for pointing this to me.
4034
4039
4035 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4040 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4036 infinitely for integer or complex arrays (only worked with floats).
4041 infinitely for integer or complex arrays (only worked with floats).
4037
4042
4038 2002-03-16 Fernando Perez <fperez@colorado.edu>
4043 2002-03-16 Fernando Perez <fperez@colorado.edu>
4039
4044
4040 * setup.py: Merged setup and setup_windows into a single script
4045 * setup.py: Merged setup and setup_windows into a single script
4041 which properly handles things for windows users.
4046 which properly handles things for windows users.
4042
4047
4043 2002-03-15 Fernando Perez <fperez@colorado.edu>
4048 2002-03-15 Fernando Perez <fperez@colorado.edu>
4044
4049
4045 * Big change to the manual: now the magics are all automatically
4050 * Big change to the manual: now the magics are all automatically
4046 documented. This information is generated from their docstrings
4051 documented. This information is generated from their docstrings
4047 and put in a latex file included by the manual lyx file. This way
4052 and put in a latex file included by the manual lyx file. This way
4048 we get always up to date information for the magics. The manual
4053 we get always up to date information for the magics. The manual
4049 now also has proper version information, also auto-synced.
4054 now also has proper version information, also auto-synced.
4050
4055
4051 For this to work, an undocumented --magic_docstrings option was added.
4056 For this to work, an undocumented --magic_docstrings option was added.
4052
4057
4053 2002-03-13 Fernando Perez <fperez@colorado.edu>
4058 2002-03-13 Fernando Perez <fperez@colorado.edu>
4054
4059
4055 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4060 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4056 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4061 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4057
4062
4058 2002-03-12 Fernando Perez <fperez@colorado.edu>
4063 2002-03-12 Fernando Perez <fperez@colorado.edu>
4059
4064
4060 * IPython/ultraTB.py (TermColors): changed color escapes again to
4065 * IPython/ultraTB.py (TermColors): changed color escapes again to
4061 fix the (old, reintroduced) line-wrapping bug. Basically, if
4066 fix the (old, reintroduced) line-wrapping bug. Basically, if
4062 \001..\002 aren't given in the color escapes, lines get wrapped
4067 \001..\002 aren't given in the color escapes, lines get wrapped
4063 weirdly. But giving those screws up old xterms and emacs terms. So
4068 weirdly. But giving those screws up old xterms and emacs terms. So
4064 I added some logic for emacs terms to be ok, but I can't identify old
4069 I added some logic for emacs terms to be ok, but I can't identify old
4065 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4070 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4066
4071
4067 2002-03-10 Fernando Perez <fperez@colorado.edu>
4072 2002-03-10 Fernando Perez <fperez@colorado.edu>
4068
4073
4069 * IPython/usage.py (__doc__): Various documentation cleanups and
4074 * IPython/usage.py (__doc__): Various documentation cleanups and
4070 updates, both in usage docstrings and in the manual.
4075 updates, both in usage docstrings and in the manual.
4071
4076
4072 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4077 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4073 handling of caching. Set minimum acceptabe value for having a
4078 handling of caching. Set minimum acceptabe value for having a
4074 cache at 20 values.
4079 cache at 20 values.
4075
4080
4076 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4081 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4077 install_first_time function to a method, renamed it and added an
4082 install_first_time function to a method, renamed it and added an
4078 'upgrade' mode. Now people can update their config directory with
4083 'upgrade' mode. Now people can update their config directory with
4079 a simple command line switch (-upgrade, also new).
4084 a simple command line switch (-upgrade, also new).
4080
4085
4081 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4086 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4082 @file (convenient for automagic users under Python >= 2.2).
4087 @file (convenient for automagic users under Python >= 2.2).
4083 Removed @files (it seemed more like a plural than an abbrev. of
4088 Removed @files (it seemed more like a plural than an abbrev. of
4084 'file show').
4089 'file show').
4085
4090
4086 * IPython/iplib.py (install_first_time): Fixed crash if there were
4091 * IPython/iplib.py (install_first_time): Fixed crash if there were
4087 backup files ('~') in .ipython/ install directory.
4092 backup files ('~') in .ipython/ install directory.
4088
4093
4089 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4094 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4090 system. Things look fine, but these changes are fairly
4095 system. Things look fine, but these changes are fairly
4091 intrusive. Test them for a few days.
4096 intrusive. Test them for a few days.
4092
4097
4093 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4098 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4094 the prompts system. Now all in/out prompt strings are user
4099 the prompts system. Now all in/out prompt strings are user
4095 controllable. This is particularly useful for embedding, as one
4100 controllable. This is particularly useful for embedding, as one
4096 can tag embedded instances with particular prompts.
4101 can tag embedded instances with particular prompts.
4097
4102
4098 Also removed global use of sys.ps1/2, which now allows nested
4103 Also removed global use of sys.ps1/2, which now allows nested
4099 embeddings without any problems. Added command-line options for
4104 embeddings without any problems. Added command-line options for
4100 the prompt strings.
4105 the prompt strings.
4101
4106
4102 2002-03-08 Fernando Perez <fperez@colorado.edu>
4107 2002-03-08 Fernando Perez <fperez@colorado.edu>
4103
4108
4104 * IPython/UserConfig/example-embed-short.py (ipshell): added
4109 * IPython/UserConfig/example-embed-short.py (ipshell): added
4105 example file with the bare minimum code for embedding.
4110 example file with the bare minimum code for embedding.
4106
4111
4107 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4112 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4108 functionality for the embeddable shell to be activated/deactivated
4113 functionality for the embeddable shell to be activated/deactivated
4109 either globally or at each call.
4114 either globally or at each call.
4110
4115
4111 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4116 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4112 rewriting the prompt with '--->' for auto-inputs with proper
4117 rewriting the prompt with '--->' for auto-inputs with proper
4113 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4118 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4114 this is handled by the prompts class itself, as it should.
4119 this is handled by the prompts class itself, as it should.
4115
4120
4116 2002-03-05 Fernando Perez <fperez@colorado.edu>
4121 2002-03-05 Fernando Perez <fperez@colorado.edu>
4117
4122
4118 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4123 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4119 @logstart to avoid name clashes with the math log function.
4124 @logstart to avoid name clashes with the math log function.
4120
4125
4121 * Big updates to X/Emacs section of the manual.
4126 * Big updates to X/Emacs section of the manual.
4122
4127
4123 * Removed ipython_emacs. Milan explained to me how to pass
4128 * Removed ipython_emacs. Milan explained to me how to pass
4124 arguments to ipython through Emacs. Some day I'm going to end up
4129 arguments to ipython through Emacs. Some day I'm going to end up
4125 learning some lisp...
4130 learning some lisp...
4126
4131
4127 2002-03-04 Fernando Perez <fperez@colorado.edu>
4132 2002-03-04 Fernando Perez <fperez@colorado.edu>
4128
4133
4129 * IPython/ipython_emacs: Created script to be used as the
4134 * IPython/ipython_emacs: Created script to be used as the
4130 py-python-command Emacs variable so we can pass IPython
4135 py-python-command Emacs variable so we can pass IPython
4131 parameters. I can't figure out how to tell Emacs directly to pass
4136 parameters. I can't figure out how to tell Emacs directly to pass
4132 parameters to IPython, so a dummy shell script will do it.
4137 parameters to IPython, so a dummy shell script will do it.
4133
4138
4134 Other enhancements made for things to work better under Emacs'
4139 Other enhancements made for things to work better under Emacs'
4135 various types of terminals. Many thanks to Milan Zamazal
4140 various types of terminals. Many thanks to Milan Zamazal
4136 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4141 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4137
4142
4138 2002-03-01 Fernando Perez <fperez@colorado.edu>
4143 2002-03-01 Fernando Perez <fperez@colorado.edu>
4139
4144
4140 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4145 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4141 that loading of readline is now optional. This gives better
4146 that loading of readline is now optional. This gives better
4142 control to emacs users.
4147 control to emacs users.
4143
4148
4144 * IPython/ultraTB.py (__date__): Modified color escape sequences
4149 * IPython/ultraTB.py (__date__): Modified color escape sequences
4145 and now things work fine under xterm and in Emacs' term buffers
4150 and now things work fine under xterm and in Emacs' term buffers
4146 (though not shell ones). Well, in emacs you get colors, but all
4151 (though not shell ones). Well, in emacs you get colors, but all
4147 seem to be 'light' colors (no difference between dark and light
4152 seem to be 'light' colors (no difference between dark and light
4148 ones). But the garbage chars are gone, and also in xterms. It
4153 ones). But the garbage chars are gone, and also in xterms. It
4149 seems that now I'm using 'cleaner' ansi sequences.
4154 seems that now I'm using 'cleaner' ansi sequences.
4150
4155
4151 2002-02-21 Fernando Perez <fperez@colorado.edu>
4156 2002-02-21 Fernando Perez <fperez@colorado.edu>
4152
4157
4153 * Released 0.2.7 (mainly to publish the scoping fix).
4158 * Released 0.2.7 (mainly to publish the scoping fix).
4154
4159
4155 * IPython/Logger.py (Logger.logstate): added. A corresponding
4160 * IPython/Logger.py (Logger.logstate): added. A corresponding
4156 @logstate magic was created.
4161 @logstate magic was created.
4157
4162
4158 * IPython/Magic.py: fixed nested scoping problem under Python
4163 * IPython/Magic.py: fixed nested scoping problem under Python
4159 2.1.x (automagic wasn't working).
4164 2.1.x (automagic wasn't working).
4160
4165
4161 2002-02-20 Fernando Perez <fperez@colorado.edu>
4166 2002-02-20 Fernando Perez <fperez@colorado.edu>
4162
4167
4163 * Released 0.2.6.
4168 * Released 0.2.6.
4164
4169
4165 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4170 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4166 option so that logs can come out without any headers at all.
4171 option so that logs can come out without any headers at all.
4167
4172
4168 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4173 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4169 SciPy.
4174 SciPy.
4170
4175
4171 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4176 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4172 that embedded IPython calls don't require vars() to be explicitly
4177 that embedded IPython calls don't require vars() to be explicitly
4173 passed. Now they are extracted from the caller's frame (code
4178 passed. Now they are extracted from the caller's frame (code
4174 snatched from Eric Jones' weave). Added better documentation to
4179 snatched from Eric Jones' weave). Added better documentation to
4175 the section on embedding and the example file.
4180 the section on embedding and the example file.
4176
4181
4177 * IPython/genutils.py (page): Changed so that under emacs, it just
4182 * IPython/genutils.py (page): Changed so that under emacs, it just
4178 prints the string. You can then page up and down in the emacs
4183 prints the string. You can then page up and down in the emacs
4179 buffer itself. This is how the builtin help() works.
4184 buffer itself. This is how the builtin help() works.
4180
4185
4181 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4186 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4182 macro scoping: macros need to be executed in the user's namespace
4187 macro scoping: macros need to be executed in the user's namespace
4183 to work as if they had been typed by the user.
4188 to work as if they had been typed by the user.
4184
4189
4185 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4190 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4186 execute automatically (no need to type 'exec...'). They then
4191 execute automatically (no need to type 'exec...'). They then
4187 behave like 'true macros'. The printing system was also modified
4192 behave like 'true macros'. The printing system was also modified
4188 for this to work.
4193 for this to work.
4189
4194
4190 2002-02-19 Fernando Perez <fperez@colorado.edu>
4195 2002-02-19 Fernando Perez <fperez@colorado.edu>
4191
4196
4192 * IPython/genutils.py (page_file): new function for paging files
4197 * IPython/genutils.py (page_file): new function for paging files
4193 in an OS-independent way. Also necessary for file viewing to work
4198 in an OS-independent way. Also necessary for file viewing to work
4194 well inside Emacs buffers.
4199 well inside Emacs buffers.
4195 (page): Added checks for being in an emacs buffer.
4200 (page): Added checks for being in an emacs buffer.
4196 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4201 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4197 same bug in iplib.
4202 same bug in iplib.
4198
4203
4199 2002-02-18 Fernando Perez <fperez@colorado.edu>
4204 2002-02-18 Fernando Perez <fperez@colorado.edu>
4200
4205
4201 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4206 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4202 of readline so that IPython can work inside an Emacs buffer.
4207 of readline so that IPython can work inside an Emacs buffer.
4203
4208
4204 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4209 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4205 method signatures (they weren't really bugs, but it looks cleaner
4210 method signatures (they weren't really bugs, but it looks cleaner
4206 and keeps PyChecker happy).
4211 and keeps PyChecker happy).
4207
4212
4208 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4213 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4209 for implementing various user-defined hooks. Currently only
4214 for implementing various user-defined hooks. Currently only
4210 display is done.
4215 display is done.
4211
4216
4212 * IPython/Prompts.py (CachedOutput._display): changed display
4217 * IPython/Prompts.py (CachedOutput._display): changed display
4213 functions so that they can be dynamically changed by users easily.
4218 functions so that they can be dynamically changed by users easily.
4214
4219
4215 * IPython/Extensions/numeric_formats.py (num_display): added an
4220 * IPython/Extensions/numeric_formats.py (num_display): added an
4216 extension for printing NumPy arrays in flexible manners. It
4221 extension for printing NumPy arrays in flexible manners. It
4217 doesn't do anything yet, but all the structure is in
4222 doesn't do anything yet, but all the structure is in
4218 place. Ultimately the plan is to implement output format control
4223 place. Ultimately the plan is to implement output format control
4219 like in Octave.
4224 like in Octave.
4220
4225
4221 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4226 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4222 methods are found at run-time by all the automatic machinery.
4227 methods are found at run-time by all the automatic machinery.
4223
4228
4224 2002-02-17 Fernando Perez <fperez@colorado.edu>
4229 2002-02-17 Fernando Perez <fperez@colorado.edu>
4225
4230
4226 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4231 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4227 whole file a little.
4232 whole file a little.
4228
4233
4229 * ToDo: closed this document. Now there's a new_design.lyx
4234 * ToDo: closed this document. Now there's a new_design.lyx
4230 document for all new ideas. Added making a pdf of it for the
4235 document for all new ideas. Added making a pdf of it for the
4231 end-user distro.
4236 end-user distro.
4232
4237
4233 * IPython/Logger.py (Logger.switch_log): Created this to replace
4238 * IPython/Logger.py (Logger.switch_log): Created this to replace
4234 logon() and logoff(). It also fixes a nasty crash reported by
4239 logon() and logoff(). It also fixes a nasty crash reported by
4235 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4240 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4236
4241
4237 * IPython/iplib.py (complete): got auto-completion to work with
4242 * IPython/iplib.py (complete): got auto-completion to work with
4238 automagic (I had wanted this for a long time).
4243 automagic (I had wanted this for a long time).
4239
4244
4240 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4245 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4241 to @file, since file() is now a builtin and clashes with automagic
4246 to @file, since file() is now a builtin and clashes with automagic
4242 for @file.
4247 for @file.
4243
4248
4244 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4249 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4245 of this was previously in iplib, which had grown to more than 2000
4250 of this was previously in iplib, which had grown to more than 2000
4246 lines, way too long. No new functionality, but it makes managing
4251 lines, way too long. No new functionality, but it makes managing
4247 the code a bit easier.
4252 the code a bit easier.
4248
4253
4249 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4254 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4250 information to crash reports.
4255 information to crash reports.
4251
4256
4252 2002-02-12 Fernando Perez <fperez@colorado.edu>
4257 2002-02-12 Fernando Perez <fperez@colorado.edu>
4253
4258
4254 * Released 0.2.5.
4259 * Released 0.2.5.
4255
4260
4256 2002-02-11 Fernando Perez <fperez@colorado.edu>
4261 2002-02-11 Fernando Perez <fperez@colorado.edu>
4257
4262
4258 * Wrote a relatively complete Windows installer. It puts
4263 * Wrote a relatively complete Windows installer. It puts
4259 everything in place, creates Start Menu entries and fixes the
4264 everything in place, creates Start Menu entries and fixes the
4260 color issues. Nothing fancy, but it works.
4265 color issues. Nothing fancy, but it works.
4261
4266
4262 2002-02-10 Fernando Perez <fperez@colorado.edu>
4267 2002-02-10 Fernando Perez <fperez@colorado.edu>
4263
4268
4264 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4269 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4265 os.path.expanduser() call so that we can type @run ~/myfile.py and
4270 os.path.expanduser() call so that we can type @run ~/myfile.py and
4266 have thigs work as expected.
4271 have thigs work as expected.
4267
4272
4268 * IPython/genutils.py (page): fixed exception handling so things
4273 * IPython/genutils.py (page): fixed exception handling so things
4269 work both in Unix and Windows correctly. Quitting a pager triggers
4274 work both in Unix and Windows correctly. Quitting a pager triggers
4270 an IOError/broken pipe in Unix, and in windows not finding a pager
4275 an IOError/broken pipe in Unix, and in windows not finding a pager
4271 is also an IOError, so I had to actually look at the return value
4276 is also an IOError, so I had to actually look at the return value
4272 of the exception, not just the exception itself. Should be ok now.
4277 of the exception, not just the exception itself. Should be ok now.
4273
4278
4274 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4279 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4275 modified to allow case-insensitive color scheme changes.
4280 modified to allow case-insensitive color scheme changes.
4276
4281
4277 2002-02-09 Fernando Perez <fperez@colorado.edu>
4282 2002-02-09 Fernando Perez <fperez@colorado.edu>
4278
4283
4279 * IPython/genutils.py (native_line_ends): new function to leave
4284 * IPython/genutils.py (native_line_ends): new function to leave
4280 user config files with os-native line-endings.
4285 user config files with os-native line-endings.
4281
4286
4282 * README and manual updates.
4287 * README and manual updates.
4283
4288
4284 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4289 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4285 instead of StringType to catch Unicode strings.
4290 instead of StringType to catch Unicode strings.
4286
4291
4287 * IPython/genutils.py (filefind): fixed bug for paths with
4292 * IPython/genutils.py (filefind): fixed bug for paths with
4288 embedded spaces (very common in Windows).
4293 embedded spaces (very common in Windows).
4289
4294
4290 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4295 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4291 files under Windows, so that they get automatically associated
4296 files under Windows, so that they get automatically associated
4292 with a text editor. Windows makes it a pain to handle
4297 with a text editor. Windows makes it a pain to handle
4293 extension-less files.
4298 extension-less files.
4294
4299
4295 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4300 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4296 warning about readline only occur for Posix. In Windows there's no
4301 warning about readline only occur for Posix. In Windows there's no
4297 way to get readline, so why bother with the warning.
4302 way to get readline, so why bother with the warning.
4298
4303
4299 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4304 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4300 for __str__ instead of dir(self), since dir() changed in 2.2.
4305 for __str__ instead of dir(self), since dir() changed in 2.2.
4301
4306
4302 * Ported to Windows! Tested on XP, I suspect it should work fine
4307 * Ported to Windows! Tested on XP, I suspect it should work fine
4303 on NT/2000, but I don't think it will work on 98 et al. That
4308 on NT/2000, but I don't think it will work on 98 et al. That
4304 series of Windows is such a piece of junk anyway that I won't try
4309 series of Windows is such a piece of junk anyway that I won't try
4305 porting it there. The XP port was straightforward, showed a few
4310 porting it there. The XP port was straightforward, showed a few
4306 bugs here and there (fixed all), in particular some string
4311 bugs here and there (fixed all), in particular some string
4307 handling stuff which required considering Unicode strings (which
4312 handling stuff which required considering Unicode strings (which
4308 Windows uses). This is good, but hasn't been too tested :) No
4313 Windows uses). This is good, but hasn't been too tested :) No
4309 fancy installer yet, I'll put a note in the manual so people at
4314 fancy installer yet, I'll put a note in the manual so people at
4310 least make manually a shortcut.
4315 least make manually a shortcut.
4311
4316
4312 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4317 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4313 into a single one, "colors". This now controls both prompt and
4318 into a single one, "colors". This now controls both prompt and
4314 exception color schemes, and can be changed both at startup
4319 exception color schemes, and can be changed both at startup
4315 (either via command-line switches or via ipythonrc files) and at
4320 (either via command-line switches or via ipythonrc files) and at
4316 runtime, with @colors.
4321 runtime, with @colors.
4317 (Magic.magic_run): renamed @prun to @run and removed the old
4322 (Magic.magic_run): renamed @prun to @run and removed the old
4318 @run. The two were too similar to warrant keeping both.
4323 @run. The two were too similar to warrant keeping both.
4319
4324
4320 2002-02-03 Fernando Perez <fperez@colorado.edu>
4325 2002-02-03 Fernando Perez <fperez@colorado.edu>
4321
4326
4322 * IPython/iplib.py (install_first_time): Added comment on how to
4327 * IPython/iplib.py (install_first_time): Added comment on how to
4323 configure the color options for first-time users. Put a <return>
4328 configure the color options for first-time users. Put a <return>
4324 request at the end so that small-terminal users get a chance to
4329 request at the end so that small-terminal users get a chance to
4325 read the startup info.
4330 read the startup info.
4326
4331
4327 2002-01-23 Fernando Perez <fperez@colorado.edu>
4332 2002-01-23 Fernando Perez <fperez@colorado.edu>
4328
4333
4329 * IPython/iplib.py (CachedOutput.update): Changed output memory
4334 * IPython/iplib.py (CachedOutput.update): Changed output memory
4330 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4335 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4331 input history we still use _i. Did this b/c these variable are
4336 input history we still use _i. Did this b/c these variable are
4332 very commonly used in interactive work, so the less we need to
4337 very commonly used in interactive work, so the less we need to
4333 type the better off we are.
4338 type the better off we are.
4334 (Magic.magic_prun): updated @prun to better handle the namespaces
4339 (Magic.magic_prun): updated @prun to better handle the namespaces
4335 the file will run in, including a fix for __name__ not being set
4340 the file will run in, including a fix for __name__ not being set
4336 before.
4341 before.
4337
4342
4338 2002-01-20 Fernando Perez <fperez@colorado.edu>
4343 2002-01-20 Fernando Perez <fperez@colorado.edu>
4339
4344
4340 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4345 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4341 extra garbage for Python 2.2. Need to look more carefully into
4346 extra garbage for Python 2.2. Need to look more carefully into
4342 this later.
4347 this later.
4343
4348
4344 2002-01-19 Fernando Perez <fperez@colorado.edu>
4349 2002-01-19 Fernando Perez <fperez@colorado.edu>
4345
4350
4346 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4351 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4347 display SyntaxError exceptions properly formatted when they occur
4352 display SyntaxError exceptions properly formatted when they occur
4348 (they can be triggered by imported code).
4353 (they can be triggered by imported code).
4349
4354
4350 2002-01-18 Fernando Perez <fperez@colorado.edu>
4355 2002-01-18 Fernando Perez <fperez@colorado.edu>
4351
4356
4352 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4357 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4353 SyntaxError exceptions are reported nicely formatted, instead of
4358 SyntaxError exceptions are reported nicely formatted, instead of
4354 spitting out only offset information as before.
4359 spitting out only offset information as before.
4355 (Magic.magic_prun): Added the @prun function for executing
4360 (Magic.magic_prun): Added the @prun function for executing
4356 programs with command line args inside IPython.
4361 programs with command line args inside IPython.
4357
4362
4358 2002-01-16 Fernando Perez <fperez@colorado.edu>
4363 2002-01-16 Fernando Perez <fperez@colorado.edu>
4359
4364
4360 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4365 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4361 to *not* include the last item given in a range. This brings their
4366 to *not* include the last item given in a range. This brings their
4362 behavior in line with Python's slicing:
4367 behavior in line with Python's slicing:
4363 a[n1:n2] -> a[n1]...a[n2-1]
4368 a[n1:n2] -> a[n1]...a[n2-1]
4364 It may be a bit less convenient, but I prefer to stick to Python's
4369 It may be a bit less convenient, but I prefer to stick to Python's
4365 conventions *everywhere*, so users never have to wonder.
4370 conventions *everywhere*, so users never have to wonder.
4366 (Magic.magic_macro): Added @macro function to ease the creation of
4371 (Magic.magic_macro): Added @macro function to ease the creation of
4367 macros.
4372 macros.
4368
4373
4369 2002-01-05 Fernando Perez <fperez@colorado.edu>
4374 2002-01-05 Fernando Perez <fperez@colorado.edu>
4370
4375
4371 * Released 0.2.4.
4376 * Released 0.2.4.
4372
4377
4373 * IPython/iplib.py (Magic.magic_pdef):
4378 * IPython/iplib.py (Magic.magic_pdef):
4374 (InteractiveShell.safe_execfile): report magic lines and error
4379 (InteractiveShell.safe_execfile): report magic lines and error
4375 lines without line numbers so one can easily copy/paste them for
4380 lines without line numbers so one can easily copy/paste them for
4376 re-execution.
4381 re-execution.
4377
4382
4378 * Updated manual with recent changes.
4383 * Updated manual with recent changes.
4379
4384
4380 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4385 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4381 docstring printing when class? is called. Very handy for knowing
4386 docstring printing when class? is called. Very handy for knowing
4382 how to create class instances (as long as __init__ is well
4387 how to create class instances (as long as __init__ is well
4383 documented, of course :)
4388 documented, of course :)
4384 (Magic.magic_doc): print both class and constructor docstrings.
4389 (Magic.magic_doc): print both class and constructor docstrings.
4385 (Magic.magic_pdef): give constructor info if passed a class and
4390 (Magic.magic_pdef): give constructor info if passed a class and
4386 __call__ info for callable object instances.
4391 __call__ info for callable object instances.
4387
4392
4388 2002-01-04 Fernando Perez <fperez@colorado.edu>
4393 2002-01-04 Fernando Perez <fperez@colorado.edu>
4389
4394
4390 * Made deep_reload() off by default. It doesn't always work
4395 * Made deep_reload() off by default. It doesn't always work
4391 exactly as intended, so it's probably safer to have it off. It's
4396 exactly as intended, so it's probably safer to have it off. It's
4392 still available as dreload() anyway, so nothing is lost.
4397 still available as dreload() anyway, so nothing is lost.
4393
4398
4394 2002-01-02 Fernando Perez <fperez@colorado.edu>
4399 2002-01-02 Fernando Perez <fperez@colorado.edu>
4395
4400
4396 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4401 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4397 so I wanted an updated release).
4402 so I wanted an updated release).
4398
4403
4399 2001-12-27 Fernando Perez <fperez@colorado.edu>
4404 2001-12-27 Fernando Perez <fperez@colorado.edu>
4400
4405
4401 * IPython/iplib.py (InteractiveShell.interact): Added the original
4406 * IPython/iplib.py (InteractiveShell.interact): Added the original
4402 code from 'code.py' for this module in order to change the
4407 code from 'code.py' for this module in order to change the
4403 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4408 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4404 the history cache would break when the user hit Ctrl-C, and
4409 the history cache would break when the user hit Ctrl-C, and
4405 interact() offers no way to add any hooks to it.
4410 interact() offers no way to add any hooks to it.
4406
4411
4407 2001-12-23 Fernando Perez <fperez@colorado.edu>
4412 2001-12-23 Fernando Perez <fperez@colorado.edu>
4408
4413
4409 * setup.py: added check for 'MANIFEST' before trying to remove
4414 * setup.py: added check for 'MANIFEST' before trying to remove
4410 it. Thanks to Sean Reifschneider.
4415 it. Thanks to Sean Reifschneider.
4411
4416
4412 2001-12-22 Fernando Perez <fperez@colorado.edu>
4417 2001-12-22 Fernando Perez <fperez@colorado.edu>
4413
4418
4414 * Released 0.2.2.
4419 * Released 0.2.2.
4415
4420
4416 * Finished (reasonably) writing the manual. Later will add the
4421 * Finished (reasonably) writing the manual. Later will add the
4417 python-standard navigation stylesheets, but for the time being
4422 python-standard navigation stylesheets, but for the time being
4418 it's fairly complete. Distribution will include html and pdf
4423 it's fairly complete. Distribution will include html and pdf
4419 versions.
4424 versions.
4420
4425
4421 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4426 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4422 (MayaVi author).
4427 (MayaVi author).
4423
4428
4424 2001-12-21 Fernando Perez <fperez@colorado.edu>
4429 2001-12-21 Fernando Perez <fperez@colorado.edu>
4425
4430
4426 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4431 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4427 good public release, I think (with the manual and the distutils
4432 good public release, I think (with the manual and the distutils
4428 installer). The manual can use some work, but that can go
4433 installer). The manual can use some work, but that can go
4429 slowly. Otherwise I think it's quite nice for end users. Next
4434 slowly. Otherwise I think it's quite nice for end users. Next
4430 summer, rewrite the guts of it...
4435 summer, rewrite the guts of it...
4431
4436
4432 * Changed format of ipythonrc files to use whitespace as the
4437 * Changed format of ipythonrc files to use whitespace as the
4433 separator instead of an explicit '='. Cleaner.
4438 separator instead of an explicit '='. Cleaner.
4434
4439
4435 2001-12-20 Fernando Perez <fperez@colorado.edu>
4440 2001-12-20 Fernando Perez <fperez@colorado.edu>
4436
4441
4437 * Started a manual in LyX. For now it's just a quick merge of the
4442 * Started a manual in LyX. For now it's just a quick merge of the
4438 various internal docstrings and READMEs. Later it may grow into a
4443 various internal docstrings and READMEs. Later it may grow into a
4439 nice, full-blown manual.
4444 nice, full-blown manual.
4440
4445
4441 * Set up a distutils based installer. Installation should now be
4446 * Set up a distutils based installer. Installation should now be
4442 trivially simple for end-users.
4447 trivially simple for end-users.
4443
4448
4444 2001-12-11 Fernando Perez <fperez@colorado.edu>
4449 2001-12-11 Fernando Perez <fperez@colorado.edu>
4445
4450
4446 * Released 0.2.0. First public release, announced it at
4451 * Released 0.2.0. First public release, announced it at
4447 comp.lang.python. From now on, just bugfixes...
4452 comp.lang.python. From now on, just bugfixes...
4448
4453
4449 * Went through all the files, set copyright/license notices and
4454 * Went through all the files, set copyright/license notices and
4450 cleaned up things. Ready for release.
4455 cleaned up things. Ready for release.
4451
4456
4452 2001-12-10 Fernando Perez <fperez@colorado.edu>
4457 2001-12-10 Fernando Perez <fperez@colorado.edu>
4453
4458
4454 * Changed the first-time installer not to use tarfiles. It's more
4459 * Changed the first-time installer not to use tarfiles. It's more
4455 robust now and less unix-dependent. Also makes it easier for
4460 robust now and less unix-dependent. Also makes it easier for
4456 people to later upgrade versions.
4461 people to later upgrade versions.
4457
4462
4458 * Changed @exit to @abort to reflect the fact that it's pretty
4463 * Changed @exit to @abort to reflect the fact that it's pretty
4459 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4464 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4460 becomes significant only when IPyhton is embedded: in that case,
4465 becomes significant only when IPyhton is embedded: in that case,
4461 C-D closes IPython only, but @abort kills the enclosing program
4466 C-D closes IPython only, but @abort kills the enclosing program
4462 too (unless it had called IPython inside a try catching
4467 too (unless it had called IPython inside a try catching
4463 SystemExit).
4468 SystemExit).
4464
4469
4465 * Created Shell module which exposes the actuall IPython Shell
4470 * Created Shell module which exposes the actuall IPython Shell
4466 classes, currently the normal and the embeddable one. This at
4471 classes, currently the normal and the embeddable one. This at
4467 least offers a stable interface we won't need to change when
4472 least offers a stable interface we won't need to change when
4468 (later) the internals are rewritten. That rewrite will be confined
4473 (later) the internals are rewritten. That rewrite will be confined
4469 to iplib and ipmaker, but the Shell interface should remain as is.
4474 to iplib and ipmaker, but the Shell interface should remain as is.
4470
4475
4471 * Added embed module which offers an embeddable IPShell object,
4476 * Added embed module which offers an embeddable IPShell object,
4472 useful to fire up IPython *inside* a running program. Great for
4477 useful to fire up IPython *inside* a running program. Great for
4473 debugging or dynamical data analysis.
4478 debugging or dynamical data analysis.
4474
4479
4475 2001-12-08 Fernando Perez <fperez@colorado.edu>
4480 2001-12-08 Fernando Perez <fperez@colorado.edu>
4476
4481
4477 * Fixed small bug preventing seeing info from methods of defined
4482 * Fixed small bug preventing seeing info from methods of defined
4478 objects (incorrect namespace in _ofind()).
4483 objects (incorrect namespace in _ofind()).
4479
4484
4480 * Documentation cleanup. Moved the main usage docstrings to a
4485 * Documentation cleanup. Moved the main usage docstrings to a
4481 separate file, usage.py (cleaner to maintain, and hopefully in the
4486 separate file, usage.py (cleaner to maintain, and hopefully in the
4482 future some perlpod-like way of producing interactive, man and
4487 future some perlpod-like way of producing interactive, man and
4483 html docs out of it will be found).
4488 html docs out of it will be found).
4484
4489
4485 * Added @profile to see your profile at any time.
4490 * Added @profile to see your profile at any time.
4486
4491
4487 * Added @p as an alias for 'print'. It's especially convenient if
4492 * Added @p as an alias for 'print'. It's especially convenient if
4488 using automagic ('p x' prints x).
4493 using automagic ('p x' prints x).
4489
4494
4490 * Small cleanups and fixes after a pychecker run.
4495 * Small cleanups and fixes after a pychecker run.
4491
4496
4492 * Changed the @cd command to handle @cd - and @cd -<n> for
4497 * Changed the @cd command to handle @cd - and @cd -<n> for
4493 visiting any directory in _dh.
4498 visiting any directory in _dh.
4494
4499
4495 * Introduced _dh, a history of visited directories. @dhist prints
4500 * Introduced _dh, a history of visited directories. @dhist prints
4496 it out with numbers.
4501 it out with numbers.
4497
4502
4498 2001-12-07 Fernando Perez <fperez@colorado.edu>
4503 2001-12-07 Fernando Perez <fperez@colorado.edu>
4499
4504
4500 * Released 0.1.22
4505 * Released 0.1.22
4501
4506
4502 * Made initialization a bit more robust against invalid color
4507 * Made initialization a bit more robust against invalid color
4503 options in user input (exit, not traceback-crash).
4508 options in user input (exit, not traceback-crash).
4504
4509
4505 * Changed the bug crash reporter to write the report only in the
4510 * Changed the bug crash reporter to write the report only in the
4506 user's .ipython directory. That way IPython won't litter people's
4511 user's .ipython directory. That way IPython won't litter people's
4507 hard disks with crash files all over the place. Also print on
4512 hard disks with crash files all over the place. Also print on
4508 screen the necessary mail command.
4513 screen the necessary mail command.
4509
4514
4510 * With the new ultraTB, implemented LightBG color scheme for light
4515 * With the new ultraTB, implemented LightBG color scheme for light
4511 background terminals. A lot of people like white backgrounds, so I
4516 background terminals. A lot of people like white backgrounds, so I
4512 guess we should at least give them something readable.
4517 guess we should at least give them something readable.
4513
4518
4514 2001-12-06 Fernando Perez <fperez@colorado.edu>
4519 2001-12-06 Fernando Perez <fperez@colorado.edu>
4515
4520
4516 * Modified the structure of ultraTB. Now there's a proper class
4521 * Modified the structure of ultraTB. Now there's a proper class
4517 for tables of color schemes which allow adding schemes easily and
4522 for tables of color schemes which allow adding schemes easily and
4518 switching the active scheme without creating a new instance every
4523 switching the active scheme without creating a new instance every
4519 time (which was ridiculous). The syntax for creating new schemes
4524 time (which was ridiculous). The syntax for creating new schemes
4520 is also cleaner. I think ultraTB is finally done, with a clean
4525 is also cleaner. I think ultraTB is finally done, with a clean
4521 class structure. Names are also much cleaner (now there's proper
4526 class structure. Names are also much cleaner (now there's proper
4522 color tables, no need for every variable to also have 'color' in
4527 color tables, no need for every variable to also have 'color' in
4523 its name).
4528 its name).
4524
4529
4525 * Broke down genutils into separate files. Now genutils only
4530 * Broke down genutils into separate files. Now genutils only
4526 contains utility functions, and classes have been moved to their
4531 contains utility functions, and classes have been moved to their
4527 own files (they had enough independent functionality to warrant
4532 own files (they had enough independent functionality to warrant
4528 it): ConfigLoader, OutputTrap, Struct.
4533 it): ConfigLoader, OutputTrap, Struct.
4529
4534
4530 2001-12-05 Fernando Perez <fperez@colorado.edu>
4535 2001-12-05 Fernando Perez <fperez@colorado.edu>
4531
4536
4532 * IPython turns 21! Released version 0.1.21, as a candidate for
4537 * IPython turns 21! Released version 0.1.21, as a candidate for
4533 public consumption. If all goes well, release in a few days.
4538 public consumption. If all goes well, release in a few days.
4534
4539
4535 * Fixed path bug (files in Extensions/ directory wouldn't be found
4540 * Fixed path bug (files in Extensions/ directory wouldn't be found
4536 unless IPython/ was explicitly in sys.path).
4541 unless IPython/ was explicitly in sys.path).
4537
4542
4538 * Extended the FlexCompleter class as MagicCompleter to allow
4543 * Extended the FlexCompleter class as MagicCompleter to allow
4539 completion of @-starting lines.
4544 completion of @-starting lines.
4540
4545
4541 * Created __release__.py file as a central repository for release
4546 * Created __release__.py file as a central repository for release
4542 info that other files can read from.
4547 info that other files can read from.
4543
4548
4544 * Fixed small bug in logging: when logging was turned on in
4549 * Fixed small bug in logging: when logging was turned on in
4545 mid-session, old lines with special meanings (!@?) were being
4550 mid-session, old lines with special meanings (!@?) were being
4546 logged without the prepended comment, which is necessary since
4551 logged without the prepended comment, which is necessary since
4547 they are not truly valid python syntax. This should make session
4552 they are not truly valid python syntax. This should make session
4548 restores produce less errors.
4553 restores produce less errors.
4549
4554
4550 * The namespace cleanup forced me to make a FlexCompleter class
4555 * The namespace cleanup forced me to make a FlexCompleter class
4551 which is nothing but a ripoff of rlcompleter, but with selectable
4556 which is nothing but a ripoff of rlcompleter, but with selectable
4552 namespace (rlcompleter only works in __main__.__dict__). I'll try
4557 namespace (rlcompleter only works in __main__.__dict__). I'll try
4553 to submit a note to the authors to see if this change can be
4558 to submit a note to the authors to see if this change can be
4554 incorporated in future rlcompleter releases (Dec.6: done)
4559 incorporated in future rlcompleter releases (Dec.6: done)
4555
4560
4556 * More fixes to namespace handling. It was a mess! Now all
4561 * More fixes to namespace handling. It was a mess! Now all
4557 explicit references to __main__.__dict__ are gone (except when
4562 explicit references to __main__.__dict__ are gone (except when
4558 really needed) and everything is handled through the namespace
4563 really needed) and everything is handled through the namespace
4559 dicts in the IPython instance. We seem to be getting somewhere
4564 dicts in the IPython instance. We seem to be getting somewhere
4560 with this, finally...
4565 with this, finally...
4561
4566
4562 * Small documentation updates.
4567 * Small documentation updates.
4563
4568
4564 * Created the Extensions directory under IPython (with an
4569 * Created the Extensions directory under IPython (with an
4565 __init__.py). Put the PhysicalQ stuff there. This directory should
4570 __init__.py). Put the PhysicalQ stuff there. This directory should
4566 be used for all special-purpose extensions.
4571 be used for all special-purpose extensions.
4567
4572
4568 * File renaming:
4573 * File renaming:
4569 ipythonlib --> ipmaker
4574 ipythonlib --> ipmaker
4570 ipplib --> iplib
4575 ipplib --> iplib
4571 This makes a bit more sense in terms of what these files actually do.
4576 This makes a bit more sense in terms of what these files actually do.
4572
4577
4573 * Moved all the classes and functions in ipythonlib to ipplib, so
4578 * Moved all the classes and functions in ipythonlib to ipplib, so
4574 now ipythonlib only has make_IPython(). This will ease up its
4579 now ipythonlib only has make_IPython(). This will ease up its
4575 splitting in smaller functional chunks later.
4580 splitting in smaller functional chunks later.
4576
4581
4577 * Cleaned up (done, I think) output of @whos. Better column
4582 * Cleaned up (done, I think) output of @whos. Better column
4578 formatting, and now shows str(var) for as much as it can, which is
4583 formatting, and now shows str(var) for as much as it can, which is
4579 typically what one gets with a 'print var'.
4584 typically what one gets with a 'print var'.
4580
4585
4581 2001-12-04 Fernando Perez <fperez@colorado.edu>
4586 2001-12-04 Fernando Perez <fperez@colorado.edu>
4582
4587
4583 * Fixed namespace problems. Now builtin/IPyhton/user names get
4588 * Fixed namespace problems. Now builtin/IPyhton/user names get
4584 properly reported in their namespace. Internal namespace handling
4589 properly reported in their namespace. Internal namespace handling
4585 is finally getting decent (not perfect yet, but much better than
4590 is finally getting decent (not perfect yet, but much better than
4586 the ad-hoc mess we had).
4591 the ad-hoc mess we had).
4587
4592
4588 * Removed -exit option. If people just want to run a python
4593 * Removed -exit option. If people just want to run a python
4589 script, that's what the normal interpreter is for. Less
4594 script, that's what the normal interpreter is for. Less
4590 unnecessary options, less chances for bugs.
4595 unnecessary options, less chances for bugs.
4591
4596
4592 * Added a crash handler which generates a complete post-mortem if
4597 * Added a crash handler which generates a complete post-mortem if
4593 IPython crashes. This will help a lot in tracking bugs down the
4598 IPython crashes. This will help a lot in tracking bugs down the
4594 road.
4599 road.
4595
4600
4596 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4601 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4597 which were boud to functions being reassigned would bypass the
4602 which were boud to functions being reassigned would bypass the
4598 logger, breaking the sync of _il with the prompt counter. This
4603 logger, breaking the sync of _il with the prompt counter. This
4599 would then crash IPython later when a new line was logged.
4604 would then crash IPython later when a new line was logged.
4600
4605
4601 2001-12-02 Fernando Perez <fperez@colorado.edu>
4606 2001-12-02 Fernando Perez <fperez@colorado.edu>
4602
4607
4603 * Made IPython a package. This means people don't have to clutter
4608 * Made IPython a package. This means people don't have to clutter
4604 their sys.path with yet another directory. Changed the INSTALL
4609 their sys.path with yet another directory. Changed the INSTALL
4605 file accordingly.
4610 file accordingly.
4606
4611
4607 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4612 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4608 sorts its output (so @who shows it sorted) and @whos formats the
4613 sorts its output (so @who shows it sorted) and @whos formats the
4609 table according to the width of the first column. Nicer, easier to
4614 table according to the width of the first column. Nicer, easier to
4610 read. Todo: write a generic table_format() which takes a list of
4615 read. Todo: write a generic table_format() which takes a list of
4611 lists and prints it nicely formatted, with optional row/column
4616 lists and prints it nicely formatted, with optional row/column
4612 separators and proper padding and justification.
4617 separators and proper padding and justification.
4613
4618
4614 * Released 0.1.20
4619 * Released 0.1.20
4615
4620
4616 * Fixed bug in @log which would reverse the inputcache list (a
4621 * Fixed bug in @log which would reverse the inputcache list (a
4617 copy operation was missing).
4622 copy operation was missing).
4618
4623
4619 * Code cleanup. @config was changed to use page(). Better, since
4624 * Code cleanup. @config was changed to use page(). Better, since
4620 its output is always quite long.
4625 its output is always quite long.
4621
4626
4622 * Itpl is back as a dependency. I was having too many problems
4627 * Itpl is back as a dependency. I was having too many problems
4623 getting the parametric aliases to work reliably, and it's just
4628 getting the parametric aliases to work reliably, and it's just
4624 easier to code weird string operations with it than playing %()s
4629 easier to code weird string operations with it than playing %()s
4625 games. It's only ~6k, so I don't think it's too big a deal.
4630 games. It's only ~6k, so I don't think it's too big a deal.
4626
4631
4627 * Found (and fixed) a very nasty bug with history. !lines weren't
4632 * Found (and fixed) a very nasty bug with history. !lines weren't
4628 getting cached, and the out of sync caches would crash
4633 getting cached, and the out of sync caches would crash
4629 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4634 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4630 division of labor a bit better. Bug fixed, cleaner structure.
4635 division of labor a bit better. Bug fixed, cleaner structure.
4631
4636
4632 2001-12-01 Fernando Perez <fperez@colorado.edu>
4637 2001-12-01 Fernando Perez <fperez@colorado.edu>
4633
4638
4634 * Released 0.1.19
4639 * Released 0.1.19
4635
4640
4636 * Added option -n to @hist to prevent line number printing. Much
4641 * Added option -n to @hist to prevent line number printing. Much
4637 easier to copy/paste code this way.
4642 easier to copy/paste code this way.
4638
4643
4639 * Created global _il to hold the input list. Allows easy
4644 * Created global _il to hold the input list. Allows easy
4640 re-execution of blocks of code by slicing it (inspired by Janko's
4645 re-execution of blocks of code by slicing it (inspired by Janko's
4641 comment on 'macros').
4646 comment on 'macros').
4642
4647
4643 * Small fixes and doc updates.
4648 * Small fixes and doc updates.
4644
4649
4645 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4650 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4646 much too fragile with automagic. Handles properly multi-line
4651 much too fragile with automagic. Handles properly multi-line
4647 statements and takes parameters.
4652 statements and takes parameters.
4648
4653
4649 2001-11-30 Fernando Perez <fperez@colorado.edu>
4654 2001-11-30 Fernando Perez <fperez@colorado.edu>
4650
4655
4651 * Version 0.1.18 released.
4656 * Version 0.1.18 released.
4652
4657
4653 * Fixed nasty namespace bug in initial module imports.
4658 * Fixed nasty namespace bug in initial module imports.
4654
4659
4655 * Added copyright/license notes to all code files (except
4660 * Added copyright/license notes to all code files (except
4656 DPyGetOpt). For the time being, LGPL. That could change.
4661 DPyGetOpt). For the time being, LGPL. That could change.
4657
4662
4658 * Rewrote a much nicer README, updated INSTALL, cleaned up
4663 * Rewrote a much nicer README, updated INSTALL, cleaned up
4659 ipythonrc-* samples.
4664 ipythonrc-* samples.
4660
4665
4661 * Overall code/documentation cleanup. Basically ready for
4666 * Overall code/documentation cleanup. Basically ready for
4662 release. Only remaining thing: licence decision (LGPL?).
4667 release. Only remaining thing: licence decision (LGPL?).
4663
4668
4664 * Converted load_config to a class, ConfigLoader. Now recursion
4669 * Converted load_config to a class, ConfigLoader. Now recursion
4665 control is better organized. Doesn't include the same file twice.
4670 control is better organized. Doesn't include the same file twice.
4666
4671
4667 2001-11-29 Fernando Perez <fperez@colorado.edu>
4672 2001-11-29 Fernando Perez <fperez@colorado.edu>
4668
4673
4669 * Got input history working. Changed output history variables from
4674 * Got input history working. Changed output history variables from
4670 _p to _o so that _i is for input and _o for output. Just cleaner
4675 _p to _o so that _i is for input and _o for output. Just cleaner
4671 convention.
4676 convention.
4672
4677
4673 * Implemented parametric aliases. This pretty much allows the
4678 * Implemented parametric aliases. This pretty much allows the
4674 alias system to offer full-blown shell convenience, I think.
4679 alias system to offer full-blown shell convenience, I think.
4675
4680
4676 * Version 0.1.17 released, 0.1.18 opened.
4681 * Version 0.1.17 released, 0.1.18 opened.
4677
4682
4678 * dot_ipython/ipythonrc (alias): added documentation.
4683 * dot_ipython/ipythonrc (alias): added documentation.
4679 (xcolor): Fixed small bug (xcolors -> xcolor)
4684 (xcolor): Fixed small bug (xcolors -> xcolor)
4680
4685
4681 * Changed the alias system. Now alias is a magic command to define
4686 * Changed the alias system. Now alias is a magic command to define
4682 aliases just like the shell. Rationale: the builtin magics should
4687 aliases just like the shell. Rationale: the builtin magics should
4683 be there for things deeply connected to IPython's
4688 be there for things deeply connected to IPython's
4684 architecture. And this is a much lighter system for what I think
4689 architecture. And this is a much lighter system for what I think
4685 is the really important feature: allowing users to define quickly
4690 is the really important feature: allowing users to define quickly
4686 magics that will do shell things for them, so they can customize
4691 magics that will do shell things for them, so they can customize
4687 IPython easily to match their work habits. If someone is really
4692 IPython easily to match their work habits. If someone is really
4688 desperate to have another name for a builtin alias, they can
4693 desperate to have another name for a builtin alias, they can
4689 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4694 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4690 works.
4695 works.
4691
4696
4692 2001-11-28 Fernando Perez <fperez@colorado.edu>
4697 2001-11-28 Fernando Perez <fperez@colorado.edu>
4693
4698
4694 * Changed @file so that it opens the source file at the proper
4699 * Changed @file so that it opens the source file at the proper
4695 line. Since it uses less, if your EDITOR environment is
4700 line. Since it uses less, if your EDITOR environment is
4696 configured, typing v will immediately open your editor of choice
4701 configured, typing v will immediately open your editor of choice
4697 right at the line where the object is defined. Not as quick as
4702 right at the line where the object is defined. Not as quick as
4698 having a direct @edit command, but for all intents and purposes it
4703 having a direct @edit command, but for all intents and purposes it
4699 works. And I don't have to worry about writing @edit to deal with
4704 works. And I don't have to worry about writing @edit to deal with
4700 all the editors, less does that.
4705 all the editors, less does that.
4701
4706
4702 * Version 0.1.16 released, 0.1.17 opened.
4707 * Version 0.1.16 released, 0.1.17 opened.
4703
4708
4704 * Fixed some nasty bugs in the page/page_dumb combo that could
4709 * Fixed some nasty bugs in the page/page_dumb combo that could
4705 crash IPython.
4710 crash IPython.
4706
4711
4707 2001-11-27 Fernando Perez <fperez@colorado.edu>
4712 2001-11-27 Fernando Perez <fperez@colorado.edu>
4708
4713
4709 * Version 0.1.15 released, 0.1.16 opened.
4714 * Version 0.1.15 released, 0.1.16 opened.
4710
4715
4711 * Finally got ? and ?? to work for undefined things: now it's
4716 * Finally got ? and ?? to work for undefined things: now it's
4712 possible to type {}.get? and get information about the get method
4717 possible to type {}.get? and get information about the get method
4713 of dicts, or os.path? even if only os is defined (so technically
4718 of dicts, or os.path? even if only os is defined (so technically
4714 os.path isn't). Works at any level. For example, after import os,
4719 os.path isn't). Works at any level. For example, after import os,
4715 os?, os.path?, os.path.abspath? all work. This is great, took some
4720 os?, os.path?, os.path.abspath? all work. This is great, took some
4716 work in _ofind.
4721 work in _ofind.
4717
4722
4718 * Fixed more bugs with logging. The sanest way to do it was to add
4723 * Fixed more bugs with logging. The sanest way to do it was to add
4719 to @log a 'mode' parameter. Killed two in one shot (this mode
4724 to @log a 'mode' parameter. Killed two in one shot (this mode
4720 option was a request of Janko's). I think it's finally clean
4725 option was a request of Janko's). I think it's finally clean
4721 (famous last words).
4726 (famous last words).
4722
4727
4723 * Added a page_dumb() pager which does a decent job of paging on
4728 * Added a page_dumb() pager which does a decent job of paging on
4724 screen, if better things (like less) aren't available. One less
4729 screen, if better things (like less) aren't available. One less
4725 unix dependency (someday maybe somebody will port this to
4730 unix dependency (someday maybe somebody will port this to
4726 windows).
4731 windows).
4727
4732
4728 * Fixed problem in magic_log: would lock of logging out if log
4733 * Fixed problem in magic_log: would lock of logging out if log
4729 creation failed (because it would still think it had succeeded).
4734 creation failed (because it would still think it had succeeded).
4730
4735
4731 * Improved the page() function using curses to auto-detect screen
4736 * Improved the page() function using curses to auto-detect screen
4732 size. Now it can make a much better decision on whether to print
4737 size. Now it can make a much better decision on whether to print
4733 or page a string. Option screen_length was modified: a value 0
4738 or page a string. Option screen_length was modified: a value 0
4734 means auto-detect, and that's the default now.
4739 means auto-detect, and that's the default now.
4735
4740
4736 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4741 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4737 go out. I'll test it for a few days, then talk to Janko about
4742 go out. I'll test it for a few days, then talk to Janko about
4738 licences and announce it.
4743 licences and announce it.
4739
4744
4740 * Fixed the length of the auto-generated ---> prompt which appears
4745 * Fixed the length of the auto-generated ---> prompt which appears
4741 for auto-parens and auto-quotes. Getting this right isn't trivial,
4746 for auto-parens and auto-quotes. Getting this right isn't trivial,
4742 with all the color escapes, different prompt types and optional
4747 with all the color escapes, different prompt types and optional
4743 separators. But it seems to be working in all the combinations.
4748 separators. But it seems to be working in all the combinations.
4744
4749
4745 2001-11-26 Fernando Perez <fperez@colorado.edu>
4750 2001-11-26 Fernando Perez <fperez@colorado.edu>
4746
4751
4747 * Wrote a regexp filter to get option types from the option names
4752 * Wrote a regexp filter to get option types from the option names
4748 string. This eliminates the need to manually keep two duplicate
4753 string. This eliminates the need to manually keep two duplicate
4749 lists.
4754 lists.
4750
4755
4751 * Removed the unneeded check_option_names. Now options are handled
4756 * Removed the unneeded check_option_names. Now options are handled
4752 in a much saner manner and it's easy to visually check that things
4757 in a much saner manner and it's easy to visually check that things
4753 are ok.
4758 are ok.
4754
4759
4755 * Updated version numbers on all files I modified to carry a
4760 * Updated version numbers on all files I modified to carry a
4756 notice so Janko and Nathan have clear version markers.
4761 notice so Janko and Nathan have clear version markers.
4757
4762
4758 * Updated docstring for ultraTB with my changes. I should send
4763 * Updated docstring for ultraTB with my changes. I should send
4759 this to Nathan.
4764 this to Nathan.
4760
4765
4761 * Lots of small fixes. Ran everything through pychecker again.
4766 * Lots of small fixes. Ran everything through pychecker again.
4762
4767
4763 * Made loading of deep_reload an cmd line option. If it's not too
4768 * Made loading of deep_reload an cmd line option. If it's not too
4764 kosher, now people can just disable it. With -nodeep_reload it's
4769 kosher, now people can just disable it. With -nodeep_reload it's
4765 still available as dreload(), it just won't overwrite reload().
4770 still available as dreload(), it just won't overwrite reload().
4766
4771
4767 * Moved many options to the no| form (-opt and -noopt
4772 * Moved many options to the no| form (-opt and -noopt
4768 accepted). Cleaner.
4773 accepted). Cleaner.
4769
4774
4770 * Changed magic_log so that if called with no parameters, it uses
4775 * Changed magic_log so that if called with no parameters, it uses
4771 'rotate' mode. That way auto-generated logs aren't automatically
4776 'rotate' mode. That way auto-generated logs aren't automatically
4772 over-written. For normal logs, now a backup is made if it exists
4777 over-written. For normal logs, now a backup is made if it exists
4773 (only 1 level of backups). A new 'backup' mode was added to the
4778 (only 1 level of backups). A new 'backup' mode was added to the
4774 Logger class to support this. This was a request by Janko.
4779 Logger class to support this. This was a request by Janko.
4775
4780
4776 * Added @logoff/@logon to stop/restart an active log.
4781 * Added @logoff/@logon to stop/restart an active log.
4777
4782
4778 * Fixed a lot of bugs in log saving/replay. It was pretty
4783 * Fixed a lot of bugs in log saving/replay. It was pretty
4779 broken. Now special lines (!@,/) appear properly in the command
4784 broken. Now special lines (!@,/) appear properly in the command
4780 history after a log replay.
4785 history after a log replay.
4781
4786
4782 * Tried and failed to implement full session saving via pickle. My
4787 * Tried and failed to implement full session saving via pickle. My
4783 idea was to pickle __main__.__dict__, but modules can't be
4788 idea was to pickle __main__.__dict__, but modules can't be
4784 pickled. This would be a better alternative to replaying logs, but
4789 pickled. This would be a better alternative to replaying logs, but
4785 seems quite tricky to get to work. Changed -session to be called
4790 seems quite tricky to get to work. Changed -session to be called
4786 -logplay, which more accurately reflects what it does. And if we
4791 -logplay, which more accurately reflects what it does. And if we
4787 ever get real session saving working, -session is now available.
4792 ever get real session saving working, -session is now available.
4788
4793
4789 * Implemented color schemes for prompts also. As for tracebacks,
4794 * Implemented color schemes for prompts also. As for tracebacks,
4790 currently only NoColor and Linux are supported. But now the
4795 currently only NoColor and Linux are supported. But now the
4791 infrastructure is in place, based on a generic ColorScheme
4796 infrastructure is in place, based on a generic ColorScheme
4792 class. So writing and activating new schemes both for the prompts
4797 class. So writing and activating new schemes both for the prompts
4793 and the tracebacks should be straightforward.
4798 and the tracebacks should be straightforward.
4794
4799
4795 * Version 0.1.13 released, 0.1.14 opened.
4800 * Version 0.1.13 released, 0.1.14 opened.
4796
4801
4797 * Changed handling of options for output cache. Now counter is
4802 * Changed handling of options for output cache. Now counter is
4798 hardwired starting at 1 and one specifies the maximum number of
4803 hardwired starting at 1 and one specifies the maximum number of
4799 entries *in the outcache* (not the max prompt counter). This is
4804 entries *in the outcache* (not the max prompt counter). This is
4800 much better, since many statements won't increase the cache
4805 much better, since many statements won't increase the cache
4801 count. It also eliminated some confusing options, now there's only
4806 count. It also eliminated some confusing options, now there's only
4802 one: cache_size.
4807 one: cache_size.
4803
4808
4804 * Added 'alias' magic function and magic_alias option in the
4809 * Added 'alias' magic function and magic_alias option in the
4805 ipythonrc file. Now the user can easily define whatever names he
4810 ipythonrc file. Now the user can easily define whatever names he
4806 wants for the magic functions without having to play weird
4811 wants for the magic functions without having to play weird
4807 namespace games. This gives IPython a real shell-like feel.
4812 namespace games. This gives IPython a real shell-like feel.
4808
4813
4809 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4814 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4810 @ or not).
4815 @ or not).
4811
4816
4812 This was one of the last remaining 'visible' bugs (that I know
4817 This was one of the last remaining 'visible' bugs (that I know
4813 of). I think if I can clean up the session loading so it works
4818 of). I think if I can clean up the session loading so it works
4814 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4819 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4815 about licensing).
4820 about licensing).
4816
4821
4817 2001-11-25 Fernando Perez <fperez@colorado.edu>
4822 2001-11-25 Fernando Perez <fperez@colorado.edu>
4818
4823
4819 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4824 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4820 there's a cleaner distinction between what ? and ?? show.
4825 there's a cleaner distinction between what ? and ?? show.
4821
4826
4822 * Added screen_length option. Now the user can define his own
4827 * Added screen_length option. Now the user can define his own
4823 screen size for page() operations.
4828 screen size for page() operations.
4824
4829
4825 * Implemented magic shell-like functions with automatic code
4830 * Implemented magic shell-like functions with automatic code
4826 generation. Now adding another function is just a matter of adding
4831 generation. Now adding another function is just a matter of adding
4827 an entry to a dict, and the function is dynamically generated at
4832 an entry to a dict, and the function is dynamically generated at
4828 run-time. Python has some really cool features!
4833 run-time. Python has some really cool features!
4829
4834
4830 * Renamed many options to cleanup conventions a little. Now all
4835 * Renamed many options to cleanup conventions a little. Now all
4831 are lowercase, and only underscores where needed. Also in the code
4836 are lowercase, and only underscores where needed. Also in the code
4832 option name tables are clearer.
4837 option name tables are clearer.
4833
4838
4834 * Changed prompts a little. Now input is 'In [n]:' instead of
4839 * Changed prompts a little. Now input is 'In [n]:' instead of
4835 'In[n]:='. This allows it the numbers to be aligned with the
4840 'In[n]:='. This allows it the numbers to be aligned with the
4836 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4841 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4837 Python (it was a Mathematica thing). The '...' continuation prompt
4842 Python (it was a Mathematica thing). The '...' continuation prompt
4838 was also changed a little to align better.
4843 was also changed a little to align better.
4839
4844
4840 * Fixed bug when flushing output cache. Not all _p<n> variables
4845 * Fixed bug when flushing output cache. Not all _p<n> variables
4841 exist, so their deletion needs to be wrapped in a try:
4846 exist, so their deletion needs to be wrapped in a try:
4842
4847
4843 * Figured out how to properly use inspect.formatargspec() (it
4848 * Figured out how to properly use inspect.formatargspec() (it
4844 requires the args preceded by *). So I removed all the code from
4849 requires the args preceded by *). So I removed all the code from
4845 _get_pdef in Magic, which was just replicating that.
4850 _get_pdef in Magic, which was just replicating that.
4846
4851
4847 * Added test to prefilter to allow redefining magic function names
4852 * Added test to prefilter to allow redefining magic function names
4848 as variables. This is ok, since the @ form is always available,
4853 as variables. This is ok, since the @ form is always available,
4849 but whe should allow the user to define a variable called 'ls' if
4854 but whe should allow the user to define a variable called 'ls' if
4850 he needs it.
4855 he needs it.
4851
4856
4852 * Moved the ToDo information from README into a separate ToDo.
4857 * Moved the ToDo information from README into a separate ToDo.
4853
4858
4854 * General code cleanup and small bugfixes. I think it's close to a
4859 * General code cleanup and small bugfixes. I think it's close to a
4855 state where it can be released, obviously with a big 'beta'
4860 state where it can be released, obviously with a big 'beta'
4856 warning on it.
4861 warning on it.
4857
4862
4858 * Got the magic function split to work. Now all magics are defined
4863 * Got the magic function split to work. Now all magics are defined
4859 in a separate class. It just organizes things a bit, and now
4864 in a separate class. It just organizes things a bit, and now
4860 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4865 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4861 was too long).
4866 was too long).
4862
4867
4863 * Changed @clear to @reset to avoid potential confusions with
4868 * Changed @clear to @reset to avoid potential confusions with
4864 the shell command clear. Also renamed @cl to @clear, which does
4869 the shell command clear. Also renamed @cl to @clear, which does
4865 exactly what people expect it to from their shell experience.
4870 exactly what people expect it to from their shell experience.
4866
4871
4867 Added a check to the @reset command (since it's so
4872 Added a check to the @reset command (since it's so
4868 destructive, it's probably a good idea to ask for confirmation).
4873 destructive, it's probably a good idea to ask for confirmation).
4869 But now reset only works for full namespace resetting. Since the
4874 But now reset only works for full namespace resetting. Since the
4870 del keyword is already there for deleting a few specific
4875 del keyword is already there for deleting a few specific
4871 variables, I don't see the point of having a redundant magic
4876 variables, I don't see the point of having a redundant magic
4872 function for the same task.
4877 function for the same task.
4873
4878
4874 2001-11-24 Fernando Perez <fperez@colorado.edu>
4879 2001-11-24 Fernando Perez <fperez@colorado.edu>
4875
4880
4876 * Updated the builtin docs (esp. the ? ones).
4881 * Updated the builtin docs (esp. the ? ones).
4877
4882
4878 * Ran all the code through pychecker. Not terribly impressed with
4883 * Ran all the code through pychecker. Not terribly impressed with
4879 it: lots of spurious warnings and didn't really find anything of
4884 it: lots of spurious warnings and didn't really find anything of
4880 substance (just a few modules being imported and not used).
4885 substance (just a few modules being imported and not used).
4881
4886
4882 * Implemented the new ultraTB functionality into IPython. New
4887 * Implemented the new ultraTB functionality into IPython. New
4883 option: xcolors. This chooses color scheme. xmode now only selects
4888 option: xcolors. This chooses color scheme. xmode now only selects
4884 between Plain and Verbose. Better orthogonality.
4889 between Plain and Verbose. Better orthogonality.
4885
4890
4886 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4891 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4887 mode and color scheme for the exception handlers. Now it's
4892 mode and color scheme for the exception handlers. Now it's
4888 possible to have the verbose traceback with no coloring.
4893 possible to have the verbose traceback with no coloring.
4889
4894
4890 2001-11-23 Fernando Perez <fperez@colorado.edu>
4895 2001-11-23 Fernando Perez <fperez@colorado.edu>
4891
4896
4892 * Version 0.1.12 released, 0.1.13 opened.
4897 * Version 0.1.12 released, 0.1.13 opened.
4893
4898
4894 * Removed option to set auto-quote and auto-paren escapes by
4899 * Removed option to set auto-quote and auto-paren escapes by
4895 user. The chances of breaking valid syntax are just too high. If
4900 user. The chances of breaking valid syntax are just too high. If
4896 someone *really* wants, they can always dig into the code.
4901 someone *really* wants, they can always dig into the code.
4897
4902
4898 * Made prompt separators configurable.
4903 * Made prompt separators configurable.
4899
4904
4900 2001-11-22 Fernando Perez <fperez@colorado.edu>
4905 2001-11-22 Fernando Perez <fperez@colorado.edu>
4901
4906
4902 * Small bugfixes in many places.
4907 * Small bugfixes in many places.
4903
4908
4904 * Removed the MyCompleter class from ipplib. It seemed redundant
4909 * Removed the MyCompleter class from ipplib. It seemed redundant
4905 with the C-p,C-n history search functionality. Less code to
4910 with the C-p,C-n history search functionality. Less code to
4906 maintain.
4911 maintain.
4907
4912
4908 * Moved all the original ipython.py code into ipythonlib.py. Right
4913 * Moved all the original ipython.py code into ipythonlib.py. Right
4909 now it's just one big dump into a function called make_IPython, so
4914 now it's just one big dump into a function called make_IPython, so
4910 no real modularity has been gained. But at least it makes the
4915 no real modularity has been gained. But at least it makes the
4911 wrapper script tiny, and since ipythonlib is a module, it gets
4916 wrapper script tiny, and since ipythonlib is a module, it gets
4912 compiled and startup is much faster.
4917 compiled and startup is much faster.
4913
4918
4914 This is a reasobably 'deep' change, so we should test it for a
4919 This is a reasobably 'deep' change, so we should test it for a
4915 while without messing too much more with the code.
4920 while without messing too much more with the code.
4916
4921
4917 2001-11-21 Fernando Perez <fperez@colorado.edu>
4922 2001-11-21 Fernando Perez <fperez@colorado.edu>
4918
4923
4919 * Version 0.1.11 released, 0.1.12 opened for further work.
4924 * Version 0.1.11 released, 0.1.12 opened for further work.
4920
4925
4921 * Removed dependency on Itpl. It was only needed in one place. It
4926 * Removed dependency on Itpl. It was only needed in one place. It
4922 would be nice if this became part of python, though. It makes life
4927 would be nice if this became part of python, though. It makes life
4923 *a lot* easier in some cases.
4928 *a lot* easier in some cases.
4924
4929
4925 * Simplified the prefilter code a bit. Now all handlers are
4930 * Simplified the prefilter code a bit. Now all handlers are
4926 expected to explicitly return a value (at least a blank string).
4931 expected to explicitly return a value (at least a blank string).
4927
4932
4928 * Heavy edits in ipplib. Removed the help system altogether. Now
4933 * Heavy edits in ipplib. Removed the help system altogether. Now
4929 obj?/?? is used for inspecting objects, a magic @doc prints
4934 obj?/?? is used for inspecting objects, a magic @doc prints
4930 docstrings, and full-blown Python help is accessed via the 'help'
4935 docstrings, and full-blown Python help is accessed via the 'help'
4931 keyword. This cleans up a lot of code (less to maintain) and does
4936 keyword. This cleans up a lot of code (less to maintain) and does
4932 the job. Since 'help' is now a standard Python component, might as
4937 the job. Since 'help' is now a standard Python component, might as
4933 well use it and remove duplicate functionality.
4938 well use it and remove duplicate functionality.
4934
4939
4935 Also removed the option to use ipplib as a standalone program. By
4940 Also removed the option to use ipplib as a standalone program. By
4936 now it's too dependent on other parts of IPython to function alone.
4941 now it's too dependent on other parts of IPython to function alone.
4937
4942
4938 * Fixed bug in genutils.pager. It would crash if the pager was
4943 * Fixed bug in genutils.pager. It would crash if the pager was
4939 exited immediately after opening (broken pipe).
4944 exited immediately after opening (broken pipe).
4940
4945
4941 * Trimmed down the VerboseTB reporting a little. The header is
4946 * Trimmed down the VerboseTB reporting a little. The header is
4942 much shorter now and the repeated exception arguments at the end
4947 much shorter now and the repeated exception arguments at the end
4943 have been removed. For interactive use the old header seemed a bit
4948 have been removed. For interactive use the old header seemed a bit
4944 excessive.
4949 excessive.
4945
4950
4946 * Fixed small bug in output of @whos for variables with multi-word
4951 * Fixed small bug in output of @whos for variables with multi-word
4947 types (only first word was displayed).
4952 types (only first word was displayed).
4948
4953
4949 2001-11-17 Fernando Perez <fperez@colorado.edu>
4954 2001-11-17 Fernando Perez <fperez@colorado.edu>
4950
4955
4951 * Version 0.1.10 released, 0.1.11 opened for further work.
4956 * Version 0.1.10 released, 0.1.11 opened for further work.
4952
4957
4953 * Modified dirs and friends. dirs now *returns* the stack (not
4958 * Modified dirs and friends. dirs now *returns* the stack (not
4954 prints), so one can manipulate it as a variable. Convenient to
4959 prints), so one can manipulate it as a variable. Convenient to
4955 travel along many directories.
4960 travel along many directories.
4956
4961
4957 * Fixed bug in magic_pdef: would only work with functions with
4962 * Fixed bug in magic_pdef: would only work with functions with
4958 arguments with default values.
4963 arguments with default values.
4959
4964
4960 2001-11-14 Fernando Perez <fperez@colorado.edu>
4965 2001-11-14 Fernando Perez <fperez@colorado.edu>
4961
4966
4962 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4967 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4963 example with IPython. Various other minor fixes and cleanups.
4968 example with IPython. Various other minor fixes and cleanups.
4964
4969
4965 * Version 0.1.9 released, 0.1.10 opened for further work.
4970 * Version 0.1.9 released, 0.1.10 opened for further work.
4966
4971
4967 * Added sys.path to the list of directories searched in the
4972 * Added sys.path to the list of directories searched in the
4968 execfile= option. It used to be the current directory and the
4973 execfile= option. It used to be the current directory and the
4969 user's IPYTHONDIR only.
4974 user's IPYTHONDIR only.
4970
4975
4971 2001-11-13 Fernando Perez <fperez@colorado.edu>
4976 2001-11-13 Fernando Perez <fperez@colorado.edu>
4972
4977
4973 * Reinstated the raw_input/prefilter separation that Janko had
4978 * Reinstated the raw_input/prefilter separation that Janko had
4974 initially. This gives a more convenient setup for extending the
4979 initially. This gives a more convenient setup for extending the
4975 pre-processor from the outside: raw_input always gets a string,
4980 pre-processor from the outside: raw_input always gets a string,
4976 and prefilter has to process it. We can then redefine prefilter
4981 and prefilter has to process it. We can then redefine prefilter
4977 from the outside and implement extensions for special
4982 from the outside and implement extensions for special
4978 purposes.
4983 purposes.
4979
4984
4980 Today I got one for inputting PhysicalQuantity objects
4985 Today I got one for inputting PhysicalQuantity objects
4981 (from Scientific) without needing any function calls at
4986 (from Scientific) without needing any function calls at
4982 all. Extremely convenient, and it's all done as a user-level
4987 all. Extremely convenient, and it's all done as a user-level
4983 extension (no IPython code was touched). Now instead of:
4988 extension (no IPython code was touched). Now instead of:
4984 a = PhysicalQuantity(4.2,'m/s**2')
4989 a = PhysicalQuantity(4.2,'m/s**2')
4985 one can simply say
4990 one can simply say
4986 a = 4.2 m/s**2
4991 a = 4.2 m/s**2
4987 or even
4992 or even
4988 a = 4.2 m/s^2
4993 a = 4.2 m/s^2
4989
4994
4990 I use this, but it's also a proof of concept: IPython really is
4995 I use this, but it's also a proof of concept: IPython really is
4991 fully user-extensible, even at the level of the parsing of the
4996 fully user-extensible, even at the level of the parsing of the
4992 command line. It's not trivial, but it's perfectly doable.
4997 command line. It's not trivial, but it's perfectly doable.
4993
4998
4994 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4999 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4995 the problem of modules being loaded in the inverse order in which
5000 the problem of modules being loaded in the inverse order in which
4996 they were defined in
5001 they were defined in
4997
5002
4998 * Version 0.1.8 released, 0.1.9 opened for further work.
5003 * Version 0.1.8 released, 0.1.9 opened for further work.
4999
5004
5000 * Added magics pdef, source and file. They respectively show the
5005 * Added magics pdef, source and file. They respectively show the
5001 definition line ('prototype' in C), source code and full python
5006 definition line ('prototype' in C), source code and full python
5002 file for any callable object. The object inspector oinfo uses
5007 file for any callable object. The object inspector oinfo uses
5003 these to show the same information.
5008 these to show the same information.
5004
5009
5005 * Version 0.1.7 released, 0.1.8 opened for further work.
5010 * Version 0.1.7 released, 0.1.8 opened for further work.
5006
5011
5007 * Separated all the magic functions into a class called Magic. The
5012 * Separated all the magic functions into a class called Magic. The
5008 InteractiveShell class was becoming too big for Xemacs to handle
5013 InteractiveShell class was becoming too big for Xemacs to handle
5009 (de-indenting a line would lock it up for 10 seconds while it
5014 (de-indenting a line would lock it up for 10 seconds while it
5010 backtracked on the whole class!)
5015 backtracked on the whole class!)
5011
5016
5012 FIXME: didn't work. It can be done, but right now namespaces are
5017 FIXME: didn't work. It can be done, but right now namespaces are
5013 all messed up. Do it later (reverted it for now, so at least
5018 all messed up. Do it later (reverted it for now, so at least
5014 everything works as before).
5019 everything works as before).
5015
5020
5016 * Got the object introspection system (magic_oinfo) working! I
5021 * Got the object introspection system (magic_oinfo) working! I
5017 think this is pretty much ready for release to Janko, so he can
5022 think this is pretty much ready for release to Janko, so he can
5018 test it for a while and then announce it. Pretty much 100% of what
5023 test it for a while and then announce it. Pretty much 100% of what
5019 I wanted for the 'phase 1' release is ready. Happy, tired.
5024 I wanted for the 'phase 1' release is ready. Happy, tired.
5020
5025
5021 2001-11-12 Fernando Perez <fperez@colorado.edu>
5026 2001-11-12 Fernando Perez <fperez@colorado.edu>
5022
5027
5023 * Version 0.1.6 released, 0.1.7 opened for further work.
5028 * Version 0.1.6 released, 0.1.7 opened for further work.
5024
5029
5025 * Fixed bug in printing: it used to test for truth before
5030 * Fixed bug in printing: it used to test for truth before
5026 printing, so 0 wouldn't print. Now checks for None.
5031 printing, so 0 wouldn't print. Now checks for None.
5027
5032
5028 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5033 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5029 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5034 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5030 reaches by hand into the outputcache. Think of a better way to do
5035 reaches by hand into the outputcache. Think of a better way to do
5031 this later.
5036 this later.
5032
5037
5033 * Various small fixes thanks to Nathan's comments.
5038 * Various small fixes thanks to Nathan's comments.
5034
5039
5035 * Changed magic_pprint to magic_Pprint. This way it doesn't
5040 * Changed magic_pprint to magic_Pprint. This way it doesn't
5036 collide with pprint() and the name is consistent with the command
5041 collide with pprint() and the name is consistent with the command
5037 line option.
5042 line option.
5038
5043
5039 * Changed prompt counter behavior to be fully like
5044 * Changed prompt counter behavior to be fully like
5040 Mathematica's. That is, even input that doesn't return a result
5045 Mathematica's. That is, even input that doesn't return a result
5041 raises the prompt counter. The old behavior was kind of confusing
5046 raises the prompt counter. The old behavior was kind of confusing
5042 (getting the same prompt number several times if the operation
5047 (getting the same prompt number several times if the operation
5043 didn't return a result).
5048 didn't return a result).
5044
5049
5045 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5050 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5046
5051
5047 * Fixed -Classic mode (wasn't working anymore).
5052 * Fixed -Classic mode (wasn't working anymore).
5048
5053
5049 * Added colored prompts using Nathan's new code. Colors are
5054 * Added colored prompts using Nathan's new code. Colors are
5050 currently hardwired, they can be user-configurable. For
5055 currently hardwired, they can be user-configurable. For
5051 developers, they can be chosen in file ipythonlib.py, at the
5056 developers, they can be chosen in file ipythonlib.py, at the
5052 beginning of the CachedOutput class def.
5057 beginning of the CachedOutput class def.
5053
5058
5054 2001-11-11 Fernando Perez <fperez@colorado.edu>
5059 2001-11-11 Fernando Perez <fperez@colorado.edu>
5055
5060
5056 * Version 0.1.5 released, 0.1.6 opened for further work.
5061 * Version 0.1.5 released, 0.1.6 opened for further work.
5057
5062
5058 * Changed magic_env to *return* the environment as a dict (not to
5063 * Changed magic_env to *return* the environment as a dict (not to
5059 print it). This way it prints, but it can also be processed.
5064 print it). This way it prints, but it can also be processed.
5060
5065
5061 * Added Verbose exception reporting to interactive
5066 * Added Verbose exception reporting to interactive
5062 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5067 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5063 traceback. Had to make some changes to the ultraTB file. This is
5068 traceback. Had to make some changes to the ultraTB file. This is
5064 probably the last 'big' thing in my mental todo list. This ties
5069 probably the last 'big' thing in my mental todo list. This ties
5065 in with the next entry:
5070 in with the next entry:
5066
5071
5067 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5072 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5068 has to specify is Plain, Color or Verbose for all exception
5073 has to specify is Plain, Color or Verbose for all exception
5069 handling.
5074 handling.
5070
5075
5071 * Removed ShellServices option. All this can really be done via
5076 * Removed ShellServices option. All this can really be done via
5072 the magic system. It's easier to extend, cleaner and has automatic
5077 the magic system. It's easier to extend, cleaner and has automatic
5073 namespace protection and documentation.
5078 namespace protection and documentation.
5074
5079
5075 2001-11-09 Fernando Perez <fperez@colorado.edu>
5080 2001-11-09 Fernando Perez <fperez@colorado.edu>
5076
5081
5077 * Fixed bug in output cache flushing (missing parameter to
5082 * Fixed bug in output cache flushing (missing parameter to
5078 __init__). Other small bugs fixed (found using pychecker).
5083 __init__). Other small bugs fixed (found using pychecker).
5079
5084
5080 * Version 0.1.4 opened for bugfixing.
5085 * Version 0.1.4 opened for bugfixing.
5081
5086
5082 2001-11-07 Fernando Perez <fperez@colorado.edu>
5087 2001-11-07 Fernando Perez <fperez@colorado.edu>
5083
5088
5084 * Version 0.1.3 released, mainly because of the raw_input bug.
5089 * Version 0.1.3 released, mainly because of the raw_input bug.
5085
5090
5086 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5091 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5087 and when testing for whether things were callable, a call could
5092 and when testing for whether things were callable, a call could
5088 actually be made to certain functions. They would get called again
5093 actually be made to certain functions. They would get called again
5089 once 'really' executed, with a resulting double call. A disaster
5094 once 'really' executed, with a resulting double call. A disaster
5090 in many cases (list.reverse() would never work!).
5095 in many cases (list.reverse() would never work!).
5091
5096
5092 * Removed prefilter() function, moved its code to raw_input (which
5097 * Removed prefilter() function, moved its code to raw_input (which
5093 after all was just a near-empty caller for prefilter). This saves
5098 after all was just a near-empty caller for prefilter). This saves
5094 a function call on every prompt, and simplifies the class a tiny bit.
5099 a function call on every prompt, and simplifies the class a tiny bit.
5095
5100
5096 * Fix _ip to __ip name in magic example file.
5101 * Fix _ip to __ip name in magic example file.
5097
5102
5098 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5103 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5099 work with non-gnu versions of tar.
5104 work with non-gnu versions of tar.
5100
5105
5101 2001-11-06 Fernando Perez <fperez@colorado.edu>
5106 2001-11-06 Fernando Perez <fperez@colorado.edu>
5102
5107
5103 * Version 0.1.2. Just to keep track of the recent changes.
5108 * Version 0.1.2. Just to keep track of the recent changes.
5104
5109
5105 * Fixed nasty bug in output prompt routine. It used to check 'if
5110 * Fixed nasty bug in output prompt routine. It used to check 'if
5106 arg != None...'. Problem is, this fails if arg implements a
5111 arg != None...'. Problem is, this fails if arg implements a
5107 special comparison (__cmp__) which disallows comparing to
5112 special comparison (__cmp__) which disallows comparing to
5108 None. Found it when trying to use the PhysicalQuantity module from
5113 None. Found it when trying to use the PhysicalQuantity module from
5109 ScientificPython.
5114 ScientificPython.
5110
5115
5111 2001-11-05 Fernando Perez <fperez@colorado.edu>
5116 2001-11-05 Fernando Perez <fperez@colorado.edu>
5112
5117
5113 * Also added dirs. Now the pushd/popd/dirs family functions
5118 * Also added dirs. Now the pushd/popd/dirs family functions
5114 basically like the shell, with the added convenience of going home
5119 basically like the shell, with the added convenience of going home
5115 when called with no args.
5120 when called with no args.
5116
5121
5117 * pushd/popd slightly modified to mimic shell behavior more
5122 * pushd/popd slightly modified to mimic shell behavior more
5118 closely.
5123 closely.
5119
5124
5120 * Added env,pushd,popd from ShellServices as magic functions. I
5125 * Added env,pushd,popd from ShellServices as magic functions. I
5121 think the cleanest will be to port all desired functions from
5126 think the cleanest will be to port all desired functions from
5122 ShellServices as magics and remove ShellServices altogether. This
5127 ShellServices as magics and remove ShellServices altogether. This
5123 will provide a single, clean way of adding functionality
5128 will provide a single, clean way of adding functionality
5124 (shell-type or otherwise) to IP.
5129 (shell-type or otherwise) to IP.
5125
5130
5126 2001-11-04 Fernando Perez <fperez@colorado.edu>
5131 2001-11-04 Fernando Perez <fperez@colorado.edu>
5127
5132
5128 * Added .ipython/ directory to sys.path. This way users can keep
5133 * Added .ipython/ directory to sys.path. This way users can keep
5129 customizations there and access them via import.
5134 customizations there and access them via import.
5130
5135
5131 2001-11-03 Fernando Perez <fperez@colorado.edu>
5136 2001-11-03 Fernando Perez <fperez@colorado.edu>
5132
5137
5133 * Opened version 0.1.1 for new changes.
5138 * Opened version 0.1.1 for new changes.
5134
5139
5135 * Changed version number to 0.1.0: first 'public' release, sent to
5140 * Changed version number to 0.1.0: first 'public' release, sent to
5136 Nathan and Janko.
5141 Nathan and Janko.
5137
5142
5138 * Lots of small fixes and tweaks.
5143 * Lots of small fixes and tweaks.
5139
5144
5140 * Minor changes to whos format. Now strings are shown, snipped if
5145 * Minor changes to whos format. Now strings are shown, snipped if
5141 too long.
5146 too long.
5142
5147
5143 * Changed ShellServices to work on __main__ so they show up in @who
5148 * Changed ShellServices to work on __main__ so they show up in @who
5144
5149
5145 * Help also works with ? at the end of a line:
5150 * Help also works with ? at the end of a line:
5146 ?sin and sin?
5151 ?sin and sin?
5147 both produce the same effect. This is nice, as often I use the
5152 both produce the same effect. This is nice, as often I use the
5148 tab-complete to find the name of a method, but I used to then have
5153 tab-complete to find the name of a method, but I used to then have
5149 to go to the beginning of the line to put a ? if I wanted more
5154 to go to the beginning of the line to put a ? if I wanted more
5150 info. Now I can just add the ? and hit return. Convenient.
5155 info. Now I can just add the ? and hit return. Convenient.
5151
5156
5152 2001-11-02 Fernando Perez <fperez@colorado.edu>
5157 2001-11-02 Fernando Perez <fperez@colorado.edu>
5153
5158
5154 * Python version check (>=2.1) added.
5159 * Python version check (>=2.1) added.
5155
5160
5156 * Added LazyPython documentation. At this point the docs are quite
5161 * Added LazyPython documentation. At this point the docs are quite
5157 a mess. A cleanup is in order.
5162 a mess. A cleanup is in order.
5158
5163
5159 * Auto-installer created. For some bizarre reason, the zipfiles
5164 * Auto-installer created. For some bizarre reason, the zipfiles
5160 module isn't working on my system. So I made a tar version
5165 module isn't working on my system. So I made a tar version
5161 (hopefully the command line options in various systems won't kill
5166 (hopefully the command line options in various systems won't kill
5162 me).
5167 me).
5163
5168
5164 * Fixes to Struct in genutils. Now all dictionary-like methods are
5169 * Fixes to Struct in genutils. Now all dictionary-like methods are
5165 protected (reasonably).
5170 protected (reasonably).
5166
5171
5167 * Added pager function to genutils and changed ? to print usage
5172 * Added pager function to genutils and changed ? to print usage
5168 note through it (it was too long).
5173 note through it (it was too long).
5169
5174
5170 * Added the LazyPython functionality. Works great! I changed the
5175 * Added the LazyPython functionality. Works great! I changed the
5171 auto-quote escape to ';', it's on home row and next to '. But
5176 auto-quote escape to ';', it's on home row and next to '. But
5172 both auto-quote and auto-paren (still /) escapes are command-line
5177 both auto-quote and auto-paren (still /) escapes are command-line
5173 parameters.
5178 parameters.
5174
5179
5175
5180
5176 2001-11-01 Fernando Perez <fperez@colorado.edu>
5181 2001-11-01 Fernando Perez <fperez@colorado.edu>
5177
5182
5178 * Version changed to 0.0.7. Fairly large change: configuration now
5183 * Version changed to 0.0.7. Fairly large change: configuration now
5179 is all stored in a directory, by default .ipython. There, all
5184 is all stored in a directory, by default .ipython. There, all
5180 config files have normal looking names (not .names)
5185 config files have normal looking names (not .names)
5181
5186
5182 * Version 0.0.6 Released first to Lucas and Archie as a test
5187 * Version 0.0.6 Released first to Lucas and Archie as a test
5183 run. Since it's the first 'semi-public' release, change version to
5188 run. Since it's the first 'semi-public' release, change version to
5184 > 0.0.6 for any changes now.
5189 > 0.0.6 for any changes now.
5185
5190
5186 * Stuff I had put in the ipplib.py changelog:
5191 * Stuff I had put in the ipplib.py changelog:
5187
5192
5188 Changes to InteractiveShell:
5193 Changes to InteractiveShell:
5189
5194
5190 - Made the usage message a parameter.
5195 - Made the usage message a parameter.
5191
5196
5192 - Require the name of the shell variable to be given. It's a bit
5197 - Require the name of the shell variable to be given. It's a bit
5193 of a hack, but allows the name 'shell' not to be hardwire in the
5198 of a hack, but allows the name 'shell' not to be hardwire in the
5194 magic (@) handler, which is problematic b/c it requires
5199 magic (@) handler, which is problematic b/c it requires
5195 polluting the global namespace with 'shell'. This in turn is
5200 polluting the global namespace with 'shell'. This in turn is
5196 fragile: if a user redefines a variable called shell, things
5201 fragile: if a user redefines a variable called shell, things
5197 break.
5202 break.
5198
5203
5199 - magic @: all functions available through @ need to be defined
5204 - magic @: all functions available through @ need to be defined
5200 as magic_<name>, even though they can be called simply as
5205 as magic_<name>, even though they can be called simply as
5201 @<name>. This allows the special command @magic to gather
5206 @<name>. This allows the special command @magic to gather
5202 information automatically about all existing magic functions,
5207 information automatically about all existing magic functions,
5203 even if they are run-time user extensions, by parsing the shell
5208 even if they are run-time user extensions, by parsing the shell
5204 instance __dict__ looking for special magic_ names.
5209 instance __dict__ looking for special magic_ names.
5205
5210
5206 - mainloop: added *two* local namespace parameters. This allows
5211 - mainloop: added *two* local namespace parameters. This allows
5207 the class to differentiate between parameters which were there
5212 the class to differentiate between parameters which were there
5208 before and after command line initialization was processed. This
5213 before and after command line initialization was processed. This
5209 way, later @who can show things loaded at startup by the
5214 way, later @who can show things loaded at startup by the
5210 user. This trick was necessary to make session saving/reloading
5215 user. This trick was necessary to make session saving/reloading
5211 really work: ideally after saving/exiting/reloading a session,
5216 really work: ideally after saving/exiting/reloading a session,
5212 *everythin* should look the same, including the output of @who. I
5217 *everythin* should look the same, including the output of @who. I
5213 was only able to make this work with this double namespace
5218 was only able to make this work with this double namespace
5214 trick.
5219 trick.
5215
5220
5216 - added a header to the logfile which allows (almost) full
5221 - added a header to the logfile which allows (almost) full
5217 session restoring.
5222 session restoring.
5218
5223
5219 - prepend lines beginning with @ or !, with a and log
5224 - prepend lines beginning with @ or !, with a and log
5220 them. Why? !lines: may be useful to know what you did @lines:
5225 them. Why? !lines: may be useful to know what you did @lines:
5221 they may affect session state. So when restoring a session, at
5226 they may affect session state. So when restoring a session, at
5222 least inform the user of their presence. I couldn't quite get
5227 least inform the user of their presence. I couldn't quite get
5223 them to properly re-execute, but at least the user is warned.
5228 them to properly re-execute, but at least the user is warned.
5224
5229
5225 * Started ChangeLog.
5230 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now