##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5148 +1,5152 b''
1 2006-02-01 Ville Vainio <vivainio@gmail.com>
2
3 * easy_install ipython==dev works correctly now.
4
1 2006-01-30 Ville Vainio <vivainio@gmail.com>
5 2006-01-30 Ville Vainio <vivainio@gmail.com>
2
6
3 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
7 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
4 Now %store and bookmarks work through PickleShare, meaning that
8 Now %store and bookmarks work through PickleShare, meaning that
5 concurrent access is possible and all ipython sessions see the
9 concurrent access is possible and all ipython sessions see the
6 same database situation all the time, instead of snapshot of
10 same database situation all the time, instead of snapshot of
7 the situation when the session was started. Hence, %bookmark
11 the situation when the session was started. Hence, %bookmark
8 results are immediately accessible from othes sessions. The database
12 results are immediately accessible from othes sessions. The database
9 is also available for use by user extensions. See:
13 is also available for use by user extensions. See:
10 http://www.python.org/pypi/pickleshare
14 http://www.python.org/pypi/pickleshare
11
15
12 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
16 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
13
17
14 * aliases can now be %store'd
18 * aliases can now be %store'd
15
19
16 * path.py move to Extensions so that pickleshare does not need
20 * path.py move to Extensions so that pickleshare does not need
17 IPython-specific import. Extensions added to pythonpath right
21 IPython-specific import. Extensions added to pythonpath right
18 at __init__.
22 at __init__.
19
23
20 * iplib.py: ipalias deprecated/redundant; aliases are converted and
24 * iplib.py: ipalias deprecated/redundant; aliases are converted and
21 called with _ip.system and the pre-transformed command string.
25 called with _ip.system and the pre-transformed command string.
22
26
23 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
27 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
24
28
25 * IPython/iplib.py (interact): Fix that we were not catching
29 * IPython/iplib.py (interact): Fix that we were not catching
26 KeyboardInterrupt exceptions properly. I'm not quite sure why the
30 KeyboardInterrupt exceptions properly. I'm not quite sure why the
27 logic here had to change, but it's fixed now.
31 logic here had to change, but it's fixed now.
28
32
29 2006-01-29 Ville Vainio <vivainio@gmail.com>
33 2006-01-29 Ville Vainio <vivainio@gmail.com>
30
34
31 * iplib.py: Try to import pyreadline on Windows.
35 * iplib.py: Try to import pyreadline on Windows.
32
36
33 2006-01-27 Ville Vainio <vivainio@gmail.com>
37 2006-01-27 Ville Vainio <vivainio@gmail.com>
34
38
35 * iplib.py: Expose ipapi as _ip in builtin namespace.
39 * iplib.py: Expose ipapi as _ip in builtin namespace.
36 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
40 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
37 and ip_set_hook (-> _ip.set_hook) redundant. % and !
41 and ip_set_hook (-> _ip.set_hook) redundant. % and !
38 syntax now produce _ip.* variant of the commands.
42 syntax now produce _ip.* variant of the commands.
39
43
40 * "_ip.options().autoedit_syntax = 2" automatically throws
44 * "_ip.options().autoedit_syntax = 2" automatically throws
41 user to editor for syntax error correction without prompting.
45 user to editor for syntax error correction without prompting.
42
46
43 2006-01-27 Ville Vainio <vivainio@gmail.com>
47 2006-01-27 Ville Vainio <vivainio@gmail.com>
44
48
45 * ipmaker.py: Give "realistic" sys.argv for scripts (without
49 * ipmaker.py: Give "realistic" sys.argv for scripts (without
46 'ipython' at argv[0]) executed through command line.
50 'ipython' at argv[0]) executed through command line.
47 NOTE: this DEPRECATES calling ipython with multiple scripts
51 NOTE: this DEPRECATES calling ipython with multiple scripts
48 ("ipython a.py b.py c.py")
52 ("ipython a.py b.py c.py")
49
53
50 * iplib.py, hooks.py: Added configurable input prefilter,
54 * iplib.py, hooks.py: Added configurable input prefilter,
51 named 'input_prefilter'. See ext_rescapture.py for example
55 named 'input_prefilter'. See ext_rescapture.py for example
52 usage.
56 usage.
53
57
54 * ext_rescapture.py, Magic.py: Better system command output capture
58 * ext_rescapture.py, Magic.py: Better system command output capture
55 through 'var = !ls' (deprecates user-visible %sc). Same notation
59 through 'var = !ls' (deprecates user-visible %sc). Same notation
56 applies for magics, 'var = %alias' assigns alias list to var.
60 applies for magics, 'var = %alias' assigns alias list to var.
57
61
58 * ipapi.py: added meta() for accessing extension-usable data store.
62 * ipapi.py: added meta() for accessing extension-usable data store.
59
63
60 * iplib.py: added InteractiveShell.getapi(). New magics should be
64 * iplib.py: added InteractiveShell.getapi(). New magics should be
61 written doing self.getapi() instead of using the shell directly.
65 written doing self.getapi() instead of using the shell directly.
62
66
63 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
67 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
64 %store foo >> ~/myfoo.txt to store variables to files (in clean
68 %store foo >> ~/myfoo.txt to store variables to files (in clean
65 textual form, not a restorable pickle).
69 textual form, not a restorable pickle).
66
70
67 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
71 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
68
72
69 * usage.py, Magic.py: added %quickref
73 * usage.py, Magic.py: added %quickref
70
74
71 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
75 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
72
76
73 * GetoptErrors when invoking magics etc. with wrong args
77 * GetoptErrors when invoking magics etc. with wrong args
74 are now more helpful:
78 are now more helpful:
75 GetoptError: option -l not recognized (allowed: "qb" )
79 GetoptError: option -l not recognized (allowed: "qb" )
76
80
77 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
81 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
78
82
79 * IPython/demo.py (Demo.show): Flush stdout after each block, so
83 * IPython/demo.py (Demo.show): Flush stdout after each block, so
80 computationally intensive blocks don't appear to stall the demo.
84 computationally intensive blocks don't appear to stall the demo.
81
85
82 2006-01-24 Ville Vainio <vivainio@gmail.com>
86 2006-01-24 Ville Vainio <vivainio@gmail.com>
83
87
84 * iplib.py, hooks.py: 'result_display' hook can return a non-None
88 * iplib.py, hooks.py: 'result_display' hook can return a non-None
85 value to manipulate resulting history entry.
89 value to manipulate resulting history entry.
86
90
87 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
91 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
88 to instance methods of IPApi class, to make extending an embedded
92 to instance methods of IPApi class, to make extending an embedded
89 IPython feasible. See ext_rehashdir.py for example usage.
93 IPython feasible. See ext_rehashdir.py for example usage.
90
94
91 * Merged 1071-1076 from banches/0.7.1
95 * Merged 1071-1076 from banches/0.7.1
92
96
93
97
94 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
98 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
95
99
96 * tools/release (daystamp): Fix build tools to use the new
100 * tools/release (daystamp): Fix build tools to use the new
97 eggsetup.py script to build lightweight eggs.
101 eggsetup.py script to build lightweight eggs.
98
102
99 * Applied changesets 1062 and 1064 before 0.7.1 release.
103 * Applied changesets 1062 and 1064 before 0.7.1 release.
100
104
101 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
105 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
102 see the raw input history (without conversions like %ls ->
106 see the raw input history (without conversions like %ls ->
103 ipmagic("ls")). After a request from W. Stein, SAGE
107 ipmagic("ls")). After a request from W. Stein, SAGE
104 (http://modular.ucsd.edu/sage) developer. This information is
108 (http://modular.ucsd.edu/sage) developer. This information is
105 stored in the input_hist_raw attribute of the IPython instance, so
109 stored in the input_hist_raw attribute of the IPython instance, so
106 developers can access it if needed (it's an InputList instance).
110 developers can access it if needed (it's an InputList instance).
107
111
108 * Versionstring = 0.7.2.svn
112 * Versionstring = 0.7.2.svn
109
113
110 * eggsetup.py: A separate script for constructing eggs, creates
114 * eggsetup.py: A separate script for constructing eggs, creates
111 proper launch scripts even on Windows (an .exe file in
115 proper launch scripts even on Windows (an .exe file in
112 \python24\scripts).
116 \python24\scripts).
113
117
114 * ipapi.py: launch_new_instance, launch entry point needed for the
118 * ipapi.py: launch_new_instance, launch entry point needed for the
115 egg.
119 egg.
116
120
117 2006-01-23 Ville Vainio <vivainio@gmail.com>
121 2006-01-23 Ville Vainio <vivainio@gmail.com>
118
122
119 * Added %cpaste magic for pasting python code
123 * Added %cpaste magic for pasting python code
120
124
121 2006-01-22 Ville Vainio <vivainio@gmail.com>
125 2006-01-22 Ville Vainio <vivainio@gmail.com>
122
126
123 * Merge from branches/0.7.1 into trunk, revs 1052-1057
127 * Merge from branches/0.7.1 into trunk, revs 1052-1057
124
128
125 * Versionstring = 0.7.2.svn
129 * Versionstring = 0.7.2.svn
126
130
127 * eggsetup.py: A separate script for constructing eggs, creates
131 * eggsetup.py: A separate script for constructing eggs, creates
128 proper launch scripts even on Windows (an .exe file in
132 proper launch scripts even on Windows (an .exe file in
129 \python24\scripts).
133 \python24\scripts).
130
134
131 * ipapi.py: launch_new_instance, launch entry point needed for the
135 * ipapi.py: launch_new_instance, launch entry point needed for the
132 egg.
136 egg.
133
137
134 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
138 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
135
139
136 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
140 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
137 %pfile foo would print the file for foo even if it was a binary.
141 %pfile foo would print the file for foo even if it was a binary.
138 Now, extensions '.so' and '.dll' are skipped.
142 Now, extensions '.so' and '.dll' are skipped.
139
143
140 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
144 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
141 bug, where macros would fail in all threaded modes. I'm not 100%
145 bug, where macros would fail in all threaded modes. I'm not 100%
142 sure, so I'm going to put out an rc instead of making a release
146 sure, so I'm going to put out an rc instead of making a release
143 today, and wait for feedback for at least a few days.
147 today, and wait for feedback for at least a few days.
144
148
145 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
149 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
146 it...) the handling of pasting external code with autoindent on.
150 it...) the handling of pasting external code with autoindent on.
147 To get out of a multiline input, the rule will appear for most
151 To get out of a multiline input, the rule will appear for most
148 users unchanged: two blank lines or change the indent level
152 users unchanged: two blank lines or change the indent level
149 proposed by IPython. But there is a twist now: you can
153 proposed by IPython. But there is a twist now: you can
150 add/subtract only *one or two spaces*. If you add/subtract three
154 add/subtract only *one or two spaces*. If you add/subtract three
151 or more (unless you completely delete the line), IPython will
155 or more (unless you completely delete the line), IPython will
152 accept that line, and you'll need to enter a second one of pure
156 accept that line, and you'll need to enter a second one of pure
153 whitespace. I know it sounds complicated, but I can't find a
157 whitespace. I know it sounds complicated, but I can't find a
154 different solution that covers all the cases, with the right
158 different solution that covers all the cases, with the right
155 heuristics. Hopefully in actual use, nobody will really notice
159 heuristics. Hopefully in actual use, nobody will really notice
156 all these strange rules and things will 'just work'.
160 all these strange rules and things will 'just work'.
157
161
158 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
162 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
159
163
160 * IPython/iplib.py (interact): catch exceptions which can be
164 * IPython/iplib.py (interact): catch exceptions which can be
161 triggered asynchronously by signal handlers. Thanks to an
165 triggered asynchronously by signal handlers. Thanks to an
162 automatic crash report, submitted by Colin Kingsley
166 automatic crash report, submitted by Colin Kingsley
163 <tercel-AT-gentoo.org>.
167 <tercel-AT-gentoo.org>.
164
168
165 2006-01-20 Ville Vainio <vivainio@gmail.com>
169 2006-01-20 Ville Vainio <vivainio@gmail.com>
166
170
167 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
171 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
168 (%rehashdir, very useful, try it out) of how to extend ipython
172 (%rehashdir, very useful, try it out) of how to extend ipython
169 with new magics. Also added Extensions dir to pythonpath to make
173 with new magics. Also added Extensions dir to pythonpath to make
170 importing extensions easy.
174 importing extensions easy.
171
175
172 * %store now complains when trying to store interactively declared
176 * %store now complains when trying to store interactively declared
173 classes / instances of those classes.
177 classes / instances of those classes.
174
178
175 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
179 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
176 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
180 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
177 if they exist, and ipy_user_conf.py with some defaults is created for
181 if they exist, and ipy_user_conf.py with some defaults is created for
178 the user.
182 the user.
179
183
180 * Startup rehashing done by the config file, not InterpreterExec.
184 * Startup rehashing done by the config file, not InterpreterExec.
181 This means system commands are available even without selecting the
185 This means system commands are available even without selecting the
182 pysh profile. It's the sensible default after all.
186 pysh profile. It's the sensible default after all.
183
187
184 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
188 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
185
189
186 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
190 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
187 multiline code with autoindent on working. But I am really not
191 multiline code with autoindent on working. But I am really not
188 sure, so this needs more testing. Will commit a debug-enabled
192 sure, so this needs more testing. Will commit a debug-enabled
189 version for now, while I test it some more, so that Ville and
193 version for now, while I test it some more, so that Ville and
190 others may also catch any problems. Also made
194 others may also catch any problems. Also made
191 self.indent_current_str() a method, to ensure that there's no
195 self.indent_current_str() a method, to ensure that there's no
192 chance of the indent space count and the corresponding string
196 chance of the indent space count and the corresponding string
193 falling out of sync. All code needing the string should just call
197 falling out of sync. All code needing the string should just call
194 the method.
198 the method.
195
199
196 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
200 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
197
201
198 * IPython/Magic.py (magic_edit): fix check for when users don't
202 * IPython/Magic.py (magic_edit): fix check for when users don't
199 save their output files, the try/except was in the wrong section.
203 save their output files, the try/except was in the wrong section.
200
204
201 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
205 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
202
206
203 * IPython/Magic.py (magic_run): fix __file__ global missing from
207 * IPython/Magic.py (magic_run): fix __file__ global missing from
204 script's namespace when executed via %run. After a report by
208 script's namespace when executed via %run. After a report by
205 Vivian.
209 Vivian.
206
210
207 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
211 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
208 when using python 2.4. The parent constructor changed in 2.4, and
212 when using python 2.4. The parent constructor changed in 2.4, and
209 we need to track it directly (we can't call it, as it messes up
213 we need to track it directly (we can't call it, as it messes up
210 readline and tab-completion inside our pdb would stop working).
214 readline and tab-completion inside our pdb would stop working).
211 After a bug report by R. Bernstein <rocky-AT-panix.com>.
215 After a bug report by R. Bernstein <rocky-AT-panix.com>.
212
216
213 2006-01-16 Ville Vainio <vivainio@gmail.com>
217 2006-01-16 Ville Vainio <vivainio@gmail.com>
214
218
215 * Ipython/magic.py:Reverted back to old %edit functionality
219 * Ipython/magic.py:Reverted back to old %edit functionality
216 that returns file contents on exit.
220 that returns file contents on exit.
217
221
218 * IPython/path.py: Added Jason Orendorff's "path" module to
222 * IPython/path.py: Added Jason Orendorff's "path" module to
219 IPython tree, http://www.jorendorff.com/articles/python/path/.
223 IPython tree, http://www.jorendorff.com/articles/python/path/.
220 You can get path objects conveniently through %sc, and !!, e.g.:
224 You can get path objects conveniently through %sc, and !!, e.g.:
221 sc files=ls
225 sc files=ls
222 for p in files.paths: # or files.p
226 for p in files.paths: # or files.p
223 print p,p.mtime
227 print p,p.mtime
224
228
225 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
229 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
226 now work again without considering the exclusion regexp -
230 now work again without considering the exclusion regexp -
227 hence, things like ',foo my/path' turn to 'foo("my/path")'
231 hence, things like ',foo my/path' turn to 'foo("my/path")'
228 instead of syntax error.
232 instead of syntax error.
229
233
230
234
231 2006-01-14 Ville Vainio <vivainio@gmail.com>
235 2006-01-14 Ville Vainio <vivainio@gmail.com>
232
236
233 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
237 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
234 ipapi decorators for python 2.4 users, options() provides access to rc
238 ipapi decorators for python 2.4 users, options() provides access to rc
235 data.
239 data.
236
240
237 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
241 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
238 as path separators (even on Linux ;-). Space character after
242 as path separators (even on Linux ;-). Space character after
239 backslash (as yielded by tab completer) is still space;
243 backslash (as yielded by tab completer) is still space;
240 "%cd long\ name" works as expected.
244 "%cd long\ name" works as expected.
241
245
242 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
246 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
243 as "chain of command", with priority. API stays the same,
247 as "chain of command", with priority. API stays the same,
244 TryNext exception raised by a hook function signals that
248 TryNext exception raised by a hook function signals that
245 current hook failed and next hook should try handling it, as
249 current hook failed and next hook should try handling it, as
246 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
250 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
247 requested configurable display hook, which is now implemented.
251 requested configurable display hook, which is now implemented.
248
252
249 2006-01-13 Ville Vainio <vivainio@gmail.com>
253 2006-01-13 Ville Vainio <vivainio@gmail.com>
250
254
251 * IPython/platutils*.py: platform specific utility functions,
255 * IPython/platutils*.py: platform specific utility functions,
252 so far only set_term_title is implemented (change terminal
256 so far only set_term_title is implemented (change terminal
253 label in windowing systems). %cd now changes the title to
257 label in windowing systems). %cd now changes the title to
254 current dir.
258 current dir.
255
259
256 * IPython/Release.py: Added myself to "authors" list,
260 * IPython/Release.py: Added myself to "authors" list,
257 had to create new files.
261 had to create new files.
258
262
259 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
263 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
260 shell escape; not a known bug but had potential to be one in the
264 shell escape; not a known bug but had potential to be one in the
261 future.
265 future.
262
266
263 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
267 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
264 extension API for IPython! See the module for usage example. Fix
268 extension API for IPython! See the module for usage example. Fix
265 OInspect for docstring-less magic functions.
269 OInspect for docstring-less magic functions.
266
270
267
271
268 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
272 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
269
273
270 * IPython/iplib.py (raw_input): temporarily deactivate all
274 * IPython/iplib.py (raw_input): temporarily deactivate all
271 attempts at allowing pasting of code with autoindent on. It
275 attempts at allowing pasting of code with autoindent on. It
272 introduced bugs (reported by Prabhu) and I can't seem to find a
276 introduced bugs (reported by Prabhu) and I can't seem to find a
273 robust combination which works in all cases. Will have to revisit
277 robust combination which works in all cases. Will have to revisit
274 later.
278 later.
275
279
276 * IPython/genutils.py: remove isspace() function. We've dropped
280 * IPython/genutils.py: remove isspace() function. We've dropped
277 2.2 compatibility, so it's OK to use the string method.
281 2.2 compatibility, so it's OK to use the string method.
278
282
279 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
283 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
280
284
281 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
285 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
282 matching what NOT to autocall on, to include all python binary
286 matching what NOT to autocall on, to include all python binary
283 operators (including things like 'and', 'or', 'is' and 'in').
287 operators (including things like 'and', 'or', 'is' and 'in').
284 Prompted by a bug report on 'foo & bar', but I realized we had
288 Prompted by a bug report on 'foo & bar', but I realized we had
285 many more potential bug cases with other operators. The regexp is
289 many more potential bug cases with other operators. The regexp is
286 self.re_exclude_auto, it's fairly commented.
290 self.re_exclude_auto, it's fairly commented.
287
291
288 2006-01-12 Ville Vainio <vivainio@gmail.com>
292 2006-01-12 Ville Vainio <vivainio@gmail.com>
289
293
290 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
294 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
291 Prettified and hardened string/backslash quoting with ipsystem(),
295 Prettified and hardened string/backslash quoting with ipsystem(),
292 ipalias() and ipmagic(). Now even \ characters are passed to
296 ipalias() and ipmagic(). Now even \ characters are passed to
293 %magics, !shell escapes and aliases exactly as they are in the
297 %magics, !shell escapes and aliases exactly as they are in the
294 ipython command line. Should improve backslash experience,
298 ipython command line. Should improve backslash experience,
295 particularly in Windows (path delimiter for some commands that
299 particularly in Windows (path delimiter for some commands that
296 won't understand '/'), but Unix benefits as well (regexps). %cd
300 won't understand '/'), but Unix benefits as well (regexps). %cd
297 magic still doesn't support backslash path delimiters, though. Also
301 magic still doesn't support backslash path delimiters, though. Also
298 deleted all pretense of supporting multiline command strings in
302 deleted all pretense of supporting multiline command strings in
299 !system or %magic commands. Thanks to Jerry McRae for suggestions.
303 !system or %magic commands. Thanks to Jerry McRae for suggestions.
300
304
301 * doc/build_doc_instructions.txt added. Documentation on how to
305 * doc/build_doc_instructions.txt added. Documentation on how to
302 use doc/update_manual.py, added yesterday. Both files contributed
306 use doc/update_manual.py, added yesterday. Both files contributed
303 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
307 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
304 doc/*.sh for deprecation at a later date.
308 doc/*.sh for deprecation at a later date.
305
309
306 * /ipython.py Added ipython.py to root directory for
310 * /ipython.py Added ipython.py to root directory for
307 zero-installation (tar xzvf ipython.tgz; cd ipython; python
311 zero-installation (tar xzvf ipython.tgz; cd ipython; python
308 ipython.py) and development convenience (no need to kee doing
312 ipython.py) and development convenience (no need to kee doing
309 "setup.py install" between changes).
313 "setup.py install" between changes).
310
314
311 * Made ! and !! shell escapes work (again) in multiline expressions:
315 * Made ! and !! shell escapes work (again) in multiline expressions:
312 if 1:
316 if 1:
313 !ls
317 !ls
314 !!ls
318 !!ls
315
319
316 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
320 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
317
321
318 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
322 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
319 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
323 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
320 module in case-insensitive installation. Was causing crashes
324 module in case-insensitive installation. Was causing crashes
321 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
325 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
322
326
323 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
327 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
324 <marienz-AT-gentoo.org>, closes
328 <marienz-AT-gentoo.org>, closes
325 http://www.scipy.net/roundup/ipython/issue51.
329 http://www.scipy.net/roundup/ipython/issue51.
326
330
327 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
331 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
328
332
329 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
333 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
330 problem of excessive CPU usage under *nix and keyboard lag under
334 problem of excessive CPU usage under *nix and keyboard lag under
331 win32.
335 win32.
332
336
333 2006-01-10 *** Released version 0.7.0
337 2006-01-10 *** Released version 0.7.0
334
338
335 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
339 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
336
340
337 * IPython/Release.py (revision): tag version number to 0.7.0,
341 * IPython/Release.py (revision): tag version number to 0.7.0,
338 ready for release.
342 ready for release.
339
343
340 * IPython/Magic.py (magic_edit): Add print statement to %edit so
344 * IPython/Magic.py (magic_edit): Add print statement to %edit so
341 it informs the user of the name of the temp. file used. This can
345 it informs the user of the name of the temp. file used. This can
342 help if you decide later to reuse that same file, so you know
346 help if you decide later to reuse that same file, so you know
343 where to copy the info from.
347 where to copy the info from.
344
348
345 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
349 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
346
350
347 * setup_bdist_egg.py: little script to build an egg. Added
351 * setup_bdist_egg.py: little script to build an egg. Added
348 support in the release tools as well.
352 support in the release tools as well.
349
353
350 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
354 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
351
355
352 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
356 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
353 version selection (new -wxversion command line and ipythonrc
357 version selection (new -wxversion command line and ipythonrc
354 parameter). Patch contributed by Arnd Baecker
358 parameter). Patch contributed by Arnd Baecker
355 <arnd.baecker-AT-web.de>.
359 <arnd.baecker-AT-web.de>.
356
360
357 * IPython/iplib.py (embed_mainloop): fix tab-completion in
361 * IPython/iplib.py (embed_mainloop): fix tab-completion in
358 embedded instances, for variables defined at the interactive
362 embedded instances, for variables defined at the interactive
359 prompt of the embedded ipython. Reported by Arnd.
363 prompt of the embedded ipython. Reported by Arnd.
360
364
361 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
365 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
362 it can be used as a (stateful) toggle, or with a direct parameter.
366 it can be used as a (stateful) toggle, or with a direct parameter.
363
367
364 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
368 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
365 could be triggered in certain cases and cause the traceback
369 could be triggered in certain cases and cause the traceback
366 printer not to work.
370 printer not to work.
367
371
368 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
372 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
369
373
370 * IPython/iplib.py (_should_recompile): Small fix, closes
374 * IPython/iplib.py (_should_recompile): Small fix, closes
371 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
375 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
372
376
373 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
377 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
374
378
375 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
379 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
376 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
380 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
377 Moad for help with tracking it down.
381 Moad for help with tracking it down.
378
382
379 * IPython/iplib.py (handle_auto): fix autocall handling for
383 * IPython/iplib.py (handle_auto): fix autocall handling for
380 objects which support BOTH __getitem__ and __call__ (so that f [x]
384 objects which support BOTH __getitem__ and __call__ (so that f [x]
381 is left alone, instead of becoming f([x]) automatically).
385 is left alone, instead of becoming f([x]) automatically).
382
386
383 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
387 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
384 Ville's patch.
388 Ville's patch.
385
389
386 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
390 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
387
391
388 * IPython/iplib.py (handle_auto): changed autocall semantics to
392 * IPython/iplib.py (handle_auto): changed autocall semantics to
389 include 'smart' mode, where the autocall transformation is NOT
393 include 'smart' mode, where the autocall transformation is NOT
390 applied if there are no arguments on the line. This allows you to
394 applied if there are no arguments on the line. This allows you to
391 just type 'foo' if foo is a callable to see its internal form,
395 just type 'foo' if foo is a callable to see its internal form,
392 instead of having it called with no arguments (typically a
396 instead of having it called with no arguments (typically a
393 mistake). The old 'full' autocall still exists: for that, you
397 mistake). The old 'full' autocall still exists: for that, you
394 need to set the 'autocall' parameter to 2 in your ipythonrc file.
398 need to set the 'autocall' parameter to 2 in your ipythonrc file.
395
399
396 * IPython/completer.py (Completer.attr_matches): add
400 * IPython/completer.py (Completer.attr_matches): add
397 tab-completion support for Enthoughts' traits. After a report by
401 tab-completion support for Enthoughts' traits. After a report by
398 Arnd and a patch by Prabhu.
402 Arnd and a patch by Prabhu.
399
403
400 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
404 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
401
405
402 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
406 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
403 Schmolck's patch to fix inspect.getinnerframes().
407 Schmolck's patch to fix inspect.getinnerframes().
404
408
405 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
409 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
406 for embedded instances, regarding handling of namespaces and items
410 for embedded instances, regarding handling of namespaces and items
407 added to the __builtin__ one. Multiple embedded instances and
411 added to the __builtin__ one. Multiple embedded instances and
408 recursive embeddings should work better now (though I'm not sure
412 recursive embeddings should work better now (though I'm not sure
409 I've got all the corner cases fixed, that code is a bit of a brain
413 I've got all the corner cases fixed, that code is a bit of a brain
410 twister).
414 twister).
411
415
412 * IPython/Magic.py (magic_edit): added support to edit in-memory
416 * IPython/Magic.py (magic_edit): added support to edit in-memory
413 macros (automatically creates the necessary temp files). %edit
417 macros (automatically creates the necessary temp files). %edit
414 also doesn't return the file contents anymore, it's just noise.
418 also doesn't return the file contents anymore, it's just noise.
415
419
416 * IPython/completer.py (Completer.attr_matches): revert change to
420 * IPython/completer.py (Completer.attr_matches): revert change to
417 complete only on attributes listed in __all__. I realized it
421 complete only on attributes listed in __all__. I realized it
418 cripples the tab-completion system as a tool for exploring the
422 cripples the tab-completion system as a tool for exploring the
419 internals of unknown libraries (it renders any non-__all__
423 internals of unknown libraries (it renders any non-__all__
420 attribute off-limits). I got bit by this when trying to see
424 attribute off-limits). I got bit by this when trying to see
421 something inside the dis module.
425 something inside the dis module.
422
426
423 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
427 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
424
428
425 * IPython/iplib.py (InteractiveShell.__init__): add .meta
429 * IPython/iplib.py (InteractiveShell.__init__): add .meta
426 namespace for users and extension writers to hold data in. This
430 namespace for users and extension writers to hold data in. This
427 follows the discussion in
431 follows the discussion in
428 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
432 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
429
433
430 * IPython/completer.py (IPCompleter.complete): small patch to help
434 * IPython/completer.py (IPCompleter.complete): small patch to help
431 tab-completion under Emacs, after a suggestion by John Barnard
435 tab-completion under Emacs, after a suggestion by John Barnard
432 <barnarj-AT-ccf.org>.
436 <barnarj-AT-ccf.org>.
433
437
434 * IPython/Magic.py (Magic.extract_input_slices): added support for
438 * IPython/Magic.py (Magic.extract_input_slices): added support for
435 the slice notation in magics to use N-M to represent numbers N...M
439 the slice notation in magics to use N-M to represent numbers N...M
436 (closed endpoints). This is used by %macro and %save.
440 (closed endpoints). This is used by %macro and %save.
437
441
438 * IPython/completer.py (Completer.attr_matches): for modules which
442 * IPython/completer.py (Completer.attr_matches): for modules which
439 define __all__, complete only on those. After a patch by Jeffrey
443 define __all__, complete only on those. After a patch by Jeffrey
440 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
444 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
441 speed up this routine.
445 speed up this routine.
442
446
443 * IPython/Logger.py (Logger.log): fix a history handling bug. I
447 * IPython/Logger.py (Logger.log): fix a history handling bug. I
444 don't know if this is the end of it, but the behavior now is
448 don't know if this is the end of it, but the behavior now is
445 certainly much more correct. Note that coupled with macros,
449 certainly much more correct. Note that coupled with macros,
446 slightly surprising (at first) behavior may occur: a macro will in
450 slightly surprising (at first) behavior may occur: a macro will in
447 general expand to multiple lines of input, so upon exiting, the
451 general expand to multiple lines of input, so upon exiting, the
448 in/out counters will both be bumped by the corresponding amount
452 in/out counters will both be bumped by the corresponding amount
449 (as if the macro's contents had been typed interactively). Typing
453 (as if the macro's contents had been typed interactively). Typing
450 %hist will reveal the intermediate (silently processed) lines.
454 %hist will reveal the intermediate (silently processed) lines.
451
455
452 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
456 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
453 pickle to fail (%run was overwriting __main__ and not restoring
457 pickle to fail (%run was overwriting __main__ and not restoring
454 it, but pickle relies on __main__ to operate).
458 it, but pickle relies on __main__ to operate).
455
459
456 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
460 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
457 using properties, but forgot to make the main InteractiveShell
461 using properties, but forgot to make the main InteractiveShell
458 class a new-style class. Properties fail silently, and
462 class a new-style class. Properties fail silently, and
459 misteriously, with old-style class (getters work, but
463 misteriously, with old-style class (getters work, but
460 setters don't do anything).
464 setters don't do anything).
461
465
462 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
466 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
463
467
464 * IPython/Magic.py (magic_history): fix history reporting bug (I
468 * IPython/Magic.py (magic_history): fix history reporting bug (I
465 know some nasties are still there, I just can't seem to find a
469 know some nasties are still there, I just can't seem to find a
466 reproducible test case to track them down; the input history is
470 reproducible test case to track them down; the input history is
467 falling out of sync...)
471 falling out of sync...)
468
472
469 * IPython/iplib.py (handle_shell_escape): fix bug where both
473 * IPython/iplib.py (handle_shell_escape): fix bug where both
470 aliases and system accesses where broken for indented code (such
474 aliases and system accesses where broken for indented code (such
471 as loops).
475 as loops).
472
476
473 * IPython/genutils.py (shell): fix small but critical bug for
477 * IPython/genutils.py (shell): fix small but critical bug for
474 win32 system access.
478 win32 system access.
475
479
476 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
480 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
477
481
478 * IPython/iplib.py (showtraceback): remove use of the
482 * IPython/iplib.py (showtraceback): remove use of the
479 sys.last_{type/value/traceback} structures, which are non
483 sys.last_{type/value/traceback} structures, which are non
480 thread-safe.
484 thread-safe.
481 (_prefilter): change control flow to ensure that we NEVER
485 (_prefilter): change control flow to ensure that we NEVER
482 introspect objects when autocall is off. This will guarantee that
486 introspect objects when autocall is off. This will guarantee that
483 having an input line of the form 'x.y', where access to attribute
487 having an input line of the form 'x.y', where access to attribute
484 'y' has side effects, doesn't trigger the side effect TWICE. It
488 'y' has side effects, doesn't trigger the side effect TWICE. It
485 is important to note that, with autocall on, these side effects
489 is important to note that, with autocall on, these side effects
486 can still happen.
490 can still happen.
487 (ipsystem): new builtin, to complete the ip{magic/alias/system}
491 (ipsystem): new builtin, to complete the ip{magic/alias/system}
488 trio. IPython offers these three kinds of special calls which are
492 trio. IPython offers these three kinds of special calls which are
489 not python code, and it's a good thing to have their call method
493 not python code, and it's a good thing to have their call method
490 be accessible as pure python functions (not just special syntax at
494 be accessible as pure python functions (not just special syntax at
491 the command line). It gives us a better internal implementation
495 the command line). It gives us a better internal implementation
492 structure, as well as exposing these for user scripting more
496 structure, as well as exposing these for user scripting more
493 cleanly.
497 cleanly.
494
498
495 * IPython/macro.py (Macro.__init__): moved macros to a standalone
499 * IPython/macro.py (Macro.__init__): moved macros to a standalone
496 file. Now that they'll be more likely to be used with the
500 file. Now that they'll be more likely to be used with the
497 persistance system (%store), I want to make sure their module path
501 persistance system (%store), I want to make sure their module path
498 doesn't change in the future, so that we don't break things for
502 doesn't change in the future, so that we don't break things for
499 users' persisted data.
503 users' persisted data.
500
504
501 * IPython/iplib.py (autoindent_update): move indentation
505 * IPython/iplib.py (autoindent_update): move indentation
502 management into the _text_ processing loop, not the keyboard
506 management into the _text_ processing loop, not the keyboard
503 interactive one. This is necessary to correctly process non-typed
507 interactive one. This is necessary to correctly process non-typed
504 multiline input (such as macros).
508 multiline input (such as macros).
505
509
506 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
510 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
507 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
511 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
508 which was producing problems in the resulting manual.
512 which was producing problems in the resulting manual.
509 (magic_whos): improve reporting of instances (show their class,
513 (magic_whos): improve reporting of instances (show their class,
510 instead of simply printing 'instance' which isn't terribly
514 instead of simply printing 'instance' which isn't terribly
511 informative).
515 informative).
512
516
513 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
517 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
514 (minor mods) to support network shares under win32.
518 (minor mods) to support network shares under win32.
515
519
516 * IPython/winconsole.py (get_console_size): add new winconsole
520 * IPython/winconsole.py (get_console_size): add new winconsole
517 module and fixes to page_dumb() to improve its behavior under
521 module and fixes to page_dumb() to improve its behavior under
518 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
522 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
519
523
520 * IPython/Magic.py (Macro): simplified Macro class to just
524 * IPython/Magic.py (Macro): simplified Macro class to just
521 subclass list. We've had only 2.2 compatibility for a very long
525 subclass list. We've had only 2.2 compatibility for a very long
522 time, yet I was still avoiding subclassing the builtin types. No
526 time, yet I was still avoiding subclassing the builtin types. No
523 more (I'm also starting to use properties, though I won't shift to
527 more (I'm also starting to use properties, though I won't shift to
524 2.3-specific features quite yet).
528 2.3-specific features quite yet).
525 (magic_store): added Ville's patch for lightweight variable
529 (magic_store): added Ville's patch for lightweight variable
526 persistence, after a request on the user list by Matt Wilkie
530 persistence, after a request on the user list by Matt Wilkie
527 <maphew-AT-gmail.com>. The new %store magic's docstring has full
531 <maphew-AT-gmail.com>. The new %store magic's docstring has full
528 details.
532 details.
529
533
530 * IPython/iplib.py (InteractiveShell.post_config_initialization):
534 * IPython/iplib.py (InteractiveShell.post_config_initialization):
531 changed the default logfile name from 'ipython.log' to
535 changed the default logfile name from 'ipython.log' to
532 'ipython_log.py'. These logs are real python files, and now that
536 'ipython_log.py'. These logs are real python files, and now that
533 we have much better multiline support, people are more likely to
537 we have much better multiline support, people are more likely to
534 want to use them as such. Might as well name them correctly.
538 want to use them as such. Might as well name them correctly.
535
539
536 * IPython/Magic.py: substantial cleanup. While we can't stop
540 * IPython/Magic.py: substantial cleanup. While we can't stop
537 using magics as mixins, due to the existing customizations 'out
541 using magics as mixins, due to the existing customizations 'out
538 there' which rely on the mixin naming conventions, at least I
542 there' which rely on the mixin naming conventions, at least I
539 cleaned out all cross-class name usage. So once we are OK with
543 cleaned out all cross-class name usage. So once we are OK with
540 breaking compatibility, the two systems can be separated.
544 breaking compatibility, the two systems can be separated.
541
545
542 * IPython/Logger.py: major cleanup. This one is NOT a mixin
546 * IPython/Logger.py: major cleanup. This one is NOT a mixin
543 anymore, and the class is a fair bit less hideous as well. New
547 anymore, and the class is a fair bit less hideous as well. New
544 features were also introduced: timestamping of input, and logging
548 features were also introduced: timestamping of input, and logging
545 of output results. These are user-visible with the -t and -o
549 of output results. These are user-visible with the -t and -o
546 options to %logstart. Closes
550 options to %logstart. Closes
547 http://www.scipy.net/roundup/ipython/issue11 and a request by
551 http://www.scipy.net/roundup/ipython/issue11 and a request by
548 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
552 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
549
553
550 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
554 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
551
555
552 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
556 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
553 better hadnle backslashes in paths. See the thread 'More Windows
557 better hadnle backslashes in paths. See the thread 'More Windows
554 questions part 2 - \/ characters revisited' on the iypthon user
558 questions part 2 - \/ characters revisited' on the iypthon user
555 list:
559 list:
556 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
560 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
557
561
558 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
562 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
559
563
560 (InteractiveShell.__init__): change threaded shells to not use the
564 (InteractiveShell.__init__): change threaded shells to not use the
561 ipython crash handler. This was causing more problems than not,
565 ipython crash handler. This was causing more problems than not,
562 as exceptions in the main thread (GUI code, typically) would
566 as exceptions in the main thread (GUI code, typically) would
563 always show up as a 'crash', when they really weren't.
567 always show up as a 'crash', when they really weren't.
564
568
565 The colors and exception mode commands (%colors/%xmode) have been
569 The colors and exception mode commands (%colors/%xmode) have been
566 synchronized to also take this into account, so users can get
570 synchronized to also take this into account, so users can get
567 verbose exceptions for their threaded code as well. I also added
571 verbose exceptions for their threaded code as well. I also added
568 support for activating pdb inside this exception handler as well,
572 support for activating pdb inside this exception handler as well,
569 so now GUI authors can use IPython's enhanced pdb at runtime.
573 so now GUI authors can use IPython's enhanced pdb at runtime.
570
574
571 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
575 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
572 true by default, and add it to the shipped ipythonrc file. Since
576 true by default, and add it to the shipped ipythonrc file. Since
573 this asks the user before proceeding, I think it's OK to make it
577 this asks the user before proceeding, I think it's OK to make it
574 true by default.
578 true by default.
575
579
576 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
580 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
577 of the previous special-casing of input in the eval loop. I think
581 of the previous special-casing of input in the eval loop. I think
578 this is cleaner, as they really are commands and shouldn't have
582 this is cleaner, as they really are commands and shouldn't have
579 a special role in the middle of the core code.
583 a special role in the middle of the core code.
580
584
581 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
585 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
582
586
583 * IPython/iplib.py (edit_syntax_error): added support for
587 * IPython/iplib.py (edit_syntax_error): added support for
584 automatically reopening the editor if the file had a syntax error
588 automatically reopening the editor if the file had a syntax error
585 in it. Thanks to scottt who provided the patch at:
589 in it. Thanks to scottt who provided the patch at:
586 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
590 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
587 version committed).
591 version committed).
588
592
589 * IPython/iplib.py (handle_normal): add suport for multi-line
593 * IPython/iplib.py (handle_normal): add suport for multi-line
590 input with emtpy lines. This fixes
594 input with emtpy lines. This fixes
591 http://www.scipy.net/roundup/ipython/issue43 and a similar
595 http://www.scipy.net/roundup/ipython/issue43 and a similar
592 discussion on the user list.
596 discussion on the user list.
593
597
594 WARNING: a behavior change is necessarily introduced to support
598 WARNING: a behavior change is necessarily introduced to support
595 blank lines: now a single blank line with whitespace does NOT
599 blank lines: now a single blank line with whitespace does NOT
596 break the input loop, which means that when autoindent is on, by
600 break the input loop, which means that when autoindent is on, by
597 default hitting return on the next (indented) line does NOT exit.
601 default hitting return on the next (indented) line does NOT exit.
598
602
599 Instead, to exit a multiline input you can either have:
603 Instead, to exit a multiline input you can either have:
600
604
601 - TWO whitespace lines (just hit return again), or
605 - TWO whitespace lines (just hit return again), or
602 - a single whitespace line of a different length than provided
606 - a single whitespace line of a different length than provided
603 by the autoindent (add or remove a space).
607 by the autoindent (add or remove a space).
604
608
605 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
609 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
606 module to better organize all readline-related functionality.
610 module to better organize all readline-related functionality.
607 I've deleted FlexCompleter and put all completion clases here.
611 I've deleted FlexCompleter and put all completion clases here.
608
612
609 * IPython/iplib.py (raw_input): improve indentation management.
613 * IPython/iplib.py (raw_input): improve indentation management.
610 It is now possible to paste indented code with autoindent on, and
614 It is now possible to paste indented code with autoindent on, and
611 the code is interpreted correctly (though it still looks bad on
615 the code is interpreted correctly (though it still looks bad on
612 screen, due to the line-oriented nature of ipython).
616 screen, due to the line-oriented nature of ipython).
613 (MagicCompleter.complete): change behavior so that a TAB key on an
617 (MagicCompleter.complete): change behavior so that a TAB key on an
614 otherwise empty line actually inserts a tab, instead of completing
618 otherwise empty line actually inserts a tab, instead of completing
615 on the entire global namespace. This makes it easier to use the
619 on the entire global namespace. This makes it easier to use the
616 TAB key for indentation. After a request by Hans Meine
620 TAB key for indentation. After a request by Hans Meine
617 <hans_meine-AT-gmx.net>
621 <hans_meine-AT-gmx.net>
618 (_prefilter): add support so that typing plain 'exit' or 'quit'
622 (_prefilter): add support so that typing plain 'exit' or 'quit'
619 does a sensible thing. Originally I tried to deviate as little as
623 does a sensible thing. Originally I tried to deviate as little as
620 possible from the default python behavior, but even that one may
624 possible from the default python behavior, but even that one may
621 change in this direction (thread on python-dev to that effect).
625 change in this direction (thread on python-dev to that effect).
622 Regardless, ipython should do the right thing even if CPython's
626 Regardless, ipython should do the right thing even if CPython's
623 '>>>' prompt doesn't.
627 '>>>' prompt doesn't.
624 (InteractiveShell): removed subclassing code.InteractiveConsole
628 (InteractiveShell): removed subclassing code.InteractiveConsole
625 class. By now we'd overridden just about all of its methods: I've
629 class. By now we'd overridden just about all of its methods: I've
626 copied the remaining two over, and now ipython is a standalone
630 copied the remaining two over, and now ipython is a standalone
627 class. This will provide a clearer picture for the chainsaw
631 class. This will provide a clearer picture for the chainsaw
628 branch refactoring.
632 branch refactoring.
629
633
630 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
634 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
631
635
632 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
636 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
633 failures for objects which break when dir() is called on them.
637 failures for objects which break when dir() is called on them.
634
638
635 * IPython/FlexCompleter.py (Completer.__init__): Added support for
639 * IPython/FlexCompleter.py (Completer.__init__): Added support for
636 distinct local and global namespaces in the completer API. This
640 distinct local and global namespaces in the completer API. This
637 change allows us top properly handle completion with distinct
641 change allows us top properly handle completion with distinct
638 scopes, including in embedded instances (this had never really
642 scopes, including in embedded instances (this had never really
639 worked correctly).
643 worked correctly).
640
644
641 Note: this introduces a change in the constructor for
645 Note: this introduces a change in the constructor for
642 MagicCompleter, as a new global_namespace parameter is now the
646 MagicCompleter, as a new global_namespace parameter is now the
643 second argument (the others were bumped one position).
647 second argument (the others were bumped one position).
644
648
645 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
649 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
646
650
647 * IPython/iplib.py (embed_mainloop): fix tab-completion in
651 * IPython/iplib.py (embed_mainloop): fix tab-completion in
648 embedded instances (which can be done now thanks to Vivian's
652 embedded instances (which can be done now thanks to Vivian's
649 frame-handling fixes for pdb).
653 frame-handling fixes for pdb).
650 (InteractiveShell.__init__): Fix namespace handling problem in
654 (InteractiveShell.__init__): Fix namespace handling problem in
651 embedded instances. We were overwriting __main__ unconditionally,
655 embedded instances. We were overwriting __main__ unconditionally,
652 and this should only be done for 'full' (non-embedded) IPython;
656 and this should only be done for 'full' (non-embedded) IPython;
653 embedded instances must respect the caller's __main__. Thanks to
657 embedded instances must respect the caller's __main__. Thanks to
654 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
658 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
655
659
656 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
660 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
657
661
658 * setup.py: added download_url to setup(). This registers the
662 * setup.py: added download_url to setup(). This registers the
659 download address at PyPI, which is not only useful to humans
663 download address at PyPI, which is not only useful to humans
660 browsing the site, but is also picked up by setuptools (the Eggs
664 browsing the site, but is also picked up by setuptools (the Eggs
661 machinery). Thanks to Ville and R. Kern for the info/discussion
665 machinery). Thanks to Ville and R. Kern for the info/discussion
662 on this.
666 on this.
663
667
664 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
668 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
665
669
666 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
670 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
667 This brings a lot of nice functionality to the pdb mode, which now
671 This brings a lot of nice functionality to the pdb mode, which now
668 has tab-completion, syntax highlighting, and better stack handling
672 has tab-completion, syntax highlighting, and better stack handling
669 than before. Many thanks to Vivian De Smedt
673 than before. Many thanks to Vivian De Smedt
670 <vivian-AT-vdesmedt.com> for the original patches.
674 <vivian-AT-vdesmedt.com> for the original patches.
671
675
672 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
676 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
673
677
674 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
678 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
675 sequence to consistently accept the banner argument. The
679 sequence to consistently accept the banner argument. The
676 inconsistency was tripping SAGE, thanks to Gary Zablackis
680 inconsistency was tripping SAGE, thanks to Gary Zablackis
677 <gzabl-AT-yahoo.com> for the report.
681 <gzabl-AT-yahoo.com> for the report.
678
682
679 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
683 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
680
684
681 * IPython/iplib.py (InteractiveShell.post_config_initialization):
685 * IPython/iplib.py (InteractiveShell.post_config_initialization):
682 Fix bug where a naked 'alias' call in the ipythonrc file would
686 Fix bug where a naked 'alias' call in the ipythonrc file would
683 cause a crash. Bug reported by Jorgen Stenarson.
687 cause a crash. Bug reported by Jorgen Stenarson.
684
688
685 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
689 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
686
690
687 * IPython/ipmaker.py (make_IPython): cleanups which should improve
691 * IPython/ipmaker.py (make_IPython): cleanups which should improve
688 startup time.
692 startup time.
689
693
690 * IPython/iplib.py (runcode): my globals 'fix' for embedded
694 * IPython/iplib.py (runcode): my globals 'fix' for embedded
691 instances had introduced a bug with globals in normal code. Now
695 instances had introduced a bug with globals in normal code. Now
692 it's working in all cases.
696 it's working in all cases.
693
697
694 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
698 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
695 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
699 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
696 has been introduced to set the default case sensitivity of the
700 has been introduced to set the default case sensitivity of the
697 searches. Users can still select either mode at runtime on a
701 searches. Users can still select either mode at runtime on a
698 per-search basis.
702 per-search basis.
699
703
700 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
704 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
701
705
702 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
706 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
703 attributes in wildcard searches for subclasses. Modified version
707 attributes in wildcard searches for subclasses. Modified version
704 of a patch by Jorgen.
708 of a patch by Jorgen.
705
709
706 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
710 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
707
711
708 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
712 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
709 embedded instances. I added a user_global_ns attribute to the
713 embedded instances. I added a user_global_ns attribute to the
710 InteractiveShell class to handle this.
714 InteractiveShell class to handle this.
711
715
712 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
716 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
713
717
714 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
718 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
715 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
719 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
716 (reported under win32, but may happen also in other platforms).
720 (reported under win32, but may happen also in other platforms).
717 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
721 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
718
722
719 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
723 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
720
724
721 * IPython/Magic.py (magic_psearch): new support for wildcard
725 * IPython/Magic.py (magic_psearch): new support for wildcard
722 patterns. Now, typing ?a*b will list all names which begin with a
726 patterns. Now, typing ?a*b will list all names which begin with a
723 and end in b, for example. The %psearch magic has full
727 and end in b, for example. The %psearch magic has full
724 docstrings. Many thanks to JΓΆrgen Stenarson
728 docstrings. Many thanks to JΓΆrgen Stenarson
725 <jorgen.stenarson-AT-bostream.nu>, author of the patches
729 <jorgen.stenarson-AT-bostream.nu>, author of the patches
726 implementing this functionality.
730 implementing this functionality.
727
731
728 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
732 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
729
733
730 * Manual: fixed long-standing annoyance of double-dashes (as in
734 * Manual: fixed long-standing annoyance of double-dashes (as in
731 --prefix=~, for example) being stripped in the HTML version. This
735 --prefix=~, for example) being stripped in the HTML version. This
732 is a latex2html bug, but a workaround was provided. Many thanks
736 is a latex2html bug, but a workaround was provided. Many thanks
733 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
737 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
734 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
738 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
735 rolling. This seemingly small issue had tripped a number of users
739 rolling. This seemingly small issue had tripped a number of users
736 when first installing, so I'm glad to see it gone.
740 when first installing, so I'm glad to see it gone.
737
741
738 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
742 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
739
743
740 * IPython/Extensions/numeric_formats.py: fix missing import,
744 * IPython/Extensions/numeric_formats.py: fix missing import,
741 reported by Stephen Walton.
745 reported by Stephen Walton.
742
746
743 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
747 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
744
748
745 * IPython/demo.py: finish demo module, fully documented now.
749 * IPython/demo.py: finish demo module, fully documented now.
746
750
747 * IPython/genutils.py (file_read): simple little utility to read a
751 * IPython/genutils.py (file_read): simple little utility to read a
748 file and ensure it's closed afterwards.
752 file and ensure it's closed afterwards.
749
753
750 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
754 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
751
755
752 * IPython/demo.py (Demo.__init__): added support for individually
756 * IPython/demo.py (Demo.__init__): added support for individually
753 tagging blocks for automatic execution.
757 tagging blocks for automatic execution.
754
758
755 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
759 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
756 syntax-highlighted python sources, requested by John.
760 syntax-highlighted python sources, requested by John.
757
761
758 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
762 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
759
763
760 * IPython/demo.py (Demo.again): fix bug where again() blocks after
764 * IPython/demo.py (Demo.again): fix bug where again() blocks after
761 finishing.
765 finishing.
762
766
763 * IPython/genutils.py (shlex_split): moved from Magic to here,
767 * IPython/genutils.py (shlex_split): moved from Magic to here,
764 where all 2.2 compatibility stuff lives. I needed it for demo.py.
768 where all 2.2 compatibility stuff lives. I needed it for demo.py.
765
769
766 * IPython/demo.py (Demo.__init__): added support for silent
770 * IPython/demo.py (Demo.__init__): added support for silent
767 blocks, improved marks as regexps, docstrings written.
771 blocks, improved marks as regexps, docstrings written.
768 (Demo.__init__): better docstring, added support for sys.argv.
772 (Demo.__init__): better docstring, added support for sys.argv.
769
773
770 * IPython/genutils.py (marquee): little utility used by the demo
774 * IPython/genutils.py (marquee): little utility used by the demo
771 code, handy in general.
775 code, handy in general.
772
776
773 * IPython/demo.py (Demo.__init__): new class for interactive
777 * IPython/demo.py (Demo.__init__): new class for interactive
774 demos. Not documented yet, I just wrote it in a hurry for
778 demos. Not documented yet, I just wrote it in a hurry for
775 scipy'05. Will docstring later.
779 scipy'05. Will docstring later.
776
780
777 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
781 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
778
782
779 * IPython/Shell.py (sigint_handler): Drastic simplification which
783 * IPython/Shell.py (sigint_handler): Drastic simplification which
780 also seems to make Ctrl-C work correctly across threads! This is
784 also seems to make Ctrl-C work correctly across threads! This is
781 so simple, that I can't beleive I'd missed it before. Needs more
785 so simple, that I can't beleive I'd missed it before. Needs more
782 testing, though.
786 testing, though.
783 (KBINT): Never mind, revert changes. I'm sure I'd tried something
787 (KBINT): Never mind, revert changes. I'm sure I'd tried something
784 like this before...
788 like this before...
785
789
786 * IPython/genutils.py (get_home_dir): add protection against
790 * IPython/genutils.py (get_home_dir): add protection against
787 non-dirs in win32 registry.
791 non-dirs in win32 registry.
788
792
789 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
793 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
790 bug where dict was mutated while iterating (pysh crash).
794 bug where dict was mutated while iterating (pysh crash).
791
795
792 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
796 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
793
797
794 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
798 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
795 spurious newlines added by this routine. After a report by
799 spurious newlines added by this routine. After a report by
796 F. Mantegazza.
800 F. Mantegazza.
797
801
798 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
802 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
799
803
800 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
804 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
801 calls. These were a leftover from the GTK 1.x days, and can cause
805 calls. These were a leftover from the GTK 1.x days, and can cause
802 problems in certain cases (after a report by John Hunter).
806 problems in certain cases (after a report by John Hunter).
803
807
804 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
808 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
805 os.getcwd() fails at init time. Thanks to patch from David Remahl
809 os.getcwd() fails at init time. Thanks to patch from David Remahl
806 <chmod007-AT-mac.com>.
810 <chmod007-AT-mac.com>.
807 (InteractiveShell.__init__): prevent certain special magics from
811 (InteractiveShell.__init__): prevent certain special magics from
808 being shadowed by aliases. Closes
812 being shadowed by aliases. Closes
809 http://www.scipy.net/roundup/ipython/issue41.
813 http://www.scipy.net/roundup/ipython/issue41.
810
814
811 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
815 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
812
816
813 * IPython/iplib.py (InteractiveShell.complete): Added new
817 * IPython/iplib.py (InteractiveShell.complete): Added new
814 top-level completion method to expose the completion mechanism
818 top-level completion method to expose the completion mechanism
815 beyond readline-based environments.
819 beyond readline-based environments.
816
820
817 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
821 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
818
822
819 * tools/ipsvnc (svnversion): fix svnversion capture.
823 * tools/ipsvnc (svnversion): fix svnversion capture.
820
824
821 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
825 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
822 attribute to self, which was missing. Before, it was set by a
826 attribute to self, which was missing. Before, it was set by a
823 routine which in certain cases wasn't being called, so the
827 routine which in certain cases wasn't being called, so the
824 instance could end up missing the attribute. This caused a crash.
828 instance could end up missing the attribute. This caused a crash.
825 Closes http://www.scipy.net/roundup/ipython/issue40.
829 Closes http://www.scipy.net/roundup/ipython/issue40.
826
830
827 2005-08-16 Fernando Perez <fperez@colorado.edu>
831 2005-08-16 Fernando Perez <fperez@colorado.edu>
828
832
829 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
833 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
830 contains non-string attribute. Closes
834 contains non-string attribute. Closes
831 http://www.scipy.net/roundup/ipython/issue38.
835 http://www.scipy.net/roundup/ipython/issue38.
832
836
833 2005-08-14 Fernando Perez <fperez@colorado.edu>
837 2005-08-14 Fernando Perez <fperez@colorado.edu>
834
838
835 * tools/ipsvnc: Minor improvements, to add changeset info.
839 * tools/ipsvnc: Minor improvements, to add changeset info.
836
840
837 2005-08-12 Fernando Perez <fperez@colorado.edu>
841 2005-08-12 Fernando Perez <fperez@colorado.edu>
838
842
839 * IPython/iplib.py (runsource): remove self.code_to_run_src
843 * IPython/iplib.py (runsource): remove self.code_to_run_src
840 attribute. I realized this is nothing more than
844 attribute. I realized this is nothing more than
841 '\n'.join(self.buffer), and having the same data in two different
845 '\n'.join(self.buffer), and having the same data in two different
842 places is just asking for synchronization bugs. This may impact
846 places is just asking for synchronization bugs. This may impact
843 people who have custom exception handlers, so I need to warn
847 people who have custom exception handlers, so I need to warn
844 ipython-dev about it (F. Mantegazza may use them).
848 ipython-dev about it (F. Mantegazza may use them).
845
849
846 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
850 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
847
851
848 * IPython/genutils.py: fix 2.2 compatibility (generators)
852 * IPython/genutils.py: fix 2.2 compatibility (generators)
849
853
850 2005-07-18 Fernando Perez <fperez@colorado.edu>
854 2005-07-18 Fernando Perez <fperez@colorado.edu>
851
855
852 * IPython/genutils.py (get_home_dir): fix to help users with
856 * IPython/genutils.py (get_home_dir): fix to help users with
853 invalid $HOME under win32.
857 invalid $HOME under win32.
854
858
855 2005-07-17 Fernando Perez <fperez@colorado.edu>
859 2005-07-17 Fernando Perez <fperez@colorado.edu>
856
860
857 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
861 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
858 some old hacks and clean up a bit other routines; code should be
862 some old hacks and clean up a bit other routines; code should be
859 simpler and a bit faster.
863 simpler and a bit faster.
860
864
861 * IPython/iplib.py (interact): removed some last-resort attempts
865 * IPython/iplib.py (interact): removed some last-resort attempts
862 to survive broken stdout/stderr. That code was only making it
866 to survive broken stdout/stderr. That code was only making it
863 harder to abstract out the i/o (necessary for gui integration),
867 harder to abstract out the i/o (necessary for gui integration),
864 and the crashes it could prevent were extremely rare in practice
868 and the crashes it could prevent were extremely rare in practice
865 (besides being fully user-induced in a pretty violent manner).
869 (besides being fully user-induced in a pretty violent manner).
866
870
867 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
871 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
868 Nothing major yet, but the code is simpler to read; this should
872 Nothing major yet, but the code is simpler to read; this should
869 make it easier to do more serious modifications in the future.
873 make it easier to do more serious modifications in the future.
870
874
871 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
875 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
872 which broke in .15 (thanks to a report by Ville).
876 which broke in .15 (thanks to a report by Ville).
873
877
874 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
878 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
875 be quite correct, I know next to nothing about unicode). This
879 be quite correct, I know next to nothing about unicode). This
876 will allow unicode strings to be used in prompts, amongst other
880 will allow unicode strings to be used in prompts, amongst other
877 cases. It also will prevent ipython from crashing when unicode
881 cases. It also will prevent ipython from crashing when unicode
878 shows up unexpectedly in many places. If ascii encoding fails, we
882 shows up unexpectedly in many places. If ascii encoding fails, we
879 assume utf_8. Currently the encoding is not a user-visible
883 assume utf_8. Currently the encoding is not a user-visible
880 setting, though it could be made so if there is demand for it.
884 setting, though it could be made so if there is demand for it.
881
885
882 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
886 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
883
887
884 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
888 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
885
889
886 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
890 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
887
891
888 * IPython/genutils.py: Add 2.2 compatibility here, so all other
892 * IPython/genutils.py: Add 2.2 compatibility here, so all other
889 code can work transparently for 2.2/2.3.
893 code can work transparently for 2.2/2.3.
890
894
891 2005-07-16 Fernando Perez <fperez@colorado.edu>
895 2005-07-16 Fernando Perez <fperez@colorado.edu>
892
896
893 * IPython/ultraTB.py (ExceptionColors): Make a global variable
897 * IPython/ultraTB.py (ExceptionColors): Make a global variable
894 out of the color scheme table used for coloring exception
898 out of the color scheme table used for coloring exception
895 tracebacks. This allows user code to add new schemes at runtime.
899 tracebacks. This allows user code to add new schemes at runtime.
896 This is a minimally modified version of the patch at
900 This is a minimally modified version of the patch at
897 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
901 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
898 for the contribution.
902 for the contribution.
899
903
900 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
904 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
901 slightly modified version of the patch in
905 slightly modified version of the patch in
902 http://www.scipy.net/roundup/ipython/issue34, which also allows me
906 http://www.scipy.net/roundup/ipython/issue34, which also allows me
903 to remove the previous try/except solution (which was costlier).
907 to remove the previous try/except solution (which was costlier).
904 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
908 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
905
909
906 2005-06-08 Fernando Perez <fperez@colorado.edu>
910 2005-06-08 Fernando Perez <fperez@colorado.edu>
907
911
908 * IPython/iplib.py (write/write_err): Add methods to abstract all
912 * IPython/iplib.py (write/write_err): Add methods to abstract all
909 I/O a bit more.
913 I/O a bit more.
910
914
911 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
915 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
912 warning, reported by Aric Hagberg, fix by JD Hunter.
916 warning, reported by Aric Hagberg, fix by JD Hunter.
913
917
914 2005-06-02 *** Released version 0.6.15
918 2005-06-02 *** Released version 0.6.15
915
919
916 2005-06-01 Fernando Perez <fperez@colorado.edu>
920 2005-06-01 Fernando Perez <fperez@colorado.edu>
917
921
918 * IPython/iplib.py (MagicCompleter.file_matches): Fix
922 * IPython/iplib.py (MagicCompleter.file_matches): Fix
919 tab-completion of filenames within open-quoted strings. Note that
923 tab-completion of filenames within open-quoted strings. Note that
920 this requires that in ~/.ipython/ipythonrc, users change the
924 this requires that in ~/.ipython/ipythonrc, users change the
921 readline delimiters configuration to read:
925 readline delimiters configuration to read:
922
926
923 readline_remove_delims -/~
927 readline_remove_delims -/~
924
928
925
929
926 2005-05-31 *** Released version 0.6.14
930 2005-05-31 *** Released version 0.6.14
927
931
928 2005-05-29 Fernando Perez <fperez@colorado.edu>
932 2005-05-29 Fernando Perez <fperez@colorado.edu>
929
933
930 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
934 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
931 with files not on the filesystem. Reported by Eliyahu Sandler
935 with files not on the filesystem. Reported by Eliyahu Sandler
932 <eli@gondolin.net>
936 <eli@gondolin.net>
933
937
934 2005-05-22 Fernando Perez <fperez@colorado.edu>
938 2005-05-22 Fernando Perez <fperez@colorado.edu>
935
939
936 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
940 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
937 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
941 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
938
942
939 2005-05-19 Fernando Perez <fperez@colorado.edu>
943 2005-05-19 Fernando Perez <fperez@colorado.edu>
940
944
941 * IPython/iplib.py (safe_execfile): close a file which could be
945 * IPython/iplib.py (safe_execfile): close a file which could be
942 left open (causing problems in win32, which locks open files).
946 left open (causing problems in win32, which locks open files).
943 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
947 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
944
948
945 2005-05-18 Fernando Perez <fperez@colorado.edu>
949 2005-05-18 Fernando Perez <fperez@colorado.edu>
946
950
947 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
951 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
948 keyword arguments correctly to safe_execfile().
952 keyword arguments correctly to safe_execfile().
949
953
950 2005-05-13 Fernando Perez <fperez@colorado.edu>
954 2005-05-13 Fernando Perez <fperez@colorado.edu>
951
955
952 * ipython.1: Added info about Qt to manpage, and threads warning
956 * ipython.1: Added info about Qt to manpage, and threads warning
953 to usage page (invoked with --help).
957 to usage page (invoked with --help).
954
958
955 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
959 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
956 new matcher (it goes at the end of the priority list) to do
960 new matcher (it goes at the end of the priority list) to do
957 tab-completion on named function arguments. Submitted by George
961 tab-completion on named function arguments. Submitted by George
958 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
962 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
959 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
963 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
960 for more details.
964 for more details.
961
965
962 * IPython/Magic.py (magic_run): Added new -e flag to ignore
966 * IPython/Magic.py (magic_run): Added new -e flag to ignore
963 SystemExit exceptions in the script being run. Thanks to a report
967 SystemExit exceptions in the script being run. Thanks to a report
964 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
968 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
965 producing very annoying behavior when running unit tests.
969 producing very annoying behavior when running unit tests.
966
970
967 2005-05-12 Fernando Perez <fperez@colorado.edu>
971 2005-05-12 Fernando Perez <fperez@colorado.edu>
968
972
969 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
973 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
970 which I'd broken (again) due to a changed regexp. In the process,
974 which I'd broken (again) due to a changed regexp. In the process,
971 added ';' as an escape to auto-quote the whole line without
975 added ';' as an escape to auto-quote the whole line without
972 splitting its arguments. Thanks to a report by Jerry McRae
976 splitting its arguments. Thanks to a report by Jerry McRae
973 <qrs0xyc02-AT-sneakemail.com>.
977 <qrs0xyc02-AT-sneakemail.com>.
974
978
975 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
979 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
976 possible crashes caused by a TokenError. Reported by Ed Schofield
980 possible crashes caused by a TokenError. Reported by Ed Schofield
977 <schofield-AT-ftw.at>.
981 <schofield-AT-ftw.at>.
978
982
979 2005-05-06 Fernando Perez <fperez@colorado.edu>
983 2005-05-06 Fernando Perez <fperez@colorado.edu>
980
984
981 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
985 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
982
986
983 2005-04-29 Fernando Perez <fperez@colorado.edu>
987 2005-04-29 Fernando Perez <fperez@colorado.edu>
984
988
985 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
989 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
986 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
990 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
987 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
991 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
988 which provides support for Qt interactive usage (similar to the
992 which provides support for Qt interactive usage (similar to the
989 existing one for WX and GTK). This had been often requested.
993 existing one for WX and GTK). This had been often requested.
990
994
991 2005-04-14 *** Released version 0.6.13
995 2005-04-14 *** Released version 0.6.13
992
996
993 2005-04-08 Fernando Perez <fperez@colorado.edu>
997 2005-04-08 Fernando Perez <fperez@colorado.edu>
994
998
995 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
999 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
996 from _ofind, which gets called on almost every input line. Now,
1000 from _ofind, which gets called on almost every input line. Now,
997 we only try to get docstrings if they are actually going to be
1001 we only try to get docstrings if they are actually going to be
998 used (the overhead of fetching unnecessary docstrings can be
1002 used (the overhead of fetching unnecessary docstrings can be
999 noticeable for certain objects, such as Pyro proxies).
1003 noticeable for certain objects, such as Pyro proxies).
1000
1004
1001 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1005 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1002 for completers. For some reason I had been passing them the state
1006 for completers. For some reason I had been passing them the state
1003 variable, which completers never actually need, and was in
1007 variable, which completers never actually need, and was in
1004 conflict with the rlcompleter API. Custom completers ONLY need to
1008 conflict with the rlcompleter API. Custom completers ONLY need to
1005 take the text parameter.
1009 take the text parameter.
1006
1010
1007 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1011 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1008 work correctly in pysh. I've also moved all the logic which used
1012 work correctly in pysh. I've also moved all the logic which used
1009 to be in pysh.py here, which will prevent problems with future
1013 to be in pysh.py here, which will prevent problems with future
1010 upgrades. However, this time I must warn users to update their
1014 upgrades. However, this time I must warn users to update their
1011 pysh profile to include the line
1015 pysh profile to include the line
1012
1016
1013 import_all IPython.Extensions.InterpreterExec
1017 import_all IPython.Extensions.InterpreterExec
1014
1018
1015 because otherwise things won't work for them. They MUST also
1019 because otherwise things won't work for them. They MUST also
1016 delete pysh.py and the line
1020 delete pysh.py and the line
1017
1021
1018 execfile pysh.py
1022 execfile pysh.py
1019
1023
1020 from their ipythonrc-pysh.
1024 from their ipythonrc-pysh.
1021
1025
1022 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1026 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1023 robust in the face of objects whose dir() returns non-strings
1027 robust in the face of objects whose dir() returns non-strings
1024 (which it shouldn't, but some broken libs like ITK do). Thanks to
1028 (which it shouldn't, but some broken libs like ITK do). Thanks to
1025 a patch by John Hunter (implemented differently, though). Also
1029 a patch by John Hunter (implemented differently, though). Also
1026 minor improvements by using .extend instead of + on lists.
1030 minor improvements by using .extend instead of + on lists.
1027
1031
1028 * pysh.py:
1032 * pysh.py:
1029
1033
1030 2005-04-06 Fernando Perez <fperez@colorado.edu>
1034 2005-04-06 Fernando Perez <fperez@colorado.edu>
1031
1035
1032 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1036 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1033 by default, so that all users benefit from it. Those who don't
1037 by default, so that all users benefit from it. Those who don't
1034 want it can still turn it off.
1038 want it can still turn it off.
1035
1039
1036 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1040 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1037 config file, I'd forgotten about this, so users were getting it
1041 config file, I'd forgotten about this, so users were getting it
1038 off by default.
1042 off by default.
1039
1043
1040 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1044 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1041 consistency. Now magics can be called in multiline statements,
1045 consistency. Now magics can be called in multiline statements,
1042 and python variables can be expanded in magic calls via $var.
1046 and python variables can be expanded in magic calls via $var.
1043 This makes the magic system behave just like aliases or !system
1047 This makes the magic system behave just like aliases or !system
1044 calls.
1048 calls.
1045
1049
1046 2005-03-28 Fernando Perez <fperez@colorado.edu>
1050 2005-03-28 Fernando Perez <fperez@colorado.edu>
1047
1051
1048 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1052 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1049 expensive string additions for building command. Add support for
1053 expensive string additions for building command. Add support for
1050 trailing ';' when autocall is used.
1054 trailing ';' when autocall is used.
1051
1055
1052 2005-03-26 Fernando Perez <fperez@colorado.edu>
1056 2005-03-26 Fernando Perez <fperez@colorado.edu>
1053
1057
1054 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1058 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1055 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1059 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1056 ipython.el robust against prompts with any number of spaces
1060 ipython.el robust against prompts with any number of spaces
1057 (including 0) after the ':' character.
1061 (including 0) after the ':' character.
1058
1062
1059 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1063 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1060 continuation prompt, which misled users to think the line was
1064 continuation prompt, which misled users to think the line was
1061 already indented. Closes debian Bug#300847, reported to me by
1065 already indented. Closes debian Bug#300847, reported to me by
1062 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1066 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1063
1067
1064 2005-03-23 Fernando Perez <fperez@colorado.edu>
1068 2005-03-23 Fernando Perez <fperez@colorado.edu>
1065
1069
1066 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1070 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1067 properly aligned if they have embedded newlines.
1071 properly aligned if they have embedded newlines.
1068
1072
1069 * IPython/iplib.py (runlines): Add a public method to expose
1073 * IPython/iplib.py (runlines): Add a public method to expose
1070 IPython's code execution machinery, so that users can run strings
1074 IPython's code execution machinery, so that users can run strings
1071 as if they had been typed at the prompt interactively.
1075 as if they had been typed at the prompt interactively.
1072 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1076 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1073 methods which can call the system shell, but with python variable
1077 methods which can call the system shell, but with python variable
1074 expansion. The three such methods are: __IPYTHON__.system,
1078 expansion. The three such methods are: __IPYTHON__.system,
1075 .getoutput and .getoutputerror. These need to be documented in a
1079 .getoutput and .getoutputerror. These need to be documented in a
1076 'public API' section (to be written) of the manual.
1080 'public API' section (to be written) of the manual.
1077
1081
1078 2005-03-20 Fernando Perez <fperez@colorado.edu>
1082 2005-03-20 Fernando Perez <fperez@colorado.edu>
1079
1083
1080 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1084 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1081 for custom exception handling. This is quite powerful, and it
1085 for custom exception handling. This is quite powerful, and it
1082 allows for user-installable exception handlers which can trap
1086 allows for user-installable exception handlers which can trap
1083 custom exceptions at runtime and treat them separately from
1087 custom exceptions at runtime and treat them separately from
1084 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1088 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1085 Mantegazza <mantegazza-AT-ill.fr>.
1089 Mantegazza <mantegazza-AT-ill.fr>.
1086 (InteractiveShell.set_custom_completer): public API function to
1090 (InteractiveShell.set_custom_completer): public API function to
1087 add new completers at runtime.
1091 add new completers at runtime.
1088
1092
1089 2005-03-19 Fernando Perez <fperez@colorado.edu>
1093 2005-03-19 Fernando Perez <fperez@colorado.edu>
1090
1094
1091 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1095 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1092 allow objects which provide their docstrings via non-standard
1096 allow objects which provide their docstrings via non-standard
1093 mechanisms (like Pyro proxies) to still be inspected by ipython's
1097 mechanisms (like Pyro proxies) to still be inspected by ipython's
1094 ? system.
1098 ? system.
1095
1099
1096 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1100 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1097 automatic capture system. I tried quite hard to make it work
1101 automatic capture system. I tried quite hard to make it work
1098 reliably, and simply failed. I tried many combinations with the
1102 reliably, and simply failed. I tried many combinations with the
1099 subprocess module, but eventually nothing worked in all needed
1103 subprocess module, but eventually nothing worked in all needed
1100 cases (not blocking stdin for the child, duplicating stdout
1104 cases (not blocking stdin for the child, duplicating stdout
1101 without blocking, etc). The new %sc/%sx still do capture to these
1105 without blocking, etc). The new %sc/%sx still do capture to these
1102 magical list/string objects which make shell use much more
1106 magical list/string objects which make shell use much more
1103 conveninent, so not all is lost.
1107 conveninent, so not all is lost.
1104
1108
1105 XXX - FIX MANUAL for the change above!
1109 XXX - FIX MANUAL for the change above!
1106
1110
1107 (runsource): I copied code.py's runsource() into ipython to modify
1111 (runsource): I copied code.py's runsource() into ipython to modify
1108 it a bit. Now the code object and source to be executed are
1112 it a bit. Now the code object and source to be executed are
1109 stored in ipython. This makes this info accessible to third-party
1113 stored in ipython. This makes this info accessible to third-party
1110 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1114 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1111 Mantegazza <mantegazza-AT-ill.fr>.
1115 Mantegazza <mantegazza-AT-ill.fr>.
1112
1116
1113 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1117 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1114 history-search via readline (like C-p/C-n). I'd wanted this for a
1118 history-search via readline (like C-p/C-n). I'd wanted this for a
1115 long time, but only recently found out how to do it. For users
1119 long time, but only recently found out how to do it. For users
1116 who already have their ipythonrc files made and want this, just
1120 who already have their ipythonrc files made and want this, just
1117 add:
1121 add:
1118
1122
1119 readline_parse_and_bind "\e[A": history-search-backward
1123 readline_parse_and_bind "\e[A": history-search-backward
1120 readline_parse_and_bind "\e[B": history-search-forward
1124 readline_parse_and_bind "\e[B": history-search-forward
1121
1125
1122 2005-03-18 Fernando Perez <fperez@colorado.edu>
1126 2005-03-18 Fernando Perez <fperez@colorado.edu>
1123
1127
1124 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1128 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1125 LSString and SList classes which allow transparent conversions
1129 LSString and SList classes which allow transparent conversions
1126 between list mode and whitespace-separated string.
1130 between list mode and whitespace-separated string.
1127 (magic_r): Fix recursion problem in %r.
1131 (magic_r): Fix recursion problem in %r.
1128
1132
1129 * IPython/genutils.py (LSString): New class to be used for
1133 * IPython/genutils.py (LSString): New class to be used for
1130 automatic storage of the results of all alias/system calls in _o
1134 automatic storage of the results of all alias/system calls in _o
1131 and _e (stdout/err). These provide a .l/.list attribute which
1135 and _e (stdout/err). These provide a .l/.list attribute which
1132 does automatic splitting on newlines. This means that for most
1136 does automatic splitting on newlines. This means that for most
1133 uses, you'll never need to do capturing of output with %sc/%sx
1137 uses, you'll never need to do capturing of output with %sc/%sx
1134 anymore, since ipython keeps this always done for you. Note that
1138 anymore, since ipython keeps this always done for you. Note that
1135 only the LAST results are stored, the _o/e variables are
1139 only the LAST results are stored, the _o/e variables are
1136 overwritten on each call. If you need to save their contents
1140 overwritten on each call. If you need to save their contents
1137 further, simply bind them to any other name.
1141 further, simply bind them to any other name.
1138
1142
1139 2005-03-17 Fernando Perez <fperez@colorado.edu>
1143 2005-03-17 Fernando Perez <fperez@colorado.edu>
1140
1144
1141 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1145 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1142 prompt namespace handling.
1146 prompt namespace handling.
1143
1147
1144 2005-03-16 Fernando Perez <fperez@colorado.edu>
1148 2005-03-16 Fernando Perez <fperez@colorado.edu>
1145
1149
1146 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1150 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1147 classic prompts to be '>>> ' (final space was missing, and it
1151 classic prompts to be '>>> ' (final space was missing, and it
1148 trips the emacs python mode).
1152 trips the emacs python mode).
1149 (BasePrompt.__str__): Added safe support for dynamic prompt
1153 (BasePrompt.__str__): Added safe support for dynamic prompt
1150 strings. Now you can set your prompt string to be '$x', and the
1154 strings. Now you can set your prompt string to be '$x', and the
1151 value of x will be printed from your interactive namespace. The
1155 value of x will be printed from your interactive namespace. The
1152 interpolation syntax includes the full Itpl support, so
1156 interpolation syntax includes the full Itpl support, so
1153 ${foo()+x+bar()} is a valid prompt string now, and the function
1157 ${foo()+x+bar()} is a valid prompt string now, and the function
1154 calls will be made at runtime.
1158 calls will be made at runtime.
1155
1159
1156 2005-03-15 Fernando Perez <fperez@colorado.edu>
1160 2005-03-15 Fernando Perez <fperez@colorado.edu>
1157
1161
1158 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1162 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1159 avoid name clashes in pylab. %hist still works, it just forwards
1163 avoid name clashes in pylab. %hist still works, it just forwards
1160 the call to %history.
1164 the call to %history.
1161
1165
1162 2005-03-02 *** Released version 0.6.12
1166 2005-03-02 *** Released version 0.6.12
1163
1167
1164 2005-03-02 Fernando Perez <fperez@colorado.edu>
1168 2005-03-02 Fernando Perez <fperez@colorado.edu>
1165
1169
1166 * IPython/iplib.py (handle_magic): log magic calls properly as
1170 * IPython/iplib.py (handle_magic): log magic calls properly as
1167 ipmagic() function calls.
1171 ipmagic() function calls.
1168
1172
1169 * IPython/Magic.py (magic_time): Improved %time to support
1173 * IPython/Magic.py (magic_time): Improved %time to support
1170 statements and provide wall-clock as well as CPU time.
1174 statements and provide wall-clock as well as CPU time.
1171
1175
1172 2005-02-27 Fernando Perez <fperez@colorado.edu>
1176 2005-02-27 Fernando Perez <fperez@colorado.edu>
1173
1177
1174 * IPython/hooks.py: New hooks module, to expose user-modifiable
1178 * IPython/hooks.py: New hooks module, to expose user-modifiable
1175 IPython functionality in a clean manner. For now only the editor
1179 IPython functionality in a clean manner. For now only the editor
1176 hook is actually written, and other thigns which I intend to turn
1180 hook is actually written, and other thigns which I intend to turn
1177 into proper hooks aren't yet there. The display and prefilter
1181 into proper hooks aren't yet there. The display and prefilter
1178 stuff, for example, should be hooks. But at least now the
1182 stuff, for example, should be hooks. But at least now the
1179 framework is in place, and the rest can be moved here with more
1183 framework is in place, and the rest can be moved here with more
1180 time later. IPython had had a .hooks variable for a long time for
1184 time later. IPython had had a .hooks variable for a long time for
1181 this purpose, but I'd never actually used it for anything.
1185 this purpose, but I'd never actually used it for anything.
1182
1186
1183 2005-02-26 Fernando Perez <fperez@colorado.edu>
1187 2005-02-26 Fernando Perez <fperez@colorado.edu>
1184
1188
1185 * IPython/ipmaker.py (make_IPython): make the default ipython
1189 * IPython/ipmaker.py (make_IPython): make the default ipython
1186 directory be called _ipython under win32, to follow more the
1190 directory be called _ipython under win32, to follow more the
1187 naming peculiarities of that platform (where buggy software like
1191 naming peculiarities of that platform (where buggy software like
1188 Visual Sourcesafe breaks with .named directories). Reported by
1192 Visual Sourcesafe breaks with .named directories). Reported by
1189 Ville Vainio.
1193 Ville Vainio.
1190
1194
1191 2005-02-23 Fernando Perez <fperez@colorado.edu>
1195 2005-02-23 Fernando Perez <fperez@colorado.edu>
1192
1196
1193 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1197 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1194 auto_aliases for win32 which were causing problems. Users can
1198 auto_aliases for win32 which were causing problems. Users can
1195 define the ones they personally like.
1199 define the ones they personally like.
1196
1200
1197 2005-02-21 Fernando Perez <fperez@colorado.edu>
1201 2005-02-21 Fernando Perez <fperez@colorado.edu>
1198
1202
1199 * IPython/Magic.py (magic_time): new magic to time execution of
1203 * IPython/Magic.py (magic_time): new magic to time execution of
1200 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1204 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1201
1205
1202 2005-02-19 Fernando Perez <fperez@colorado.edu>
1206 2005-02-19 Fernando Perez <fperez@colorado.edu>
1203
1207
1204 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1208 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1205 into keys (for prompts, for example).
1209 into keys (for prompts, for example).
1206
1210
1207 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1211 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1208 prompts in case users want them. This introduces a small behavior
1212 prompts in case users want them. This introduces a small behavior
1209 change: ipython does not automatically add a space to all prompts
1213 change: ipython does not automatically add a space to all prompts
1210 anymore. To get the old prompts with a space, users should add it
1214 anymore. To get the old prompts with a space, users should add it
1211 manually to their ipythonrc file, so for example prompt_in1 should
1215 manually to their ipythonrc file, so for example prompt_in1 should
1212 now read 'In [\#]: ' instead of 'In [\#]:'.
1216 now read 'In [\#]: ' instead of 'In [\#]:'.
1213 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1217 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1214 file) to control left-padding of secondary prompts.
1218 file) to control left-padding of secondary prompts.
1215
1219
1216 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1220 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1217 the profiler can't be imported. Fix for Debian, which removed
1221 the profiler can't be imported. Fix for Debian, which removed
1218 profile.py because of License issues. I applied a slightly
1222 profile.py because of License issues. I applied a slightly
1219 modified version of the original Debian patch at
1223 modified version of the original Debian patch at
1220 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1224 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1221
1225
1222 2005-02-17 Fernando Perez <fperez@colorado.edu>
1226 2005-02-17 Fernando Perez <fperez@colorado.edu>
1223
1227
1224 * IPython/genutils.py (native_line_ends): Fix bug which would
1228 * IPython/genutils.py (native_line_ends): Fix bug which would
1225 cause improper line-ends under win32 b/c I was not opening files
1229 cause improper line-ends under win32 b/c I was not opening files
1226 in binary mode. Bug report and fix thanks to Ville.
1230 in binary mode. Bug report and fix thanks to Ville.
1227
1231
1228 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1232 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1229 trying to catch spurious foo[1] autocalls. My fix actually broke
1233 trying to catch spurious foo[1] autocalls. My fix actually broke
1230 ',/' autoquote/call with explicit escape (bad regexp).
1234 ',/' autoquote/call with explicit escape (bad regexp).
1231
1235
1232 2005-02-15 *** Released version 0.6.11
1236 2005-02-15 *** Released version 0.6.11
1233
1237
1234 2005-02-14 Fernando Perez <fperez@colorado.edu>
1238 2005-02-14 Fernando Perez <fperez@colorado.edu>
1235
1239
1236 * IPython/background_jobs.py: New background job management
1240 * IPython/background_jobs.py: New background job management
1237 subsystem. This is implemented via a new set of classes, and
1241 subsystem. This is implemented via a new set of classes, and
1238 IPython now provides a builtin 'jobs' object for background job
1242 IPython now provides a builtin 'jobs' object for background job
1239 execution. A convenience %bg magic serves as a lightweight
1243 execution. A convenience %bg magic serves as a lightweight
1240 frontend for starting the more common type of calls. This was
1244 frontend for starting the more common type of calls. This was
1241 inspired by discussions with B. Granger and the BackgroundCommand
1245 inspired by discussions with B. Granger and the BackgroundCommand
1242 class described in the book Python Scripting for Computational
1246 class described in the book Python Scripting for Computational
1243 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1247 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1244 (although ultimately no code from this text was used, as IPython's
1248 (although ultimately no code from this text was used, as IPython's
1245 system is a separate implementation).
1249 system is a separate implementation).
1246
1250
1247 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1251 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1248 to control the completion of single/double underscore names
1252 to control the completion of single/double underscore names
1249 separately. As documented in the example ipytonrc file, the
1253 separately. As documented in the example ipytonrc file, the
1250 readline_omit__names variable can now be set to 2, to omit even
1254 readline_omit__names variable can now be set to 2, to omit even
1251 single underscore names. Thanks to a patch by Brian Wong
1255 single underscore names. Thanks to a patch by Brian Wong
1252 <BrianWong-AT-AirgoNetworks.Com>.
1256 <BrianWong-AT-AirgoNetworks.Com>.
1253 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1257 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1254 be autocalled as foo([1]) if foo were callable. A problem for
1258 be autocalled as foo([1]) if foo were callable. A problem for
1255 things which are both callable and implement __getitem__.
1259 things which are both callable and implement __getitem__.
1256 (init_readline): Fix autoindentation for win32. Thanks to a patch
1260 (init_readline): Fix autoindentation for win32. Thanks to a patch
1257 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1261 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1258
1262
1259 2005-02-12 Fernando Perez <fperez@colorado.edu>
1263 2005-02-12 Fernando Perez <fperez@colorado.edu>
1260
1264
1261 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1265 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1262 which I had written long ago to sort out user error messages which
1266 which I had written long ago to sort out user error messages which
1263 may occur during startup. This seemed like a good idea initially,
1267 may occur during startup. This seemed like a good idea initially,
1264 but it has proven a disaster in retrospect. I don't want to
1268 but it has proven a disaster in retrospect. I don't want to
1265 change much code for now, so my fix is to set the internal 'debug'
1269 change much code for now, so my fix is to set the internal 'debug'
1266 flag to true everywhere, whose only job was precisely to control
1270 flag to true everywhere, whose only job was precisely to control
1267 this subsystem. This closes issue 28 (as well as avoiding all
1271 this subsystem. This closes issue 28 (as well as avoiding all
1268 sorts of strange hangups which occur from time to time).
1272 sorts of strange hangups which occur from time to time).
1269
1273
1270 2005-02-07 Fernando Perez <fperez@colorado.edu>
1274 2005-02-07 Fernando Perez <fperez@colorado.edu>
1271
1275
1272 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1276 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1273 previous call produced a syntax error.
1277 previous call produced a syntax error.
1274
1278
1275 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1279 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1276 classes without constructor.
1280 classes without constructor.
1277
1281
1278 2005-02-06 Fernando Perez <fperez@colorado.edu>
1282 2005-02-06 Fernando Perez <fperez@colorado.edu>
1279
1283
1280 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1284 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1281 completions with the results of each matcher, so we return results
1285 completions with the results of each matcher, so we return results
1282 to the user from all namespaces. This breaks with ipython
1286 to the user from all namespaces. This breaks with ipython
1283 tradition, but I think it's a nicer behavior. Now you get all
1287 tradition, but I think it's a nicer behavior. Now you get all
1284 possible completions listed, from all possible namespaces (python,
1288 possible completions listed, from all possible namespaces (python,
1285 filesystem, magics...) After a request by John Hunter
1289 filesystem, magics...) After a request by John Hunter
1286 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1290 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1287
1291
1288 2005-02-05 Fernando Perez <fperez@colorado.edu>
1292 2005-02-05 Fernando Perez <fperez@colorado.edu>
1289
1293
1290 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1294 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1291 the call had quote characters in it (the quotes were stripped).
1295 the call had quote characters in it (the quotes were stripped).
1292
1296
1293 2005-01-31 Fernando Perez <fperez@colorado.edu>
1297 2005-01-31 Fernando Perez <fperez@colorado.edu>
1294
1298
1295 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1299 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1296 Itpl.itpl() to make the code more robust against psyco
1300 Itpl.itpl() to make the code more robust against psyco
1297 optimizations.
1301 optimizations.
1298
1302
1299 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1303 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1300 of causing an exception. Quicker, cleaner.
1304 of causing an exception. Quicker, cleaner.
1301
1305
1302 2005-01-28 Fernando Perez <fperez@colorado.edu>
1306 2005-01-28 Fernando Perez <fperez@colorado.edu>
1303
1307
1304 * scripts/ipython_win_post_install.py (install): hardcode
1308 * scripts/ipython_win_post_install.py (install): hardcode
1305 sys.prefix+'python.exe' as the executable path. It turns out that
1309 sys.prefix+'python.exe' as the executable path. It turns out that
1306 during the post-installation run, sys.executable resolves to the
1310 during the post-installation run, sys.executable resolves to the
1307 name of the binary installer! I should report this as a distutils
1311 name of the binary installer! I should report this as a distutils
1308 bug, I think. I updated the .10 release with this tiny fix, to
1312 bug, I think. I updated the .10 release with this tiny fix, to
1309 avoid annoying the lists further.
1313 avoid annoying the lists further.
1310
1314
1311 2005-01-27 *** Released version 0.6.10
1315 2005-01-27 *** Released version 0.6.10
1312
1316
1313 2005-01-27 Fernando Perez <fperez@colorado.edu>
1317 2005-01-27 Fernando Perez <fperez@colorado.edu>
1314
1318
1315 * IPython/numutils.py (norm): Added 'inf' as optional name for
1319 * IPython/numutils.py (norm): Added 'inf' as optional name for
1316 L-infinity norm, included references to mathworld.com for vector
1320 L-infinity norm, included references to mathworld.com for vector
1317 norm definitions.
1321 norm definitions.
1318 (amin/amax): added amin/amax for array min/max. Similar to what
1322 (amin/amax): added amin/amax for array min/max. Similar to what
1319 pylab ships with after the recent reorganization of names.
1323 pylab ships with after the recent reorganization of names.
1320 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1324 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1321
1325
1322 * ipython.el: committed Alex's recent fixes and improvements.
1326 * ipython.el: committed Alex's recent fixes and improvements.
1323 Tested with python-mode from CVS, and it looks excellent. Since
1327 Tested with python-mode from CVS, and it looks excellent. Since
1324 python-mode hasn't released anything in a while, I'm temporarily
1328 python-mode hasn't released anything in a while, I'm temporarily
1325 putting a copy of today's CVS (v 4.70) of python-mode in:
1329 putting a copy of today's CVS (v 4.70) of python-mode in:
1326 http://ipython.scipy.org/tmp/python-mode.el
1330 http://ipython.scipy.org/tmp/python-mode.el
1327
1331
1328 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1332 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1329 sys.executable for the executable name, instead of assuming it's
1333 sys.executable for the executable name, instead of assuming it's
1330 called 'python.exe' (the post-installer would have produced broken
1334 called 'python.exe' (the post-installer would have produced broken
1331 setups on systems with a differently named python binary).
1335 setups on systems with a differently named python binary).
1332
1336
1333 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1337 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1334 references to os.linesep, to make the code more
1338 references to os.linesep, to make the code more
1335 platform-independent. This is also part of the win32 coloring
1339 platform-independent. This is also part of the win32 coloring
1336 fixes.
1340 fixes.
1337
1341
1338 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1342 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1339 lines, which actually cause coloring bugs because the length of
1343 lines, which actually cause coloring bugs because the length of
1340 the line is very difficult to correctly compute with embedded
1344 the line is very difficult to correctly compute with embedded
1341 escapes. This was the source of all the coloring problems under
1345 escapes. This was the source of all the coloring problems under
1342 Win32. I think that _finally_, Win32 users have a properly
1346 Win32. I think that _finally_, Win32 users have a properly
1343 working ipython in all respects. This would never have happened
1347 working ipython in all respects. This would never have happened
1344 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1348 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1345
1349
1346 2005-01-26 *** Released version 0.6.9
1350 2005-01-26 *** Released version 0.6.9
1347
1351
1348 2005-01-25 Fernando Perez <fperez@colorado.edu>
1352 2005-01-25 Fernando Perez <fperez@colorado.edu>
1349
1353
1350 * setup.py: finally, we have a true Windows installer, thanks to
1354 * setup.py: finally, we have a true Windows installer, thanks to
1351 the excellent work of Viktor Ransmayr
1355 the excellent work of Viktor Ransmayr
1352 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1356 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1353 Windows users. The setup routine is quite a bit cleaner thanks to
1357 Windows users. The setup routine is quite a bit cleaner thanks to
1354 this, and the post-install script uses the proper functions to
1358 this, and the post-install script uses the proper functions to
1355 allow a clean de-installation using the standard Windows Control
1359 allow a clean de-installation using the standard Windows Control
1356 Panel.
1360 Panel.
1357
1361
1358 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1362 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1359 environment variable under all OSes (including win32) if
1363 environment variable under all OSes (including win32) if
1360 available. This will give consistency to win32 users who have set
1364 available. This will give consistency to win32 users who have set
1361 this variable for any reason. If os.environ['HOME'] fails, the
1365 this variable for any reason. If os.environ['HOME'] fails, the
1362 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1366 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1363
1367
1364 2005-01-24 Fernando Perez <fperez@colorado.edu>
1368 2005-01-24 Fernando Perez <fperez@colorado.edu>
1365
1369
1366 * IPython/numutils.py (empty_like): add empty_like(), similar to
1370 * IPython/numutils.py (empty_like): add empty_like(), similar to
1367 zeros_like() but taking advantage of the new empty() Numeric routine.
1371 zeros_like() but taking advantage of the new empty() Numeric routine.
1368
1372
1369 2005-01-23 *** Released version 0.6.8
1373 2005-01-23 *** Released version 0.6.8
1370
1374
1371 2005-01-22 Fernando Perez <fperez@colorado.edu>
1375 2005-01-22 Fernando Perez <fperez@colorado.edu>
1372
1376
1373 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1377 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1374 automatic show() calls. After discussing things with JDH, it
1378 automatic show() calls. After discussing things with JDH, it
1375 turns out there are too many corner cases where this can go wrong.
1379 turns out there are too many corner cases where this can go wrong.
1376 It's best not to try to be 'too smart', and simply have ipython
1380 It's best not to try to be 'too smart', and simply have ipython
1377 reproduce as much as possible the default behavior of a normal
1381 reproduce as much as possible the default behavior of a normal
1378 python shell.
1382 python shell.
1379
1383
1380 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1384 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1381 line-splitting regexp and _prefilter() to avoid calling getattr()
1385 line-splitting regexp and _prefilter() to avoid calling getattr()
1382 on assignments. This closes
1386 on assignments. This closes
1383 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1387 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1384 readline uses getattr(), so a simple <TAB> keypress is still
1388 readline uses getattr(), so a simple <TAB> keypress is still
1385 enough to trigger getattr() calls on an object.
1389 enough to trigger getattr() calls on an object.
1386
1390
1387 2005-01-21 Fernando Perez <fperez@colorado.edu>
1391 2005-01-21 Fernando Perez <fperez@colorado.edu>
1388
1392
1389 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1393 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1390 docstring under pylab so it doesn't mask the original.
1394 docstring under pylab so it doesn't mask the original.
1391
1395
1392 2005-01-21 *** Released version 0.6.7
1396 2005-01-21 *** Released version 0.6.7
1393
1397
1394 2005-01-21 Fernando Perez <fperez@colorado.edu>
1398 2005-01-21 Fernando Perez <fperez@colorado.edu>
1395
1399
1396 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1400 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1397 signal handling for win32 users in multithreaded mode.
1401 signal handling for win32 users in multithreaded mode.
1398
1402
1399 2005-01-17 Fernando Perez <fperez@colorado.edu>
1403 2005-01-17 Fernando Perez <fperez@colorado.edu>
1400
1404
1401 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1405 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1402 instances with no __init__. After a crash report by Norbert Nemec
1406 instances with no __init__. After a crash report by Norbert Nemec
1403 <Norbert-AT-nemec-online.de>.
1407 <Norbert-AT-nemec-online.de>.
1404
1408
1405 2005-01-14 Fernando Perez <fperez@colorado.edu>
1409 2005-01-14 Fernando Perez <fperez@colorado.edu>
1406
1410
1407 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1411 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1408 names for verbose exceptions, when multiple dotted names and the
1412 names for verbose exceptions, when multiple dotted names and the
1409 'parent' object were present on the same line.
1413 'parent' object were present on the same line.
1410
1414
1411 2005-01-11 Fernando Perez <fperez@colorado.edu>
1415 2005-01-11 Fernando Perez <fperez@colorado.edu>
1412
1416
1413 * IPython/genutils.py (flag_calls): new utility to trap and flag
1417 * IPython/genutils.py (flag_calls): new utility to trap and flag
1414 calls in functions. I need it to clean up matplotlib support.
1418 calls in functions. I need it to clean up matplotlib support.
1415 Also removed some deprecated code in genutils.
1419 Also removed some deprecated code in genutils.
1416
1420
1417 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1421 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1418 that matplotlib scripts called with %run, which don't call show()
1422 that matplotlib scripts called with %run, which don't call show()
1419 themselves, still have their plotting windows open.
1423 themselves, still have their plotting windows open.
1420
1424
1421 2005-01-05 Fernando Perez <fperez@colorado.edu>
1425 2005-01-05 Fernando Perez <fperez@colorado.edu>
1422
1426
1423 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1427 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1424 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1428 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1425
1429
1426 2004-12-19 Fernando Perez <fperez@colorado.edu>
1430 2004-12-19 Fernando Perez <fperez@colorado.edu>
1427
1431
1428 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1432 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1429 parent_runcode, which was an eyesore. The same result can be
1433 parent_runcode, which was an eyesore. The same result can be
1430 obtained with Python's regular superclass mechanisms.
1434 obtained with Python's regular superclass mechanisms.
1431
1435
1432 2004-12-17 Fernando Perez <fperez@colorado.edu>
1436 2004-12-17 Fernando Perez <fperez@colorado.edu>
1433
1437
1434 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1438 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1435 reported by Prabhu.
1439 reported by Prabhu.
1436 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1440 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1437 sys.stderr) instead of explicitly calling sys.stderr. This helps
1441 sys.stderr) instead of explicitly calling sys.stderr. This helps
1438 maintain our I/O abstractions clean, for future GUI embeddings.
1442 maintain our I/O abstractions clean, for future GUI embeddings.
1439
1443
1440 * IPython/genutils.py (info): added new utility for sys.stderr
1444 * IPython/genutils.py (info): added new utility for sys.stderr
1441 unified info message handling (thin wrapper around warn()).
1445 unified info message handling (thin wrapper around warn()).
1442
1446
1443 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1447 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1444 composite (dotted) names on verbose exceptions.
1448 composite (dotted) names on verbose exceptions.
1445 (VerboseTB.nullrepr): harden against another kind of errors which
1449 (VerboseTB.nullrepr): harden against another kind of errors which
1446 Python's inspect module can trigger, and which were crashing
1450 Python's inspect module can trigger, and which were crashing
1447 IPython. Thanks to a report by Marco Lombardi
1451 IPython. Thanks to a report by Marco Lombardi
1448 <mlombard-AT-ma010192.hq.eso.org>.
1452 <mlombard-AT-ma010192.hq.eso.org>.
1449
1453
1450 2004-12-13 *** Released version 0.6.6
1454 2004-12-13 *** Released version 0.6.6
1451
1455
1452 2004-12-12 Fernando Perez <fperez@colorado.edu>
1456 2004-12-12 Fernando Perez <fperez@colorado.edu>
1453
1457
1454 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1458 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1455 generated by pygtk upon initialization if it was built without
1459 generated by pygtk upon initialization if it was built without
1456 threads (for matplotlib users). After a crash reported by
1460 threads (for matplotlib users). After a crash reported by
1457 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1461 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1458
1462
1459 * IPython/ipmaker.py (make_IPython): fix small bug in the
1463 * IPython/ipmaker.py (make_IPython): fix small bug in the
1460 import_some parameter for multiple imports.
1464 import_some parameter for multiple imports.
1461
1465
1462 * IPython/iplib.py (ipmagic): simplified the interface of
1466 * IPython/iplib.py (ipmagic): simplified the interface of
1463 ipmagic() to take a single string argument, just as it would be
1467 ipmagic() to take a single string argument, just as it would be
1464 typed at the IPython cmd line.
1468 typed at the IPython cmd line.
1465 (ipalias): Added new ipalias() with an interface identical to
1469 (ipalias): Added new ipalias() with an interface identical to
1466 ipmagic(). This completes exposing a pure python interface to the
1470 ipmagic(). This completes exposing a pure python interface to the
1467 alias and magic system, which can be used in loops or more complex
1471 alias and magic system, which can be used in loops or more complex
1468 code where IPython's automatic line mangling is not active.
1472 code where IPython's automatic line mangling is not active.
1469
1473
1470 * IPython/genutils.py (timing): changed interface of timing to
1474 * IPython/genutils.py (timing): changed interface of timing to
1471 simply run code once, which is the most common case. timings()
1475 simply run code once, which is the most common case. timings()
1472 remains unchanged, for the cases where you want multiple runs.
1476 remains unchanged, for the cases where you want multiple runs.
1473
1477
1474 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1478 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1475 bug where Python2.2 crashes with exec'ing code which does not end
1479 bug where Python2.2 crashes with exec'ing code which does not end
1476 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1480 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1477 before.
1481 before.
1478
1482
1479 2004-12-10 Fernando Perez <fperez@colorado.edu>
1483 2004-12-10 Fernando Perez <fperez@colorado.edu>
1480
1484
1481 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1485 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1482 -t to -T, to accomodate the new -t flag in %run (the %run and
1486 -t to -T, to accomodate the new -t flag in %run (the %run and
1483 %prun options are kind of intermixed, and it's not easy to change
1487 %prun options are kind of intermixed, and it's not easy to change
1484 this with the limitations of python's getopt).
1488 this with the limitations of python's getopt).
1485
1489
1486 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1490 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1487 the execution of scripts. It's not as fine-tuned as timeit.py,
1491 the execution of scripts. It's not as fine-tuned as timeit.py,
1488 but it works from inside ipython (and under 2.2, which lacks
1492 but it works from inside ipython (and under 2.2, which lacks
1489 timeit.py). Optionally a number of runs > 1 can be given for
1493 timeit.py). Optionally a number of runs > 1 can be given for
1490 timing very short-running code.
1494 timing very short-running code.
1491
1495
1492 * IPython/genutils.py (uniq_stable): new routine which returns a
1496 * IPython/genutils.py (uniq_stable): new routine which returns a
1493 list of unique elements in any iterable, but in stable order of
1497 list of unique elements in any iterable, but in stable order of
1494 appearance. I needed this for the ultraTB fixes, and it's a handy
1498 appearance. I needed this for the ultraTB fixes, and it's a handy
1495 utility.
1499 utility.
1496
1500
1497 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1501 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1498 dotted names in Verbose exceptions. This had been broken since
1502 dotted names in Verbose exceptions. This had been broken since
1499 the very start, now x.y will properly be printed in a Verbose
1503 the very start, now x.y will properly be printed in a Verbose
1500 traceback, instead of x being shown and y appearing always as an
1504 traceback, instead of x being shown and y appearing always as an
1501 'undefined global'. Getting this to work was a bit tricky,
1505 'undefined global'. Getting this to work was a bit tricky,
1502 because by default python tokenizers are stateless. Saved by
1506 because by default python tokenizers are stateless. Saved by
1503 python's ability to easily add a bit of state to an arbitrary
1507 python's ability to easily add a bit of state to an arbitrary
1504 function (without needing to build a full-blown callable object).
1508 function (without needing to build a full-blown callable object).
1505
1509
1506 Also big cleanup of this code, which had horrendous runtime
1510 Also big cleanup of this code, which had horrendous runtime
1507 lookups of zillions of attributes for colorization. Moved all
1511 lookups of zillions of attributes for colorization. Moved all
1508 this code into a few templates, which make it cleaner and quicker.
1512 this code into a few templates, which make it cleaner and quicker.
1509
1513
1510 Printout quality was also improved for Verbose exceptions: one
1514 Printout quality was also improved for Verbose exceptions: one
1511 variable per line, and memory addresses are printed (this can be
1515 variable per line, and memory addresses are printed (this can be
1512 quite handy in nasty debugging situations, which is what Verbose
1516 quite handy in nasty debugging situations, which is what Verbose
1513 is for).
1517 is for).
1514
1518
1515 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1519 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1516 the command line as scripts to be loaded by embedded instances.
1520 the command line as scripts to be loaded by embedded instances.
1517 Doing so has the potential for an infinite recursion if there are
1521 Doing so has the potential for an infinite recursion if there are
1518 exceptions thrown in the process. This fixes a strange crash
1522 exceptions thrown in the process. This fixes a strange crash
1519 reported by Philippe MULLER <muller-AT-irit.fr>.
1523 reported by Philippe MULLER <muller-AT-irit.fr>.
1520
1524
1521 2004-12-09 Fernando Perez <fperez@colorado.edu>
1525 2004-12-09 Fernando Perez <fperez@colorado.edu>
1522
1526
1523 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1527 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1524 to reflect new names in matplotlib, which now expose the
1528 to reflect new names in matplotlib, which now expose the
1525 matlab-compatible interface via a pylab module instead of the
1529 matlab-compatible interface via a pylab module instead of the
1526 'matlab' name. The new code is backwards compatible, so users of
1530 'matlab' name. The new code is backwards compatible, so users of
1527 all matplotlib versions are OK. Patch by J. Hunter.
1531 all matplotlib versions are OK. Patch by J. Hunter.
1528
1532
1529 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1533 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1530 of __init__ docstrings for instances (class docstrings are already
1534 of __init__ docstrings for instances (class docstrings are already
1531 automatically printed). Instances with customized docstrings
1535 automatically printed). Instances with customized docstrings
1532 (indep. of the class) are also recognized and all 3 separate
1536 (indep. of the class) are also recognized and all 3 separate
1533 docstrings are printed (instance, class, constructor). After some
1537 docstrings are printed (instance, class, constructor). After some
1534 comments/suggestions by J. Hunter.
1538 comments/suggestions by J. Hunter.
1535
1539
1536 2004-12-05 Fernando Perez <fperez@colorado.edu>
1540 2004-12-05 Fernando Perez <fperez@colorado.edu>
1537
1541
1538 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1542 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1539 warnings when tab-completion fails and triggers an exception.
1543 warnings when tab-completion fails and triggers an exception.
1540
1544
1541 2004-12-03 Fernando Perez <fperez@colorado.edu>
1545 2004-12-03 Fernando Perez <fperez@colorado.edu>
1542
1546
1543 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1547 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1544 be triggered when using 'run -p'. An incorrect option flag was
1548 be triggered when using 'run -p'. An incorrect option flag was
1545 being set ('d' instead of 'D').
1549 being set ('d' instead of 'D').
1546 (manpage): fix missing escaped \- sign.
1550 (manpage): fix missing escaped \- sign.
1547
1551
1548 2004-11-30 *** Released version 0.6.5
1552 2004-11-30 *** Released version 0.6.5
1549
1553
1550 2004-11-30 Fernando Perez <fperez@colorado.edu>
1554 2004-11-30 Fernando Perez <fperez@colorado.edu>
1551
1555
1552 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1556 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1553 setting with -d option.
1557 setting with -d option.
1554
1558
1555 * setup.py (docfiles): Fix problem where the doc glob I was using
1559 * setup.py (docfiles): Fix problem where the doc glob I was using
1556 was COMPLETELY BROKEN. It was giving the right files by pure
1560 was COMPLETELY BROKEN. It was giving the right files by pure
1557 accident, but failed once I tried to include ipython.el. Note:
1561 accident, but failed once I tried to include ipython.el. Note:
1558 glob() does NOT allow you to do exclusion on multiple endings!
1562 glob() does NOT allow you to do exclusion on multiple endings!
1559
1563
1560 2004-11-29 Fernando Perez <fperez@colorado.edu>
1564 2004-11-29 Fernando Perez <fperez@colorado.edu>
1561
1565
1562 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1566 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1563 the manpage as the source. Better formatting & consistency.
1567 the manpage as the source. Better formatting & consistency.
1564
1568
1565 * IPython/Magic.py (magic_run): Added new -d option, to run
1569 * IPython/Magic.py (magic_run): Added new -d option, to run
1566 scripts under the control of the python pdb debugger. Note that
1570 scripts under the control of the python pdb debugger. Note that
1567 this required changing the %prun option -d to -D, to avoid a clash
1571 this required changing the %prun option -d to -D, to avoid a clash
1568 (since %run must pass options to %prun, and getopt is too dumb to
1572 (since %run must pass options to %prun, and getopt is too dumb to
1569 handle options with string values with embedded spaces). Thanks
1573 handle options with string values with embedded spaces). Thanks
1570 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1574 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1571 (magic_who_ls): added type matching to %who and %whos, so that one
1575 (magic_who_ls): added type matching to %who and %whos, so that one
1572 can filter their output to only include variables of certain
1576 can filter their output to only include variables of certain
1573 types. Another suggestion by Matthew.
1577 types. Another suggestion by Matthew.
1574 (magic_whos): Added memory summaries in kb and Mb for arrays.
1578 (magic_whos): Added memory summaries in kb and Mb for arrays.
1575 (magic_who): Improve formatting (break lines every 9 vars).
1579 (magic_who): Improve formatting (break lines every 9 vars).
1576
1580
1577 2004-11-28 Fernando Perez <fperez@colorado.edu>
1581 2004-11-28 Fernando Perez <fperez@colorado.edu>
1578
1582
1579 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1583 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1580 cache when empty lines were present.
1584 cache when empty lines were present.
1581
1585
1582 2004-11-24 Fernando Perez <fperez@colorado.edu>
1586 2004-11-24 Fernando Perez <fperez@colorado.edu>
1583
1587
1584 * IPython/usage.py (__doc__): document the re-activated threading
1588 * IPython/usage.py (__doc__): document the re-activated threading
1585 options for WX and GTK.
1589 options for WX and GTK.
1586
1590
1587 2004-11-23 Fernando Perez <fperez@colorado.edu>
1591 2004-11-23 Fernando Perez <fperez@colorado.edu>
1588
1592
1589 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1593 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1590 the -wthread and -gthread options, along with a new -tk one to try
1594 the -wthread and -gthread options, along with a new -tk one to try
1591 and coordinate Tk threading with wx/gtk. The tk support is very
1595 and coordinate Tk threading with wx/gtk. The tk support is very
1592 platform dependent, since it seems to require Tcl and Tk to be
1596 platform dependent, since it seems to require Tcl and Tk to be
1593 built with threads (Fedora1/2 appears NOT to have it, but in
1597 built with threads (Fedora1/2 appears NOT to have it, but in
1594 Prabhu's Debian boxes it works OK). But even with some Tk
1598 Prabhu's Debian boxes it works OK). But even with some Tk
1595 limitations, this is a great improvement.
1599 limitations, this is a great improvement.
1596
1600
1597 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1601 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1598 info in user prompts. Patch by Prabhu.
1602 info in user prompts. Patch by Prabhu.
1599
1603
1600 2004-11-18 Fernando Perez <fperez@colorado.edu>
1604 2004-11-18 Fernando Perez <fperez@colorado.edu>
1601
1605
1602 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1606 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1603 EOFErrors and bail, to avoid infinite loops if a non-terminating
1607 EOFErrors and bail, to avoid infinite loops if a non-terminating
1604 file is fed into ipython. Patch submitted in issue 19 by user,
1608 file is fed into ipython. Patch submitted in issue 19 by user,
1605 many thanks.
1609 many thanks.
1606
1610
1607 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1611 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1608 autoquote/parens in continuation prompts, which can cause lots of
1612 autoquote/parens in continuation prompts, which can cause lots of
1609 problems. Closes roundup issue 20.
1613 problems. Closes roundup issue 20.
1610
1614
1611 2004-11-17 Fernando Perez <fperez@colorado.edu>
1615 2004-11-17 Fernando Perez <fperez@colorado.edu>
1612
1616
1613 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1617 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1614 reported as debian bug #280505. I'm not sure my local changelog
1618 reported as debian bug #280505. I'm not sure my local changelog
1615 entry has the proper debian format (Jack?).
1619 entry has the proper debian format (Jack?).
1616
1620
1617 2004-11-08 *** Released version 0.6.4
1621 2004-11-08 *** Released version 0.6.4
1618
1622
1619 2004-11-08 Fernando Perez <fperez@colorado.edu>
1623 2004-11-08 Fernando Perez <fperez@colorado.edu>
1620
1624
1621 * IPython/iplib.py (init_readline): Fix exit message for Windows
1625 * IPython/iplib.py (init_readline): Fix exit message for Windows
1622 when readline is active. Thanks to a report by Eric Jones
1626 when readline is active. Thanks to a report by Eric Jones
1623 <eric-AT-enthought.com>.
1627 <eric-AT-enthought.com>.
1624
1628
1625 2004-11-07 Fernando Perez <fperez@colorado.edu>
1629 2004-11-07 Fernando Perez <fperez@colorado.edu>
1626
1630
1627 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1631 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1628 sometimes seen by win2k/cygwin users.
1632 sometimes seen by win2k/cygwin users.
1629
1633
1630 2004-11-06 Fernando Perez <fperez@colorado.edu>
1634 2004-11-06 Fernando Perez <fperez@colorado.edu>
1631
1635
1632 * IPython/iplib.py (interact): Change the handling of %Exit from
1636 * IPython/iplib.py (interact): Change the handling of %Exit from
1633 trying to propagate a SystemExit to an internal ipython flag.
1637 trying to propagate a SystemExit to an internal ipython flag.
1634 This is less elegant than using Python's exception mechanism, but
1638 This is less elegant than using Python's exception mechanism, but
1635 I can't get that to work reliably with threads, so under -pylab
1639 I can't get that to work reliably with threads, so under -pylab
1636 %Exit was hanging IPython. Cross-thread exception handling is
1640 %Exit was hanging IPython. Cross-thread exception handling is
1637 really a bitch. Thaks to a bug report by Stephen Walton
1641 really a bitch. Thaks to a bug report by Stephen Walton
1638 <stephen.walton-AT-csun.edu>.
1642 <stephen.walton-AT-csun.edu>.
1639
1643
1640 2004-11-04 Fernando Perez <fperez@colorado.edu>
1644 2004-11-04 Fernando Perez <fperez@colorado.edu>
1641
1645
1642 * IPython/iplib.py (raw_input_original): store a pointer to the
1646 * IPython/iplib.py (raw_input_original): store a pointer to the
1643 true raw_input to harden against code which can modify it
1647 true raw_input to harden against code which can modify it
1644 (wx.py.PyShell does this and would otherwise crash ipython).
1648 (wx.py.PyShell does this and would otherwise crash ipython).
1645 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1649 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1646
1650
1647 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1651 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1648 Ctrl-C problem, which does not mess up the input line.
1652 Ctrl-C problem, which does not mess up the input line.
1649
1653
1650 2004-11-03 Fernando Perez <fperez@colorado.edu>
1654 2004-11-03 Fernando Perez <fperez@colorado.edu>
1651
1655
1652 * IPython/Release.py: Changed licensing to BSD, in all files.
1656 * IPython/Release.py: Changed licensing to BSD, in all files.
1653 (name): lowercase name for tarball/RPM release.
1657 (name): lowercase name for tarball/RPM release.
1654
1658
1655 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1659 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1656 use throughout ipython.
1660 use throughout ipython.
1657
1661
1658 * IPython/Magic.py (Magic._ofind): Switch to using the new
1662 * IPython/Magic.py (Magic._ofind): Switch to using the new
1659 OInspect.getdoc() function.
1663 OInspect.getdoc() function.
1660
1664
1661 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1665 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1662 of the line currently being canceled via Ctrl-C. It's extremely
1666 of the line currently being canceled via Ctrl-C. It's extremely
1663 ugly, but I don't know how to do it better (the problem is one of
1667 ugly, but I don't know how to do it better (the problem is one of
1664 handling cross-thread exceptions).
1668 handling cross-thread exceptions).
1665
1669
1666 2004-10-28 Fernando Perez <fperez@colorado.edu>
1670 2004-10-28 Fernando Perez <fperez@colorado.edu>
1667
1671
1668 * IPython/Shell.py (signal_handler): add signal handlers to trap
1672 * IPython/Shell.py (signal_handler): add signal handlers to trap
1669 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1673 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1670 report by Francesc Alted.
1674 report by Francesc Alted.
1671
1675
1672 2004-10-21 Fernando Perez <fperez@colorado.edu>
1676 2004-10-21 Fernando Perez <fperez@colorado.edu>
1673
1677
1674 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1678 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1675 to % for pysh syntax extensions.
1679 to % for pysh syntax extensions.
1676
1680
1677 2004-10-09 Fernando Perez <fperez@colorado.edu>
1681 2004-10-09 Fernando Perez <fperez@colorado.edu>
1678
1682
1679 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1683 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1680 arrays to print a more useful summary, without calling str(arr).
1684 arrays to print a more useful summary, without calling str(arr).
1681 This avoids the problem of extremely lengthy computations which
1685 This avoids the problem of extremely lengthy computations which
1682 occur if arr is large, and appear to the user as a system lockup
1686 occur if arr is large, and appear to the user as a system lockup
1683 with 100% cpu activity. After a suggestion by Kristian Sandberg
1687 with 100% cpu activity. After a suggestion by Kristian Sandberg
1684 <Kristian.Sandberg@colorado.edu>.
1688 <Kristian.Sandberg@colorado.edu>.
1685 (Magic.__init__): fix bug in global magic escapes not being
1689 (Magic.__init__): fix bug in global magic escapes not being
1686 correctly set.
1690 correctly set.
1687
1691
1688 2004-10-08 Fernando Perez <fperez@colorado.edu>
1692 2004-10-08 Fernando Perez <fperez@colorado.edu>
1689
1693
1690 * IPython/Magic.py (__license__): change to absolute imports of
1694 * IPython/Magic.py (__license__): change to absolute imports of
1691 ipython's own internal packages, to start adapting to the absolute
1695 ipython's own internal packages, to start adapting to the absolute
1692 import requirement of PEP-328.
1696 import requirement of PEP-328.
1693
1697
1694 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1698 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1695 files, and standardize author/license marks through the Release
1699 files, and standardize author/license marks through the Release
1696 module instead of having per/file stuff (except for files with
1700 module instead of having per/file stuff (except for files with
1697 particular licenses, like the MIT/PSF-licensed codes).
1701 particular licenses, like the MIT/PSF-licensed codes).
1698
1702
1699 * IPython/Debugger.py: remove dead code for python 2.1
1703 * IPython/Debugger.py: remove dead code for python 2.1
1700
1704
1701 2004-10-04 Fernando Perez <fperez@colorado.edu>
1705 2004-10-04 Fernando Perez <fperez@colorado.edu>
1702
1706
1703 * IPython/iplib.py (ipmagic): New function for accessing magics
1707 * IPython/iplib.py (ipmagic): New function for accessing magics
1704 via a normal python function call.
1708 via a normal python function call.
1705
1709
1706 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1710 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1707 from '@' to '%', to accomodate the new @decorator syntax of python
1711 from '@' to '%', to accomodate the new @decorator syntax of python
1708 2.4.
1712 2.4.
1709
1713
1710 2004-09-29 Fernando Perez <fperez@colorado.edu>
1714 2004-09-29 Fernando Perez <fperez@colorado.edu>
1711
1715
1712 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1716 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1713 matplotlib.use to prevent running scripts which try to switch
1717 matplotlib.use to prevent running scripts which try to switch
1714 interactive backends from within ipython. This will just crash
1718 interactive backends from within ipython. This will just crash
1715 the python interpreter, so we can't allow it (but a detailed error
1719 the python interpreter, so we can't allow it (but a detailed error
1716 is given to the user).
1720 is given to the user).
1717
1721
1718 2004-09-28 Fernando Perez <fperez@colorado.edu>
1722 2004-09-28 Fernando Perez <fperez@colorado.edu>
1719
1723
1720 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1724 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1721 matplotlib-related fixes so that using @run with non-matplotlib
1725 matplotlib-related fixes so that using @run with non-matplotlib
1722 scripts doesn't pop up spurious plot windows. This requires
1726 scripts doesn't pop up spurious plot windows. This requires
1723 matplotlib >= 0.63, where I had to make some changes as well.
1727 matplotlib >= 0.63, where I had to make some changes as well.
1724
1728
1725 * IPython/ipmaker.py (make_IPython): update version requirement to
1729 * IPython/ipmaker.py (make_IPython): update version requirement to
1726 python 2.2.
1730 python 2.2.
1727
1731
1728 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1732 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1729 banner arg for embedded customization.
1733 banner arg for embedded customization.
1730
1734
1731 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1735 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1732 explicit uses of __IP as the IPython's instance name. Now things
1736 explicit uses of __IP as the IPython's instance name. Now things
1733 are properly handled via the shell.name value. The actual code
1737 are properly handled via the shell.name value. The actual code
1734 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1738 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1735 is much better than before. I'll clean things completely when the
1739 is much better than before. I'll clean things completely when the
1736 magic stuff gets a real overhaul.
1740 magic stuff gets a real overhaul.
1737
1741
1738 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1742 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1739 minor changes to debian dir.
1743 minor changes to debian dir.
1740
1744
1741 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1745 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1742 pointer to the shell itself in the interactive namespace even when
1746 pointer to the shell itself in the interactive namespace even when
1743 a user-supplied dict is provided. This is needed for embedding
1747 a user-supplied dict is provided. This is needed for embedding
1744 purposes (found by tests with Michel Sanner).
1748 purposes (found by tests with Michel Sanner).
1745
1749
1746 2004-09-27 Fernando Perez <fperez@colorado.edu>
1750 2004-09-27 Fernando Perez <fperez@colorado.edu>
1747
1751
1748 * IPython/UserConfig/ipythonrc: remove []{} from
1752 * IPython/UserConfig/ipythonrc: remove []{} from
1749 readline_remove_delims, so that things like [modname.<TAB> do
1753 readline_remove_delims, so that things like [modname.<TAB> do
1750 proper completion. This disables [].TAB, but that's a less common
1754 proper completion. This disables [].TAB, but that's a less common
1751 case than module names in list comprehensions, for example.
1755 case than module names in list comprehensions, for example.
1752 Thanks to a report by Andrea Riciputi.
1756 Thanks to a report by Andrea Riciputi.
1753
1757
1754 2004-09-09 Fernando Perez <fperez@colorado.edu>
1758 2004-09-09 Fernando Perez <fperez@colorado.edu>
1755
1759
1756 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1760 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1757 blocking problems in win32 and osx. Fix by John.
1761 blocking problems in win32 and osx. Fix by John.
1758
1762
1759 2004-09-08 Fernando Perez <fperez@colorado.edu>
1763 2004-09-08 Fernando Perez <fperez@colorado.edu>
1760
1764
1761 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1765 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1762 for Win32 and OSX. Fix by John Hunter.
1766 for Win32 and OSX. Fix by John Hunter.
1763
1767
1764 2004-08-30 *** Released version 0.6.3
1768 2004-08-30 *** Released version 0.6.3
1765
1769
1766 2004-08-30 Fernando Perez <fperez@colorado.edu>
1770 2004-08-30 Fernando Perez <fperez@colorado.edu>
1767
1771
1768 * setup.py (isfile): Add manpages to list of dependent files to be
1772 * setup.py (isfile): Add manpages to list of dependent files to be
1769 updated.
1773 updated.
1770
1774
1771 2004-08-27 Fernando Perez <fperez@colorado.edu>
1775 2004-08-27 Fernando Perez <fperez@colorado.edu>
1772
1776
1773 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1777 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1774 for now. They don't really work with standalone WX/GTK code
1778 for now. They don't really work with standalone WX/GTK code
1775 (though matplotlib IS working fine with both of those backends).
1779 (though matplotlib IS working fine with both of those backends).
1776 This will neeed much more testing. I disabled most things with
1780 This will neeed much more testing. I disabled most things with
1777 comments, so turning it back on later should be pretty easy.
1781 comments, so turning it back on later should be pretty easy.
1778
1782
1779 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1783 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1780 autocalling of expressions like r'foo', by modifying the line
1784 autocalling of expressions like r'foo', by modifying the line
1781 split regexp. Closes
1785 split regexp. Closes
1782 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1786 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1783 Riley <ipythonbugs-AT-sabi.net>.
1787 Riley <ipythonbugs-AT-sabi.net>.
1784 (InteractiveShell.mainloop): honor --nobanner with banner
1788 (InteractiveShell.mainloop): honor --nobanner with banner
1785 extensions.
1789 extensions.
1786
1790
1787 * IPython/Shell.py: Significant refactoring of all classes, so
1791 * IPython/Shell.py: Significant refactoring of all classes, so
1788 that we can really support ALL matplotlib backends and threading
1792 that we can really support ALL matplotlib backends and threading
1789 models (John spotted a bug with Tk which required this). Now we
1793 models (John spotted a bug with Tk which required this). Now we
1790 should support single-threaded, WX-threads and GTK-threads, both
1794 should support single-threaded, WX-threads and GTK-threads, both
1791 for generic code and for matplotlib.
1795 for generic code and for matplotlib.
1792
1796
1793 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1797 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1794 -pylab, to simplify things for users. Will also remove the pylab
1798 -pylab, to simplify things for users. Will also remove the pylab
1795 profile, since now all of matplotlib configuration is directly
1799 profile, since now all of matplotlib configuration is directly
1796 handled here. This also reduces startup time.
1800 handled here. This also reduces startup time.
1797
1801
1798 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1802 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1799 shell wasn't being correctly called. Also in IPShellWX.
1803 shell wasn't being correctly called. Also in IPShellWX.
1800
1804
1801 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1805 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1802 fine-tune banner.
1806 fine-tune banner.
1803
1807
1804 * IPython/numutils.py (spike): Deprecate these spike functions,
1808 * IPython/numutils.py (spike): Deprecate these spike functions,
1805 delete (long deprecated) gnuplot_exec handler.
1809 delete (long deprecated) gnuplot_exec handler.
1806
1810
1807 2004-08-26 Fernando Perez <fperez@colorado.edu>
1811 2004-08-26 Fernando Perez <fperez@colorado.edu>
1808
1812
1809 * ipython.1: Update for threading options, plus some others which
1813 * ipython.1: Update for threading options, plus some others which
1810 were missing.
1814 were missing.
1811
1815
1812 * IPython/ipmaker.py (__call__): Added -wthread option for
1816 * IPython/ipmaker.py (__call__): Added -wthread option for
1813 wxpython thread handling. Make sure threading options are only
1817 wxpython thread handling. Make sure threading options are only
1814 valid at the command line.
1818 valid at the command line.
1815
1819
1816 * scripts/ipython: moved shell selection into a factory function
1820 * scripts/ipython: moved shell selection into a factory function
1817 in Shell.py, to keep the starter script to a minimum.
1821 in Shell.py, to keep the starter script to a minimum.
1818
1822
1819 2004-08-25 Fernando Perez <fperez@colorado.edu>
1823 2004-08-25 Fernando Perez <fperez@colorado.edu>
1820
1824
1821 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1825 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1822 John. Along with some recent changes he made to matplotlib, the
1826 John. Along with some recent changes he made to matplotlib, the
1823 next versions of both systems should work very well together.
1827 next versions of both systems should work very well together.
1824
1828
1825 2004-08-24 Fernando Perez <fperez@colorado.edu>
1829 2004-08-24 Fernando Perez <fperez@colorado.edu>
1826
1830
1827 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1831 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1828 tried to switch the profiling to using hotshot, but I'm getting
1832 tried to switch the profiling to using hotshot, but I'm getting
1829 strange errors from prof.runctx() there. I may be misreading the
1833 strange errors from prof.runctx() there. I may be misreading the
1830 docs, but it looks weird. For now the profiling code will
1834 docs, but it looks weird. For now the profiling code will
1831 continue to use the standard profiler.
1835 continue to use the standard profiler.
1832
1836
1833 2004-08-23 Fernando Perez <fperez@colorado.edu>
1837 2004-08-23 Fernando Perez <fperez@colorado.edu>
1834
1838
1835 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1839 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1836 threaded shell, by John Hunter. It's not quite ready yet, but
1840 threaded shell, by John Hunter. It's not quite ready yet, but
1837 close.
1841 close.
1838
1842
1839 2004-08-22 Fernando Perez <fperez@colorado.edu>
1843 2004-08-22 Fernando Perez <fperez@colorado.edu>
1840
1844
1841 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1845 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1842 in Magic and ultraTB.
1846 in Magic and ultraTB.
1843
1847
1844 * ipython.1: document threading options in manpage.
1848 * ipython.1: document threading options in manpage.
1845
1849
1846 * scripts/ipython: Changed name of -thread option to -gthread,
1850 * scripts/ipython: Changed name of -thread option to -gthread,
1847 since this is GTK specific. I want to leave the door open for a
1851 since this is GTK specific. I want to leave the door open for a
1848 -wthread option for WX, which will most likely be necessary. This
1852 -wthread option for WX, which will most likely be necessary. This
1849 change affects usage and ipmaker as well.
1853 change affects usage and ipmaker as well.
1850
1854
1851 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1855 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1852 handle the matplotlib shell issues. Code by John Hunter
1856 handle the matplotlib shell issues. Code by John Hunter
1853 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1857 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1854 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1858 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1855 broken (and disabled for end users) for now, but it puts the
1859 broken (and disabled for end users) for now, but it puts the
1856 infrastructure in place.
1860 infrastructure in place.
1857
1861
1858 2004-08-21 Fernando Perez <fperez@colorado.edu>
1862 2004-08-21 Fernando Perez <fperez@colorado.edu>
1859
1863
1860 * ipythonrc-pylab: Add matplotlib support.
1864 * ipythonrc-pylab: Add matplotlib support.
1861
1865
1862 * matplotlib_config.py: new files for matplotlib support, part of
1866 * matplotlib_config.py: new files for matplotlib support, part of
1863 the pylab profile.
1867 the pylab profile.
1864
1868
1865 * IPython/usage.py (__doc__): documented the threading options.
1869 * IPython/usage.py (__doc__): documented the threading options.
1866
1870
1867 2004-08-20 Fernando Perez <fperez@colorado.edu>
1871 2004-08-20 Fernando Perez <fperez@colorado.edu>
1868
1872
1869 * ipython: Modified the main calling routine to handle the -thread
1873 * ipython: Modified the main calling routine to handle the -thread
1870 and -mpthread options. This needs to be done as a top-level hack,
1874 and -mpthread options. This needs to be done as a top-level hack,
1871 because it determines which class to instantiate for IPython
1875 because it determines which class to instantiate for IPython
1872 itself.
1876 itself.
1873
1877
1874 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1878 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1875 classes to support multithreaded GTK operation without blocking,
1879 classes to support multithreaded GTK operation without blocking,
1876 and matplotlib with all backends. This is a lot of still very
1880 and matplotlib with all backends. This is a lot of still very
1877 experimental code, and threads are tricky. So it may still have a
1881 experimental code, and threads are tricky. So it may still have a
1878 few rough edges... This code owes a lot to
1882 few rough edges... This code owes a lot to
1879 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1883 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1880 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1884 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1881 to John Hunter for all the matplotlib work.
1885 to John Hunter for all the matplotlib work.
1882
1886
1883 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1887 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1884 options for gtk thread and matplotlib support.
1888 options for gtk thread and matplotlib support.
1885
1889
1886 2004-08-16 Fernando Perez <fperez@colorado.edu>
1890 2004-08-16 Fernando Perez <fperez@colorado.edu>
1887
1891
1888 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1892 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1889 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1893 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1890 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1894 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1891
1895
1892 2004-08-11 Fernando Perez <fperez@colorado.edu>
1896 2004-08-11 Fernando Perez <fperez@colorado.edu>
1893
1897
1894 * setup.py (isfile): Fix build so documentation gets updated for
1898 * setup.py (isfile): Fix build so documentation gets updated for
1895 rpms (it was only done for .tgz builds).
1899 rpms (it was only done for .tgz builds).
1896
1900
1897 2004-08-10 Fernando Perez <fperez@colorado.edu>
1901 2004-08-10 Fernando Perez <fperez@colorado.edu>
1898
1902
1899 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1903 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1900
1904
1901 * iplib.py : Silence syntax error exceptions in tab-completion.
1905 * iplib.py : Silence syntax error exceptions in tab-completion.
1902
1906
1903 2004-08-05 Fernando Perez <fperez@colorado.edu>
1907 2004-08-05 Fernando Perez <fperez@colorado.edu>
1904
1908
1905 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1909 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1906 'color off' mark for continuation prompts. This was causing long
1910 'color off' mark for continuation prompts. This was causing long
1907 continuation lines to mis-wrap.
1911 continuation lines to mis-wrap.
1908
1912
1909 2004-08-01 Fernando Perez <fperez@colorado.edu>
1913 2004-08-01 Fernando Perez <fperez@colorado.edu>
1910
1914
1911 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1915 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1912 for building ipython to be a parameter. All this is necessary
1916 for building ipython to be a parameter. All this is necessary
1913 right now to have a multithreaded version, but this insane
1917 right now to have a multithreaded version, but this insane
1914 non-design will be cleaned up soon. For now, it's a hack that
1918 non-design will be cleaned up soon. For now, it's a hack that
1915 works.
1919 works.
1916
1920
1917 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1921 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1918 args in various places. No bugs so far, but it's a dangerous
1922 args in various places. No bugs so far, but it's a dangerous
1919 practice.
1923 practice.
1920
1924
1921 2004-07-31 Fernando Perez <fperez@colorado.edu>
1925 2004-07-31 Fernando Perez <fperez@colorado.edu>
1922
1926
1923 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1927 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1924 fix completion of files with dots in their names under most
1928 fix completion of files with dots in their names under most
1925 profiles (pysh was OK because the completion order is different).
1929 profiles (pysh was OK because the completion order is different).
1926
1930
1927 2004-07-27 Fernando Perez <fperez@colorado.edu>
1931 2004-07-27 Fernando Perez <fperez@colorado.edu>
1928
1932
1929 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1933 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1930 keywords manually, b/c the one in keyword.py was removed in python
1934 keywords manually, b/c the one in keyword.py was removed in python
1931 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1935 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1932 This is NOT a bug under python 2.3 and earlier.
1936 This is NOT a bug under python 2.3 and earlier.
1933
1937
1934 2004-07-26 Fernando Perez <fperez@colorado.edu>
1938 2004-07-26 Fernando Perez <fperez@colorado.edu>
1935
1939
1936 * IPython/ultraTB.py (VerboseTB.text): Add another
1940 * IPython/ultraTB.py (VerboseTB.text): Add another
1937 linecache.checkcache() call to try to prevent inspect.py from
1941 linecache.checkcache() call to try to prevent inspect.py from
1938 crashing under python 2.3. I think this fixes
1942 crashing under python 2.3. I think this fixes
1939 http://www.scipy.net/roundup/ipython/issue17.
1943 http://www.scipy.net/roundup/ipython/issue17.
1940
1944
1941 2004-07-26 *** Released version 0.6.2
1945 2004-07-26 *** Released version 0.6.2
1942
1946
1943 2004-07-26 Fernando Perez <fperez@colorado.edu>
1947 2004-07-26 Fernando Perez <fperez@colorado.edu>
1944
1948
1945 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1949 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1946 fail for any number.
1950 fail for any number.
1947 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1951 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1948 empty bookmarks.
1952 empty bookmarks.
1949
1953
1950 2004-07-26 *** Released version 0.6.1
1954 2004-07-26 *** Released version 0.6.1
1951
1955
1952 2004-07-26 Fernando Perez <fperez@colorado.edu>
1956 2004-07-26 Fernando Perez <fperez@colorado.edu>
1953
1957
1954 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1958 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1955
1959
1956 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1960 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1957 escaping '()[]{}' in filenames.
1961 escaping '()[]{}' in filenames.
1958
1962
1959 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1963 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1960 Python 2.2 users who lack a proper shlex.split.
1964 Python 2.2 users who lack a proper shlex.split.
1961
1965
1962 2004-07-19 Fernando Perez <fperez@colorado.edu>
1966 2004-07-19 Fernando Perez <fperez@colorado.edu>
1963
1967
1964 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1968 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1965 for reading readline's init file. I follow the normal chain:
1969 for reading readline's init file. I follow the normal chain:
1966 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1970 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1967 report by Mike Heeter. This closes
1971 report by Mike Heeter. This closes
1968 http://www.scipy.net/roundup/ipython/issue16.
1972 http://www.scipy.net/roundup/ipython/issue16.
1969
1973
1970 2004-07-18 Fernando Perez <fperez@colorado.edu>
1974 2004-07-18 Fernando Perez <fperez@colorado.edu>
1971
1975
1972 * IPython/iplib.py (__init__): Add better handling of '\' under
1976 * IPython/iplib.py (__init__): Add better handling of '\' under
1973 Win32 for filenames. After a patch by Ville.
1977 Win32 for filenames. After a patch by Ville.
1974
1978
1975 2004-07-17 Fernando Perez <fperez@colorado.edu>
1979 2004-07-17 Fernando Perez <fperez@colorado.edu>
1976
1980
1977 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1981 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1978 autocalling would be triggered for 'foo is bar' if foo is
1982 autocalling would be triggered for 'foo is bar' if foo is
1979 callable. I also cleaned up the autocall detection code to use a
1983 callable. I also cleaned up the autocall detection code to use a
1980 regexp, which is faster. Bug reported by Alexander Schmolck.
1984 regexp, which is faster. Bug reported by Alexander Schmolck.
1981
1985
1982 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1986 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1983 '?' in them would confuse the help system. Reported by Alex
1987 '?' in them would confuse the help system. Reported by Alex
1984 Schmolck.
1988 Schmolck.
1985
1989
1986 2004-07-16 Fernando Perez <fperez@colorado.edu>
1990 2004-07-16 Fernando Perez <fperez@colorado.edu>
1987
1991
1988 * IPython/GnuplotInteractive.py (__all__): added plot2.
1992 * IPython/GnuplotInteractive.py (__all__): added plot2.
1989
1993
1990 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1994 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1991 plotting dictionaries, lists or tuples of 1d arrays.
1995 plotting dictionaries, lists or tuples of 1d arrays.
1992
1996
1993 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1997 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1994 optimizations.
1998 optimizations.
1995
1999
1996 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2000 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1997 the information which was there from Janko's original IPP code:
2001 the information which was there from Janko's original IPP code:
1998
2002
1999 03.05.99 20:53 porto.ifm.uni-kiel.de
2003 03.05.99 20:53 porto.ifm.uni-kiel.de
2000 --Started changelog.
2004 --Started changelog.
2001 --make clear do what it say it does
2005 --make clear do what it say it does
2002 --added pretty output of lines from inputcache
2006 --added pretty output of lines from inputcache
2003 --Made Logger a mixin class, simplifies handling of switches
2007 --Made Logger a mixin class, simplifies handling of switches
2004 --Added own completer class. .string<TAB> expands to last history
2008 --Added own completer class. .string<TAB> expands to last history
2005 line which starts with string. The new expansion is also present
2009 line which starts with string. The new expansion is also present
2006 with Ctrl-r from the readline library. But this shows, who this
2010 with Ctrl-r from the readline library. But this shows, who this
2007 can be done for other cases.
2011 can be done for other cases.
2008 --Added convention that all shell functions should accept a
2012 --Added convention that all shell functions should accept a
2009 parameter_string This opens the door for different behaviour for
2013 parameter_string This opens the door for different behaviour for
2010 each function. @cd is a good example of this.
2014 each function. @cd is a good example of this.
2011
2015
2012 04.05.99 12:12 porto.ifm.uni-kiel.de
2016 04.05.99 12:12 porto.ifm.uni-kiel.de
2013 --added logfile rotation
2017 --added logfile rotation
2014 --added new mainloop method which freezes first the namespace
2018 --added new mainloop method which freezes first the namespace
2015
2019
2016 07.05.99 21:24 porto.ifm.uni-kiel.de
2020 07.05.99 21:24 porto.ifm.uni-kiel.de
2017 --added the docreader classes. Now there is a help system.
2021 --added the docreader classes. Now there is a help system.
2018 -This is only a first try. Currently it's not easy to put new
2022 -This is only a first try. Currently it's not easy to put new
2019 stuff in the indices. But this is the way to go. Info would be
2023 stuff in the indices. But this is the way to go. Info would be
2020 better, but HTML is every where and not everybody has an info
2024 better, but HTML is every where and not everybody has an info
2021 system installed and it's not so easy to change html-docs to info.
2025 system installed and it's not so easy to change html-docs to info.
2022 --added global logfile option
2026 --added global logfile option
2023 --there is now a hook for object inspection method pinfo needs to
2027 --there is now a hook for object inspection method pinfo needs to
2024 be provided for this. Can be reached by two '??'.
2028 be provided for this. Can be reached by two '??'.
2025
2029
2026 08.05.99 20:51 porto.ifm.uni-kiel.de
2030 08.05.99 20:51 porto.ifm.uni-kiel.de
2027 --added a README
2031 --added a README
2028 --bug in rc file. Something has changed so functions in the rc
2032 --bug in rc file. Something has changed so functions in the rc
2029 file need to reference the shell and not self. Not clear if it's a
2033 file need to reference the shell and not self. Not clear if it's a
2030 bug or feature.
2034 bug or feature.
2031 --changed rc file for new behavior
2035 --changed rc file for new behavior
2032
2036
2033 2004-07-15 Fernando Perez <fperez@colorado.edu>
2037 2004-07-15 Fernando Perez <fperez@colorado.edu>
2034
2038
2035 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2039 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2036 cache was falling out of sync in bizarre manners when multi-line
2040 cache was falling out of sync in bizarre manners when multi-line
2037 input was present. Minor optimizations and cleanup.
2041 input was present. Minor optimizations and cleanup.
2038
2042
2039 (Logger): Remove old Changelog info for cleanup. This is the
2043 (Logger): Remove old Changelog info for cleanup. This is the
2040 information which was there from Janko's original code:
2044 information which was there from Janko's original code:
2041
2045
2042 Changes to Logger: - made the default log filename a parameter
2046 Changes to Logger: - made the default log filename a parameter
2043
2047
2044 - put a check for lines beginning with !@? in log(). Needed
2048 - put a check for lines beginning with !@? in log(). Needed
2045 (even if the handlers properly log their lines) for mid-session
2049 (even if the handlers properly log their lines) for mid-session
2046 logging activation to work properly. Without this, lines logged
2050 logging activation to work properly. Without this, lines logged
2047 in mid session, which get read from the cache, would end up
2051 in mid session, which get read from the cache, would end up
2048 'bare' (with !@? in the open) in the log. Now they are caught
2052 'bare' (with !@? in the open) in the log. Now they are caught
2049 and prepended with a #.
2053 and prepended with a #.
2050
2054
2051 * IPython/iplib.py (InteractiveShell.init_readline): added check
2055 * IPython/iplib.py (InteractiveShell.init_readline): added check
2052 in case MagicCompleter fails to be defined, so we don't crash.
2056 in case MagicCompleter fails to be defined, so we don't crash.
2053
2057
2054 2004-07-13 Fernando Perez <fperez@colorado.edu>
2058 2004-07-13 Fernando Perez <fperez@colorado.edu>
2055
2059
2056 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2060 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2057 of EPS if the requested filename ends in '.eps'.
2061 of EPS if the requested filename ends in '.eps'.
2058
2062
2059 2004-07-04 Fernando Perez <fperez@colorado.edu>
2063 2004-07-04 Fernando Perez <fperez@colorado.edu>
2060
2064
2061 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2065 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2062 escaping of quotes when calling the shell.
2066 escaping of quotes when calling the shell.
2063
2067
2064 2004-07-02 Fernando Perez <fperez@colorado.edu>
2068 2004-07-02 Fernando Perez <fperez@colorado.edu>
2065
2069
2066 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2070 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2067 gettext not working because we were clobbering '_'. Fixes
2071 gettext not working because we were clobbering '_'. Fixes
2068 http://www.scipy.net/roundup/ipython/issue6.
2072 http://www.scipy.net/roundup/ipython/issue6.
2069
2073
2070 2004-07-01 Fernando Perez <fperez@colorado.edu>
2074 2004-07-01 Fernando Perez <fperez@colorado.edu>
2071
2075
2072 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2076 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2073 into @cd. Patch by Ville.
2077 into @cd. Patch by Ville.
2074
2078
2075 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2079 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2076 new function to store things after ipmaker runs. Patch by Ville.
2080 new function to store things after ipmaker runs. Patch by Ville.
2077 Eventually this will go away once ipmaker is removed and the class
2081 Eventually this will go away once ipmaker is removed and the class
2078 gets cleaned up, but for now it's ok. Key functionality here is
2082 gets cleaned up, but for now it's ok. Key functionality here is
2079 the addition of the persistent storage mechanism, a dict for
2083 the addition of the persistent storage mechanism, a dict for
2080 keeping data across sessions (for now just bookmarks, but more can
2084 keeping data across sessions (for now just bookmarks, but more can
2081 be implemented later).
2085 be implemented later).
2082
2086
2083 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2087 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2084 persistent across sections. Patch by Ville, I modified it
2088 persistent across sections. Patch by Ville, I modified it
2085 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2089 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2086 added a '-l' option to list all bookmarks.
2090 added a '-l' option to list all bookmarks.
2087
2091
2088 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2092 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2089 center for cleanup. Registered with atexit.register(). I moved
2093 center for cleanup. Registered with atexit.register(). I moved
2090 here the old exit_cleanup(). After a patch by Ville.
2094 here the old exit_cleanup(). After a patch by Ville.
2091
2095
2092 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2096 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2093 characters in the hacked shlex_split for python 2.2.
2097 characters in the hacked shlex_split for python 2.2.
2094
2098
2095 * IPython/iplib.py (file_matches): more fixes to filenames with
2099 * IPython/iplib.py (file_matches): more fixes to filenames with
2096 whitespace in them. It's not perfect, but limitations in python's
2100 whitespace in them. It's not perfect, but limitations in python's
2097 readline make it impossible to go further.
2101 readline make it impossible to go further.
2098
2102
2099 2004-06-29 Fernando Perez <fperez@colorado.edu>
2103 2004-06-29 Fernando Perez <fperez@colorado.edu>
2100
2104
2101 * IPython/iplib.py (file_matches): escape whitespace correctly in
2105 * IPython/iplib.py (file_matches): escape whitespace correctly in
2102 filename completions. Bug reported by Ville.
2106 filename completions. Bug reported by Ville.
2103
2107
2104 2004-06-28 Fernando Perez <fperez@colorado.edu>
2108 2004-06-28 Fernando Perez <fperez@colorado.edu>
2105
2109
2106 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2110 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2107 the history file will be called 'history-PROFNAME' (or just
2111 the history file will be called 'history-PROFNAME' (or just
2108 'history' if no profile is loaded). I was getting annoyed at
2112 'history' if no profile is loaded). I was getting annoyed at
2109 getting my Numerical work history clobbered by pysh sessions.
2113 getting my Numerical work history clobbered by pysh sessions.
2110
2114
2111 * IPython/iplib.py (InteractiveShell.__init__): Internal
2115 * IPython/iplib.py (InteractiveShell.__init__): Internal
2112 getoutputerror() function so that we can honor the system_verbose
2116 getoutputerror() function so that we can honor the system_verbose
2113 flag for _all_ system calls. I also added escaping of #
2117 flag for _all_ system calls. I also added escaping of #
2114 characters here to avoid confusing Itpl.
2118 characters here to avoid confusing Itpl.
2115
2119
2116 * IPython/Magic.py (shlex_split): removed call to shell in
2120 * IPython/Magic.py (shlex_split): removed call to shell in
2117 parse_options and replaced it with shlex.split(). The annoying
2121 parse_options and replaced it with shlex.split(). The annoying
2118 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2122 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2119 to backport it from 2.3, with several frail hacks (the shlex
2123 to backport it from 2.3, with several frail hacks (the shlex
2120 module is rather limited in 2.2). Thanks to a suggestion by Ville
2124 module is rather limited in 2.2). Thanks to a suggestion by Ville
2121 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2125 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2122 problem.
2126 problem.
2123
2127
2124 (Magic.magic_system_verbose): new toggle to print the actual
2128 (Magic.magic_system_verbose): new toggle to print the actual
2125 system calls made by ipython. Mainly for debugging purposes.
2129 system calls made by ipython. Mainly for debugging purposes.
2126
2130
2127 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2131 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2128 doesn't support persistence. Reported (and fix suggested) by
2132 doesn't support persistence. Reported (and fix suggested) by
2129 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2133 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2130
2134
2131 2004-06-26 Fernando Perez <fperez@colorado.edu>
2135 2004-06-26 Fernando Perez <fperez@colorado.edu>
2132
2136
2133 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2137 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2134 continue prompts.
2138 continue prompts.
2135
2139
2136 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2140 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2137 function (basically a big docstring) and a few more things here to
2141 function (basically a big docstring) and a few more things here to
2138 speedup startup. pysh.py is now very lightweight. We want because
2142 speedup startup. pysh.py is now very lightweight. We want because
2139 it gets execfile'd, while InterpreterExec gets imported, so
2143 it gets execfile'd, while InterpreterExec gets imported, so
2140 byte-compilation saves time.
2144 byte-compilation saves time.
2141
2145
2142 2004-06-25 Fernando Perez <fperez@colorado.edu>
2146 2004-06-25 Fernando Perez <fperez@colorado.edu>
2143
2147
2144 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2148 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2145 -NUM', which was recently broken.
2149 -NUM', which was recently broken.
2146
2150
2147 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2151 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2148 in multi-line input (but not !!, which doesn't make sense there).
2152 in multi-line input (but not !!, which doesn't make sense there).
2149
2153
2150 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2154 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2151 It's just too useful, and people can turn it off in the less
2155 It's just too useful, and people can turn it off in the less
2152 common cases where it's a problem.
2156 common cases where it's a problem.
2153
2157
2154 2004-06-24 Fernando Perez <fperez@colorado.edu>
2158 2004-06-24 Fernando Perez <fperez@colorado.edu>
2155
2159
2156 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2160 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2157 special syntaxes (like alias calling) is now allied in multi-line
2161 special syntaxes (like alias calling) is now allied in multi-line
2158 input. This is still _very_ experimental, but it's necessary for
2162 input. This is still _very_ experimental, but it's necessary for
2159 efficient shell usage combining python looping syntax with system
2163 efficient shell usage combining python looping syntax with system
2160 calls. For now it's restricted to aliases, I don't think it
2164 calls. For now it's restricted to aliases, I don't think it
2161 really even makes sense to have this for magics.
2165 really even makes sense to have this for magics.
2162
2166
2163 2004-06-23 Fernando Perez <fperez@colorado.edu>
2167 2004-06-23 Fernando Perez <fperez@colorado.edu>
2164
2168
2165 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2169 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2166 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2170 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2167
2171
2168 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2172 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2169 extensions under Windows (after code sent by Gary Bishop). The
2173 extensions under Windows (after code sent by Gary Bishop). The
2170 extensions considered 'executable' are stored in IPython's rc
2174 extensions considered 'executable' are stored in IPython's rc
2171 structure as win_exec_ext.
2175 structure as win_exec_ext.
2172
2176
2173 * IPython/genutils.py (shell): new function, like system() but
2177 * IPython/genutils.py (shell): new function, like system() but
2174 without return value. Very useful for interactive shell work.
2178 without return value. Very useful for interactive shell work.
2175
2179
2176 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2180 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2177 delete aliases.
2181 delete aliases.
2178
2182
2179 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2183 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2180 sure that the alias table doesn't contain python keywords.
2184 sure that the alias table doesn't contain python keywords.
2181
2185
2182 2004-06-21 Fernando Perez <fperez@colorado.edu>
2186 2004-06-21 Fernando Perez <fperez@colorado.edu>
2183
2187
2184 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2188 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2185 non-existent items are found in $PATH. Reported by Thorsten.
2189 non-existent items are found in $PATH. Reported by Thorsten.
2186
2190
2187 2004-06-20 Fernando Perez <fperez@colorado.edu>
2191 2004-06-20 Fernando Perez <fperez@colorado.edu>
2188
2192
2189 * IPython/iplib.py (complete): modified the completer so that the
2193 * IPython/iplib.py (complete): modified the completer so that the
2190 order of priorities can be easily changed at runtime.
2194 order of priorities can be easily changed at runtime.
2191
2195
2192 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2196 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2193 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2197 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2194
2198
2195 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2199 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2196 expand Python variables prepended with $ in all system calls. The
2200 expand Python variables prepended with $ in all system calls. The
2197 same was done to InteractiveShell.handle_shell_escape. Now all
2201 same was done to InteractiveShell.handle_shell_escape. Now all
2198 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2202 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2199 expansion of python variables and expressions according to the
2203 expansion of python variables and expressions according to the
2200 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2204 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2201
2205
2202 Though PEP-215 has been rejected, a similar (but simpler) one
2206 Though PEP-215 has been rejected, a similar (but simpler) one
2203 seems like it will go into Python 2.4, PEP-292 -
2207 seems like it will go into Python 2.4, PEP-292 -
2204 http://www.python.org/peps/pep-0292.html.
2208 http://www.python.org/peps/pep-0292.html.
2205
2209
2206 I'll keep the full syntax of PEP-215, since IPython has since the
2210 I'll keep the full syntax of PEP-215, since IPython has since the
2207 start used Ka-Ping Yee's reference implementation discussed there
2211 start used Ka-Ping Yee's reference implementation discussed there
2208 (Itpl), and I actually like the powerful semantics it offers.
2212 (Itpl), and I actually like the powerful semantics it offers.
2209
2213
2210 In order to access normal shell variables, the $ has to be escaped
2214 In order to access normal shell variables, the $ has to be escaped
2211 via an extra $. For example:
2215 via an extra $. For example:
2212
2216
2213 In [7]: PATH='a python variable'
2217 In [7]: PATH='a python variable'
2214
2218
2215 In [8]: !echo $PATH
2219 In [8]: !echo $PATH
2216 a python variable
2220 a python variable
2217
2221
2218 In [9]: !echo $$PATH
2222 In [9]: !echo $$PATH
2219 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2223 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2220
2224
2221 (Magic.parse_options): escape $ so the shell doesn't evaluate
2225 (Magic.parse_options): escape $ so the shell doesn't evaluate
2222 things prematurely.
2226 things prematurely.
2223
2227
2224 * IPython/iplib.py (InteractiveShell.call_alias): added the
2228 * IPython/iplib.py (InteractiveShell.call_alias): added the
2225 ability for aliases to expand python variables via $.
2229 ability for aliases to expand python variables via $.
2226
2230
2227 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2231 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2228 system, now there's a @rehash/@rehashx pair of magics. These work
2232 system, now there's a @rehash/@rehashx pair of magics. These work
2229 like the csh rehash command, and can be invoked at any time. They
2233 like the csh rehash command, and can be invoked at any time. They
2230 build a table of aliases to everything in the user's $PATH
2234 build a table of aliases to everything in the user's $PATH
2231 (@rehash uses everything, @rehashx is slower but only adds
2235 (@rehash uses everything, @rehashx is slower but only adds
2232 executable files). With this, the pysh.py-based shell profile can
2236 executable files). With this, the pysh.py-based shell profile can
2233 now simply call rehash upon startup, and full access to all
2237 now simply call rehash upon startup, and full access to all
2234 programs in the user's path is obtained.
2238 programs in the user's path is obtained.
2235
2239
2236 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2240 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2237 functionality is now fully in place. I removed the old dynamic
2241 functionality is now fully in place. I removed the old dynamic
2238 code generation based approach, in favor of a much lighter one
2242 code generation based approach, in favor of a much lighter one
2239 based on a simple dict. The advantage is that this allows me to
2243 based on a simple dict. The advantage is that this allows me to
2240 now have thousands of aliases with negligible cost (unthinkable
2244 now have thousands of aliases with negligible cost (unthinkable
2241 with the old system).
2245 with the old system).
2242
2246
2243 2004-06-19 Fernando Perez <fperez@colorado.edu>
2247 2004-06-19 Fernando Perez <fperez@colorado.edu>
2244
2248
2245 * IPython/iplib.py (__init__): extended MagicCompleter class to
2249 * IPython/iplib.py (__init__): extended MagicCompleter class to
2246 also complete (last in priority) on user aliases.
2250 also complete (last in priority) on user aliases.
2247
2251
2248 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2252 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2249 call to eval.
2253 call to eval.
2250 (ItplNS.__init__): Added a new class which functions like Itpl,
2254 (ItplNS.__init__): Added a new class which functions like Itpl,
2251 but allows configuring the namespace for the evaluation to occur
2255 but allows configuring the namespace for the evaluation to occur
2252 in.
2256 in.
2253
2257
2254 2004-06-18 Fernando Perez <fperez@colorado.edu>
2258 2004-06-18 Fernando Perez <fperez@colorado.edu>
2255
2259
2256 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2260 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2257 better message when 'exit' or 'quit' are typed (a common newbie
2261 better message when 'exit' or 'quit' are typed (a common newbie
2258 confusion).
2262 confusion).
2259
2263
2260 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2264 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2261 check for Windows users.
2265 check for Windows users.
2262
2266
2263 * IPython/iplib.py (InteractiveShell.user_setup): removed
2267 * IPython/iplib.py (InteractiveShell.user_setup): removed
2264 disabling of colors for Windows. I'll test at runtime and issue a
2268 disabling of colors for Windows. I'll test at runtime and issue a
2265 warning if Gary's readline isn't found, as to nudge users to
2269 warning if Gary's readline isn't found, as to nudge users to
2266 download it.
2270 download it.
2267
2271
2268 2004-06-16 Fernando Perez <fperez@colorado.edu>
2272 2004-06-16 Fernando Perez <fperez@colorado.edu>
2269
2273
2270 * IPython/genutils.py (Stream.__init__): changed to print errors
2274 * IPython/genutils.py (Stream.__init__): changed to print errors
2271 to sys.stderr. I had a circular dependency here. Now it's
2275 to sys.stderr. I had a circular dependency here. Now it's
2272 possible to run ipython as IDLE's shell (consider this pre-alpha,
2276 possible to run ipython as IDLE's shell (consider this pre-alpha,
2273 since true stdout things end up in the starting terminal instead
2277 since true stdout things end up in the starting terminal instead
2274 of IDLE's out).
2278 of IDLE's out).
2275
2279
2276 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2280 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2277 users who haven't # updated their prompt_in2 definitions. Remove
2281 users who haven't # updated their prompt_in2 definitions. Remove
2278 eventually.
2282 eventually.
2279 (multiple_replace): added credit to original ASPN recipe.
2283 (multiple_replace): added credit to original ASPN recipe.
2280
2284
2281 2004-06-15 Fernando Perez <fperez@colorado.edu>
2285 2004-06-15 Fernando Perez <fperez@colorado.edu>
2282
2286
2283 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2287 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2284 list of auto-defined aliases.
2288 list of auto-defined aliases.
2285
2289
2286 2004-06-13 Fernando Perez <fperez@colorado.edu>
2290 2004-06-13 Fernando Perez <fperez@colorado.edu>
2287
2291
2288 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2292 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2289 install was really requested (so setup.py can be used for other
2293 install was really requested (so setup.py can be used for other
2290 things under Windows).
2294 things under Windows).
2291
2295
2292 2004-06-10 Fernando Perez <fperez@colorado.edu>
2296 2004-06-10 Fernando Perez <fperez@colorado.edu>
2293
2297
2294 * IPython/Logger.py (Logger.create_log): Manually remove any old
2298 * IPython/Logger.py (Logger.create_log): Manually remove any old
2295 backup, since os.remove may fail under Windows. Fixes bug
2299 backup, since os.remove may fail under Windows. Fixes bug
2296 reported by Thorsten.
2300 reported by Thorsten.
2297
2301
2298 2004-06-09 Fernando Perez <fperez@colorado.edu>
2302 2004-06-09 Fernando Perez <fperez@colorado.edu>
2299
2303
2300 * examples/example-embed.py: fixed all references to %n (replaced
2304 * examples/example-embed.py: fixed all references to %n (replaced
2301 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2305 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2302 for all examples and the manual as well.
2306 for all examples and the manual as well.
2303
2307
2304 2004-06-08 Fernando Perez <fperez@colorado.edu>
2308 2004-06-08 Fernando Perez <fperez@colorado.edu>
2305
2309
2306 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2310 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2307 alignment and color management. All 3 prompt subsystems now
2311 alignment and color management. All 3 prompt subsystems now
2308 inherit from BasePrompt.
2312 inherit from BasePrompt.
2309
2313
2310 * tools/release: updates for windows installer build and tag rpms
2314 * tools/release: updates for windows installer build and tag rpms
2311 with python version (since paths are fixed).
2315 with python version (since paths are fixed).
2312
2316
2313 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2317 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2314 which will become eventually obsolete. Also fixed the default
2318 which will become eventually obsolete. Also fixed the default
2315 prompt_in2 to use \D, so at least new users start with the correct
2319 prompt_in2 to use \D, so at least new users start with the correct
2316 defaults.
2320 defaults.
2317 WARNING: Users with existing ipythonrc files will need to apply
2321 WARNING: Users with existing ipythonrc files will need to apply
2318 this fix manually!
2322 this fix manually!
2319
2323
2320 * setup.py: make windows installer (.exe). This is finally the
2324 * setup.py: make windows installer (.exe). This is finally the
2321 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2325 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2322 which I hadn't included because it required Python 2.3 (or recent
2326 which I hadn't included because it required Python 2.3 (or recent
2323 distutils).
2327 distutils).
2324
2328
2325 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2329 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2326 usage of new '\D' escape.
2330 usage of new '\D' escape.
2327
2331
2328 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2332 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2329 lacks os.getuid())
2333 lacks os.getuid())
2330 (CachedOutput.set_colors): Added the ability to turn coloring
2334 (CachedOutput.set_colors): Added the ability to turn coloring
2331 on/off with @colors even for manually defined prompt colors. It
2335 on/off with @colors even for manually defined prompt colors. It
2332 uses a nasty global, but it works safely and via the generic color
2336 uses a nasty global, but it works safely and via the generic color
2333 handling mechanism.
2337 handling mechanism.
2334 (Prompt2.__init__): Introduced new escape '\D' for continuation
2338 (Prompt2.__init__): Introduced new escape '\D' for continuation
2335 prompts. It represents the counter ('\#') as dots.
2339 prompts. It represents the counter ('\#') as dots.
2336 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2340 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2337 need to update their ipythonrc files and replace '%n' with '\D' in
2341 need to update their ipythonrc files and replace '%n' with '\D' in
2338 their prompt_in2 settings everywhere. Sorry, but there's
2342 their prompt_in2 settings everywhere. Sorry, but there's
2339 otherwise no clean way to get all prompts to properly align. The
2343 otherwise no clean way to get all prompts to properly align. The
2340 ipythonrc shipped with IPython has been updated.
2344 ipythonrc shipped with IPython has been updated.
2341
2345
2342 2004-06-07 Fernando Perez <fperez@colorado.edu>
2346 2004-06-07 Fernando Perez <fperez@colorado.edu>
2343
2347
2344 * setup.py (isfile): Pass local_icons option to latex2html, so the
2348 * setup.py (isfile): Pass local_icons option to latex2html, so the
2345 resulting HTML file is self-contained. Thanks to
2349 resulting HTML file is self-contained. Thanks to
2346 dryice-AT-liu.com.cn for the tip.
2350 dryice-AT-liu.com.cn for the tip.
2347
2351
2348 * pysh.py: I created a new profile 'shell', which implements a
2352 * pysh.py: I created a new profile 'shell', which implements a
2349 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2353 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2350 system shell, nor will it become one anytime soon. It's mainly
2354 system shell, nor will it become one anytime soon. It's mainly
2351 meant to illustrate the use of the new flexible bash-like prompts.
2355 meant to illustrate the use of the new flexible bash-like prompts.
2352 I guess it could be used by hardy souls for true shell management,
2356 I guess it could be used by hardy souls for true shell management,
2353 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2357 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2354 profile. This uses the InterpreterExec extension provided by
2358 profile. This uses the InterpreterExec extension provided by
2355 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2359 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2356
2360
2357 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2361 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2358 auto-align itself with the length of the previous input prompt
2362 auto-align itself with the length of the previous input prompt
2359 (taking into account the invisible color escapes).
2363 (taking into account the invisible color escapes).
2360 (CachedOutput.__init__): Large restructuring of this class. Now
2364 (CachedOutput.__init__): Large restructuring of this class. Now
2361 all three prompts (primary1, primary2, output) are proper objects,
2365 all three prompts (primary1, primary2, output) are proper objects,
2362 managed by the 'parent' CachedOutput class. The code is still a
2366 managed by the 'parent' CachedOutput class. The code is still a
2363 bit hackish (all prompts share state via a pointer to the cache),
2367 bit hackish (all prompts share state via a pointer to the cache),
2364 but it's overall far cleaner than before.
2368 but it's overall far cleaner than before.
2365
2369
2366 * IPython/genutils.py (getoutputerror): modified to add verbose,
2370 * IPython/genutils.py (getoutputerror): modified to add verbose,
2367 debug and header options. This makes the interface of all getout*
2371 debug and header options. This makes the interface of all getout*
2368 functions uniform.
2372 functions uniform.
2369 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2373 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2370
2374
2371 * IPython/Magic.py (Magic.default_option): added a function to
2375 * IPython/Magic.py (Magic.default_option): added a function to
2372 allow registering default options for any magic command. This
2376 allow registering default options for any magic command. This
2373 makes it easy to have profiles which customize the magics globally
2377 makes it easy to have profiles which customize the magics globally
2374 for a certain use. The values set through this function are
2378 for a certain use. The values set through this function are
2375 picked up by the parse_options() method, which all magics should
2379 picked up by the parse_options() method, which all magics should
2376 use to parse their options.
2380 use to parse their options.
2377
2381
2378 * IPython/genutils.py (warn): modified the warnings framework to
2382 * IPython/genutils.py (warn): modified the warnings framework to
2379 use the Term I/O class. I'm trying to slowly unify all of
2383 use the Term I/O class. I'm trying to slowly unify all of
2380 IPython's I/O operations to pass through Term.
2384 IPython's I/O operations to pass through Term.
2381
2385
2382 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2386 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2383 the secondary prompt to correctly match the length of the primary
2387 the secondary prompt to correctly match the length of the primary
2384 one for any prompt. Now multi-line code will properly line up
2388 one for any prompt. Now multi-line code will properly line up
2385 even for path dependent prompts, such as the new ones available
2389 even for path dependent prompts, such as the new ones available
2386 via the prompt_specials.
2390 via the prompt_specials.
2387
2391
2388 2004-06-06 Fernando Perez <fperez@colorado.edu>
2392 2004-06-06 Fernando Perez <fperez@colorado.edu>
2389
2393
2390 * IPython/Prompts.py (prompt_specials): Added the ability to have
2394 * IPython/Prompts.py (prompt_specials): Added the ability to have
2391 bash-like special sequences in the prompts, which get
2395 bash-like special sequences in the prompts, which get
2392 automatically expanded. Things like hostname, current working
2396 automatically expanded. Things like hostname, current working
2393 directory and username are implemented already, but it's easy to
2397 directory and username are implemented already, but it's easy to
2394 add more in the future. Thanks to a patch by W.J. van der Laan
2398 add more in the future. Thanks to a patch by W.J. van der Laan
2395 <gnufnork-AT-hetdigitalegat.nl>
2399 <gnufnork-AT-hetdigitalegat.nl>
2396 (prompt_specials): Added color support for prompt strings, so
2400 (prompt_specials): Added color support for prompt strings, so
2397 users can define arbitrary color setups for their prompts.
2401 users can define arbitrary color setups for their prompts.
2398
2402
2399 2004-06-05 Fernando Perez <fperez@colorado.edu>
2403 2004-06-05 Fernando Perez <fperez@colorado.edu>
2400
2404
2401 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2405 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2402 code to load Gary Bishop's readline and configure it
2406 code to load Gary Bishop's readline and configure it
2403 automatically. Thanks to Gary for help on this.
2407 automatically. Thanks to Gary for help on this.
2404
2408
2405 2004-06-01 Fernando Perez <fperez@colorado.edu>
2409 2004-06-01 Fernando Perez <fperez@colorado.edu>
2406
2410
2407 * IPython/Logger.py (Logger.create_log): fix bug for logging
2411 * IPython/Logger.py (Logger.create_log): fix bug for logging
2408 with no filename (previous fix was incomplete).
2412 with no filename (previous fix was incomplete).
2409
2413
2410 2004-05-25 Fernando Perez <fperez@colorado.edu>
2414 2004-05-25 Fernando Perez <fperez@colorado.edu>
2411
2415
2412 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2416 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2413 parens would get passed to the shell.
2417 parens would get passed to the shell.
2414
2418
2415 2004-05-20 Fernando Perez <fperez@colorado.edu>
2419 2004-05-20 Fernando Perez <fperez@colorado.edu>
2416
2420
2417 * IPython/Magic.py (Magic.magic_prun): changed default profile
2421 * IPython/Magic.py (Magic.magic_prun): changed default profile
2418 sort order to 'time' (the more common profiling need).
2422 sort order to 'time' (the more common profiling need).
2419
2423
2420 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2424 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2421 so that source code shown is guaranteed in sync with the file on
2425 so that source code shown is guaranteed in sync with the file on
2422 disk (also changed in psource). Similar fix to the one for
2426 disk (also changed in psource). Similar fix to the one for
2423 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2427 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2424 <yann.ledu-AT-noos.fr>.
2428 <yann.ledu-AT-noos.fr>.
2425
2429
2426 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2430 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2427 with a single option would not be correctly parsed. Closes
2431 with a single option would not be correctly parsed. Closes
2428 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2432 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2429 introduced in 0.6.0 (on 2004-05-06).
2433 introduced in 0.6.0 (on 2004-05-06).
2430
2434
2431 2004-05-13 *** Released version 0.6.0
2435 2004-05-13 *** Released version 0.6.0
2432
2436
2433 2004-05-13 Fernando Perez <fperez@colorado.edu>
2437 2004-05-13 Fernando Perez <fperez@colorado.edu>
2434
2438
2435 * debian/: Added debian/ directory to CVS, so that debian support
2439 * debian/: Added debian/ directory to CVS, so that debian support
2436 is publicly accessible. The debian package is maintained by Jack
2440 is publicly accessible. The debian package is maintained by Jack
2437 Moffit <jack-AT-xiph.org>.
2441 Moffit <jack-AT-xiph.org>.
2438
2442
2439 * Documentation: included the notes about an ipython-based system
2443 * Documentation: included the notes about an ipython-based system
2440 shell (the hypothetical 'pysh') into the new_design.pdf document,
2444 shell (the hypothetical 'pysh') into the new_design.pdf document,
2441 so that these ideas get distributed to users along with the
2445 so that these ideas get distributed to users along with the
2442 official documentation.
2446 official documentation.
2443
2447
2444 2004-05-10 Fernando Perez <fperez@colorado.edu>
2448 2004-05-10 Fernando Perez <fperez@colorado.edu>
2445
2449
2446 * IPython/Logger.py (Logger.create_log): fix recently introduced
2450 * IPython/Logger.py (Logger.create_log): fix recently introduced
2447 bug (misindented line) where logstart would fail when not given an
2451 bug (misindented line) where logstart would fail when not given an
2448 explicit filename.
2452 explicit filename.
2449
2453
2450 2004-05-09 Fernando Perez <fperez@colorado.edu>
2454 2004-05-09 Fernando Perez <fperez@colorado.edu>
2451
2455
2452 * IPython/Magic.py (Magic.parse_options): skip system call when
2456 * IPython/Magic.py (Magic.parse_options): skip system call when
2453 there are no options to look for. Faster, cleaner for the common
2457 there are no options to look for. Faster, cleaner for the common
2454 case.
2458 case.
2455
2459
2456 * Documentation: many updates to the manual: describing Windows
2460 * Documentation: many updates to the manual: describing Windows
2457 support better, Gnuplot updates, credits, misc small stuff. Also
2461 support better, Gnuplot updates, credits, misc small stuff. Also
2458 updated the new_design doc a bit.
2462 updated the new_design doc a bit.
2459
2463
2460 2004-05-06 *** Released version 0.6.0.rc1
2464 2004-05-06 *** Released version 0.6.0.rc1
2461
2465
2462 2004-05-06 Fernando Perez <fperez@colorado.edu>
2466 2004-05-06 Fernando Perez <fperez@colorado.edu>
2463
2467
2464 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2468 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2465 operations to use the vastly more efficient list/''.join() method.
2469 operations to use the vastly more efficient list/''.join() method.
2466 (FormattedTB.text): Fix
2470 (FormattedTB.text): Fix
2467 http://www.scipy.net/roundup/ipython/issue12 - exception source
2471 http://www.scipy.net/roundup/ipython/issue12 - exception source
2468 extract not updated after reload. Thanks to Mike Salib
2472 extract not updated after reload. Thanks to Mike Salib
2469 <msalib-AT-mit.edu> for pinning the source of the problem.
2473 <msalib-AT-mit.edu> for pinning the source of the problem.
2470 Fortunately, the solution works inside ipython and doesn't require
2474 Fortunately, the solution works inside ipython and doesn't require
2471 any changes to python proper.
2475 any changes to python proper.
2472
2476
2473 * IPython/Magic.py (Magic.parse_options): Improved to process the
2477 * IPython/Magic.py (Magic.parse_options): Improved to process the
2474 argument list as a true shell would (by actually using the
2478 argument list as a true shell would (by actually using the
2475 underlying system shell). This way, all @magics automatically get
2479 underlying system shell). This way, all @magics automatically get
2476 shell expansion for variables. Thanks to a comment by Alex
2480 shell expansion for variables. Thanks to a comment by Alex
2477 Schmolck.
2481 Schmolck.
2478
2482
2479 2004-04-04 Fernando Perez <fperez@colorado.edu>
2483 2004-04-04 Fernando Perez <fperez@colorado.edu>
2480
2484
2481 * IPython/iplib.py (InteractiveShell.interact): Added a special
2485 * IPython/iplib.py (InteractiveShell.interact): Added a special
2482 trap for a debugger quit exception, which is basically impossible
2486 trap for a debugger quit exception, which is basically impossible
2483 to handle by normal mechanisms, given what pdb does to the stack.
2487 to handle by normal mechanisms, given what pdb does to the stack.
2484 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2488 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2485
2489
2486 2004-04-03 Fernando Perez <fperez@colorado.edu>
2490 2004-04-03 Fernando Perez <fperez@colorado.edu>
2487
2491
2488 * IPython/genutils.py (Term): Standardized the names of the Term
2492 * IPython/genutils.py (Term): Standardized the names of the Term
2489 class streams to cin/cout/cerr, following C++ naming conventions
2493 class streams to cin/cout/cerr, following C++ naming conventions
2490 (I can't use in/out/err because 'in' is not a valid attribute
2494 (I can't use in/out/err because 'in' is not a valid attribute
2491 name).
2495 name).
2492
2496
2493 * IPython/iplib.py (InteractiveShell.interact): don't increment
2497 * IPython/iplib.py (InteractiveShell.interact): don't increment
2494 the prompt if there's no user input. By Daniel 'Dang' Griffith
2498 the prompt if there's no user input. By Daniel 'Dang' Griffith
2495 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2499 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2496 Francois Pinard.
2500 Francois Pinard.
2497
2501
2498 2004-04-02 Fernando Perez <fperez@colorado.edu>
2502 2004-04-02 Fernando Perez <fperez@colorado.edu>
2499
2503
2500 * IPython/genutils.py (Stream.__init__): Modified to survive at
2504 * IPython/genutils.py (Stream.__init__): Modified to survive at
2501 least importing in contexts where stdin/out/err aren't true file
2505 least importing in contexts where stdin/out/err aren't true file
2502 objects, such as PyCrust (they lack fileno() and mode). However,
2506 objects, such as PyCrust (they lack fileno() and mode). However,
2503 the recovery facilities which rely on these things existing will
2507 the recovery facilities which rely on these things existing will
2504 not work.
2508 not work.
2505
2509
2506 2004-04-01 Fernando Perez <fperez@colorado.edu>
2510 2004-04-01 Fernando Perez <fperez@colorado.edu>
2507
2511
2508 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2512 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2509 use the new getoutputerror() function, so it properly
2513 use the new getoutputerror() function, so it properly
2510 distinguishes stdout/err.
2514 distinguishes stdout/err.
2511
2515
2512 * IPython/genutils.py (getoutputerror): added a function to
2516 * IPython/genutils.py (getoutputerror): added a function to
2513 capture separately the standard output and error of a command.
2517 capture separately the standard output and error of a command.
2514 After a comment from dang on the mailing lists. This code is
2518 After a comment from dang on the mailing lists. This code is
2515 basically a modified version of commands.getstatusoutput(), from
2519 basically a modified version of commands.getstatusoutput(), from
2516 the standard library.
2520 the standard library.
2517
2521
2518 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2522 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2519 '!!' as a special syntax (shorthand) to access @sx.
2523 '!!' as a special syntax (shorthand) to access @sx.
2520
2524
2521 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2525 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2522 command and return its output as a list split on '\n'.
2526 command and return its output as a list split on '\n'.
2523
2527
2524 2004-03-31 Fernando Perez <fperez@colorado.edu>
2528 2004-03-31 Fernando Perez <fperez@colorado.edu>
2525
2529
2526 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2530 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2527 method to dictionaries used as FakeModule instances if they lack
2531 method to dictionaries used as FakeModule instances if they lack
2528 it. At least pydoc in python2.3 breaks for runtime-defined
2532 it. At least pydoc in python2.3 breaks for runtime-defined
2529 functions without this hack. At some point I need to _really_
2533 functions without this hack. At some point I need to _really_
2530 understand what FakeModule is doing, because it's a gross hack.
2534 understand what FakeModule is doing, because it's a gross hack.
2531 But it solves Arnd's problem for now...
2535 But it solves Arnd's problem for now...
2532
2536
2533 2004-02-27 Fernando Perez <fperez@colorado.edu>
2537 2004-02-27 Fernando Perez <fperez@colorado.edu>
2534
2538
2535 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2539 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2536 mode would behave erratically. Also increased the number of
2540 mode would behave erratically. Also increased the number of
2537 possible logs in rotate mod to 999. Thanks to Rod Holland
2541 possible logs in rotate mod to 999. Thanks to Rod Holland
2538 <rhh@StructureLABS.com> for the report and fixes.
2542 <rhh@StructureLABS.com> for the report and fixes.
2539
2543
2540 2004-02-26 Fernando Perez <fperez@colorado.edu>
2544 2004-02-26 Fernando Perez <fperez@colorado.edu>
2541
2545
2542 * IPython/genutils.py (page): Check that the curses module really
2546 * IPython/genutils.py (page): Check that the curses module really
2543 has the initscr attribute before trying to use it. For some
2547 has the initscr attribute before trying to use it. For some
2544 reason, the Solaris curses module is missing this. I think this
2548 reason, the Solaris curses module is missing this. I think this
2545 should be considered a Solaris python bug, but I'm not sure.
2549 should be considered a Solaris python bug, but I'm not sure.
2546
2550
2547 2004-01-17 Fernando Perez <fperez@colorado.edu>
2551 2004-01-17 Fernando Perez <fperez@colorado.edu>
2548
2552
2549 * IPython/genutils.py (Stream.__init__): Changes to try to make
2553 * IPython/genutils.py (Stream.__init__): Changes to try to make
2550 ipython robust against stdin/out/err being closed by the user.
2554 ipython robust against stdin/out/err being closed by the user.
2551 This is 'user error' (and blocks a normal python session, at least
2555 This is 'user error' (and blocks a normal python session, at least
2552 the stdout case). However, Ipython should be able to survive such
2556 the stdout case). However, Ipython should be able to survive such
2553 instances of abuse as gracefully as possible. To simplify the
2557 instances of abuse as gracefully as possible. To simplify the
2554 coding and maintain compatibility with Gary Bishop's Term
2558 coding and maintain compatibility with Gary Bishop's Term
2555 contributions, I've made use of classmethods for this. I think
2559 contributions, I've made use of classmethods for this. I think
2556 this introduces a dependency on python 2.2.
2560 this introduces a dependency on python 2.2.
2557
2561
2558 2004-01-13 Fernando Perez <fperez@colorado.edu>
2562 2004-01-13 Fernando Perez <fperez@colorado.edu>
2559
2563
2560 * IPython/numutils.py (exp_safe): simplified the code a bit and
2564 * IPython/numutils.py (exp_safe): simplified the code a bit and
2561 removed the need for importing the kinds module altogether.
2565 removed the need for importing the kinds module altogether.
2562
2566
2563 2004-01-06 Fernando Perez <fperez@colorado.edu>
2567 2004-01-06 Fernando Perez <fperez@colorado.edu>
2564
2568
2565 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2569 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2566 a magic function instead, after some community feedback. No
2570 a magic function instead, after some community feedback. No
2567 special syntax will exist for it, but its name is deliberately
2571 special syntax will exist for it, but its name is deliberately
2568 very short.
2572 very short.
2569
2573
2570 2003-12-20 Fernando Perez <fperez@colorado.edu>
2574 2003-12-20 Fernando Perez <fperez@colorado.edu>
2571
2575
2572 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2576 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2573 new functionality, to automagically assign the result of a shell
2577 new functionality, to automagically assign the result of a shell
2574 command to a variable. I'll solicit some community feedback on
2578 command to a variable. I'll solicit some community feedback on
2575 this before making it permanent.
2579 this before making it permanent.
2576
2580
2577 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2581 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2578 requested about callables for which inspect couldn't obtain a
2582 requested about callables for which inspect couldn't obtain a
2579 proper argspec. Thanks to a crash report sent by Etienne
2583 proper argspec. Thanks to a crash report sent by Etienne
2580 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2584 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2581
2585
2582 2003-12-09 Fernando Perez <fperez@colorado.edu>
2586 2003-12-09 Fernando Perez <fperez@colorado.edu>
2583
2587
2584 * IPython/genutils.py (page): patch for the pager to work across
2588 * IPython/genutils.py (page): patch for the pager to work across
2585 various versions of Windows. By Gary Bishop.
2589 various versions of Windows. By Gary Bishop.
2586
2590
2587 2003-12-04 Fernando Perez <fperez@colorado.edu>
2591 2003-12-04 Fernando Perez <fperez@colorado.edu>
2588
2592
2589 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2593 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2590 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2594 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2591 While I tested this and it looks ok, there may still be corner
2595 While I tested this and it looks ok, there may still be corner
2592 cases I've missed.
2596 cases I've missed.
2593
2597
2594 2003-12-01 Fernando Perez <fperez@colorado.edu>
2598 2003-12-01 Fernando Perez <fperez@colorado.edu>
2595
2599
2596 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2600 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2597 where a line like 'p,q=1,2' would fail because the automagic
2601 where a line like 'p,q=1,2' would fail because the automagic
2598 system would be triggered for @p.
2602 system would be triggered for @p.
2599
2603
2600 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2604 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2601 cleanups, code unmodified.
2605 cleanups, code unmodified.
2602
2606
2603 * IPython/genutils.py (Term): added a class for IPython to handle
2607 * IPython/genutils.py (Term): added a class for IPython to handle
2604 output. In most cases it will just be a proxy for stdout/err, but
2608 output. In most cases it will just be a proxy for stdout/err, but
2605 having this allows modifications to be made for some platforms,
2609 having this allows modifications to be made for some platforms,
2606 such as handling color escapes under Windows. All of this code
2610 such as handling color escapes under Windows. All of this code
2607 was contributed by Gary Bishop, with minor modifications by me.
2611 was contributed by Gary Bishop, with minor modifications by me.
2608 The actual changes affect many files.
2612 The actual changes affect many files.
2609
2613
2610 2003-11-30 Fernando Perez <fperez@colorado.edu>
2614 2003-11-30 Fernando Perez <fperez@colorado.edu>
2611
2615
2612 * IPython/iplib.py (file_matches): new completion code, courtesy
2616 * IPython/iplib.py (file_matches): new completion code, courtesy
2613 of Jeff Collins. This enables filename completion again under
2617 of Jeff Collins. This enables filename completion again under
2614 python 2.3, which disabled it at the C level.
2618 python 2.3, which disabled it at the C level.
2615
2619
2616 2003-11-11 Fernando Perez <fperez@colorado.edu>
2620 2003-11-11 Fernando Perez <fperez@colorado.edu>
2617
2621
2618 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2622 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2619 for Numeric.array(map(...)), but often convenient.
2623 for Numeric.array(map(...)), but often convenient.
2620
2624
2621 2003-11-05 Fernando Perez <fperez@colorado.edu>
2625 2003-11-05 Fernando Perez <fperez@colorado.edu>
2622
2626
2623 * IPython/numutils.py (frange): Changed a call from int() to
2627 * IPython/numutils.py (frange): Changed a call from int() to
2624 int(round()) to prevent a problem reported with arange() in the
2628 int(round()) to prevent a problem reported with arange() in the
2625 numpy list.
2629 numpy list.
2626
2630
2627 2003-10-06 Fernando Perez <fperez@colorado.edu>
2631 2003-10-06 Fernando Perez <fperez@colorado.edu>
2628
2632
2629 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2633 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2630 prevent crashes if sys lacks an argv attribute (it happens with
2634 prevent crashes if sys lacks an argv attribute (it happens with
2631 embedded interpreters which build a bare-bones sys module).
2635 embedded interpreters which build a bare-bones sys module).
2632 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2636 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2633
2637
2634 2003-09-24 Fernando Perez <fperez@colorado.edu>
2638 2003-09-24 Fernando Perez <fperez@colorado.edu>
2635
2639
2636 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2640 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2637 to protect against poorly written user objects where __getattr__
2641 to protect against poorly written user objects where __getattr__
2638 raises exceptions other than AttributeError. Thanks to a bug
2642 raises exceptions other than AttributeError. Thanks to a bug
2639 report by Oliver Sander <osander-AT-gmx.de>.
2643 report by Oliver Sander <osander-AT-gmx.de>.
2640
2644
2641 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2645 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2642 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2646 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2643
2647
2644 2003-09-09 Fernando Perez <fperez@colorado.edu>
2648 2003-09-09 Fernando Perez <fperez@colorado.edu>
2645
2649
2646 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2650 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2647 unpacking a list whith a callable as first element would
2651 unpacking a list whith a callable as first element would
2648 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2652 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2649 Collins.
2653 Collins.
2650
2654
2651 2003-08-25 *** Released version 0.5.0
2655 2003-08-25 *** Released version 0.5.0
2652
2656
2653 2003-08-22 Fernando Perez <fperez@colorado.edu>
2657 2003-08-22 Fernando Perez <fperez@colorado.edu>
2654
2658
2655 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2659 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2656 improperly defined user exceptions. Thanks to feedback from Mark
2660 improperly defined user exceptions. Thanks to feedback from Mark
2657 Russell <mrussell-AT-verio.net>.
2661 Russell <mrussell-AT-verio.net>.
2658
2662
2659 2003-08-20 Fernando Perez <fperez@colorado.edu>
2663 2003-08-20 Fernando Perez <fperez@colorado.edu>
2660
2664
2661 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2665 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2662 printing so that it would print multi-line string forms starting
2666 printing so that it would print multi-line string forms starting
2663 with a new line. This way the formatting is better respected for
2667 with a new line. This way the formatting is better respected for
2664 objects which work hard to make nice string forms.
2668 objects which work hard to make nice string forms.
2665
2669
2666 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2670 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2667 autocall would overtake data access for objects with both
2671 autocall would overtake data access for objects with both
2668 __getitem__ and __call__.
2672 __getitem__ and __call__.
2669
2673
2670 2003-08-19 *** Released version 0.5.0-rc1
2674 2003-08-19 *** Released version 0.5.0-rc1
2671
2675
2672 2003-08-19 Fernando Perez <fperez@colorado.edu>
2676 2003-08-19 Fernando Perez <fperez@colorado.edu>
2673
2677
2674 * IPython/deep_reload.py (load_tail): single tiny change here
2678 * IPython/deep_reload.py (load_tail): single tiny change here
2675 seems to fix the long-standing bug of dreload() failing to work
2679 seems to fix the long-standing bug of dreload() failing to work
2676 for dotted names. But this module is pretty tricky, so I may have
2680 for dotted names. But this module is pretty tricky, so I may have
2677 missed some subtlety. Needs more testing!.
2681 missed some subtlety. Needs more testing!.
2678
2682
2679 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2683 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2680 exceptions which have badly implemented __str__ methods.
2684 exceptions which have badly implemented __str__ methods.
2681 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2685 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2682 which I've been getting reports about from Python 2.3 users. I
2686 which I've been getting reports about from Python 2.3 users. I
2683 wish I had a simple test case to reproduce the problem, so I could
2687 wish I had a simple test case to reproduce the problem, so I could
2684 either write a cleaner workaround or file a bug report if
2688 either write a cleaner workaround or file a bug report if
2685 necessary.
2689 necessary.
2686
2690
2687 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2691 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2688 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2692 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2689 a bug report by Tjabo Kloppenburg.
2693 a bug report by Tjabo Kloppenburg.
2690
2694
2691 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2695 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2692 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2696 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2693 seems rather unstable. Thanks to a bug report by Tjabo
2697 seems rather unstable. Thanks to a bug report by Tjabo
2694 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2698 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2695
2699
2696 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2700 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2697 this out soon because of the critical fixes in the inner loop for
2701 this out soon because of the critical fixes in the inner loop for
2698 generators.
2702 generators.
2699
2703
2700 * IPython/Magic.py (Magic.getargspec): removed. This (and
2704 * IPython/Magic.py (Magic.getargspec): removed. This (and
2701 _get_def) have been obsoleted by OInspect for a long time, I
2705 _get_def) have been obsoleted by OInspect for a long time, I
2702 hadn't noticed that they were dead code.
2706 hadn't noticed that they were dead code.
2703 (Magic._ofind): restored _ofind functionality for a few literals
2707 (Magic._ofind): restored _ofind functionality for a few literals
2704 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2708 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2705 for things like "hello".capitalize?, since that would require a
2709 for things like "hello".capitalize?, since that would require a
2706 potentially dangerous eval() again.
2710 potentially dangerous eval() again.
2707
2711
2708 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2712 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2709 logic a bit more to clean up the escapes handling and minimize the
2713 logic a bit more to clean up the escapes handling and minimize the
2710 use of _ofind to only necessary cases. The interactive 'feel' of
2714 use of _ofind to only necessary cases. The interactive 'feel' of
2711 IPython should have improved quite a bit with the changes in
2715 IPython should have improved quite a bit with the changes in
2712 _prefilter and _ofind (besides being far safer than before).
2716 _prefilter and _ofind (besides being far safer than before).
2713
2717
2714 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2718 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2715 obscure, never reported). Edit would fail to find the object to
2719 obscure, never reported). Edit would fail to find the object to
2716 edit under some circumstances.
2720 edit under some circumstances.
2717 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2721 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2718 which were causing double-calling of generators. Those eval calls
2722 which were causing double-calling of generators. Those eval calls
2719 were _very_ dangerous, since code with side effects could be
2723 were _very_ dangerous, since code with side effects could be
2720 triggered. As they say, 'eval is evil'... These were the
2724 triggered. As they say, 'eval is evil'... These were the
2721 nastiest evals in IPython. Besides, _ofind is now far simpler,
2725 nastiest evals in IPython. Besides, _ofind is now far simpler,
2722 and it should also be quite a bit faster. Its use of inspect is
2726 and it should also be quite a bit faster. Its use of inspect is
2723 also safer, so perhaps some of the inspect-related crashes I've
2727 also safer, so perhaps some of the inspect-related crashes I've
2724 seen lately with Python 2.3 might be taken care of. That will
2728 seen lately with Python 2.3 might be taken care of. That will
2725 need more testing.
2729 need more testing.
2726
2730
2727 2003-08-17 Fernando Perez <fperez@colorado.edu>
2731 2003-08-17 Fernando Perez <fperez@colorado.edu>
2728
2732
2729 * IPython/iplib.py (InteractiveShell._prefilter): significant
2733 * IPython/iplib.py (InteractiveShell._prefilter): significant
2730 simplifications to the logic for handling user escapes. Faster
2734 simplifications to the logic for handling user escapes. Faster
2731 and simpler code.
2735 and simpler code.
2732
2736
2733 2003-08-14 Fernando Perez <fperez@colorado.edu>
2737 2003-08-14 Fernando Perez <fperez@colorado.edu>
2734
2738
2735 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2739 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2736 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2740 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2737 but it should be quite a bit faster. And the recursive version
2741 but it should be quite a bit faster. And the recursive version
2738 generated O(log N) intermediate storage for all rank>1 arrays,
2742 generated O(log N) intermediate storage for all rank>1 arrays,
2739 even if they were contiguous.
2743 even if they were contiguous.
2740 (l1norm): Added this function.
2744 (l1norm): Added this function.
2741 (norm): Added this function for arbitrary norms (including
2745 (norm): Added this function for arbitrary norms (including
2742 l-infinity). l1 and l2 are still special cases for convenience
2746 l-infinity). l1 and l2 are still special cases for convenience
2743 and speed.
2747 and speed.
2744
2748
2745 2003-08-03 Fernando Perez <fperez@colorado.edu>
2749 2003-08-03 Fernando Perez <fperez@colorado.edu>
2746
2750
2747 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2751 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2748 exceptions, which now raise PendingDeprecationWarnings in Python
2752 exceptions, which now raise PendingDeprecationWarnings in Python
2749 2.3. There were some in Magic and some in Gnuplot2.
2753 2.3. There were some in Magic and some in Gnuplot2.
2750
2754
2751 2003-06-30 Fernando Perez <fperez@colorado.edu>
2755 2003-06-30 Fernando Perez <fperez@colorado.edu>
2752
2756
2753 * IPython/genutils.py (page): modified to call curses only for
2757 * IPython/genutils.py (page): modified to call curses only for
2754 terminals where TERM=='xterm'. After problems under many other
2758 terminals where TERM=='xterm'. After problems under many other
2755 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2759 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2756
2760
2757 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2761 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2758 would be triggered when readline was absent. This was just an old
2762 would be triggered when readline was absent. This was just an old
2759 debugging statement I'd forgotten to take out.
2763 debugging statement I'd forgotten to take out.
2760
2764
2761 2003-06-20 Fernando Perez <fperez@colorado.edu>
2765 2003-06-20 Fernando Perez <fperez@colorado.edu>
2762
2766
2763 * IPython/genutils.py (clock): modified to return only user time
2767 * IPython/genutils.py (clock): modified to return only user time
2764 (not counting system time), after a discussion on scipy. While
2768 (not counting system time), after a discussion on scipy. While
2765 system time may be a useful quantity occasionally, it may much
2769 system time may be a useful quantity occasionally, it may much
2766 more easily be skewed by occasional swapping or other similar
2770 more easily be skewed by occasional swapping or other similar
2767 activity.
2771 activity.
2768
2772
2769 2003-06-05 Fernando Perez <fperez@colorado.edu>
2773 2003-06-05 Fernando Perez <fperez@colorado.edu>
2770
2774
2771 * IPython/numutils.py (identity): new function, for building
2775 * IPython/numutils.py (identity): new function, for building
2772 arbitrary rank Kronecker deltas (mostly backwards compatible with
2776 arbitrary rank Kronecker deltas (mostly backwards compatible with
2773 Numeric.identity)
2777 Numeric.identity)
2774
2778
2775 2003-06-03 Fernando Perez <fperez@colorado.edu>
2779 2003-06-03 Fernando Perez <fperez@colorado.edu>
2776
2780
2777 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2781 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2778 arguments passed to magics with spaces, to allow trailing '\' to
2782 arguments passed to magics with spaces, to allow trailing '\' to
2779 work normally (mainly for Windows users).
2783 work normally (mainly for Windows users).
2780
2784
2781 2003-05-29 Fernando Perez <fperez@colorado.edu>
2785 2003-05-29 Fernando Perez <fperez@colorado.edu>
2782
2786
2783 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2787 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2784 instead of pydoc.help. This fixes a bizarre behavior where
2788 instead of pydoc.help. This fixes a bizarre behavior where
2785 printing '%s' % locals() would trigger the help system. Now
2789 printing '%s' % locals() would trigger the help system. Now
2786 ipython behaves like normal python does.
2790 ipython behaves like normal python does.
2787
2791
2788 Note that if one does 'from pydoc import help', the bizarre
2792 Note that if one does 'from pydoc import help', the bizarre
2789 behavior returns, but this will also happen in normal python, so
2793 behavior returns, but this will also happen in normal python, so
2790 it's not an ipython bug anymore (it has to do with how pydoc.help
2794 it's not an ipython bug anymore (it has to do with how pydoc.help
2791 is implemented).
2795 is implemented).
2792
2796
2793 2003-05-22 Fernando Perez <fperez@colorado.edu>
2797 2003-05-22 Fernando Perez <fperez@colorado.edu>
2794
2798
2795 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2799 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2796 return [] instead of None when nothing matches, also match to end
2800 return [] instead of None when nothing matches, also match to end
2797 of line. Patch by Gary Bishop.
2801 of line. Patch by Gary Bishop.
2798
2802
2799 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2803 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2800 protection as before, for files passed on the command line. This
2804 protection as before, for files passed on the command line. This
2801 prevents the CrashHandler from kicking in if user files call into
2805 prevents the CrashHandler from kicking in if user files call into
2802 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2806 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2803 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2807 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2804
2808
2805 2003-05-20 *** Released version 0.4.0
2809 2003-05-20 *** Released version 0.4.0
2806
2810
2807 2003-05-20 Fernando Perez <fperez@colorado.edu>
2811 2003-05-20 Fernando Perez <fperez@colorado.edu>
2808
2812
2809 * setup.py: added support for manpages. It's a bit hackish b/c of
2813 * setup.py: added support for manpages. It's a bit hackish b/c of
2810 a bug in the way the bdist_rpm distutils target handles gzipped
2814 a bug in the way the bdist_rpm distutils target handles gzipped
2811 manpages, but it works. After a patch by Jack.
2815 manpages, but it works. After a patch by Jack.
2812
2816
2813 2003-05-19 Fernando Perez <fperez@colorado.edu>
2817 2003-05-19 Fernando Perez <fperez@colorado.edu>
2814
2818
2815 * IPython/numutils.py: added a mockup of the kinds module, since
2819 * IPython/numutils.py: added a mockup of the kinds module, since
2816 it was recently removed from Numeric. This way, numutils will
2820 it was recently removed from Numeric. This way, numutils will
2817 work for all users even if they are missing kinds.
2821 work for all users even if they are missing kinds.
2818
2822
2819 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2823 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2820 failure, which can occur with SWIG-wrapped extensions. After a
2824 failure, which can occur with SWIG-wrapped extensions. After a
2821 crash report from Prabhu.
2825 crash report from Prabhu.
2822
2826
2823 2003-05-16 Fernando Perez <fperez@colorado.edu>
2827 2003-05-16 Fernando Perez <fperez@colorado.edu>
2824
2828
2825 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2829 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2826 protect ipython from user code which may call directly
2830 protect ipython from user code which may call directly
2827 sys.excepthook (this looks like an ipython crash to the user, even
2831 sys.excepthook (this looks like an ipython crash to the user, even
2828 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2832 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2829 This is especially important to help users of WxWindows, but may
2833 This is especially important to help users of WxWindows, but may
2830 also be useful in other cases.
2834 also be useful in other cases.
2831
2835
2832 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2836 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2833 an optional tb_offset to be specified, and to preserve exception
2837 an optional tb_offset to be specified, and to preserve exception
2834 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2838 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2835
2839
2836 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2840 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2837
2841
2838 2003-05-15 Fernando Perez <fperez@colorado.edu>
2842 2003-05-15 Fernando Perez <fperez@colorado.edu>
2839
2843
2840 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2844 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2841 installing for a new user under Windows.
2845 installing for a new user under Windows.
2842
2846
2843 2003-05-12 Fernando Perez <fperez@colorado.edu>
2847 2003-05-12 Fernando Perez <fperez@colorado.edu>
2844
2848
2845 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2849 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2846 handler for Emacs comint-based lines. Currently it doesn't do
2850 handler for Emacs comint-based lines. Currently it doesn't do
2847 much (but importantly, it doesn't update the history cache). In
2851 much (but importantly, it doesn't update the history cache). In
2848 the future it may be expanded if Alex needs more functionality
2852 the future it may be expanded if Alex needs more functionality
2849 there.
2853 there.
2850
2854
2851 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2855 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2852 info to crash reports.
2856 info to crash reports.
2853
2857
2854 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2858 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2855 just like Python's -c. Also fixed crash with invalid -color
2859 just like Python's -c. Also fixed crash with invalid -color
2856 option value at startup. Thanks to Will French
2860 option value at startup. Thanks to Will French
2857 <wfrench-AT-bestweb.net> for the bug report.
2861 <wfrench-AT-bestweb.net> for the bug report.
2858
2862
2859 2003-05-09 Fernando Perez <fperez@colorado.edu>
2863 2003-05-09 Fernando Perez <fperez@colorado.edu>
2860
2864
2861 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2865 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2862 to EvalDict (it's a mapping, after all) and simplified its code
2866 to EvalDict (it's a mapping, after all) and simplified its code
2863 quite a bit, after a nice discussion on c.l.py where Gustavo
2867 quite a bit, after a nice discussion on c.l.py where Gustavo
2864 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2868 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2865
2869
2866 2003-04-30 Fernando Perez <fperez@colorado.edu>
2870 2003-04-30 Fernando Perez <fperez@colorado.edu>
2867
2871
2868 * IPython/genutils.py (timings_out): modified it to reduce its
2872 * IPython/genutils.py (timings_out): modified it to reduce its
2869 overhead in the common reps==1 case.
2873 overhead in the common reps==1 case.
2870
2874
2871 2003-04-29 Fernando Perez <fperez@colorado.edu>
2875 2003-04-29 Fernando Perez <fperez@colorado.edu>
2872
2876
2873 * IPython/genutils.py (timings_out): Modified to use the resource
2877 * IPython/genutils.py (timings_out): Modified to use the resource
2874 module, which avoids the wraparound problems of time.clock().
2878 module, which avoids the wraparound problems of time.clock().
2875
2879
2876 2003-04-17 *** Released version 0.2.15pre4
2880 2003-04-17 *** Released version 0.2.15pre4
2877
2881
2878 2003-04-17 Fernando Perez <fperez@colorado.edu>
2882 2003-04-17 Fernando Perez <fperez@colorado.edu>
2879
2883
2880 * setup.py (scriptfiles): Split windows-specific stuff over to a
2884 * setup.py (scriptfiles): Split windows-specific stuff over to a
2881 separate file, in an attempt to have a Windows GUI installer.
2885 separate file, in an attempt to have a Windows GUI installer.
2882 That didn't work, but part of the groundwork is done.
2886 That didn't work, but part of the groundwork is done.
2883
2887
2884 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2888 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2885 indent/unindent with 4 spaces. Particularly useful in combination
2889 indent/unindent with 4 spaces. Particularly useful in combination
2886 with the new auto-indent option.
2890 with the new auto-indent option.
2887
2891
2888 2003-04-16 Fernando Perez <fperez@colorado.edu>
2892 2003-04-16 Fernando Perez <fperez@colorado.edu>
2889
2893
2890 * IPython/Magic.py: various replacements of self.rc for
2894 * IPython/Magic.py: various replacements of self.rc for
2891 self.shell.rc. A lot more remains to be done to fully disentangle
2895 self.shell.rc. A lot more remains to be done to fully disentangle
2892 this class from the main Shell class.
2896 this class from the main Shell class.
2893
2897
2894 * IPython/GnuplotRuntime.py: added checks for mouse support so
2898 * IPython/GnuplotRuntime.py: added checks for mouse support so
2895 that we don't try to enable it if the current gnuplot doesn't
2899 that we don't try to enable it if the current gnuplot doesn't
2896 really support it. Also added checks so that we don't try to
2900 really support it. Also added checks so that we don't try to
2897 enable persist under Windows (where Gnuplot doesn't recognize the
2901 enable persist under Windows (where Gnuplot doesn't recognize the
2898 option).
2902 option).
2899
2903
2900 * IPython/iplib.py (InteractiveShell.interact): Added optional
2904 * IPython/iplib.py (InteractiveShell.interact): Added optional
2901 auto-indenting code, after a patch by King C. Shu
2905 auto-indenting code, after a patch by King C. Shu
2902 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2906 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2903 get along well with pasting indented code. If I ever figure out
2907 get along well with pasting indented code. If I ever figure out
2904 how to make that part go well, it will become on by default.
2908 how to make that part go well, it will become on by default.
2905
2909
2906 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2910 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2907 crash ipython if there was an unmatched '%' in the user's prompt
2911 crash ipython if there was an unmatched '%' in the user's prompt
2908 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2912 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2909
2913
2910 * IPython/iplib.py (InteractiveShell.interact): removed the
2914 * IPython/iplib.py (InteractiveShell.interact): removed the
2911 ability to ask the user whether he wants to crash or not at the
2915 ability to ask the user whether he wants to crash or not at the
2912 'last line' exception handler. Calling functions at that point
2916 'last line' exception handler. Calling functions at that point
2913 changes the stack, and the error reports would have incorrect
2917 changes the stack, and the error reports would have incorrect
2914 tracebacks.
2918 tracebacks.
2915
2919
2916 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2920 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2917 pass through a peger a pretty-printed form of any object. After a
2921 pass through a peger a pretty-printed form of any object. After a
2918 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2922 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2919
2923
2920 2003-04-14 Fernando Perez <fperez@colorado.edu>
2924 2003-04-14 Fernando Perez <fperez@colorado.edu>
2921
2925
2922 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2926 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2923 all files in ~ would be modified at first install (instead of
2927 all files in ~ would be modified at first install (instead of
2924 ~/.ipython). This could be potentially disastrous, as the
2928 ~/.ipython). This could be potentially disastrous, as the
2925 modification (make line-endings native) could damage binary files.
2929 modification (make line-endings native) could damage binary files.
2926
2930
2927 2003-04-10 Fernando Perez <fperez@colorado.edu>
2931 2003-04-10 Fernando Perez <fperez@colorado.edu>
2928
2932
2929 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2933 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2930 handle only lines which are invalid python. This now means that
2934 handle only lines which are invalid python. This now means that
2931 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2935 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2932 for the bug report.
2936 for the bug report.
2933
2937
2934 2003-04-01 Fernando Perez <fperez@colorado.edu>
2938 2003-04-01 Fernando Perez <fperez@colorado.edu>
2935
2939
2936 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2940 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2937 where failing to set sys.last_traceback would crash pdb.pm().
2941 where failing to set sys.last_traceback would crash pdb.pm().
2938 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2942 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2939 report.
2943 report.
2940
2944
2941 2003-03-25 Fernando Perez <fperez@colorado.edu>
2945 2003-03-25 Fernando Perez <fperez@colorado.edu>
2942
2946
2943 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2947 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2944 before printing it (it had a lot of spurious blank lines at the
2948 before printing it (it had a lot of spurious blank lines at the
2945 end).
2949 end).
2946
2950
2947 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2951 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2948 output would be sent 21 times! Obviously people don't use this
2952 output would be sent 21 times! Obviously people don't use this
2949 too often, or I would have heard about it.
2953 too often, or I would have heard about it.
2950
2954
2951 2003-03-24 Fernando Perez <fperez@colorado.edu>
2955 2003-03-24 Fernando Perez <fperez@colorado.edu>
2952
2956
2953 * setup.py (scriptfiles): renamed the data_files parameter from
2957 * setup.py (scriptfiles): renamed the data_files parameter from
2954 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2958 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2955 for the patch.
2959 for the patch.
2956
2960
2957 2003-03-20 Fernando Perez <fperez@colorado.edu>
2961 2003-03-20 Fernando Perez <fperez@colorado.edu>
2958
2962
2959 * IPython/genutils.py (error): added error() and fatal()
2963 * IPython/genutils.py (error): added error() and fatal()
2960 functions.
2964 functions.
2961
2965
2962 2003-03-18 *** Released version 0.2.15pre3
2966 2003-03-18 *** Released version 0.2.15pre3
2963
2967
2964 2003-03-18 Fernando Perez <fperez@colorado.edu>
2968 2003-03-18 Fernando Perez <fperez@colorado.edu>
2965
2969
2966 * setupext/install_data_ext.py
2970 * setupext/install_data_ext.py
2967 (install_data_ext.initialize_options): Class contributed by Jack
2971 (install_data_ext.initialize_options): Class contributed by Jack
2968 Moffit for fixing the old distutils hack. He is sending this to
2972 Moffit for fixing the old distutils hack. He is sending this to
2969 the distutils folks so in the future we may not need it as a
2973 the distutils folks so in the future we may not need it as a
2970 private fix.
2974 private fix.
2971
2975
2972 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2976 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2973 changes for Debian packaging. See his patch for full details.
2977 changes for Debian packaging. See his patch for full details.
2974 The old distutils hack of making the ipythonrc* files carry a
2978 The old distutils hack of making the ipythonrc* files carry a
2975 bogus .py extension is gone, at last. Examples were moved to a
2979 bogus .py extension is gone, at last. Examples were moved to a
2976 separate subdir under doc/, and the separate executable scripts
2980 separate subdir under doc/, and the separate executable scripts
2977 now live in their own directory. Overall a great cleanup. The
2981 now live in their own directory. Overall a great cleanup. The
2978 manual was updated to use the new files, and setup.py has been
2982 manual was updated to use the new files, and setup.py has been
2979 fixed for this setup.
2983 fixed for this setup.
2980
2984
2981 * IPython/PyColorize.py (Parser.usage): made non-executable and
2985 * IPython/PyColorize.py (Parser.usage): made non-executable and
2982 created a pycolor wrapper around it to be included as a script.
2986 created a pycolor wrapper around it to be included as a script.
2983
2987
2984 2003-03-12 *** Released version 0.2.15pre2
2988 2003-03-12 *** Released version 0.2.15pre2
2985
2989
2986 2003-03-12 Fernando Perez <fperez@colorado.edu>
2990 2003-03-12 Fernando Perez <fperez@colorado.edu>
2987
2991
2988 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2992 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2989 long-standing problem with garbage characters in some terminals.
2993 long-standing problem with garbage characters in some terminals.
2990 The issue was really that the \001 and \002 escapes must _only_ be
2994 The issue was really that the \001 and \002 escapes must _only_ be
2991 passed to input prompts (which call readline), but _never_ to
2995 passed to input prompts (which call readline), but _never_ to
2992 normal text to be printed on screen. I changed ColorANSI to have
2996 normal text to be printed on screen. I changed ColorANSI to have
2993 two classes: TermColors and InputTermColors, each with the
2997 two classes: TermColors and InputTermColors, each with the
2994 appropriate escapes for input prompts or normal text. The code in
2998 appropriate escapes for input prompts or normal text. The code in
2995 Prompts.py got slightly more complicated, but this very old and
2999 Prompts.py got slightly more complicated, but this very old and
2996 annoying bug is finally fixed.
3000 annoying bug is finally fixed.
2997
3001
2998 All the credit for nailing down the real origin of this problem
3002 All the credit for nailing down the real origin of this problem
2999 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3003 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3000 *Many* thanks to him for spending quite a bit of effort on this.
3004 *Many* thanks to him for spending quite a bit of effort on this.
3001
3005
3002 2003-03-05 *** Released version 0.2.15pre1
3006 2003-03-05 *** Released version 0.2.15pre1
3003
3007
3004 2003-03-03 Fernando Perez <fperez@colorado.edu>
3008 2003-03-03 Fernando Perez <fperez@colorado.edu>
3005
3009
3006 * IPython/FakeModule.py: Moved the former _FakeModule to a
3010 * IPython/FakeModule.py: Moved the former _FakeModule to a
3007 separate file, because it's also needed by Magic (to fix a similar
3011 separate file, because it's also needed by Magic (to fix a similar
3008 pickle-related issue in @run).
3012 pickle-related issue in @run).
3009
3013
3010 2003-03-02 Fernando Perez <fperez@colorado.edu>
3014 2003-03-02 Fernando Perez <fperez@colorado.edu>
3011
3015
3012 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3016 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3013 the autocall option at runtime.
3017 the autocall option at runtime.
3014 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3018 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3015 across Magic.py to start separating Magic from InteractiveShell.
3019 across Magic.py to start separating Magic from InteractiveShell.
3016 (Magic._ofind): Fixed to return proper namespace for dotted
3020 (Magic._ofind): Fixed to return proper namespace for dotted
3017 names. Before, a dotted name would always return 'not currently
3021 names. Before, a dotted name would always return 'not currently
3018 defined', because it would find the 'parent'. s.x would be found,
3022 defined', because it would find the 'parent'. s.x would be found,
3019 but since 'x' isn't defined by itself, it would get confused.
3023 but since 'x' isn't defined by itself, it would get confused.
3020 (Magic.magic_run): Fixed pickling problems reported by Ralf
3024 (Magic.magic_run): Fixed pickling problems reported by Ralf
3021 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3025 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3022 that I'd used when Mike Heeter reported similar issues at the
3026 that I'd used when Mike Heeter reported similar issues at the
3023 top-level, but now for @run. It boils down to injecting the
3027 top-level, but now for @run. It boils down to injecting the
3024 namespace where code is being executed with something that looks
3028 namespace where code is being executed with something that looks
3025 enough like a module to fool pickle.dump(). Since a pickle stores
3029 enough like a module to fool pickle.dump(). Since a pickle stores
3026 a named reference to the importing module, we need this for
3030 a named reference to the importing module, we need this for
3027 pickles to save something sensible.
3031 pickles to save something sensible.
3028
3032
3029 * IPython/ipmaker.py (make_IPython): added an autocall option.
3033 * IPython/ipmaker.py (make_IPython): added an autocall option.
3030
3034
3031 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3035 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3032 the auto-eval code. Now autocalling is an option, and the code is
3036 the auto-eval code. Now autocalling is an option, and the code is
3033 also vastly safer. There is no more eval() involved at all.
3037 also vastly safer. There is no more eval() involved at all.
3034
3038
3035 2003-03-01 Fernando Perez <fperez@colorado.edu>
3039 2003-03-01 Fernando Perez <fperez@colorado.edu>
3036
3040
3037 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3041 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3038 dict with named keys instead of a tuple.
3042 dict with named keys instead of a tuple.
3039
3043
3040 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3044 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3041
3045
3042 * setup.py (make_shortcut): Fixed message about directories
3046 * setup.py (make_shortcut): Fixed message about directories
3043 created during Windows installation (the directories were ok, just
3047 created during Windows installation (the directories were ok, just
3044 the printed message was misleading). Thanks to Chris Liechti
3048 the printed message was misleading). Thanks to Chris Liechti
3045 <cliechti-AT-gmx.net> for the heads up.
3049 <cliechti-AT-gmx.net> for the heads up.
3046
3050
3047 2003-02-21 Fernando Perez <fperez@colorado.edu>
3051 2003-02-21 Fernando Perez <fperez@colorado.edu>
3048
3052
3049 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3053 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3050 of ValueError exception when checking for auto-execution. This
3054 of ValueError exception when checking for auto-execution. This
3051 one is raised by things like Numeric arrays arr.flat when the
3055 one is raised by things like Numeric arrays arr.flat when the
3052 array is non-contiguous.
3056 array is non-contiguous.
3053
3057
3054 2003-01-31 Fernando Perez <fperez@colorado.edu>
3058 2003-01-31 Fernando Perez <fperez@colorado.edu>
3055
3059
3056 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3060 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3057 not return any value at all (even though the command would get
3061 not return any value at all (even though the command would get
3058 executed).
3062 executed).
3059 (xsys): Flush stdout right after printing the command to ensure
3063 (xsys): Flush stdout right after printing the command to ensure
3060 proper ordering of commands and command output in the total
3064 proper ordering of commands and command output in the total
3061 output.
3065 output.
3062 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3066 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3063 system/getoutput as defaults. The old ones are kept for
3067 system/getoutput as defaults. The old ones are kept for
3064 compatibility reasons, so no code which uses this library needs
3068 compatibility reasons, so no code which uses this library needs
3065 changing.
3069 changing.
3066
3070
3067 2003-01-27 *** Released version 0.2.14
3071 2003-01-27 *** Released version 0.2.14
3068
3072
3069 2003-01-25 Fernando Perez <fperez@colorado.edu>
3073 2003-01-25 Fernando Perez <fperez@colorado.edu>
3070
3074
3071 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3075 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3072 functions defined in previous edit sessions could not be re-edited
3076 functions defined in previous edit sessions could not be re-edited
3073 (because the temp files were immediately removed). Now temp files
3077 (because the temp files were immediately removed). Now temp files
3074 are removed only at IPython's exit.
3078 are removed only at IPython's exit.
3075 (Magic.magic_run): Improved @run to perform shell-like expansions
3079 (Magic.magic_run): Improved @run to perform shell-like expansions
3076 on its arguments (~users and $VARS). With this, @run becomes more
3080 on its arguments (~users and $VARS). With this, @run becomes more
3077 like a normal command-line.
3081 like a normal command-line.
3078
3082
3079 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3083 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3080 bugs related to embedding and cleaned up that code. A fairly
3084 bugs related to embedding and cleaned up that code. A fairly
3081 important one was the impossibility to access the global namespace
3085 important one was the impossibility to access the global namespace
3082 through the embedded IPython (only local variables were visible).
3086 through the embedded IPython (only local variables were visible).
3083
3087
3084 2003-01-14 Fernando Perez <fperez@colorado.edu>
3088 2003-01-14 Fernando Perez <fperez@colorado.edu>
3085
3089
3086 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3090 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3087 auto-calling to be a bit more conservative. Now it doesn't get
3091 auto-calling to be a bit more conservative. Now it doesn't get
3088 triggered if any of '!=()<>' are in the rest of the input line, to
3092 triggered if any of '!=()<>' are in the rest of the input line, to
3089 allow comparing callables. Thanks to Alex for the heads up.
3093 allow comparing callables. Thanks to Alex for the heads up.
3090
3094
3091 2003-01-07 Fernando Perez <fperez@colorado.edu>
3095 2003-01-07 Fernando Perez <fperez@colorado.edu>
3092
3096
3093 * IPython/genutils.py (page): fixed estimation of the number of
3097 * IPython/genutils.py (page): fixed estimation of the number of
3094 lines in a string to be paged to simply count newlines. This
3098 lines in a string to be paged to simply count newlines. This
3095 prevents over-guessing due to embedded escape sequences. A better
3099 prevents over-guessing due to embedded escape sequences. A better
3096 long-term solution would involve stripping out the control chars
3100 long-term solution would involve stripping out the control chars
3097 for the count, but it's potentially so expensive I just don't
3101 for the count, but it's potentially so expensive I just don't
3098 think it's worth doing.
3102 think it's worth doing.
3099
3103
3100 2002-12-19 *** Released version 0.2.14pre50
3104 2002-12-19 *** Released version 0.2.14pre50
3101
3105
3102 2002-12-19 Fernando Perez <fperez@colorado.edu>
3106 2002-12-19 Fernando Perez <fperez@colorado.edu>
3103
3107
3104 * tools/release (version): Changed release scripts to inform
3108 * tools/release (version): Changed release scripts to inform
3105 Andrea and build a NEWS file with a list of recent changes.
3109 Andrea and build a NEWS file with a list of recent changes.
3106
3110
3107 * IPython/ColorANSI.py (__all__): changed terminal detection
3111 * IPython/ColorANSI.py (__all__): changed terminal detection
3108 code. Seems to work better for xterms without breaking
3112 code. Seems to work better for xterms without breaking
3109 konsole. Will need more testing to determine if WinXP and Mac OSX
3113 konsole. Will need more testing to determine if WinXP and Mac OSX
3110 also work ok.
3114 also work ok.
3111
3115
3112 2002-12-18 *** Released version 0.2.14pre49
3116 2002-12-18 *** Released version 0.2.14pre49
3113
3117
3114 2002-12-18 Fernando Perez <fperez@colorado.edu>
3118 2002-12-18 Fernando Perez <fperez@colorado.edu>
3115
3119
3116 * Docs: added new info about Mac OSX, from Andrea.
3120 * Docs: added new info about Mac OSX, from Andrea.
3117
3121
3118 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3122 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3119 allow direct plotting of python strings whose format is the same
3123 allow direct plotting of python strings whose format is the same
3120 of gnuplot data files.
3124 of gnuplot data files.
3121
3125
3122 2002-12-16 Fernando Perez <fperez@colorado.edu>
3126 2002-12-16 Fernando Perez <fperez@colorado.edu>
3123
3127
3124 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3128 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3125 value of exit question to be acknowledged.
3129 value of exit question to be acknowledged.
3126
3130
3127 2002-12-03 Fernando Perez <fperez@colorado.edu>
3131 2002-12-03 Fernando Perez <fperez@colorado.edu>
3128
3132
3129 * IPython/ipmaker.py: removed generators, which had been added
3133 * IPython/ipmaker.py: removed generators, which had been added
3130 by mistake in an earlier debugging run. This was causing trouble
3134 by mistake in an earlier debugging run. This was causing trouble
3131 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3135 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3132 for pointing this out.
3136 for pointing this out.
3133
3137
3134 2002-11-17 Fernando Perez <fperez@colorado.edu>
3138 2002-11-17 Fernando Perez <fperez@colorado.edu>
3135
3139
3136 * Manual: updated the Gnuplot section.
3140 * Manual: updated the Gnuplot section.
3137
3141
3138 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3142 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3139 a much better split of what goes in Runtime and what goes in
3143 a much better split of what goes in Runtime and what goes in
3140 Interactive.
3144 Interactive.
3141
3145
3142 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3146 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3143 being imported from iplib.
3147 being imported from iplib.
3144
3148
3145 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3149 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3146 for command-passing. Now the global Gnuplot instance is called
3150 for command-passing. Now the global Gnuplot instance is called
3147 'gp' instead of 'g', which was really a far too fragile and
3151 'gp' instead of 'g', which was really a far too fragile and
3148 common name.
3152 common name.
3149
3153
3150 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3154 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3151 bounding boxes generated by Gnuplot for square plots.
3155 bounding boxes generated by Gnuplot for square plots.
3152
3156
3153 * IPython/genutils.py (popkey): new function added. I should
3157 * IPython/genutils.py (popkey): new function added. I should
3154 suggest this on c.l.py as a dict method, it seems useful.
3158 suggest this on c.l.py as a dict method, it seems useful.
3155
3159
3156 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3160 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3157 to transparently handle PostScript generation. MUCH better than
3161 to transparently handle PostScript generation. MUCH better than
3158 the previous plot_eps/replot_eps (which I removed now). The code
3162 the previous plot_eps/replot_eps (which I removed now). The code
3159 is also fairly clean and well documented now (including
3163 is also fairly clean and well documented now (including
3160 docstrings).
3164 docstrings).
3161
3165
3162 2002-11-13 Fernando Perez <fperez@colorado.edu>
3166 2002-11-13 Fernando Perez <fperez@colorado.edu>
3163
3167
3164 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3168 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3165 (inconsistent with options).
3169 (inconsistent with options).
3166
3170
3167 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3171 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3168 manually disabled, I don't know why. Fixed it.
3172 manually disabled, I don't know why. Fixed it.
3169 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3173 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3170 eps output.
3174 eps output.
3171
3175
3172 2002-11-12 Fernando Perez <fperez@colorado.edu>
3176 2002-11-12 Fernando Perez <fperez@colorado.edu>
3173
3177
3174 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3178 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3175 don't propagate up to caller. Fixes crash reported by François
3179 don't propagate up to caller. Fixes crash reported by François
3176 Pinard.
3180 Pinard.
3177
3181
3178 2002-11-09 Fernando Perez <fperez@colorado.edu>
3182 2002-11-09 Fernando Perez <fperez@colorado.edu>
3179
3183
3180 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3184 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3181 history file for new users.
3185 history file for new users.
3182 (make_IPython): fixed bug where initial install would leave the
3186 (make_IPython): fixed bug where initial install would leave the
3183 user running in the .ipython dir.
3187 user running in the .ipython dir.
3184 (make_IPython): fixed bug where config dir .ipython would be
3188 (make_IPython): fixed bug where config dir .ipython would be
3185 created regardless of the given -ipythondir option. Thanks to Cory
3189 created regardless of the given -ipythondir option. Thanks to Cory
3186 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3190 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3187
3191
3188 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3192 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3189 type confirmations. Will need to use it in all of IPython's code
3193 type confirmations. Will need to use it in all of IPython's code
3190 consistently.
3194 consistently.
3191
3195
3192 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3196 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3193 context to print 31 lines instead of the default 5. This will make
3197 context to print 31 lines instead of the default 5. This will make
3194 the crash reports extremely detailed in case the problem is in
3198 the crash reports extremely detailed in case the problem is in
3195 libraries I don't have access to.
3199 libraries I don't have access to.
3196
3200
3197 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3201 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3198 line of defense' code to still crash, but giving users fair
3202 line of defense' code to still crash, but giving users fair
3199 warning. I don't want internal errors to go unreported: if there's
3203 warning. I don't want internal errors to go unreported: if there's
3200 an internal problem, IPython should crash and generate a full
3204 an internal problem, IPython should crash and generate a full
3201 report.
3205 report.
3202
3206
3203 2002-11-08 Fernando Perez <fperez@colorado.edu>
3207 2002-11-08 Fernando Perez <fperez@colorado.edu>
3204
3208
3205 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3209 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3206 otherwise uncaught exceptions which can appear if people set
3210 otherwise uncaught exceptions which can appear if people set
3207 sys.stdout to something badly broken. Thanks to a crash report
3211 sys.stdout to something badly broken. Thanks to a crash report
3208 from henni-AT-mail.brainbot.com.
3212 from henni-AT-mail.brainbot.com.
3209
3213
3210 2002-11-04 Fernando Perez <fperez@colorado.edu>
3214 2002-11-04 Fernando Perez <fperez@colorado.edu>
3211
3215
3212 * IPython/iplib.py (InteractiveShell.interact): added
3216 * IPython/iplib.py (InteractiveShell.interact): added
3213 __IPYTHON__active to the builtins. It's a flag which goes on when
3217 __IPYTHON__active to the builtins. It's a flag which goes on when
3214 the interaction starts and goes off again when it stops. This
3218 the interaction starts and goes off again when it stops. This
3215 allows embedding code to detect being inside IPython. Before this
3219 allows embedding code to detect being inside IPython. Before this
3216 was done via __IPYTHON__, but that only shows that an IPython
3220 was done via __IPYTHON__, but that only shows that an IPython
3217 instance has been created.
3221 instance has been created.
3218
3222
3219 * IPython/Magic.py (Magic.magic_env): I realized that in a
3223 * IPython/Magic.py (Magic.magic_env): I realized that in a
3220 UserDict, instance.data holds the data as a normal dict. So I
3224 UserDict, instance.data holds the data as a normal dict. So I
3221 modified @env to return os.environ.data instead of rebuilding a
3225 modified @env to return os.environ.data instead of rebuilding a
3222 dict by hand.
3226 dict by hand.
3223
3227
3224 2002-11-02 Fernando Perez <fperez@colorado.edu>
3228 2002-11-02 Fernando Perez <fperez@colorado.edu>
3225
3229
3226 * IPython/genutils.py (warn): changed so that level 1 prints no
3230 * IPython/genutils.py (warn): changed so that level 1 prints no
3227 header. Level 2 is now the default (with 'WARNING' header, as
3231 header. Level 2 is now the default (with 'WARNING' header, as
3228 before). I think I tracked all places where changes were needed in
3232 before). I think I tracked all places where changes were needed in
3229 IPython, but outside code using the old level numbering may have
3233 IPython, but outside code using the old level numbering may have
3230 broken.
3234 broken.
3231
3235
3232 * IPython/iplib.py (InteractiveShell.runcode): added this to
3236 * IPython/iplib.py (InteractiveShell.runcode): added this to
3233 handle the tracebacks in SystemExit traps correctly. The previous
3237 handle the tracebacks in SystemExit traps correctly. The previous
3234 code (through interact) was printing more of the stack than
3238 code (through interact) was printing more of the stack than
3235 necessary, showing IPython internal code to the user.
3239 necessary, showing IPython internal code to the user.
3236
3240
3237 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3241 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3238 default. Now that the default at the confirmation prompt is yes,
3242 default. Now that the default at the confirmation prompt is yes,
3239 it's not so intrusive. François' argument that ipython sessions
3243 it's not so intrusive. François' argument that ipython sessions
3240 tend to be complex enough not to lose them from an accidental C-d,
3244 tend to be complex enough not to lose them from an accidental C-d,
3241 is a valid one.
3245 is a valid one.
3242
3246
3243 * IPython/iplib.py (InteractiveShell.interact): added a
3247 * IPython/iplib.py (InteractiveShell.interact): added a
3244 showtraceback() call to the SystemExit trap, and modified the exit
3248 showtraceback() call to the SystemExit trap, and modified the exit
3245 confirmation to have yes as the default.
3249 confirmation to have yes as the default.
3246
3250
3247 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3251 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3248 this file. It's been gone from the code for a long time, this was
3252 this file. It's been gone from the code for a long time, this was
3249 simply leftover junk.
3253 simply leftover junk.
3250
3254
3251 2002-11-01 Fernando Perez <fperez@colorado.edu>
3255 2002-11-01 Fernando Perez <fperez@colorado.edu>
3252
3256
3253 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3257 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3254 added. If set, IPython now traps EOF and asks for
3258 added. If set, IPython now traps EOF and asks for
3255 confirmation. After a request by François Pinard.
3259 confirmation. After a request by François Pinard.
3256
3260
3257 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3261 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3258 of @abort, and with a new (better) mechanism for handling the
3262 of @abort, and with a new (better) mechanism for handling the
3259 exceptions.
3263 exceptions.
3260
3264
3261 2002-10-27 Fernando Perez <fperez@colorado.edu>
3265 2002-10-27 Fernando Perez <fperez@colorado.edu>
3262
3266
3263 * IPython/usage.py (__doc__): updated the --help information and
3267 * IPython/usage.py (__doc__): updated the --help information and
3264 the ipythonrc file to indicate that -log generates
3268 the ipythonrc file to indicate that -log generates
3265 ./ipython.log. Also fixed the corresponding info in @logstart.
3269 ./ipython.log. Also fixed the corresponding info in @logstart.
3266 This and several other fixes in the manuals thanks to reports by
3270 This and several other fixes in the manuals thanks to reports by
3267 François Pinard <pinard-AT-iro.umontreal.ca>.
3271 François Pinard <pinard-AT-iro.umontreal.ca>.
3268
3272
3269 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3273 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3270 refer to @logstart (instead of @log, which doesn't exist).
3274 refer to @logstart (instead of @log, which doesn't exist).
3271
3275
3272 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3276 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3273 AttributeError crash. Thanks to Christopher Armstrong
3277 AttributeError crash. Thanks to Christopher Armstrong
3274 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3278 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3275 introduced recently (in 0.2.14pre37) with the fix to the eval
3279 introduced recently (in 0.2.14pre37) with the fix to the eval
3276 problem mentioned below.
3280 problem mentioned below.
3277
3281
3278 2002-10-17 Fernando Perez <fperez@colorado.edu>
3282 2002-10-17 Fernando Perez <fperez@colorado.edu>
3279
3283
3280 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3284 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3281 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3285 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3282
3286
3283 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3287 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3284 this function to fix a problem reported by Alex Schmolck. He saw
3288 this function to fix a problem reported by Alex Schmolck. He saw
3285 it with list comprehensions and generators, which were getting
3289 it with list comprehensions and generators, which were getting
3286 called twice. The real problem was an 'eval' call in testing for
3290 called twice. The real problem was an 'eval' call in testing for
3287 automagic which was evaluating the input line silently.
3291 automagic which was evaluating the input line silently.
3288
3292
3289 This is a potentially very nasty bug, if the input has side
3293 This is a potentially very nasty bug, if the input has side
3290 effects which must not be repeated. The code is much cleaner now,
3294 effects which must not be repeated. The code is much cleaner now,
3291 without any blanket 'except' left and with a regexp test for
3295 without any blanket 'except' left and with a regexp test for
3292 actual function names.
3296 actual function names.
3293
3297
3294 But an eval remains, which I'm not fully comfortable with. I just
3298 But an eval remains, which I'm not fully comfortable with. I just
3295 don't know how to find out if an expression could be a callable in
3299 don't know how to find out if an expression could be a callable in
3296 the user's namespace without doing an eval on the string. However
3300 the user's namespace without doing an eval on the string. However
3297 that string is now much more strictly checked so that no code
3301 that string is now much more strictly checked so that no code
3298 slips by, so the eval should only happen for things that can
3302 slips by, so the eval should only happen for things that can
3299 really be only function/method names.
3303 really be only function/method names.
3300
3304
3301 2002-10-15 Fernando Perez <fperez@colorado.edu>
3305 2002-10-15 Fernando Perez <fperez@colorado.edu>
3302
3306
3303 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3307 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3304 OSX information to main manual, removed README_Mac_OSX file from
3308 OSX information to main manual, removed README_Mac_OSX file from
3305 distribution. Also updated credits for recent additions.
3309 distribution. Also updated credits for recent additions.
3306
3310
3307 2002-10-10 Fernando Perez <fperez@colorado.edu>
3311 2002-10-10 Fernando Perez <fperez@colorado.edu>
3308
3312
3309 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3313 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3310 terminal-related issues. Many thanks to Andrea Riciputi
3314 terminal-related issues. Many thanks to Andrea Riciputi
3311 <andrea.riciputi-AT-libero.it> for writing it.
3315 <andrea.riciputi-AT-libero.it> for writing it.
3312
3316
3313 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3317 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3314 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3318 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3315
3319
3316 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3320 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3317 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3321 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3318 <syver-en-AT-online.no> who both submitted patches for this problem.
3322 <syver-en-AT-online.no> who both submitted patches for this problem.
3319
3323
3320 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3324 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3321 global embedding to make sure that things don't overwrite user
3325 global embedding to make sure that things don't overwrite user
3322 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3326 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3323
3327
3324 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3328 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3325 compatibility. Thanks to Hayden Callow
3329 compatibility. Thanks to Hayden Callow
3326 <h.callow-AT-elec.canterbury.ac.nz>
3330 <h.callow-AT-elec.canterbury.ac.nz>
3327
3331
3328 2002-10-04 Fernando Perez <fperez@colorado.edu>
3332 2002-10-04 Fernando Perez <fperez@colorado.edu>
3329
3333
3330 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3334 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3331 Gnuplot.File objects.
3335 Gnuplot.File objects.
3332
3336
3333 2002-07-23 Fernando Perez <fperez@colorado.edu>
3337 2002-07-23 Fernando Perez <fperez@colorado.edu>
3334
3338
3335 * IPython/genutils.py (timing): Added timings() and timing() for
3339 * IPython/genutils.py (timing): Added timings() and timing() for
3336 quick access to the most commonly needed data, the execution
3340 quick access to the most commonly needed data, the execution
3337 times. Old timing() renamed to timings_out().
3341 times. Old timing() renamed to timings_out().
3338
3342
3339 2002-07-18 Fernando Perez <fperez@colorado.edu>
3343 2002-07-18 Fernando Perez <fperez@colorado.edu>
3340
3344
3341 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3345 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3342 bug with nested instances disrupting the parent's tab completion.
3346 bug with nested instances disrupting the parent's tab completion.
3343
3347
3344 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3348 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3345 all_completions code to begin the emacs integration.
3349 all_completions code to begin the emacs integration.
3346
3350
3347 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3351 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3348 argument to allow titling individual arrays when plotting.
3352 argument to allow titling individual arrays when plotting.
3349
3353
3350 2002-07-15 Fernando Perez <fperez@colorado.edu>
3354 2002-07-15 Fernando Perez <fperez@colorado.edu>
3351
3355
3352 * setup.py (make_shortcut): changed to retrieve the value of
3356 * setup.py (make_shortcut): changed to retrieve the value of
3353 'Program Files' directory from the registry (this value changes in
3357 'Program Files' directory from the registry (this value changes in
3354 non-english versions of Windows). Thanks to Thomas Fanslau
3358 non-english versions of Windows). Thanks to Thomas Fanslau
3355 <tfanslau-AT-gmx.de> for the report.
3359 <tfanslau-AT-gmx.de> for the report.
3356
3360
3357 2002-07-10 Fernando Perez <fperez@colorado.edu>
3361 2002-07-10 Fernando Perez <fperez@colorado.edu>
3358
3362
3359 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3363 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3360 a bug in pdb, which crashes if a line with only whitespace is
3364 a bug in pdb, which crashes if a line with only whitespace is
3361 entered. Bug report submitted to sourceforge.
3365 entered. Bug report submitted to sourceforge.
3362
3366
3363 2002-07-09 Fernando Perez <fperez@colorado.edu>
3367 2002-07-09 Fernando Perez <fperez@colorado.edu>
3364
3368
3365 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3369 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3366 reporting exceptions (it's a bug in inspect.py, I just set a
3370 reporting exceptions (it's a bug in inspect.py, I just set a
3367 workaround).
3371 workaround).
3368
3372
3369 2002-07-08 Fernando Perez <fperez@colorado.edu>
3373 2002-07-08 Fernando Perez <fperez@colorado.edu>
3370
3374
3371 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3375 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3372 __IPYTHON__ in __builtins__ to show up in user_ns.
3376 __IPYTHON__ in __builtins__ to show up in user_ns.
3373
3377
3374 2002-07-03 Fernando Perez <fperez@colorado.edu>
3378 2002-07-03 Fernando Perez <fperez@colorado.edu>
3375
3379
3376 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3380 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3377 name from @gp_set_instance to @gp_set_default.
3381 name from @gp_set_instance to @gp_set_default.
3378
3382
3379 * IPython/ipmaker.py (make_IPython): default editor value set to
3383 * IPython/ipmaker.py (make_IPython): default editor value set to
3380 '0' (a string), to match the rc file. Otherwise will crash when
3384 '0' (a string), to match the rc file. Otherwise will crash when
3381 .strip() is called on it.
3385 .strip() is called on it.
3382
3386
3383
3387
3384 2002-06-28 Fernando Perez <fperez@colorado.edu>
3388 2002-06-28 Fernando Perez <fperez@colorado.edu>
3385
3389
3386 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3390 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3387 of files in current directory when a file is executed via
3391 of files in current directory when a file is executed via
3388 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3392 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3389
3393
3390 * setup.py (manfiles): fix for rpm builds, submitted by RA
3394 * setup.py (manfiles): fix for rpm builds, submitted by RA
3391 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3395 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3392
3396
3393 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3397 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3394 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3398 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3395 string!). A. Schmolck caught this one.
3399 string!). A. Schmolck caught this one.
3396
3400
3397 2002-06-27 Fernando Perez <fperez@colorado.edu>
3401 2002-06-27 Fernando Perez <fperez@colorado.edu>
3398
3402
3399 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3403 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3400 defined files at the cmd line. __name__ wasn't being set to
3404 defined files at the cmd line. __name__ wasn't being set to
3401 __main__.
3405 __main__.
3402
3406
3403 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3407 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3404 regular lists and tuples besides Numeric arrays.
3408 regular lists and tuples besides Numeric arrays.
3405
3409
3406 * IPython/Prompts.py (CachedOutput.__call__): Added output
3410 * IPython/Prompts.py (CachedOutput.__call__): Added output
3407 supression for input ending with ';'. Similar to Mathematica and
3411 supression for input ending with ';'. Similar to Mathematica and
3408 Matlab. The _* vars and Out[] list are still updated, just like
3412 Matlab. The _* vars and Out[] list are still updated, just like
3409 Mathematica behaves.
3413 Mathematica behaves.
3410
3414
3411 2002-06-25 Fernando Perez <fperez@colorado.edu>
3415 2002-06-25 Fernando Perez <fperez@colorado.edu>
3412
3416
3413 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3417 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3414 .ini extensions for profiels under Windows.
3418 .ini extensions for profiels under Windows.
3415
3419
3416 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3420 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3417 string form. Fix contributed by Alexander Schmolck
3421 string form. Fix contributed by Alexander Schmolck
3418 <a.schmolck-AT-gmx.net>
3422 <a.schmolck-AT-gmx.net>
3419
3423
3420 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3424 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3421 pre-configured Gnuplot instance.
3425 pre-configured Gnuplot instance.
3422
3426
3423 2002-06-21 Fernando Perez <fperez@colorado.edu>
3427 2002-06-21 Fernando Perez <fperez@colorado.edu>
3424
3428
3425 * IPython/numutils.py (exp_safe): new function, works around the
3429 * IPython/numutils.py (exp_safe): new function, works around the
3426 underflow problems in Numeric.
3430 underflow problems in Numeric.
3427 (log2): New fn. Safe log in base 2: returns exact integer answer
3431 (log2): New fn. Safe log in base 2: returns exact integer answer
3428 for exact integer powers of 2.
3432 for exact integer powers of 2.
3429
3433
3430 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3434 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3431 properly.
3435 properly.
3432
3436
3433 2002-06-20 Fernando Perez <fperez@colorado.edu>
3437 2002-06-20 Fernando Perez <fperez@colorado.edu>
3434
3438
3435 * IPython/genutils.py (timing): new function like
3439 * IPython/genutils.py (timing): new function like
3436 Mathematica's. Similar to time_test, but returns more info.
3440 Mathematica's. Similar to time_test, but returns more info.
3437
3441
3438 2002-06-18 Fernando Perez <fperez@colorado.edu>
3442 2002-06-18 Fernando Perez <fperez@colorado.edu>
3439
3443
3440 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3444 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3441 according to Mike Heeter's suggestions.
3445 according to Mike Heeter's suggestions.
3442
3446
3443 2002-06-16 Fernando Perez <fperez@colorado.edu>
3447 2002-06-16 Fernando Perez <fperez@colorado.edu>
3444
3448
3445 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3449 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3446 system. GnuplotMagic is gone as a user-directory option. New files
3450 system. GnuplotMagic is gone as a user-directory option. New files
3447 make it easier to use all the gnuplot stuff both from external
3451 make it easier to use all the gnuplot stuff both from external
3448 programs as well as from IPython. Had to rewrite part of
3452 programs as well as from IPython. Had to rewrite part of
3449 hardcopy() b/c of a strange bug: often the ps files simply don't
3453 hardcopy() b/c of a strange bug: often the ps files simply don't
3450 get created, and require a repeat of the command (often several
3454 get created, and require a repeat of the command (often several
3451 times).
3455 times).
3452
3456
3453 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3457 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3454 resolve output channel at call time, so that if sys.stderr has
3458 resolve output channel at call time, so that if sys.stderr has
3455 been redirected by user this gets honored.
3459 been redirected by user this gets honored.
3456
3460
3457 2002-06-13 Fernando Perez <fperez@colorado.edu>
3461 2002-06-13 Fernando Perez <fperez@colorado.edu>
3458
3462
3459 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3463 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3460 IPShell. Kept a copy with the old names to avoid breaking people's
3464 IPShell. Kept a copy with the old names to avoid breaking people's
3461 embedded code.
3465 embedded code.
3462
3466
3463 * IPython/ipython: simplified it to the bare minimum after
3467 * IPython/ipython: simplified it to the bare minimum after
3464 Holger's suggestions. Added info about how to use it in
3468 Holger's suggestions. Added info about how to use it in
3465 PYTHONSTARTUP.
3469 PYTHONSTARTUP.
3466
3470
3467 * IPython/Shell.py (IPythonShell): changed the options passing
3471 * IPython/Shell.py (IPythonShell): changed the options passing
3468 from a string with funky %s replacements to a straight list. Maybe
3472 from a string with funky %s replacements to a straight list. Maybe
3469 a bit more typing, but it follows sys.argv conventions, so there's
3473 a bit more typing, but it follows sys.argv conventions, so there's
3470 less special-casing to remember.
3474 less special-casing to remember.
3471
3475
3472 2002-06-12 Fernando Perez <fperez@colorado.edu>
3476 2002-06-12 Fernando Perez <fperez@colorado.edu>
3473
3477
3474 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3478 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3475 command. Thanks to a suggestion by Mike Heeter.
3479 command. Thanks to a suggestion by Mike Heeter.
3476 (Magic.magic_pfile): added behavior to look at filenames if given
3480 (Magic.magic_pfile): added behavior to look at filenames if given
3477 arg is not a defined object.
3481 arg is not a defined object.
3478 (Magic.magic_save): New @save function to save code snippets. Also
3482 (Magic.magic_save): New @save function to save code snippets. Also
3479 a Mike Heeter idea.
3483 a Mike Heeter idea.
3480
3484
3481 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3485 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3482 plot() and replot(). Much more convenient now, especially for
3486 plot() and replot(). Much more convenient now, especially for
3483 interactive use.
3487 interactive use.
3484
3488
3485 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3489 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3486 filenames.
3490 filenames.
3487
3491
3488 2002-06-02 Fernando Perez <fperez@colorado.edu>
3492 2002-06-02 Fernando Perez <fperez@colorado.edu>
3489
3493
3490 * IPython/Struct.py (Struct.__init__): modified to admit
3494 * IPython/Struct.py (Struct.__init__): modified to admit
3491 initialization via another struct.
3495 initialization via another struct.
3492
3496
3493 * IPython/genutils.py (SystemExec.__init__): New stateful
3497 * IPython/genutils.py (SystemExec.__init__): New stateful
3494 interface to xsys and bq. Useful for writing system scripts.
3498 interface to xsys and bq. Useful for writing system scripts.
3495
3499
3496 2002-05-30 Fernando Perez <fperez@colorado.edu>
3500 2002-05-30 Fernando Perez <fperez@colorado.edu>
3497
3501
3498 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3502 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3499 documents. This will make the user download smaller (it's getting
3503 documents. This will make the user download smaller (it's getting
3500 too big).
3504 too big).
3501
3505
3502 2002-05-29 Fernando Perez <fperez@colorado.edu>
3506 2002-05-29 Fernando Perez <fperez@colorado.edu>
3503
3507
3504 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3508 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3505 fix problems with shelve and pickle. Seems to work, but I don't
3509 fix problems with shelve and pickle. Seems to work, but I don't
3506 know if corner cases break it. Thanks to Mike Heeter
3510 know if corner cases break it. Thanks to Mike Heeter
3507 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3511 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3508
3512
3509 2002-05-24 Fernando Perez <fperez@colorado.edu>
3513 2002-05-24 Fernando Perez <fperez@colorado.edu>
3510
3514
3511 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3515 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3512 macros having broken.
3516 macros having broken.
3513
3517
3514 2002-05-21 Fernando Perez <fperez@colorado.edu>
3518 2002-05-21 Fernando Perez <fperez@colorado.edu>
3515
3519
3516 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3520 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3517 introduced logging bug: all history before logging started was
3521 introduced logging bug: all history before logging started was
3518 being written one character per line! This came from the redesign
3522 being written one character per line! This came from the redesign
3519 of the input history as a special list which slices to strings,
3523 of the input history as a special list which slices to strings,
3520 not to lists.
3524 not to lists.
3521
3525
3522 2002-05-20 Fernando Perez <fperez@colorado.edu>
3526 2002-05-20 Fernando Perez <fperez@colorado.edu>
3523
3527
3524 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3528 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3525 be an attribute of all classes in this module. The design of these
3529 be an attribute of all classes in this module. The design of these
3526 classes needs some serious overhauling.
3530 classes needs some serious overhauling.
3527
3531
3528 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3532 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3529 which was ignoring '_' in option names.
3533 which was ignoring '_' in option names.
3530
3534
3531 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3535 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3532 'Verbose_novars' to 'Context' and made it the new default. It's a
3536 'Verbose_novars' to 'Context' and made it the new default. It's a
3533 bit more readable and also safer than verbose.
3537 bit more readable and also safer than verbose.
3534
3538
3535 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3539 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3536 triple-quoted strings.
3540 triple-quoted strings.
3537
3541
3538 * IPython/OInspect.py (__all__): new module exposing the object
3542 * IPython/OInspect.py (__all__): new module exposing the object
3539 introspection facilities. Now the corresponding magics are dummy
3543 introspection facilities. Now the corresponding magics are dummy
3540 wrappers around this. Having this module will make it much easier
3544 wrappers around this. Having this module will make it much easier
3541 to put these functions into our modified pdb.
3545 to put these functions into our modified pdb.
3542 This new object inspector system uses the new colorizing module,
3546 This new object inspector system uses the new colorizing module,
3543 so source code and other things are nicely syntax highlighted.
3547 so source code and other things are nicely syntax highlighted.
3544
3548
3545 2002-05-18 Fernando Perez <fperez@colorado.edu>
3549 2002-05-18 Fernando Perez <fperez@colorado.edu>
3546
3550
3547 * IPython/ColorANSI.py: Split the coloring tools into a separate
3551 * IPython/ColorANSI.py: Split the coloring tools into a separate
3548 module so I can use them in other code easier (they were part of
3552 module so I can use them in other code easier (they were part of
3549 ultraTB).
3553 ultraTB).
3550
3554
3551 2002-05-17 Fernando Perez <fperez@colorado.edu>
3555 2002-05-17 Fernando Perez <fperez@colorado.edu>
3552
3556
3553 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3557 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3554 fixed it to set the global 'g' also to the called instance, as
3558 fixed it to set the global 'g' also to the called instance, as
3555 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3559 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3556 user's 'g' variables).
3560 user's 'g' variables).
3557
3561
3558 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3562 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3559 global variables (aliases to _ih,_oh) so that users which expect
3563 global variables (aliases to _ih,_oh) so that users which expect
3560 In[5] or Out[7] to work aren't unpleasantly surprised.
3564 In[5] or Out[7] to work aren't unpleasantly surprised.
3561 (InputList.__getslice__): new class to allow executing slices of
3565 (InputList.__getslice__): new class to allow executing slices of
3562 input history directly. Very simple class, complements the use of
3566 input history directly. Very simple class, complements the use of
3563 macros.
3567 macros.
3564
3568
3565 2002-05-16 Fernando Perez <fperez@colorado.edu>
3569 2002-05-16 Fernando Perez <fperez@colorado.edu>
3566
3570
3567 * setup.py (docdirbase): make doc directory be just doc/IPython
3571 * setup.py (docdirbase): make doc directory be just doc/IPython
3568 without version numbers, it will reduce clutter for users.
3572 without version numbers, it will reduce clutter for users.
3569
3573
3570 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3574 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3571 execfile call to prevent possible memory leak. See for details:
3575 execfile call to prevent possible memory leak. See for details:
3572 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3576 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3573
3577
3574 2002-05-15 Fernando Perez <fperez@colorado.edu>
3578 2002-05-15 Fernando Perez <fperez@colorado.edu>
3575
3579
3576 * IPython/Magic.py (Magic.magic_psource): made the object
3580 * IPython/Magic.py (Magic.magic_psource): made the object
3577 introspection names be more standard: pdoc, pdef, pfile and
3581 introspection names be more standard: pdoc, pdef, pfile and
3578 psource. They all print/page their output, and it makes
3582 psource. They all print/page their output, and it makes
3579 remembering them easier. Kept old names for compatibility as
3583 remembering them easier. Kept old names for compatibility as
3580 aliases.
3584 aliases.
3581
3585
3582 2002-05-14 Fernando Perez <fperez@colorado.edu>
3586 2002-05-14 Fernando Perez <fperez@colorado.edu>
3583
3587
3584 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3588 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3585 what the mouse problem was. The trick is to use gnuplot with temp
3589 what the mouse problem was. The trick is to use gnuplot with temp
3586 files and NOT with pipes (for data communication), because having
3590 files and NOT with pipes (for data communication), because having
3587 both pipes and the mouse on is bad news.
3591 both pipes and the mouse on is bad news.
3588
3592
3589 2002-05-13 Fernando Perez <fperez@colorado.edu>
3593 2002-05-13 Fernando Perez <fperez@colorado.edu>
3590
3594
3591 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3595 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3592 bug. Information would be reported about builtins even when
3596 bug. Information would be reported about builtins even when
3593 user-defined functions overrode them.
3597 user-defined functions overrode them.
3594
3598
3595 2002-05-11 Fernando Perez <fperez@colorado.edu>
3599 2002-05-11 Fernando Perez <fperez@colorado.edu>
3596
3600
3597 * IPython/__init__.py (__all__): removed FlexCompleter from
3601 * IPython/__init__.py (__all__): removed FlexCompleter from
3598 __all__ so that things don't fail in platforms without readline.
3602 __all__ so that things don't fail in platforms without readline.
3599
3603
3600 2002-05-10 Fernando Perez <fperez@colorado.edu>
3604 2002-05-10 Fernando Perez <fperez@colorado.edu>
3601
3605
3602 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3606 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3603 it requires Numeric, effectively making Numeric a dependency for
3607 it requires Numeric, effectively making Numeric a dependency for
3604 IPython.
3608 IPython.
3605
3609
3606 * Released 0.2.13
3610 * Released 0.2.13
3607
3611
3608 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3612 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3609 profiler interface. Now all the major options from the profiler
3613 profiler interface. Now all the major options from the profiler
3610 module are directly supported in IPython, both for single
3614 module are directly supported in IPython, both for single
3611 expressions (@prun) and for full programs (@run -p).
3615 expressions (@prun) and for full programs (@run -p).
3612
3616
3613 2002-05-09 Fernando Perez <fperez@colorado.edu>
3617 2002-05-09 Fernando Perez <fperez@colorado.edu>
3614
3618
3615 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3619 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3616 magic properly formatted for screen.
3620 magic properly formatted for screen.
3617
3621
3618 * setup.py (make_shortcut): Changed things to put pdf version in
3622 * setup.py (make_shortcut): Changed things to put pdf version in
3619 doc/ instead of doc/manual (had to change lyxport a bit).
3623 doc/ instead of doc/manual (had to change lyxport a bit).
3620
3624
3621 * IPython/Magic.py (Profile.string_stats): made profile runs go
3625 * IPython/Magic.py (Profile.string_stats): made profile runs go
3622 through pager (they are long and a pager allows searching, saving,
3626 through pager (they are long and a pager allows searching, saving,
3623 etc.)
3627 etc.)
3624
3628
3625 2002-05-08 Fernando Perez <fperez@colorado.edu>
3629 2002-05-08 Fernando Perez <fperez@colorado.edu>
3626
3630
3627 * Released 0.2.12
3631 * Released 0.2.12
3628
3632
3629 2002-05-06 Fernando Perez <fperez@colorado.edu>
3633 2002-05-06 Fernando Perez <fperez@colorado.edu>
3630
3634
3631 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3635 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3632 introduced); 'hist n1 n2' was broken.
3636 introduced); 'hist n1 n2' was broken.
3633 (Magic.magic_pdb): added optional on/off arguments to @pdb
3637 (Magic.magic_pdb): added optional on/off arguments to @pdb
3634 (Magic.magic_run): added option -i to @run, which executes code in
3638 (Magic.magic_run): added option -i to @run, which executes code in
3635 the IPython namespace instead of a clean one. Also added @irun as
3639 the IPython namespace instead of a clean one. Also added @irun as
3636 an alias to @run -i.
3640 an alias to @run -i.
3637
3641
3638 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3642 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3639 fixed (it didn't really do anything, the namespaces were wrong).
3643 fixed (it didn't really do anything, the namespaces were wrong).
3640
3644
3641 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3645 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3642
3646
3643 * IPython/__init__.py (__all__): Fixed package namespace, now
3647 * IPython/__init__.py (__all__): Fixed package namespace, now
3644 'import IPython' does give access to IPython.<all> as
3648 'import IPython' does give access to IPython.<all> as
3645 expected. Also renamed __release__ to Release.
3649 expected. Also renamed __release__ to Release.
3646
3650
3647 * IPython/Debugger.py (__license__): created new Pdb class which
3651 * IPython/Debugger.py (__license__): created new Pdb class which
3648 functions like a drop-in for the normal pdb.Pdb but does NOT
3652 functions like a drop-in for the normal pdb.Pdb but does NOT
3649 import readline by default. This way it doesn't muck up IPython's
3653 import readline by default. This way it doesn't muck up IPython's
3650 readline handling, and now tab-completion finally works in the
3654 readline handling, and now tab-completion finally works in the
3651 debugger -- sort of. It completes things globally visible, but the
3655 debugger -- sort of. It completes things globally visible, but the
3652 completer doesn't track the stack as pdb walks it. That's a bit
3656 completer doesn't track the stack as pdb walks it. That's a bit
3653 tricky, and I'll have to implement it later.
3657 tricky, and I'll have to implement it later.
3654
3658
3655 2002-05-05 Fernando Perez <fperez@colorado.edu>
3659 2002-05-05 Fernando Perez <fperez@colorado.edu>
3656
3660
3657 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3661 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3658 magic docstrings when printed via ? (explicit \'s were being
3662 magic docstrings when printed via ? (explicit \'s were being
3659 printed).
3663 printed).
3660
3664
3661 * IPython/ipmaker.py (make_IPython): fixed namespace
3665 * IPython/ipmaker.py (make_IPython): fixed namespace
3662 identification bug. Now variables loaded via logs or command-line
3666 identification bug. Now variables loaded via logs or command-line
3663 files are recognized in the interactive namespace by @who.
3667 files are recognized in the interactive namespace by @who.
3664
3668
3665 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3669 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3666 log replay system stemming from the string form of Structs.
3670 log replay system stemming from the string form of Structs.
3667
3671
3668 * IPython/Magic.py (Macro.__init__): improved macros to properly
3672 * IPython/Magic.py (Macro.__init__): improved macros to properly
3669 handle magic commands in them.
3673 handle magic commands in them.
3670 (Magic.magic_logstart): usernames are now expanded so 'logstart
3674 (Magic.magic_logstart): usernames are now expanded so 'logstart
3671 ~/mylog' now works.
3675 ~/mylog' now works.
3672
3676
3673 * IPython/iplib.py (complete): fixed bug where paths starting with
3677 * IPython/iplib.py (complete): fixed bug where paths starting with
3674 '/' would be completed as magic names.
3678 '/' would be completed as magic names.
3675
3679
3676 2002-05-04 Fernando Perez <fperez@colorado.edu>
3680 2002-05-04 Fernando Perez <fperez@colorado.edu>
3677
3681
3678 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3682 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3679 allow running full programs under the profiler's control.
3683 allow running full programs under the profiler's control.
3680
3684
3681 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3685 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3682 mode to report exceptions verbosely but without formatting
3686 mode to report exceptions verbosely but without formatting
3683 variables. This addresses the issue of ipython 'freezing' (it's
3687 variables. This addresses the issue of ipython 'freezing' (it's
3684 not frozen, but caught in an expensive formatting loop) when huge
3688 not frozen, but caught in an expensive formatting loop) when huge
3685 variables are in the context of an exception.
3689 variables are in the context of an exception.
3686 (VerboseTB.text): Added '--->' markers at line where exception was
3690 (VerboseTB.text): Added '--->' markers at line where exception was
3687 triggered. Much clearer to read, especially in NoColor modes.
3691 triggered. Much clearer to read, especially in NoColor modes.
3688
3692
3689 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3693 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3690 implemented in reverse when changing to the new parse_options().
3694 implemented in reverse when changing to the new parse_options().
3691
3695
3692 2002-05-03 Fernando Perez <fperez@colorado.edu>
3696 2002-05-03 Fernando Perez <fperez@colorado.edu>
3693
3697
3694 * IPython/Magic.py (Magic.parse_options): new function so that
3698 * IPython/Magic.py (Magic.parse_options): new function so that
3695 magics can parse options easier.
3699 magics can parse options easier.
3696 (Magic.magic_prun): new function similar to profile.run(),
3700 (Magic.magic_prun): new function similar to profile.run(),
3697 suggested by Chris Hart.
3701 suggested by Chris Hart.
3698 (Magic.magic_cd): fixed behavior so that it only changes if
3702 (Magic.magic_cd): fixed behavior so that it only changes if
3699 directory actually is in history.
3703 directory actually is in history.
3700
3704
3701 * IPython/usage.py (__doc__): added information about potential
3705 * IPython/usage.py (__doc__): added information about potential
3702 slowness of Verbose exception mode when there are huge data
3706 slowness of Verbose exception mode when there are huge data
3703 structures to be formatted (thanks to Archie Paulson).
3707 structures to be formatted (thanks to Archie Paulson).
3704
3708
3705 * IPython/ipmaker.py (make_IPython): Changed default logging
3709 * IPython/ipmaker.py (make_IPython): Changed default logging
3706 (when simply called with -log) to use curr_dir/ipython.log in
3710 (when simply called with -log) to use curr_dir/ipython.log in
3707 rotate mode. Fixed crash which was occuring with -log before
3711 rotate mode. Fixed crash which was occuring with -log before
3708 (thanks to Jim Boyle).
3712 (thanks to Jim Boyle).
3709
3713
3710 2002-05-01 Fernando Perez <fperez@colorado.edu>
3714 2002-05-01 Fernando Perez <fperez@colorado.edu>
3711
3715
3712 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3716 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3713 was nasty -- though somewhat of a corner case).
3717 was nasty -- though somewhat of a corner case).
3714
3718
3715 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3719 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3716 text (was a bug).
3720 text (was a bug).
3717
3721
3718 2002-04-30 Fernando Perez <fperez@colorado.edu>
3722 2002-04-30 Fernando Perez <fperez@colorado.edu>
3719
3723
3720 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3724 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3721 a print after ^D or ^C from the user so that the In[] prompt
3725 a print after ^D or ^C from the user so that the In[] prompt
3722 doesn't over-run the gnuplot one.
3726 doesn't over-run the gnuplot one.
3723
3727
3724 2002-04-29 Fernando Perez <fperez@colorado.edu>
3728 2002-04-29 Fernando Perez <fperez@colorado.edu>
3725
3729
3726 * Released 0.2.10
3730 * Released 0.2.10
3727
3731
3728 * IPython/__release__.py (version): get date dynamically.
3732 * IPython/__release__.py (version): get date dynamically.
3729
3733
3730 * Misc. documentation updates thanks to Arnd's comments. Also ran
3734 * Misc. documentation updates thanks to Arnd's comments. Also ran
3731 a full spellcheck on the manual (hadn't been done in a while).
3735 a full spellcheck on the manual (hadn't been done in a while).
3732
3736
3733 2002-04-27 Fernando Perez <fperez@colorado.edu>
3737 2002-04-27 Fernando Perez <fperez@colorado.edu>
3734
3738
3735 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3739 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3736 starting a log in mid-session would reset the input history list.
3740 starting a log in mid-session would reset the input history list.
3737
3741
3738 2002-04-26 Fernando Perez <fperez@colorado.edu>
3742 2002-04-26 Fernando Perez <fperez@colorado.edu>
3739
3743
3740 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3744 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3741 all files were being included in an update. Now anything in
3745 all files were being included in an update. Now anything in
3742 UserConfig that matches [A-Za-z]*.py will go (this excludes
3746 UserConfig that matches [A-Za-z]*.py will go (this excludes
3743 __init__.py)
3747 __init__.py)
3744
3748
3745 2002-04-25 Fernando Perez <fperez@colorado.edu>
3749 2002-04-25 Fernando Perez <fperez@colorado.edu>
3746
3750
3747 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3751 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3748 to __builtins__ so that any form of embedded or imported code can
3752 to __builtins__ so that any form of embedded or imported code can
3749 test for being inside IPython.
3753 test for being inside IPython.
3750
3754
3751 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3755 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3752 changed to GnuplotMagic because it's now an importable module,
3756 changed to GnuplotMagic because it's now an importable module,
3753 this makes the name follow that of the standard Gnuplot module.
3757 this makes the name follow that of the standard Gnuplot module.
3754 GnuplotMagic can now be loaded at any time in mid-session.
3758 GnuplotMagic can now be loaded at any time in mid-session.
3755
3759
3756 2002-04-24 Fernando Perez <fperez@colorado.edu>
3760 2002-04-24 Fernando Perez <fperez@colorado.edu>
3757
3761
3758 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3762 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3759 the globals (IPython has its own namespace) and the
3763 the globals (IPython has its own namespace) and the
3760 PhysicalQuantity stuff is much better anyway.
3764 PhysicalQuantity stuff is much better anyway.
3761
3765
3762 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3766 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3763 embedding example to standard user directory for
3767 embedding example to standard user directory for
3764 distribution. Also put it in the manual.
3768 distribution. Also put it in the manual.
3765
3769
3766 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3770 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3767 instance as first argument (so it doesn't rely on some obscure
3771 instance as first argument (so it doesn't rely on some obscure
3768 hidden global).
3772 hidden global).
3769
3773
3770 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3774 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3771 delimiters. While it prevents ().TAB from working, it allows
3775 delimiters. While it prevents ().TAB from working, it allows
3772 completions in open (... expressions. This is by far a more common
3776 completions in open (... expressions. This is by far a more common
3773 case.
3777 case.
3774
3778
3775 2002-04-23 Fernando Perez <fperez@colorado.edu>
3779 2002-04-23 Fernando Perez <fperez@colorado.edu>
3776
3780
3777 * IPython/Extensions/InterpreterPasteInput.py: new
3781 * IPython/Extensions/InterpreterPasteInput.py: new
3778 syntax-processing module for pasting lines with >>> or ... at the
3782 syntax-processing module for pasting lines with >>> or ... at the
3779 start.
3783 start.
3780
3784
3781 * IPython/Extensions/PhysicalQ_Interactive.py
3785 * IPython/Extensions/PhysicalQ_Interactive.py
3782 (PhysicalQuantityInteractive.__int__): fixed to work with either
3786 (PhysicalQuantityInteractive.__int__): fixed to work with either
3783 Numeric or math.
3787 Numeric or math.
3784
3788
3785 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3789 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3786 provided profiles. Now we have:
3790 provided profiles. Now we have:
3787 -math -> math module as * and cmath with its own namespace.
3791 -math -> math module as * and cmath with its own namespace.
3788 -numeric -> Numeric as *, plus gnuplot & grace
3792 -numeric -> Numeric as *, plus gnuplot & grace
3789 -physics -> same as before
3793 -physics -> same as before
3790
3794
3791 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3795 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3792 user-defined magics wouldn't be found by @magic if they were
3796 user-defined magics wouldn't be found by @magic if they were
3793 defined as class methods. Also cleaned up the namespace search
3797 defined as class methods. Also cleaned up the namespace search
3794 logic and the string building (to use %s instead of many repeated
3798 logic and the string building (to use %s instead of many repeated
3795 string adds).
3799 string adds).
3796
3800
3797 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3801 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3798 of user-defined magics to operate with class methods (cleaner, in
3802 of user-defined magics to operate with class methods (cleaner, in
3799 line with the gnuplot code).
3803 line with the gnuplot code).
3800
3804
3801 2002-04-22 Fernando Perez <fperez@colorado.edu>
3805 2002-04-22 Fernando Perez <fperez@colorado.edu>
3802
3806
3803 * setup.py: updated dependency list so that manual is updated when
3807 * setup.py: updated dependency list so that manual is updated when
3804 all included files change.
3808 all included files change.
3805
3809
3806 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3810 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3807 the delimiter removal option (the fix is ugly right now).
3811 the delimiter removal option (the fix is ugly right now).
3808
3812
3809 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3813 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3810 all of the math profile (quicker loading, no conflict between
3814 all of the math profile (quicker loading, no conflict between
3811 g-9.8 and g-gnuplot).
3815 g-9.8 and g-gnuplot).
3812
3816
3813 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3817 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3814 name of post-mortem files to IPython_crash_report.txt.
3818 name of post-mortem files to IPython_crash_report.txt.
3815
3819
3816 * Cleanup/update of the docs. Added all the new readline info and
3820 * Cleanup/update of the docs. Added all the new readline info and
3817 formatted all lists as 'real lists'.
3821 formatted all lists as 'real lists'.
3818
3822
3819 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3823 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3820 tab-completion options, since the full readline parse_and_bind is
3824 tab-completion options, since the full readline parse_and_bind is
3821 now accessible.
3825 now accessible.
3822
3826
3823 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3827 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3824 handling of readline options. Now users can specify any string to
3828 handling of readline options. Now users can specify any string to
3825 be passed to parse_and_bind(), as well as the delimiters to be
3829 be passed to parse_and_bind(), as well as the delimiters to be
3826 removed.
3830 removed.
3827 (InteractiveShell.__init__): Added __name__ to the global
3831 (InteractiveShell.__init__): Added __name__ to the global
3828 namespace so that things like Itpl which rely on its existence
3832 namespace so that things like Itpl which rely on its existence
3829 don't crash.
3833 don't crash.
3830 (InteractiveShell._prefilter): Defined the default with a _ so
3834 (InteractiveShell._prefilter): Defined the default with a _ so
3831 that prefilter() is easier to override, while the default one
3835 that prefilter() is easier to override, while the default one
3832 remains available.
3836 remains available.
3833
3837
3834 2002-04-18 Fernando Perez <fperez@colorado.edu>
3838 2002-04-18 Fernando Perez <fperez@colorado.edu>
3835
3839
3836 * Added information about pdb in the docs.
3840 * Added information about pdb in the docs.
3837
3841
3838 2002-04-17 Fernando Perez <fperez@colorado.edu>
3842 2002-04-17 Fernando Perez <fperez@colorado.edu>
3839
3843
3840 * IPython/ipmaker.py (make_IPython): added rc_override option to
3844 * IPython/ipmaker.py (make_IPython): added rc_override option to
3841 allow passing config options at creation time which may override
3845 allow passing config options at creation time which may override
3842 anything set in the config files or command line. This is
3846 anything set in the config files or command line. This is
3843 particularly useful for configuring embedded instances.
3847 particularly useful for configuring embedded instances.
3844
3848
3845 2002-04-15 Fernando Perez <fperez@colorado.edu>
3849 2002-04-15 Fernando Perez <fperez@colorado.edu>
3846
3850
3847 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3851 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3848 crash embedded instances because of the input cache falling out of
3852 crash embedded instances because of the input cache falling out of
3849 sync with the output counter.
3853 sync with the output counter.
3850
3854
3851 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3855 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3852 mode which calls pdb after an uncaught exception in IPython itself.
3856 mode which calls pdb after an uncaught exception in IPython itself.
3853
3857
3854 2002-04-14 Fernando Perez <fperez@colorado.edu>
3858 2002-04-14 Fernando Perez <fperez@colorado.edu>
3855
3859
3856 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3860 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3857 readline, fix it back after each call.
3861 readline, fix it back after each call.
3858
3862
3859 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3863 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3860 method to force all access via __call__(), which guarantees that
3864 method to force all access via __call__(), which guarantees that
3861 traceback references are properly deleted.
3865 traceback references are properly deleted.
3862
3866
3863 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3867 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3864 improve printing when pprint is in use.
3868 improve printing when pprint is in use.
3865
3869
3866 2002-04-13 Fernando Perez <fperez@colorado.edu>
3870 2002-04-13 Fernando Perez <fperez@colorado.edu>
3867
3871
3868 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3872 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3869 exceptions aren't caught anymore. If the user triggers one, he
3873 exceptions aren't caught anymore. If the user triggers one, he
3870 should know why he's doing it and it should go all the way up,
3874 should know why he's doing it and it should go all the way up,
3871 just like any other exception. So now @abort will fully kill the
3875 just like any other exception. So now @abort will fully kill the
3872 embedded interpreter and the embedding code (unless that happens
3876 embedded interpreter and the embedding code (unless that happens
3873 to catch SystemExit).
3877 to catch SystemExit).
3874
3878
3875 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3879 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3876 and a debugger() method to invoke the interactive pdb debugger
3880 and a debugger() method to invoke the interactive pdb debugger
3877 after printing exception information. Also added the corresponding
3881 after printing exception information. Also added the corresponding
3878 -pdb option and @pdb magic to control this feature, and updated
3882 -pdb option and @pdb magic to control this feature, and updated
3879 the docs. After a suggestion from Christopher Hart
3883 the docs. After a suggestion from Christopher Hart
3880 (hart-AT-caltech.edu).
3884 (hart-AT-caltech.edu).
3881
3885
3882 2002-04-12 Fernando Perez <fperez@colorado.edu>
3886 2002-04-12 Fernando Perez <fperez@colorado.edu>
3883
3887
3884 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3888 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3885 the exception handlers defined by the user (not the CrashHandler)
3889 the exception handlers defined by the user (not the CrashHandler)
3886 so that user exceptions don't trigger an ipython bug report.
3890 so that user exceptions don't trigger an ipython bug report.
3887
3891
3888 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3892 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3889 configurable (it should have always been so).
3893 configurable (it should have always been so).
3890
3894
3891 2002-03-26 Fernando Perez <fperez@colorado.edu>
3895 2002-03-26 Fernando Perez <fperez@colorado.edu>
3892
3896
3893 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3897 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3894 and there to fix embedding namespace issues. This should all be
3898 and there to fix embedding namespace issues. This should all be
3895 done in a more elegant way.
3899 done in a more elegant way.
3896
3900
3897 2002-03-25 Fernando Perez <fperez@colorado.edu>
3901 2002-03-25 Fernando Perez <fperez@colorado.edu>
3898
3902
3899 * IPython/genutils.py (get_home_dir): Try to make it work under
3903 * IPython/genutils.py (get_home_dir): Try to make it work under
3900 win9x also.
3904 win9x also.
3901
3905
3902 2002-03-20 Fernando Perez <fperez@colorado.edu>
3906 2002-03-20 Fernando Perez <fperez@colorado.edu>
3903
3907
3904 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3908 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3905 sys.displayhook untouched upon __init__.
3909 sys.displayhook untouched upon __init__.
3906
3910
3907 2002-03-19 Fernando Perez <fperez@colorado.edu>
3911 2002-03-19 Fernando Perez <fperez@colorado.edu>
3908
3912
3909 * Released 0.2.9 (for embedding bug, basically).
3913 * Released 0.2.9 (for embedding bug, basically).
3910
3914
3911 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3915 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3912 exceptions so that enclosing shell's state can be restored.
3916 exceptions so that enclosing shell's state can be restored.
3913
3917
3914 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3918 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3915 naming conventions in the .ipython/ dir.
3919 naming conventions in the .ipython/ dir.
3916
3920
3917 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3921 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3918 from delimiters list so filenames with - in them get expanded.
3922 from delimiters list so filenames with - in them get expanded.
3919
3923
3920 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3924 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3921 sys.displayhook not being properly restored after an embedded call.
3925 sys.displayhook not being properly restored after an embedded call.
3922
3926
3923 2002-03-18 Fernando Perez <fperez@colorado.edu>
3927 2002-03-18 Fernando Perez <fperez@colorado.edu>
3924
3928
3925 * Released 0.2.8
3929 * Released 0.2.8
3926
3930
3927 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3931 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3928 some files weren't being included in a -upgrade.
3932 some files weren't being included in a -upgrade.
3929 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3933 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3930 on' so that the first tab completes.
3934 on' so that the first tab completes.
3931 (InteractiveShell.handle_magic): fixed bug with spaces around
3935 (InteractiveShell.handle_magic): fixed bug with spaces around
3932 quotes breaking many magic commands.
3936 quotes breaking many magic commands.
3933
3937
3934 * setup.py: added note about ignoring the syntax error messages at
3938 * setup.py: added note about ignoring the syntax error messages at
3935 installation.
3939 installation.
3936
3940
3937 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3941 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3938 streamlining the gnuplot interface, now there's only one magic @gp.
3942 streamlining the gnuplot interface, now there's only one magic @gp.
3939
3943
3940 2002-03-17 Fernando Perez <fperez@colorado.edu>
3944 2002-03-17 Fernando Perez <fperez@colorado.edu>
3941
3945
3942 * IPython/UserConfig/magic_gnuplot.py: new name for the
3946 * IPython/UserConfig/magic_gnuplot.py: new name for the
3943 example-magic_pm.py file. Much enhanced system, now with a shell
3947 example-magic_pm.py file. Much enhanced system, now with a shell
3944 for communicating directly with gnuplot, one command at a time.
3948 for communicating directly with gnuplot, one command at a time.
3945
3949
3946 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3950 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3947 setting __name__=='__main__'.
3951 setting __name__=='__main__'.
3948
3952
3949 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3953 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3950 mini-shell for accessing gnuplot from inside ipython. Should
3954 mini-shell for accessing gnuplot from inside ipython. Should
3951 extend it later for grace access too. Inspired by Arnd's
3955 extend it later for grace access too. Inspired by Arnd's
3952 suggestion.
3956 suggestion.
3953
3957
3954 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3958 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3955 calling magic functions with () in their arguments. Thanks to Arnd
3959 calling magic functions with () in their arguments. Thanks to Arnd
3956 Baecker for pointing this to me.
3960 Baecker for pointing this to me.
3957
3961
3958 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3962 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3959 infinitely for integer or complex arrays (only worked with floats).
3963 infinitely for integer or complex arrays (only worked with floats).
3960
3964
3961 2002-03-16 Fernando Perez <fperez@colorado.edu>
3965 2002-03-16 Fernando Perez <fperez@colorado.edu>
3962
3966
3963 * setup.py: Merged setup and setup_windows into a single script
3967 * setup.py: Merged setup and setup_windows into a single script
3964 which properly handles things for windows users.
3968 which properly handles things for windows users.
3965
3969
3966 2002-03-15 Fernando Perez <fperez@colorado.edu>
3970 2002-03-15 Fernando Perez <fperez@colorado.edu>
3967
3971
3968 * Big change to the manual: now the magics are all automatically
3972 * Big change to the manual: now the magics are all automatically
3969 documented. This information is generated from their docstrings
3973 documented. This information is generated from their docstrings
3970 and put in a latex file included by the manual lyx file. This way
3974 and put in a latex file included by the manual lyx file. This way
3971 we get always up to date information for the magics. The manual
3975 we get always up to date information for the magics. The manual
3972 now also has proper version information, also auto-synced.
3976 now also has proper version information, also auto-synced.
3973
3977
3974 For this to work, an undocumented --magic_docstrings option was added.
3978 For this to work, an undocumented --magic_docstrings option was added.
3975
3979
3976 2002-03-13 Fernando Perez <fperez@colorado.edu>
3980 2002-03-13 Fernando Perez <fperez@colorado.edu>
3977
3981
3978 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3982 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3979 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3983 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3980
3984
3981 2002-03-12 Fernando Perez <fperez@colorado.edu>
3985 2002-03-12 Fernando Perez <fperez@colorado.edu>
3982
3986
3983 * IPython/ultraTB.py (TermColors): changed color escapes again to
3987 * IPython/ultraTB.py (TermColors): changed color escapes again to
3984 fix the (old, reintroduced) line-wrapping bug. Basically, if
3988 fix the (old, reintroduced) line-wrapping bug. Basically, if
3985 \001..\002 aren't given in the color escapes, lines get wrapped
3989 \001..\002 aren't given in the color escapes, lines get wrapped
3986 weirdly. But giving those screws up old xterms and emacs terms. So
3990 weirdly. But giving those screws up old xterms and emacs terms. So
3987 I added some logic for emacs terms to be ok, but I can't identify old
3991 I added some logic for emacs terms to be ok, but I can't identify old
3988 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3992 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3989
3993
3990 2002-03-10 Fernando Perez <fperez@colorado.edu>
3994 2002-03-10 Fernando Perez <fperez@colorado.edu>
3991
3995
3992 * IPython/usage.py (__doc__): Various documentation cleanups and
3996 * IPython/usage.py (__doc__): Various documentation cleanups and
3993 updates, both in usage docstrings and in the manual.
3997 updates, both in usage docstrings and in the manual.
3994
3998
3995 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3999 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3996 handling of caching. Set minimum acceptabe value for having a
4000 handling of caching. Set minimum acceptabe value for having a
3997 cache at 20 values.
4001 cache at 20 values.
3998
4002
3999 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4003 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4000 install_first_time function to a method, renamed it and added an
4004 install_first_time function to a method, renamed it and added an
4001 'upgrade' mode. Now people can update their config directory with
4005 'upgrade' mode. Now people can update their config directory with
4002 a simple command line switch (-upgrade, also new).
4006 a simple command line switch (-upgrade, also new).
4003
4007
4004 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4008 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4005 @file (convenient for automagic users under Python >= 2.2).
4009 @file (convenient for automagic users under Python >= 2.2).
4006 Removed @files (it seemed more like a plural than an abbrev. of
4010 Removed @files (it seemed more like a plural than an abbrev. of
4007 'file show').
4011 'file show').
4008
4012
4009 * IPython/iplib.py (install_first_time): Fixed crash if there were
4013 * IPython/iplib.py (install_first_time): Fixed crash if there were
4010 backup files ('~') in .ipython/ install directory.
4014 backup files ('~') in .ipython/ install directory.
4011
4015
4012 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4016 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4013 system. Things look fine, but these changes are fairly
4017 system. Things look fine, but these changes are fairly
4014 intrusive. Test them for a few days.
4018 intrusive. Test them for a few days.
4015
4019
4016 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4020 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4017 the prompts system. Now all in/out prompt strings are user
4021 the prompts system. Now all in/out prompt strings are user
4018 controllable. This is particularly useful for embedding, as one
4022 controllable. This is particularly useful for embedding, as one
4019 can tag embedded instances with particular prompts.
4023 can tag embedded instances with particular prompts.
4020
4024
4021 Also removed global use of sys.ps1/2, which now allows nested
4025 Also removed global use of sys.ps1/2, which now allows nested
4022 embeddings without any problems. Added command-line options for
4026 embeddings without any problems. Added command-line options for
4023 the prompt strings.
4027 the prompt strings.
4024
4028
4025 2002-03-08 Fernando Perez <fperez@colorado.edu>
4029 2002-03-08 Fernando Perez <fperez@colorado.edu>
4026
4030
4027 * IPython/UserConfig/example-embed-short.py (ipshell): added
4031 * IPython/UserConfig/example-embed-short.py (ipshell): added
4028 example file with the bare minimum code for embedding.
4032 example file with the bare minimum code for embedding.
4029
4033
4030 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4034 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4031 functionality for the embeddable shell to be activated/deactivated
4035 functionality for the embeddable shell to be activated/deactivated
4032 either globally or at each call.
4036 either globally or at each call.
4033
4037
4034 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4038 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4035 rewriting the prompt with '--->' for auto-inputs with proper
4039 rewriting the prompt with '--->' for auto-inputs with proper
4036 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4040 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4037 this is handled by the prompts class itself, as it should.
4041 this is handled by the prompts class itself, as it should.
4038
4042
4039 2002-03-05 Fernando Perez <fperez@colorado.edu>
4043 2002-03-05 Fernando Perez <fperez@colorado.edu>
4040
4044
4041 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4045 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4042 @logstart to avoid name clashes with the math log function.
4046 @logstart to avoid name clashes with the math log function.
4043
4047
4044 * Big updates to X/Emacs section of the manual.
4048 * Big updates to X/Emacs section of the manual.
4045
4049
4046 * Removed ipython_emacs. Milan explained to me how to pass
4050 * Removed ipython_emacs. Milan explained to me how to pass
4047 arguments to ipython through Emacs. Some day I'm going to end up
4051 arguments to ipython through Emacs. Some day I'm going to end up
4048 learning some lisp...
4052 learning some lisp...
4049
4053
4050 2002-03-04 Fernando Perez <fperez@colorado.edu>
4054 2002-03-04 Fernando Perez <fperez@colorado.edu>
4051
4055
4052 * IPython/ipython_emacs: Created script to be used as the
4056 * IPython/ipython_emacs: Created script to be used as the
4053 py-python-command Emacs variable so we can pass IPython
4057 py-python-command Emacs variable so we can pass IPython
4054 parameters. I can't figure out how to tell Emacs directly to pass
4058 parameters. I can't figure out how to tell Emacs directly to pass
4055 parameters to IPython, so a dummy shell script will do it.
4059 parameters to IPython, so a dummy shell script will do it.
4056
4060
4057 Other enhancements made for things to work better under Emacs'
4061 Other enhancements made for things to work better under Emacs'
4058 various types of terminals. Many thanks to Milan Zamazal
4062 various types of terminals. Many thanks to Milan Zamazal
4059 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4063 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4060
4064
4061 2002-03-01 Fernando Perez <fperez@colorado.edu>
4065 2002-03-01 Fernando Perez <fperez@colorado.edu>
4062
4066
4063 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4067 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4064 that loading of readline is now optional. This gives better
4068 that loading of readline is now optional. This gives better
4065 control to emacs users.
4069 control to emacs users.
4066
4070
4067 * IPython/ultraTB.py (__date__): Modified color escape sequences
4071 * IPython/ultraTB.py (__date__): Modified color escape sequences
4068 and now things work fine under xterm and in Emacs' term buffers
4072 and now things work fine under xterm and in Emacs' term buffers
4069 (though not shell ones). Well, in emacs you get colors, but all
4073 (though not shell ones). Well, in emacs you get colors, but all
4070 seem to be 'light' colors (no difference between dark and light
4074 seem to be 'light' colors (no difference between dark and light
4071 ones). But the garbage chars are gone, and also in xterms. It
4075 ones). But the garbage chars are gone, and also in xterms. It
4072 seems that now I'm using 'cleaner' ansi sequences.
4076 seems that now I'm using 'cleaner' ansi sequences.
4073
4077
4074 2002-02-21 Fernando Perez <fperez@colorado.edu>
4078 2002-02-21 Fernando Perez <fperez@colorado.edu>
4075
4079
4076 * Released 0.2.7 (mainly to publish the scoping fix).
4080 * Released 0.2.7 (mainly to publish the scoping fix).
4077
4081
4078 * IPython/Logger.py (Logger.logstate): added. A corresponding
4082 * IPython/Logger.py (Logger.logstate): added. A corresponding
4079 @logstate magic was created.
4083 @logstate magic was created.
4080
4084
4081 * IPython/Magic.py: fixed nested scoping problem under Python
4085 * IPython/Magic.py: fixed nested scoping problem under Python
4082 2.1.x (automagic wasn't working).
4086 2.1.x (automagic wasn't working).
4083
4087
4084 2002-02-20 Fernando Perez <fperez@colorado.edu>
4088 2002-02-20 Fernando Perez <fperez@colorado.edu>
4085
4089
4086 * Released 0.2.6.
4090 * Released 0.2.6.
4087
4091
4088 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4092 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4089 option so that logs can come out without any headers at all.
4093 option so that logs can come out without any headers at all.
4090
4094
4091 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4095 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4092 SciPy.
4096 SciPy.
4093
4097
4094 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4098 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4095 that embedded IPython calls don't require vars() to be explicitly
4099 that embedded IPython calls don't require vars() to be explicitly
4096 passed. Now they are extracted from the caller's frame (code
4100 passed. Now they are extracted from the caller's frame (code
4097 snatched from Eric Jones' weave). Added better documentation to
4101 snatched from Eric Jones' weave). Added better documentation to
4098 the section on embedding and the example file.
4102 the section on embedding and the example file.
4099
4103
4100 * IPython/genutils.py (page): Changed so that under emacs, it just
4104 * IPython/genutils.py (page): Changed so that under emacs, it just
4101 prints the string. You can then page up and down in the emacs
4105 prints the string. You can then page up and down in the emacs
4102 buffer itself. This is how the builtin help() works.
4106 buffer itself. This is how the builtin help() works.
4103
4107
4104 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4108 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4105 macro scoping: macros need to be executed in the user's namespace
4109 macro scoping: macros need to be executed in the user's namespace
4106 to work as if they had been typed by the user.
4110 to work as if they had been typed by the user.
4107
4111
4108 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4112 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4109 execute automatically (no need to type 'exec...'). They then
4113 execute automatically (no need to type 'exec...'). They then
4110 behave like 'true macros'. The printing system was also modified
4114 behave like 'true macros'. The printing system was also modified
4111 for this to work.
4115 for this to work.
4112
4116
4113 2002-02-19 Fernando Perez <fperez@colorado.edu>
4117 2002-02-19 Fernando Perez <fperez@colorado.edu>
4114
4118
4115 * IPython/genutils.py (page_file): new function for paging files
4119 * IPython/genutils.py (page_file): new function for paging files
4116 in an OS-independent way. Also necessary for file viewing to work
4120 in an OS-independent way. Also necessary for file viewing to work
4117 well inside Emacs buffers.
4121 well inside Emacs buffers.
4118 (page): Added checks for being in an emacs buffer.
4122 (page): Added checks for being in an emacs buffer.
4119 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4123 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4120 same bug in iplib.
4124 same bug in iplib.
4121
4125
4122 2002-02-18 Fernando Perez <fperez@colorado.edu>
4126 2002-02-18 Fernando Perez <fperez@colorado.edu>
4123
4127
4124 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4128 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4125 of readline so that IPython can work inside an Emacs buffer.
4129 of readline so that IPython can work inside an Emacs buffer.
4126
4130
4127 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4131 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4128 method signatures (they weren't really bugs, but it looks cleaner
4132 method signatures (they weren't really bugs, but it looks cleaner
4129 and keeps PyChecker happy).
4133 and keeps PyChecker happy).
4130
4134
4131 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4135 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4132 for implementing various user-defined hooks. Currently only
4136 for implementing various user-defined hooks. Currently only
4133 display is done.
4137 display is done.
4134
4138
4135 * IPython/Prompts.py (CachedOutput._display): changed display
4139 * IPython/Prompts.py (CachedOutput._display): changed display
4136 functions so that they can be dynamically changed by users easily.
4140 functions so that they can be dynamically changed by users easily.
4137
4141
4138 * IPython/Extensions/numeric_formats.py (num_display): added an
4142 * IPython/Extensions/numeric_formats.py (num_display): added an
4139 extension for printing NumPy arrays in flexible manners. It
4143 extension for printing NumPy arrays in flexible manners. It
4140 doesn't do anything yet, but all the structure is in
4144 doesn't do anything yet, but all the structure is in
4141 place. Ultimately the plan is to implement output format control
4145 place. Ultimately the plan is to implement output format control
4142 like in Octave.
4146 like in Octave.
4143
4147
4144 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4148 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4145 methods are found at run-time by all the automatic machinery.
4149 methods are found at run-time by all the automatic machinery.
4146
4150
4147 2002-02-17 Fernando Perez <fperez@colorado.edu>
4151 2002-02-17 Fernando Perez <fperez@colorado.edu>
4148
4152
4149 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4153 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4150 whole file a little.
4154 whole file a little.
4151
4155
4152 * ToDo: closed this document. Now there's a new_design.lyx
4156 * ToDo: closed this document. Now there's a new_design.lyx
4153 document for all new ideas. Added making a pdf of it for the
4157 document for all new ideas. Added making a pdf of it for the
4154 end-user distro.
4158 end-user distro.
4155
4159
4156 * IPython/Logger.py (Logger.switch_log): Created this to replace
4160 * IPython/Logger.py (Logger.switch_log): Created this to replace
4157 logon() and logoff(). It also fixes a nasty crash reported by
4161 logon() and logoff(). It also fixes a nasty crash reported by
4158 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4162 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4159
4163
4160 * IPython/iplib.py (complete): got auto-completion to work with
4164 * IPython/iplib.py (complete): got auto-completion to work with
4161 automagic (I had wanted this for a long time).
4165 automagic (I had wanted this for a long time).
4162
4166
4163 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4167 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4164 to @file, since file() is now a builtin and clashes with automagic
4168 to @file, since file() is now a builtin and clashes with automagic
4165 for @file.
4169 for @file.
4166
4170
4167 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4171 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4168 of this was previously in iplib, which had grown to more than 2000
4172 of this was previously in iplib, which had grown to more than 2000
4169 lines, way too long. No new functionality, but it makes managing
4173 lines, way too long. No new functionality, but it makes managing
4170 the code a bit easier.
4174 the code a bit easier.
4171
4175
4172 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4176 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4173 information to crash reports.
4177 information to crash reports.
4174
4178
4175 2002-02-12 Fernando Perez <fperez@colorado.edu>
4179 2002-02-12 Fernando Perez <fperez@colorado.edu>
4176
4180
4177 * Released 0.2.5.
4181 * Released 0.2.5.
4178
4182
4179 2002-02-11 Fernando Perez <fperez@colorado.edu>
4183 2002-02-11 Fernando Perez <fperez@colorado.edu>
4180
4184
4181 * Wrote a relatively complete Windows installer. It puts
4185 * Wrote a relatively complete Windows installer. It puts
4182 everything in place, creates Start Menu entries and fixes the
4186 everything in place, creates Start Menu entries and fixes the
4183 color issues. Nothing fancy, but it works.
4187 color issues. Nothing fancy, but it works.
4184
4188
4185 2002-02-10 Fernando Perez <fperez@colorado.edu>
4189 2002-02-10 Fernando Perez <fperez@colorado.edu>
4186
4190
4187 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4191 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4188 os.path.expanduser() call so that we can type @run ~/myfile.py and
4192 os.path.expanduser() call so that we can type @run ~/myfile.py and
4189 have thigs work as expected.
4193 have thigs work as expected.
4190
4194
4191 * IPython/genutils.py (page): fixed exception handling so things
4195 * IPython/genutils.py (page): fixed exception handling so things
4192 work both in Unix and Windows correctly. Quitting a pager triggers
4196 work both in Unix and Windows correctly. Quitting a pager triggers
4193 an IOError/broken pipe in Unix, and in windows not finding a pager
4197 an IOError/broken pipe in Unix, and in windows not finding a pager
4194 is also an IOError, so I had to actually look at the return value
4198 is also an IOError, so I had to actually look at the return value
4195 of the exception, not just the exception itself. Should be ok now.
4199 of the exception, not just the exception itself. Should be ok now.
4196
4200
4197 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4201 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4198 modified to allow case-insensitive color scheme changes.
4202 modified to allow case-insensitive color scheme changes.
4199
4203
4200 2002-02-09 Fernando Perez <fperez@colorado.edu>
4204 2002-02-09 Fernando Perez <fperez@colorado.edu>
4201
4205
4202 * IPython/genutils.py (native_line_ends): new function to leave
4206 * IPython/genutils.py (native_line_ends): new function to leave
4203 user config files with os-native line-endings.
4207 user config files with os-native line-endings.
4204
4208
4205 * README and manual updates.
4209 * README and manual updates.
4206
4210
4207 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4211 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4208 instead of StringType to catch Unicode strings.
4212 instead of StringType to catch Unicode strings.
4209
4213
4210 * IPython/genutils.py (filefind): fixed bug for paths with
4214 * IPython/genutils.py (filefind): fixed bug for paths with
4211 embedded spaces (very common in Windows).
4215 embedded spaces (very common in Windows).
4212
4216
4213 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4217 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4214 files under Windows, so that they get automatically associated
4218 files under Windows, so that they get automatically associated
4215 with a text editor. Windows makes it a pain to handle
4219 with a text editor. Windows makes it a pain to handle
4216 extension-less files.
4220 extension-less files.
4217
4221
4218 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4222 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4219 warning about readline only occur for Posix. In Windows there's no
4223 warning about readline only occur for Posix. In Windows there's no
4220 way to get readline, so why bother with the warning.
4224 way to get readline, so why bother with the warning.
4221
4225
4222 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4226 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4223 for __str__ instead of dir(self), since dir() changed in 2.2.
4227 for __str__ instead of dir(self), since dir() changed in 2.2.
4224
4228
4225 * Ported to Windows! Tested on XP, I suspect it should work fine
4229 * Ported to Windows! Tested on XP, I suspect it should work fine
4226 on NT/2000, but I don't think it will work on 98 et al. That
4230 on NT/2000, but I don't think it will work on 98 et al. That
4227 series of Windows is such a piece of junk anyway that I won't try
4231 series of Windows is such a piece of junk anyway that I won't try
4228 porting it there. The XP port was straightforward, showed a few
4232 porting it there. The XP port was straightforward, showed a few
4229 bugs here and there (fixed all), in particular some string
4233 bugs here and there (fixed all), in particular some string
4230 handling stuff which required considering Unicode strings (which
4234 handling stuff which required considering Unicode strings (which
4231 Windows uses). This is good, but hasn't been too tested :) No
4235 Windows uses). This is good, but hasn't been too tested :) No
4232 fancy installer yet, I'll put a note in the manual so people at
4236 fancy installer yet, I'll put a note in the manual so people at
4233 least make manually a shortcut.
4237 least make manually a shortcut.
4234
4238
4235 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4239 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4236 into a single one, "colors". This now controls both prompt and
4240 into a single one, "colors". This now controls both prompt and
4237 exception color schemes, and can be changed both at startup
4241 exception color schemes, and can be changed both at startup
4238 (either via command-line switches or via ipythonrc files) and at
4242 (either via command-line switches or via ipythonrc files) and at
4239 runtime, with @colors.
4243 runtime, with @colors.
4240 (Magic.magic_run): renamed @prun to @run and removed the old
4244 (Magic.magic_run): renamed @prun to @run and removed the old
4241 @run. The two were too similar to warrant keeping both.
4245 @run. The two were too similar to warrant keeping both.
4242
4246
4243 2002-02-03 Fernando Perez <fperez@colorado.edu>
4247 2002-02-03 Fernando Perez <fperez@colorado.edu>
4244
4248
4245 * IPython/iplib.py (install_first_time): Added comment on how to
4249 * IPython/iplib.py (install_first_time): Added comment on how to
4246 configure the color options for first-time users. Put a <return>
4250 configure the color options for first-time users. Put a <return>
4247 request at the end so that small-terminal users get a chance to
4251 request at the end so that small-terminal users get a chance to
4248 read the startup info.
4252 read the startup info.
4249
4253
4250 2002-01-23 Fernando Perez <fperez@colorado.edu>
4254 2002-01-23 Fernando Perez <fperez@colorado.edu>
4251
4255
4252 * IPython/iplib.py (CachedOutput.update): Changed output memory
4256 * IPython/iplib.py (CachedOutput.update): Changed output memory
4253 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4257 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4254 input history we still use _i. Did this b/c these variable are
4258 input history we still use _i. Did this b/c these variable are
4255 very commonly used in interactive work, so the less we need to
4259 very commonly used in interactive work, so the less we need to
4256 type the better off we are.
4260 type the better off we are.
4257 (Magic.magic_prun): updated @prun to better handle the namespaces
4261 (Magic.magic_prun): updated @prun to better handle the namespaces
4258 the file will run in, including a fix for __name__ not being set
4262 the file will run in, including a fix for __name__ not being set
4259 before.
4263 before.
4260
4264
4261 2002-01-20 Fernando Perez <fperez@colorado.edu>
4265 2002-01-20 Fernando Perez <fperez@colorado.edu>
4262
4266
4263 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4267 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4264 extra garbage for Python 2.2. Need to look more carefully into
4268 extra garbage for Python 2.2. Need to look more carefully into
4265 this later.
4269 this later.
4266
4270
4267 2002-01-19 Fernando Perez <fperez@colorado.edu>
4271 2002-01-19 Fernando Perez <fperez@colorado.edu>
4268
4272
4269 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4273 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4270 display SyntaxError exceptions properly formatted when they occur
4274 display SyntaxError exceptions properly formatted when they occur
4271 (they can be triggered by imported code).
4275 (they can be triggered by imported code).
4272
4276
4273 2002-01-18 Fernando Perez <fperez@colorado.edu>
4277 2002-01-18 Fernando Perez <fperez@colorado.edu>
4274
4278
4275 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4279 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4276 SyntaxError exceptions are reported nicely formatted, instead of
4280 SyntaxError exceptions are reported nicely formatted, instead of
4277 spitting out only offset information as before.
4281 spitting out only offset information as before.
4278 (Magic.magic_prun): Added the @prun function for executing
4282 (Magic.magic_prun): Added the @prun function for executing
4279 programs with command line args inside IPython.
4283 programs with command line args inside IPython.
4280
4284
4281 2002-01-16 Fernando Perez <fperez@colorado.edu>
4285 2002-01-16 Fernando Perez <fperez@colorado.edu>
4282
4286
4283 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4287 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4284 to *not* include the last item given in a range. This brings their
4288 to *not* include the last item given in a range. This brings their
4285 behavior in line with Python's slicing:
4289 behavior in line with Python's slicing:
4286 a[n1:n2] -> a[n1]...a[n2-1]
4290 a[n1:n2] -> a[n1]...a[n2-1]
4287 It may be a bit less convenient, but I prefer to stick to Python's
4291 It may be a bit less convenient, but I prefer to stick to Python's
4288 conventions *everywhere*, so users never have to wonder.
4292 conventions *everywhere*, so users never have to wonder.
4289 (Magic.magic_macro): Added @macro function to ease the creation of
4293 (Magic.magic_macro): Added @macro function to ease the creation of
4290 macros.
4294 macros.
4291
4295
4292 2002-01-05 Fernando Perez <fperez@colorado.edu>
4296 2002-01-05 Fernando Perez <fperez@colorado.edu>
4293
4297
4294 * Released 0.2.4.
4298 * Released 0.2.4.
4295
4299
4296 * IPython/iplib.py (Magic.magic_pdef):
4300 * IPython/iplib.py (Magic.magic_pdef):
4297 (InteractiveShell.safe_execfile): report magic lines and error
4301 (InteractiveShell.safe_execfile): report magic lines and error
4298 lines without line numbers so one can easily copy/paste them for
4302 lines without line numbers so one can easily copy/paste them for
4299 re-execution.
4303 re-execution.
4300
4304
4301 * Updated manual with recent changes.
4305 * Updated manual with recent changes.
4302
4306
4303 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4307 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4304 docstring printing when class? is called. Very handy for knowing
4308 docstring printing when class? is called. Very handy for knowing
4305 how to create class instances (as long as __init__ is well
4309 how to create class instances (as long as __init__ is well
4306 documented, of course :)
4310 documented, of course :)
4307 (Magic.magic_doc): print both class and constructor docstrings.
4311 (Magic.magic_doc): print both class and constructor docstrings.
4308 (Magic.magic_pdef): give constructor info if passed a class and
4312 (Magic.magic_pdef): give constructor info if passed a class and
4309 __call__ info for callable object instances.
4313 __call__ info for callable object instances.
4310
4314
4311 2002-01-04 Fernando Perez <fperez@colorado.edu>
4315 2002-01-04 Fernando Perez <fperez@colorado.edu>
4312
4316
4313 * Made deep_reload() off by default. It doesn't always work
4317 * Made deep_reload() off by default. It doesn't always work
4314 exactly as intended, so it's probably safer to have it off. It's
4318 exactly as intended, so it's probably safer to have it off. It's
4315 still available as dreload() anyway, so nothing is lost.
4319 still available as dreload() anyway, so nothing is lost.
4316
4320
4317 2002-01-02 Fernando Perez <fperez@colorado.edu>
4321 2002-01-02 Fernando Perez <fperez@colorado.edu>
4318
4322
4319 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4323 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4320 so I wanted an updated release).
4324 so I wanted an updated release).
4321
4325
4322 2001-12-27 Fernando Perez <fperez@colorado.edu>
4326 2001-12-27 Fernando Perez <fperez@colorado.edu>
4323
4327
4324 * IPython/iplib.py (InteractiveShell.interact): Added the original
4328 * IPython/iplib.py (InteractiveShell.interact): Added the original
4325 code from 'code.py' for this module in order to change the
4329 code from 'code.py' for this module in order to change the
4326 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4330 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4327 the history cache would break when the user hit Ctrl-C, and
4331 the history cache would break when the user hit Ctrl-C, and
4328 interact() offers no way to add any hooks to it.
4332 interact() offers no way to add any hooks to it.
4329
4333
4330 2001-12-23 Fernando Perez <fperez@colorado.edu>
4334 2001-12-23 Fernando Perez <fperez@colorado.edu>
4331
4335
4332 * setup.py: added check for 'MANIFEST' before trying to remove
4336 * setup.py: added check for 'MANIFEST' before trying to remove
4333 it. Thanks to Sean Reifschneider.
4337 it. Thanks to Sean Reifschneider.
4334
4338
4335 2001-12-22 Fernando Perez <fperez@colorado.edu>
4339 2001-12-22 Fernando Perez <fperez@colorado.edu>
4336
4340
4337 * Released 0.2.2.
4341 * Released 0.2.2.
4338
4342
4339 * Finished (reasonably) writing the manual. Later will add the
4343 * Finished (reasonably) writing the manual. Later will add the
4340 python-standard navigation stylesheets, but for the time being
4344 python-standard navigation stylesheets, but for the time being
4341 it's fairly complete. Distribution will include html and pdf
4345 it's fairly complete. Distribution will include html and pdf
4342 versions.
4346 versions.
4343
4347
4344 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4348 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4345 (MayaVi author).
4349 (MayaVi author).
4346
4350
4347 2001-12-21 Fernando Perez <fperez@colorado.edu>
4351 2001-12-21 Fernando Perez <fperez@colorado.edu>
4348
4352
4349 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4353 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4350 good public release, I think (with the manual and the distutils
4354 good public release, I think (with the manual and the distutils
4351 installer). The manual can use some work, but that can go
4355 installer). The manual can use some work, but that can go
4352 slowly. Otherwise I think it's quite nice for end users. Next
4356 slowly. Otherwise I think it's quite nice for end users. Next
4353 summer, rewrite the guts of it...
4357 summer, rewrite the guts of it...
4354
4358
4355 * Changed format of ipythonrc files to use whitespace as the
4359 * Changed format of ipythonrc files to use whitespace as the
4356 separator instead of an explicit '='. Cleaner.
4360 separator instead of an explicit '='. Cleaner.
4357
4361
4358 2001-12-20 Fernando Perez <fperez@colorado.edu>
4362 2001-12-20 Fernando Perez <fperez@colorado.edu>
4359
4363
4360 * Started a manual in LyX. For now it's just a quick merge of the
4364 * Started a manual in LyX. For now it's just a quick merge of the
4361 various internal docstrings and READMEs. Later it may grow into a
4365 various internal docstrings and READMEs. Later it may grow into a
4362 nice, full-blown manual.
4366 nice, full-blown manual.
4363
4367
4364 * Set up a distutils based installer. Installation should now be
4368 * Set up a distutils based installer. Installation should now be
4365 trivially simple for end-users.
4369 trivially simple for end-users.
4366
4370
4367 2001-12-11 Fernando Perez <fperez@colorado.edu>
4371 2001-12-11 Fernando Perez <fperez@colorado.edu>
4368
4372
4369 * Released 0.2.0. First public release, announced it at
4373 * Released 0.2.0. First public release, announced it at
4370 comp.lang.python. From now on, just bugfixes...
4374 comp.lang.python. From now on, just bugfixes...
4371
4375
4372 * Went through all the files, set copyright/license notices and
4376 * Went through all the files, set copyright/license notices and
4373 cleaned up things. Ready for release.
4377 cleaned up things. Ready for release.
4374
4378
4375 2001-12-10 Fernando Perez <fperez@colorado.edu>
4379 2001-12-10 Fernando Perez <fperez@colorado.edu>
4376
4380
4377 * Changed the first-time installer not to use tarfiles. It's more
4381 * Changed the first-time installer not to use tarfiles. It's more
4378 robust now and less unix-dependent. Also makes it easier for
4382 robust now and less unix-dependent. Also makes it easier for
4379 people to later upgrade versions.
4383 people to later upgrade versions.
4380
4384
4381 * Changed @exit to @abort to reflect the fact that it's pretty
4385 * Changed @exit to @abort to reflect the fact that it's pretty
4382 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4386 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4383 becomes significant only when IPyhton is embedded: in that case,
4387 becomes significant only when IPyhton is embedded: in that case,
4384 C-D closes IPython only, but @abort kills the enclosing program
4388 C-D closes IPython only, but @abort kills the enclosing program
4385 too (unless it had called IPython inside a try catching
4389 too (unless it had called IPython inside a try catching
4386 SystemExit).
4390 SystemExit).
4387
4391
4388 * Created Shell module which exposes the actuall IPython Shell
4392 * Created Shell module which exposes the actuall IPython Shell
4389 classes, currently the normal and the embeddable one. This at
4393 classes, currently the normal and the embeddable one. This at
4390 least offers a stable interface we won't need to change when
4394 least offers a stable interface we won't need to change when
4391 (later) the internals are rewritten. That rewrite will be confined
4395 (later) the internals are rewritten. That rewrite will be confined
4392 to iplib and ipmaker, but the Shell interface should remain as is.
4396 to iplib and ipmaker, but the Shell interface should remain as is.
4393
4397
4394 * Added embed module which offers an embeddable IPShell object,
4398 * Added embed module which offers an embeddable IPShell object,
4395 useful to fire up IPython *inside* a running program. Great for
4399 useful to fire up IPython *inside* a running program. Great for
4396 debugging or dynamical data analysis.
4400 debugging or dynamical data analysis.
4397
4401
4398 2001-12-08 Fernando Perez <fperez@colorado.edu>
4402 2001-12-08 Fernando Perez <fperez@colorado.edu>
4399
4403
4400 * Fixed small bug preventing seeing info from methods of defined
4404 * Fixed small bug preventing seeing info from methods of defined
4401 objects (incorrect namespace in _ofind()).
4405 objects (incorrect namespace in _ofind()).
4402
4406
4403 * Documentation cleanup. Moved the main usage docstrings to a
4407 * Documentation cleanup. Moved the main usage docstrings to a
4404 separate file, usage.py (cleaner to maintain, and hopefully in the
4408 separate file, usage.py (cleaner to maintain, and hopefully in the
4405 future some perlpod-like way of producing interactive, man and
4409 future some perlpod-like way of producing interactive, man and
4406 html docs out of it will be found).
4410 html docs out of it will be found).
4407
4411
4408 * Added @profile to see your profile at any time.
4412 * Added @profile to see your profile at any time.
4409
4413
4410 * Added @p as an alias for 'print'. It's especially convenient if
4414 * Added @p as an alias for 'print'. It's especially convenient if
4411 using automagic ('p x' prints x).
4415 using automagic ('p x' prints x).
4412
4416
4413 * Small cleanups and fixes after a pychecker run.
4417 * Small cleanups and fixes after a pychecker run.
4414
4418
4415 * Changed the @cd command to handle @cd - and @cd -<n> for
4419 * Changed the @cd command to handle @cd - and @cd -<n> for
4416 visiting any directory in _dh.
4420 visiting any directory in _dh.
4417
4421
4418 * Introduced _dh, a history of visited directories. @dhist prints
4422 * Introduced _dh, a history of visited directories. @dhist prints
4419 it out with numbers.
4423 it out with numbers.
4420
4424
4421 2001-12-07 Fernando Perez <fperez@colorado.edu>
4425 2001-12-07 Fernando Perez <fperez@colorado.edu>
4422
4426
4423 * Released 0.1.22
4427 * Released 0.1.22
4424
4428
4425 * Made initialization a bit more robust against invalid color
4429 * Made initialization a bit more robust against invalid color
4426 options in user input (exit, not traceback-crash).
4430 options in user input (exit, not traceback-crash).
4427
4431
4428 * Changed the bug crash reporter to write the report only in the
4432 * Changed the bug crash reporter to write the report only in the
4429 user's .ipython directory. That way IPython won't litter people's
4433 user's .ipython directory. That way IPython won't litter people's
4430 hard disks with crash files all over the place. Also print on
4434 hard disks with crash files all over the place. Also print on
4431 screen the necessary mail command.
4435 screen the necessary mail command.
4432
4436
4433 * With the new ultraTB, implemented LightBG color scheme for light
4437 * With the new ultraTB, implemented LightBG color scheme for light
4434 background terminals. A lot of people like white backgrounds, so I
4438 background terminals. A lot of people like white backgrounds, so I
4435 guess we should at least give them something readable.
4439 guess we should at least give them something readable.
4436
4440
4437 2001-12-06 Fernando Perez <fperez@colorado.edu>
4441 2001-12-06 Fernando Perez <fperez@colorado.edu>
4438
4442
4439 * Modified the structure of ultraTB. Now there's a proper class
4443 * Modified the structure of ultraTB. Now there's a proper class
4440 for tables of color schemes which allow adding schemes easily and
4444 for tables of color schemes which allow adding schemes easily and
4441 switching the active scheme without creating a new instance every
4445 switching the active scheme without creating a new instance every
4442 time (which was ridiculous). The syntax for creating new schemes
4446 time (which was ridiculous). The syntax for creating new schemes
4443 is also cleaner. I think ultraTB is finally done, with a clean
4447 is also cleaner. I think ultraTB is finally done, with a clean
4444 class structure. Names are also much cleaner (now there's proper
4448 class structure. Names are also much cleaner (now there's proper
4445 color tables, no need for every variable to also have 'color' in
4449 color tables, no need for every variable to also have 'color' in
4446 its name).
4450 its name).
4447
4451
4448 * Broke down genutils into separate files. Now genutils only
4452 * Broke down genutils into separate files. Now genutils only
4449 contains utility functions, and classes have been moved to their
4453 contains utility functions, and classes have been moved to their
4450 own files (they had enough independent functionality to warrant
4454 own files (they had enough independent functionality to warrant
4451 it): ConfigLoader, OutputTrap, Struct.
4455 it): ConfigLoader, OutputTrap, Struct.
4452
4456
4453 2001-12-05 Fernando Perez <fperez@colorado.edu>
4457 2001-12-05 Fernando Perez <fperez@colorado.edu>
4454
4458
4455 * IPython turns 21! Released version 0.1.21, as a candidate for
4459 * IPython turns 21! Released version 0.1.21, as a candidate for
4456 public consumption. If all goes well, release in a few days.
4460 public consumption. If all goes well, release in a few days.
4457
4461
4458 * Fixed path bug (files in Extensions/ directory wouldn't be found
4462 * Fixed path bug (files in Extensions/ directory wouldn't be found
4459 unless IPython/ was explicitly in sys.path).
4463 unless IPython/ was explicitly in sys.path).
4460
4464
4461 * Extended the FlexCompleter class as MagicCompleter to allow
4465 * Extended the FlexCompleter class as MagicCompleter to allow
4462 completion of @-starting lines.
4466 completion of @-starting lines.
4463
4467
4464 * Created __release__.py file as a central repository for release
4468 * Created __release__.py file as a central repository for release
4465 info that other files can read from.
4469 info that other files can read from.
4466
4470
4467 * Fixed small bug in logging: when logging was turned on in
4471 * Fixed small bug in logging: when logging was turned on in
4468 mid-session, old lines with special meanings (!@?) were being
4472 mid-session, old lines with special meanings (!@?) were being
4469 logged without the prepended comment, which is necessary since
4473 logged without the prepended comment, which is necessary since
4470 they are not truly valid python syntax. This should make session
4474 they are not truly valid python syntax. This should make session
4471 restores produce less errors.
4475 restores produce less errors.
4472
4476
4473 * The namespace cleanup forced me to make a FlexCompleter class
4477 * The namespace cleanup forced me to make a FlexCompleter class
4474 which is nothing but a ripoff of rlcompleter, but with selectable
4478 which is nothing but a ripoff of rlcompleter, but with selectable
4475 namespace (rlcompleter only works in __main__.__dict__). I'll try
4479 namespace (rlcompleter only works in __main__.__dict__). I'll try
4476 to submit a note to the authors to see if this change can be
4480 to submit a note to the authors to see if this change can be
4477 incorporated in future rlcompleter releases (Dec.6: done)
4481 incorporated in future rlcompleter releases (Dec.6: done)
4478
4482
4479 * More fixes to namespace handling. It was a mess! Now all
4483 * More fixes to namespace handling. It was a mess! Now all
4480 explicit references to __main__.__dict__ are gone (except when
4484 explicit references to __main__.__dict__ are gone (except when
4481 really needed) and everything is handled through the namespace
4485 really needed) and everything is handled through the namespace
4482 dicts in the IPython instance. We seem to be getting somewhere
4486 dicts in the IPython instance. We seem to be getting somewhere
4483 with this, finally...
4487 with this, finally...
4484
4488
4485 * Small documentation updates.
4489 * Small documentation updates.
4486
4490
4487 * Created the Extensions directory under IPython (with an
4491 * Created the Extensions directory under IPython (with an
4488 __init__.py). Put the PhysicalQ stuff there. This directory should
4492 __init__.py). Put the PhysicalQ stuff there. This directory should
4489 be used for all special-purpose extensions.
4493 be used for all special-purpose extensions.
4490
4494
4491 * File renaming:
4495 * File renaming:
4492 ipythonlib --> ipmaker
4496 ipythonlib --> ipmaker
4493 ipplib --> iplib
4497 ipplib --> iplib
4494 This makes a bit more sense in terms of what these files actually do.
4498 This makes a bit more sense in terms of what these files actually do.
4495
4499
4496 * Moved all the classes and functions in ipythonlib to ipplib, so
4500 * Moved all the classes and functions in ipythonlib to ipplib, so
4497 now ipythonlib only has make_IPython(). This will ease up its
4501 now ipythonlib only has make_IPython(). This will ease up its
4498 splitting in smaller functional chunks later.
4502 splitting in smaller functional chunks later.
4499
4503
4500 * Cleaned up (done, I think) output of @whos. Better column
4504 * Cleaned up (done, I think) output of @whos. Better column
4501 formatting, and now shows str(var) for as much as it can, which is
4505 formatting, and now shows str(var) for as much as it can, which is
4502 typically what one gets with a 'print var'.
4506 typically what one gets with a 'print var'.
4503
4507
4504 2001-12-04 Fernando Perez <fperez@colorado.edu>
4508 2001-12-04 Fernando Perez <fperez@colorado.edu>
4505
4509
4506 * Fixed namespace problems. Now builtin/IPyhton/user names get
4510 * Fixed namespace problems. Now builtin/IPyhton/user names get
4507 properly reported in their namespace. Internal namespace handling
4511 properly reported in their namespace. Internal namespace handling
4508 is finally getting decent (not perfect yet, but much better than
4512 is finally getting decent (not perfect yet, but much better than
4509 the ad-hoc mess we had).
4513 the ad-hoc mess we had).
4510
4514
4511 * Removed -exit option. If people just want to run a python
4515 * Removed -exit option. If people just want to run a python
4512 script, that's what the normal interpreter is for. Less
4516 script, that's what the normal interpreter is for. Less
4513 unnecessary options, less chances for bugs.
4517 unnecessary options, less chances for bugs.
4514
4518
4515 * Added a crash handler which generates a complete post-mortem if
4519 * Added a crash handler which generates a complete post-mortem if
4516 IPython crashes. This will help a lot in tracking bugs down the
4520 IPython crashes. This will help a lot in tracking bugs down the
4517 road.
4521 road.
4518
4522
4519 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4523 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4520 which were boud to functions being reassigned would bypass the
4524 which were boud to functions being reassigned would bypass the
4521 logger, breaking the sync of _il with the prompt counter. This
4525 logger, breaking the sync of _il with the prompt counter. This
4522 would then crash IPython later when a new line was logged.
4526 would then crash IPython later when a new line was logged.
4523
4527
4524 2001-12-02 Fernando Perez <fperez@colorado.edu>
4528 2001-12-02 Fernando Perez <fperez@colorado.edu>
4525
4529
4526 * Made IPython a package. This means people don't have to clutter
4530 * Made IPython a package. This means people don't have to clutter
4527 their sys.path with yet another directory. Changed the INSTALL
4531 their sys.path with yet another directory. Changed the INSTALL
4528 file accordingly.
4532 file accordingly.
4529
4533
4530 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4534 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4531 sorts its output (so @who shows it sorted) and @whos formats the
4535 sorts its output (so @who shows it sorted) and @whos formats the
4532 table according to the width of the first column. Nicer, easier to
4536 table according to the width of the first column. Nicer, easier to
4533 read. Todo: write a generic table_format() which takes a list of
4537 read. Todo: write a generic table_format() which takes a list of
4534 lists and prints it nicely formatted, with optional row/column
4538 lists and prints it nicely formatted, with optional row/column
4535 separators and proper padding and justification.
4539 separators and proper padding and justification.
4536
4540
4537 * Released 0.1.20
4541 * Released 0.1.20
4538
4542
4539 * Fixed bug in @log which would reverse the inputcache list (a
4543 * Fixed bug in @log which would reverse the inputcache list (a
4540 copy operation was missing).
4544 copy operation was missing).
4541
4545
4542 * Code cleanup. @config was changed to use page(). Better, since
4546 * Code cleanup. @config was changed to use page(). Better, since
4543 its output is always quite long.
4547 its output is always quite long.
4544
4548
4545 * Itpl is back as a dependency. I was having too many problems
4549 * Itpl is back as a dependency. I was having too many problems
4546 getting the parametric aliases to work reliably, and it's just
4550 getting the parametric aliases to work reliably, and it's just
4547 easier to code weird string operations with it than playing %()s
4551 easier to code weird string operations with it than playing %()s
4548 games. It's only ~6k, so I don't think it's too big a deal.
4552 games. It's only ~6k, so I don't think it's too big a deal.
4549
4553
4550 * Found (and fixed) a very nasty bug with history. !lines weren't
4554 * Found (and fixed) a very nasty bug with history. !lines weren't
4551 getting cached, and the out of sync caches would crash
4555 getting cached, and the out of sync caches would crash
4552 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4556 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4553 division of labor a bit better. Bug fixed, cleaner structure.
4557 division of labor a bit better. Bug fixed, cleaner structure.
4554
4558
4555 2001-12-01 Fernando Perez <fperez@colorado.edu>
4559 2001-12-01 Fernando Perez <fperez@colorado.edu>
4556
4560
4557 * Released 0.1.19
4561 * Released 0.1.19
4558
4562
4559 * Added option -n to @hist to prevent line number printing. Much
4563 * Added option -n to @hist to prevent line number printing. Much
4560 easier to copy/paste code this way.
4564 easier to copy/paste code this way.
4561
4565
4562 * Created global _il to hold the input list. Allows easy
4566 * Created global _il to hold the input list. Allows easy
4563 re-execution of blocks of code by slicing it (inspired by Janko's
4567 re-execution of blocks of code by slicing it (inspired by Janko's
4564 comment on 'macros').
4568 comment on 'macros').
4565
4569
4566 * Small fixes and doc updates.
4570 * Small fixes and doc updates.
4567
4571
4568 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4572 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4569 much too fragile with automagic. Handles properly multi-line
4573 much too fragile with automagic. Handles properly multi-line
4570 statements and takes parameters.
4574 statements and takes parameters.
4571
4575
4572 2001-11-30 Fernando Perez <fperez@colorado.edu>
4576 2001-11-30 Fernando Perez <fperez@colorado.edu>
4573
4577
4574 * Version 0.1.18 released.
4578 * Version 0.1.18 released.
4575
4579
4576 * Fixed nasty namespace bug in initial module imports.
4580 * Fixed nasty namespace bug in initial module imports.
4577
4581
4578 * Added copyright/license notes to all code files (except
4582 * Added copyright/license notes to all code files (except
4579 DPyGetOpt). For the time being, LGPL. That could change.
4583 DPyGetOpt). For the time being, LGPL. That could change.
4580
4584
4581 * Rewrote a much nicer README, updated INSTALL, cleaned up
4585 * Rewrote a much nicer README, updated INSTALL, cleaned up
4582 ipythonrc-* samples.
4586 ipythonrc-* samples.
4583
4587
4584 * Overall code/documentation cleanup. Basically ready for
4588 * Overall code/documentation cleanup. Basically ready for
4585 release. Only remaining thing: licence decision (LGPL?).
4589 release. Only remaining thing: licence decision (LGPL?).
4586
4590
4587 * Converted load_config to a class, ConfigLoader. Now recursion
4591 * Converted load_config to a class, ConfigLoader. Now recursion
4588 control is better organized. Doesn't include the same file twice.
4592 control is better organized. Doesn't include the same file twice.
4589
4593
4590 2001-11-29 Fernando Perez <fperez@colorado.edu>
4594 2001-11-29 Fernando Perez <fperez@colorado.edu>
4591
4595
4592 * Got input history working. Changed output history variables from
4596 * Got input history working. Changed output history variables from
4593 _p to _o so that _i is for input and _o for output. Just cleaner
4597 _p to _o so that _i is for input and _o for output. Just cleaner
4594 convention.
4598 convention.
4595
4599
4596 * Implemented parametric aliases. This pretty much allows the
4600 * Implemented parametric aliases. This pretty much allows the
4597 alias system to offer full-blown shell convenience, I think.
4601 alias system to offer full-blown shell convenience, I think.
4598
4602
4599 * Version 0.1.17 released, 0.1.18 opened.
4603 * Version 0.1.17 released, 0.1.18 opened.
4600
4604
4601 * dot_ipython/ipythonrc (alias): added documentation.
4605 * dot_ipython/ipythonrc (alias): added documentation.
4602 (xcolor): Fixed small bug (xcolors -> xcolor)
4606 (xcolor): Fixed small bug (xcolors -> xcolor)
4603
4607
4604 * Changed the alias system. Now alias is a magic command to define
4608 * Changed the alias system. Now alias is a magic command to define
4605 aliases just like the shell. Rationale: the builtin magics should
4609 aliases just like the shell. Rationale: the builtin magics should
4606 be there for things deeply connected to IPython's
4610 be there for things deeply connected to IPython's
4607 architecture. And this is a much lighter system for what I think
4611 architecture. And this is a much lighter system for what I think
4608 is the really important feature: allowing users to define quickly
4612 is the really important feature: allowing users to define quickly
4609 magics that will do shell things for them, so they can customize
4613 magics that will do shell things for them, so they can customize
4610 IPython easily to match their work habits. If someone is really
4614 IPython easily to match their work habits. If someone is really
4611 desperate to have another name for a builtin alias, they can
4615 desperate to have another name for a builtin alias, they can
4612 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4616 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4613 works.
4617 works.
4614
4618
4615 2001-11-28 Fernando Perez <fperez@colorado.edu>
4619 2001-11-28 Fernando Perez <fperez@colorado.edu>
4616
4620
4617 * Changed @file so that it opens the source file at the proper
4621 * Changed @file so that it opens the source file at the proper
4618 line. Since it uses less, if your EDITOR environment is
4622 line. Since it uses less, if your EDITOR environment is
4619 configured, typing v will immediately open your editor of choice
4623 configured, typing v will immediately open your editor of choice
4620 right at the line where the object is defined. Not as quick as
4624 right at the line where the object is defined. Not as quick as
4621 having a direct @edit command, but for all intents and purposes it
4625 having a direct @edit command, but for all intents and purposes it
4622 works. And I don't have to worry about writing @edit to deal with
4626 works. And I don't have to worry about writing @edit to deal with
4623 all the editors, less does that.
4627 all the editors, less does that.
4624
4628
4625 * Version 0.1.16 released, 0.1.17 opened.
4629 * Version 0.1.16 released, 0.1.17 opened.
4626
4630
4627 * Fixed some nasty bugs in the page/page_dumb combo that could
4631 * Fixed some nasty bugs in the page/page_dumb combo that could
4628 crash IPython.
4632 crash IPython.
4629
4633
4630 2001-11-27 Fernando Perez <fperez@colorado.edu>
4634 2001-11-27 Fernando Perez <fperez@colorado.edu>
4631
4635
4632 * Version 0.1.15 released, 0.1.16 opened.
4636 * Version 0.1.15 released, 0.1.16 opened.
4633
4637
4634 * Finally got ? and ?? to work for undefined things: now it's
4638 * Finally got ? and ?? to work for undefined things: now it's
4635 possible to type {}.get? and get information about the get method
4639 possible to type {}.get? and get information about the get method
4636 of dicts, or os.path? even if only os is defined (so technically
4640 of dicts, or os.path? even if only os is defined (so technically
4637 os.path isn't). Works at any level. For example, after import os,
4641 os.path isn't). Works at any level. For example, after import os,
4638 os?, os.path?, os.path.abspath? all work. This is great, took some
4642 os?, os.path?, os.path.abspath? all work. This is great, took some
4639 work in _ofind.
4643 work in _ofind.
4640
4644
4641 * Fixed more bugs with logging. The sanest way to do it was to add
4645 * Fixed more bugs with logging. The sanest way to do it was to add
4642 to @log a 'mode' parameter. Killed two in one shot (this mode
4646 to @log a 'mode' parameter. Killed two in one shot (this mode
4643 option was a request of Janko's). I think it's finally clean
4647 option was a request of Janko's). I think it's finally clean
4644 (famous last words).
4648 (famous last words).
4645
4649
4646 * Added a page_dumb() pager which does a decent job of paging on
4650 * Added a page_dumb() pager which does a decent job of paging on
4647 screen, if better things (like less) aren't available. One less
4651 screen, if better things (like less) aren't available. One less
4648 unix dependency (someday maybe somebody will port this to
4652 unix dependency (someday maybe somebody will port this to
4649 windows).
4653 windows).
4650
4654
4651 * Fixed problem in magic_log: would lock of logging out if log
4655 * Fixed problem in magic_log: would lock of logging out if log
4652 creation failed (because it would still think it had succeeded).
4656 creation failed (because it would still think it had succeeded).
4653
4657
4654 * Improved the page() function using curses to auto-detect screen
4658 * Improved the page() function using curses to auto-detect screen
4655 size. Now it can make a much better decision on whether to print
4659 size. Now it can make a much better decision on whether to print
4656 or page a string. Option screen_length was modified: a value 0
4660 or page a string. Option screen_length was modified: a value 0
4657 means auto-detect, and that's the default now.
4661 means auto-detect, and that's the default now.
4658
4662
4659 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4663 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4660 go out. I'll test it for a few days, then talk to Janko about
4664 go out. I'll test it for a few days, then talk to Janko about
4661 licences and announce it.
4665 licences and announce it.
4662
4666
4663 * Fixed the length of the auto-generated ---> prompt which appears
4667 * Fixed the length of the auto-generated ---> prompt which appears
4664 for auto-parens and auto-quotes. Getting this right isn't trivial,
4668 for auto-parens and auto-quotes. Getting this right isn't trivial,
4665 with all the color escapes, different prompt types and optional
4669 with all the color escapes, different prompt types and optional
4666 separators. But it seems to be working in all the combinations.
4670 separators. But it seems to be working in all the combinations.
4667
4671
4668 2001-11-26 Fernando Perez <fperez@colorado.edu>
4672 2001-11-26 Fernando Perez <fperez@colorado.edu>
4669
4673
4670 * Wrote a regexp filter to get option types from the option names
4674 * Wrote a regexp filter to get option types from the option names
4671 string. This eliminates the need to manually keep two duplicate
4675 string. This eliminates the need to manually keep two duplicate
4672 lists.
4676 lists.
4673
4677
4674 * Removed the unneeded check_option_names. Now options are handled
4678 * Removed the unneeded check_option_names. Now options are handled
4675 in a much saner manner and it's easy to visually check that things
4679 in a much saner manner and it's easy to visually check that things
4676 are ok.
4680 are ok.
4677
4681
4678 * Updated version numbers on all files I modified to carry a
4682 * Updated version numbers on all files I modified to carry a
4679 notice so Janko and Nathan have clear version markers.
4683 notice so Janko and Nathan have clear version markers.
4680
4684
4681 * Updated docstring for ultraTB with my changes. I should send
4685 * Updated docstring for ultraTB with my changes. I should send
4682 this to Nathan.
4686 this to Nathan.
4683
4687
4684 * Lots of small fixes. Ran everything through pychecker again.
4688 * Lots of small fixes. Ran everything through pychecker again.
4685
4689
4686 * Made loading of deep_reload an cmd line option. If it's not too
4690 * Made loading of deep_reload an cmd line option. If it's not too
4687 kosher, now people can just disable it. With -nodeep_reload it's
4691 kosher, now people can just disable it. With -nodeep_reload it's
4688 still available as dreload(), it just won't overwrite reload().
4692 still available as dreload(), it just won't overwrite reload().
4689
4693
4690 * Moved many options to the no| form (-opt and -noopt
4694 * Moved many options to the no| form (-opt and -noopt
4691 accepted). Cleaner.
4695 accepted). Cleaner.
4692
4696
4693 * Changed magic_log so that if called with no parameters, it uses
4697 * Changed magic_log so that if called with no parameters, it uses
4694 'rotate' mode. That way auto-generated logs aren't automatically
4698 'rotate' mode. That way auto-generated logs aren't automatically
4695 over-written. For normal logs, now a backup is made if it exists
4699 over-written. For normal logs, now a backup is made if it exists
4696 (only 1 level of backups). A new 'backup' mode was added to the
4700 (only 1 level of backups). A new 'backup' mode was added to the
4697 Logger class to support this. This was a request by Janko.
4701 Logger class to support this. This was a request by Janko.
4698
4702
4699 * Added @logoff/@logon to stop/restart an active log.
4703 * Added @logoff/@logon to stop/restart an active log.
4700
4704
4701 * Fixed a lot of bugs in log saving/replay. It was pretty
4705 * Fixed a lot of bugs in log saving/replay. It was pretty
4702 broken. Now special lines (!@,/) appear properly in the command
4706 broken. Now special lines (!@,/) appear properly in the command
4703 history after a log replay.
4707 history after a log replay.
4704
4708
4705 * Tried and failed to implement full session saving via pickle. My
4709 * Tried and failed to implement full session saving via pickle. My
4706 idea was to pickle __main__.__dict__, but modules can't be
4710 idea was to pickle __main__.__dict__, but modules can't be
4707 pickled. This would be a better alternative to replaying logs, but
4711 pickled. This would be a better alternative to replaying logs, but
4708 seems quite tricky to get to work. Changed -session to be called
4712 seems quite tricky to get to work. Changed -session to be called
4709 -logplay, which more accurately reflects what it does. And if we
4713 -logplay, which more accurately reflects what it does. And if we
4710 ever get real session saving working, -session is now available.
4714 ever get real session saving working, -session is now available.
4711
4715
4712 * Implemented color schemes for prompts also. As for tracebacks,
4716 * Implemented color schemes for prompts also. As for tracebacks,
4713 currently only NoColor and Linux are supported. But now the
4717 currently only NoColor and Linux are supported. But now the
4714 infrastructure is in place, based on a generic ColorScheme
4718 infrastructure is in place, based on a generic ColorScheme
4715 class. So writing and activating new schemes both for the prompts
4719 class. So writing and activating new schemes both for the prompts
4716 and the tracebacks should be straightforward.
4720 and the tracebacks should be straightforward.
4717
4721
4718 * Version 0.1.13 released, 0.1.14 opened.
4722 * Version 0.1.13 released, 0.1.14 opened.
4719
4723
4720 * Changed handling of options for output cache. Now counter is
4724 * Changed handling of options for output cache. Now counter is
4721 hardwired starting at 1 and one specifies the maximum number of
4725 hardwired starting at 1 and one specifies the maximum number of
4722 entries *in the outcache* (not the max prompt counter). This is
4726 entries *in the outcache* (not the max prompt counter). This is
4723 much better, since many statements won't increase the cache
4727 much better, since many statements won't increase the cache
4724 count. It also eliminated some confusing options, now there's only
4728 count. It also eliminated some confusing options, now there's only
4725 one: cache_size.
4729 one: cache_size.
4726
4730
4727 * Added 'alias' magic function and magic_alias option in the
4731 * Added 'alias' magic function and magic_alias option in the
4728 ipythonrc file. Now the user can easily define whatever names he
4732 ipythonrc file. Now the user can easily define whatever names he
4729 wants for the magic functions without having to play weird
4733 wants for the magic functions without having to play weird
4730 namespace games. This gives IPython a real shell-like feel.
4734 namespace games. This gives IPython a real shell-like feel.
4731
4735
4732 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4736 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4733 @ or not).
4737 @ or not).
4734
4738
4735 This was one of the last remaining 'visible' bugs (that I know
4739 This was one of the last remaining 'visible' bugs (that I know
4736 of). I think if I can clean up the session loading so it works
4740 of). I think if I can clean up the session loading so it works
4737 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4741 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4738 about licensing).
4742 about licensing).
4739
4743
4740 2001-11-25 Fernando Perez <fperez@colorado.edu>
4744 2001-11-25 Fernando Perez <fperez@colorado.edu>
4741
4745
4742 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4746 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4743 there's a cleaner distinction between what ? and ?? show.
4747 there's a cleaner distinction between what ? and ?? show.
4744
4748
4745 * Added screen_length option. Now the user can define his own
4749 * Added screen_length option. Now the user can define his own
4746 screen size for page() operations.
4750 screen size for page() operations.
4747
4751
4748 * Implemented magic shell-like functions with automatic code
4752 * Implemented magic shell-like functions with automatic code
4749 generation. Now adding another function is just a matter of adding
4753 generation. Now adding another function is just a matter of adding
4750 an entry to a dict, and the function is dynamically generated at
4754 an entry to a dict, and the function is dynamically generated at
4751 run-time. Python has some really cool features!
4755 run-time. Python has some really cool features!
4752
4756
4753 * Renamed many options to cleanup conventions a little. Now all
4757 * Renamed many options to cleanup conventions a little. Now all
4754 are lowercase, and only underscores where needed. Also in the code
4758 are lowercase, and only underscores where needed. Also in the code
4755 option name tables are clearer.
4759 option name tables are clearer.
4756
4760
4757 * Changed prompts a little. Now input is 'In [n]:' instead of
4761 * Changed prompts a little. Now input is 'In [n]:' instead of
4758 'In[n]:='. This allows it the numbers to be aligned with the
4762 'In[n]:='. This allows it the numbers to be aligned with the
4759 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4763 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4760 Python (it was a Mathematica thing). The '...' continuation prompt
4764 Python (it was a Mathematica thing). The '...' continuation prompt
4761 was also changed a little to align better.
4765 was also changed a little to align better.
4762
4766
4763 * Fixed bug when flushing output cache. Not all _p<n> variables
4767 * Fixed bug when flushing output cache. Not all _p<n> variables
4764 exist, so their deletion needs to be wrapped in a try:
4768 exist, so their deletion needs to be wrapped in a try:
4765
4769
4766 * Figured out how to properly use inspect.formatargspec() (it
4770 * Figured out how to properly use inspect.formatargspec() (it
4767 requires the args preceded by *). So I removed all the code from
4771 requires the args preceded by *). So I removed all the code from
4768 _get_pdef in Magic, which was just replicating that.
4772 _get_pdef in Magic, which was just replicating that.
4769
4773
4770 * Added test to prefilter to allow redefining magic function names
4774 * Added test to prefilter to allow redefining magic function names
4771 as variables. This is ok, since the @ form is always available,
4775 as variables. This is ok, since the @ form is always available,
4772 but whe should allow the user to define a variable called 'ls' if
4776 but whe should allow the user to define a variable called 'ls' if
4773 he needs it.
4777 he needs it.
4774
4778
4775 * Moved the ToDo information from README into a separate ToDo.
4779 * Moved the ToDo information from README into a separate ToDo.
4776
4780
4777 * General code cleanup and small bugfixes. I think it's close to a
4781 * General code cleanup and small bugfixes. I think it's close to a
4778 state where it can be released, obviously with a big 'beta'
4782 state where it can be released, obviously with a big 'beta'
4779 warning on it.
4783 warning on it.
4780
4784
4781 * Got the magic function split to work. Now all magics are defined
4785 * Got the magic function split to work. Now all magics are defined
4782 in a separate class. It just organizes things a bit, and now
4786 in a separate class. It just organizes things a bit, and now
4783 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4787 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4784 was too long).
4788 was too long).
4785
4789
4786 * Changed @clear to @reset to avoid potential confusions with
4790 * Changed @clear to @reset to avoid potential confusions with
4787 the shell command clear. Also renamed @cl to @clear, which does
4791 the shell command clear. Also renamed @cl to @clear, which does
4788 exactly what people expect it to from their shell experience.
4792 exactly what people expect it to from their shell experience.
4789
4793
4790 Added a check to the @reset command (since it's so
4794 Added a check to the @reset command (since it's so
4791 destructive, it's probably a good idea to ask for confirmation).
4795 destructive, it's probably a good idea to ask for confirmation).
4792 But now reset only works for full namespace resetting. Since the
4796 But now reset only works for full namespace resetting. Since the
4793 del keyword is already there for deleting a few specific
4797 del keyword is already there for deleting a few specific
4794 variables, I don't see the point of having a redundant magic
4798 variables, I don't see the point of having a redundant magic
4795 function for the same task.
4799 function for the same task.
4796
4800
4797 2001-11-24 Fernando Perez <fperez@colorado.edu>
4801 2001-11-24 Fernando Perez <fperez@colorado.edu>
4798
4802
4799 * Updated the builtin docs (esp. the ? ones).
4803 * Updated the builtin docs (esp. the ? ones).
4800
4804
4801 * Ran all the code through pychecker. Not terribly impressed with
4805 * Ran all the code through pychecker. Not terribly impressed with
4802 it: lots of spurious warnings and didn't really find anything of
4806 it: lots of spurious warnings and didn't really find anything of
4803 substance (just a few modules being imported and not used).
4807 substance (just a few modules being imported and not used).
4804
4808
4805 * Implemented the new ultraTB functionality into IPython. New
4809 * Implemented the new ultraTB functionality into IPython. New
4806 option: xcolors. This chooses color scheme. xmode now only selects
4810 option: xcolors. This chooses color scheme. xmode now only selects
4807 between Plain and Verbose. Better orthogonality.
4811 between Plain and Verbose. Better orthogonality.
4808
4812
4809 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4813 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4810 mode and color scheme for the exception handlers. Now it's
4814 mode and color scheme for the exception handlers. Now it's
4811 possible to have the verbose traceback with no coloring.
4815 possible to have the verbose traceback with no coloring.
4812
4816
4813 2001-11-23 Fernando Perez <fperez@colorado.edu>
4817 2001-11-23 Fernando Perez <fperez@colorado.edu>
4814
4818
4815 * Version 0.1.12 released, 0.1.13 opened.
4819 * Version 0.1.12 released, 0.1.13 opened.
4816
4820
4817 * Removed option to set auto-quote and auto-paren escapes by
4821 * Removed option to set auto-quote and auto-paren escapes by
4818 user. The chances of breaking valid syntax are just too high. If
4822 user. The chances of breaking valid syntax are just too high. If
4819 someone *really* wants, they can always dig into the code.
4823 someone *really* wants, they can always dig into the code.
4820
4824
4821 * Made prompt separators configurable.
4825 * Made prompt separators configurable.
4822
4826
4823 2001-11-22 Fernando Perez <fperez@colorado.edu>
4827 2001-11-22 Fernando Perez <fperez@colorado.edu>
4824
4828
4825 * Small bugfixes in many places.
4829 * Small bugfixes in many places.
4826
4830
4827 * Removed the MyCompleter class from ipplib. It seemed redundant
4831 * Removed the MyCompleter class from ipplib. It seemed redundant
4828 with the C-p,C-n history search functionality. Less code to
4832 with the C-p,C-n history search functionality. Less code to
4829 maintain.
4833 maintain.
4830
4834
4831 * Moved all the original ipython.py code into ipythonlib.py. Right
4835 * Moved all the original ipython.py code into ipythonlib.py. Right
4832 now it's just one big dump into a function called make_IPython, so
4836 now it's just one big dump into a function called make_IPython, so
4833 no real modularity has been gained. But at least it makes the
4837 no real modularity has been gained. But at least it makes the
4834 wrapper script tiny, and since ipythonlib is a module, it gets
4838 wrapper script tiny, and since ipythonlib is a module, it gets
4835 compiled and startup is much faster.
4839 compiled and startup is much faster.
4836
4840
4837 This is a reasobably 'deep' change, so we should test it for a
4841 This is a reasobably 'deep' change, so we should test it for a
4838 while without messing too much more with the code.
4842 while without messing too much more with the code.
4839
4843
4840 2001-11-21 Fernando Perez <fperez@colorado.edu>
4844 2001-11-21 Fernando Perez <fperez@colorado.edu>
4841
4845
4842 * Version 0.1.11 released, 0.1.12 opened for further work.
4846 * Version 0.1.11 released, 0.1.12 opened for further work.
4843
4847
4844 * Removed dependency on Itpl. It was only needed in one place. It
4848 * Removed dependency on Itpl. It was only needed in one place. It
4845 would be nice if this became part of python, though. It makes life
4849 would be nice if this became part of python, though. It makes life
4846 *a lot* easier in some cases.
4850 *a lot* easier in some cases.
4847
4851
4848 * Simplified the prefilter code a bit. Now all handlers are
4852 * Simplified the prefilter code a bit. Now all handlers are
4849 expected to explicitly return a value (at least a blank string).
4853 expected to explicitly return a value (at least a blank string).
4850
4854
4851 * Heavy edits in ipplib. Removed the help system altogether. Now
4855 * Heavy edits in ipplib. Removed the help system altogether. Now
4852 obj?/?? is used for inspecting objects, a magic @doc prints
4856 obj?/?? is used for inspecting objects, a magic @doc prints
4853 docstrings, and full-blown Python help is accessed via the 'help'
4857 docstrings, and full-blown Python help is accessed via the 'help'
4854 keyword. This cleans up a lot of code (less to maintain) and does
4858 keyword. This cleans up a lot of code (less to maintain) and does
4855 the job. Since 'help' is now a standard Python component, might as
4859 the job. Since 'help' is now a standard Python component, might as
4856 well use it and remove duplicate functionality.
4860 well use it and remove duplicate functionality.
4857
4861
4858 Also removed the option to use ipplib as a standalone program. By
4862 Also removed the option to use ipplib as a standalone program. By
4859 now it's too dependent on other parts of IPython to function alone.
4863 now it's too dependent on other parts of IPython to function alone.
4860
4864
4861 * Fixed bug in genutils.pager. It would crash if the pager was
4865 * Fixed bug in genutils.pager. It would crash if the pager was
4862 exited immediately after opening (broken pipe).
4866 exited immediately after opening (broken pipe).
4863
4867
4864 * Trimmed down the VerboseTB reporting a little. The header is
4868 * Trimmed down the VerboseTB reporting a little. The header is
4865 much shorter now and the repeated exception arguments at the end
4869 much shorter now and the repeated exception arguments at the end
4866 have been removed. For interactive use the old header seemed a bit
4870 have been removed. For interactive use the old header seemed a bit
4867 excessive.
4871 excessive.
4868
4872
4869 * Fixed small bug in output of @whos for variables with multi-word
4873 * Fixed small bug in output of @whos for variables with multi-word
4870 types (only first word was displayed).
4874 types (only first word was displayed).
4871
4875
4872 2001-11-17 Fernando Perez <fperez@colorado.edu>
4876 2001-11-17 Fernando Perez <fperez@colorado.edu>
4873
4877
4874 * Version 0.1.10 released, 0.1.11 opened for further work.
4878 * Version 0.1.10 released, 0.1.11 opened for further work.
4875
4879
4876 * Modified dirs and friends. dirs now *returns* the stack (not
4880 * Modified dirs and friends. dirs now *returns* the stack (not
4877 prints), so one can manipulate it as a variable. Convenient to
4881 prints), so one can manipulate it as a variable. Convenient to
4878 travel along many directories.
4882 travel along many directories.
4879
4883
4880 * Fixed bug in magic_pdef: would only work with functions with
4884 * Fixed bug in magic_pdef: would only work with functions with
4881 arguments with default values.
4885 arguments with default values.
4882
4886
4883 2001-11-14 Fernando Perez <fperez@colorado.edu>
4887 2001-11-14 Fernando Perez <fperez@colorado.edu>
4884
4888
4885 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4889 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4886 example with IPython. Various other minor fixes and cleanups.
4890 example with IPython. Various other minor fixes and cleanups.
4887
4891
4888 * Version 0.1.9 released, 0.1.10 opened for further work.
4892 * Version 0.1.9 released, 0.1.10 opened for further work.
4889
4893
4890 * Added sys.path to the list of directories searched in the
4894 * Added sys.path to the list of directories searched in the
4891 execfile= option. It used to be the current directory and the
4895 execfile= option. It used to be the current directory and the
4892 user's IPYTHONDIR only.
4896 user's IPYTHONDIR only.
4893
4897
4894 2001-11-13 Fernando Perez <fperez@colorado.edu>
4898 2001-11-13 Fernando Perez <fperez@colorado.edu>
4895
4899
4896 * Reinstated the raw_input/prefilter separation that Janko had
4900 * Reinstated the raw_input/prefilter separation that Janko had
4897 initially. This gives a more convenient setup for extending the
4901 initially. This gives a more convenient setup for extending the
4898 pre-processor from the outside: raw_input always gets a string,
4902 pre-processor from the outside: raw_input always gets a string,
4899 and prefilter has to process it. We can then redefine prefilter
4903 and prefilter has to process it. We can then redefine prefilter
4900 from the outside and implement extensions for special
4904 from the outside and implement extensions for special
4901 purposes.
4905 purposes.
4902
4906
4903 Today I got one for inputting PhysicalQuantity objects
4907 Today I got one for inputting PhysicalQuantity objects
4904 (from Scientific) without needing any function calls at
4908 (from Scientific) without needing any function calls at
4905 all. Extremely convenient, and it's all done as a user-level
4909 all. Extremely convenient, and it's all done as a user-level
4906 extension (no IPython code was touched). Now instead of:
4910 extension (no IPython code was touched). Now instead of:
4907 a = PhysicalQuantity(4.2,'m/s**2')
4911 a = PhysicalQuantity(4.2,'m/s**2')
4908 one can simply say
4912 one can simply say
4909 a = 4.2 m/s**2
4913 a = 4.2 m/s**2
4910 or even
4914 or even
4911 a = 4.2 m/s^2
4915 a = 4.2 m/s^2
4912
4916
4913 I use this, but it's also a proof of concept: IPython really is
4917 I use this, but it's also a proof of concept: IPython really is
4914 fully user-extensible, even at the level of the parsing of the
4918 fully user-extensible, even at the level of the parsing of the
4915 command line. It's not trivial, but it's perfectly doable.
4919 command line. It's not trivial, but it's perfectly doable.
4916
4920
4917 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4921 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4918 the problem of modules being loaded in the inverse order in which
4922 the problem of modules being loaded in the inverse order in which
4919 they were defined in
4923 they were defined in
4920
4924
4921 * Version 0.1.8 released, 0.1.9 opened for further work.
4925 * Version 0.1.8 released, 0.1.9 opened for further work.
4922
4926
4923 * Added magics pdef, source and file. They respectively show the
4927 * Added magics pdef, source and file. They respectively show the
4924 definition line ('prototype' in C), source code and full python
4928 definition line ('prototype' in C), source code and full python
4925 file for any callable object. The object inspector oinfo uses
4929 file for any callable object. The object inspector oinfo uses
4926 these to show the same information.
4930 these to show the same information.
4927
4931
4928 * Version 0.1.7 released, 0.1.8 opened for further work.
4932 * Version 0.1.7 released, 0.1.8 opened for further work.
4929
4933
4930 * Separated all the magic functions into a class called Magic. The
4934 * Separated all the magic functions into a class called Magic. The
4931 InteractiveShell class was becoming too big for Xemacs to handle
4935 InteractiveShell class was becoming too big for Xemacs to handle
4932 (de-indenting a line would lock it up for 10 seconds while it
4936 (de-indenting a line would lock it up for 10 seconds while it
4933 backtracked on the whole class!)
4937 backtracked on the whole class!)
4934
4938
4935 FIXME: didn't work. It can be done, but right now namespaces are
4939 FIXME: didn't work. It can be done, but right now namespaces are
4936 all messed up. Do it later (reverted it for now, so at least
4940 all messed up. Do it later (reverted it for now, so at least
4937 everything works as before).
4941 everything works as before).
4938
4942
4939 * Got the object introspection system (magic_oinfo) working! I
4943 * Got the object introspection system (magic_oinfo) working! I
4940 think this is pretty much ready for release to Janko, so he can
4944 think this is pretty much ready for release to Janko, so he can
4941 test it for a while and then announce it. Pretty much 100% of what
4945 test it for a while and then announce it. Pretty much 100% of what
4942 I wanted for the 'phase 1' release is ready. Happy, tired.
4946 I wanted for the 'phase 1' release is ready. Happy, tired.
4943
4947
4944 2001-11-12 Fernando Perez <fperez@colorado.edu>
4948 2001-11-12 Fernando Perez <fperez@colorado.edu>
4945
4949
4946 * Version 0.1.6 released, 0.1.7 opened for further work.
4950 * Version 0.1.6 released, 0.1.7 opened for further work.
4947
4951
4948 * Fixed bug in printing: it used to test for truth before
4952 * Fixed bug in printing: it used to test for truth before
4949 printing, so 0 wouldn't print. Now checks for None.
4953 printing, so 0 wouldn't print. Now checks for None.
4950
4954
4951 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4955 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4952 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4956 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4953 reaches by hand into the outputcache. Think of a better way to do
4957 reaches by hand into the outputcache. Think of a better way to do
4954 this later.
4958 this later.
4955
4959
4956 * Various small fixes thanks to Nathan's comments.
4960 * Various small fixes thanks to Nathan's comments.
4957
4961
4958 * Changed magic_pprint to magic_Pprint. This way it doesn't
4962 * Changed magic_pprint to magic_Pprint. This way it doesn't
4959 collide with pprint() and the name is consistent with the command
4963 collide with pprint() and the name is consistent with the command
4960 line option.
4964 line option.
4961
4965
4962 * Changed prompt counter behavior to be fully like
4966 * Changed prompt counter behavior to be fully like
4963 Mathematica's. That is, even input that doesn't return a result
4967 Mathematica's. That is, even input that doesn't return a result
4964 raises the prompt counter. The old behavior was kind of confusing
4968 raises the prompt counter. The old behavior was kind of confusing
4965 (getting the same prompt number several times if the operation
4969 (getting the same prompt number several times if the operation
4966 didn't return a result).
4970 didn't return a result).
4967
4971
4968 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4972 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4969
4973
4970 * Fixed -Classic mode (wasn't working anymore).
4974 * Fixed -Classic mode (wasn't working anymore).
4971
4975
4972 * Added colored prompts using Nathan's new code. Colors are
4976 * Added colored prompts using Nathan's new code. Colors are
4973 currently hardwired, they can be user-configurable. For
4977 currently hardwired, they can be user-configurable. For
4974 developers, they can be chosen in file ipythonlib.py, at the
4978 developers, they can be chosen in file ipythonlib.py, at the
4975 beginning of the CachedOutput class def.
4979 beginning of the CachedOutput class def.
4976
4980
4977 2001-11-11 Fernando Perez <fperez@colorado.edu>
4981 2001-11-11 Fernando Perez <fperez@colorado.edu>
4978
4982
4979 * Version 0.1.5 released, 0.1.6 opened for further work.
4983 * Version 0.1.5 released, 0.1.6 opened for further work.
4980
4984
4981 * Changed magic_env to *return* the environment as a dict (not to
4985 * Changed magic_env to *return* the environment as a dict (not to
4982 print it). This way it prints, but it can also be processed.
4986 print it). This way it prints, but it can also be processed.
4983
4987
4984 * Added Verbose exception reporting to interactive
4988 * Added Verbose exception reporting to interactive
4985 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4989 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4986 traceback. Had to make some changes to the ultraTB file. This is
4990 traceback. Had to make some changes to the ultraTB file. This is
4987 probably the last 'big' thing in my mental todo list. This ties
4991 probably the last 'big' thing in my mental todo list. This ties
4988 in with the next entry:
4992 in with the next entry:
4989
4993
4990 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4994 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4991 has to specify is Plain, Color or Verbose for all exception
4995 has to specify is Plain, Color or Verbose for all exception
4992 handling.
4996 handling.
4993
4997
4994 * Removed ShellServices option. All this can really be done via
4998 * Removed ShellServices option. All this can really be done via
4995 the magic system. It's easier to extend, cleaner and has automatic
4999 the magic system. It's easier to extend, cleaner and has automatic
4996 namespace protection and documentation.
5000 namespace protection and documentation.
4997
5001
4998 2001-11-09 Fernando Perez <fperez@colorado.edu>
5002 2001-11-09 Fernando Perez <fperez@colorado.edu>
4999
5003
5000 * Fixed bug in output cache flushing (missing parameter to
5004 * Fixed bug in output cache flushing (missing parameter to
5001 __init__). Other small bugs fixed (found using pychecker).
5005 __init__). Other small bugs fixed (found using pychecker).
5002
5006
5003 * Version 0.1.4 opened for bugfixing.
5007 * Version 0.1.4 opened for bugfixing.
5004
5008
5005 2001-11-07 Fernando Perez <fperez@colorado.edu>
5009 2001-11-07 Fernando Perez <fperez@colorado.edu>
5006
5010
5007 * Version 0.1.3 released, mainly because of the raw_input bug.
5011 * Version 0.1.3 released, mainly because of the raw_input bug.
5008
5012
5009 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5013 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5010 and when testing for whether things were callable, a call could
5014 and when testing for whether things were callable, a call could
5011 actually be made to certain functions. They would get called again
5015 actually be made to certain functions. They would get called again
5012 once 'really' executed, with a resulting double call. A disaster
5016 once 'really' executed, with a resulting double call. A disaster
5013 in many cases (list.reverse() would never work!).
5017 in many cases (list.reverse() would never work!).
5014
5018
5015 * Removed prefilter() function, moved its code to raw_input (which
5019 * Removed prefilter() function, moved its code to raw_input (which
5016 after all was just a near-empty caller for prefilter). This saves
5020 after all was just a near-empty caller for prefilter). This saves
5017 a function call on every prompt, and simplifies the class a tiny bit.
5021 a function call on every prompt, and simplifies the class a tiny bit.
5018
5022
5019 * Fix _ip to __ip name in magic example file.
5023 * Fix _ip to __ip name in magic example file.
5020
5024
5021 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5025 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5022 work with non-gnu versions of tar.
5026 work with non-gnu versions of tar.
5023
5027
5024 2001-11-06 Fernando Perez <fperez@colorado.edu>
5028 2001-11-06 Fernando Perez <fperez@colorado.edu>
5025
5029
5026 * Version 0.1.2. Just to keep track of the recent changes.
5030 * Version 0.1.2. Just to keep track of the recent changes.
5027
5031
5028 * Fixed nasty bug in output prompt routine. It used to check 'if
5032 * Fixed nasty bug in output prompt routine. It used to check 'if
5029 arg != None...'. Problem is, this fails if arg implements a
5033 arg != None...'. Problem is, this fails if arg implements a
5030 special comparison (__cmp__) which disallows comparing to
5034 special comparison (__cmp__) which disallows comparing to
5031 None. Found it when trying to use the PhysicalQuantity module from
5035 None. Found it when trying to use the PhysicalQuantity module from
5032 ScientificPython.
5036 ScientificPython.
5033
5037
5034 2001-11-05 Fernando Perez <fperez@colorado.edu>
5038 2001-11-05 Fernando Perez <fperez@colorado.edu>
5035
5039
5036 * Also added dirs. Now the pushd/popd/dirs family functions
5040 * Also added dirs. Now the pushd/popd/dirs family functions
5037 basically like the shell, with the added convenience of going home
5041 basically like the shell, with the added convenience of going home
5038 when called with no args.
5042 when called with no args.
5039
5043
5040 * pushd/popd slightly modified to mimic shell behavior more
5044 * pushd/popd slightly modified to mimic shell behavior more
5041 closely.
5045 closely.
5042
5046
5043 * Added env,pushd,popd from ShellServices as magic functions. I
5047 * Added env,pushd,popd from ShellServices as magic functions. I
5044 think the cleanest will be to port all desired functions from
5048 think the cleanest will be to port all desired functions from
5045 ShellServices as magics and remove ShellServices altogether. This
5049 ShellServices as magics and remove ShellServices altogether. This
5046 will provide a single, clean way of adding functionality
5050 will provide a single, clean way of adding functionality
5047 (shell-type or otherwise) to IP.
5051 (shell-type or otherwise) to IP.
5048
5052
5049 2001-11-04 Fernando Perez <fperez@colorado.edu>
5053 2001-11-04 Fernando Perez <fperez@colorado.edu>
5050
5054
5051 * Added .ipython/ directory to sys.path. This way users can keep
5055 * Added .ipython/ directory to sys.path. This way users can keep
5052 customizations there and access them via import.
5056 customizations there and access them via import.
5053
5057
5054 2001-11-03 Fernando Perez <fperez@colorado.edu>
5058 2001-11-03 Fernando Perez <fperez@colorado.edu>
5055
5059
5056 * Opened version 0.1.1 for new changes.
5060 * Opened version 0.1.1 for new changes.
5057
5061
5058 * Changed version number to 0.1.0: first 'public' release, sent to
5062 * Changed version number to 0.1.0: first 'public' release, sent to
5059 Nathan and Janko.
5063 Nathan and Janko.
5060
5064
5061 * Lots of small fixes and tweaks.
5065 * Lots of small fixes and tweaks.
5062
5066
5063 * Minor changes to whos format. Now strings are shown, snipped if
5067 * Minor changes to whos format. Now strings are shown, snipped if
5064 too long.
5068 too long.
5065
5069
5066 * Changed ShellServices to work on __main__ so they show up in @who
5070 * Changed ShellServices to work on __main__ so they show up in @who
5067
5071
5068 * Help also works with ? at the end of a line:
5072 * Help also works with ? at the end of a line:
5069 ?sin and sin?
5073 ?sin and sin?
5070 both produce the same effect. This is nice, as often I use the
5074 both produce the same effect. This is nice, as often I use the
5071 tab-complete to find the name of a method, but I used to then have
5075 tab-complete to find the name of a method, but I used to then have
5072 to go to the beginning of the line to put a ? if I wanted more
5076 to go to the beginning of the line to put a ? if I wanted more
5073 info. Now I can just add the ? and hit return. Convenient.
5077 info. Now I can just add the ? and hit return. Convenient.
5074
5078
5075 2001-11-02 Fernando Perez <fperez@colorado.edu>
5079 2001-11-02 Fernando Perez <fperez@colorado.edu>
5076
5080
5077 * Python version check (>=2.1) added.
5081 * Python version check (>=2.1) added.
5078
5082
5079 * Added LazyPython documentation. At this point the docs are quite
5083 * Added LazyPython documentation. At this point the docs are quite
5080 a mess. A cleanup is in order.
5084 a mess. A cleanup is in order.
5081
5085
5082 * Auto-installer created. For some bizarre reason, the zipfiles
5086 * Auto-installer created. For some bizarre reason, the zipfiles
5083 module isn't working on my system. So I made a tar version
5087 module isn't working on my system. So I made a tar version
5084 (hopefully the command line options in various systems won't kill
5088 (hopefully the command line options in various systems won't kill
5085 me).
5089 me).
5086
5090
5087 * Fixes to Struct in genutils. Now all dictionary-like methods are
5091 * Fixes to Struct in genutils. Now all dictionary-like methods are
5088 protected (reasonably).
5092 protected (reasonably).
5089
5093
5090 * Added pager function to genutils and changed ? to print usage
5094 * Added pager function to genutils and changed ? to print usage
5091 note through it (it was too long).
5095 note through it (it was too long).
5092
5096
5093 * Added the LazyPython functionality. Works great! I changed the
5097 * Added the LazyPython functionality. Works great! I changed the
5094 auto-quote escape to ';', it's on home row and next to '. But
5098 auto-quote escape to ';', it's on home row and next to '. But
5095 both auto-quote and auto-paren (still /) escapes are command-line
5099 both auto-quote and auto-paren (still /) escapes are command-line
5096 parameters.
5100 parameters.
5097
5101
5098
5102
5099 2001-11-01 Fernando Perez <fperez@colorado.edu>
5103 2001-11-01 Fernando Perez <fperez@colorado.edu>
5100
5104
5101 * Version changed to 0.0.7. Fairly large change: configuration now
5105 * Version changed to 0.0.7. Fairly large change: configuration now
5102 is all stored in a directory, by default .ipython. There, all
5106 is all stored in a directory, by default .ipython. There, all
5103 config files have normal looking names (not .names)
5107 config files have normal looking names (not .names)
5104
5108
5105 * Version 0.0.6 Released first to Lucas and Archie as a test
5109 * Version 0.0.6 Released first to Lucas and Archie as a test
5106 run. Since it's the first 'semi-public' release, change version to
5110 run. Since it's the first 'semi-public' release, change version to
5107 > 0.0.6 for any changes now.
5111 > 0.0.6 for any changes now.
5108
5112
5109 * Stuff I had put in the ipplib.py changelog:
5113 * Stuff I had put in the ipplib.py changelog:
5110
5114
5111 Changes to InteractiveShell:
5115 Changes to InteractiveShell:
5112
5116
5113 - Made the usage message a parameter.
5117 - Made the usage message a parameter.
5114
5118
5115 - Require the name of the shell variable to be given. It's a bit
5119 - Require the name of the shell variable to be given. It's a bit
5116 of a hack, but allows the name 'shell' not to be hardwire in the
5120 of a hack, but allows the name 'shell' not to be hardwire in the
5117 magic (@) handler, which is problematic b/c it requires
5121 magic (@) handler, which is problematic b/c it requires
5118 polluting the global namespace with 'shell'. This in turn is
5122 polluting the global namespace with 'shell'. This in turn is
5119 fragile: if a user redefines a variable called shell, things
5123 fragile: if a user redefines a variable called shell, things
5120 break.
5124 break.
5121
5125
5122 - magic @: all functions available through @ need to be defined
5126 - magic @: all functions available through @ need to be defined
5123 as magic_<name>, even though they can be called simply as
5127 as magic_<name>, even though they can be called simply as
5124 @<name>. This allows the special command @magic to gather
5128 @<name>. This allows the special command @magic to gather
5125 information automatically about all existing magic functions,
5129 information automatically about all existing magic functions,
5126 even if they are run-time user extensions, by parsing the shell
5130 even if they are run-time user extensions, by parsing the shell
5127 instance __dict__ looking for special magic_ names.
5131 instance __dict__ looking for special magic_ names.
5128
5132
5129 - mainloop: added *two* local namespace parameters. This allows
5133 - mainloop: added *two* local namespace parameters. This allows
5130 the class to differentiate between parameters which were there
5134 the class to differentiate between parameters which were there
5131 before and after command line initialization was processed. This
5135 before and after command line initialization was processed. This
5132 way, later @who can show things loaded at startup by the
5136 way, later @who can show things loaded at startup by the
5133 user. This trick was necessary to make session saving/reloading
5137 user. This trick was necessary to make session saving/reloading
5134 really work: ideally after saving/exiting/reloading a session,
5138 really work: ideally after saving/exiting/reloading a session,
5135 *everythin* should look the same, including the output of @who. I
5139 *everythin* should look the same, including the output of @who. I
5136 was only able to make this work with this double namespace
5140 was only able to make this work with this double namespace
5137 trick.
5141 trick.
5138
5142
5139 - added a header to the logfile which allows (almost) full
5143 - added a header to the logfile which allows (almost) full
5140 session restoring.
5144 session restoring.
5141
5145
5142 - prepend lines beginning with @ or !, with a and log
5146 - prepend lines beginning with @ or !, with a and log
5143 them. Why? !lines: may be useful to know what you did @lines:
5147 them. Why? !lines: may be useful to know what you did @lines:
5144 they may affect session state. So when restoring a session, at
5148 they may affect session state. So when restoring a session, at
5145 least inform the user of their presence. I couldn't quite get
5149 least inform the user of their presence. I couldn't quite get
5146 them to properly re-execute, but at least the user is warned.
5150 them to properly re-execute, but at least the user is warned.
5147
5151
5148 * Started ChangeLog.
5152 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now