##// END OF EJS Templates
Forgot Kudos to the originator of the idea.
vivainio -
Show More
@@ -1,4844 +1,4845 b''
1 2006-01-12 Ville Vainio <vivainio@gmail.com>
1 2006-01-12 Ville Vainio <vivainio@gmail.com>
2
2
3 * IPython/iplib.py.py (make_quoted_expr,handle_shell_escape):
3 * IPython/iplib.py.py (make_quoted_expr,handle_shell_escape):
4 Prettified and hardened string/backslash quoting with ipsystem(),
4 Prettified and hardened string/backslash quoting with ipsystem(),
5 ipalias() and ipmagic(). Now even \ characters are passed to
5 ipalias() and ipmagic(). Now even \ characters are passed to
6 %magics, !shell escapes and aliases exactly as they are in the
6 %magics, !shell escapes and aliases exactly as they are in the
7 ipython command line. Should improve backslash experience,
7 ipython command line. Should improve backslash experience,
8 particularly in Windows. %cd magic still doesn't support backslash
8 particularly in Windows. %cd magic still doesn't support backslash
9 path delimiters, though. Also deleted all pretense of supporting
9 path delimiters, though. Also deleted all pretense of supporting
10 multiline command strings in !system or %magic commands.
10 multiline command strings in !system or %magic commands. Thanks to
11 Jerry McRae for suggestions.
11
12
12 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
13 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
13
14
14 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
15 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
15 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
16 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
16 module in case-insensitive installation. Was causing crashes
17 module in case-insensitive installation. Was causing crashes
17 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
18 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
18
19
19 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
20 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
20 <marienz-AT-gentoo.org>, closes
21 <marienz-AT-gentoo.org>, closes
21 http://www.scipy.net/roundup/ipython/issue51.
22 http://www.scipy.net/roundup/ipython/issue51.
22
23
23 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
24 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
24
25
25 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
26 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
26 problem of excessive CPU usage under *nix and keyboard lag under
27 problem of excessive CPU usage under *nix and keyboard lag under
27 win32.
28 win32.
28
29
29 2006-01-10 *** Released version 0.7.0
30 2006-01-10 *** Released version 0.7.0
30
31
31 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
32 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
32
33
33 * IPython/Release.py (revision): tag version number to 0.7.0,
34 * IPython/Release.py (revision): tag version number to 0.7.0,
34 ready for release.
35 ready for release.
35
36
36 * IPython/Magic.py (magic_edit): Add print statement to %edit so
37 * IPython/Magic.py (magic_edit): Add print statement to %edit so
37 it informs the user of the name of the temp. file used. This can
38 it informs the user of the name of the temp. file used. This can
38 help if you decide later to reuse that same file, so you know
39 help if you decide later to reuse that same file, so you know
39 where to copy the info from.
40 where to copy the info from.
40
41
41 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
42 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
42
43
43 * setup_bdist_egg.py: little script to build an egg. Added
44 * setup_bdist_egg.py: little script to build an egg. Added
44 support in the release tools as well.
45 support in the release tools as well.
45
46
46 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
47 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
47
48
48 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
49 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
49 version selection (new -wxversion command line and ipythonrc
50 version selection (new -wxversion command line and ipythonrc
50 parameter). Patch contributed by Arnd Baecker
51 parameter). Patch contributed by Arnd Baecker
51 <arnd.baecker-AT-web.de>.
52 <arnd.baecker-AT-web.de>.
52
53
53 * IPython/iplib.py (embed_mainloop): fix tab-completion in
54 * IPython/iplib.py (embed_mainloop): fix tab-completion in
54 embedded instances, for variables defined at the interactive
55 embedded instances, for variables defined at the interactive
55 prompt of the embedded ipython. Reported by Arnd.
56 prompt of the embedded ipython. Reported by Arnd.
56
57
57 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
58 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
58 it can be used as a (stateful) toggle, or with a direct parameter.
59 it can be used as a (stateful) toggle, or with a direct parameter.
59
60
60 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
61 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
61 could be triggered in certain cases and cause the traceback
62 could be triggered in certain cases and cause the traceback
62 printer not to work.
63 printer not to work.
63
64
64 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
65 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
65
66
66 * IPython/iplib.py (_should_recompile): Small fix, closes
67 * IPython/iplib.py (_should_recompile): Small fix, closes
67 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
68 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
68
69
69 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
70 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
70
71
71 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
72 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
72 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
73 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
73 Moad for help with tracking it down.
74 Moad for help with tracking it down.
74
75
75 * IPython/iplib.py (handle_auto): fix autocall handling for
76 * IPython/iplib.py (handle_auto): fix autocall handling for
76 objects which support BOTH __getitem__ and __call__ (so that f [x]
77 objects which support BOTH __getitem__ and __call__ (so that f [x]
77 is left alone, instead of becoming f([x]) automatically).
78 is left alone, instead of becoming f([x]) automatically).
78
79
79 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
80 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
80 Ville's patch.
81 Ville's patch.
81
82
82 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
83 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
83
84
84 * IPython/iplib.py (handle_auto): changed autocall semantics to
85 * IPython/iplib.py (handle_auto): changed autocall semantics to
85 include 'smart' mode, where the autocall transformation is NOT
86 include 'smart' mode, where the autocall transformation is NOT
86 applied if there are no arguments on the line. This allows you to
87 applied if there are no arguments on the line. This allows you to
87 just type 'foo' if foo is a callable to see its internal form,
88 just type 'foo' if foo is a callable to see its internal form,
88 instead of having it called with no arguments (typically a
89 instead of having it called with no arguments (typically a
89 mistake). The old 'full' autocall still exists: for that, you
90 mistake). The old 'full' autocall still exists: for that, you
90 need to set the 'autocall' parameter to 2 in your ipythonrc file.
91 need to set the 'autocall' parameter to 2 in your ipythonrc file.
91
92
92 * IPython/completer.py (Completer.attr_matches): add
93 * IPython/completer.py (Completer.attr_matches): add
93 tab-completion support for Enthoughts' traits. After a report by
94 tab-completion support for Enthoughts' traits. After a report by
94 Arnd and a patch by Prabhu.
95 Arnd and a patch by Prabhu.
95
96
96 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
97 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
97
98
98 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
99 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
99 Schmolck's patch to fix inspect.getinnerframes().
100 Schmolck's patch to fix inspect.getinnerframes().
100
101
101 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
102 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
102 for embedded instances, regarding handling of namespaces and items
103 for embedded instances, regarding handling of namespaces and items
103 added to the __builtin__ one. Multiple embedded instances and
104 added to the __builtin__ one. Multiple embedded instances and
104 recursive embeddings should work better now (though I'm not sure
105 recursive embeddings should work better now (though I'm not sure
105 I've got all the corner cases fixed, that code is a bit of a brain
106 I've got all the corner cases fixed, that code is a bit of a brain
106 twister).
107 twister).
107
108
108 * IPython/Magic.py (magic_edit): added support to edit in-memory
109 * IPython/Magic.py (magic_edit): added support to edit in-memory
109 macros (automatically creates the necessary temp files). %edit
110 macros (automatically creates the necessary temp files). %edit
110 also doesn't return the file contents anymore, it's just noise.
111 also doesn't return the file contents anymore, it's just noise.
111
112
112 * IPython/completer.py (Completer.attr_matches): revert change to
113 * IPython/completer.py (Completer.attr_matches): revert change to
113 complete only on attributes listed in __all__. I realized it
114 complete only on attributes listed in __all__. I realized it
114 cripples the tab-completion system as a tool for exploring the
115 cripples the tab-completion system as a tool for exploring the
115 internals of unknown libraries (it renders any non-__all__
116 internals of unknown libraries (it renders any non-__all__
116 attribute off-limits). I got bit by this when trying to see
117 attribute off-limits). I got bit by this when trying to see
117 something inside the dis module.
118 something inside the dis module.
118
119
119 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
120 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
120
121
121 * IPython/iplib.py (InteractiveShell.__init__): add .meta
122 * IPython/iplib.py (InteractiveShell.__init__): add .meta
122 namespace for users and extension writers to hold data in. This
123 namespace for users and extension writers to hold data in. This
123 follows the discussion in
124 follows the discussion in
124 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
125 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
125
126
126 * IPython/completer.py (IPCompleter.complete): small patch to help
127 * IPython/completer.py (IPCompleter.complete): small patch to help
127 tab-completion under Emacs, after a suggestion by John Barnard
128 tab-completion under Emacs, after a suggestion by John Barnard
128 <barnarj-AT-ccf.org>.
129 <barnarj-AT-ccf.org>.
129
130
130 * IPython/Magic.py (Magic.extract_input_slices): added support for
131 * IPython/Magic.py (Magic.extract_input_slices): added support for
131 the slice notation in magics to use N-M to represent numbers N...M
132 the slice notation in magics to use N-M to represent numbers N...M
132 (closed endpoints). This is used by %macro and %save.
133 (closed endpoints). This is used by %macro and %save.
133
134
134 * IPython/completer.py (Completer.attr_matches): for modules which
135 * IPython/completer.py (Completer.attr_matches): for modules which
135 define __all__, complete only on those. After a patch by Jeffrey
136 define __all__, complete only on those. After a patch by Jeffrey
136 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
137 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
137 speed up this routine.
138 speed up this routine.
138
139
139 * IPython/Logger.py (Logger.log): fix a history handling bug. I
140 * IPython/Logger.py (Logger.log): fix a history handling bug. I
140 don't know if this is the end of it, but the behavior now is
141 don't know if this is the end of it, but the behavior now is
141 certainly much more correct. Note that coupled with macros,
142 certainly much more correct. Note that coupled with macros,
142 slightly surprising (at first) behavior may occur: a macro will in
143 slightly surprising (at first) behavior may occur: a macro will in
143 general expand to multiple lines of input, so upon exiting, the
144 general expand to multiple lines of input, so upon exiting, the
144 in/out counters will both be bumped by the corresponding amount
145 in/out counters will both be bumped by the corresponding amount
145 (as if the macro's contents had been typed interactively). Typing
146 (as if the macro's contents had been typed interactively). Typing
146 %hist will reveal the intermediate (silently processed) lines.
147 %hist will reveal the intermediate (silently processed) lines.
147
148
148 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
149 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
149 pickle to fail (%run was overwriting __main__ and not restoring
150 pickle to fail (%run was overwriting __main__ and not restoring
150 it, but pickle relies on __main__ to operate).
151 it, but pickle relies on __main__ to operate).
151
152
152 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
153 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
153 using properties, but forgot to make the main InteractiveShell
154 using properties, but forgot to make the main InteractiveShell
154 class a new-style class. Properties fail silently, and
155 class a new-style class. Properties fail silently, and
155 misteriously, with old-style class (getters work, but
156 misteriously, with old-style class (getters work, but
156 setters don't do anything).
157 setters don't do anything).
157
158
158 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
159 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
159
160
160 * IPython/Magic.py (magic_history): fix history reporting bug (I
161 * IPython/Magic.py (magic_history): fix history reporting bug (I
161 know some nasties are still there, I just can't seem to find a
162 know some nasties are still there, I just can't seem to find a
162 reproducible test case to track them down; the input history is
163 reproducible test case to track them down; the input history is
163 falling out of sync...)
164 falling out of sync...)
164
165
165 * IPython/iplib.py (handle_shell_escape): fix bug where both
166 * IPython/iplib.py (handle_shell_escape): fix bug where both
166 aliases and system accesses where broken for indented code (such
167 aliases and system accesses where broken for indented code (such
167 as loops).
168 as loops).
168
169
169 * IPython/genutils.py (shell): fix small but critical bug for
170 * IPython/genutils.py (shell): fix small but critical bug for
170 win32 system access.
171 win32 system access.
171
172
172 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
173 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
173
174
174 * IPython/iplib.py (showtraceback): remove use of the
175 * IPython/iplib.py (showtraceback): remove use of the
175 sys.last_{type/value/traceback} structures, which are non
176 sys.last_{type/value/traceback} structures, which are non
176 thread-safe.
177 thread-safe.
177 (_prefilter): change control flow to ensure that we NEVER
178 (_prefilter): change control flow to ensure that we NEVER
178 introspect objects when autocall is off. This will guarantee that
179 introspect objects when autocall is off. This will guarantee that
179 having an input line of the form 'x.y', where access to attribute
180 having an input line of the form 'x.y', where access to attribute
180 'y' has side effects, doesn't trigger the side effect TWICE. It
181 'y' has side effects, doesn't trigger the side effect TWICE. It
181 is important to note that, with autocall on, these side effects
182 is important to note that, with autocall on, these side effects
182 can still happen.
183 can still happen.
183 (ipsystem): new builtin, to complete the ip{magic/alias/system}
184 (ipsystem): new builtin, to complete the ip{magic/alias/system}
184 trio. IPython offers these three kinds of special calls which are
185 trio. IPython offers these three kinds of special calls which are
185 not python code, and it's a good thing to have their call method
186 not python code, and it's a good thing to have their call method
186 be accessible as pure python functions (not just special syntax at
187 be accessible as pure python functions (not just special syntax at
187 the command line). It gives us a better internal implementation
188 the command line). It gives us a better internal implementation
188 structure, as well as exposing these for user scripting more
189 structure, as well as exposing these for user scripting more
189 cleanly.
190 cleanly.
190
191
191 * IPython/macro.py (Macro.__init__): moved macros to a standalone
192 * IPython/macro.py (Macro.__init__): moved macros to a standalone
192 file. Now that they'll be more likely to be used with the
193 file. Now that they'll be more likely to be used with the
193 persistance system (%store), I want to make sure their module path
194 persistance system (%store), I want to make sure their module path
194 doesn't change in the future, so that we don't break things for
195 doesn't change in the future, so that we don't break things for
195 users' persisted data.
196 users' persisted data.
196
197
197 * IPython/iplib.py (autoindent_update): move indentation
198 * IPython/iplib.py (autoindent_update): move indentation
198 management into the _text_ processing loop, not the keyboard
199 management into the _text_ processing loop, not the keyboard
199 interactive one. This is necessary to correctly process non-typed
200 interactive one. This is necessary to correctly process non-typed
200 multiline input (such as macros).
201 multiline input (such as macros).
201
202
202 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
203 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
203 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
204 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
204 which was producing problems in the resulting manual.
205 which was producing problems in the resulting manual.
205 (magic_whos): improve reporting of instances (show their class,
206 (magic_whos): improve reporting of instances (show their class,
206 instead of simply printing 'instance' which isn't terribly
207 instead of simply printing 'instance' which isn't terribly
207 informative).
208 informative).
208
209
209 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
210 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
210 (minor mods) to support network shares under win32.
211 (minor mods) to support network shares under win32.
211
212
212 * IPython/winconsole.py (get_console_size): add new winconsole
213 * IPython/winconsole.py (get_console_size): add new winconsole
213 module and fixes to page_dumb() to improve its behavior under
214 module and fixes to page_dumb() to improve its behavior under
214 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
215 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
215
216
216 * IPython/Magic.py (Macro): simplified Macro class to just
217 * IPython/Magic.py (Macro): simplified Macro class to just
217 subclass list. We've had only 2.2 compatibility for a very long
218 subclass list. We've had only 2.2 compatibility for a very long
218 time, yet I was still avoiding subclassing the builtin types. No
219 time, yet I was still avoiding subclassing the builtin types. No
219 more (I'm also starting to use properties, though I won't shift to
220 more (I'm also starting to use properties, though I won't shift to
220 2.3-specific features quite yet).
221 2.3-specific features quite yet).
221 (magic_store): added Ville's patch for lightweight variable
222 (magic_store): added Ville's patch for lightweight variable
222 persistence, after a request on the user list by Matt Wilkie
223 persistence, after a request on the user list by Matt Wilkie
223 <maphew-AT-gmail.com>. The new %store magic's docstring has full
224 <maphew-AT-gmail.com>. The new %store magic's docstring has full
224 details.
225 details.
225
226
226 * IPython/iplib.py (InteractiveShell.post_config_initialization):
227 * IPython/iplib.py (InteractiveShell.post_config_initialization):
227 changed the default logfile name from 'ipython.log' to
228 changed the default logfile name from 'ipython.log' to
228 'ipython_log.py'. These logs are real python files, and now that
229 'ipython_log.py'. These logs are real python files, and now that
229 we have much better multiline support, people are more likely to
230 we have much better multiline support, people are more likely to
230 want to use them as such. Might as well name them correctly.
231 want to use them as such. Might as well name them correctly.
231
232
232 * IPython/Magic.py: substantial cleanup. While we can't stop
233 * IPython/Magic.py: substantial cleanup. While we can't stop
233 using magics as mixins, due to the existing customizations 'out
234 using magics as mixins, due to the existing customizations 'out
234 there' which rely on the mixin naming conventions, at least I
235 there' which rely on the mixin naming conventions, at least I
235 cleaned out all cross-class name usage. So once we are OK with
236 cleaned out all cross-class name usage. So once we are OK with
236 breaking compatibility, the two systems can be separated.
237 breaking compatibility, the two systems can be separated.
237
238
238 * IPython/Logger.py: major cleanup. This one is NOT a mixin
239 * IPython/Logger.py: major cleanup. This one is NOT a mixin
239 anymore, and the class is a fair bit less hideous as well. New
240 anymore, and the class is a fair bit less hideous as well. New
240 features were also introduced: timestamping of input, and logging
241 features were also introduced: timestamping of input, and logging
241 of output results. These are user-visible with the -t and -o
242 of output results. These are user-visible with the -t and -o
242 options to %logstart. Closes
243 options to %logstart. Closes
243 http://www.scipy.net/roundup/ipython/issue11 and a request by
244 http://www.scipy.net/roundup/ipython/issue11 and a request by
244 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
245 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
245
246
246 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
247 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
247
248
248 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
249 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
249 better hadnle backslashes in paths. See the thread 'More Windows
250 better hadnle backslashes in paths. See the thread 'More Windows
250 questions part 2 - \/ characters revisited' on the iypthon user
251 questions part 2 - \/ characters revisited' on the iypthon user
251 list:
252 list:
252 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
253 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
253
254
254 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
255 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
255
256
256 (InteractiveShell.__init__): change threaded shells to not use the
257 (InteractiveShell.__init__): change threaded shells to not use the
257 ipython crash handler. This was causing more problems than not,
258 ipython crash handler. This was causing more problems than not,
258 as exceptions in the main thread (GUI code, typically) would
259 as exceptions in the main thread (GUI code, typically) would
259 always show up as a 'crash', when they really weren't.
260 always show up as a 'crash', when they really weren't.
260
261
261 The colors and exception mode commands (%colors/%xmode) have been
262 The colors and exception mode commands (%colors/%xmode) have been
262 synchronized to also take this into account, so users can get
263 synchronized to also take this into account, so users can get
263 verbose exceptions for their threaded code as well. I also added
264 verbose exceptions for their threaded code as well. I also added
264 support for activating pdb inside this exception handler as well,
265 support for activating pdb inside this exception handler as well,
265 so now GUI authors can use IPython's enhanced pdb at runtime.
266 so now GUI authors can use IPython's enhanced pdb at runtime.
266
267
267 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
268 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
268 true by default, and add it to the shipped ipythonrc file. Since
269 true by default, and add it to the shipped ipythonrc file. Since
269 this asks the user before proceeding, I think it's OK to make it
270 this asks the user before proceeding, I think it's OK to make it
270 true by default.
271 true by default.
271
272
272 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
273 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
273 of the previous special-casing of input in the eval loop. I think
274 of the previous special-casing of input in the eval loop. I think
274 this is cleaner, as they really are commands and shouldn't have
275 this is cleaner, as they really are commands and shouldn't have
275 a special role in the middle of the core code.
276 a special role in the middle of the core code.
276
277
277 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
278 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
278
279
279 * IPython/iplib.py (edit_syntax_error): added support for
280 * IPython/iplib.py (edit_syntax_error): added support for
280 automatically reopening the editor if the file had a syntax error
281 automatically reopening the editor if the file had a syntax error
281 in it. Thanks to scottt who provided the patch at:
282 in it. Thanks to scottt who provided the patch at:
282 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
283 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
283 version committed).
284 version committed).
284
285
285 * IPython/iplib.py (handle_normal): add suport for multi-line
286 * IPython/iplib.py (handle_normal): add suport for multi-line
286 input with emtpy lines. This fixes
287 input with emtpy lines. This fixes
287 http://www.scipy.net/roundup/ipython/issue43 and a similar
288 http://www.scipy.net/roundup/ipython/issue43 and a similar
288 discussion on the user list.
289 discussion on the user list.
289
290
290 WARNING: a behavior change is necessarily introduced to support
291 WARNING: a behavior change is necessarily introduced to support
291 blank lines: now a single blank line with whitespace does NOT
292 blank lines: now a single blank line with whitespace does NOT
292 break the input loop, which means that when autoindent is on, by
293 break the input loop, which means that when autoindent is on, by
293 default hitting return on the next (indented) line does NOT exit.
294 default hitting return on the next (indented) line does NOT exit.
294
295
295 Instead, to exit a multiline input you can either have:
296 Instead, to exit a multiline input you can either have:
296
297
297 - TWO whitespace lines (just hit return again), or
298 - TWO whitespace lines (just hit return again), or
298 - a single whitespace line of a different length than provided
299 - a single whitespace line of a different length than provided
299 by the autoindent (add or remove a space).
300 by the autoindent (add or remove a space).
300
301
301 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
302 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
302 module to better organize all readline-related functionality.
303 module to better organize all readline-related functionality.
303 I've deleted FlexCompleter and put all completion clases here.
304 I've deleted FlexCompleter and put all completion clases here.
304
305
305 * IPython/iplib.py (raw_input): improve indentation management.
306 * IPython/iplib.py (raw_input): improve indentation management.
306 It is now possible to paste indented code with autoindent on, and
307 It is now possible to paste indented code with autoindent on, and
307 the code is interpreted correctly (though it still looks bad on
308 the code is interpreted correctly (though it still looks bad on
308 screen, due to the line-oriented nature of ipython).
309 screen, due to the line-oriented nature of ipython).
309 (MagicCompleter.complete): change behavior so that a TAB key on an
310 (MagicCompleter.complete): change behavior so that a TAB key on an
310 otherwise empty line actually inserts a tab, instead of completing
311 otherwise empty line actually inserts a tab, instead of completing
311 on the entire global namespace. This makes it easier to use the
312 on the entire global namespace. This makes it easier to use the
312 TAB key for indentation. After a request by Hans Meine
313 TAB key for indentation. After a request by Hans Meine
313 <hans_meine-AT-gmx.net>
314 <hans_meine-AT-gmx.net>
314 (_prefilter): add support so that typing plain 'exit' or 'quit'
315 (_prefilter): add support so that typing plain 'exit' or 'quit'
315 does a sensible thing. Originally I tried to deviate as little as
316 does a sensible thing. Originally I tried to deviate as little as
316 possible from the default python behavior, but even that one may
317 possible from the default python behavior, but even that one may
317 change in this direction (thread on python-dev to that effect).
318 change in this direction (thread on python-dev to that effect).
318 Regardless, ipython should do the right thing even if CPython's
319 Regardless, ipython should do the right thing even if CPython's
319 '>>>' prompt doesn't.
320 '>>>' prompt doesn't.
320 (InteractiveShell): removed subclassing code.InteractiveConsole
321 (InteractiveShell): removed subclassing code.InteractiveConsole
321 class. By now we'd overridden just about all of its methods: I've
322 class. By now we'd overridden just about all of its methods: I've
322 copied the remaining two over, and now ipython is a standalone
323 copied the remaining two over, and now ipython is a standalone
323 class. This will provide a clearer picture for the chainsaw
324 class. This will provide a clearer picture for the chainsaw
324 branch refactoring.
325 branch refactoring.
325
326
326 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
327 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
327
328
328 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
329 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
329 failures for objects which break when dir() is called on them.
330 failures for objects which break when dir() is called on them.
330
331
331 * IPython/FlexCompleter.py (Completer.__init__): Added support for
332 * IPython/FlexCompleter.py (Completer.__init__): Added support for
332 distinct local and global namespaces in the completer API. This
333 distinct local and global namespaces in the completer API. This
333 change allows us top properly handle completion with distinct
334 change allows us top properly handle completion with distinct
334 scopes, including in embedded instances (this had never really
335 scopes, including in embedded instances (this had never really
335 worked correctly).
336 worked correctly).
336
337
337 Note: this introduces a change in the constructor for
338 Note: this introduces a change in the constructor for
338 MagicCompleter, as a new global_namespace parameter is now the
339 MagicCompleter, as a new global_namespace parameter is now the
339 second argument (the others were bumped one position).
340 second argument (the others were bumped one position).
340
341
341 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
342 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
342
343
343 * IPython/iplib.py (embed_mainloop): fix tab-completion in
344 * IPython/iplib.py (embed_mainloop): fix tab-completion in
344 embedded instances (which can be done now thanks to Vivian's
345 embedded instances (which can be done now thanks to Vivian's
345 frame-handling fixes for pdb).
346 frame-handling fixes for pdb).
346 (InteractiveShell.__init__): Fix namespace handling problem in
347 (InteractiveShell.__init__): Fix namespace handling problem in
347 embedded instances. We were overwriting __main__ unconditionally,
348 embedded instances. We were overwriting __main__ unconditionally,
348 and this should only be done for 'full' (non-embedded) IPython;
349 and this should only be done for 'full' (non-embedded) IPython;
349 embedded instances must respect the caller's __main__. Thanks to
350 embedded instances must respect the caller's __main__. Thanks to
350 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
351 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
351
352
352 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
353 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
353
354
354 * setup.py: added download_url to setup(). This registers the
355 * setup.py: added download_url to setup(). This registers the
355 download address at PyPI, which is not only useful to humans
356 download address at PyPI, which is not only useful to humans
356 browsing the site, but is also picked up by setuptools (the Eggs
357 browsing the site, but is also picked up by setuptools (the Eggs
357 machinery). Thanks to Ville and R. Kern for the info/discussion
358 machinery). Thanks to Ville and R. Kern for the info/discussion
358 on this.
359 on this.
359
360
360 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
361 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
361
362
362 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
363 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
363 This brings a lot of nice functionality to the pdb mode, which now
364 This brings a lot of nice functionality to the pdb mode, which now
364 has tab-completion, syntax highlighting, and better stack handling
365 has tab-completion, syntax highlighting, and better stack handling
365 than before. Many thanks to Vivian De Smedt
366 than before. Many thanks to Vivian De Smedt
366 <vivian-AT-vdesmedt.com> for the original patches.
367 <vivian-AT-vdesmedt.com> for the original patches.
367
368
368 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
369 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
369
370
370 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
371 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
371 sequence to consistently accept the banner argument. The
372 sequence to consistently accept the banner argument. The
372 inconsistency was tripping SAGE, thanks to Gary Zablackis
373 inconsistency was tripping SAGE, thanks to Gary Zablackis
373 <gzabl-AT-yahoo.com> for the report.
374 <gzabl-AT-yahoo.com> for the report.
374
375
375 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
376 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
376
377
377 * IPython/iplib.py (InteractiveShell.post_config_initialization):
378 * IPython/iplib.py (InteractiveShell.post_config_initialization):
378 Fix bug where a naked 'alias' call in the ipythonrc file would
379 Fix bug where a naked 'alias' call in the ipythonrc file would
379 cause a crash. Bug reported by Jorgen Stenarson.
380 cause a crash. Bug reported by Jorgen Stenarson.
380
381
381 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
382 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
382
383
383 * IPython/ipmaker.py (make_IPython): cleanups which should improve
384 * IPython/ipmaker.py (make_IPython): cleanups which should improve
384 startup time.
385 startup time.
385
386
386 * IPython/iplib.py (runcode): my globals 'fix' for embedded
387 * IPython/iplib.py (runcode): my globals 'fix' for embedded
387 instances had introduced a bug with globals in normal code. Now
388 instances had introduced a bug with globals in normal code. Now
388 it's working in all cases.
389 it's working in all cases.
389
390
390 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
391 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
391 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
392 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
392 has been introduced to set the default case sensitivity of the
393 has been introduced to set the default case sensitivity of the
393 searches. Users can still select either mode at runtime on a
394 searches. Users can still select either mode at runtime on a
394 per-search basis.
395 per-search basis.
395
396
396 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
397 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
397
398
398 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
399 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
399 attributes in wildcard searches for subclasses. Modified version
400 attributes in wildcard searches for subclasses. Modified version
400 of a patch by Jorgen.
401 of a patch by Jorgen.
401
402
402 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
403 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
403
404
404 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
405 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
405 embedded instances. I added a user_global_ns attribute to the
406 embedded instances. I added a user_global_ns attribute to the
406 InteractiveShell class to handle this.
407 InteractiveShell class to handle this.
407
408
408 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
409 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
409
410
410 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
411 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
411 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
412 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
412 (reported under win32, but may happen also in other platforms).
413 (reported under win32, but may happen also in other platforms).
413 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
414 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
414
415
415 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
416 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
416
417
417 * IPython/Magic.py (magic_psearch): new support for wildcard
418 * IPython/Magic.py (magic_psearch): new support for wildcard
418 patterns. Now, typing ?a*b will list all names which begin with a
419 patterns. Now, typing ?a*b will list all names which begin with a
419 and end in b, for example. The %psearch magic has full
420 and end in b, for example. The %psearch magic has full
420 docstrings. Many thanks to JΓΆrgen Stenarson
421 docstrings. Many thanks to JΓΆrgen Stenarson
421 <jorgen.stenarson-AT-bostream.nu>, author of the patches
422 <jorgen.stenarson-AT-bostream.nu>, author of the patches
422 implementing this functionality.
423 implementing this functionality.
423
424
424 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
425 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
425
426
426 * Manual: fixed long-standing annoyance of double-dashes (as in
427 * Manual: fixed long-standing annoyance of double-dashes (as in
427 --prefix=~, for example) being stripped in the HTML version. This
428 --prefix=~, for example) being stripped in the HTML version. This
428 is a latex2html bug, but a workaround was provided. Many thanks
429 is a latex2html bug, but a workaround was provided. Many thanks
429 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
430 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
430 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
431 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
431 rolling. This seemingly small issue had tripped a number of users
432 rolling. This seemingly small issue had tripped a number of users
432 when first installing, so I'm glad to see it gone.
433 when first installing, so I'm glad to see it gone.
433
434
434 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
435 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
435
436
436 * IPython/Extensions/numeric_formats.py: fix missing import,
437 * IPython/Extensions/numeric_formats.py: fix missing import,
437 reported by Stephen Walton.
438 reported by Stephen Walton.
438
439
439 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
440 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
440
441
441 * IPython/demo.py: finish demo module, fully documented now.
442 * IPython/demo.py: finish demo module, fully documented now.
442
443
443 * IPython/genutils.py (file_read): simple little utility to read a
444 * IPython/genutils.py (file_read): simple little utility to read a
444 file and ensure it's closed afterwards.
445 file and ensure it's closed afterwards.
445
446
446 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
447 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
447
448
448 * IPython/demo.py (Demo.__init__): added support for individually
449 * IPython/demo.py (Demo.__init__): added support for individually
449 tagging blocks for automatic execution.
450 tagging blocks for automatic execution.
450
451
451 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
452 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
452 syntax-highlighted python sources, requested by John.
453 syntax-highlighted python sources, requested by John.
453
454
454 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
455 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
455
456
456 * IPython/demo.py (Demo.again): fix bug where again() blocks after
457 * IPython/demo.py (Demo.again): fix bug where again() blocks after
457 finishing.
458 finishing.
458
459
459 * IPython/genutils.py (shlex_split): moved from Magic to here,
460 * IPython/genutils.py (shlex_split): moved from Magic to here,
460 where all 2.2 compatibility stuff lives. I needed it for demo.py.
461 where all 2.2 compatibility stuff lives. I needed it for demo.py.
461
462
462 * IPython/demo.py (Demo.__init__): added support for silent
463 * IPython/demo.py (Demo.__init__): added support for silent
463 blocks, improved marks as regexps, docstrings written.
464 blocks, improved marks as regexps, docstrings written.
464 (Demo.__init__): better docstring, added support for sys.argv.
465 (Demo.__init__): better docstring, added support for sys.argv.
465
466
466 * IPython/genutils.py (marquee): little utility used by the demo
467 * IPython/genutils.py (marquee): little utility used by the demo
467 code, handy in general.
468 code, handy in general.
468
469
469 * IPython/demo.py (Demo.__init__): new class for interactive
470 * IPython/demo.py (Demo.__init__): new class for interactive
470 demos. Not documented yet, I just wrote it in a hurry for
471 demos. Not documented yet, I just wrote it in a hurry for
471 scipy'05. Will docstring later.
472 scipy'05. Will docstring later.
472
473
473 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
474 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
474
475
475 * IPython/Shell.py (sigint_handler): Drastic simplification which
476 * IPython/Shell.py (sigint_handler): Drastic simplification which
476 also seems to make Ctrl-C work correctly across threads! This is
477 also seems to make Ctrl-C work correctly across threads! This is
477 so simple, that I can't beleive I'd missed it before. Needs more
478 so simple, that I can't beleive I'd missed it before. Needs more
478 testing, though.
479 testing, though.
479 (KBINT): Never mind, revert changes. I'm sure I'd tried something
480 (KBINT): Never mind, revert changes. I'm sure I'd tried something
480 like this before...
481 like this before...
481
482
482 * IPython/genutils.py (get_home_dir): add protection against
483 * IPython/genutils.py (get_home_dir): add protection against
483 non-dirs in win32 registry.
484 non-dirs in win32 registry.
484
485
485 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
486 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
486 bug where dict was mutated while iterating (pysh crash).
487 bug where dict was mutated while iterating (pysh crash).
487
488
488 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
489 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
489
490
490 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
491 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
491 spurious newlines added by this routine. After a report by
492 spurious newlines added by this routine. After a report by
492 F. Mantegazza.
493 F. Mantegazza.
493
494
494 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
495 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
495
496
496 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
497 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
497 calls. These were a leftover from the GTK 1.x days, and can cause
498 calls. These were a leftover from the GTK 1.x days, and can cause
498 problems in certain cases (after a report by John Hunter).
499 problems in certain cases (after a report by John Hunter).
499
500
500 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
501 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
501 os.getcwd() fails at init time. Thanks to patch from David Remahl
502 os.getcwd() fails at init time. Thanks to patch from David Remahl
502 <chmod007-AT-mac.com>.
503 <chmod007-AT-mac.com>.
503 (InteractiveShell.__init__): prevent certain special magics from
504 (InteractiveShell.__init__): prevent certain special magics from
504 being shadowed by aliases. Closes
505 being shadowed by aliases. Closes
505 http://www.scipy.net/roundup/ipython/issue41.
506 http://www.scipy.net/roundup/ipython/issue41.
506
507
507 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
508 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
508
509
509 * IPython/iplib.py (InteractiveShell.complete): Added new
510 * IPython/iplib.py (InteractiveShell.complete): Added new
510 top-level completion method to expose the completion mechanism
511 top-level completion method to expose the completion mechanism
511 beyond readline-based environments.
512 beyond readline-based environments.
512
513
513 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
514 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
514
515
515 * tools/ipsvnc (svnversion): fix svnversion capture.
516 * tools/ipsvnc (svnversion): fix svnversion capture.
516
517
517 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
518 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
518 attribute to self, which was missing. Before, it was set by a
519 attribute to self, which was missing. Before, it was set by a
519 routine which in certain cases wasn't being called, so the
520 routine which in certain cases wasn't being called, so the
520 instance could end up missing the attribute. This caused a crash.
521 instance could end up missing the attribute. This caused a crash.
521 Closes http://www.scipy.net/roundup/ipython/issue40.
522 Closes http://www.scipy.net/roundup/ipython/issue40.
522
523
523 2005-08-16 Fernando Perez <fperez@colorado.edu>
524 2005-08-16 Fernando Perez <fperez@colorado.edu>
524
525
525 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
526 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
526 contains non-string attribute. Closes
527 contains non-string attribute. Closes
527 http://www.scipy.net/roundup/ipython/issue38.
528 http://www.scipy.net/roundup/ipython/issue38.
528
529
529 2005-08-14 Fernando Perez <fperez@colorado.edu>
530 2005-08-14 Fernando Perez <fperez@colorado.edu>
530
531
531 * tools/ipsvnc: Minor improvements, to add changeset info.
532 * tools/ipsvnc: Minor improvements, to add changeset info.
532
533
533 2005-08-12 Fernando Perez <fperez@colorado.edu>
534 2005-08-12 Fernando Perez <fperez@colorado.edu>
534
535
535 * IPython/iplib.py (runsource): remove self.code_to_run_src
536 * IPython/iplib.py (runsource): remove self.code_to_run_src
536 attribute. I realized this is nothing more than
537 attribute. I realized this is nothing more than
537 '\n'.join(self.buffer), and having the same data in two different
538 '\n'.join(self.buffer), and having the same data in two different
538 places is just asking for synchronization bugs. This may impact
539 places is just asking for synchronization bugs. This may impact
539 people who have custom exception handlers, so I need to warn
540 people who have custom exception handlers, so I need to warn
540 ipython-dev about it (F. Mantegazza may use them).
541 ipython-dev about it (F. Mantegazza may use them).
541
542
542 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
543 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
543
544
544 * IPython/genutils.py: fix 2.2 compatibility (generators)
545 * IPython/genutils.py: fix 2.2 compatibility (generators)
545
546
546 2005-07-18 Fernando Perez <fperez@colorado.edu>
547 2005-07-18 Fernando Perez <fperez@colorado.edu>
547
548
548 * IPython/genutils.py (get_home_dir): fix to help users with
549 * IPython/genutils.py (get_home_dir): fix to help users with
549 invalid $HOME under win32.
550 invalid $HOME under win32.
550
551
551 2005-07-17 Fernando Perez <fperez@colorado.edu>
552 2005-07-17 Fernando Perez <fperez@colorado.edu>
552
553
553 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
554 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
554 some old hacks and clean up a bit other routines; code should be
555 some old hacks and clean up a bit other routines; code should be
555 simpler and a bit faster.
556 simpler and a bit faster.
556
557
557 * IPython/iplib.py (interact): removed some last-resort attempts
558 * IPython/iplib.py (interact): removed some last-resort attempts
558 to survive broken stdout/stderr. That code was only making it
559 to survive broken stdout/stderr. That code was only making it
559 harder to abstract out the i/o (necessary for gui integration),
560 harder to abstract out the i/o (necessary for gui integration),
560 and the crashes it could prevent were extremely rare in practice
561 and the crashes it could prevent were extremely rare in practice
561 (besides being fully user-induced in a pretty violent manner).
562 (besides being fully user-induced in a pretty violent manner).
562
563
563 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
564 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
564 Nothing major yet, but the code is simpler to read; this should
565 Nothing major yet, but the code is simpler to read; this should
565 make it easier to do more serious modifications in the future.
566 make it easier to do more serious modifications in the future.
566
567
567 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
568 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
568 which broke in .15 (thanks to a report by Ville).
569 which broke in .15 (thanks to a report by Ville).
569
570
570 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
571 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
571 be quite correct, I know next to nothing about unicode). This
572 be quite correct, I know next to nothing about unicode). This
572 will allow unicode strings to be used in prompts, amongst other
573 will allow unicode strings to be used in prompts, amongst other
573 cases. It also will prevent ipython from crashing when unicode
574 cases. It also will prevent ipython from crashing when unicode
574 shows up unexpectedly in many places. If ascii encoding fails, we
575 shows up unexpectedly in many places. If ascii encoding fails, we
575 assume utf_8. Currently the encoding is not a user-visible
576 assume utf_8. Currently the encoding is not a user-visible
576 setting, though it could be made so if there is demand for it.
577 setting, though it could be made so if there is demand for it.
577
578
578 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
579 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
579
580
580 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
581 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
581
582
582 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
583 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
583
584
584 * IPython/genutils.py: Add 2.2 compatibility here, so all other
585 * IPython/genutils.py: Add 2.2 compatibility here, so all other
585 code can work transparently for 2.2/2.3.
586 code can work transparently for 2.2/2.3.
586
587
587 2005-07-16 Fernando Perez <fperez@colorado.edu>
588 2005-07-16 Fernando Perez <fperez@colorado.edu>
588
589
589 * IPython/ultraTB.py (ExceptionColors): Make a global variable
590 * IPython/ultraTB.py (ExceptionColors): Make a global variable
590 out of the color scheme table used for coloring exception
591 out of the color scheme table used for coloring exception
591 tracebacks. This allows user code to add new schemes at runtime.
592 tracebacks. This allows user code to add new schemes at runtime.
592 This is a minimally modified version of the patch at
593 This is a minimally modified version of the patch at
593 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
594 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
594 for the contribution.
595 for the contribution.
595
596
596 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
597 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
597 slightly modified version of the patch in
598 slightly modified version of the patch in
598 http://www.scipy.net/roundup/ipython/issue34, which also allows me
599 http://www.scipy.net/roundup/ipython/issue34, which also allows me
599 to remove the previous try/except solution (which was costlier).
600 to remove the previous try/except solution (which was costlier).
600 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
601 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
601
602
602 2005-06-08 Fernando Perez <fperez@colorado.edu>
603 2005-06-08 Fernando Perez <fperez@colorado.edu>
603
604
604 * IPython/iplib.py (write/write_err): Add methods to abstract all
605 * IPython/iplib.py (write/write_err): Add methods to abstract all
605 I/O a bit more.
606 I/O a bit more.
606
607
607 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
608 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
608 warning, reported by Aric Hagberg, fix by JD Hunter.
609 warning, reported by Aric Hagberg, fix by JD Hunter.
609
610
610 2005-06-02 *** Released version 0.6.15
611 2005-06-02 *** Released version 0.6.15
611
612
612 2005-06-01 Fernando Perez <fperez@colorado.edu>
613 2005-06-01 Fernando Perez <fperez@colorado.edu>
613
614
614 * IPython/iplib.py (MagicCompleter.file_matches): Fix
615 * IPython/iplib.py (MagicCompleter.file_matches): Fix
615 tab-completion of filenames within open-quoted strings. Note that
616 tab-completion of filenames within open-quoted strings. Note that
616 this requires that in ~/.ipython/ipythonrc, users change the
617 this requires that in ~/.ipython/ipythonrc, users change the
617 readline delimiters configuration to read:
618 readline delimiters configuration to read:
618
619
619 readline_remove_delims -/~
620 readline_remove_delims -/~
620
621
621
622
622 2005-05-31 *** Released version 0.6.14
623 2005-05-31 *** Released version 0.6.14
623
624
624 2005-05-29 Fernando Perez <fperez@colorado.edu>
625 2005-05-29 Fernando Perez <fperez@colorado.edu>
625
626
626 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
627 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
627 with files not on the filesystem. Reported by Eliyahu Sandler
628 with files not on the filesystem. Reported by Eliyahu Sandler
628 <eli@gondolin.net>
629 <eli@gondolin.net>
629
630
630 2005-05-22 Fernando Perez <fperez@colorado.edu>
631 2005-05-22 Fernando Perez <fperez@colorado.edu>
631
632
632 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
633 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
633 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
634 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
634
635
635 2005-05-19 Fernando Perez <fperez@colorado.edu>
636 2005-05-19 Fernando Perez <fperez@colorado.edu>
636
637
637 * IPython/iplib.py (safe_execfile): close a file which could be
638 * IPython/iplib.py (safe_execfile): close a file which could be
638 left open (causing problems in win32, which locks open files).
639 left open (causing problems in win32, which locks open files).
639 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
640 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
640
641
641 2005-05-18 Fernando Perez <fperez@colorado.edu>
642 2005-05-18 Fernando Perez <fperez@colorado.edu>
642
643
643 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
644 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
644 keyword arguments correctly to safe_execfile().
645 keyword arguments correctly to safe_execfile().
645
646
646 2005-05-13 Fernando Perez <fperez@colorado.edu>
647 2005-05-13 Fernando Perez <fperez@colorado.edu>
647
648
648 * ipython.1: Added info about Qt to manpage, and threads warning
649 * ipython.1: Added info about Qt to manpage, and threads warning
649 to usage page (invoked with --help).
650 to usage page (invoked with --help).
650
651
651 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
652 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
652 new matcher (it goes at the end of the priority list) to do
653 new matcher (it goes at the end of the priority list) to do
653 tab-completion on named function arguments. Submitted by George
654 tab-completion on named function arguments. Submitted by George
654 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
655 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
655 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
656 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
656 for more details.
657 for more details.
657
658
658 * IPython/Magic.py (magic_run): Added new -e flag to ignore
659 * IPython/Magic.py (magic_run): Added new -e flag to ignore
659 SystemExit exceptions in the script being run. Thanks to a report
660 SystemExit exceptions in the script being run. Thanks to a report
660 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
661 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
661 producing very annoying behavior when running unit tests.
662 producing very annoying behavior when running unit tests.
662
663
663 2005-05-12 Fernando Perez <fperez@colorado.edu>
664 2005-05-12 Fernando Perez <fperez@colorado.edu>
664
665
665 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
666 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
666 which I'd broken (again) due to a changed regexp. In the process,
667 which I'd broken (again) due to a changed regexp. In the process,
667 added ';' as an escape to auto-quote the whole line without
668 added ';' as an escape to auto-quote the whole line without
668 splitting its arguments. Thanks to a report by Jerry McRae
669 splitting its arguments. Thanks to a report by Jerry McRae
669 <qrs0xyc02-AT-sneakemail.com>.
670 <qrs0xyc02-AT-sneakemail.com>.
670
671
671 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
672 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
672 possible crashes caused by a TokenError. Reported by Ed Schofield
673 possible crashes caused by a TokenError. Reported by Ed Schofield
673 <schofield-AT-ftw.at>.
674 <schofield-AT-ftw.at>.
674
675
675 2005-05-06 Fernando Perez <fperez@colorado.edu>
676 2005-05-06 Fernando Perez <fperez@colorado.edu>
676
677
677 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
678 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
678
679
679 2005-04-29 Fernando Perez <fperez@colorado.edu>
680 2005-04-29 Fernando Perez <fperez@colorado.edu>
680
681
681 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
682 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
682 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
683 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
683 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
684 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
684 which provides support for Qt interactive usage (similar to the
685 which provides support for Qt interactive usage (similar to the
685 existing one for WX and GTK). This had been often requested.
686 existing one for WX and GTK). This had been often requested.
686
687
687 2005-04-14 *** Released version 0.6.13
688 2005-04-14 *** Released version 0.6.13
688
689
689 2005-04-08 Fernando Perez <fperez@colorado.edu>
690 2005-04-08 Fernando Perez <fperez@colorado.edu>
690
691
691 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
692 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
692 from _ofind, which gets called on almost every input line. Now,
693 from _ofind, which gets called on almost every input line. Now,
693 we only try to get docstrings if they are actually going to be
694 we only try to get docstrings if they are actually going to be
694 used (the overhead of fetching unnecessary docstrings can be
695 used (the overhead of fetching unnecessary docstrings can be
695 noticeable for certain objects, such as Pyro proxies).
696 noticeable for certain objects, such as Pyro proxies).
696
697
697 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
698 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
698 for completers. For some reason I had been passing them the state
699 for completers. For some reason I had been passing them the state
699 variable, which completers never actually need, and was in
700 variable, which completers never actually need, and was in
700 conflict with the rlcompleter API. Custom completers ONLY need to
701 conflict with the rlcompleter API. Custom completers ONLY need to
701 take the text parameter.
702 take the text parameter.
702
703
703 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
704 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
704 work correctly in pysh. I've also moved all the logic which used
705 work correctly in pysh. I've also moved all the logic which used
705 to be in pysh.py here, which will prevent problems with future
706 to be in pysh.py here, which will prevent problems with future
706 upgrades. However, this time I must warn users to update their
707 upgrades. However, this time I must warn users to update their
707 pysh profile to include the line
708 pysh profile to include the line
708
709
709 import_all IPython.Extensions.InterpreterExec
710 import_all IPython.Extensions.InterpreterExec
710
711
711 because otherwise things won't work for them. They MUST also
712 because otherwise things won't work for them. They MUST also
712 delete pysh.py and the line
713 delete pysh.py and the line
713
714
714 execfile pysh.py
715 execfile pysh.py
715
716
716 from their ipythonrc-pysh.
717 from their ipythonrc-pysh.
717
718
718 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
719 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
719 robust in the face of objects whose dir() returns non-strings
720 robust in the face of objects whose dir() returns non-strings
720 (which it shouldn't, but some broken libs like ITK do). Thanks to
721 (which it shouldn't, but some broken libs like ITK do). Thanks to
721 a patch by John Hunter (implemented differently, though). Also
722 a patch by John Hunter (implemented differently, though). Also
722 minor improvements by using .extend instead of + on lists.
723 minor improvements by using .extend instead of + on lists.
723
724
724 * pysh.py:
725 * pysh.py:
725
726
726 2005-04-06 Fernando Perez <fperez@colorado.edu>
727 2005-04-06 Fernando Perez <fperez@colorado.edu>
727
728
728 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
729 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
729 by default, so that all users benefit from it. Those who don't
730 by default, so that all users benefit from it. Those who don't
730 want it can still turn it off.
731 want it can still turn it off.
731
732
732 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
733 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
733 config file, I'd forgotten about this, so users were getting it
734 config file, I'd forgotten about this, so users were getting it
734 off by default.
735 off by default.
735
736
736 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
737 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
737 consistency. Now magics can be called in multiline statements,
738 consistency. Now magics can be called in multiline statements,
738 and python variables can be expanded in magic calls via $var.
739 and python variables can be expanded in magic calls via $var.
739 This makes the magic system behave just like aliases or !system
740 This makes the magic system behave just like aliases or !system
740 calls.
741 calls.
741
742
742 2005-03-28 Fernando Perez <fperez@colorado.edu>
743 2005-03-28 Fernando Perez <fperez@colorado.edu>
743
744
744 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
745 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
745 expensive string additions for building command. Add support for
746 expensive string additions for building command. Add support for
746 trailing ';' when autocall is used.
747 trailing ';' when autocall is used.
747
748
748 2005-03-26 Fernando Perez <fperez@colorado.edu>
749 2005-03-26 Fernando Perez <fperez@colorado.edu>
749
750
750 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
751 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
751 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
752 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
752 ipython.el robust against prompts with any number of spaces
753 ipython.el robust against prompts with any number of spaces
753 (including 0) after the ':' character.
754 (including 0) after the ':' character.
754
755
755 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
756 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
756 continuation prompt, which misled users to think the line was
757 continuation prompt, which misled users to think the line was
757 already indented. Closes debian Bug#300847, reported to me by
758 already indented. Closes debian Bug#300847, reported to me by
758 Norbert Tretkowski <tretkowski-AT-inittab.de>.
759 Norbert Tretkowski <tretkowski-AT-inittab.de>.
759
760
760 2005-03-23 Fernando Perez <fperez@colorado.edu>
761 2005-03-23 Fernando Perez <fperez@colorado.edu>
761
762
762 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
763 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
763 properly aligned if they have embedded newlines.
764 properly aligned if they have embedded newlines.
764
765
765 * IPython/iplib.py (runlines): Add a public method to expose
766 * IPython/iplib.py (runlines): Add a public method to expose
766 IPython's code execution machinery, so that users can run strings
767 IPython's code execution machinery, so that users can run strings
767 as if they had been typed at the prompt interactively.
768 as if they had been typed at the prompt interactively.
768 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
769 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
769 methods which can call the system shell, but with python variable
770 methods which can call the system shell, but with python variable
770 expansion. The three such methods are: __IPYTHON__.system,
771 expansion. The three such methods are: __IPYTHON__.system,
771 .getoutput and .getoutputerror. These need to be documented in a
772 .getoutput and .getoutputerror. These need to be documented in a
772 'public API' section (to be written) of the manual.
773 'public API' section (to be written) of the manual.
773
774
774 2005-03-20 Fernando Perez <fperez@colorado.edu>
775 2005-03-20 Fernando Perez <fperez@colorado.edu>
775
776
776 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
777 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
777 for custom exception handling. This is quite powerful, and it
778 for custom exception handling. This is quite powerful, and it
778 allows for user-installable exception handlers which can trap
779 allows for user-installable exception handlers which can trap
779 custom exceptions at runtime and treat them separately from
780 custom exceptions at runtime and treat them separately from
780 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
781 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
781 Mantegazza <mantegazza-AT-ill.fr>.
782 Mantegazza <mantegazza-AT-ill.fr>.
782 (InteractiveShell.set_custom_completer): public API function to
783 (InteractiveShell.set_custom_completer): public API function to
783 add new completers at runtime.
784 add new completers at runtime.
784
785
785 2005-03-19 Fernando Perez <fperez@colorado.edu>
786 2005-03-19 Fernando Perez <fperez@colorado.edu>
786
787
787 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
788 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
788 allow objects which provide their docstrings via non-standard
789 allow objects which provide their docstrings via non-standard
789 mechanisms (like Pyro proxies) to still be inspected by ipython's
790 mechanisms (like Pyro proxies) to still be inspected by ipython's
790 ? system.
791 ? system.
791
792
792 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
793 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
793 automatic capture system. I tried quite hard to make it work
794 automatic capture system. I tried quite hard to make it work
794 reliably, and simply failed. I tried many combinations with the
795 reliably, and simply failed. I tried many combinations with the
795 subprocess module, but eventually nothing worked in all needed
796 subprocess module, but eventually nothing worked in all needed
796 cases (not blocking stdin for the child, duplicating stdout
797 cases (not blocking stdin for the child, duplicating stdout
797 without blocking, etc). The new %sc/%sx still do capture to these
798 without blocking, etc). The new %sc/%sx still do capture to these
798 magical list/string objects which make shell use much more
799 magical list/string objects which make shell use much more
799 conveninent, so not all is lost.
800 conveninent, so not all is lost.
800
801
801 XXX - FIX MANUAL for the change above!
802 XXX - FIX MANUAL for the change above!
802
803
803 (runsource): I copied code.py's runsource() into ipython to modify
804 (runsource): I copied code.py's runsource() into ipython to modify
804 it a bit. Now the code object and source to be executed are
805 it a bit. Now the code object and source to be executed are
805 stored in ipython. This makes this info accessible to third-party
806 stored in ipython. This makes this info accessible to third-party
806 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
807 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
807 Mantegazza <mantegazza-AT-ill.fr>.
808 Mantegazza <mantegazza-AT-ill.fr>.
808
809
809 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
810 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
810 history-search via readline (like C-p/C-n). I'd wanted this for a
811 history-search via readline (like C-p/C-n). I'd wanted this for a
811 long time, but only recently found out how to do it. For users
812 long time, but only recently found out how to do it. For users
812 who already have their ipythonrc files made and want this, just
813 who already have their ipythonrc files made and want this, just
813 add:
814 add:
814
815
815 readline_parse_and_bind "\e[A": history-search-backward
816 readline_parse_and_bind "\e[A": history-search-backward
816 readline_parse_and_bind "\e[B": history-search-forward
817 readline_parse_and_bind "\e[B": history-search-forward
817
818
818 2005-03-18 Fernando Perez <fperez@colorado.edu>
819 2005-03-18 Fernando Perez <fperez@colorado.edu>
819
820
820 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
821 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
821 LSString and SList classes which allow transparent conversions
822 LSString and SList classes which allow transparent conversions
822 between list mode and whitespace-separated string.
823 between list mode and whitespace-separated string.
823 (magic_r): Fix recursion problem in %r.
824 (magic_r): Fix recursion problem in %r.
824
825
825 * IPython/genutils.py (LSString): New class to be used for
826 * IPython/genutils.py (LSString): New class to be used for
826 automatic storage of the results of all alias/system calls in _o
827 automatic storage of the results of all alias/system calls in _o
827 and _e (stdout/err). These provide a .l/.list attribute which
828 and _e (stdout/err). These provide a .l/.list attribute which
828 does automatic splitting on newlines. This means that for most
829 does automatic splitting on newlines. This means that for most
829 uses, you'll never need to do capturing of output with %sc/%sx
830 uses, you'll never need to do capturing of output with %sc/%sx
830 anymore, since ipython keeps this always done for you. Note that
831 anymore, since ipython keeps this always done for you. Note that
831 only the LAST results are stored, the _o/e variables are
832 only the LAST results are stored, the _o/e variables are
832 overwritten on each call. If you need to save their contents
833 overwritten on each call. If you need to save their contents
833 further, simply bind them to any other name.
834 further, simply bind them to any other name.
834
835
835 2005-03-17 Fernando Perez <fperez@colorado.edu>
836 2005-03-17 Fernando Perez <fperez@colorado.edu>
836
837
837 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
838 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
838 prompt namespace handling.
839 prompt namespace handling.
839
840
840 2005-03-16 Fernando Perez <fperez@colorado.edu>
841 2005-03-16 Fernando Perez <fperez@colorado.edu>
841
842
842 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
843 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
843 classic prompts to be '>>> ' (final space was missing, and it
844 classic prompts to be '>>> ' (final space was missing, and it
844 trips the emacs python mode).
845 trips the emacs python mode).
845 (BasePrompt.__str__): Added safe support for dynamic prompt
846 (BasePrompt.__str__): Added safe support for dynamic prompt
846 strings. Now you can set your prompt string to be '$x', and the
847 strings. Now you can set your prompt string to be '$x', and the
847 value of x will be printed from your interactive namespace. The
848 value of x will be printed from your interactive namespace. The
848 interpolation syntax includes the full Itpl support, so
849 interpolation syntax includes the full Itpl support, so
849 ${foo()+x+bar()} is a valid prompt string now, and the function
850 ${foo()+x+bar()} is a valid prompt string now, and the function
850 calls will be made at runtime.
851 calls will be made at runtime.
851
852
852 2005-03-15 Fernando Perez <fperez@colorado.edu>
853 2005-03-15 Fernando Perez <fperez@colorado.edu>
853
854
854 * IPython/Magic.py (magic_history): renamed %hist to %history, to
855 * IPython/Magic.py (magic_history): renamed %hist to %history, to
855 avoid name clashes in pylab. %hist still works, it just forwards
856 avoid name clashes in pylab. %hist still works, it just forwards
856 the call to %history.
857 the call to %history.
857
858
858 2005-03-02 *** Released version 0.6.12
859 2005-03-02 *** Released version 0.6.12
859
860
860 2005-03-02 Fernando Perez <fperez@colorado.edu>
861 2005-03-02 Fernando Perez <fperez@colorado.edu>
861
862
862 * IPython/iplib.py (handle_magic): log magic calls properly as
863 * IPython/iplib.py (handle_magic): log magic calls properly as
863 ipmagic() function calls.
864 ipmagic() function calls.
864
865
865 * IPython/Magic.py (magic_time): Improved %time to support
866 * IPython/Magic.py (magic_time): Improved %time to support
866 statements and provide wall-clock as well as CPU time.
867 statements and provide wall-clock as well as CPU time.
867
868
868 2005-02-27 Fernando Perez <fperez@colorado.edu>
869 2005-02-27 Fernando Perez <fperez@colorado.edu>
869
870
870 * IPython/hooks.py: New hooks module, to expose user-modifiable
871 * IPython/hooks.py: New hooks module, to expose user-modifiable
871 IPython functionality in a clean manner. For now only the editor
872 IPython functionality in a clean manner. For now only the editor
872 hook is actually written, and other thigns which I intend to turn
873 hook is actually written, and other thigns which I intend to turn
873 into proper hooks aren't yet there. The display and prefilter
874 into proper hooks aren't yet there. The display and prefilter
874 stuff, for example, should be hooks. But at least now the
875 stuff, for example, should be hooks. But at least now the
875 framework is in place, and the rest can be moved here with more
876 framework is in place, and the rest can be moved here with more
876 time later. IPython had had a .hooks variable for a long time for
877 time later. IPython had had a .hooks variable for a long time for
877 this purpose, but I'd never actually used it for anything.
878 this purpose, but I'd never actually used it for anything.
878
879
879 2005-02-26 Fernando Perez <fperez@colorado.edu>
880 2005-02-26 Fernando Perez <fperez@colorado.edu>
880
881
881 * IPython/ipmaker.py (make_IPython): make the default ipython
882 * IPython/ipmaker.py (make_IPython): make the default ipython
882 directory be called _ipython under win32, to follow more the
883 directory be called _ipython under win32, to follow more the
883 naming peculiarities of that platform (where buggy software like
884 naming peculiarities of that platform (where buggy software like
884 Visual Sourcesafe breaks with .named directories). Reported by
885 Visual Sourcesafe breaks with .named directories). Reported by
885 Ville Vainio.
886 Ville Vainio.
886
887
887 2005-02-23 Fernando Perez <fperez@colorado.edu>
888 2005-02-23 Fernando Perez <fperez@colorado.edu>
888
889
889 * IPython/iplib.py (InteractiveShell.__init__): removed a few
890 * IPython/iplib.py (InteractiveShell.__init__): removed a few
890 auto_aliases for win32 which were causing problems. Users can
891 auto_aliases for win32 which were causing problems. Users can
891 define the ones they personally like.
892 define the ones they personally like.
892
893
893 2005-02-21 Fernando Perez <fperez@colorado.edu>
894 2005-02-21 Fernando Perez <fperez@colorado.edu>
894
895
895 * IPython/Magic.py (magic_time): new magic to time execution of
896 * IPython/Magic.py (magic_time): new magic to time execution of
896 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
897 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
897
898
898 2005-02-19 Fernando Perez <fperez@colorado.edu>
899 2005-02-19 Fernando Perez <fperez@colorado.edu>
899
900
900 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
901 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
901 into keys (for prompts, for example).
902 into keys (for prompts, for example).
902
903
903 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
904 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
904 prompts in case users want them. This introduces a small behavior
905 prompts in case users want them. This introduces a small behavior
905 change: ipython does not automatically add a space to all prompts
906 change: ipython does not automatically add a space to all prompts
906 anymore. To get the old prompts with a space, users should add it
907 anymore. To get the old prompts with a space, users should add it
907 manually to their ipythonrc file, so for example prompt_in1 should
908 manually to their ipythonrc file, so for example prompt_in1 should
908 now read 'In [\#]: ' instead of 'In [\#]:'.
909 now read 'In [\#]: ' instead of 'In [\#]:'.
909 (BasePrompt.__init__): New option prompts_pad_left (only in rc
910 (BasePrompt.__init__): New option prompts_pad_left (only in rc
910 file) to control left-padding of secondary prompts.
911 file) to control left-padding of secondary prompts.
911
912
912 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
913 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
913 the profiler can't be imported. Fix for Debian, which removed
914 the profiler can't be imported. Fix for Debian, which removed
914 profile.py because of License issues. I applied a slightly
915 profile.py because of License issues. I applied a slightly
915 modified version of the original Debian patch at
916 modified version of the original Debian patch at
916 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
917 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
917
918
918 2005-02-17 Fernando Perez <fperez@colorado.edu>
919 2005-02-17 Fernando Perez <fperez@colorado.edu>
919
920
920 * IPython/genutils.py (native_line_ends): Fix bug which would
921 * IPython/genutils.py (native_line_ends): Fix bug which would
921 cause improper line-ends under win32 b/c I was not opening files
922 cause improper line-ends under win32 b/c I was not opening files
922 in binary mode. Bug report and fix thanks to Ville.
923 in binary mode. Bug report and fix thanks to Ville.
923
924
924 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
925 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
925 trying to catch spurious foo[1] autocalls. My fix actually broke
926 trying to catch spurious foo[1] autocalls. My fix actually broke
926 ',/' autoquote/call with explicit escape (bad regexp).
927 ',/' autoquote/call with explicit escape (bad regexp).
927
928
928 2005-02-15 *** Released version 0.6.11
929 2005-02-15 *** Released version 0.6.11
929
930
930 2005-02-14 Fernando Perez <fperez@colorado.edu>
931 2005-02-14 Fernando Perez <fperez@colorado.edu>
931
932
932 * IPython/background_jobs.py: New background job management
933 * IPython/background_jobs.py: New background job management
933 subsystem. This is implemented via a new set of classes, and
934 subsystem. This is implemented via a new set of classes, and
934 IPython now provides a builtin 'jobs' object for background job
935 IPython now provides a builtin 'jobs' object for background job
935 execution. A convenience %bg magic serves as a lightweight
936 execution. A convenience %bg magic serves as a lightweight
936 frontend for starting the more common type of calls. This was
937 frontend for starting the more common type of calls. This was
937 inspired by discussions with B. Granger and the BackgroundCommand
938 inspired by discussions with B. Granger and the BackgroundCommand
938 class described in the book Python Scripting for Computational
939 class described in the book Python Scripting for Computational
939 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
940 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
940 (although ultimately no code from this text was used, as IPython's
941 (although ultimately no code from this text was used, as IPython's
941 system is a separate implementation).
942 system is a separate implementation).
942
943
943 * IPython/iplib.py (MagicCompleter.python_matches): add new option
944 * IPython/iplib.py (MagicCompleter.python_matches): add new option
944 to control the completion of single/double underscore names
945 to control the completion of single/double underscore names
945 separately. As documented in the example ipytonrc file, the
946 separately. As documented in the example ipytonrc file, the
946 readline_omit__names variable can now be set to 2, to omit even
947 readline_omit__names variable can now be set to 2, to omit even
947 single underscore names. Thanks to a patch by Brian Wong
948 single underscore names. Thanks to a patch by Brian Wong
948 <BrianWong-AT-AirgoNetworks.Com>.
949 <BrianWong-AT-AirgoNetworks.Com>.
949 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
950 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
950 be autocalled as foo([1]) if foo were callable. A problem for
951 be autocalled as foo([1]) if foo were callable. A problem for
951 things which are both callable and implement __getitem__.
952 things which are both callable and implement __getitem__.
952 (init_readline): Fix autoindentation for win32. Thanks to a patch
953 (init_readline): Fix autoindentation for win32. Thanks to a patch
953 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
954 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
954
955
955 2005-02-12 Fernando Perez <fperez@colorado.edu>
956 2005-02-12 Fernando Perez <fperez@colorado.edu>
956
957
957 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
958 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
958 which I had written long ago to sort out user error messages which
959 which I had written long ago to sort out user error messages which
959 may occur during startup. This seemed like a good idea initially,
960 may occur during startup. This seemed like a good idea initially,
960 but it has proven a disaster in retrospect. I don't want to
961 but it has proven a disaster in retrospect. I don't want to
961 change much code for now, so my fix is to set the internal 'debug'
962 change much code for now, so my fix is to set the internal 'debug'
962 flag to true everywhere, whose only job was precisely to control
963 flag to true everywhere, whose only job was precisely to control
963 this subsystem. This closes issue 28 (as well as avoiding all
964 this subsystem. This closes issue 28 (as well as avoiding all
964 sorts of strange hangups which occur from time to time).
965 sorts of strange hangups which occur from time to time).
965
966
966 2005-02-07 Fernando Perez <fperez@colorado.edu>
967 2005-02-07 Fernando Perez <fperez@colorado.edu>
967
968
968 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
969 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
969 previous call produced a syntax error.
970 previous call produced a syntax error.
970
971
971 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
972 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
972 classes without constructor.
973 classes without constructor.
973
974
974 2005-02-06 Fernando Perez <fperez@colorado.edu>
975 2005-02-06 Fernando Perez <fperez@colorado.edu>
975
976
976 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
977 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
977 completions with the results of each matcher, so we return results
978 completions with the results of each matcher, so we return results
978 to the user from all namespaces. This breaks with ipython
979 to the user from all namespaces. This breaks with ipython
979 tradition, but I think it's a nicer behavior. Now you get all
980 tradition, but I think it's a nicer behavior. Now you get all
980 possible completions listed, from all possible namespaces (python,
981 possible completions listed, from all possible namespaces (python,
981 filesystem, magics...) After a request by John Hunter
982 filesystem, magics...) After a request by John Hunter
982 <jdhunter-AT-nitace.bsd.uchicago.edu>.
983 <jdhunter-AT-nitace.bsd.uchicago.edu>.
983
984
984 2005-02-05 Fernando Perez <fperez@colorado.edu>
985 2005-02-05 Fernando Perez <fperez@colorado.edu>
985
986
986 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
987 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
987 the call had quote characters in it (the quotes were stripped).
988 the call had quote characters in it (the quotes were stripped).
988
989
989 2005-01-31 Fernando Perez <fperez@colorado.edu>
990 2005-01-31 Fernando Perez <fperez@colorado.edu>
990
991
991 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
992 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
992 Itpl.itpl() to make the code more robust against psyco
993 Itpl.itpl() to make the code more robust against psyco
993 optimizations.
994 optimizations.
994
995
995 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
996 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
996 of causing an exception. Quicker, cleaner.
997 of causing an exception. Quicker, cleaner.
997
998
998 2005-01-28 Fernando Perez <fperez@colorado.edu>
999 2005-01-28 Fernando Perez <fperez@colorado.edu>
999
1000
1000 * scripts/ipython_win_post_install.py (install): hardcode
1001 * scripts/ipython_win_post_install.py (install): hardcode
1001 sys.prefix+'python.exe' as the executable path. It turns out that
1002 sys.prefix+'python.exe' as the executable path. It turns out that
1002 during the post-installation run, sys.executable resolves to the
1003 during the post-installation run, sys.executable resolves to the
1003 name of the binary installer! I should report this as a distutils
1004 name of the binary installer! I should report this as a distutils
1004 bug, I think. I updated the .10 release with this tiny fix, to
1005 bug, I think. I updated the .10 release with this tiny fix, to
1005 avoid annoying the lists further.
1006 avoid annoying the lists further.
1006
1007
1007 2005-01-27 *** Released version 0.6.10
1008 2005-01-27 *** Released version 0.6.10
1008
1009
1009 2005-01-27 Fernando Perez <fperez@colorado.edu>
1010 2005-01-27 Fernando Perez <fperez@colorado.edu>
1010
1011
1011 * IPython/numutils.py (norm): Added 'inf' as optional name for
1012 * IPython/numutils.py (norm): Added 'inf' as optional name for
1012 L-infinity norm, included references to mathworld.com for vector
1013 L-infinity norm, included references to mathworld.com for vector
1013 norm definitions.
1014 norm definitions.
1014 (amin/amax): added amin/amax for array min/max. Similar to what
1015 (amin/amax): added amin/amax for array min/max. Similar to what
1015 pylab ships with after the recent reorganization of names.
1016 pylab ships with after the recent reorganization of names.
1016 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1017 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1017
1018
1018 * ipython.el: committed Alex's recent fixes and improvements.
1019 * ipython.el: committed Alex's recent fixes and improvements.
1019 Tested with python-mode from CVS, and it looks excellent. Since
1020 Tested with python-mode from CVS, and it looks excellent. Since
1020 python-mode hasn't released anything in a while, I'm temporarily
1021 python-mode hasn't released anything in a while, I'm temporarily
1021 putting a copy of today's CVS (v 4.70) of python-mode in:
1022 putting a copy of today's CVS (v 4.70) of python-mode in:
1022 http://ipython.scipy.org/tmp/python-mode.el
1023 http://ipython.scipy.org/tmp/python-mode.el
1023
1024
1024 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1025 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1025 sys.executable for the executable name, instead of assuming it's
1026 sys.executable for the executable name, instead of assuming it's
1026 called 'python.exe' (the post-installer would have produced broken
1027 called 'python.exe' (the post-installer would have produced broken
1027 setups on systems with a differently named python binary).
1028 setups on systems with a differently named python binary).
1028
1029
1029 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1030 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1030 references to os.linesep, to make the code more
1031 references to os.linesep, to make the code more
1031 platform-independent. This is also part of the win32 coloring
1032 platform-independent. This is also part of the win32 coloring
1032 fixes.
1033 fixes.
1033
1034
1034 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1035 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1035 lines, which actually cause coloring bugs because the length of
1036 lines, which actually cause coloring bugs because the length of
1036 the line is very difficult to correctly compute with embedded
1037 the line is very difficult to correctly compute with embedded
1037 escapes. This was the source of all the coloring problems under
1038 escapes. This was the source of all the coloring problems under
1038 Win32. I think that _finally_, Win32 users have a properly
1039 Win32. I think that _finally_, Win32 users have a properly
1039 working ipython in all respects. This would never have happened
1040 working ipython in all respects. This would never have happened
1040 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1041 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1041
1042
1042 2005-01-26 *** Released version 0.6.9
1043 2005-01-26 *** Released version 0.6.9
1043
1044
1044 2005-01-25 Fernando Perez <fperez@colorado.edu>
1045 2005-01-25 Fernando Perez <fperez@colorado.edu>
1045
1046
1046 * setup.py: finally, we have a true Windows installer, thanks to
1047 * setup.py: finally, we have a true Windows installer, thanks to
1047 the excellent work of Viktor Ransmayr
1048 the excellent work of Viktor Ransmayr
1048 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1049 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1049 Windows users. The setup routine is quite a bit cleaner thanks to
1050 Windows users. The setup routine is quite a bit cleaner thanks to
1050 this, and the post-install script uses the proper functions to
1051 this, and the post-install script uses the proper functions to
1051 allow a clean de-installation using the standard Windows Control
1052 allow a clean de-installation using the standard Windows Control
1052 Panel.
1053 Panel.
1053
1054
1054 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1055 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1055 environment variable under all OSes (including win32) if
1056 environment variable under all OSes (including win32) if
1056 available. This will give consistency to win32 users who have set
1057 available. This will give consistency to win32 users who have set
1057 this variable for any reason. If os.environ['HOME'] fails, the
1058 this variable for any reason. If os.environ['HOME'] fails, the
1058 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1059 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1059
1060
1060 2005-01-24 Fernando Perez <fperez@colorado.edu>
1061 2005-01-24 Fernando Perez <fperez@colorado.edu>
1061
1062
1062 * IPython/numutils.py (empty_like): add empty_like(), similar to
1063 * IPython/numutils.py (empty_like): add empty_like(), similar to
1063 zeros_like() but taking advantage of the new empty() Numeric routine.
1064 zeros_like() but taking advantage of the new empty() Numeric routine.
1064
1065
1065 2005-01-23 *** Released version 0.6.8
1066 2005-01-23 *** Released version 0.6.8
1066
1067
1067 2005-01-22 Fernando Perez <fperez@colorado.edu>
1068 2005-01-22 Fernando Perez <fperez@colorado.edu>
1068
1069
1069 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1070 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1070 automatic show() calls. After discussing things with JDH, it
1071 automatic show() calls. After discussing things with JDH, it
1071 turns out there are too many corner cases where this can go wrong.
1072 turns out there are too many corner cases where this can go wrong.
1072 It's best not to try to be 'too smart', and simply have ipython
1073 It's best not to try to be 'too smart', and simply have ipython
1073 reproduce as much as possible the default behavior of a normal
1074 reproduce as much as possible the default behavior of a normal
1074 python shell.
1075 python shell.
1075
1076
1076 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1077 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1077 line-splitting regexp and _prefilter() to avoid calling getattr()
1078 line-splitting regexp and _prefilter() to avoid calling getattr()
1078 on assignments. This closes
1079 on assignments. This closes
1079 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1080 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1080 readline uses getattr(), so a simple <TAB> keypress is still
1081 readline uses getattr(), so a simple <TAB> keypress is still
1081 enough to trigger getattr() calls on an object.
1082 enough to trigger getattr() calls on an object.
1082
1083
1083 2005-01-21 Fernando Perez <fperez@colorado.edu>
1084 2005-01-21 Fernando Perez <fperez@colorado.edu>
1084
1085
1085 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1086 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1086 docstring under pylab so it doesn't mask the original.
1087 docstring under pylab so it doesn't mask the original.
1087
1088
1088 2005-01-21 *** Released version 0.6.7
1089 2005-01-21 *** Released version 0.6.7
1089
1090
1090 2005-01-21 Fernando Perez <fperez@colorado.edu>
1091 2005-01-21 Fernando Perez <fperez@colorado.edu>
1091
1092
1092 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1093 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1093 signal handling for win32 users in multithreaded mode.
1094 signal handling for win32 users in multithreaded mode.
1094
1095
1095 2005-01-17 Fernando Perez <fperez@colorado.edu>
1096 2005-01-17 Fernando Perez <fperez@colorado.edu>
1096
1097
1097 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1098 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1098 instances with no __init__. After a crash report by Norbert Nemec
1099 instances with no __init__. After a crash report by Norbert Nemec
1099 <Norbert-AT-nemec-online.de>.
1100 <Norbert-AT-nemec-online.de>.
1100
1101
1101 2005-01-14 Fernando Perez <fperez@colorado.edu>
1102 2005-01-14 Fernando Perez <fperez@colorado.edu>
1102
1103
1103 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1104 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1104 names for verbose exceptions, when multiple dotted names and the
1105 names for verbose exceptions, when multiple dotted names and the
1105 'parent' object were present on the same line.
1106 'parent' object were present on the same line.
1106
1107
1107 2005-01-11 Fernando Perez <fperez@colorado.edu>
1108 2005-01-11 Fernando Perez <fperez@colorado.edu>
1108
1109
1109 * IPython/genutils.py (flag_calls): new utility to trap and flag
1110 * IPython/genutils.py (flag_calls): new utility to trap and flag
1110 calls in functions. I need it to clean up matplotlib support.
1111 calls in functions. I need it to clean up matplotlib support.
1111 Also removed some deprecated code in genutils.
1112 Also removed some deprecated code in genutils.
1112
1113
1113 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1114 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1114 that matplotlib scripts called with %run, which don't call show()
1115 that matplotlib scripts called with %run, which don't call show()
1115 themselves, still have their plotting windows open.
1116 themselves, still have their plotting windows open.
1116
1117
1117 2005-01-05 Fernando Perez <fperez@colorado.edu>
1118 2005-01-05 Fernando Perez <fperez@colorado.edu>
1118
1119
1119 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1120 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1120 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1121 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1121
1122
1122 2004-12-19 Fernando Perez <fperez@colorado.edu>
1123 2004-12-19 Fernando Perez <fperez@colorado.edu>
1123
1124
1124 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1125 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1125 parent_runcode, which was an eyesore. The same result can be
1126 parent_runcode, which was an eyesore. The same result can be
1126 obtained with Python's regular superclass mechanisms.
1127 obtained with Python's regular superclass mechanisms.
1127
1128
1128 2004-12-17 Fernando Perez <fperez@colorado.edu>
1129 2004-12-17 Fernando Perez <fperez@colorado.edu>
1129
1130
1130 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1131 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1131 reported by Prabhu.
1132 reported by Prabhu.
1132 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1133 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1133 sys.stderr) instead of explicitly calling sys.stderr. This helps
1134 sys.stderr) instead of explicitly calling sys.stderr. This helps
1134 maintain our I/O abstractions clean, for future GUI embeddings.
1135 maintain our I/O abstractions clean, for future GUI embeddings.
1135
1136
1136 * IPython/genutils.py (info): added new utility for sys.stderr
1137 * IPython/genutils.py (info): added new utility for sys.stderr
1137 unified info message handling (thin wrapper around warn()).
1138 unified info message handling (thin wrapper around warn()).
1138
1139
1139 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1140 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1140 composite (dotted) names on verbose exceptions.
1141 composite (dotted) names on verbose exceptions.
1141 (VerboseTB.nullrepr): harden against another kind of errors which
1142 (VerboseTB.nullrepr): harden against another kind of errors which
1142 Python's inspect module can trigger, and which were crashing
1143 Python's inspect module can trigger, and which were crashing
1143 IPython. Thanks to a report by Marco Lombardi
1144 IPython. Thanks to a report by Marco Lombardi
1144 <mlombard-AT-ma010192.hq.eso.org>.
1145 <mlombard-AT-ma010192.hq.eso.org>.
1145
1146
1146 2004-12-13 *** Released version 0.6.6
1147 2004-12-13 *** Released version 0.6.6
1147
1148
1148 2004-12-12 Fernando Perez <fperez@colorado.edu>
1149 2004-12-12 Fernando Perez <fperez@colorado.edu>
1149
1150
1150 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1151 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1151 generated by pygtk upon initialization if it was built without
1152 generated by pygtk upon initialization if it was built without
1152 threads (for matplotlib users). After a crash reported by
1153 threads (for matplotlib users). After a crash reported by
1153 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1154 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1154
1155
1155 * IPython/ipmaker.py (make_IPython): fix small bug in the
1156 * IPython/ipmaker.py (make_IPython): fix small bug in the
1156 import_some parameter for multiple imports.
1157 import_some parameter for multiple imports.
1157
1158
1158 * IPython/iplib.py (ipmagic): simplified the interface of
1159 * IPython/iplib.py (ipmagic): simplified the interface of
1159 ipmagic() to take a single string argument, just as it would be
1160 ipmagic() to take a single string argument, just as it would be
1160 typed at the IPython cmd line.
1161 typed at the IPython cmd line.
1161 (ipalias): Added new ipalias() with an interface identical to
1162 (ipalias): Added new ipalias() with an interface identical to
1162 ipmagic(). This completes exposing a pure python interface to the
1163 ipmagic(). This completes exposing a pure python interface to the
1163 alias and magic system, which can be used in loops or more complex
1164 alias and magic system, which can be used in loops or more complex
1164 code where IPython's automatic line mangling is not active.
1165 code where IPython's automatic line mangling is not active.
1165
1166
1166 * IPython/genutils.py (timing): changed interface of timing to
1167 * IPython/genutils.py (timing): changed interface of timing to
1167 simply run code once, which is the most common case. timings()
1168 simply run code once, which is the most common case. timings()
1168 remains unchanged, for the cases where you want multiple runs.
1169 remains unchanged, for the cases where you want multiple runs.
1169
1170
1170 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1171 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1171 bug where Python2.2 crashes with exec'ing code which does not end
1172 bug where Python2.2 crashes with exec'ing code which does not end
1172 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1173 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1173 before.
1174 before.
1174
1175
1175 2004-12-10 Fernando Perez <fperez@colorado.edu>
1176 2004-12-10 Fernando Perez <fperez@colorado.edu>
1176
1177
1177 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1178 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1178 -t to -T, to accomodate the new -t flag in %run (the %run and
1179 -t to -T, to accomodate the new -t flag in %run (the %run and
1179 %prun options are kind of intermixed, and it's not easy to change
1180 %prun options are kind of intermixed, and it's not easy to change
1180 this with the limitations of python's getopt).
1181 this with the limitations of python's getopt).
1181
1182
1182 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1183 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1183 the execution of scripts. It's not as fine-tuned as timeit.py,
1184 the execution of scripts. It's not as fine-tuned as timeit.py,
1184 but it works from inside ipython (and under 2.2, which lacks
1185 but it works from inside ipython (and under 2.2, which lacks
1185 timeit.py). Optionally a number of runs > 1 can be given for
1186 timeit.py). Optionally a number of runs > 1 can be given for
1186 timing very short-running code.
1187 timing very short-running code.
1187
1188
1188 * IPython/genutils.py (uniq_stable): new routine which returns a
1189 * IPython/genutils.py (uniq_stable): new routine which returns a
1189 list of unique elements in any iterable, but in stable order of
1190 list of unique elements in any iterable, but in stable order of
1190 appearance. I needed this for the ultraTB fixes, and it's a handy
1191 appearance. I needed this for the ultraTB fixes, and it's a handy
1191 utility.
1192 utility.
1192
1193
1193 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1194 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1194 dotted names in Verbose exceptions. This had been broken since
1195 dotted names in Verbose exceptions. This had been broken since
1195 the very start, now x.y will properly be printed in a Verbose
1196 the very start, now x.y will properly be printed in a Verbose
1196 traceback, instead of x being shown and y appearing always as an
1197 traceback, instead of x being shown and y appearing always as an
1197 'undefined global'. Getting this to work was a bit tricky,
1198 'undefined global'. Getting this to work was a bit tricky,
1198 because by default python tokenizers are stateless. Saved by
1199 because by default python tokenizers are stateless. Saved by
1199 python's ability to easily add a bit of state to an arbitrary
1200 python's ability to easily add a bit of state to an arbitrary
1200 function (without needing to build a full-blown callable object).
1201 function (without needing to build a full-blown callable object).
1201
1202
1202 Also big cleanup of this code, which had horrendous runtime
1203 Also big cleanup of this code, which had horrendous runtime
1203 lookups of zillions of attributes for colorization. Moved all
1204 lookups of zillions of attributes for colorization. Moved all
1204 this code into a few templates, which make it cleaner and quicker.
1205 this code into a few templates, which make it cleaner and quicker.
1205
1206
1206 Printout quality was also improved for Verbose exceptions: one
1207 Printout quality was also improved for Verbose exceptions: one
1207 variable per line, and memory addresses are printed (this can be
1208 variable per line, and memory addresses are printed (this can be
1208 quite handy in nasty debugging situations, which is what Verbose
1209 quite handy in nasty debugging situations, which is what Verbose
1209 is for).
1210 is for).
1210
1211
1211 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1212 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1212 the command line as scripts to be loaded by embedded instances.
1213 the command line as scripts to be loaded by embedded instances.
1213 Doing so has the potential for an infinite recursion if there are
1214 Doing so has the potential for an infinite recursion if there are
1214 exceptions thrown in the process. This fixes a strange crash
1215 exceptions thrown in the process. This fixes a strange crash
1215 reported by Philippe MULLER <muller-AT-irit.fr>.
1216 reported by Philippe MULLER <muller-AT-irit.fr>.
1216
1217
1217 2004-12-09 Fernando Perez <fperez@colorado.edu>
1218 2004-12-09 Fernando Perez <fperez@colorado.edu>
1218
1219
1219 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1220 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1220 to reflect new names in matplotlib, which now expose the
1221 to reflect new names in matplotlib, which now expose the
1221 matlab-compatible interface via a pylab module instead of the
1222 matlab-compatible interface via a pylab module instead of the
1222 'matlab' name. The new code is backwards compatible, so users of
1223 'matlab' name. The new code is backwards compatible, so users of
1223 all matplotlib versions are OK. Patch by J. Hunter.
1224 all matplotlib versions are OK. Patch by J. Hunter.
1224
1225
1225 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1226 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1226 of __init__ docstrings for instances (class docstrings are already
1227 of __init__ docstrings for instances (class docstrings are already
1227 automatically printed). Instances with customized docstrings
1228 automatically printed). Instances with customized docstrings
1228 (indep. of the class) are also recognized and all 3 separate
1229 (indep. of the class) are also recognized and all 3 separate
1229 docstrings are printed (instance, class, constructor). After some
1230 docstrings are printed (instance, class, constructor). After some
1230 comments/suggestions by J. Hunter.
1231 comments/suggestions by J. Hunter.
1231
1232
1232 2004-12-05 Fernando Perez <fperez@colorado.edu>
1233 2004-12-05 Fernando Perez <fperez@colorado.edu>
1233
1234
1234 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1235 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1235 warnings when tab-completion fails and triggers an exception.
1236 warnings when tab-completion fails and triggers an exception.
1236
1237
1237 2004-12-03 Fernando Perez <fperez@colorado.edu>
1238 2004-12-03 Fernando Perez <fperez@colorado.edu>
1238
1239
1239 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1240 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1240 be triggered when using 'run -p'. An incorrect option flag was
1241 be triggered when using 'run -p'. An incorrect option flag was
1241 being set ('d' instead of 'D').
1242 being set ('d' instead of 'D').
1242 (manpage): fix missing escaped \- sign.
1243 (manpage): fix missing escaped \- sign.
1243
1244
1244 2004-11-30 *** Released version 0.6.5
1245 2004-11-30 *** Released version 0.6.5
1245
1246
1246 2004-11-30 Fernando Perez <fperez@colorado.edu>
1247 2004-11-30 Fernando Perez <fperez@colorado.edu>
1247
1248
1248 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1249 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1249 setting with -d option.
1250 setting with -d option.
1250
1251
1251 * setup.py (docfiles): Fix problem where the doc glob I was using
1252 * setup.py (docfiles): Fix problem where the doc glob I was using
1252 was COMPLETELY BROKEN. It was giving the right files by pure
1253 was COMPLETELY BROKEN. It was giving the right files by pure
1253 accident, but failed once I tried to include ipython.el. Note:
1254 accident, but failed once I tried to include ipython.el. Note:
1254 glob() does NOT allow you to do exclusion on multiple endings!
1255 glob() does NOT allow you to do exclusion on multiple endings!
1255
1256
1256 2004-11-29 Fernando Perez <fperez@colorado.edu>
1257 2004-11-29 Fernando Perez <fperez@colorado.edu>
1257
1258
1258 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1259 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1259 the manpage as the source. Better formatting & consistency.
1260 the manpage as the source. Better formatting & consistency.
1260
1261
1261 * IPython/Magic.py (magic_run): Added new -d option, to run
1262 * IPython/Magic.py (magic_run): Added new -d option, to run
1262 scripts under the control of the python pdb debugger. Note that
1263 scripts under the control of the python pdb debugger. Note that
1263 this required changing the %prun option -d to -D, to avoid a clash
1264 this required changing the %prun option -d to -D, to avoid a clash
1264 (since %run must pass options to %prun, and getopt is too dumb to
1265 (since %run must pass options to %prun, and getopt is too dumb to
1265 handle options with string values with embedded spaces). Thanks
1266 handle options with string values with embedded spaces). Thanks
1266 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1267 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1267 (magic_who_ls): added type matching to %who and %whos, so that one
1268 (magic_who_ls): added type matching to %who and %whos, so that one
1268 can filter their output to only include variables of certain
1269 can filter their output to only include variables of certain
1269 types. Another suggestion by Matthew.
1270 types. Another suggestion by Matthew.
1270 (magic_whos): Added memory summaries in kb and Mb for arrays.
1271 (magic_whos): Added memory summaries in kb and Mb for arrays.
1271 (magic_who): Improve formatting (break lines every 9 vars).
1272 (magic_who): Improve formatting (break lines every 9 vars).
1272
1273
1273 2004-11-28 Fernando Perez <fperez@colorado.edu>
1274 2004-11-28 Fernando Perez <fperez@colorado.edu>
1274
1275
1275 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1276 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1276 cache when empty lines were present.
1277 cache when empty lines were present.
1277
1278
1278 2004-11-24 Fernando Perez <fperez@colorado.edu>
1279 2004-11-24 Fernando Perez <fperez@colorado.edu>
1279
1280
1280 * IPython/usage.py (__doc__): document the re-activated threading
1281 * IPython/usage.py (__doc__): document the re-activated threading
1281 options for WX and GTK.
1282 options for WX and GTK.
1282
1283
1283 2004-11-23 Fernando Perez <fperez@colorado.edu>
1284 2004-11-23 Fernando Perez <fperez@colorado.edu>
1284
1285
1285 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1286 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1286 the -wthread and -gthread options, along with a new -tk one to try
1287 the -wthread and -gthread options, along with a new -tk one to try
1287 and coordinate Tk threading with wx/gtk. The tk support is very
1288 and coordinate Tk threading with wx/gtk. The tk support is very
1288 platform dependent, since it seems to require Tcl and Tk to be
1289 platform dependent, since it seems to require Tcl and Tk to be
1289 built with threads (Fedora1/2 appears NOT to have it, but in
1290 built with threads (Fedora1/2 appears NOT to have it, but in
1290 Prabhu's Debian boxes it works OK). But even with some Tk
1291 Prabhu's Debian boxes it works OK). But even with some Tk
1291 limitations, this is a great improvement.
1292 limitations, this is a great improvement.
1292
1293
1293 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1294 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1294 info in user prompts. Patch by Prabhu.
1295 info in user prompts. Patch by Prabhu.
1295
1296
1296 2004-11-18 Fernando Perez <fperez@colorado.edu>
1297 2004-11-18 Fernando Perez <fperez@colorado.edu>
1297
1298
1298 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1299 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1299 EOFErrors and bail, to avoid infinite loops if a non-terminating
1300 EOFErrors and bail, to avoid infinite loops if a non-terminating
1300 file is fed into ipython. Patch submitted in issue 19 by user,
1301 file is fed into ipython. Patch submitted in issue 19 by user,
1301 many thanks.
1302 many thanks.
1302
1303
1303 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1304 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1304 autoquote/parens in continuation prompts, which can cause lots of
1305 autoquote/parens in continuation prompts, which can cause lots of
1305 problems. Closes roundup issue 20.
1306 problems. Closes roundup issue 20.
1306
1307
1307 2004-11-17 Fernando Perez <fperez@colorado.edu>
1308 2004-11-17 Fernando Perez <fperez@colorado.edu>
1308
1309
1309 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1310 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1310 reported as debian bug #280505. I'm not sure my local changelog
1311 reported as debian bug #280505. I'm not sure my local changelog
1311 entry has the proper debian format (Jack?).
1312 entry has the proper debian format (Jack?).
1312
1313
1313 2004-11-08 *** Released version 0.6.4
1314 2004-11-08 *** Released version 0.6.4
1314
1315
1315 2004-11-08 Fernando Perez <fperez@colorado.edu>
1316 2004-11-08 Fernando Perez <fperez@colorado.edu>
1316
1317
1317 * IPython/iplib.py (init_readline): Fix exit message for Windows
1318 * IPython/iplib.py (init_readline): Fix exit message for Windows
1318 when readline is active. Thanks to a report by Eric Jones
1319 when readline is active. Thanks to a report by Eric Jones
1319 <eric-AT-enthought.com>.
1320 <eric-AT-enthought.com>.
1320
1321
1321 2004-11-07 Fernando Perez <fperez@colorado.edu>
1322 2004-11-07 Fernando Perez <fperez@colorado.edu>
1322
1323
1323 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1324 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1324 sometimes seen by win2k/cygwin users.
1325 sometimes seen by win2k/cygwin users.
1325
1326
1326 2004-11-06 Fernando Perez <fperez@colorado.edu>
1327 2004-11-06 Fernando Perez <fperez@colorado.edu>
1327
1328
1328 * IPython/iplib.py (interact): Change the handling of %Exit from
1329 * IPython/iplib.py (interact): Change the handling of %Exit from
1329 trying to propagate a SystemExit to an internal ipython flag.
1330 trying to propagate a SystemExit to an internal ipython flag.
1330 This is less elegant than using Python's exception mechanism, but
1331 This is less elegant than using Python's exception mechanism, but
1331 I can't get that to work reliably with threads, so under -pylab
1332 I can't get that to work reliably with threads, so under -pylab
1332 %Exit was hanging IPython. Cross-thread exception handling is
1333 %Exit was hanging IPython. Cross-thread exception handling is
1333 really a bitch. Thaks to a bug report by Stephen Walton
1334 really a bitch. Thaks to a bug report by Stephen Walton
1334 <stephen.walton-AT-csun.edu>.
1335 <stephen.walton-AT-csun.edu>.
1335
1336
1336 2004-11-04 Fernando Perez <fperez@colorado.edu>
1337 2004-11-04 Fernando Perez <fperez@colorado.edu>
1337
1338
1338 * IPython/iplib.py (raw_input_original): store a pointer to the
1339 * IPython/iplib.py (raw_input_original): store a pointer to the
1339 true raw_input to harden against code which can modify it
1340 true raw_input to harden against code which can modify it
1340 (wx.py.PyShell does this and would otherwise crash ipython).
1341 (wx.py.PyShell does this and would otherwise crash ipython).
1341 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1342 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1342
1343
1343 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1344 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1344 Ctrl-C problem, which does not mess up the input line.
1345 Ctrl-C problem, which does not mess up the input line.
1345
1346
1346 2004-11-03 Fernando Perez <fperez@colorado.edu>
1347 2004-11-03 Fernando Perez <fperez@colorado.edu>
1347
1348
1348 * IPython/Release.py: Changed licensing to BSD, in all files.
1349 * IPython/Release.py: Changed licensing to BSD, in all files.
1349 (name): lowercase name for tarball/RPM release.
1350 (name): lowercase name for tarball/RPM release.
1350
1351
1351 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1352 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1352 use throughout ipython.
1353 use throughout ipython.
1353
1354
1354 * IPython/Magic.py (Magic._ofind): Switch to using the new
1355 * IPython/Magic.py (Magic._ofind): Switch to using the new
1355 OInspect.getdoc() function.
1356 OInspect.getdoc() function.
1356
1357
1357 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1358 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1358 of the line currently being canceled via Ctrl-C. It's extremely
1359 of the line currently being canceled via Ctrl-C. It's extremely
1359 ugly, but I don't know how to do it better (the problem is one of
1360 ugly, but I don't know how to do it better (the problem is one of
1360 handling cross-thread exceptions).
1361 handling cross-thread exceptions).
1361
1362
1362 2004-10-28 Fernando Perez <fperez@colorado.edu>
1363 2004-10-28 Fernando Perez <fperez@colorado.edu>
1363
1364
1364 * IPython/Shell.py (signal_handler): add signal handlers to trap
1365 * IPython/Shell.py (signal_handler): add signal handlers to trap
1365 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1366 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1366 report by Francesc Alted.
1367 report by Francesc Alted.
1367
1368
1368 2004-10-21 Fernando Perez <fperez@colorado.edu>
1369 2004-10-21 Fernando Perez <fperez@colorado.edu>
1369
1370
1370 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1371 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1371 to % for pysh syntax extensions.
1372 to % for pysh syntax extensions.
1372
1373
1373 2004-10-09 Fernando Perez <fperez@colorado.edu>
1374 2004-10-09 Fernando Perez <fperez@colorado.edu>
1374
1375
1375 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1376 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1376 arrays to print a more useful summary, without calling str(arr).
1377 arrays to print a more useful summary, without calling str(arr).
1377 This avoids the problem of extremely lengthy computations which
1378 This avoids the problem of extremely lengthy computations which
1378 occur if arr is large, and appear to the user as a system lockup
1379 occur if arr is large, and appear to the user as a system lockup
1379 with 100% cpu activity. After a suggestion by Kristian Sandberg
1380 with 100% cpu activity. After a suggestion by Kristian Sandberg
1380 <Kristian.Sandberg@colorado.edu>.
1381 <Kristian.Sandberg@colorado.edu>.
1381 (Magic.__init__): fix bug in global magic escapes not being
1382 (Magic.__init__): fix bug in global magic escapes not being
1382 correctly set.
1383 correctly set.
1383
1384
1384 2004-10-08 Fernando Perez <fperez@colorado.edu>
1385 2004-10-08 Fernando Perez <fperez@colorado.edu>
1385
1386
1386 * IPython/Magic.py (__license__): change to absolute imports of
1387 * IPython/Magic.py (__license__): change to absolute imports of
1387 ipython's own internal packages, to start adapting to the absolute
1388 ipython's own internal packages, to start adapting to the absolute
1388 import requirement of PEP-328.
1389 import requirement of PEP-328.
1389
1390
1390 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1391 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1391 files, and standardize author/license marks through the Release
1392 files, and standardize author/license marks through the Release
1392 module instead of having per/file stuff (except for files with
1393 module instead of having per/file stuff (except for files with
1393 particular licenses, like the MIT/PSF-licensed codes).
1394 particular licenses, like the MIT/PSF-licensed codes).
1394
1395
1395 * IPython/Debugger.py: remove dead code for python 2.1
1396 * IPython/Debugger.py: remove dead code for python 2.1
1396
1397
1397 2004-10-04 Fernando Perez <fperez@colorado.edu>
1398 2004-10-04 Fernando Perez <fperez@colorado.edu>
1398
1399
1399 * IPython/iplib.py (ipmagic): New function for accessing magics
1400 * IPython/iplib.py (ipmagic): New function for accessing magics
1400 via a normal python function call.
1401 via a normal python function call.
1401
1402
1402 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1403 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1403 from '@' to '%', to accomodate the new @decorator syntax of python
1404 from '@' to '%', to accomodate the new @decorator syntax of python
1404 2.4.
1405 2.4.
1405
1406
1406 2004-09-29 Fernando Perez <fperez@colorado.edu>
1407 2004-09-29 Fernando Perez <fperez@colorado.edu>
1407
1408
1408 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1409 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1409 matplotlib.use to prevent running scripts which try to switch
1410 matplotlib.use to prevent running scripts which try to switch
1410 interactive backends from within ipython. This will just crash
1411 interactive backends from within ipython. This will just crash
1411 the python interpreter, so we can't allow it (but a detailed error
1412 the python interpreter, so we can't allow it (but a detailed error
1412 is given to the user).
1413 is given to the user).
1413
1414
1414 2004-09-28 Fernando Perez <fperez@colorado.edu>
1415 2004-09-28 Fernando Perez <fperez@colorado.edu>
1415
1416
1416 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1417 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1417 matplotlib-related fixes so that using @run with non-matplotlib
1418 matplotlib-related fixes so that using @run with non-matplotlib
1418 scripts doesn't pop up spurious plot windows. This requires
1419 scripts doesn't pop up spurious plot windows. This requires
1419 matplotlib >= 0.63, where I had to make some changes as well.
1420 matplotlib >= 0.63, where I had to make some changes as well.
1420
1421
1421 * IPython/ipmaker.py (make_IPython): update version requirement to
1422 * IPython/ipmaker.py (make_IPython): update version requirement to
1422 python 2.2.
1423 python 2.2.
1423
1424
1424 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1425 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1425 banner arg for embedded customization.
1426 banner arg for embedded customization.
1426
1427
1427 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1428 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1428 explicit uses of __IP as the IPython's instance name. Now things
1429 explicit uses of __IP as the IPython's instance name. Now things
1429 are properly handled via the shell.name value. The actual code
1430 are properly handled via the shell.name value. The actual code
1430 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1431 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1431 is much better than before. I'll clean things completely when the
1432 is much better than before. I'll clean things completely when the
1432 magic stuff gets a real overhaul.
1433 magic stuff gets a real overhaul.
1433
1434
1434 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1435 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1435 minor changes to debian dir.
1436 minor changes to debian dir.
1436
1437
1437 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1438 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1438 pointer to the shell itself in the interactive namespace even when
1439 pointer to the shell itself in the interactive namespace even when
1439 a user-supplied dict is provided. This is needed for embedding
1440 a user-supplied dict is provided. This is needed for embedding
1440 purposes (found by tests with Michel Sanner).
1441 purposes (found by tests with Michel Sanner).
1441
1442
1442 2004-09-27 Fernando Perez <fperez@colorado.edu>
1443 2004-09-27 Fernando Perez <fperez@colorado.edu>
1443
1444
1444 * IPython/UserConfig/ipythonrc: remove []{} from
1445 * IPython/UserConfig/ipythonrc: remove []{} from
1445 readline_remove_delims, so that things like [modname.<TAB> do
1446 readline_remove_delims, so that things like [modname.<TAB> do
1446 proper completion. This disables [].TAB, but that's a less common
1447 proper completion. This disables [].TAB, but that's a less common
1447 case than module names in list comprehensions, for example.
1448 case than module names in list comprehensions, for example.
1448 Thanks to a report by Andrea Riciputi.
1449 Thanks to a report by Andrea Riciputi.
1449
1450
1450 2004-09-09 Fernando Perez <fperez@colorado.edu>
1451 2004-09-09 Fernando Perez <fperez@colorado.edu>
1451
1452
1452 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1453 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1453 blocking problems in win32 and osx. Fix by John.
1454 blocking problems in win32 and osx. Fix by John.
1454
1455
1455 2004-09-08 Fernando Perez <fperez@colorado.edu>
1456 2004-09-08 Fernando Perez <fperez@colorado.edu>
1456
1457
1457 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1458 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1458 for Win32 and OSX. Fix by John Hunter.
1459 for Win32 and OSX. Fix by John Hunter.
1459
1460
1460 2004-08-30 *** Released version 0.6.3
1461 2004-08-30 *** Released version 0.6.3
1461
1462
1462 2004-08-30 Fernando Perez <fperez@colorado.edu>
1463 2004-08-30 Fernando Perez <fperez@colorado.edu>
1463
1464
1464 * setup.py (isfile): Add manpages to list of dependent files to be
1465 * setup.py (isfile): Add manpages to list of dependent files to be
1465 updated.
1466 updated.
1466
1467
1467 2004-08-27 Fernando Perez <fperez@colorado.edu>
1468 2004-08-27 Fernando Perez <fperez@colorado.edu>
1468
1469
1469 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1470 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1470 for now. They don't really work with standalone WX/GTK code
1471 for now. They don't really work with standalone WX/GTK code
1471 (though matplotlib IS working fine with both of those backends).
1472 (though matplotlib IS working fine with both of those backends).
1472 This will neeed much more testing. I disabled most things with
1473 This will neeed much more testing. I disabled most things with
1473 comments, so turning it back on later should be pretty easy.
1474 comments, so turning it back on later should be pretty easy.
1474
1475
1475 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1476 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1476 autocalling of expressions like r'foo', by modifying the line
1477 autocalling of expressions like r'foo', by modifying the line
1477 split regexp. Closes
1478 split regexp. Closes
1478 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1479 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1479 Riley <ipythonbugs-AT-sabi.net>.
1480 Riley <ipythonbugs-AT-sabi.net>.
1480 (InteractiveShell.mainloop): honor --nobanner with banner
1481 (InteractiveShell.mainloop): honor --nobanner with banner
1481 extensions.
1482 extensions.
1482
1483
1483 * IPython/Shell.py: Significant refactoring of all classes, so
1484 * IPython/Shell.py: Significant refactoring of all classes, so
1484 that we can really support ALL matplotlib backends and threading
1485 that we can really support ALL matplotlib backends and threading
1485 models (John spotted a bug with Tk which required this). Now we
1486 models (John spotted a bug with Tk which required this). Now we
1486 should support single-threaded, WX-threads and GTK-threads, both
1487 should support single-threaded, WX-threads and GTK-threads, both
1487 for generic code and for matplotlib.
1488 for generic code and for matplotlib.
1488
1489
1489 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1490 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1490 -pylab, to simplify things for users. Will also remove the pylab
1491 -pylab, to simplify things for users. Will also remove the pylab
1491 profile, since now all of matplotlib configuration is directly
1492 profile, since now all of matplotlib configuration is directly
1492 handled here. This also reduces startup time.
1493 handled here. This also reduces startup time.
1493
1494
1494 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1495 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1495 shell wasn't being correctly called. Also in IPShellWX.
1496 shell wasn't being correctly called. Also in IPShellWX.
1496
1497
1497 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1498 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1498 fine-tune banner.
1499 fine-tune banner.
1499
1500
1500 * IPython/numutils.py (spike): Deprecate these spike functions,
1501 * IPython/numutils.py (spike): Deprecate these spike functions,
1501 delete (long deprecated) gnuplot_exec handler.
1502 delete (long deprecated) gnuplot_exec handler.
1502
1503
1503 2004-08-26 Fernando Perez <fperez@colorado.edu>
1504 2004-08-26 Fernando Perez <fperez@colorado.edu>
1504
1505
1505 * ipython.1: Update for threading options, plus some others which
1506 * ipython.1: Update for threading options, plus some others which
1506 were missing.
1507 were missing.
1507
1508
1508 * IPython/ipmaker.py (__call__): Added -wthread option for
1509 * IPython/ipmaker.py (__call__): Added -wthread option for
1509 wxpython thread handling. Make sure threading options are only
1510 wxpython thread handling. Make sure threading options are only
1510 valid at the command line.
1511 valid at the command line.
1511
1512
1512 * scripts/ipython: moved shell selection into a factory function
1513 * scripts/ipython: moved shell selection into a factory function
1513 in Shell.py, to keep the starter script to a minimum.
1514 in Shell.py, to keep the starter script to a minimum.
1514
1515
1515 2004-08-25 Fernando Perez <fperez@colorado.edu>
1516 2004-08-25 Fernando Perez <fperez@colorado.edu>
1516
1517
1517 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1518 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1518 John. Along with some recent changes he made to matplotlib, the
1519 John. Along with some recent changes he made to matplotlib, the
1519 next versions of both systems should work very well together.
1520 next versions of both systems should work very well together.
1520
1521
1521 2004-08-24 Fernando Perez <fperez@colorado.edu>
1522 2004-08-24 Fernando Perez <fperez@colorado.edu>
1522
1523
1523 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1524 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1524 tried to switch the profiling to using hotshot, but I'm getting
1525 tried to switch the profiling to using hotshot, but I'm getting
1525 strange errors from prof.runctx() there. I may be misreading the
1526 strange errors from prof.runctx() there. I may be misreading the
1526 docs, but it looks weird. For now the profiling code will
1527 docs, but it looks weird. For now the profiling code will
1527 continue to use the standard profiler.
1528 continue to use the standard profiler.
1528
1529
1529 2004-08-23 Fernando Perez <fperez@colorado.edu>
1530 2004-08-23 Fernando Perez <fperez@colorado.edu>
1530
1531
1531 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1532 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1532 threaded shell, by John Hunter. It's not quite ready yet, but
1533 threaded shell, by John Hunter. It's not quite ready yet, but
1533 close.
1534 close.
1534
1535
1535 2004-08-22 Fernando Perez <fperez@colorado.edu>
1536 2004-08-22 Fernando Perez <fperez@colorado.edu>
1536
1537
1537 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1538 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1538 in Magic and ultraTB.
1539 in Magic and ultraTB.
1539
1540
1540 * ipython.1: document threading options in manpage.
1541 * ipython.1: document threading options in manpage.
1541
1542
1542 * scripts/ipython: Changed name of -thread option to -gthread,
1543 * scripts/ipython: Changed name of -thread option to -gthread,
1543 since this is GTK specific. I want to leave the door open for a
1544 since this is GTK specific. I want to leave the door open for a
1544 -wthread option for WX, which will most likely be necessary. This
1545 -wthread option for WX, which will most likely be necessary. This
1545 change affects usage and ipmaker as well.
1546 change affects usage and ipmaker as well.
1546
1547
1547 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1548 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1548 handle the matplotlib shell issues. Code by John Hunter
1549 handle the matplotlib shell issues. Code by John Hunter
1549 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1550 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1550 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1551 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1551 broken (and disabled for end users) for now, but it puts the
1552 broken (and disabled for end users) for now, but it puts the
1552 infrastructure in place.
1553 infrastructure in place.
1553
1554
1554 2004-08-21 Fernando Perez <fperez@colorado.edu>
1555 2004-08-21 Fernando Perez <fperez@colorado.edu>
1555
1556
1556 * ipythonrc-pylab: Add matplotlib support.
1557 * ipythonrc-pylab: Add matplotlib support.
1557
1558
1558 * matplotlib_config.py: new files for matplotlib support, part of
1559 * matplotlib_config.py: new files for matplotlib support, part of
1559 the pylab profile.
1560 the pylab profile.
1560
1561
1561 * IPython/usage.py (__doc__): documented the threading options.
1562 * IPython/usage.py (__doc__): documented the threading options.
1562
1563
1563 2004-08-20 Fernando Perez <fperez@colorado.edu>
1564 2004-08-20 Fernando Perez <fperez@colorado.edu>
1564
1565
1565 * ipython: Modified the main calling routine to handle the -thread
1566 * ipython: Modified the main calling routine to handle the -thread
1566 and -mpthread options. This needs to be done as a top-level hack,
1567 and -mpthread options. This needs to be done as a top-level hack,
1567 because it determines which class to instantiate for IPython
1568 because it determines which class to instantiate for IPython
1568 itself.
1569 itself.
1569
1570
1570 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1571 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1571 classes to support multithreaded GTK operation without blocking,
1572 classes to support multithreaded GTK operation without blocking,
1572 and matplotlib with all backends. This is a lot of still very
1573 and matplotlib with all backends. This is a lot of still very
1573 experimental code, and threads are tricky. So it may still have a
1574 experimental code, and threads are tricky. So it may still have a
1574 few rough edges... This code owes a lot to
1575 few rough edges... This code owes a lot to
1575 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1576 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1576 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1577 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1577 to John Hunter for all the matplotlib work.
1578 to John Hunter for all the matplotlib work.
1578
1579
1579 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1580 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1580 options for gtk thread and matplotlib support.
1581 options for gtk thread and matplotlib support.
1581
1582
1582 2004-08-16 Fernando Perez <fperez@colorado.edu>
1583 2004-08-16 Fernando Perez <fperez@colorado.edu>
1583
1584
1584 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1585 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1585 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1586 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1586 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1587 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1587
1588
1588 2004-08-11 Fernando Perez <fperez@colorado.edu>
1589 2004-08-11 Fernando Perez <fperez@colorado.edu>
1589
1590
1590 * setup.py (isfile): Fix build so documentation gets updated for
1591 * setup.py (isfile): Fix build so documentation gets updated for
1591 rpms (it was only done for .tgz builds).
1592 rpms (it was only done for .tgz builds).
1592
1593
1593 2004-08-10 Fernando Perez <fperez@colorado.edu>
1594 2004-08-10 Fernando Perez <fperez@colorado.edu>
1594
1595
1595 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1596 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1596
1597
1597 * iplib.py : Silence syntax error exceptions in tab-completion.
1598 * iplib.py : Silence syntax error exceptions in tab-completion.
1598
1599
1599 2004-08-05 Fernando Perez <fperez@colorado.edu>
1600 2004-08-05 Fernando Perez <fperez@colorado.edu>
1600
1601
1601 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1602 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1602 'color off' mark for continuation prompts. This was causing long
1603 'color off' mark for continuation prompts. This was causing long
1603 continuation lines to mis-wrap.
1604 continuation lines to mis-wrap.
1604
1605
1605 2004-08-01 Fernando Perez <fperez@colorado.edu>
1606 2004-08-01 Fernando Perez <fperez@colorado.edu>
1606
1607
1607 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1608 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1608 for building ipython to be a parameter. All this is necessary
1609 for building ipython to be a parameter. All this is necessary
1609 right now to have a multithreaded version, but this insane
1610 right now to have a multithreaded version, but this insane
1610 non-design will be cleaned up soon. For now, it's a hack that
1611 non-design will be cleaned up soon. For now, it's a hack that
1611 works.
1612 works.
1612
1613
1613 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1614 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1614 args in various places. No bugs so far, but it's a dangerous
1615 args in various places. No bugs so far, but it's a dangerous
1615 practice.
1616 practice.
1616
1617
1617 2004-07-31 Fernando Perez <fperez@colorado.edu>
1618 2004-07-31 Fernando Perez <fperez@colorado.edu>
1618
1619
1619 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1620 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1620 fix completion of files with dots in their names under most
1621 fix completion of files with dots in their names under most
1621 profiles (pysh was OK because the completion order is different).
1622 profiles (pysh was OK because the completion order is different).
1622
1623
1623 2004-07-27 Fernando Perez <fperez@colorado.edu>
1624 2004-07-27 Fernando Perez <fperez@colorado.edu>
1624
1625
1625 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1626 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1626 keywords manually, b/c the one in keyword.py was removed in python
1627 keywords manually, b/c the one in keyword.py was removed in python
1627 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1628 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1628 This is NOT a bug under python 2.3 and earlier.
1629 This is NOT a bug under python 2.3 and earlier.
1629
1630
1630 2004-07-26 Fernando Perez <fperez@colorado.edu>
1631 2004-07-26 Fernando Perez <fperez@colorado.edu>
1631
1632
1632 * IPython/ultraTB.py (VerboseTB.text): Add another
1633 * IPython/ultraTB.py (VerboseTB.text): Add another
1633 linecache.checkcache() call to try to prevent inspect.py from
1634 linecache.checkcache() call to try to prevent inspect.py from
1634 crashing under python 2.3. I think this fixes
1635 crashing under python 2.3. I think this fixes
1635 http://www.scipy.net/roundup/ipython/issue17.
1636 http://www.scipy.net/roundup/ipython/issue17.
1636
1637
1637 2004-07-26 *** Released version 0.6.2
1638 2004-07-26 *** Released version 0.6.2
1638
1639
1639 2004-07-26 Fernando Perez <fperez@colorado.edu>
1640 2004-07-26 Fernando Perez <fperez@colorado.edu>
1640
1641
1641 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1642 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1642 fail for any number.
1643 fail for any number.
1643 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1644 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1644 empty bookmarks.
1645 empty bookmarks.
1645
1646
1646 2004-07-26 *** Released version 0.6.1
1647 2004-07-26 *** Released version 0.6.1
1647
1648
1648 2004-07-26 Fernando Perez <fperez@colorado.edu>
1649 2004-07-26 Fernando Perez <fperez@colorado.edu>
1649
1650
1650 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1651 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1651
1652
1652 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1653 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1653 escaping '()[]{}' in filenames.
1654 escaping '()[]{}' in filenames.
1654
1655
1655 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1656 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1656 Python 2.2 users who lack a proper shlex.split.
1657 Python 2.2 users who lack a proper shlex.split.
1657
1658
1658 2004-07-19 Fernando Perez <fperez@colorado.edu>
1659 2004-07-19 Fernando Perez <fperez@colorado.edu>
1659
1660
1660 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1661 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1661 for reading readline's init file. I follow the normal chain:
1662 for reading readline's init file. I follow the normal chain:
1662 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1663 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1663 report by Mike Heeter. This closes
1664 report by Mike Heeter. This closes
1664 http://www.scipy.net/roundup/ipython/issue16.
1665 http://www.scipy.net/roundup/ipython/issue16.
1665
1666
1666 2004-07-18 Fernando Perez <fperez@colorado.edu>
1667 2004-07-18 Fernando Perez <fperez@colorado.edu>
1667
1668
1668 * IPython/iplib.py (__init__): Add better handling of '\' under
1669 * IPython/iplib.py (__init__): Add better handling of '\' under
1669 Win32 for filenames. After a patch by Ville.
1670 Win32 for filenames. After a patch by Ville.
1670
1671
1671 2004-07-17 Fernando Perez <fperez@colorado.edu>
1672 2004-07-17 Fernando Perez <fperez@colorado.edu>
1672
1673
1673 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1674 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1674 autocalling would be triggered for 'foo is bar' if foo is
1675 autocalling would be triggered for 'foo is bar' if foo is
1675 callable. I also cleaned up the autocall detection code to use a
1676 callable. I also cleaned up the autocall detection code to use a
1676 regexp, which is faster. Bug reported by Alexander Schmolck.
1677 regexp, which is faster. Bug reported by Alexander Schmolck.
1677
1678
1678 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1679 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1679 '?' in them would confuse the help system. Reported by Alex
1680 '?' in them would confuse the help system. Reported by Alex
1680 Schmolck.
1681 Schmolck.
1681
1682
1682 2004-07-16 Fernando Perez <fperez@colorado.edu>
1683 2004-07-16 Fernando Perez <fperez@colorado.edu>
1683
1684
1684 * IPython/GnuplotInteractive.py (__all__): added plot2.
1685 * IPython/GnuplotInteractive.py (__all__): added plot2.
1685
1686
1686 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1687 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1687 plotting dictionaries, lists or tuples of 1d arrays.
1688 plotting dictionaries, lists or tuples of 1d arrays.
1688
1689
1689 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1690 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1690 optimizations.
1691 optimizations.
1691
1692
1692 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1693 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1693 the information which was there from Janko's original IPP code:
1694 the information which was there from Janko's original IPP code:
1694
1695
1695 03.05.99 20:53 porto.ifm.uni-kiel.de
1696 03.05.99 20:53 porto.ifm.uni-kiel.de
1696 --Started changelog.
1697 --Started changelog.
1697 --make clear do what it say it does
1698 --make clear do what it say it does
1698 --added pretty output of lines from inputcache
1699 --added pretty output of lines from inputcache
1699 --Made Logger a mixin class, simplifies handling of switches
1700 --Made Logger a mixin class, simplifies handling of switches
1700 --Added own completer class. .string<TAB> expands to last history
1701 --Added own completer class. .string<TAB> expands to last history
1701 line which starts with string. The new expansion is also present
1702 line which starts with string. The new expansion is also present
1702 with Ctrl-r from the readline library. But this shows, who this
1703 with Ctrl-r from the readline library. But this shows, who this
1703 can be done for other cases.
1704 can be done for other cases.
1704 --Added convention that all shell functions should accept a
1705 --Added convention that all shell functions should accept a
1705 parameter_string This opens the door for different behaviour for
1706 parameter_string This opens the door for different behaviour for
1706 each function. @cd is a good example of this.
1707 each function. @cd is a good example of this.
1707
1708
1708 04.05.99 12:12 porto.ifm.uni-kiel.de
1709 04.05.99 12:12 porto.ifm.uni-kiel.de
1709 --added logfile rotation
1710 --added logfile rotation
1710 --added new mainloop method which freezes first the namespace
1711 --added new mainloop method which freezes first the namespace
1711
1712
1712 07.05.99 21:24 porto.ifm.uni-kiel.de
1713 07.05.99 21:24 porto.ifm.uni-kiel.de
1713 --added the docreader classes. Now there is a help system.
1714 --added the docreader classes. Now there is a help system.
1714 -This is only a first try. Currently it's not easy to put new
1715 -This is only a first try. Currently it's not easy to put new
1715 stuff in the indices. But this is the way to go. Info would be
1716 stuff in the indices. But this is the way to go. Info would be
1716 better, but HTML is every where and not everybody has an info
1717 better, but HTML is every where and not everybody has an info
1717 system installed and it's not so easy to change html-docs to info.
1718 system installed and it's not so easy to change html-docs to info.
1718 --added global logfile option
1719 --added global logfile option
1719 --there is now a hook for object inspection method pinfo needs to
1720 --there is now a hook for object inspection method pinfo needs to
1720 be provided for this. Can be reached by two '??'.
1721 be provided for this. Can be reached by two '??'.
1721
1722
1722 08.05.99 20:51 porto.ifm.uni-kiel.de
1723 08.05.99 20:51 porto.ifm.uni-kiel.de
1723 --added a README
1724 --added a README
1724 --bug in rc file. Something has changed so functions in the rc
1725 --bug in rc file. Something has changed so functions in the rc
1725 file need to reference the shell and not self. Not clear if it's a
1726 file need to reference the shell and not self. Not clear if it's a
1726 bug or feature.
1727 bug or feature.
1727 --changed rc file for new behavior
1728 --changed rc file for new behavior
1728
1729
1729 2004-07-15 Fernando Perez <fperez@colorado.edu>
1730 2004-07-15 Fernando Perez <fperez@colorado.edu>
1730
1731
1731 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1732 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1732 cache was falling out of sync in bizarre manners when multi-line
1733 cache was falling out of sync in bizarre manners when multi-line
1733 input was present. Minor optimizations and cleanup.
1734 input was present. Minor optimizations and cleanup.
1734
1735
1735 (Logger): Remove old Changelog info for cleanup. This is the
1736 (Logger): Remove old Changelog info for cleanup. This is the
1736 information which was there from Janko's original code:
1737 information which was there from Janko's original code:
1737
1738
1738 Changes to Logger: - made the default log filename a parameter
1739 Changes to Logger: - made the default log filename a parameter
1739
1740
1740 - put a check for lines beginning with !@? in log(). Needed
1741 - put a check for lines beginning with !@? in log(). Needed
1741 (even if the handlers properly log their lines) for mid-session
1742 (even if the handlers properly log their lines) for mid-session
1742 logging activation to work properly. Without this, lines logged
1743 logging activation to work properly. Without this, lines logged
1743 in mid session, which get read from the cache, would end up
1744 in mid session, which get read from the cache, would end up
1744 'bare' (with !@? in the open) in the log. Now they are caught
1745 'bare' (with !@? in the open) in the log. Now they are caught
1745 and prepended with a #.
1746 and prepended with a #.
1746
1747
1747 * IPython/iplib.py (InteractiveShell.init_readline): added check
1748 * IPython/iplib.py (InteractiveShell.init_readline): added check
1748 in case MagicCompleter fails to be defined, so we don't crash.
1749 in case MagicCompleter fails to be defined, so we don't crash.
1749
1750
1750 2004-07-13 Fernando Perez <fperez@colorado.edu>
1751 2004-07-13 Fernando Perez <fperez@colorado.edu>
1751
1752
1752 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1753 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1753 of EPS if the requested filename ends in '.eps'.
1754 of EPS if the requested filename ends in '.eps'.
1754
1755
1755 2004-07-04 Fernando Perez <fperez@colorado.edu>
1756 2004-07-04 Fernando Perez <fperez@colorado.edu>
1756
1757
1757 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1758 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1758 escaping of quotes when calling the shell.
1759 escaping of quotes when calling the shell.
1759
1760
1760 2004-07-02 Fernando Perez <fperez@colorado.edu>
1761 2004-07-02 Fernando Perez <fperez@colorado.edu>
1761
1762
1762 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1763 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1763 gettext not working because we were clobbering '_'. Fixes
1764 gettext not working because we were clobbering '_'. Fixes
1764 http://www.scipy.net/roundup/ipython/issue6.
1765 http://www.scipy.net/roundup/ipython/issue6.
1765
1766
1766 2004-07-01 Fernando Perez <fperez@colorado.edu>
1767 2004-07-01 Fernando Perez <fperez@colorado.edu>
1767
1768
1768 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1769 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1769 into @cd. Patch by Ville.
1770 into @cd. Patch by Ville.
1770
1771
1771 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1772 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1772 new function to store things after ipmaker runs. Patch by Ville.
1773 new function to store things after ipmaker runs. Patch by Ville.
1773 Eventually this will go away once ipmaker is removed and the class
1774 Eventually this will go away once ipmaker is removed and the class
1774 gets cleaned up, but for now it's ok. Key functionality here is
1775 gets cleaned up, but for now it's ok. Key functionality here is
1775 the addition of the persistent storage mechanism, a dict for
1776 the addition of the persistent storage mechanism, a dict for
1776 keeping data across sessions (for now just bookmarks, but more can
1777 keeping data across sessions (for now just bookmarks, but more can
1777 be implemented later).
1778 be implemented later).
1778
1779
1779 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1780 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1780 persistent across sections. Patch by Ville, I modified it
1781 persistent across sections. Patch by Ville, I modified it
1781 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1782 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1782 added a '-l' option to list all bookmarks.
1783 added a '-l' option to list all bookmarks.
1783
1784
1784 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1785 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1785 center for cleanup. Registered with atexit.register(). I moved
1786 center for cleanup. Registered with atexit.register(). I moved
1786 here the old exit_cleanup(). After a patch by Ville.
1787 here the old exit_cleanup(). After a patch by Ville.
1787
1788
1788 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1789 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1789 characters in the hacked shlex_split for python 2.2.
1790 characters in the hacked shlex_split for python 2.2.
1790
1791
1791 * IPython/iplib.py (file_matches): more fixes to filenames with
1792 * IPython/iplib.py (file_matches): more fixes to filenames with
1792 whitespace in them. It's not perfect, but limitations in python's
1793 whitespace in them. It's not perfect, but limitations in python's
1793 readline make it impossible to go further.
1794 readline make it impossible to go further.
1794
1795
1795 2004-06-29 Fernando Perez <fperez@colorado.edu>
1796 2004-06-29 Fernando Perez <fperez@colorado.edu>
1796
1797
1797 * IPython/iplib.py (file_matches): escape whitespace correctly in
1798 * IPython/iplib.py (file_matches): escape whitespace correctly in
1798 filename completions. Bug reported by Ville.
1799 filename completions. Bug reported by Ville.
1799
1800
1800 2004-06-28 Fernando Perez <fperez@colorado.edu>
1801 2004-06-28 Fernando Perez <fperez@colorado.edu>
1801
1802
1802 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1803 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1803 the history file will be called 'history-PROFNAME' (or just
1804 the history file will be called 'history-PROFNAME' (or just
1804 'history' if no profile is loaded). I was getting annoyed at
1805 'history' if no profile is loaded). I was getting annoyed at
1805 getting my Numerical work history clobbered by pysh sessions.
1806 getting my Numerical work history clobbered by pysh sessions.
1806
1807
1807 * IPython/iplib.py (InteractiveShell.__init__): Internal
1808 * IPython/iplib.py (InteractiveShell.__init__): Internal
1808 getoutputerror() function so that we can honor the system_verbose
1809 getoutputerror() function so that we can honor the system_verbose
1809 flag for _all_ system calls. I also added escaping of #
1810 flag for _all_ system calls. I also added escaping of #
1810 characters here to avoid confusing Itpl.
1811 characters here to avoid confusing Itpl.
1811
1812
1812 * IPython/Magic.py (shlex_split): removed call to shell in
1813 * IPython/Magic.py (shlex_split): removed call to shell in
1813 parse_options and replaced it with shlex.split(). The annoying
1814 parse_options and replaced it with shlex.split(). The annoying
1814 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1815 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1815 to backport it from 2.3, with several frail hacks (the shlex
1816 to backport it from 2.3, with several frail hacks (the shlex
1816 module is rather limited in 2.2). Thanks to a suggestion by Ville
1817 module is rather limited in 2.2). Thanks to a suggestion by Ville
1817 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1818 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1818 problem.
1819 problem.
1819
1820
1820 (Magic.magic_system_verbose): new toggle to print the actual
1821 (Magic.magic_system_verbose): new toggle to print the actual
1821 system calls made by ipython. Mainly for debugging purposes.
1822 system calls made by ipython. Mainly for debugging purposes.
1822
1823
1823 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1824 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1824 doesn't support persistence. Reported (and fix suggested) by
1825 doesn't support persistence. Reported (and fix suggested) by
1825 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1826 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1826
1827
1827 2004-06-26 Fernando Perez <fperez@colorado.edu>
1828 2004-06-26 Fernando Perez <fperez@colorado.edu>
1828
1829
1829 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1830 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1830 continue prompts.
1831 continue prompts.
1831
1832
1832 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1833 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1833 function (basically a big docstring) and a few more things here to
1834 function (basically a big docstring) and a few more things here to
1834 speedup startup. pysh.py is now very lightweight. We want because
1835 speedup startup. pysh.py is now very lightweight. We want because
1835 it gets execfile'd, while InterpreterExec gets imported, so
1836 it gets execfile'd, while InterpreterExec gets imported, so
1836 byte-compilation saves time.
1837 byte-compilation saves time.
1837
1838
1838 2004-06-25 Fernando Perez <fperez@colorado.edu>
1839 2004-06-25 Fernando Perez <fperez@colorado.edu>
1839
1840
1840 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1841 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1841 -NUM', which was recently broken.
1842 -NUM', which was recently broken.
1842
1843
1843 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1844 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1844 in multi-line input (but not !!, which doesn't make sense there).
1845 in multi-line input (but not !!, which doesn't make sense there).
1845
1846
1846 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1847 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1847 It's just too useful, and people can turn it off in the less
1848 It's just too useful, and people can turn it off in the less
1848 common cases where it's a problem.
1849 common cases where it's a problem.
1849
1850
1850 2004-06-24 Fernando Perez <fperez@colorado.edu>
1851 2004-06-24 Fernando Perez <fperez@colorado.edu>
1851
1852
1852 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1853 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1853 special syntaxes (like alias calling) is now allied in multi-line
1854 special syntaxes (like alias calling) is now allied in multi-line
1854 input. This is still _very_ experimental, but it's necessary for
1855 input. This is still _very_ experimental, but it's necessary for
1855 efficient shell usage combining python looping syntax with system
1856 efficient shell usage combining python looping syntax with system
1856 calls. For now it's restricted to aliases, I don't think it
1857 calls. For now it's restricted to aliases, I don't think it
1857 really even makes sense to have this for magics.
1858 really even makes sense to have this for magics.
1858
1859
1859 2004-06-23 Fernando Perez <fperez@colorado.edu>
1860 2004-06-23 Fernando Perez <fperez@colorado.edu>
1860
1861
1861 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1862 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1862 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1863 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1863
1864
1864 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1865 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1865 extensions under Windows (after code sent by Gary Bishop). The
1866 extensions under Windows (after code sent by Gary Bishop). The
1866 extensions considered 'executable' are stored in IPython's rc
1867 extensions considered 'executable' are stored in IPython's rc
1867 structure as win_exec_ext.
1868 structure as win_exec_ext.
1868
1869
1869 * IPython/genutils.py (shell): new function, like system() but
1870 * IPython/genutils.py (shell): new function, like system() but
1870 without return value. Very useful for interactive shell work.
1871 without return value. Very useful for interactive shell work.
1871
1872
1872 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1873 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1873 delete aliases.
1874 delete aliases.
1874
1875
1875 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1876 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1876 sure that the alias table doesn't contain python keywords.
1877 sure that the alias table doesn't contain python keywords.
1877
1878
1878 2004-06-21 Fernando Perez <fperez@colorado.edu>
1879 2004-06-21 Fernando Perez <fperez@colorado.edu>
1879
1880
1880 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1881 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1881 non-existent items are found in $PATH. Reported by Thorsten.
1882 non-existent items are found in $PATH. Reported by Thorsten.
1882
1883
1883 2004-06-20 Fernando Perez <fperez@colorado.edu>
1884 2004-06-20 Fernando Perez <fperez@colorado.edu>
1884
1885
1885 * IPython/iplib.py (complete): modified the completer so that the
1886 * IPython/iplib.py (complete): modified the completer so that the
1886 order of priorities can be easily changed at runtime.
1887 order of priorities can be easily changed at runtime.
1887
1888
1888 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1889 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1889 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1890 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1890
1891
1891 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1892 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1892 expand Python variables prepended with $ in all system calls. The
1893 expand Python variables prepended with $ in all system calls. The
1893 same was done to InteractiveShell.handle_shell_escape. Now all
1894 same was done to InteractiveShell.handle_shell_escape. Now all
1894 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1895 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1895 expansion of python variables and expressions according to the
1896 expansion of python variables and expressions according to the
1896 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1897 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1897
1898
1898 Though PEP-215 has been rejected, a similar (but simpler) one
1899 Though PEP-215 has been rejected, a similar (but simpler) one
1899 seems like it will go into Python 2.4, PEP-292 -
1900 seems like it will go into Python 2.4, PEP-292 -
1900 http://www.python.org/peps/pep-0292.html.
1901 http://www.python.org/peps/pep-0292.html.
1901
1902
1902 I'll keep the full syntax of PEP-215, since IPython has since the
1903 I'll keep the full syntax of PEP-215, since IPython has since the
1903 start used Ka-Ping Yee's reference implementation discussed there
1904 start used Ka-Ping Yee's reference implementation discussed there
1904 (Itpl), and I actually like the powerful semantics it offers.
1905 (Itpl), and I actually like the powerful semantics it offers.
1905
1906
1906 In order to access normal shell variables, the $ has to be escaped
1907 In order to access normal shell variables, the $ has to be escaped
1907 via an extra $. For example:
1908 via an extra $. For example:
1908
1909
1909 In [7]: PATH='a python variable'
1910 In [7]: PATH='a python variable'
1910
1911
1911 In [8]: !echo $PATH
1912 In [8]: !echo $PATH
1912 a python variable
1913 a python variable
1913
1914
1914 In [9]: !echo $$PATH
1915 In [9]: !echo $$PATH
1915 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1916 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1916
1917
1917 (Magic.parse_options): escape $ so the shell doesn't evaluate
1918 (Magic.parse_options): escape $ so the shell doesn't evaluate
1918 things prematurely.
1919 things prematurely.
1919
1920
1920 * IPython/iplib.py (InteractiveShell.call_alias): added the
1921 * IPython/iplib.py (InteractiveShell.call_alias): added the
1921 ability for aliases to expand python variables via $.
1922 ability for aliases to expand python variables via $.
1922
1923
1923 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1924 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1924 system, now there's a @rehash/@rehashx pair of magics. These work
1925 system, now there's a @rehash/@rehashx pair of magics. These work
1925 like the csh rehash command, and can be invoked at any time. They
1926 like the csh rehash command, and can be invoked at any time. They
1926 build a table of aliases to everything in the user's $PATH
1927 build a table of aliases to everything in the user's $PATH
1927 (@rehash uses everything, @rehashx is slower but only adds
1928 (@rehash uses everything, @rehashx is slower but only adds
1928 executable files). With this, the pysh.py-based shell profile can
1929 executable files). With this, the pysh.py-based shell profile can
1929 now simply call rehash upon startup, and full access to all
1930 now simply call rehash upon startup, and full access to all
1930 programs in the user's path is obtained.
1931 programs in the user's path is obtained.
1931
1932
1932 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1933 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1933 functionality is now fully in place. I removed the old dynamic
1934 functionality is now fully in place. I removed the old dynamic
1934 code generation based approach, in favor of a much lighter one
1935 code generation based approach, in favor of a much lighter one
1935 based on a simple dict. The advantage is that this allows me to
1936 based on a simple dict. The advantage is that this allows me to
1936 now have thousands of aliases with negligible cost (unthinkable
1937 now have thousands of aliases with negligible cost (unthinkable
1937 with the old system).
1938 with the old system).
1938
1939
1939 2004-06-19 Fernando Perez <fperez@colorado.edu>
1940 2004-06-19 Fernando Perez <fperez@colorado.edu>
1940
1941
1941 * IPython/iplib.py (__init__): extended MagicCompleter class to
1942 * IPython/iplib.py (__init__): extended MagicCompleter class to
1942 also complete (last in priority) on user aliases.
1943 also complete (last in priority) on user aliases.
1943
1944
1944 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1945 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1945 call to eval.
1946 call to eval.
1946 (ItplNS.__init__): Added a new class which functions like Itpl,
1947 (ItplNS.__init__): Added a new class which functions like Itpl,
1947 but allows configuring the namespace for the evaluation to occur
1948 but allows configuring the namespace for the evaluation to occur
1948 in.
1949 in.
1949
1950
1950 2004-06-18 Fernando Perez <fperez@colorado.edu>
1951 2004-06-18 Fernando Perez <fperez@colorado.edu>
1951
1952
1952 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1953 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1953 better message when 'exit' or 'quit' are typed (a common newbie
1954 better message when 'exit' or 'quit' are typed (a common newbie
1954 confusion).
1955 confusion).
1955
1956
1956 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1957 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1957 check for Windows users.
1958 check for Windows users.
1958
1959
1959 * IPython/iplib.py (InteractiveShell.user_setup): removed
1960 * IPython/iplib.py (InteractiveShell.user_setup): removed
1960 disabling of colors for Windows. I'll test at runtime and issue a
1961 disabling of colors for Windows. I'll test at runtime and issue a
1961 warning if Gary's readline isn't found, as to nudge users to
1962 warning if Gary's readline isn't found, as to nudge users to
1962 download it.
1963 download it.
1963
1964
1964 2004-06-16 Fernando Perez <fperez@colorado.edu>
1965 2004-06-16 Fernando Perez <fperez@colorado.edu>
1965
1966
1966 * IPython/genutils.py (Stream.__init__): changed to print errors
1967 * IPython/genutils.py (Stream.__init__): changed to print errors
1967 to sys.stderr. I had a circular dependency here. Now it's
1968 to sys.stderr. I had a circular dependency here. Now it's
1968 possible to run ipython as IDLE's shell (consider this pre-alpha,
1969 possible to run ipython as IDLE's shell (consider this pre-alpha,
1969 since true stdout things end up in the starting terminal instead
1970 since true stdout things end up in the starting terminal instead
1970 of IDLE's out).
1971 of IDLE's out).
1971
1972
1972 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1973 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1973 users who haven't # updated their prompt_in2 definitions. Remove
1974 users who haven't # updated their prompt_in2 definitions. Remove
1974 eventually.
1975 eventually.
1975 (multiple_replace): added credit to original ASPN recipe.
1976 (multiple_replace): added credit to original ASPN recipe.
1976
1977
1977 2004-06-15 Fernando Perez <fperez@colorado.edu>
1978 2004-06-15 Fernando Perez <fperez@colorado.edu>
1978
1979
1979 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1980 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1980 list of auto-defined aliases.
1981 list of auto-defined aliases.
1981
1982
1982 2004-06-13 Fernando Perez <fperez@colorado.edu>
1983 2004-06-13 Fernando Perez <fperez@colorado.edu>
1983
1984
1984 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1985 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1985 install was really requested (so setup.py can be used for other
1986 install was really requested (so setup.py can be used for other
1986 things under Windows).
1987 things under Windows).
1987
1988
1988 2004-06-10 Fernando Perez <fperez@colorado.edu>
1989 2004-06-10 Fernando Perez <fperez@colorado.edu>
1989
1990
1990 * IPython/Logger.py (Logger.create_log): Manually remove any old
1991 * IPython/Logger.py (Logger.create_log): Manually remove any old
1991 backup, since os.remove may fail under Windows. Fixes bug
1992 backup, since os.remove may fail under Windows. Fixes bug
1992 reported by Thorsten.
1993 reported by Thorsten.
1993
1994
1994 2004-06-09 Fernando Perez <fperez@colorado.edu>
1995 2004-06-09 Fernando Perez <fperez@colorado.edu>
1995
1996
1996 * examples/example-embed.py: fixed all references to %n (replaced
1997 * examples/example-embed.py: fixed all references to %n (replaced
1997 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1998 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1998 for all examples and the manual as well.
1999 for all examples and the manual as well.
1999
2000
2000 2004-06-08 Fernando Perez <fperez@colorado.edu>
2001 2004-06-08 Fernando Perez <fperez@colorado.edu>
2001
2002
2002 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2003 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2003 alignment and color management. All 3 prompt subsystems now
2004 alignment and color management. All 3 prompt subsystems now
2004 inherit from BasePrompt.
2005 inherit from BasePrompt.
2005
2006
2006 * tools/release: updates for windows installer build and tag rpms
2007 * tools/release: updates for windows installer build and tag rpms
2007 with python version (since paths are fixed).
2008 with python version (since paths are fixed).
2008
2009
2009 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2010 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2010 which will become eventually obsolete. Also fixed the default
2011 which will become eventually obsolete. Also fixed the default
2011 prompt_in2 to use \D, so at least new users start with the correct
2012 prompt_in2 to use \D, so at least new users start with the correct
2012 defaults.
2013 defaults.
2013 WARNING: Users with existing ipythonrc files will need to apply
2014 WARNING: Users with existing ipythonrc files will need to apply
2014 this fix manually!
2015 this fix manually!
2015
2016
2016 * setup.py: make windows installer (.exe). This is finally the
2017 * setup.py: make windows installer (.exe). This is finally the
2017 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2018 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2018 which I hadn't included because it required Python 2.3 (or recent
2019 which I hadn't included because it required Python 2.3 (or recent
2019 distutils).
2020 distutils).
2020
2021
2021 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2022 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2022 usage of new '\D' escape.
2023 usage of new '\D' escape.
2023
2024
2024 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2025 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2025 lacks os.getuid())
2026 lacks os.getuid())
2026 (CachedOutput.set_colors): Added the ability to turn coloring
2027 (CachedOutput.set_colors): Added the ability to turn coloring
2027 on/off with @colors even for manually defined prompt colors. It
2028 on/off with @colors even for manually defined prompt colors. It
2028 uses a nasty global, but it works safely and via the generic color
2029 uses a nasty global, but it works safely and via the generic color
2029 handling mechanism.
2030 handling mechanism.
2030 (Prompt2.__init__): Introduced new escape '\D' for continuation
2031 (Prompt2.__init__): Introduced new escape '\D' for continuation
2031 prompts. It represents the counter ('\#') as dots.
2032 prompts. It represents the counter ('\#') as dots.
2032 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2033 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2033 need to update their ipythonrc files and replace '%n' with '\D' in
2034 need to update their ipythonrc files and replace '%n' with '\D' in
2034 their prompt_in2 settings everywhere. Sorry, but there's
2035 their prompt_in2 settings everywhere. Sorry, but there's
2035 otherwise no clean way to get all prompts to properly align. The
2036 otherwise no clean way to get all prompts to properly align. The
2036 ipythonrc shipped with IPython has been updated.
2037 ipythonrc shipped with IPython has been updated.
2037
2038
2038 2004-06-07 Fernando Perez <fperez@colorado.edu>
2039 2004-06-07 Fernando Perez <fperez@colorado.edu>
2039
2040
2040 * setup.py (isfile): Pass local_icons option to latex2html, so the
2041 * setup.py (isfile): Pass local_icons option to latex2html, so the
2041 resulting HTML file is self-contained. Thanks to
2042 resulting HTML file is self-contained. Thanks to
2042 dryice-AT-liu.com.cn for the tip.
2043 dryice-AT-liu.com.cn for the tip.
2043
2044
2044 * pysh.py: I created a new profile 'shell', which implements a
2045 * pysh.py: I created a new profile 'shell', which implements a
2045 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2046 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2046 system shell, nor will it become one anytime soon. It's mainly
2047 system shell, nor will it become one anytime soon. It's mainly
2047 meant to illustrate the use of the new flexible bash-like prompts.
2048 meant to illustrate the use of the new flexible bash-like prompts.
2048 I guess it could be used by hardy souls for true shell management,
2049 I guess it could be used by hardy souls for true shell management,
2049 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2050 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2050 profile. This uses the InterpreterExec extension provided by
2051 profile. This uses the InterpreterExec extension provided by
2051 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2052 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2052
2053
2053 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2054 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2054 auto-align itself with the length of the previous input prompt
2055 auto-align itself with the length of the previous input prompt
2055 (taking into account the invisible color escapes).
2056 (taking into account the invisible color escapes).
2056 (CachedOutput.__init__): Large restructuring of this class. Now
2057 (CachedOutput.__init__): Large restructuring of this class. Now
2057 all three prompts (primary1, primary2, output) are proper objects,
2058 all three prompts (primary1, primary2, output) are proper objects,
2058 managed by the 'parent' CachedOutput class. The code is still a
2059 managed by the 'parent' CachedOutput class. The code is still a
2059 bit hackish (all prompts share state via a pointer to the cache),
2060 bit hackish (all prompts share state via a pointer to the cache),
2060 but it's overall far cleaner than before.
2061 but it's overall far cleaner than before.
2061
2062
2062 * IPython/genutils.py (getoutputerror): modified to add verbose,
2063 * IPython/genutils.py (getoutputerror): modified to add verbose,
2063 debug and header options. This makes the interface of all getout*
2064 debug and header options. This makes the interface of all getout*
2064 functions uniform.
2065 functions uniform.
2065 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2066 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2066
2067
2067 * IPython/Magic.py (Magic.default_option): added a function to
2068 * IPython/Magic.py (Magic.default_option): added a function to
2068 allow registering default options for any magic command. This
2069 allow registering default options for any magic command. This
2069 makes it easy to have profiles which customize the magics globally
2070 makes it easy to have profiles which customize the magics globally
2070 for a certain use. The values set through this function are
2071 for a certain use. The values set through this function are
2071 picked up by the parse_options() method, which all magics should
2072 picked up by the parse_options() method, which all magics should
2072 use to parse their options.
2073 use to parse their options.
2073
2074
2074 * IPython/genutils.py (warn): modified the warnings framework to
2075 * IPython/genutils.py (warn): modified the warnings framework to
2075 use the Term I/O class. I'm trying to slowly unify all of
2076 use the Term I/O class. I'm trying to slowly unify all of
2076 IPython's I/O operations to pass through Term.
2077 IPython's I/O operations to pass through Term.
2077
2078
2078 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2079 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2079 the secondary prompt to correctly match the length of the primary
2080 the secondary prompt to correctly match the length of the primary
2080 one for any prompt. Now multi-line code will properly line up
2081 one for any prompt. Now multi-line code will properly line up
2081 even for path dependent prompts, such as the new ones available
2082 even for path dependent prompts, such as the new ones available
2082 via the prompt_specials.
2083 via the prompt_specials.
2083
2084
2084 2004-06-06 Fernando Perez <fperez@colorado.edu>
2085 2004-06-06 Fernando Perez <fperez@colorado.edu>
2085
2086
2086 * IPython/Prompts.py (prompt_specials): Added the ability to have
2087 * IPython/Prompts.py (prompt_specials): Added the ability to have
2087 bash-like special sequences in the prompts, which get
2088 bash-like special sequences in the prompts, which get
2088 automatically expanded. Things like hostname, current working
2089 automatically expanded. Things like hostname, current working
2089 directory and username are implemented already, but it's easy to
2090 directory and username are implemented already, but it's easy to
2090 add more in the future. Thanks to a patch by W.J. van der Laan
2091 add more in the future. Thanks to a patch by W.J. van der Laan
2091 <gnufnork-AT-hetdigitalegat.nl>
2092 <gnufnork-AT-hetdigitalegat.nl>
2092 (prompt_specials): Added color support for prompt strings, so
2093 (prompt_specials): Added color support for prompt strings, so
2093 users can define arbitrary color setups for their prompts.
2094 users can define arbitrary color setups for their prompts.
2094
2095
2095 2004-06-05 Fernando Perez <fperez@colorado.edu>
2096 2004-06-05 Fernando Perez <fperez@colorado.edu>
2096
2097
2097 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2098 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2098 code to load Gary Bishop's readline and configure it
2099 code to load Gary Bishop's readline and configure it
2099 automatically. Thanks to Gary for help on this.
2100 automatically. Thanks to Gary for help on this.
2100
2101
2101 2004-06-01 Fernando Perez <fperez@colorado.edu>
2102 2004-06-01 Fernando Perez <fperez@colorado.edu>
2102
2103
2103 * IPython/Logger.py (Logger.create_log): fix bug for logging
2104 * IPython/Logger.py (Logger.create_log): fix bug for logging
2104 with no filename (previous fix was incomplete).
2105 with no filename (previous fix was incomplete).
2105
2106
2106 2004-05-25 Fernando Perez <fperez@colorado.edu>
2107 2004-05-25 Fernando Perez <fperez@colorado.edu>
2107
2108
2108 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2109 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2109 parens would get passed to the shell.
2110 parens would get passed to the shell.
2110
2111
2111 2004-05-20 Fernando Perez <fperez@colorado.edu>
2112 2004-05-20 Fernando Perez <fperez@colorado.edu>
2112
2113
2113 * IPython/Magic.py (Magic.magic_prun): changed default profile
2114 * IPython/Magic.py (Magic.magic_prun): changed default profile
2114 sort order to 'time' (the more common profiling need).
2115 sort order to 'time' (the more common profiling need).
2115
2116
2116 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2117 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2117 so that source code shown is guaranteed in sync with the file on
2118 so that source code shown is guaranteed in sync with the file on
2118 disk (also changed in psource). Similar fix to the one for
2119 disk (also changed in psource). Similar fix to the one for
2119 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2120 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2120 <yann.ledu-AT-noos.fr>.
2121 <yann.ledu-AT-noos.fr>.
2121
2122
2122 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2123 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2123 with a single option would not be correctly parsed. Closes
2124 with a single option would not be correctly parsed. Closes
2124 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2125 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2125 introduced in 0.6.0 (on 2004-05-06).
2126 introduced in 0.6.0 (on 2004-05-06).
2126
2127
2127 2004-05-13 *** Released version 0.6.0
2128 2004-05-13 *** Released version 0.6.0
2128
2129
2129 2004-05-13 Fernando Perez <fperez@colorado.edu>
2130 2004-05-13 Fernando Perez <fperez@colorado.edu>
2130
2131
2131 * debian/: Added debian/ directory to CVS, so that debian support
2132 * debian/: Added debian/ directory to CVS, so that debian support
2132 is publicly accessible. The debian package is maintained by Jack
2133 is publicly accessible. The debian package is maintained by Jack
2133 Moffit <jack-AT-xiph.org>.
2134 Moffit <jack-AT-xiph.org>.
2134
2135
2135 * Documentation: included the notes about an ipython-based system
2136 * Documentation: included the notes about an ipython-based system
2136 shell (the hypothetical 'pysh') into the new_design.pdf document,
2137 shell (the hypothetical 'pysh') into the new_design.pdf document,
2137 so that these ideas get distributed to users along with the
2138 so that these ideas get distributed to users along with the
2138 official documentation.
2139 official documentation.
2139
2140
2140 2004-05-10 Fernando Perez <fperez@colorado.edu>
2141 2004-05-10 Fernando Perez <fperez@colorado.edu>
2141
2142
2142 * IPython/Logger.py (Logger.create_log): fix recently introduced
2143 * IPython/Logger.py (Logger.create_log): fix recently introduced
2143 bug (misindented line) where logstart would fail when not given an
2144 bug (misindented line) where logstart would fail when not given an
2144 explicit filename.
2145 explicit filename.
2145
2146
2146 2004-05-09 Fernando Perez <fperez@colorado.edu>
2147 2004-05-09 Fernando Perez <fperez@colorado.edu>
2147
2148
2148 * IPython/Magic.py (Magic.parse_options): skip system call when
2149 * IPython/Magic.py (Magic.parse_options): skip system call when
2149 there are no options to look for. Faster, cleaner for the common
2150 there are no options to look for. Faster, cleaner for the common
2150 case.
2151 case.
2151
2152
2152 * Documentation: many updates to the manual: describing Windows
2153 * Documentation: many updates to the manual: describing Windows
2153 support better, Gnuplot updates, credits, misc small stuff. Also
2154 support better, Gnuplot updates, credits, misc small stuff. Also
2154 updated the new_design doc a bit.
2155 updated the new_design doc a bit.
2155
2156
2156 2004-05-06 *** Released version 0.6.0.rc1
2157 2004-05-06 *** Released version 0.6.0.rc1
2157
2158
2158 2004-05-06 Fernando Perez <fperez@colorado.edu>
2159 2004-05-06 Fernando Perez <fperez@colorado.edu>
2159
2160
2160 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2161 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2161 operations to use the vastly more efficient list/''.join() method.
2162 operations to use the vastly more efficient list/''.join() method.
2162 (FormattedTB.text): Fix
2163 (FormattedTB.text): Fix
2163 http://www.scipy.net/roundup/ipython/issue12 - exception source
2164 http://www.scipy.net/roundup/ipython/issue12 - exception source
2164 extract not updated after reload. Thanks to Mike Salib
2165 extract not updated after reload. Thanks to Mike Salib
2165 <msalib-AT-mit.edu> for pinning the source of the problem.
2166 <msalib-AT-mit.edu> for pinning the source of the problem.
2166 Fortunately, the solution works inside ipython and doesn't require
2167 Fortunately, the solution works inside ipython and doesn't require
2167 any changes to python proper.
2168 any changes to python proper.
2168
2169
2169 * IPython/Magic.py (Magic.parse_options): Improved to process the
2170 * IPython/Magic.py (Magic.parse_options): Improved to process the
2170 argument list as a true shell would (by actually using the
2171 argument list as a true shell would (by actually using the
2171 underlying system shell). This way, all @magics automatically get
2172 underlying system shell). This way, all @magics automatically get
2172 shell expansion for variables. Thanks to a comment by Alex
2173 shell expansion for variables. Thanks to a comment by Alex
2173 Schmolck.
2174 Schmolck.
2174
2175
2175 2004-04-04 Fernando Perez <fperez@colorado.edu>
2176 2004-04-04 Fernando Perez <fperez@colorado.edu>
2176
2177
2177 * IPython/iplib.py (InteractiveShell.interact): Added a special
2178 * IPython/iplib.py (InteractiveShell.interact): Added a special
2178 trap for a debugger quit exception, which is basically impossible
2179 trap for a debugger quit exception, which is basically impossible
2179 to handle by normal mechanisms, given what pdb does to the stack.
2180 to handle by normal mechanisms, given what pdb does to the stack.
2180 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2181 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2181
2182
2182 2004-04-03 Fernando Perez <fperez@colorado.edu>
2183 2004-04-03 Fernando Perez <fperez@colorado.edu>
2183
2184
2184 * IPython/genutils.py (Term): Standardized the names of the Term
2185 * IPython/genutils.py (Term): Standardized the names of the Term
2185 class streams to cin/cout/cerr, following C++ naming conventions
2186 class streams to cin/cout/cerr, following C++ naming conventions
2186 (I can't use in/out/err because 'in' is not a valid attribute
2187 (I can't use in/out/err because 'in' is not a valid attribute
2187 name).
2188 name).
2188
2189
2189 * IPython/iplib.py (InteractiveShell.interact): don't increment
2190 * IPython/iplib.py (InteractiveShell.interact): don't increment
2190 the prompt if there's no user input. By Daniel 'Dang' Griffith
2191 the prompt if there's no user input. By Daniel 'Dang' Griffith
2191 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2192 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2192 Francois Pinard.
2193 Francois Pinard.
2193
2194
2194 2004-04-02 Fernando Perez <fperez@colorado.edu>
2195 2004-04-02 Fernando Perez <fperez@colorado.edu>
2195
2196
2196 * IPython/genutils.py (Stream.__init__): Modified to survive at
2197 * IPython/genutils.py (Stream.__init__): Modified to survive at
2197 least importing in contexts where stdin/out/err aren't true file
2198 least importing in contexts where stdin/out/err aren't true file
2198 objects, such as PyCrust (they lack fileno() and mode). However,
2199 objects, such as PyCrust (they lack fileno() and mode). However,
2199 the recovery facilities which rely on these things existing will
2200 the recovery facilities which rely on these things existing will
2200 not work.
2201 not work.
2201
2202
2202 2004-04-01 Fernando Perez <fperez@colorado.edu>
2203 2004-04-01 Fernando Perez <fperez@colorado.edu>
2203
2204
2204 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2205 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2205 use the new getoutputerror() function, so it properly
2206 use the new getoutputerror() function, so it properly
2206 distinguishes stdout/err.
2207 distinguishes stdout/err.
2207
2208
2208 * IPython/genutils.py (getoutputerror): added a function to
2209 * IPython/genutils.py (getoutputerror): added a function to
2209 capture separately the standard output and error of a command.
2210 capture separately the standard output and error of a command.
2210 After a comment from dang on the mailing lists. This code is
2211 After a comment from dang on the mailing lists. This code is
2211 basically a modified version of commands.getstatusoutput(), from
2212 basically a modified version of commands.getstatusoutput(), from
2212 the standard library.
2213 the standard library.
2213
2214
2214 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2215 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2215 '!!' as a special syntax (shorthand) to access @sx.
2216 '!!' as a special syntax (shorthand) to access @sx.
2216
2217
2217 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2218 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2218 command and return its output as a list split on '\n'.
2219 command and return its output as a list split on '\n'.
2219
2220
2220 2004-03-31 Fernando Perez <fperez@colorado.edu>
2221 2004-03-31 Fernando Perez <fperez@colorado.edu>
2221
2222
2222 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2223 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2223 method to dictionaries used as FakeModule instances if they lack
2224 method to dictionaries used as FakeModule instances if they lack
2224 it. At least pydoc in python2.3 breaks for runtime-defined
2225 it. At least pydoc in python2.3 breaks for runtime-defined
2225 functions without this hack. At some point I need to _really_
2226 functions without this hack. At some point I need to _really_
2226 understand what FakeModule is doing, because it's a gross hack.
2227 understand what FakeModule is doing, because it's a gross hack.
2227 But it solves Arnd's problem for now...
2228 But it solves Arnd's problem for now...
2228
2229
2229 2004-02-27 Fernando Perez <fperez@colorado.edu>
2230 2004-02-27 Fernando Perez <fperez@colorado.edu>
2230
2231
2231 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2232 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2232 mode would behave erratically. Also increased the number of
2233 mode would behave erratically. Also increased the number of
2233 possible logs in rotate mod to 999. Thanks to Rod Holland
2234 possible logs in rotate mod to 999. Thanks to Rod Holland
2234 <rhh@StructureLABS.com> for the report and fixes.
2235 <rhh@StructureLABS.com> for the report and fixes.
2235
2236
2236 2004-02-26 Fernando Perez <fperez@colorado.edu>
2237 2004-02-26 Fernando Perez <fperez@colorado.edu>
2237
2238
2238 * IPython/genutils.py (page): Check that the curses module really
2239 * IPython/genutils.py (page): Check that the curses module really
2239 has the initscr attribute before trying to use it. For some
2240 has the initscr attribute before trying to use it. For some
2240 reason, the Solaris curses module is missing this. I think this
2241 reason, the Solaris curses module is missing this. I think this
2241 should be considered a Solaris python bug, but I'm not sure.
2242 should be considered a Solaris python bug, but I'm not sure.
2242
2243
2243 2004-01-17 Fernando Perez <fperez@colorado.edu>
2244 2004-01-17 Fernando Perez <fperez@colorado.edu>
2244
2245
2245 * IPython/genutils.py (Stream.__init__): Changes to try to make
2246 * IPython/genutils.py (Stream.__init__): Changes to try to make
2246 ipython robust against stdin/out/err being closed by the user.
2247 ipython robust against stdin/out/err being closed by the user.
2247 This is 'user error' (and blocks a normal python session, at least
2248 This is 'user error' (and blocks a normal python session, at least
2248 the stdout case). However, Ipython should be able to survive such
2249 the stdout case). However, Ipython should be able to survive such
2249 instances of abuse as gracefully as possible. To simplify the
2250 instances of abuse as gracefully as possible. To simplify the
2250 coding and maintain compatibility with Gary Bishop's Term
2251 coding and maintain compatibility with Gary Bishop's Term
2251 contributions, I've made use of classmethods for this. I think
2252 contributions, I've made use of classmethods for this. I think
2252 this introduces a dependency on python 2.2.
2253 this introduces a dependency on python 2.2.
2253
2254
2254 2004-01-13 Fernando Perez <fperez@colorado.edu>
2255 2004-01-13 Fernando Perez <fperez@colorado.edu>
2255
2256
2256 * IPython/numutils.py (exp_safe): simplified the code a bit and
2257 * IPython/numutils.py (exp_safe): simplified the code a bit and
2257 removed the need for importing the kinds module altogether.
2258 removed the need for importing the kinds module altogether.
2258
2259
2259 2004-01-06 Fernando Perez <fperez@colorado.edu>
2260 2004-01-06 Fernando Perez <fperez@colorado.edu>
2260
2261
2261 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2262 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2262 a magic function instead, after some community feedback. No
2263 a magic function instead, after some community feedback. No
2263 special syntax will exist for it, but its name is deliberately
2264 special syntax will exist for it, but its name is deliberately
2264 very short.
2265 very short.
2265
2266
2266 2003-12-20 Fernando Perez <fperez@colorado.edu>
2267 2003-12-20 Fernando Perez <fperez@colorado.edu>
2267
2268
2268 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2269 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2269 new functionality, to automagically assign the result of a shell
2270 new functionality, to automagically assign the result of a shell
2270 command to a variable. I'll solicit some community feedback on
2271 command to a variable. I'll solicit some community feedback on
2271 this before making it permanent.
2272 this before making it permanent.
2272
2273
2273 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2274 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2274 requested about callables for which inspect couldn't obtain a
2275 requested about callables for which inspect couldn't obtain a
2275 proper argspec. Thanks to a crash report sent by Etienne
2276 proper argspec. Thanks to a crash report sent by Etienne
2276 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2277 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2277
2278
2278 2003-12-09 Fernando Perez <fperez@colorado.edu>
2279 2003-12-09 Fernando Perez <fperez@colorado.edu>
2279
2280
2280 * IPython/genutils.py (page): patch for the pager to work across
2281 * IPython/genutils.py (page): patch for the pager to work across
2281 various versions of Windows. By Gary Bishop.
2282 various versions of Windows. By Gary Bishop.
2282
2283
2283 2003-12-04 Fernando Perez <fperez@colorado.edu>
2284 2003-12-04 Fernando Perez <fperez@colorado.edu>
2284
2285
2285 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2286 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2286 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2287 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2287 While I tested this and it looks ok, there may still be corner
2288 While I tested this and it looks ok, there may still be corner
2288 cases I've missed.
2289 cases I've missed.
2289
2290
2290 2003-12-01 Fernando Perez <fperez@colorado.edu>
2291 2003-12-01 Fernando Perez <fperez@colorado.edu>
2291
2292
2292 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2293 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2293 where a line like 'p,q=1,2' would fail because the automagic
2294 where a line like 'p,q=1,2' would fail because the automagic
2294 system would be triggered for @p.
2295 system would be triggered for @p.
2295
2296
2296 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2297 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2297 cleanups, code unmodified.
2298 cleanups, code unmodified.
2298
2299
2299 * IPython/genutils.py (Term): added a class for IPython to handle
2300 * IPython/genutils.py (Term): added a class for IPython to handle
2300 output. In most cases it will just be a proxy for stdout/err, but
2301 output. In most cases it will just be a proxy for stdout/err, but
2301 having this allows modifications to be made for some platforms,
2302 having this allows modifications to be made for some platforms,
2302 such as handling color escapes under Windows. All of this code
2303 such as handling color escapes under Windows. All of this code
2303 was contributed by Gary Bishop, with minor modifications by me.
2304 was contributed by Gary Bishop, with minor modifications by me.
2304 The actual changes affect many files.
2305 The actual changes affect many files.
2305
2306
2306 2003-11-30 Fernando Perez <fperez@colorado.edu>
2307 2003-11-30 Fernando Perez <fperez@colorado.edu>
2307
2308
2308 * IPython/iplib.py (file_matches): new completion code, courtesy
2309 * IPython/iplib.py (file_matches): new completion code, courtesy
2309 of Jeff Collins. This enables filename completion again under
2310 of Jeff Collins. This enables filename completion again under
2310 python 2.3, which disabled it at the C level.
2311 python 2.3, which disabled it at the C level.
2311
2312
2312 2003-11-11 Fernando Perez <fperez@colorado.edu>
2313 2003-11-11 Fernando Perez <fperez@colorado.edu>
2313
2314
2314 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2315 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2315 for Numeric.array(map(...)), but often convenient.
2316 for Numeric.array(map(...)), but often convenient.
2316
2317
2317 2003-11-05 Fernando Perez <fperez@colorado.edu>
2318 2003-11-05 Fernando Perez <fperez@colorado.edu>
2318
2319
2319 * IPython/numutils.py (frange): Changed a call from int() to
2320 * IPython/numutils.py (frange): Changed a call from int() to
2320 int(round()) to prevent a problem reported with arange() in the
2321 int(round()) to prevent a problem reported with arange() in the
2321 numpy list.
2322 numpy list.
2322
2323
2323 2003-10-06 Fernando Perez <fperez@colorado.edu>
2324 2003-10-06 Fernando Perez <fperez@colorado.edu>
2324
2325
2325 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2326 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2326 prevent crashes if sys lacks an argv attribute (it happens with
2327 prevent crashes if sys lacks an argv attribute (it happens with
2327 embedded interpreters which build a bare-bones sys module).
2328 embedded interpreters which build a bare-bones sys module).
2328 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2329 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2329
2330
2330 2003-09-24 Fernando Perez <fperez@colorado.edu>
2331 2003-09-24 Fernando Perez <fperez@colorado.edu>
2331
2332
2332 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2333 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2333 to protect against poorly written user objects where __getattr__
2334 to protect against poorly written user objects where __getattr__
2334 raises exceptions other than AttributeError. Thanks to a bug
2335 raises exceptions other than AttributeError. Thanks to a bug
2335 report by Oliver Sander <osander-AT-gmx.de>.
2336 report by Oliver Sander <osander-AT-gmx.de>.
2336
2337
2337 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2338 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2338 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2339 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2339
2340
2340 2003-09-09 Fernando Perez <fperez@colorado.edu>
2341 2003-09-09 Fernando Perez <fperez@colorado.edu>
2341
2342
2342 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2343 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2343 unpacking a list whith a callable as first element would
2344 unpacking a list whith a callable as first element would
2344 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2345 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2345 Collins.
2346 Collins.
2346
2347
2347 2003-08-25 *** Released version 0.5.0
2348 2003-08-25 *** Released version 0.5.0
2348
2349
2349 2003-08-22 Fernando Perez <fperez@colorado.edu>
2350 2003-08-22 Fernando Perez <fperez@colorado.edu>
2350
2351
2351 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2352 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2352 improperly defined user exceptions. Thanks to feedback from Mark
2353 improperly defined user exceptions. Thanks to feedback from Mark
2353 Russell <mrussell-AT-verio.net>.
2354 Russell <mrussell-AT-verio.net>.
2354
2355
2355 2003-08-20 Fernando Perez <fperez@colorado.edu>
2356 2003-08-20 Fernando Perez <fperez@colorado.edu>
2356
2357
2357 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2358 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2358 printing so that it would print multi-line string forms starting
2359 printing so that it would print multi-line string forms starting
2359 with a new line. This way the formatting is better respected for
2360 with a new line. This way the formatting is better respected for
2360 objects which work hard to make nice string forms.
2361 objects which work hard to make nice string forms.
2361
2362
2362 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2363 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2363 autocall would overtake data access for objects with both
2364 autocall would overtake data access for objects with both
2364 __getitem__ and __call__.
2365 __getitem__ and __call__.
2365
2366
2366 2003-08-19 *** Released version 0.5.0-rc1
2367 2003-08-19 *** Released version 0.5.0-rc1
2367
2368
2368 2003-08-19 Fernando Perez <fperez@colorado.edu>
2369 2003-08-19 Fernando Perez <fperez@colorado.edu>
2369
2370
2370 * IPython/deep_reload.py (load_tail): single tiny change here
2371 * IPython/deep_reload.py (load_tail): single tiny change here
2371 seems to fix the long-standing bug of dreload() failing to work
2372 seems to fix the long-standing bug of dreload() failing to work
2372 for dotted names. But this module is pretty tricky, so I may have
2373 for dotted names. But this module is pretty tricky, so I may have
2373 missed some subtlety. Needs more testing!.
2374 missed some subtlety. Needs more testing!.
2374
2375
2375 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2376 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2376 exceptions which have badly implemented __str__ methods.
2377 exceptions which have badly implemented __str__ methods.
2377 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2378 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2378 which I've been getting reports about from Python 2.3 users. I
2379 which I've been getting reports about from Python 2.3 users. I
2379 wish I had a simple test case to reproduce the problem, so I could
2380 wish I had a simple test case to reproduce the problem, so I could
2380 either write a cleaner workaround or file a bug report if
2381 either write a cleaner workaround or file a bug report if
2381 necessary.
2382 necessary.
2382
2383
2383 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2384 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2384 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2385 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2385 a bug report by Tjabo Kloppenburg.
2386 a bug report by Tjabo Kloppenburg.
2386
2387
2387 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2388 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2388 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2389 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2389 seems rather unstable. Thanks to a bug report by Tjabo
2390 seems rather unstable. Thanks to a bug report by Tjabo
2390 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2391 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2391
2392
2392 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2393 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2393 this out soon because of the critical fixes in the inner loop for
2394 this out soon because of the critical fixes in the inner loop for
2394 generators.
2395 generators.
2395
2396
2396 * IPython/Magic.py (Magic.getargspec): removed. This (and
2397 * IPython/Magic.py (Magic.getargspec): removed. This (and
2397 _get_def) have been obsoleted by OInspect for a long time, I
2398 _get_def) have been obsoleted by OInspect for a long time, I
2398 hadn't noticed that they were dead code.
2399 hadn't noticed that they were dead code.
2399 (Magic._ofind): restored _ofind functionality for a few literals
2400 (Magic._ofind): restored _ofind functionality for a few literals
2400 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2401 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2401 for things like "hello".capitalize?, since that would require a
2402 for things like "hello".capitalize?, since that would require a
2402 potentially dangerous eval() again.
2403 potentially dangerous eval() again.
2403
2404
2404 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2405 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2405 logic a bit more to clean up the escapes handling and minimize the
2406 logic a bit more to clean up the escapes handling and minimize the
2406 use of _ofind to only necessary cases. The interactive 'feel' of
2407 use of _ofind to only necessary cases. The interactive 'feel' of
2407 IPython should have improved quite a bit with the changes in
2408 IPython should have improved quite a bit with the changes in
2408 _prefilter and _ofind (besides being far safer than before).
2409 _prefilter and _ofind (besides being far safer than before).
2409
2410
2410 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2411 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2411 obscure, never reported). Edit would fail to find the object to
2412 obscure, never reported). Edit would fail to find the object to
2412 edit under some circumstances.
2413 edit under some circumstances.
2413 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2414 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2414 which were causing double-calling of generators. Those eval calls
2415 which were causing double-calling of generators. Those eval calls
2415 were _very_ dangerous, since code with side effects could be
2416 were _very_ dangerous, since code with side effects could be
2416 triggered. As they say, 'eval is evil'... These were the
2417 triggered. As they say, 'eval is evil'... These were the
2417 nastiest evals in IPython. Besides, _ofind is now far simpler,
2418 nastiest evals in IPython. Besides, _ofind is now far simpler,
2418 and it should also be quite a bit faster. Its use of inspect is
2419 and it should also be quite a bit faster. Its use of inspect is
2419 also safer, so perhaps some of the inspect-related crashes I've
2420 also safer, so perhaps some of the inspect-related crashes I've
2420 seen lately with Python 2.3 might be taken care of. That will
2421 seen lately with Python 2.3 might be taken care of. That will
2421 need more testing.
2422 need more testing.
2422
2423
2423 2003-08-17 Fernando Perez <fperez@colorado.edu>
2424 2003-08-17 Fernando Perez <fperez@colorado.edu>
2424
2425
2425 * IPython/iplib.py (InteractiveShell._prefilter): significant
2426 * IPython/iplib.py (InteractiveShell._prefilter): significant
2426 simplifications to the logic for handling user escapes. Faster
2427 simplifications to the logic for handling user escapes. Faster
2427 and simpler code.
2428 and simpler code.
2428
2429
2429 2003-08-14 Fernando Perez <fperez@colorado.edu>
2430 2003-08-14 Fernando Perez <fperez@colorado.edu>
2430
2431
2431 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2432 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2432 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2433 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2433 but it should be quite a bit faster. And the recursive version
2434 but it should be quite a bit faster. And the recursive version
2434 generated O(log N) intermediate storage for all rank>1 arrays,
2435 generated O(log N) intermediate storage for all rank>1 arrays,
2435 even if they were contiguous.
2436 even if they were contiguous.
2436 (l1norm): Added this function.
2437 (l1norm): Added this function.
2437 (norm): Added this function for arbitrary norms (including
2438 (norm): Added this function for arbitrary norms (including
2438 l-infinity). l1 and l2 are still special cases for convenience
2439 l-infinity). l1 and l2 are still special cases for convenience
2439 and speed.
2440 and speed.
2440
2441
2441 2003-08-03 Fernando Perez <fperez@colorado.edu>
2442 2003-08-03 Fernando Perez <fperez@colorado.edu>
2442
2443
2443 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2444 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2444 exceptions, which now raise PendingDeprecationWarnings in Python
2445 exceptions, which now raise PendingDeprecationWarnings in Python
2445 2.3. There were some in Magic and some in Gnuplot2.
2446 2.3. There were some in Magic and some in Gnuplot2.
2446
2447
2447 2003-06-30 Fernando Perez <fperez@colorado.edu>
2448 2003-06-30 Fernando Perez <fperez@colorado.edu>
2448
2449
2449 * IPython/genutils.py (page): modified to call curses only for
2450 * IPython/genutils.py (page): modified to call curses only for
2450 terminals where TERM=='xterm'. After problems under many other
2451 terminals where TERM=='xterm'. After problems under many other
2451 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2452 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2452
2453
2453 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2454 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2454 would be triggered when readline was absent. This was just an old
2455 would be triggered when readline was absent. This was just an old
2455 debugging statement I'd forgotten to take out.
2456 debugging statement I'd forgotten to take out.
2456
2457
2457 2003-06-20 Fernando Perez <fperez@colorado.edu>
2458 2003-06-20 Fernando Perez <fperez@colorado.edu>
2458
2459
2459 * IPython/genutils.py (clock): modified to return only user time
2460 * IPython/genutils.py (clock): modified to return only user time
2460 (not counting system time), after a discussion on scipy. While
2461 (not counting system time), after a discussion on scipy. While
2461 system time may be a useful quantity occasionally, it may much
2462 system time may be a useful quantity occasionally, it may much
2462 more easily be skewed by occasional swapping or other similar
2463 more easily be skewed by occasional swapping or other similar
2463 activity.
2464 activity.
2464
2465
2465 2003-06-05 Fernando Perez <fperez@colorado.edu>
2466 2003-06-05 Fernando Perez <fperez@colorado.edu>
2466
2467
2467 * IPython/numutils.py (identity): new function, for building
2468 * IPython/numutils.py (identity): new function, for building
2468 arbitrary rank Kronecker deltas (mostly backwards compatible with
2469 arbitrary rank Kronecker deltas (mostly backwards compatible with
2469 Numeric.identity)
2470 Numeric.identity)
2470
2471
2471 2003-06-03 Fernando Perez <fperez@colorado.edu>
2472 2003-06-03 Fernando Perez <fperez@colorado.edu>
2472
2473
2473 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2474 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2474 arguments passed to magics with spaces, to allow trailing '\' to
2475 arguments passed to magics with spaces, to allow trailing '\' to
2475 work normally (mainly for Windows users).
2476 work normally (mainly for Windows users).
2476
2477
2477 2003-05-29 Fernando Perez <fperez@colorado.edu>
2478 2003-05-29 Fernando Perez <fperez@colorado.edu>
2478
2479
2479 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2480 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2480 instead of pydoc.help. This fixes a bizarre behavior where
2481 instead of pydoc.help. This fixes a bizarre behavior where
2481 printing '%s' % locals() would trigger the help system. Now
2482 printing '%s' % locals() would trigger the help system. Now
2482 ipython behaves like normal python does.
2483 ipython behaves like normal python does.
2483
2484
2484 Note that if one does 'from pydoc import help', the bizarre
2485 Note that if one does 'from pydoc import help', the bizarre
2485 behavior returns, but this will also happen in normal python, so
2486 behavior returns, but this will also happen in normal python, so
2486 it's not an ipython bug anymore (it has to do with how pydoc.help
2487 it's not an ipython bug anymore (it has to do with how pydoc.help
2487 is implemented).
2488 is implemented).
2488
2489
2489 2003-05-22 Fernando Perez <fperez@colorado.edu>
2490 2003-05-22 Fernando Perez <fperez@colorado.edu>
2490
2491
2491 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2492 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2492 return [] instead of None when nothing matches, also match to end
2493 return [] instead of None when nothing matches, also match to end
2493 of line. Patch by Gary Bishop.
2494 of line. Patch by Gary Bishop.
2494
2495
2495 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2496 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2496 protection as before, for files passed on the command line. This
2497 protection as before, for files passed on the command line. This
2497 prevents the CrashHandler from kicking in if user files call into
2498 prevents the CrashHandler from kicking in if user files call into
2498 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2499 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2499 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2500 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2500
2501
2501 2003-05-20 *** Released version 0.4.0
2502 2003-05-20 *** Released version 0.4.0
2502
2503
2503 2003-05-20 Fernando Perez <fperez@colorado.edu>
2504 2003-05-20 Fernando Perez <fperez@colorado.edu>
2504
2505
2505 * setup.py: added support for manpages. It's a bit hackish b/c of
2506 * setup.py: added support for manpages. It's a bit hackish b/c of
2506 a bug in the way the bdist_rpm distutils target handles gzipped
2507 a bug in the way the bdist_rpm distutils target handles gzipped
2507 manpages, but it works. After a patch by Jack.
2508 manpages, but it works. After a patch by Jack.
2508
2509
2509 2003-05-19 Fernando Perez <fperez@colorado.edu>
2510 2003-05-19 Fernando Perez <fperez@colorado.edu>
2510
2511
2511 * IPython/numutils.py: added a mockup of the kinds module, since
2512 * IPython/numutils.py: added a mockup of the kinds module, since
2512 it was recently removed from Numeric. This way, numutils will
2513 it was recently removed from Numeric. This way, numutils will
2513 work for all users even if they are missing kinds.
2514 work for all users even if they are missing kinds.
2514
2515
2515 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2516 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2516 failure, which can occur with SWIG-wrapped extensions. After a
2517 failure, which can occur with SWIG-wrapped extensions. After a
2517 crash report from Prabhu.
2518 crash report from Prabhu.
2518
2519
2519 2003-05-16 Fernando Perez <fperez@colorado.edu>
2520 2003-05-16 Fernando Perez <fperez@colorado.edu>
2520
2521
2521 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2522 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2522 protect ipython from user code which may call directly
2523 protect ipython from user code which may call directly
2523 sys.excepthook (this looks like an ipython crash to the user, even
2524 sys.excepthook (this looks like an ipython crash to the user, even
2524 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2525 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2525 This is especially important to help users of WxWindows, but may
2526 This is especially important to help users of WxWindows, but may
2526 also be useful in other cases.
2527 also be useful in other cases.
2527
2528
2528 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2529 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2529 an optional tb_offset to be specified, and to preserve exception
2530 an optional tb_offset to be specified, and to preserve exception
2530 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2531 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2531
2532
2532 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2533 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2533
2534
2534 2003-05-15 Fernando Perez <fperez@colorado.edu>
2535 2003-05-15 Fernando Perez <fperez@colorado.edu>
2535
2536
2536 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2537 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2537 installing for a new user under Windows.
2538 installing for a new user under Windows.
2538
2539
2539 2003-05-12 Fernando Perez <fperez@colorado.edu>
2540 2003-05-12 Fernando Perez <fperez@colorado.edu>
2540
2541
2541 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2542 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2542 handler for Emacs comint-based lines. Currently it doesn't do
2543 handler for Emacs comint-based lines. Currently it doesn't do
2543 much (but importantly, it doesn't update the history cache). In
2544 much (but importantly, it doesn't update the history cache). In
2544 the future it may be expanded if Alex needs more functionality
2545 the future it may be expanded if Alex needs more functionality
2545 there.
2546 there.
2546
2547
2547 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2548 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2548 info to crash reports.
2549 info to crash reports.
2549
2550
2550 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2551 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2551 just like Python's -c. Also fixed crash with invalid -color
2552 just like Python's -c. Also fixed crash with invalid -color
2552 option value at startup. Thanks to Will French
2553 option value at startup. Thanks to Will French
2553 <wfrench-AT-bestweb.net> for the bug report.
2554 <wfrench-AT-bestweb.net> for the bug report.
2554
2555
2555 2003-05-09 Fernando Perez <fperez@colorado.edu>
2556 2003-05-09 Fernando Perez <fperez@colorado.edu>
2556
2557
2557 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2558 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2558 to EvalDict (it's a mapping, after all) and simplified its code
2559 to EvalDict (it's a mapping, after all) and simplified its code
2559 quite a bit, after a nice discussion on c.l.py where Gustavo
2560 quite a bit, after a nice discussion on c.l.py where Gustavo
2560 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2561 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2561
2562
2562 2003-04-30 Fernando Perez <fperez@colorado.edu>
2563 2003-04-30 Fernando Perez <fperez@colorado.edu>
2563
2564
2564 * IPython/genutils.py (timings_out): modified it to reduce its
2565 * IPython/genutils.py (timings_out): modified it to reduce its
2565 overhead in the common reps==1 case.
2566 overhead in the common reps==1 case.
2566
2567
2567 2003-04-29 Fernando Perez <fperez@colorado.edu>
2568 2003-04-29 Fernando Perez <fperez@colorado.edu>
2568
2569
2569 * IPython/genutils.py (timings_out): Modified to use the resource
2570 * IPython/genutils.py (timings_out): Modified to use the resource
2570 module, which avoids the wraparound problems of time.clock().
2571 module, which avoids the wraparound problems of time.clock().
2571
2572
2572 2003-04-17 *** Released version 0.2.15pre4
2573 2003-04-17 *** Released version 0.2.15pre4
2573
2574
2574 2003-04-17 Fernando Perez <fperez@colorado.edu>
2575 2003-04-17 Fernando Perez <fperez@colorado.edu>
2575
2576
2576 * setup.py (scriptfiles): Split windows-specific stuff over to a
2577 * setup.py (scriptfiles): Split windows-specific stuff over to a
2577 separate file, in an attempt to have a Windows GUI installer.
2578 separate file, in an attempt to have a Windows GUI installer.
2578 That didn't work, but part of the groundwork is done.
2579 That didn't work, but part of the groundwork is done.
2579
2580
2580 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2581 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2581 indent/unindent with 4 spaces. Particularly useful in combination
2582 indent/unindent with 4 spaces. Particularly useful in combination
2582 with the new auto-indent option.
2583 with the new auto-indent option.
2583
2584
2584 2003-04-16 Fernando Perez <fperez@colorado.edu>
2585 2003-04-16 Fernando Perez <fperez@colorado.edu>
2585
2586
2586 * IPython/Magic.py: various replacements of self.rc for
2587 * IPython/Magic.py: various replacements of self.rc for
2587 self.shell.rc. A lot more remains to be done to fully disentangle
2588 self.shell.rc. A lot more remains to be done to fully disentangle
2588 this class from the main Shell class.
2589 this class from the main Shell class.
2589
2590
2590 * IPython/GnuplotRuntime.py: added checks for mouse support so
2591 * IPython/GnuplotRuntime.py: added checks for mouse support so
2591 that we don't try to enable it if the current gnuplot doesn't
2592 that we don't try to enable it if the current gnuplot doesn't
2592 really support it. Also added checks so that we don't try to
2593 really support it. Also added checks so that we don't try to
2593 enable persist under Windows (where Gnuplot doesn't recognize the
2594 enable persist under Windows (where Gnuplot doesn't recognize the
2594 option).
2595 option).
2595
2596
2596 * IPython/iplib.py (InteractiveShell.interact): Added optional
2597 * IPython/iplib.py (InteractiveShell.interact): Added optional
2597 auto-indenting code, after a patch by King C. Shu
2598 auto-indenting code, after a patch by King C. Shu
2598 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2599 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2599 get along well with pasting indented code. If I ever figure out
2600 get along well with pasting indented code. If I ever figure out
2600 how to make that part go well, it will become on by default.
2601 how to make that part go well, it will become on by default.
2601
2602
2602 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2603 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2603 crash ipython if there was an unmatched '%' in the user's prompt
2604 crash ipython if there was an unmatched '%' in the user's prompt
2604 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2605 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2605
2606
2606 * IPython/iplib.py (InteractiveShell.interact): removed the
2607 * IPython/iplib.py (InteractiveShell.interact): removed the
2607 ability to ask the user whether he wants to crash or not at the
2608 ability to ask the user whether he wants to crash or not at the
2608 'last line' exception handler. Calling functions at that point
2609 'last line' exception handler. Calling functions at that point
2609 changes the stack, and the error reports would have incorrect
2610 changes the stack, and the error reports would have incorrect
2610 tracebacks.
2611 tracebacks.
2611
2612
2612 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2613 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2613 pass through a peger a pretty-printed form of any object. After a
2614 pass through a peger a pretty-printed form of any object. After a
2614 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2615 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2615
2616
2616 2003-04-14 Fernando Perez <fperez@colorado.edu>
2617 2003-04-14 Fernando Perez <fperez@colorado.edu>
2617
2618
2618 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2619 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2619 all files in ~ would be modified at first install (instead of
2620 all files in ~ would be modified at first install (instead of
2620 ~/.ipython). This could be potentially disastrous, as the
2621 ~/.ipython). This could be potentially disastrous, as the
2621 modification (make line-endings native) could damage binary files.
2622 modification (make line-endings native) could damage binary files.
2622
2623
2623 2003-04-10 Fernando Perez <fperez@colorado.edu>
2624 2003-04-10 Fernando Perez <fperez@colorado.edu>
2624
2625
2625 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2626 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2626 handle only lines which are invalid python. This now means that
2627 handle only lines which are invalid python. This now means that
2627 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2628 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2628 for the bug report.
2629 for the bug report.
2629
2630
2630 2003-04-01 Fernando Perez <fperez@colorado.edu>
2631 2003-04-01 Fernando Perez <fperez@colorado.edu>
2631
2632
2632 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2633 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2633 where failing to set sys.last_traceback would crash pdb.pm().
2634 where failing to set sys.last_traceback would crash pdb.pm().
2634 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2635 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2635 report.
2636 report.
2636
2637
2637 2003-03-25 Fernando Perez <fperez@colorado.edu>
2638 2003-03-25 Fernando Perez <fperez@colorado.edu>
2638
2639
2639 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2640 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2640 before printing it (it had a lot of spurious blank lines at the
2641 before printing it (it had a lot of spurious blank lines at the
2641 end).
2642 end).
2642
2643
2643 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2644 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2644 output would be sent 21 times! Obviously people don't use this
2645 output would be sent 21 times! Obviously people don't use this
2645 too often, or I would have heard about it.
2646 too often, or I would have heard about it.
2646
2647
2647 2003-03-24 Fernando Perez <fperez@colorado.edu>
2648 2003-03-24 Fernando Perez <fperez@colorado.edu>
2648
2649
2649 * setup.py (scriptfiles): renamed the data_files parameter from
2650 * setup.py (scriptfiles): renamed the data_files parameter from
2650 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2651 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2651 for the patch.
2652 for the patch.
2652
2653
2653 2003-03-20 Fernando Perez <fperez@colorado.edu>
2654 2003-03-20 Fernando Perez <fperez@colorado.edu>
2654
2655
2655 * IPython/genutils.py (error): added error() and fatal()
2656 * IPython/genutils.py (error): added error() and fatal()
2656 functions.
2657 functions.
2657
2658
2658 2003-03-18 *** Released version 0.2.15pre3
2659 2003-03-18 *** Released version 0.2.15pre3
2659
2660
2660 2003-03-18 Fernando Perez <fperez@colorado.edu>
2661 2003-03-18 Fernando Perez <fperez@colorado.edu>
2661
2662
2662 * setupext/install_data_ext.py
2663 * setupext/install_data_ext.py
2663 (install_data_ext.initialize_options): Class contributed by Jack
2664 (install_data_ext.initialize_options): Class contributed by Jack
2664 Moffit for fixing the old distutils hack. He is sending this to
2665 Moffit for fixing the old distutils hack. He is sending this to
2665 the distutils folks so in the future we may not need it as a
2666 the distutils folks so in the future we may not need it as a
2666 private fix.
2667 private fix.
2667
2668
2668 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2669 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2669 changes for Debian packaging. See his patch for full details.
2670 changes for Debian packaging. See his patch for full details.
2670 The old distutils hack of making the ipythonrc* files carry a
2671 The old distutils hack of making the ipythonrc* files carry a
2671 bogus .py extension is gone, at last. Examples were moved to a
2672 bogus .py extension is gone, at last. Examples were moved to a
2672 separate subdir under doc/, and the separate executable scripts
2673 separate subdir under doc/, and the separate executable scripts
2673 now live in their own directory. Overall a great cleanup. The
2674 now live in their own directory. Overall a great cleanup. The
2674 manual was updated to use the new files, and setup.py has been
2675 manual was updated to use the new files, and setup.py has been
2675 fixed for this setup.
2676 fixed for this setup.
2676
2677
2677 * IPython/PyColorize.py (Parser.usage): made non-executable and
2678 * IPython/PyColorize.py (Parser.usage): made non-executable and
2678 created a pycolor wrapper around it to be included as a script.
2679 created a pycolor wrapper around it to be included as a script.
2679
2680
2680 2003-03-12 *** Released version 0.2.15pre2
2681 2003-03-12 *** Released version 0.2.15pre2
2681
2682
2682 2003-03-12 Fernando Perez <fperez@colorado.edu>
2683 2003-03-12 Fernando Perez <fperez@colorado.edu>
2683
2684
2684 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2685 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2685 long-standing problem with garbage characters in some terminals.
2686 long-standing problem with garbage characters in some terminals.
2686 The issue was really that the \001 and \002 escapes must _only_ be
2687 The issue was really that the \001 and \002 escapes must _only_ be
2687 passed to input prompts (which call readline), but _never_ to
2688 passed to input prompts (which call readline), but _never_ to
2688 normal text to be printed on screen. I changed ColorANSI to have
2689 normal text to be printed on screen. I changed ColorANSI to have
2689 two classes: TermColors and InputTermColors, each with the
2690 two classes: TermColors and InputTermColors, each with the
2690 appropriate escapes for input prompts or normal text. The code in
2691 appropriate escapes for input prompts or normal text. The code in
2691 Prompts.py got slightly more complicated, but this very old and
2692 Prompts.py got slightly more complicated, but this very old and
2692 annoying bug is finally fixed.
2693 annoying bug is finally fixed.
2693
2694
2694 All the credit for nailing down the real origin of this problem
2695 All the credit for nailing down the real origin of this problem
2695 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2696 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2696 *Many* thanks to him for spending quite a bit of effort on this.
2697 *Many* thanks to him for spending quite a bit of effort on this.
2697
2698
2698 2003-03-05 *** Released version 0.2.15pre1
2699 2003-03-05 *** Released version 0.2.15pre1
2699
2700
2700 2003-03-03 Fernando Perez <fperez@colorado.edu>
2701 2003-03-03 Fernando Perez <fperez@colorado.edu>
2701
2702
2702 * IPython/FakeModule.py: Moved the former _FakeModule to a
2703 * IPython/FakeModule.py: Moved the former _FakeModule to a
2703 separate file, because it's also needed by Magic (to fix a similar
2704 separate file, because it's also needed by Magic (to fix a similar
2704 pickle-related issue in @run).
2705 pickle-related issue in @run).
2705
2706
2706 2003-03-02 Fernando Perez <fperez@colorado.edu>
2707 2003-03-02 Fernando Perez <fperez@colorado.edu>
2707
2708
2708 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2709 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2709 the autocall option at runtime.
2710 the autocall option at runtime.
2710 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2711 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2711 across Magic.py to start separating Magic from InteractiveShell.
2712 across Magic.py to start separating Magic from InteractiveShell.
2712 (Magic._ofind): Fixed to return proper namespace for dotted
2713 (Magic._ofind): Fixed to return proper namespace for dotted
2713 names. Before, a dotted name would always return 'not currently
2714 names. Before, a dotted name would always return 'not currently
2714 defined', because it would find the 'parent'. s.x would be found,
2715 defined', because it would find the 'parent'. s.x would be found,
2715 but since 'x' isn't defined by itself, it would get confused.
2716 but since 'x' isn't defined by itself, it would get confused.
2716 (Magic.magic_run): Fixed pickling problems reported by Ralf
2717 (Magic.magic_run): Fixed pickling problems reported by Ralf
2717 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2718 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2718 that I'd used when Mike Heeter reported similar issues at the
2719 that I'd used when Mike Heeter reported similar issues at the
2719 top-level, but now for @run. It boils down to injecting the
2720 top-level, but now for @run. It boils down to injecting the
2720 namespace where code is being executed with something that looks
2721 namespace where code is being executed with something that looks
2721 enough like a module to fool pickle.dump(). Since a pickle stores
2722 enough like a module to fool pickle.dump(). Since a pickle stores
2722 a named reference to the importing module, we need this for
2723 a named reference to the importing module, we need this for
2723 pickles to save something sensible.
2724 pickles to save something sensible.
2724
2725
2725 * IPython/ipmaker.py (make_IPython): added an autocall option.
2726 * IPython/ipmaker.py (make_IPython): added an autocall option.
2726
2727
2727 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2728 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2728 the auto-eval code. Now autocalling is an option, and the code is
2729 the auto-eval code. Now autocalling is an option, and the code is
2729 also vastly safer. There is no more eval() involved at all.
2730 also vastly safer. There is no more eval() involved at all.
2730
2731
2731 2003-03-01 Fernando Perez <fperez@colorado.edu>
2732 2003-03-01 Fernando Perez <fperez@colorado.edu>
2732
2733
2733 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2734 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2734 dict with named keys instead of a tuple.
2735 dict with named keys instead of a tuple.
2735
2736
2736 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2737 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2737
2738
2738 * setup.py (make_shortcut): Fixed message about directories
2739 * setup.py (make_shortcut): Fixed message about directories
2739 created during Windows installation (the directories were ok, just
2740 created during Windows installation (the directories were ok, just
2740 the printed message was misleading). Thanks to Chris Liechti
2741 the printed message was misleading). Thanks to Chris Liechti
2741 <cliechti-AT-gmx.net> for the heads up.
2742 <cliechti-AT-gmx.net> for the heads up.
2742
2743
2743 2003-02-21 Fernando Perez <fperez@colorado.edu>
2744 2003-02-21 Fernando Perez <fperez@colorado.edu>
2744
2745
2745 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2746 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2746 of ValueError exception when checking for auto-execution. This
2747 of ValueError exception when checking for auto-execution. This
2747 one is raised by things like Numeric arrays arr.flat when the
2748 one is raised by things like Numeric arrays arr.flat when the
2748 array is non-contiguous.
2749 array is non-contiguous.
2749
2750
2750 2003-01-31 Fernando Perez <fperez@colorado.edu>
2751 2003-01-31 Fernando Perez <fperez@colorado.edu>
2751
2752
2752 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2753 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2753 not return any value at all (even though the command would get
2754 not return any value at all (even though the command would get
2754 executed).
2755 executed).
2755 (xsys): Flush stdout right after printing the command to ensure
2756 (xsys): Flush stdout right after printing the command to ensure
2756 proper ordering of commands and command output in the total
2757 proper ordering of commands and command output in the total
2757 output.
2758 output.
2758 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2759 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2759 system/getoutput as defaults. The old ones are kept for
2760 system/getoutput as defaults. The old ones are kept for
2760 compatibility reasons, so no code which uses this library needs
2761 compatibility reasons, so no code which uses this library needs
2761 changing.
2762 changing.
2762
2763
2763 2003-01-27 *** Released version 0.2.14
2764 2003-01-27 *** Released version 0.2.14
2764
2765
2765 2003-01-25 Fernando Perez <fperez@colorado.edu>
2766 2003-01-25 Fernando Perez <fperez@colorado.edu>
2766
2767
2767 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2768 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2768 functions defined in previous edit sessions could not be re-edited
2769 functions defined in previous edit sessions could not be re-edited
2769 (because the temp files were immediately removed). Now temp files
2770 (because the temp files were immediately removed). Now temp files
2770 are removed only at IPython's exit.
2771 are removed only at IPython's exit.
2771 (Magic.magic_run): Improved @run to perform shell-like expansions
2772 (Magic.magic_run): Improved @run to perform shell-like expansions
2772 on its arguments (~users and $VARS). With this, @run becomes more
2773 on its arguments (~users and $VARS). With this, @run becomes more
2773 like a normal command-line.
2774 like a normal command-line.
2774
2775
2775 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2776 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2776 bugs related to embedding and cleaned up that code. A fairly
2777 bugs related to embedding and cleaned up that code. A fairly
2777 important one was the impossibility to access the global namespace
2778 important one was the impossibility to access the global namespace
2778 through the embedded IPython (only local variables were visible).
2779 through the embedded IPython (only local variables were visible).
2779
2780
2780 2003-01-14 Fernando Perez <fperez@colorado.edu>
2781 2003-01-14 Fernando Perez <fperez@colorado.edu>
2781
2782
2782 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2783 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2783 auto-calling to be a bit more conservative. Now it doesn't get
2784 auto-calling to be a bit more conservative. Now it doesn't get
2784 triggered if any of '!=()<>' are in the rest of the input line, to
2785 triggered if any of '!=()<>' are in the rest of the input line, to
2785 allow comparing callables. Thanks to Alex for the heads up.
2786 allow comparing callables. Thanks to Alex for the heads up.
2786
2787
2787 2003-01-07 Fernando Perez <fperez@colorado.edu>
2788 2003-01-07 Fernando Perez <fperez@colorado.edu>
2788
2789
2789 * IPython/genutils.py (page): fixed estimation of the number of
2790 * IPython/genutils.py (page): fixed estimation of the number of
2790 lines in a string to be paged to simply count newlines. This
2791 lines in a string to be paged to simply count newlines. This
2791 prevents over-guessing due to embedded escape sequences. A better
2792 prevents over-guessing due to embedded escape sequences. A better
2792 long-term solution would involve stripping out the control chars
2793 long-term solution would involve stripping out the control chars
2793 for the count, but it's potentially so expensive I just don't
2794 for the count, but it's potentially so expensive I just don't
2794 think it's worth doing.
2795 think it's worth doing.
2795
2796
2796 2002-12-19 *** Released version 0.2.14pre50
2797 2002-12-19 *** Released version 0.2.14pre50
2797
2798
2798 2002-12-19 Fernando Perez <fperez@colorado.edu>
2799 2002-12-19 Fernando Perez <fperez@colorado.edu>
2799
2800
2800 * tools/release (version): Changed release scripts to inform
2801 * tools/release (version): Changed release scripts to inform
2801 Andrea and build a NEWS file with a list of recent changes.
2802 Andrea and build a NEWS file with a list of recent changes.
2802
2803
2803 * IPython/ColorANSI.py (__all__): changed terminal detection
2804 * IPython/ColorANSI.py (__all__): changed terminal detection
2804 code. Seems to work better for xterms without breaking
2805 code. Seems to work better for xterms without breaking
2805 konsole. Will need more testing to determine if WinXP and Mac OSX
2806 konsole. Will need more testing to determine if WinXP and Mac OSX
2806 also work ok.
2807 also work ok.
2807
2808
2808 2002-12-18 *** Released version 0.2.14pre49
2809 2002-12-18 *** Released version 0.2.14pre49
2809
2810
2810 2002-12-18 Fernando Perez <fperez@colorado.edu>
2811 2002-12-18 Fernando Perez <fperez@colorado.edu>
2811
2812
2812 * Docs: added new info about Mac OSX, from Andrea.
2813 * Docs: added new info about Mac OSX, from Andrea.
2813
2814
2814 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2815 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2815 allow direct plotting of python strings whose format is the same
2816 allow direct plotting of python strings whose format is the same
2816 of gnuplot data files.
2817 of gnuplot data files.
2817
2818
2818 2002-12-16 Fernando Perez <fperez@colorado.edu>
2819 2002-12-16 Fernando Perez <fperez@colorado.edu>
2819
2820
2820 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2821 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2821 value of exit question to be acknowledged.
2822 value of exit question to be acknowledged.
2822
2823
2823 2002-12-03 Fernando Perez <fperez@colorado.edu>
2824 2002-12-03 Fernando Perez <fperez@colorado.edu>
2824
2825
2825 * IPython/ipmaker.py: removed generators, which had been added
2826 * IPython/ipmaker.py: removed generators, which had been added
2826 by mistake in an earlier debugging run. This was causing trouble
2827 by mistake in an earlier debugging run. This was causing trouble
2827 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2828 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2828 for pointing this out.
2829 for pointing this out.
2829
2830
2830 2002-11-17 Fernando Perez <fperez@colorado.edu>
2831 2002-11-17 Fernando Perez <fperez@colorado.edu>
2831
2832
2832 * Manual: updated the Gnuplot section.
2833 * Manual: updated the Gnuplot section.
2833
2834
2834 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2835 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2835 a much better split of what goes in Runtime and what goes in
2836 a much better split of what goes in Runtime and what goes in
2836 Interactive.
2837 Interactive.
2837
2838
2838 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2839 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2839 being imported from iplib.
2840 being imported from iplib.
2840
2841
2841 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2842 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2842 for command-passing. Now the global Gnuplot instance is called
2843 for command-passing. Now the global Gnuplot instance is called
2843 'gp' instead of 'g', which was really a far too fragile and
2844 'gp' instead of 'g', which was really a far too fragile and
2844 common name.
2845 common name.
2845
2846
2846 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2847 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2847 bounding boxes generated by Gnuplot for square plots.
2848 bounding boxes generated by Gnuplot for square plots.
2848
2849
2849 * IPython/genutils.py (popkey): new function added. I should
2850 * IPython/genutils.py (popkey): new function added. I should
2850 suggest this on c.l.py as a dict method, it seems useful.
2851 suggest this on c.l.py as a dict method, it seems useful.
2851
2852
2852 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2853 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2853 to transparently handle PostScript generation. MUCH better than
2854 to transparently handle PostScript generation. MUCH better than
2854 the previous plot_eps/replot_eps (which I removed now). The code
2855 the previous plot_eps/replot_eps (which I removed now). The code
2855 is also fairly clean and well documented now (including
2856 is also fairly clean and well documented now (including
2856 docstrings).
2857 docstrings).
2857
2858
2858 2002-11-13 Fernando Perez <fperez@colorado.edu>
2859 2002-11-13 Fernando Perez <fperez@colorado.edu>
2859
2860
2860 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2861 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2861 (inconsistent with options).
2862 (inconsistent with options).
2862
2863
2863 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2864 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2864 manually disabled, I don't know why. Fixed it.
2865 manually disabled, I don't know why. Fixed it.
2865 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2866 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2866 eps output.
2867 eps output.
2867
2868
2868 2002-11-12 Fernando Perez <fperez@colorado.edu>
2869 2002-11-12 Fernando Perez <fperez@colorado.edu>
2869
2870
2870 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2871 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2871 don't propagate up to caller. Fixes crash reported by François
2872 don't propagate up to caller. Fixes crash reported by François
2872 Pinard.
2873 Pinard.
2873
2874
2874 2002-11-09 Fernando Perez <fperez@colorado.edu>
2875 2002-11-09 Fernando Perez <fperez@colorado.edu>
2875
2876
2876 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2877 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2877 history file for new users.
2878 history file for new users.
2878 (make_IPython): fixed bug where initial install would leave the
2879 (make_IPython): fixed bug where initial install would leave the
2879 user running in the .ipython dir.
2880 user running in the .ipython dir.
2880 (make_IPython): fixed bug where config dir .ipython would be
2881 (make_IPython): fixed bug where config dir .ipython would be
2881 created regardless of the given -ipythondir option. Thanks to Cory
2882 created regardless of the given -ipythondir option. Thanks to Cory
2882 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2883 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2883
2884
2884 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2885 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2885 type confirmations. Will need to use it in all of IPython's code
2886 type confirmations. Will need to use it in all of IPython's code
2886 consistently.
2887 consistently.
2887
2888
2888 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2889 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2889 context to print 31 lines instead of the default 5. This will make
2890 context to print 31 lines instead of the default 5. This will make
2890 the crash reports extremely detailed in case the problem is in
2891 the crash reports extremely detailed in case the problem is in
2891 libraries I don't have access to.
2892 libraries I don't have access to.
2892
2893
2893 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2894 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2894 line of defense' code to still crash, but giving users fair
2895 line of defense' code to still crash, but giving users fair
2895 warning. I don't want internal errors to go unreported: if there's
2896 warning. I don't want internal errors to go unreported: if there's
2896 an internal problem, IPython should crash and generate a full
2897 an internal problem, IPython should crash and generate a full
2897 report.
2898 report.
2898
2899
2899 2002-11-08 Fernando Perez <fperez@colorado.edu>
2900 2002-11-08 Fernando Perez <fperez@colorado.edu>
2900
2901
2901 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2902 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2902 otherwise uncaught exceptions which can appear if people set
2903 otherwise uncaught exceptions which can appear if people set
2903 sys.stdout to something badly broken. Thanks to a crash report
2904 sys.stdout to something badly broken. Thanks to a crash report
2904 from henni-AT-mail.brainbot.com.
2905 from henni-AT-mail.brainbot.com.
2905
2906
2906 2002-11-04 Fernando Perez <fperez@colorado.edu>
2907 2002-11-04 Fernando Perez <fperez@colorado.edu>
2907
2908
2908 * IPython/iplib.py (InteractiveShell.interact): added
2909 * IPython/iplib.py (InteractiveShell.interact): added
2909 __IPYTHON__active to the builtins. It's a flag which goes on when
2910 __IPYTHON__active to the builtins. It's a flag which goes on when
2910 the interaction starts and goes off again when it stops. This
2911 the interaction starts and goes off again when it stops. This
2911 allows embedding code to detect being inside IPython. Before this
2912 allows embedding code to detect being inside IPython. Before this
2912 was done via __IPYTHON__, but that only shows that an IPython
2913 was done via __IPYTHON__, but that only shows that an IPython
2913 instance has been created.
2914 instance has been created.
2914
2915
2915 * IPython/Magic.py (Magic.magic_env): I realized that in a
2916 * IPython/Magic.py (Magic.magic_env): I realized that in a
2916 UserDict, instance.data holds the data as a normal dict. So I
2917 UserDict, instance.data holds the data as a normal dict. So I
2917 modified @env to return os.environ.data instead of rebuilding a
2918 modified @env to return os.environ.data instead of rebuilding a
2918 dict by hand.
2919 dict by hand.
2919
2920
2920 2002-11-02 Fernando Perez <fperez@colorado.edu>
2921 2002-11-02 Fernando Perez <fperez@colorado.edu>
2921
2922
2922 * IPython/genutils.py (warn): changed so that level 1 prints no
2923 * IPython/genutils.py (warn): changed so that level 1 prints no
2923 header. Level 2 is now the default (with 'WARNING' header, as
2924 header. Level 2 is now the default (with 'WARNING' header, as
2924 before). I think I tracked all places where changes were needed in
2925 before). I think I tracked all places where changes were needed in
2925 IPython, but outside code using the old level numbering may have
2926 IPython, but outside code using the old level numbering may have
2926 broken.
2927 broken.
2927
2928
2928 * IPython/iplib.py (InteractiveShell.runcode): added this to
2929 * IPython/iplib.py (InteractiveShell.runcode): added this to
2929 handle the tracebacks in SystemExit traps correctly. The previous
2930 handle the tracebacks in SystemExit traps correctly. The previous
2930 code (through interact) was printing more of the stack than
2931 code (through interact) was printing more of the stack than
2931 necessary, showing IPython internal code to the user.
2932 necessary, showing IPython internal code to the user.
2932
2933
2933 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2934 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2934 default. Now that the default at the confirmation prompt is yes,
2935 default. Now that the default at the confirmation prompt is yes,
2935 it's not so intrusive. François' argument that ipython sessions
2936 it's not so intrusive. François' argument that ipython sessions
2936 tend to be complex enough not to lose them from an accidental C-d,
2937 tend to be complex enough not to lose them from an accidental C-d,
2937 is a valid one.
2938 is a valid one.
2938
2939
2939 * IPython/iplib.py (InteractiveShell.interact): added a
2940 * IPython/iplib.py (InteractiveShell.interact): added a
2940 showtraceback() call to the SystemExit trap, and modified the exit
2941 showtraceback() call to the SystemExit trap, and modified the exit
2941 confirmation to have yes as the default.
2942 confirmation to have yes as the default.
2942
2943
2943 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2944 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2944 this file. It's been gone from the code for a long time, this was
2945 this file. It's been gone from the code for a long time, this was
2945 simply leftover junk.
2946 simply leftover junk.
2946
2947
2947 2002-11-01 Fernando Perez <fperez@colorado.edu>
2948 2002-11-01 Fernando Perez <fperez@colorado.edu>
2948
2949
2949 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2950 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2950 added. If set, IPython now traps EOF and asks for
2951 added. If set, IPython now traps EOF and asks for
2951 confirmation. After a request by François Pinard.
2952 confirmation. After a request by François Pinard.
2952
2953
2953 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2954 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2954 of @abort, and with a new (better) mechanism for handling the
2955 of @abort, and with a new (better) mechanism for handling the
2955 exceptions.
2956 exceptions.
2956
2957
2957 2002-10-27 Fernando Perez <fperez@colorado.edu>
2958 2002-10-27 Fernando Perez <fperez@colorado.edu>
2958
2959
2959 * IPython/usage.py (__doc__): updated the --help information and
2960 * IPython/usage.py (__doc__): updated the --help information and
2960 the ipythonrc file to indicate that -log generates
2961 the ipythonrc file to indicate that -log generates
2961 ./ipython.log. Also fixed the corresponding info in @logstart.
2962 ./ipython.log. Also fixed the corresponding info in @logstart.
2962 This and several other fixes in the manuals thanks to reports by
2963 This and several other fixes in the manuals thanks to reports by
2963 François Pinard <pinard-AT-iro.umontreal.ca>.
2964 François Pinard <pinard-AT-iro.umontreal.ca>.
2964
2965
2965 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2966 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2966 refer to @logstart (instead of @log, which doesn't exist).
2967 refer to @logstart (instead of @log, which doesn't exist).
2967
2968
2968 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2969 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2969 AttributeError crash. Thanks to Christopher Armstrong
2970 AttributeError crash. Thanks to Christopher Armstrong
2970 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2971 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2971 introduced recently (in 0.2.14pre37) with the fix to the eval
2972 introduced recently (in 0.2.14pre37) with the fix to the eval
2972 problem mentioned below.
2973 problem mentioned below.
2973
2974
2974 2002-10-17 Fernando Perez <fperez@colorado.edu>
2975 2002-10-17 Fernando Perez <fperez@colorado.edu>
2975
2976
2976 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2977 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2977 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2978 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2978
2979
2979 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2980 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2980 this function to fix a problem reported by Alex Schmolck. He saw
2981 this function to fix a problem reported by Alex Schmolck. He saw
2981 it with list comprehensions and generators, which were getting
2982 it with list comprehensions and generators, which were getting
2982 called twice. The real problem was an 'eval' call in testing for
2983 called twice. The real problem was an 'eval' call in testing for
2983 automagic which was evaluating the input line silently.
2984 automagic which was evaluating the input line silently.
2984
2985
2985 This is a potentially very nasty bug, if the input has side
2986 This is a potentially very nasty bug, if the input has side
2986 effects which must not be repeated. The code is much cleaner now,
2987 effects which must not be repeated. The code is much cleaner now,
2987 without any blanket 'except' left and with a regexp test for
2988 without any blanket 'except' left and with a regexp test for
2988 actual function names.
2989 actual function names.
2989
2990
2990 But an eval remains, which I'm not fully comfortable with. I just
2991 But an eval remains, which I'm not fully comfortable with. I just
2991 don't know how to find out if an expression could be a callable in
2992 don't know how to find out if an expression could be a callable in
2992 the user's namespace without doing an eval on the string. However
2993 the user's namespace without doing an eval on the string. However
2993 that string is now much more strictly checked so that no code
2994 that string is now much more strictly checked so that no code
2994 slips by, so the eval should only happen for things that can
2995 slips by, so the eval should only happen for things that can
2995 really be only function/method names.
2996 really be only function/method names.
2996
2997
2997 2002-10-15 Fernando Perez <fperez@colorado.edu>
2998 2002-10-15 Fernando Perez <fperez@colorado.edu>
2998
2999
2999 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3000 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3000 OSX information to main manual, removed README_Mac_OSX file from
3001 OSX information to main manual, removed README_Mac_OSX file from
3001 distribution. Also updated credits for recent additions.
3002 distribution. Also updated credits for recent additions.
3002
3003
3003 2002-10-10 Fernando Perez <fperez@colorado.edu>
3004 2002-10-10 Fernando Perez <fperez@colorado.edu>
3004
3005
3005 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3006 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3006 terminal-related issues. Many thanks to Andrea Riciputi
3007 terminal-related issues. Many thanks to Andrea Riciputi
3007 <andrea.riciputi-AT-libero.it> for writing it.
3008 <andrea.riciputi-AT-libero.it> for writing it.
3008
3009
3009 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3010 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3010 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3011 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3011
3012
3012 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3013 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3013 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3014 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3014 <syver-en-AT-online.no> who both submitted patches for this problem.
3015 <syver-en-AT-online.no> who both submitted patches for this problem.
3015
3016
3016 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3017 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3017 global embedding to make sure that things don't overwrite user
3018 global embedding to make sure that things don't overwrite user
3018 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3019 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3019
3020
3020 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3021 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3021 compatibility. Thanks to Hayden Callow
3022 compatibility. Thanks to Hayden Callow
3022 <h.callow-AT-elec.canterbury.ac.nz>
3023 <h.callow-AT-elec.canterbury.ac.nz>
3023
3024
3024 2002-10-04 Fernando Perez <fperez@colorado.edu>
3025 2002-10-04 Fernando Perez <fperez@colorado.edu>
3025
3026
3026 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3027 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3027 Gnuplot.File objects.
3028 Gnuplot.File objects.
3028
3029
3029 2002-07-23 Fernando Perez <fperez@colorado.edu>
3030 2002-07-23 Fernando Perez <fperez@colorado.edu>
3030
3031
3031 * IPython/genutils.py (timing): Added timings() and timing() for
3032 * IPython/genutils.py (timing): Added timings() and timing() for
3032 quick access to the most commonly needed data, the execution
3033 quick access to the most commonly needed data, the execution
3033 times. Old timing() renamed to timings_out().
3034 times. Old timing() renamed to timings_out().
3034
3035
3035 2002-07-18 Fernando Perez <fperez@colorado.edu>
3036 2002-07-18 Fernando Perez <fperez@colorado.edu>
3036
3037
3037 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3038 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3038 bug with nested instances disrupting the parent's tab completion.
3039 bug with nested instances disrupting the parent's tab completion.
3039
3040
3040 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3041 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3041 all_completions code to begin the emacs integration.
3042 all_completions code to begin the emacs integration.
3042
3043
3043 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3044 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3044 argument to allow titling individual arrays when plotting.
3045 argument to allow titling individual arrays when plotting.
3045
3046
3046 2002-07-15 Fernando Perez <fperez@colorado.edu>
3047 2002-07-15 Fernando Perez <fperez@colorado.edu>
3047
3048
3048 * setup.py (make_shortcut): changed to retrieve the value of
3049 * setup.py (make_shortcut): changed to retrieve the value of
3049 'Program Files' directory from the registry (this value changes in
3050 'Program Files' directory from the registry (this value changes in
3050 non-english versions of Windows). Thanks to Thomas Fanslau
3051 non-english versions of Windows). Thanks to Thomas Fanslau
3051 <tfanslau-AT-gmx.de> for the report.
3052 <tfanslau-AT-gmx.de> for the report.
3052
3053
3053 2002-07-10 Fernando Perez <fperez@colorado.edu>
3054 2002-07-10 Fernando Perez <fperez@colorado.edu>
3054
3055
3055 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3056 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3056 a bug in pdb, which crashes if a line with only whitespace is
3057 a bug in pdb, which crashes if a line with only whitespace is
3057 entered. Bug report submitted to sourceforge.
3058 entered. Bug report submitted to sourceforge.
3058
3059
3059 2002-07-09 Fernando Perez <fperez@colorado.edu>
3060 2002-07-09 Fernando Perez <fperez@colorado.edu>
3060
3061
3061 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3062 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3062 reporting exceptions (it's a bug in inspect.py, I just set a
3063 reporting exceptions (it's a bug in inspect.py, I just set a
3063 workaround).
3064 workaround).
3064
3065
3065 2002-07-08 Fernando Perez <fperez@colorado.edu>
3066 2002-07-08 Fernando Perez <fperez@colorado.edu>
3066
3067
3067 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3068 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3068 __IPYTHON__ in __builtins__ to show up in user_ns.
3069 __IPYTHON__ in __builtins__ to show up in user_ns.
3069
3070
3070 2002-07-03 Fernando Perez <fperez@colorado.edu>
3071 2002-07-03 Fernando Perez <fperez@colorado.edu>
3071
3072
3072 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3073 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3073 name from @gp_set_instance to @gp_set_default.
3074 name from @gp_set_instance to @gp_set_default.
3074
3075
3075 * IPython/ipmaker.py (make_IPython): default editor value set to
3076 * IPython/ipmaker.py (make_IPython): default editor value set to
3076 '0' (a string), to match the rc file. Otherwise will crash when
3077 '0' (a string), to match the rc file. Otherwise will crash when
3077 .strip() is called on it.
3078 .strip() is called on it.
3078
3079
3079
3080
3080 2002-06-28 Fernando Perez <fperez@colorado.edu>
3081 2002-06-28 Fernando Perez <fperez@colorado.edu>
3081
3082
3082 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3083 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3083 of files in current directory when a file is executed via
3084 of files in current directory when a file is executed via
3084 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3085 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3085
3086
3086 * setup.py (manfiles): fix for rpm builds, submitted by RA
3087 * setup.py (manfiles): fix for rpm builds, submitted by RA
3087 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3088 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3088
3089
3089 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3090 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3090 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3091 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3091 string!). A. Schmolck caught this one.
3092 string!). A. Schmolck caught this one.
3092
3093
3093 2002-06-27 Fernando Perez <fperez@colorado.edu>
3094 2002-06-27 Fernando Perez <fperez@colorado.edu>
3094
3095
3095 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3096 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3096 defined files at the cmd line. __name__ wasn't being set to
3097 defined files at the cmd line. __name__ wasn't being set to
3097 __main__.
3098 __main__.
3098
3099
3099 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3100 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3100 regular lists and tuples besides Numeric arrays.
3101 regular lists and tuples besides Numeric arrays.
3101
3102
3102 * IPython/Prompts.py (CachedOutput.__call__): Added output
3103 * IPython/Prompts.py (CachedOutput.__call__): Added output
3103 supression for input ending with ';'. Similar to Mathematica and
3104 supression for input ending with ';'. Similar to Mathematica and
3104 Matlab. The _* vars and Out[] list are still updated, just like
3105 Matlab. The _* vars and Out[] list are still updated, just like
3105 Mathematica behaves.
3106 Mathematica behaves.
3106
3107
3107 2002-06-25 Fernando Perez <fperez@colorado.edu>
3108 2002-06-25 Fernando Perez <fperez@colorado.edu>
3108
3109
3109 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3110 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3110 .ini extensions for profiels under Windows.
3111 .ini extensions for profiels under Windows.
3111
3112
3112 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3113 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3113 string form. Fix contributed by Alexander Schmolck
3114 string form. Fix contributed by Alexander Schmolck
3114 <a.schmolck-AT-gmx.net>
3115 <a.schmolck-AT-gmx.net>
3115
3116
3116 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3117 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3117 pre-configured Gnuplot instance.
3118 pre-configured Gnuplot instance.
3118
3119
3119 2002-06-21 Fernando Perez <fperez@colorado.edu>
3120 2002-06-21 Fernando Perez <fperez@colorado.edu>
3120
3121
3121 * IPython/numutils.py (exp_safe): new function, works around the
3122 * IPython/numutils.py (exp_safe): new function, works around the
3122 underflow problems in Numeric.
3123 underflow problems in Numeric.
3123 (log2): New fn. Safe log in base 2: returns exact integer answer
3124 (log2): New fn. Safe log in base 2: returns exact integer answer
3124 for exact integer powers of 2.
3125 for exact integer powers of 2.
3125
3126
3126 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3127 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3127 properly.
3128 properly.
3128
3129
3129 2002-06-20 Fernando Perez <fperez@colorado.edu>
3130 2002-06-20 Fernando Perez <fperez@colorado.edu>
3130
3131
3131 * IPython/genutils.py (timing): new function like
3132 * IPython/genutils.py (timing): new function like
3132 Mathematica's. Similar to time_test, but returns more info.
3133 Mathematica's. Similar to time_test, but returns more info.
3133
3134
3134 2002-06-18 Fernando Perez <fperez@colorado.edu>
3135 2002-06-18 Fernando Perez <fperez@colorado.edu>
3135
3136
3136 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3137 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3137 according to Mike Heeter's suggestions.
3138 according to Mike Heeter's suggestions.
3138
3139
3139 2002-06-16 Fernando Perez <fperez@colorado.edu>
3140 2002-06-16 Fernando Perez <fperez@colorado.edu>
3140
3141
3141 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3142 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3142 system. GnuplotMagic is gone as a user-directory option. New files
3143 system. GnuplotMagic is gone as a user-directory option. New files
3143 make it easier to use all the gnuplot stuff both from external
3144 make it easier to use all the gnuplot stuff both from external
3144 programs as well as from IPython. Had to rewrite part of
3145 programs as well as from IPython. Had to rewrite part of
3145 hardcopy() b/c of a strange bug: often the ps files simply don't
3146 hardcopy() b/c of a strange bug: often the ps files simply don't
3146 get created, and require a repeat of the command (often several
3147 get created, and require a repeat of the command (often several
3147 times).
3148 times).
3148
3149
3149 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3150 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3150 resolve output channel at call time, so that if sys.stderr has
3151 resolve output channel at call time, so that if sys.stderr has
3151 been redirected by user this gets honored.
3152 been redirected by user this gets honored.
3152
3153
3153 2002-06-13 Fernando Perez <fperez@colorado.edu>
3154 2002-06-13 Fernando Perez <fperez@colorado.edu>
3154
3155
3155 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3156 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3156 IPShell. Kept a copy with the old names to avoid breaking people's
3157 IPShell. Kept a copy with the old names to avoid breaking people's
3157 embedded code.
3158 embedded code.
3158
3159
3159 * IPython/ipython: simplified it to the bare minimum after
3160 * IPython/ipython: simplified it to the bare minimum after
3160 Holger's suggestions. Added info about how to use it in
3161 Holger's suggestions. Added info about how to use it in
3161 PYTHONSTARTUP.
3162 PYTHONSTARTUP.
3162
3163
3163 * IPython/Shell.py (IPythonShell): changed the options passing
3164 * IPython/Shell.py (IPythonShell): changed the options passing
3164 from a string with funky %s replacements to a straight list. Maybe
3165 from a string with funky %s replacements to a straight list. Maybe
3165 a bit more typing, but it follows sys.argv conventions, so there's
3166 a bit more typing, but it follows sys.argv conventions, so there's
3166 less special-casing to remember.
3167 less special-casing to remember.
3167
3168
3168 2002-06-12 Fernando Perez <fperez@colorado.edu>
3169 2002-06-12 Fernando Perez <fperez@colorado.edu>
3169
3170
3170 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3171 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3171 command. Thanks to a suggestion by Mike Heeter.
3172 command. Thanks to a suggestion by Mike Heeter.
3172 (Magic.magic_pfile): added behavior to look at filenames if given
3173 (Magic.magic_pfile): added behavior to look at filenames if given
3173 arg is not a defined object.
3174 arg is not a defined object.
3174 (Magic.magic_save): New @save function to save code snippets. Also
3175 (Magic.magic_save): New @save function to save code snippets. Also
3175 a Mike Heeter idea.
3176 a Mike Heeter idea.
3176
3177
3177 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3178 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3178 plot() and replot(). Much more convenient now, especially for
3179 plot() and replot(). Much more convenient now, especially for
3179 interactive use.
3180 interactive use.
3180
3181
3181 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3182 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3182 filenames.
3183 filenames.
3183
3184
3184 2002-06-02 Fernando Perez <fperez@colorado.edu>
3185 2002-06-02 Fernando Perez <fperez@colorado.edu>
3185
3186
3186 * IPython/Struct.py (Struct.__init__): modified to admit
3187 * IPython/Struct.py (Struct.__init__): modified to admit
3187 initialization via another struct.
3188 initialization via another struct.
3188
3189
3189 * IPython/genutils.py (SystemExec.__init__): New stateful
3190 * IPython/genutils.py (SystemExec.__init__): New stateful
3190 interface to xsys and bq. Useful for writing system scripts.
3191 interface to xsys and bq. Useful for writing system scripts.
3191
3192
3192 2002-05-30 Fernando Perez <fperez@colorado.edu>
3193 2002-05-30 Fernando Perez <fperez@colorado.edu>
3193
3194
3194 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3195 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3195 documents. This will make the user download smaller (it's getting
3196 documents. This will make the user download smaller (it's getting
3196 too big).
3197 too big).
3197
3198
3198 2002-05-29 Fernando Perez <fperez@colorado.edu>
3199 2002-05-29 Fernando Perez <fperez@colorado.edu>
3199
3200
3200 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3201 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3201 fix problems with shelve and pickle. Seems to work, but I don't
3202 fix problems with shelve and pickle. Seems to work, but I don't
3202 know if corner cases break it. Thanks to Mike Heeter
3203 know if corner cases break it. Thanks to Mike Heeter
3203 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3204 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3204
3205
3205 2002-05-24 Fernando Perez <fperez@colorado.edu>
3206 2002-05-24 Fernando Perez <fperez@colorado.edu>
3206
3207
3207 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3208 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3208 macros having broken.
3209 macros having broken.
3209
3210
3210 2002-05-21 Fernando Perez <fperez@colorado.edu>
3211 2002-05-21 Fernando Perez <fperez@colorado.edu>
3211
3212
3212 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3213 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3213 introduced logging bug: all history before logging started was
3214 introduced logging bug: all history before logging started was
3214 being written one character per line! This came from the redesign
3215 being written one character per line! This came from the redesign
3215 of the input history as a special list which slices to strings,
3216 of the input history as a special list which slices to strings,
3216 not to lists.
3217 not to lists.
3217
3218
3218 2002-05-20 Fernando Perez <fperez@colorado.edu>
3219 2002-05-20 Fernando Perez <fperez@colorado.edu>
3219
3220
3220 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3221 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3221 be an attribute of all classes in this module. The design of these
3222 be an attribute of all classes in this module. The design of these
3222 classes needs some serious overhauling.
3223 classes needs some serious overhauling.
3223
3224
3224 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3225 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3225 which was ignoring '_' in option names.
3226 which was ignoring '_' in option names.
3226
3227
3227 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3228 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3228 'Verbose_novars' to 'Context' and made it the new default. It's a
3229 'Verbose_novars' to 'Context' and made it the new default. It's a
3229 bit more readable and also safer than verbose.
3230 bit more readable and also safer than verbose.
3230
3231
3231 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3232 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3232 triple-quoted strings.
3233 triple-quoted strings.
3233
3234
3234 * IPython/OInspect.py (__all__): new module exposing the object
3235 * IPython/OInspect.py (__all__): new module exposing the object
3235 introspection facilities. Now the corresponding magics are dummy
3236 introspection facilities. Now the corresponding magics are dummy
3236 wrappers around this. Having this module will make it much easier
3237 wrappers around this. Having this module will make it much easier
3237 to put these functions into our modified pdb.
3238 to put these functions into our modified pdb.
3238 This new object inspector system uses the new colorizing module,
3239 This new object inspector system uses the new colorizing module,
3239 so source code and other things are nicely syntax highlighted.
3240 so source code and other things are nicely syntax highlighted.
3240
3241
3241 2002-05-18 Fernando Perez <fperez@colorado.edu>
3242 2002-05-18 Fernando Perez <fperez@colorado.edu>
3242
3243
3243 * IPython/ColorANSI.py: Split the coloring tools into a separate
3244 * IPython/ColorANSI.py: Split the coloring tools into a separate
3244 module so I can use them in other code easier (they were part of
3245 module so I can use them in other code easier (they were part of
3245 ultraTB).
3246 ultraTB).
3246
3247
3247 2002-05-17 Fernando Perez <fperez@colorado.edu>
3248 2002-05-17 Fernando Perez <fperez@colorado.edu>
3248
3249
3249 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3250 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3250 fixed it to set the global 'g' also to the called instance, as
3251 fixed it to set the global 'g' also to the called instance, as
3251 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3252 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3252 user's 'g' variables).
3253 user's 'g' variables).
3253
3254
3254 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3255 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3255 global variables (aliases to _ih,_oh) so that users which expect
3256 global variables (aliases to _ih,_oh) so that users which expect
3256 In[5] or Out[7] to work aren't unpleasantly surprised.
3257 In[5] or Out[7] to work aren't unpleasantly surprised.
3257 (InputList.__getslice__): new class to allow executing slices of
3258 (InputList.__getslice__): new class to allow executing slices of
3258 input history directly. Very simple class, complements the use of
3259 input history directly. Very simple class, complements the use of
3259 macros.
3260 macros.
3260
3261
3261 2002-05-16 Fernando Perez <fperez@colorado.edu>
3262 2002-05-16 Fernando Perez <fperez@colorado.edu>
3262
3263
3263 * setup.py (docdirbase): make doc directory be just doc/IPython
3264 * setup.py (docdirbase): make doc directory be just doc/IPython
3264 without version numbers, it will reduce clutter for users.
3265 without version numbers, it will reduce clutter for users.
3265
3266
3266 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3267 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3267 execfile call to prevent possible memory leak. See for details:
3268 execfile call to prevent possible memory leak. See for details:
3268 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3269 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3269
3270
3270 2002-05-15 Fernando Perez <fperez@colorado.edu>
3271 2002-05-15 Fernando Perez <fperez@colorado.edu>
3271
3272
3272 * IPython/Magic.py (Magic.magic_psource): made the object
3273 * IPython/Magic.py (Magic.magic_psource): made the object
3273 introspection names be more standard: pdoc, pdef, pfile and
3274 introspection names be more standard: pdoc, pdef, pfile and
3274 psource. They all print/page their output, and it makes
3275 psource. They all print/page their output, and it makes
3275 remembering them easier. Kept old names for compatibility as
3276 remembering them easier. Kept old names for compatibility as
3276 aliases.
3277 aliases.
3277
3278
3278 2002-05-14 Fernando Perez <fperez@colorado.edu>
3279 2002-05-14 Fernando Perez <fperez@colorado.edu>
3279
3280
3280 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3281 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3281 what the mouse problem was. The trick is to use gnuplot with temp
3282 what the mouse problem was. The trick is to use gnuplot with temp
3282 files and NOT with pipes (for data communication), because having
3283 files and NOT with pipes (for data communication), because having
3283 both pipes and the mouse on is bad news.
3284 both pipes and the mouse on is bad news.
3284
3285
3285 2002-05-13 Fernando Perez <fperez@colorado.edu>
3286 2002-05-13 Fernando Perez <fperez@colorado.edu>
3286
3287
3287 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3288 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3288 bug. Information would be reported about builtins even when
3289 bug. Information would be reported about builtins even when
3289 user-defined functions overrode them.
3290 user-defined functions overrode them.
3290
3291
3291 2002-05-11 Fernando Perez <fperez@colorado.edu>
3292 2002-05-11 Fernando Perez <fperez@colorado.edu>
3292
3293
3293 * IPython/__init__.py (__all__): removed FlexCompleter from
3294 * IPython/__init__.py (__all__): removed FlexCompleter from
3294 __all__ so that things don't fail in platforms without readline.
3295 __all__ so that things don't fail in platforms without readline.
3295
3296
3296 2002-05-10 Fernando Perez <fperez@colorado.edu>
3297 2002-05-10 Fernando Perez <fperez@colorado.edu>
3297
3298
3298 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3299 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3299 it requires Numeric, effectively making Numeric a dependency for
3300 it requires Numeric, effectively making Numeric a dependency for
3300 IPython.
3301 IPython.
3301
3302
3302 * Released 0.2.13
3303 * Released 0.2.13
3303
3304
3304 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3305 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3305 profiler interface. Now all the major options from the profiler
3306 profiler interface. Now all the major options from the profiler
3306 module are directly supported in IPython, both for single
3307 module are directly supported in IPython, both for single
3307 expressions (@prun) and for full programs (@run -p).
3308 expressions (@prun) and for full programs (@run -p).
3308
3309
3309 2002-05-09 Fernando Perez <fperez@colorado.edu>
3310 2002-05-09 Fernando Perez <fperez@colorado.edu>
3310
3311
3311 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3312 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3312 magic properly formatted for screen.
3313 magic properly formatted for screen.
3313
3314
3314 * setup.py (make_shortcut): Changed things to put pdf version in
3315 * setup.py (make_shortcut): Changed things to put pdf version in
3315 doc/ instead of doc/manual (had to change lyxport a bit).
3316 doc/ instead of doc/manual (had to change lyxport a bit).
3316
3317
3317 * IPython/Magic.py (Profile.string_stats): made profile runs go
3318 * IPython/Magic.py (Profile.string_stats): made profile runs go
3318 through pager (they are long and a pager allows searching, saving,
3319 through pager (they are long and a pager allows searching, saving,
3319 etc.)
3320 etc.)
3320
3321
3321 2002-05-08 Fernando Perez <fperez@colorado.edu>
3322 2002-05-08 Fernando Perez <fperez@colorado.edu>
3322
3323
3323 * Released 0.2.12
3324 * Released 0.2.12
3324
3325
3325 2002-05-06 Fernando Perez <fperez@colorado.edu>
3326 2002-05-06 Fernando Perez <fperez@colorado.edu>
3326
3327
3327 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3328 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3328 introduced); 'hist n1 n2' was broken.
3329 introduced); 'hist n1 n2' was broken.
3329 (Magic.magic_pdb): added optional on/off arguments to @pdb
3330 (Magic.magic_pdb): added optional on/off arguments to @pdb
3330 (Magic.magic_run): added option -i to @run, which executes code in
3331 (Magic.magic_run): added option -i to @run, which executes code in
3331 the IPython namespace instead of a clean one. Also added @irun as
3332 the IPython namespace instead of a clean one. Also added @irun as
3332 an alias to @run -i.
3333 an alias to @run -i.
3333
3334
3334 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3335 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3335 fixed (it didn't really do anything, the namespaces were wrong).
3336 fixed (it didn't really do anything, the namespaces were wrong).
3336
3337
3337 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3338 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3338
3339
3339 * IPython/__init__.py (__all__): Fixed package namespace, now
3340 * IPython/__init__.py (__all__): Fixed package namespace, now
3340 'import IPython' does give access to IPython.<all> as
3341 'import IPython' does give access to IPython.<all> as
3341 expected. Also renamed __release__ to Release.
3342 expected. Also renamed __release__ to Release.
3342
3343
3343 * IPython/Debugger.py (__license__): created new Pdb class which
3344 * IPython/Debugger.py (__license__): created new Pdb class which
3344 functions like a drop-in for the normal pdb.Pdb but does NOT
3345 functions like a drop-in for the normal pdb.Pdb but does NOT
3345 import readline by default. This way it doesn't muck up IPython's
3346 import readline by default. This way it doesn't muck up IPython's
3346 readline handling, and now tab-completion finally works in the
3347 readline handling, and now tab-completion finally works in the
3347 debugger -- sort of. It completes things globally visible, but the
3348 debugger -- sort of. It completes things globally visible, but the
3348 completer doesn't track the stack as pdb walks it. That's a bit
3349 completer doesn't track the stack as pdb walks it. That's a bit
3349 tricky, and I'll have to implement it later.
3350 tricky, and I'll have to implement it later.
3350
3351
3351 2002-05-05 Fernando Perez <fperez@colorado.edu>
3352 2002-05-05 Fernando Perez <fperez@colorado.edu>
3352
3353
3353 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3354 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3354 magic docstrings when printed via ? (explicit \'s were being
3355 magic docstrings when printed via ? (explicit \'s were being
3355 printed).
3356 printed).
3356
3357
3357 * IPython/ipmaker.py (make_IPython): fixed namespace
3358 * IPython/ipmaker.py (make_IPython): fixed namespace
3358 identification bug. Now variables loaded via logs or command-line
3359 identification bug. Now variables loaded via logs or command-line
3359 files are recognized in the interactive namespace by @who.
3360 files are recognized in the interactive namespace by @who.
3360
3361
3361 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3362 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3362 log replay system stemming from the string form of Structs.
3363 log replay system stemming from the string form of Structs.
3363
3364
3364 * IPython/Magic.py (Macro.__init__): improved macros to properly
3365 * IPython/Magic.py (Macro.__init__): improved macros to properly
3365 handle magic commands in them.
3366 handle magic commands in them.
3366 (Magic.magic_logstart): usernames are now expanded so 'logstart
3367 (Magic.magic_logstart): usernames are now expanded so 'logstart
3367 ~/mylog' now works.
3368 ~/mylog' now works.
3368
3369
3369 * IPython/iplib.py (complete): fixed bug where paths starting with
3370 * IPython/iplib.py (complete): fixed bug where paths starting with
3370 '/' would be completed as magic names.
3371 '/' would be completed as magic names.
3371
3372
3372 2002-05-04 Fernando Perez <fperez@colorado.edu>
3373 2002-05-04 Fernando Perez <fperez@colorado.edu>
3373
3374
3374 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3375 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3375 allow running full programs under the profiler's control.
3376 allow running full programs under the profiler's control.
3376
3377
3377 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3378 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3378 mode to report exceptions verbosely but without formatting
3379 mode to report exceptions verbosely but without formatting
3379 variables. This addresses the issue of ipython 'freezing' (it's
3380 variables. This addresses the issue of ipython 'freezing' (it's
3380 not frozen, but caught in an expensive formatting loop) when huge
3381 not frozen, but caught in an expensive formatting loop) when huge
3381 variables are in the context of an exception.
3382 variables are in the context of an exception.
3382 (VerboseTB.text): Added '--->' markers at line where exception was
3383 (VerboseTB.text): Added '--->' markers at line where exception was
3383 triggered. Much clearer to read, especially in NoColor modes.
3384 triggered. Much clearer to read, especially in NoColor modes.
3384
3385
3385 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3386 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3386 implemented in reverse when changing to the new parse_options().
3387 implemented in reverse when changing to the new parse_options().
3387
3388
3388 2002-05-03 Fernando Perez <fperez@colorado.edu>
3389 2002-05-03 Fernando Perez <fperez@colorado.edu>
3389
3390
3390 * IPython/Magic.py (Magic.parse_options): new function so that
3391 * IPython/Magic.py (Magic.parse_options): new function so that
3391 magics can parse options easier.
3392 magics can parse options easier.
3392 (Magic.magic_prun): new function similar to profile.run(),
3393 (Magic.magic_prun): new function similar to profile.run(),
3393 suggested by Chris Hart.
3394 suggested by Chris Hart.
3394 (Magic.magic_cd): fixed behavior so that it only changes if
3395 (Magic.magic_cd): fixed behavior so that it only changes if
3395 directory actually is in history.
3396 directory actually is in history.
3396
3397
3397 * IPython/usage.py (__doc__): added information about potential
3398 * IPython/usage.py (__doc__): added information about potential
3398 slowness of Verbose exception mode when there are huge data
3399 slowness of Verbose exception mode when there are huge data
3399 structures to be formatted (thanks to Archie Paulson).
3400 structures to be formatted (thanks to Archie Paulson).
3400
3401
3401 * IPython/ipmaker.py (make_IPython): Changed default logging
3402 * IPython/ipmaker.py (make_IPython): Changed default logging
3402 (when simply called with -log) to use curr_dir/ipython.log in
3403 (when simply called with -log) to use curr_dir/ipython.log in
3403 rotate mode. Fixed crash which was occuring with -log before
3404 rotate mode. Fixed crash which was occuring with -log before
3404 (thanks to Jim Boyle).
3405 (thanks to Jim Boyle).
3405
3406
3406 2002-05-01 Fernando Perez <fperez@colorado.edu>
3407 2002-05-01 Fernando Perez <fperez@colorado.edu>
3407
3408
3408 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3409 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3409 was nasty -- though somewhat of a corner case).
3410 was nasty -- though somewhat of a corner case).
3410
3411
3411 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3412 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3412 text (was a bug).
3413 text (was a bug).
3413
3414
3414 2002-04-30 Fernando Perez <fperez@colorado.edu>
3415 2002-04-30 Fernando Perez <fperez@colorado.edu>
3415
3416
3416 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3417 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3417 a print after ^D or ^C from the user so that the In[] prompt
3418 a print after ^D or ^C from the user so that the In[] prompt
3418 doesn't over-run the gnuplot one.
3419 doesn't over-run the gnuplot one.
3419
3420
3420 2002-04-29 Fernando Perez <fperez@colorado.edu>
3421 2002-04-29 Fernando Perez <fperez@colorado.edu>
3421
3422
3422 * Released 0.2.10
3423 * Released 0.2.10
3423
3424
3424 * IPython/__release__.py (version): get date dynamically.
3425 * IPython/__release__.py (version): get date dynamically.
3425
3426
3426 * Misc. documentation updates thanks to Arnd's comments. Also ran
3427 * Misc. documentation updates thanks to Arnd's comments. Also ran
3427 a full spellcheck on the manual (hadn't been done in a while).
3428 a full spellcheck on the manual (hadn't been done in a while).
3428
3429
3429 2002-04-27 Fernando Perez <fperez@colorado.edu>
3430 2002-04-27 Fernando Perez <fperez@colorado.edu>
3430
3431
3431 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3432 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3432 starting a log in mid-session would reset the input history list.
3433 starting a log in mid-session would reset the input history list.
3433
3434
3434 2002-04-26 Fernando Perez <fperez@colorado.edu>
3435 2002-04-26 Fernando Perez <fperez@colorado.edu>
3435
3436
3436 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3437 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3437 all files were being included in an update. Now anything in
3438 all files were being included in an update. Now anything in
3438 UserConfig that matches [A-Za-z]*.py will go (this excludes
3439 UserConfig that matches [A-Za-z]*.py will go (this excludes
3439 __init__.py)
3440 __init__.py)
3440
3441
3441 2002-04-25 Fernando Perez <fperez@colorado.edu>
3442 2002-04-25 Fernando Perez <fperez@colorado.edu>
3442
3443
3443 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3444 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3444 to __builtins__ so that any form of embedded or imported code can
3445 to __builtins__ so that any form of embedded or imported code can
3445 test for being inside IPython.
3446 test for being inside IPython.
3446
3447
3447 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3448 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3448 changed to GnuplotMagic because it's now an importable module,
3449 changed to GnuplotMagic because it's now an importable module,
3449 this makes the name follow that of the standard Gnuplot module.
3450 this makes the name follow that of the standard Gnuplot module.
3450 GnuplotMagic can now be loaded at any time in mid-session.
3451 GnuplotMagic can now be loaded at any time in mid-session.
3451
3452
3452 2002-04-24 Fernando Perez <fperez@colorado.edu>
3453 2002-04-24 Fernando Perez <fperez@colorado.edu>
3453
3454
3454 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3455 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3455 the globals (IPython has its own namespace) and the
3456 the globals (IPython has its own namespace) and the
3456 PhysicalQuantity stuff is much better anyway.
3457 PhysicalQuantity stuff is much better anyway.
3457
3458
3458 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3459 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3459 embedding example to standard user directory for
3460 embedding example to standard user directory for
3460 distribution. Also put it in the manual.
3461 distribution. Also put it in the manual.
3461
3462
3462 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3463 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3463 instance as first argument (so it doesn't rely on some obscure
3464 instance as first argument (so it doesn't rely on some obscure
3464 hidden global).
3465 hidden global).
3465
3466
3466 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3467 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3467 delimiters. While it prevents ().TAB from working, it allows
3468 delimiters. While it prevents ().TAB from working, it allows
3468 completions in open (... expressions. This is by far a more common
3469 completions in open (... expressions. This is by far a more common
3469 case.
3470 case.
3470
3471
3471 2002-04-23 Fernando Perez <fperez@colorado.edu>
3472 2002-04-23 Fernando Perez <fperez@colorado.edu>
3472
3473
3473 * IPython/Extensions/InterpreterPasteInput.py: new
3474 * IPython/Extensions/InterpreterPasteInput.py: new
3474 syntax-processing module for pasting lines with >>> or ... at the
3475 syntax-processing module for pasting lines with >>> or ... at the
3475 start.
3476 start.
3476
3477
3477 * IPython/Extensions/PhysicalQ_Interactive.py
3478 * IPython/Extensions/PhysicalQ_Interactive.py
3478 (PhysicalQuantityInteractive.__int__): fixed to work with either
3479 (PhysicalQuantityInteractive.__int__): fixed to work with either
3479 Numeric or math.
3480 Numeric or math.
3480
3481
3481 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3482 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3482 provided profiles. Now we have:
3483 provided profiles. Now we have:
3483 -math -> math module as * and cmath with its own namespace.
3484 -math -> math module as * and cmath with its own namespace.
3484 -numeric -> Numeric as *, plus gnuplot & grace
3485 -numeric -> Numeric as *, plus gnuplot & grace
3485 -physics -> same as before
3486 -physics -> same as before
3486
3487
3487 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3488 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3488 user-defined magics wouldn't be found by @magic if they were
3489 user-defined magics wouldn't be found by @magic if they were
3489 defined as class methods. Also cleaned up the namespace search
3490 defined as class methods. Also cleaned up the namespace search
3490 logic and the string building (to use %s instead of many repeated
3491 logic and the string building (to use %s instead of many repeated
3491 string adds).
3492 string adds).
3492
3493
3493 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3494 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3494 of user-defined magics to operate with class methods (cleaner, in
3495 of user-defined magics to operate with class methods (cleaner, in
3495 line with the gnuplot code).
3496 line with the gnuplot code).
3496
3497
3497 2002-04-22 Fernando Perez <fperez@colorado.edu>
3498 2002-04-22 Fernando Perez <fperez@colorado.edu>
3498
3499
3499 * setup.py: updated dependency list so that manual is updated when
3500 * setup.py: updated dependency list so that manual is updated when
3500 all included files change.
3501 all included files change.
3501
3502
3502 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3503 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3503 the delimiter removal option (the fix is ugly right now).
3504 the delimiter removal option (the fix is ugly right now).
3504
3505
3505 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3506 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3506 all of the math profile (quicker loading, no conflict between
3507 all of the math profile (quicker loading, no conflict between
3507 g-9.8 and g-gnuplot).
3508 g-9.8 and g-gnuplot).
3508
3509
3509 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3510 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3510 name of post-mortem files to IPython_crash_report.txt.
3511 name of post-mortem files to IPython_crash_report.txt.
3511
3512
3512 * Cleanup/update of the docs. Added all the new readline info and
3513 * Cleanup/update of the docs. Added all the new readline info and
3513 formatted all lists as 'real lists'.
3514 formatted all lists as 'real lists'.
3514
3515
3515 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3516 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3516 tab-completion options, since the full readline parse_and_bind is
3517 tab-completion options, since the full readline parse_and_bind is
3517 now accessible.
3518 now accessible.
3518
3519
3519 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3520 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3520 handling of readline options. Now users can specify any string to
3521 handling of readline options. Now users can specify any string to
3521 be passed to parse_and_bind(), as well as the delimiters to be
3522 be passed to parse_and_bind(), as well as the delimiters to be
3522 removed.
3523 removed.
3523 (InteractiveShell.__init__): Added __name__ to the global
3524 (InteractiveShell.__init__): Added __name__ to the global
3524 namespace so that things like Itpl which rely on its existence
3525 namespace so that things like Itpl which rely on its existence
3525 don't crash.
3526 don't crash.
3526 (InteractiveShell._prefilter): Defined the default with a _ so
3527 (InteractiveShell._prefilter): Defined the default with a _ so
3527 that prefilter() is easier to override, while the default one
3528 that prefilter() is easier to override, while the default one
3528 remains available.
3529 remains available.
3529
3530
3530 2002-04-18 Fernando Perez <fperez@colorado.edu>
3531 2002-04-18 Fernando Perez <fperez@colorado.edu>
3531
3532
3532 * Added information about pdb in the docs.
3533 * Added information about pdb in the docs.
3533
3534
3534 2002-04-17 Fernando Perez <fperez@colorado.edu>
3535 2002-04-17 Fernando Perez <fperez@colorado.edu>
3535
3536
3536 * IPython/ipmaker.py (make_IPython): added rc_override option to
3537 * IPython/ipmaker.py (make_IPython): added rc_override option to
3537 allow passing config options at creation time which may override
3538 allow passing config options at creation time which may override
3538 anything set in the config files or command line. This is
3539 anything set in the config files or command line. This is
3539 particularly useful for configuring embedded instances.
3540 particularly useful for configuring embedded instances.
3540
3541
3541 2002-04-15 Fernando Perez <fperez@colorado.edu>
3542 2002-04-15 Fernando Perez <fperez@colorado.edu>
3542
3543
3543 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3544 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3544 crash embedded instances because of the input cache falling out of
3545 crash embedded instances because of the input cache falling out of
3545 sync with the output counter.
3546 sync with the output counter.
3546
3547
3547 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3548 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3548 mode which calls pdb after an uncaught exception in IPython itself.
3549 mode which calls pdb after an uncaught exception in IPython itself.
3549
3550
3550 2002-04-14 Fernando Perez <fperez@colorado.edu>
3551 2002-04-14 Fernando Perez <fperez@colorado.edu>
3551
3552
3552 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3553 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3553 readline, fix it back after each call.
3554 readline, fix it back after each call.
3554
3555
3555 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3556 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3556 method to force all access via __call__(), which guarantees that
3557 method to force all access via __call__(), which guarantees that
3557 traceback references are properly deleted.
3558 traceback references are properly deleted.
3558
3559
3559 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3560 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3560 improve printing when pprint is in use.
3561 improve printing when pprint is in use.
3561
3562
3562 2002-04-13 Fernando Perez <fperez@colorado.edu>
3563 2002-04-13 Fernando Perez <fperez@colorado.edu>
3563
3564
3564 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3565 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3565 exceptions aren't caught anymore. If the user triggers one, he
3566 exceptions aren't caught anymore. If the user triggers one, he
3566 should know why he's doing it and it should go all the way up,
3567 should know why he's doing it and it should go all the way up,
3567 just like any other exception. So now @abort will fully kill the
3568 just like any other exception. So now @abort will fully kill the
3568 embedded interpreter and the embedding code (unless that happens
3569 embedded interpreter and the embedding code (unless that happens
3569 to catch SystemExit).
3570 to catch SystemExit).
3570
3571
3571 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3572 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3572 and a debugger() method to invoke the interactive pdb debugger
3573 and a debugger() method to invoke the interactive pdb debugger
3573 after printing exception information. Also added the corresponding
3574 after printing exception information. Also added the corresponding
3574 -pdb option and @pdb magic to control this feature, and updated
3575 -pdb option and @pdb magic to control this feature, and updated
3575 the docs. After a suggestion from Christopher Hart
3576 the docs. After a suggestion from Christopher Hart
3576 (hart-AT-caltech.edu).
3577 (hart-AT-caltech.edu).
3577
3578
3578 2002-04-12 Fernando Perez <fperez@colorado.edu>
3579 2002-04-12 Fernando Perez <fperez@colorado.edu>
3579
3580
3580 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3581 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3581 the exception handlers defined by the user (not the CrashHandler)
3582 the exception handlers defined by the user (not the CrashHandler)
3582 so that user exceptions don't trigger an ipython bug report.
3583 so that user exceptions don't trigger an ipython bug report.
3583
3584
3584 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3585 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3585 configurable (it should have always been so).
3586 configurable (it should have always been so).
3586
3587
3587 2002-03-26 Fernando Perez <fperez@colorado.edu>
3588 2002-03-26 Fernando Perez <fperez@colorado.edu>
3588
3589
3589 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3590 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3590 and there to fix embedding namespace issues. This should all be
3591 and there to fix embedding namespace issues. This should all be
3591 done in a more elegant way.
3592 done in a more elegant way.
3592
3593
3593 2002-03-25 Fernando Perez <fperez@colorado.edu>
3594 2002-03-25 Fernando Perez <fperez@colorado.edu>
3594
3595
3595 * IPython/genutils.py (get_home_dir): Try to make it work under
3596 * IPython/genutils.py (get_home_dir): Try to make it work under
3596 win9x also.
3597 win9x also.
3597
3598
3598 2002-03-20 Fernando Perez <fperez@colorado.edu>
3599 2002-03-20 Fernando Perez <fperez@colorado.edu>
3599
3600
3600 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3601 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3601 sys.displayhook untouched upon __init__.
3602 sys.displayhook untouched upon __init__.
3602
3603
3603 2002-03-19 Fernando Perez <fperez@colorado.edu>
3604 2002-03-19 Fernando Perez <fperez@colorado.edu>
3604
3605
3605 * Released 0.2.9 (for embedding bug, basically).
3606 * Released 0.2.9 (for embedding bug, basically).
3606
3607
3607 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3608 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3608 exceptions so that enclosing shell's state can be restored.
3609 exceptions so that enclosing shell's state can be restored.
3609
3610
3610 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3611 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3611 naming conventions in the .ipython/ dir.
3612 naming conventions in the .ipython/ dir.
3612
3613
3613 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3614 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3614 from delimiters list so filenames with - in them get expanded.
3615 from delimiters list so filenames with - in them get expanded.
3615
3616
3616 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3617 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3617 sys.displayhook not being properly restored after an embedded call.
3618 sys.displayhook not being properly restored after an embedded call.
3618
3619
3619 2002-03-18 Fernando Perez <fperez@colorado.edu>
3620 2002-03-18 Fernando Perez <fperez@colorado.edu>
3620
3621
3621 * Released 0.2.8
3622 * Released 0.2.8
3622
3623
3623 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3624 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3624 some files weren't being included in a -upgrade.
3625 some files weren't being included in a -upgrade.
3625 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3626 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3626 on' so that the first tab completes.
3627 on' so that the first tab completes.
3627 (InteractiveShell.handle_magic): fixed bug with spaces around
3628 (InteractiveShell.handle_magic): fixed bug with spaces around
3628 quotes breaking many magic commands.
3629 quotes breaking many magic commands.
3629
3630
3630 * setup.py: added note about ignoring the syntax error messages at
3631 * setup.py: added note about ignoring the syntax error messages at
3631 installation.
3632 installation.
3632
3633
3633 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3634 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3634 streamlining the gnuplot interface, now there's only one magic @gp.
3635 streamlining the gnuplot interface, now there's only one magic @gp.
3635
3636
3636 2002-03-17 Fernando Perez <fperez@colorado.edu>
3637 2002-03-17 Fernando Perez <fperez@colorado.edu>
3637
3638
3638 * IPython/UserConfig/magic_gnuplot.py: new name for the
3639 * IPython/UserConfig/magic_gnuplot.py: new name for the
3639 example-magic_pm.py file. Much enhanced system, now with a shell
3640 example-magic_pm.py file. Much enhanced system, now with a shell
3640 for communicating directly with gnuplot, one command at a time.
3641 for communicating directly with gnuplot, one command at a time.
3641
3642
3642 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3643 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3643 setting __name__=='__main__'.
3644 setting __name__=='__main__'.
3644
3645
3645 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3646 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3646 mini-shell for accessing gnuplot from inside ipython. Should
3647 mini-shell for accessing gnuplot from inside ipython. Should
3647 extend it later for grace access too. Inspired by Arnd's
3648 extend it later for grace access too. Inspired by Arnd's
3648 suggestion.
3649 suggestion.
3649
3650
3650 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3651 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3651 calling magic functions with () in their arguments. Thanks to Arnd
3652 calling magic functions with () in their arguments. Thanks to Arnd
3652 Baecker for pointing this to me.
3653 Baecker for pointing this to me.
3653
3654
3654 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3655 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3655 infinitely for integer or complex arrays (only worked with floats).
3656 infinitely for integer or complex arrays (only worked with floats).
3656
3657
3657 2002-03-16 Fernando Perez <fperez@colorado.edu>
3658 2002-03-16 Fernando Perez <fperez@colorado.edu>
3658
3659
3659 * setup.py: Merged setup and setup_windows into a single script
3660 * setup.py: Merged setup and setup_windows into a single script
3660 which properly handles things for windows users.
3661 which properly handles things for windows users.
3661
3662
3662 2002-03-15 Fernando Perez <fperez@colorado.edu>
3663 2002-03-15 Fernando Perez <fperez@colorado.edu>
3663
3664
3664 * Big change to the manual: now the magics are all automatically
3665 * Big change to the manual: now the magics are all automatically
3665 documented. This information is generated from their docstrings
3666 documented. This information is generated from their docstrings
3666 and put in a latex file included by the manual lyx file. This way
3667 and put in a latex file included by the manual lyx file. This way
3667 we get always up to date information for the magics. The manual
3668 we get always up to date information for the magics. The manual
3668 now also has proper version information, also auto-synced.
3669 now also has proper version information, also auto-synced.
3669
3670
3670 For this to work, an undocumented --magic_docstrings option was added.
3671 For this to work, an undocumented --magic_docstrings option was added.
3671
3672
3672 2002-03-13 Fernando Perez <fperez@colorado.edu>
3673 2002-03-13 Fernando Perez <fperez@colorado.edu>
3673
3674
3674 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3675 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3675 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3676 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3676
3677
3677 2002-03-12 Fernando Perez <fperez@colorado.edu>
3678 2002-03-12 Fernando Perez <fperez@colorado.edu>
3678
3679
3679 * IPython/ultraTB.py (TermColors): changed color escapes again to
3680 * IPython/ultraTB.py (TermColors): changed color escapes again to
3680 fix the (old, reintroduced) line-wrapping bug. Basically, if
3681 fix the (old, reintroduced) line-wrapping bug. Basically, if
3681 \001..\002 aren't given in the color escapes, lines get wrapped
3682 \001..\002 aren't given in the color escapes, lines get wrapped
3682 weirdly. But giving those screws up old xterms and emacs terms. So
3683 weirdly. But giving those screws up old xterms and emacs terms. So
3683 I added some logic for emacs terms to be ok, but I can't identify old
3684 I added some logic for emacs terms to be ok, but I can't identify old
3684 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3685 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3685
3686
3686 2002-03-10 Fernando Perez <fperez@colorado.edu>
3687 2002-03-10 Fernando Perez <fperez@colorado.edu>
3687
3688
3688 * IPython/usage.py (__doc__): Various documentation cleanups and
3689 * IPython/usage.py (__doc__): Various documentation cleanups and
3689 updates, both in usage docstrings and in the manual.
3690 updates, both in usage docstrings and in the manual.
3690
3691
3691 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3692 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3692 handling of caching. Set minimum acceptabe value for having a
3693 handling of caching. Set minimum acceptabe value for having a
3693 cache at 20 values.
3694 cache at 20 values.
3694
3695
3695 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3696 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3696 install_first_time function to a method, renamed it and added an
3697 install_first_time function to a method, renamed it and added an
3697 'upgrade' mode. Now people can update their config directory with
3698 'upgrade' mode. Now people can update their config directory with
3698 a simple command line switch (-upgrade, also new).
3699 a simple command line switch (-upgrade, also new).
3699
3700
3700 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3701 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3701 @file (convenient for automagic users under Python >= 2.2).
3702 @file (convenient for automagic users under Python >= 2.2).
3702 Removed @files (it seemed more like a plural than an abbrev. of
3703 Removed @files (it seemed more like a plural than an abbrev. of
3703 'file show').
3704 'file show').
3704
3705
3705 * IPython/iplib.py (install_first_time): Fixed crash if there were
3706 * IPython/iplib.py (install_first_time): Fixed crash if there were
3706 backup files ('~') in .ipython/ install directory.
3707 backup files ('~') in .ipython/ install directory.
3707
3708
3708 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3709 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3709 system. Things look fine, but these changes are fairly
3710 system. Things look fine, but these changes are fairly
3710 intrusive. Test them for a few days.
3711 intrusive. Test them for a few days.
3711
3712
3712 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3713 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3713 the prompts system. Now all in/out prompt strings are user
3714 the prompts system. Now all in/out prompt strings are user
3714 controllable. This is particularly useful for embedding, as one
3715 controllable. This is particularly useful for embedding, as one
3715 can tag embedded instances with particular prompts.
3716 can tag embedded instances with particular prompts.
3716
3717
3717 Also removed global use of sys.ps1/2, which now allows nested
3718 Also removed global use of sys.ps1/2, which now allows nested
3718 embeddings without any problems. Added command-line options for
3719 embeddings without any problems. Added command-line options for
3719 the prompt strings.
3720 the prompt strings.
3720
3721
3721 2002-03-08 Fernando Perez <fperez@colorado.edu>
3722 2002-03-08 Fernando Perez <fperez@colorado.edu>
3722
3723
3723 * IPython/UserConfig/example-embed-short.py (ipshell): added
3724 * IPython/UserConfig/example-embed-short.py (ipshell): added
3724 example file with the bare minimum code for embedding.
3725 example file with the bare minimum code for embedding.
3725
3726
3726 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3727 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3727 functionality for the embeddable shell to be activated/deactivated
3728 functionality for the embeddable shell to be activated/deactivated
3728 either globally or at each call.
3729 either globally or at each call.
3729
3730
3730 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3731 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3731 rewriting the prompt with '--->' for auto-inputs with proper
3732 rewriting the prompt with '--->' for auto-inputs with proper
3732 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3733 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3733 this is handled by the prompts class itself, as it should.
3734 this is handled by the prompts class itself, as it should.
3734
3735
3735 2002-03-05 Fernando Perez <fperez@colorado.edu>
3736 2002-03-05 Fernando Perez <fperez@colorado.edu>
3736
3737
3737 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3738 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3738 @logstart to avoid name clashes with the math log function.
3739 @logstart to avoid name clashes with the math log function.
3739
3740
3740 * Big updates to X/Emacs section of the manual.
3741 * Big updates to X/Emacs section of the manual.
3741
3742
3742 * Removed ipython_emacs. Milan explained to me how to pass
3743 * Removed ipython_emacs. Milan explained to me how to pass
3743 arguments to ipython through Emacs. Some day I'm going to end up
3744 arguments to ipython through Emacs. Some day I'm going to end up
3744 learning some lisp...
3745 learning some lisp...
3745
3746
3746 2002-03-04 Fernando Perez <fperez@colorado.edu>
3747 2002-03-04 Fernando Perez <fperez@colorado.edu>
3747
3748
3748 * IPython/ipython_emacs: Created script to be used as the
3749 * IPython/ipython_emacs: Created script to be used as the
3749 py-python-command Emacs variable so we can pass IPython
3750 py-python-command Emacs variable so we can pass IPython
3750 parameters. I can't figure out how to tell Emacs directly to pass
3751 parameters. I can't figure out how to tell Emacs directly to pass
3751 parameters to IPython, so a dummy shell script will do it.
3752 parameters to IPython, so a dummy shell script will do it.
3752
3753
3753 Other enhancements made for things to work better under Emacs'
3754 Other enhancements made for things to work better under Emacs'
3754 various types of terminals. Many thanks to Milan Zamazal
3755 various types of terminals. Many thanks to Milan Zamazal
3755 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3756 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3756
3757
3757 2002-03-01 Fernando Perez <fperez@colorado.edu>
3758 2002-03-01 Fernando Perez <fperez@colorado.edu>
3758
3759
3759 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3760 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3760 that loading of readline is now optional. This gives better
3761 that loading of readline is now optional. This gives better
3761 control to emacs users.
3762 control to emacs users.
3762
3763
3763 * IPython/ultraTB.py (__date__): Modified color escape sequences
3764 * IPython/ultraTB.py (__date__): Modified color escape sequences
3764 and now things work fine under xterm and in Emacs' term buffers
3765 and now things work fine under xterm and in Emacs' term buffers
3765 (though not shell ones). Well, in emacs you get colors, but all
3766 (though not shell ones). Well, in emacs you get colors, but all
3766 seem to be 'light' colors (no difference between dark and light
3767 seem to be 'light' colors (no difference between dark and light
3767 ones). But the garbage chars are gone, and also in xterms. It
3768 ones). But the garbage chars are gone, and also in xterms. It
3768 seems that now I'm using 'cleaner' ansi sequences.
3769 seems that now I'm using 'cleaner' ansi sequences.
3769
3770
3770 2002-02-21 Fernando Perez <fperez@colorado.edu>
3771 2002-02-21 Fernando Perez <fperez@colorado.edu>
3771
3772
3772 * Released 0.2.7 (mainly to publish the scoping fix).
3773 * Released 0.2.7 (mainly to publish the scoping fix).
3773
3774
3774 * IPython/Logger.py (Logger.logstate): added. A corresponding
3775 * IPython/Logger.py (Logger.logstate): added. A corresponding
3775 @logstate magic was created.
3776 @logstate magic was created.
3776
3777
3777 * IPython/Magic.py: fixed nested scoping problem under Python
3778 * IPython/Magic.py: fixed nested scoping problem under Python
3778 2.1.x (automagic wasn't working).
3779 2.1.x (automagic wasn't working).
3779
3780
3780 2002-02-20 Fernando Perez <fperez@colorado.edu>
3781 2002-02-20 Fernando Perez <fperez@colorado.edu>
3781
3782
3782 * Released 0.2.6.
3783 * Released 0.2.6.
3783
3784
3784 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3785 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3785 option so that logs can come out without any headers at all.
3786 option so that logs can come out without any headers at all.
3786
3787
3787 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3788 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3788 SciPy.
3789 SciPy.
3789
3790
3790 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3791 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3791 that embedded IPython calls don't require vars() to be explicitly
3792 that embedded IPython calls don't require vars() to be explicitly
3792 passed. Now they are extracted from the caller's frame (code
3793 passed. Now they are extracted from the caller's frame (code
3793 snatched from Eric Jones' weave). Added better documentation to
3794 snatched from Eric Jones' weave). Added better documentation to
3794 the section on embedding and the example file.
3795 the section on embedding and the example file.
3795
3796
3796 * IPython/genutils.py (page): Changed so that under emacs, it just
3797 * IPython/genutils.py (page): Changed so that under emacs, it just
3797 prints the string. You can then page up and down in the emacs
3798 prints the string. You can then page up and down in the emacs
3798 buffer itself. This is how the builtin help() works.
3799 buffer itself. This is how the builtin help() works.
3799
3800
3800 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3801 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3801 macro scoping: macros need to be executed in the user's namespace
3802 macro scoping: macros need to be executed in the user's namespace
3802 to work as if they had been typed by the user.
3803 to work as if they had been typed by the user.
3803
3804
3804 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3805 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3805 execute automatically (no need to type 'exec...'). They then
3806 execute automatically (no need to type 'exec...'). They then
3806 behave like 'true macros'. The printing system was also modified
3807 behave like 'true macros'. The printing system was also modified
3807 for this to work.
3808 for this to work.
3808
3809
3809 2002-02-19 Fernando Perez <fperez@colorado.edu>
3810 2002-02-19 Fernando Perez <fperez@colorado.edu>
3810
3811
3811 * IPython/genutils.py (page_file): new function for paging files
3812 * IPython/genutils.py (page_file): new function for paging files
3812 in an OS-independent way. Also necessary for file viewing to work
3813 in an OS-independent way. Also necessary for file viewing to work
3813 well inside Emacs buffers.
3814 well inside Emacs buffers.
3814 (page): Added checks for being in an emacs buffer.
3815 (page): Added checks for being in an emacs buffer.
3815 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3816 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3816 same bug in iplib.
3817 same bug in iplib.
3817
3818
3818 2002-02-18 Fernando Perez <fperez@colorado.edu>
3819 2002-02-18 Fernando Perez <fperez@colorado.edu>
3819
3820
3820 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3821 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3821 of readline so that IPython can work inside an Emacs buffer.
3822 of readline so that IPython can work inside an Emacs buffer.
3822
3823
3823 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3824 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3824 method signatures (they weren't really bugs, but it looks cleaner
3825 method signatures (they weren't really bugs, but it looks cleaner
3825 and keeps PyChecker happy).
3826 and keeps PyChecker happy).
3826
3827
3827 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3828 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3828 for implementing various user-defined hooks. Currently only
3829 for implementing various user-defined hooks. Currently only
3829 display is done.
3830 display is done.
3830
3831
3831 * IPython/Prompts.py (CachedOutput._display): changed display
3832 * IPython/Prompts.py (CachedOutput._display): changed display
3832 functions so that they can be dynamically changed by users easily.
3833 functions so that they can be dynamically changed by users easily.
3833
3834
3834 * IPython/Extensions/numeric_formats.py (num_display): added an
3835 * IPython/Extensions/numeric_formats.py (num_display): added an
3835 extension for printing NumPy arrays in flexible manners. It
3836 extension for printing NumPy arrays in flexible manners. It
3836 doesn't do anything yet, but all the structure is in
3837 doesn't do anything yet, but all the structure is in
3837 place. Ultimately the plan is to implement output format control
3838 place. Ultimately the plan is to implement output format control
3838 like in Octave.
3839 like in Octave.
3839
3840
3840 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3841 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3841 methods are found at run-time by all the automatic machinery.
3842 methods are found at run-time by all the automatic machinery.
3842
3843
3843 2002-02-17 Fernando Perez <fperez@colorado.edu>
3844 2002-02-17 Fernando Perez <fperez@colorado.edu>
3844
3845
3845 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3846 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3846 whole file a little.
3847 whole file a little.
3847
3848
3848 * ToDo: closed this document. Now there's a new_design.lyx
3849 * ToDo: closed this document. Now there's a new_design.lyx
3849 document for all new ideas. Added making a pdf of it for the
3850 document for all new ideas. Added making a pdf of it for the
3850 end-user distro.
3851 end-user distro.
3851
3852
3852 * IPython/Logger.py (Logger.switch_log): Created this to replace
3853 * IPython/Logger.py (Logger.switch_log): Created this to replace
3853 logon() and logoff(). It also fixes a nasty crash reported by
3854 logon() and logoff(). It also fixes a nasty crash reported by
3854 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3855 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3855
3856
3856 * IPython/iplib.py (complete): got auto-completion to work with
3857 * IPython/iplib.py (complete): got auto-completion to work with
3857 automagic (I had wanted this for a long time).
3858 automagic (I had wanted this for a long time).
3858
3859
3859 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3860 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3860 to @file, since file() is now a builtin and clashes with automagic
3861 to @file, since file() is now a builtin and clashes with automagic
3861 for @file.
3862 for @file.
3862
3863
3863 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3864 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3864 of this was previously in iplib, which had grown to more than 2000
3865 of this was previously in iplib, which had grown to more than 2000
3865 lines, way too long. No new functionality, but it makes managing
3866 lines, way too long. No new functionality, but it makes managing
3866 the code a bit easier.
3867 the code a bit easier.
3867
3868
3868 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3869 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3869 information to crash reports.
3870 information to crash reports.
3870
3871
3871 2002-02-12 Fernando Perez <fperez@colorado.edu>
3872 2002-02-12 Fernando Perez <fperez@colorado.edu>
3872
3873
3873 * Released 0.2.5.
3874 * Released 0.2.5.
3874
3875
3875 2002-02-11 Fernando Perez <fperez@colorado.edu>
3876 2002-02-11 Fernando Perez <fperez@colorado.edu>
3876
3877
3877 * Wrote a relatively complete Windows installer. It puts
3878 * Wrote a relatively complete Windows installer. It puts
3878 everything in place, creates Start Menu entries and fixes the
3879 everything in place, creates Start Menu entries and fixes the
3879 color issues. Nothing fancy, but it works.
3880 color issues. Nothing fancy, but it works.
3880
3881
3881 2002-02-10 Fernando Perez <fperez@colorado.edu>
3882 2002-02-10 Fernando Perez <fperez@colorado.edu>
3882
3883
3883 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3884 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3884 os.path.expanduser() call so that we can type @run ~/myfile.py and
3885 os.path.expanduser() call so that we can type @run ~/myfile.py and
3885 have thigs work as expected.
3886 have thigs work as expected.
3886
3887
3887 * IPython/genutils.py (page): fixed exception handling so things
3888 * IPython/genutils.py (page): fixed exception handling so things
3888 work both in Unix and Windows correctly. Quitting a pager triggers
3889 work both in Unix and Windows correctly. Quitting a pager triggers
3889 an IOError/broken pipe in Unix, and in windows not finding a pager
3890 an IOError/broken pipe in Unix, and in windows not finding a pager
3890 is also an IOError, so I had to actually look at the return value
3891 is also an IOError, so I had to actually look at the return value
3891 of the exception, not just the exception itself. Should be ok now.
3892 of the exception, not just the exception itself. Should be ok now.
3892
3893
3893 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3894 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3894 modified to allow case-insensitive color scheme changes.
3895 modified to allow case-insensitive color scheme changes.
3895
3896
3896 2002-02-09 Fernando Perez <fperez@colorado.edu>
3897 2002-02-09 Fernando Perez <fperez@colorado.edu>
3897
3898
3898 * IPython/genutils.py (native_line_ends): new function to leave
3899 * IPython/genutils.py (native_line_ends): new function to leave
3899 user config files with os-native line-endings.
3900 user config files with os-native line-endings.
3900
3901
3901 * README and manual updates.
3902 * README and manual updates.
3902
3903
3903 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3904 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3904 instead of StringType to catch Unicode strings.
3905 instead of StringType to catch Unicode strings.
3905
3906
3906 * IPython/genutils.py (filefind): fixed bug for paths with
3907 * IPython/genutils.py (filefind): fixed bug for paths with
3907 embedded spaces (very common in Windows).
3908 embedded spaces (very common in Windows).
3908
3909
3909 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3910 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3910 files under Windows, so that they get automatically associated
3911 files under Windows, so that they get automatically associated
3911 with a text editor. Windows makes it a pain to handle
3912 with a text editor. Windows makes it a pain to handle
3912 extension-less files.
3913 extension-less files.
3913
3914
3914 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3915 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3915 warning about readline only occur for Posix. In Windows there's no
3916 warning about readline only occur for Posix. In Windows there's no
3916 way to get readline, so why bother with the warning.
3917 way to get readline, so why bother with the warning.
3917
3918
3918 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3919 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3919 for __str__ instead of dir(self), since dir() changed in 2.2.
3920 for __str__ instead of dir(self), since dir() changed in 2.2.
3920
3921
3921 * Ported to Windows! Tested on XP, I suspect it should work fine
3922 * Ported to Windows! Tested on XP, I suspect it should work fine
3922 on NT/2000, but I don't think it will work on 98 et al. That
3923 on NT/2000, but I don't think it will work on 98 et al. That
3923 series of Windows is such a piece of junk anyway that I won't try
3924 series of Windows is such a piece of junk anyway that I won't try
3924 porting it there. The XP port was straightforward, showed a few
3925 porting it there. The XP port was straightforward, showed a few
3925 bugs here and there (fixed all), in particular some string
3926 bugs here and there (fixed all), in particular some string
3926 handling stuff which required considering Unicode strings (which
3927 handling stuff which required considering Unicode strings (which
3927 Windows uses). This is good, but hasn't been too tested :) No
3928 Windows uses). This is good, but hasn't been too tested :) No
3928 fancy installer yet, I'll put a note in the manual so people at
3929 fancy installer yet, I'll put a note in the manual so people at
3929 least make manually a shortcut.
3930 least make manually a shortcut.
3930
3931
3931 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3932 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3932 into a single one, "colors". This now controls both prompt and
3933 into a single one, "colors". This now controls both prompt and
3933 exception color schemes, and can be changed both at startup
3934 exception color schemes, and can be changed both at startup
3934 (either via command-line switches or via ipythonrc files) and at
3935 (either via command-line switches or via ipythonrc files) and at
3935 runtime, with @colors.
3936 runtime, with @colors.
3936 (Magic.magic_run): renamed @prun to @run and removed the old
3937 (Magic.magic_run): renamed @prun to @run and removed the old
3937 @run. The two were too similar to warrant keeping both.
3938 @run. The two were too similar to warrant keeping both.
3938
3939
3939 2002-02-03 Fernando Perez <fperez@colorado.edu>
3940 2002-02-03 Fernando Perez <fperez@colorado.edu>
3940
3941
3941 * IPython/iplib.py (install_first_time): Added comment on how to
3942 * IPython/iplib.py (install_first_time): Added comment on how to
3942 configure the color options for first-time users. Put a <return>
3943 configure the color options for first-time users. Put a <return>
3943 request at the end so that small-terminal users get a chance to
3944 request at the end so that small-terminal users get a chance to
3944 read the startup info.
3945 read the startup info.
3945
3946
3946 2002-01-23 Fernando Perez <fperez@colorado.edu>
3947 2002-01-23 Fernando Perez <fperez@colorado.edu>
3947
3948
3948 * IPython/iplib.py (CachedOutput.update): Changed output memory
3949 * IPython/iplib.py (CachedOutput.update): Changed output memory
3949 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3950 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3950 input history we still use _i. Did this b/c these variable are
3951 input history we still use _i. Did this b/c these variable are
3951 very commonly used in interactive work, so the less we need to
3952 very commonly used in interactive work, so the less we need to
3952 type the better off we are.
3953 type the better off we are.
3953 (Magic.magic_prun): updated @prun to better handle the namespaces
3954 (Magic.magic_prun): updated @prun to better handle the namespaces
3954 the file will run in, including a fix for __name__ not being set
3955 the file will run in, including a fix for __name__ not being set
3955 before.
3956 before.
3956
3957
3957 2002-01-20 Fernando Perez <fperez@colorado.edu>
3958 2002-01-20 Fernando Perez <fperez@colorado.edu>
3958
3959
3959 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3960 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3960 extra garbage for Python 2.2. Need to look more carefully into
3961 extra garbage for Python 2.2. Need to look more carefully into
3961 this later.
3962 this later.
3962
3963
3963 2002-01-19 Fernando Perez <fperez@colorado.edu>
3964 2002-01-19 Fernando Perez <fperez@colorado.edu>
3964
3965
3965 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3966 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3966 display SyntaxError exceptions properly formatted when they occur
3967 display SyntaxError exceptions properly formatted when they occur
3967 (they can be triggered by imported code).
3968 (they can be triggered by imported code).
3968
3969
3969 2002-01-18 Fernando Perez <fperez@colorado.edu>
3970 2002-01-18 Fernando Perez <fperez@colorado.edu>
3970
3971
3971 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3972 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3972 SyntaxError exceptions are reported nicely formatted, instead of
3973 SyntaxError exceptions are reported nicely formatted, instead of
3973 spitting out only offset information as before.
3974 spitting out only offset information as before.
3974 (Magic.magic_prun): Added the @prun function for executing
3975 (Magic.magic_prun): Added the @prun function for executing
3975 programs with command line args inside IPython.
3976 programs with command line args inside IPython.
3976
3977
3977 2002-01-16 Fernando Perez <fperez@colorado.edu>
3978 2002-01-16 Fernando Perez <fperez@colorado.edu>
3978
3979
3979 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3980 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3980 to *not* include the last item given in a range. This brings their
3981 to *not* include the last item given in a range. This brings their
3981 behavior in line with Python's slicing:
3982 behavior in line with Python's slicing:
3982 a[n1:n2] -> a[n1]...a[n2-1]
3983 a[n1:n2] -> a[n1]...a[n2-1]
3983 It may be a bit less convenient, but I prefer to stick to Python's
3984 It may be a bit less convenient, but I prefer to stick to Python's
3984 conventions *everywhere*, so users never have to wonder.
3985 conventions *everywhere*, so users never have to wonder.
3985 (Magic.magic_macro): Added @macro function to ease the creation of
3986 (Magic.magic_macro): Added @macro function to ease the creation of
3986 macros.
3987 macros.
3987
3988
3988 2002-01-05 Fernando Perez <fperez@colorado.edu>
3989 2002-01-05 Fernando Perez <fperez@colorado.edu>
3989
3990
3990 * Released 0.2.4.
3991 * Released 0.2.4.
3991
3992
3992 * IPython/iplib.py (Magic.magic_pdef):
3993 * IPython/iplib.py (Magic.magic_pdef):
3993 (InteractiveShell.safe_execfile): report magic lines and error
3994 (InteractiveShell.safe_execfile): report magic lines and error
3994 lines without line numbers so one can easily copy/paste them for
3995 lines without line numbers so one can easily copy/paste them for
3995 re-execution.
3996 re-execution.
3996
3997
3997 * Updated manual with recent changes.
3998 * Updated manual with recent changes.
3998
3999
3999 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4000 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4000 docstring printing when class? is called. Very handy for knowing
4001 docstring printing when class? is called. Very handy for knowing
4001 how to create class instances (as long as __init__ is well
4002 how to create class instances (as long as __init__ is well
4002 documented, of course :)
4003 documented, of course :)
4003 (Magic.magic_doc): print both class and constructor docstrings.
4004 (Magic.magic_doc): print both class and constructor docstrings.
4004 (Magic.magic_pdef): give constructor info if passed a class and
4005 (Magic.magic_pdef): give constructor info if passed a class and
4005 __call__ info for callable object instances.
4006 __call__ info for callable object instances.
4006
4007
4007 2002-01-04 Fernando Perez <fperez@colorado.edu>
4008 2002-01-04 Fernando Perez <fperez@colorado.edu>
4008
4009
4009 * Made deep_reload() off by default. It doesn't always work
4010 * Made deep_reload() off by default. It doesn't always work
4010 exactly as intended, so it's probably safer to have it off. It's
4011 exactly as intended, so it's probably safer to have it off. It's
4011 still available as dreload() anyway, so nothing is lost.
4012 still available as dreload() anyway, so nothing is lost.
4012
4013
4013 2002-01-02 Fernando Perez <fperez@colorado.edu>
4014 2002-01-02 Fernando Perez <fperez@colorado.edu>
4014
4015
4015 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4016 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4016 so I wanted an updated release).
4017 so I wanted an updated release).
4017
4018
4018 2001-12-27 Fernando Perez <fperez@colorado.edu>
4019 2001-12-27 Fernando Perez <fperez@colorado.edu>
4019
4020
4020 * IPython/iplib.py (InteractiveShell.interact): Added the original
4021 * IPython/iplib.py (InteractiveShell.interact): Added the original
4021 code from 'code.py' for this module in order to change the
4022 code from 'code.py' for this module in order to change the
4022 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4023 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4023 the history cache would break when the user hit Ctrl-C, and
4024 the history cache would break when the user hit Ctrl-C, and
4024 interact() offers no way to add any hooks to it.
4025 interact() offers no way to add any hooks to it.
4025
4026
4026 2001-12-23 Fernando Perez <fperez@colorado.edu>
4027 2001-12-23 Fernando Perez <fperez@colorado.edu>
4027
4028
4028 * setup.py: added check for 'MANIFEST' before trying to remove
4029 * setup.py: added check for 'MANIFEST' before trying to remove
4029 it. Thanks to Sean Reifschneider.
4030 it. Thanks to Sean Reifschneider.
4030
4031
4031 2001-12-22 Fernando Perez <fperez@colorado.edu>
4032 2001-12-22 Fernando Perez <fperez@colorado.edu>
4032
4033
4033 * Released 0.2.2.
4034 * Released 0.2.2.
4034
4035
4035 * Finished (reasonably) writing the manual. Later will add the
4036 * Finished (reasonably) writing the manual. Later will add the
4036 python-standard navigation stylesheets, but for the time being
4037 python-standard navigation stylesheets, but for the time being
4037 it's fairly complete. Distribution will include html and pdf
4038 it's fairly complete. Distribution will include html and pdf
4038 versions.
4039 versions.
4039
4040
4040 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4041 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4041 (MayaVi author).
4042 (MayaVi author).
4042
4043
4043 2001-12-21 Fernando Perez <fperez@colorado.edu>
4044 2001-12-21 Fernando Perez <fperez@colorado.edu>
4044
4045
4045 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4046 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4046 good public release, I think (with the manual and the distutils
4047 good public release, I think (with the manual and the distutils
4047 installer). The manual can use some work, but that can go
4048 installer). The manual can use some work, but that can go
4048 slowly. Otherwise I think it's quite nice for end users. Next
4049 slowly. Otherwise I think it's quite nice for end users. Next
4049 summer, rewrite the guts of it...
4050 summer, rewrite the guts of it...
4050
4051
4051 * Changed format of ipythonrc files to use whitespace as the
4052 * Changed format of ipythonrc files to use whitespace as the
4052 separator instead of an explicit '='. Cleaner.
4053 separator instead of an explicit '='. Cleaner.
4053
4054
4054 2001-12-20 Fernando Perez <fperez@colorado.edu>
4055 2001-12-20 Fernando Perez <fperez@colorado.edu>
4055
4056
4056 * Started a manual in LyX. For now it's just a quick merge of the
4057 * Started a manual in LyX. For now it's just a quick merge of the
4057 various internal docstrings and READMEs. Later it may grow into a
4058 various internal docstrings and READMEs. Later it may grow into a
4058 nice, full-blown manual.
4059 nice, full-blown manual.
4059
4060
4060 * Set up a distutils based installer. Installation should now be
4061 * Set up a distutils based installer. Installation should now be
4061 trivially simple for end-users.
4062 trivially simple for end-users.
4062
4063
4063 2001-12-11 Fernando Perez <fperez@colorado.edu>
4064 2001-12-11 Fernando Perez <fperez@colorado.edu>
4064
4065
4065 * Released 0.2.0. First public release, announced it at
4066 * Released 0.2.0. First public release, announced it at
4066 comp.lang.python. From now on, just bugfixes...
4067 comp.lang.python. From now on, just bugfixes...
4067
4068
4068 * Went through all the files, set copyright/license notices and
4069 * Went through all the files, set copyright/license notices and
4069 cleaned up things. Ready for release.
4070 cleaned up things. Ready for release.
4070
4071
4071 2001-12-10 Fernando Perez <fperez@colorado.edu>
4072 2001-12-10 Fernando Perez <fperez@colorado.edu>
4072
4073
4073 * Changed the first-time installer not to use tarfiles. It's more
4074 * Changed the first-time installer not to use tarfiles. It's more
4074 robust now and less unix-dependent. Also makes it easier for
4075 robust now and less unix-dependent. Also makes it easier for
4075 people to later upgrade versions.
4076 people to later upgrade versions.
4076
4077
4077 * Changed @exit to @abort to reflect the fact that it's pretty
4078 * Changed @exit to @abort to reflect the fact that it's pretty
4078 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4079 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4079 becomes significant only when IPyhton is embedded: in that case,
4080 becomes significant only when IPyhton is embedded: in that case,
4080 C-D closes IPython only, but @abort kills the enclosing program
4081 C-D closes IPython only, but @abort kills the enclosing program
4081 too (unless it had called IPython inside a try catching
4082 too (unless it had called IPython inside a try catching
4082 SystemExit).
4083 SystemExit).
4083
4084
4084 * Created Shell module which exposes the actuall IPython Shell
4085 * Created Shell module which exposes the actuall IPython Shell
4085 classes, currently the normal and the embeddable one. This at
4086 classes, currently the normal and the embeddable one. This at
4086 least offers a stable interface we won't need to change when
4087 least offers a stable interface we won't need to change when
4087 (later) the internals are rewritten. That rewrite will be confined
4088 (later) the internals are rewritten. That rewrite will be confined
4088 to iplib and ipmaker, but the Shell interface should remain as is.
4089 to iplib and ipmaker, but the Shell interface should remain as is.
4089
4090
4090 * Added embed module which offers an embeddable IPShell object,
4091 * Added embed module which offers an embeddable IPShell object,
4091 useful to fire up IPython *inside* a running program. Great for
4092 useful to fire up IPython *inside* a running program. Great for
4092 debugging or dynamical data analysis.
4093 debugging or dynamical data analysis.
4093
4094
4094 2001-12-08 Fernando Perez <fperez@colorado.edu>
4095 2001-12-08 Fernando Perez <fperez@colorado.edu>
4095
4096
4096 * Fixed small bug preventing seeing info from methods of defined
4097 * Fixed small bug preventing seeing info from methods of defined
4097 objects (incorrect namespace in _ofind()).
4098 objects (incorrect namespace in _ofind()).
4098
4099
4099 * Documentation cleanup. Moved the main usage docstrings to a
4100 * Documentation cleanup. Moved the main usage docstrings to a
4100 separate file, usage.py (cleaner to maintain, and hopefully in the
4101 separate file, usage.py (cleaner to maintain, and hopefully in the
4101 future some perlpod-like way of producing interactive, man and
4102 future some perlpod-like way of producing interactive, man and
4102 html docs out of it will be found).
4103 html docs out of it will be found).
4103
4104
4104 * Added @profile to see your profile at any time.
4105 * Added @profile to see your profile at any time.
4105
4106
4106 * Added @p as an alias for 'print'. It's especially convenient if
4107 * Added @p as an alias for 'print'. It's especially convenient if
4107 using automagic ('p x' prints x).
4108 using automagic ('p x' prints x).
4108
4109
4109 * Small cleanups and fixes after a pychecker run.
4110 * Small cleanups and fixes after a pychecker run.
4110
4111
4111 * Changed the @cd command to handle @cd - and @cd -<n> for
4112 * Changed the @cd command to handle @cd - and @cd -<n> for
4112 visiting any directory in _dh.
4113 visiting any directory in _dh.
4113
4114
4114 * Introduced _dh, a history of visited directories. @dhist prints
4115 * Introduced _dh, a history of visited directories. @dhist prints
4115 it out with numbers.
4116 it out with numbers.
4116
4117
4117 2001-12-07 Fernando Perez <fperez@colorado.edu>
4118 2001-12-07 Fernando Perez <fperez@colorado.edu>
4118
4119
4119 * Released 0.1.22
4120 * Released 0.1.22
4120
4121
4121 * Made initialization a bit more robust against invalid color
4122 * Made initialization a bit more robust against invalid color
4122 options in user input (exit, not traceback-crash).
4123 options in user input (exit, not traceback-crash).
4123
4124
4124 * Changed the bug crash reporter to write the report only in the
4125 * Changed the bug crash reporter to write the report only in the
4125 user's .ipython directory. That way IPython won't litter people's
4126 user's .ipython directory. That way IPython won't litter people's
4126 hard disks with crash files all over the place. Also print on
4127 hard disks with crash files all over the place. Also print on
4127 screen the necessary mail command.
4128 screen the necessary mail command.
4128
4129
4129 * With the new ultraTB, implemented LightBG color scheme for light
4130 * With the new ultraTB, implemented LightBG color scheme for light
4130 background terminals. A lot of people like white backgrounds, so I
4131 background terminals. A lot of people like white backgrounds, so I
4131 guess we should at least give them something readable.
4132 guess we should at least give them something readable.
4132
4133
4133 2001-12-06 Fernando Perez <fperez@colorado.edu>
4134 2001-12-06 Fernando Perez <fperez@colorado.edu>
4134
4135
4135 * Modified the structure of ultraTB. Now there's a proper class
4136 * Modified the structure of ultraTB. Now there's a proper class
4136 for tables of color schemes which allow adding schemes easily and
4137 for tables of color schemes which allow adding schemes easily and
4137 switching the active scheme without creating a new instance every
4138 switching the active scheme without creating a new instance every
4138 time (which was ridiculous). The syntax for creating new schemes
4139 time (which was ridiculous). The syntax for creating new schemes
4139 is also cleaner. I think ultraTB is finally done, with a clean
4140 is also cleaner. I think ultraTB is finally done, with a clean
4140 class structure. Names are also much cleaner (now there's proper
4141 class structure. Names are also much cleaner (now there's proper
4141 color tables, no need for every variable to also have 'color' in
4142 color tables, no need for every variable to also have 'color' in
4142 its name).
4143 its name).
4143
4144
4144 * Broke down genutils into separate files. Now genutils only
4145 * Broke down genutils into separate files. Now genutils only
4145 contains utility functions, and classes have been moved to their
4146 contains utility functions, and classes have been moved to their
4146 own files (they had enough independent functionality to warrant
4147 own files (they had enough independent functionality to warrant
4147 it): ConfigLoader, OutputTrap, Struct.
4148 it): ConfigLoader, OutputTrap, Struct.
4148
4149
4149 2001-12-05 Fernando Perez <fperez@colorado.edu>
4150 2001-12-05 Fernando Perez <fperez@colorado.edu>
4150
4151
4151 * IPython turns 21! Released version 0.1.21, as a candidate for
4152 * IPython turns 21! Released version 0.1.21, as a candidate for
4152 public consumption. If all goes well, release in a few days.
4153 public consumption. If all goes well, release in a few days.
4153
4154
4154 * Fixed path bug (files in Extensions/ directory wouldn't be found
4155 * Fixed path bug (files in Extensions/ directory wouldn't be found
4155 unless IPython/ was explicitly in sys.path).
4156 unless IPython/ was explicitly in sys.path).
4156
4157
4157 * Extended the FlexCompleter class as MagicCompleter to allow
4158 * Extended the FlexCompleter class as MagicCompleter to allow
4158 completion of @-starting lines.
4159 completion of @-starting lines.
4159
4160
4160 * Created __release__.py file as a central repository for release
4161 * Created __release__.py file as a central repository for release
4161 info that other files can read from.
4162 info that other files can read from.
4162
4163
4163 * Fixed small bug in logging: when logging was turned on in
4164 * Fixed small bug in logging: when logging was turned on in
4164 mid-session, old lines with special meanings (!@?) were being
4165 mid-session, old lines with special meanings (!@?) were being
4165 logged without the prepended comment, which is necessary since
4166 logged without the prepended comment, which is necessary since
4166 they are not truly valid python syntax. This should make session
4167 they are not truly valid python syntax. This should make session
4167 restores produce less errors.
4168 restores produce less errors.
4168
4169
4169 * The namespace cleanup forced me to make a FlexCompleter class
4170 * The namespace cleanup forced me to make a FlexCompleter class
4170 which is nothing but a ripoff of rlcompleter, but with selectable
4171 which is nothing but a ripoff of rlcompleter, but with selectable
4171 namespace (rlcompleter only works in __main__.__dict__). I'll try
4172 namespace (rlcompleter only works in __main__.__dict__). I'll try
4172 to submit a note to the authors to see if this change can be
4173 to submit a note to the authors to see if this change can be
4173 incorporated in future rlcompleter releases (Dec.6: done)
4174 incorporated in future rlcompleter releases (Dec.6: done)
4174
4175
4175 * More fixes to namespace handling. It was a mess! Now all
4176 * More fixes to namespace handling. It was a mess! Now all
4176 explicit references to __main__.__dict__ are gone (except when
4177 explicit references to __main__.__dict__ are gone (except when
4177 really needed) and everything is handled through the namespace
4178 really needed) and everything is handled through the namespace
4178 dicts in the IPython instance. We seem to be getting somewhere
4179 dicts in the IPython instance. We seem to be getting somewhere
4179 with this, finally...
4180 with this, finally...
4180
4181
4181 * Small documentation updates.
4182 * Small documentation updates.
4182
4183
4183 * Created the Extensions directory under IPython (with an
4184 * Created the Extensions directory under IPython (with an
4184 __init__.py). Put the PhysicalQ stuff there. This directory should
4185 __init__.py). Put the PhysicalQ stuff there. This directory should
4185 be used for all special-purpose extensions.
4186 be used for all special-purpose extensions.
4186
4187
4187 * File renaming:
4188 * File renaming:
4188 ipythonlib --> ipmaker
4189 ipythonlib --> ipmaker
4189 ipplib --> iplib
4190 ipplib --> iplib
4190 This makes a bit more sense in terms of what these files actually do.
4191 This makes a bit more sense in terms of what these files actually do.
4191
4192
4192 * Moved all the classes and functions in ipythonlib to ipplib, so
4193 * Moved all the classes and functions in ipythonlib to ipplib, so
4193 now ipythonlib only has make_IPython(). This will ease up its
4194 now ipythonlib only has make_IPython(). This will ease up its
4194 splitting in smaller functional chunks later.
4195 splitting in smaller functional chunks later.
4195
4196
4196 * Cleaned up (done, I think) output of @whos. Better column
4197 * Cleaned up (done, I think) output of @whos. Better column
4197 formatting, and now shows str(var) for as much as it can, which is
4198 formatting, and now shows str(var) for as much as it can, which is
4198 typically what one gets with a 'print var'.
4199 typically what one gets with a 'print var'.
4199
4200
4200 2001-12-04 Fernando Perez <fperez@colorado.edu>
4201 2001-12-04 Fernando Perez <fperez@colorado.edu>
4201
4202
4202 * Fixed namespace problems. Now builtin/IPyhton/user names get
4203 * Fixed namespace problems. Now builtin/IPyhton/user names get
4203 properly reported in their namespace. Internal namespace handling
4204 properly reported in their namespace. Internal namespace handling
4204 is finally getting decent (not perfect yet, but much better than
4205 is finally getting decent (not perfect yet, but much better than
4205 the ad-hoc mess we had).
4206 the ad-hoc mess we had).
4206
4207
4207 * Removed -exit option. If people just want to run a python
4208 * Removed -exit option. If people just want to run a python
4208 script, that's what the normal interpreter is for. Less
4209 script, that's what the normal interpreter is for. Less
4209 unnecessary options, less chances for bugs.
4210 unnecessary options, less chances for bugs.
4210
4211
4211 * Added a crash handler which generates a complete post-mortem if
4212 * Added a crash handler which generates a complete post-mortem if
4212 IPython crashes. This will help a lot in tracking bugs down the
4213 IPython crashes. This will help a lot in tracking bugs down the
4213 road.
4214 road.
4214
4215
4215 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4216 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4216 which were boud to functions being reassigned would bypass the
4217 which were boud to functions being reassigned would bypass the
4217 logger, breaking the sync of _il with the prompt counter. This
4218 logger, breaking the sync of _il with the prompt counter. This
4218 would then crash IPython later when a new line was logged.
4219 would then crash IPython later when a new line was logged.
4219
4220
4220 2001-12-02 Fernando Perez <fperez@colorado.edu>
4221 2001-12-02 Fernando Perez <fperez@colorado.edu>
4221
4222
4222 * Made IPython a package. This means people don't have to clutter
4223 * Made IPython a package. This means people don't have to clutter
4223 their sys.path with yet another directory. Changed the INSTALL
4224 their sys.path with yet another directory. Changed the INSTALL
4224 file accordingly.
4225 file accordingly.
4225
4226
4226 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4227 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4227 sorts its output (so @who shows it sorted) and @whos formats the
4228 sorts its output (so @who shows it sorted) and @whos formats the
4228 table according to the width of the first column. Nicer, easier to
4229 table according to the width of the first column. Nicer, easier to
4229 read. Todo: write a generic table_format() which takes a list of
4230 read. Todo: write a generic table_format() which takes a list of
4230 lists and prints it nicely formatted, with optional row/column
4231 lists and prints it nicely formatted, with optional row/column
4231 separators and proper padding and justification.
4232 separators and proper padding and justification.
4232
4233
4233 * Released 0.1.20
4234 * Released 0.1.20
4234
4235
4235 * Fixed bug in @log which would reverse the inputcache list (a
4236 * Fixed bug in @log which would reverse the inputcache list (a
4236 copy operation was missing).
4237 copy operation was missing).
4237
4238
4238 * Code cleanup. @config was changed to use page(). Better, since
4239 * Code cleanup. @config was changed to use page(). Better, since
4239 its output is always quite long.
4240 its output is always quite long.
4240
4241
4241 * Itpl is back as a dependency. I was having too many problems
4242 * Itpl is back as a dependency. I was having too many problems
4242 getting the parametric aliases to work reliably, and it's just
4243 getting the parametric aliases to work reliably, and it's just
4243 easier to code weird string operations with it than playing %()s
4244 easier to code weird string operations with it than playing %()s
4244 games. It's only ~6k, so I don't think it's too big a deal.
4245 games. It's only ~6k, so I don't think it's too big a deal.
4245
4246
4246 * Found (and fixed) a very nasty bug with history. !lines weren't
4247 * Found (and fixed) a very nasty bug with history. !lines weren't
4247 getting cached, and the out of sync caches would crash
4248 getting cached, and the out of sync caches would crash
4248 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4249 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4249 division of labor a bit better. Bug fixed, cleaner structure.
4250 division of labor a bit better. Bug fixed, cleaner structure.
4250
4251
4251 2001-12-01 Fernando Perez <fperez@colorado.edu>
4252 2001-12-01 Fernando Perez <fperez@colorado.edu>
4252
4253
4253 * Released 0.1.19
4254 * Released 0.1.19
4254
4255
4255 * Added option -n to @hist to prevent line number printing. Much
4256 * Added option -n to @hist to prevent line number printing. Much
4256 easier to copy/paste code this way.
4257 easier to copy/paste code this way.
4257
4258
4258 * Created global _il to hold the input list. Allows easy
4259 * Created global _il to hold the input list. Allows easy
4259 re-execution of blocks of code by slicing it (inspired by Janko's
4260 re-execution of blocks of code by slicing it (inspired by Janko's
4260 comment on 'macros').
4261 comment on 'macros').
4261
4262
4262 * Small fixes and doc updates.
4263 * Small fixes and doc updates.
4263
4264
4264 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4265 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4265 much too fragile with automagic. Handles properly multi-line
4266 much too fragile with automagic. Handles properly multi-line
4266 statements and takes parameters.
4267 statements and takes parameters.
4267
4268
4268 2001-11-30 Fernando Perez <fperez@colorado.edu>
4269 2001-11-30 Fernando Perez <fperez@colorado.edu>
4269
4270
4270 * Version 0.1.18 released.
4271 * Version 0.1.18 released.
4271
4272
4272 * Fixed nasty namespace bug in initial module imports.
4273 * Fixed nasty namespace bug in initial module imports.
4273
4274
4274 * Added copyright/license notes to all code files (except
4275 * Added copyright/license notes to all code files (except
4275 DPyGetOpt). For the time being, LGPL. That could change.
4276 DPyGetOpt). For the time being, LGPL. That could change.
4276
4277
4277 * Rewrote a much nicer README, updated INSTALL, cleaned up
4278 * Rewrote a much nicer README, updated INSTALL, cleaned up
4278 ipythonrc-* samples.
4279 ipythonrc-* samples.
4279
4280
4280 * Overall code/documentation cleanup. Basically ready for
4281 * Overall code/documentation cleanup. Basically ready for
4281 release. Only remaining thing: licence decision (LGPL?).
4282 release. Only remaining thing: licence decision (LGPL?).
4282
4283
4283 * Converted load_config to a class, ConfigLoader. Now recursion
4284 * Converted load_config to a class, ConfigLoader. Now recursion
4284 control is better organized. Doesn't include the same file twice.
4285 control is better organized. Doesn't include the same file twice.
4285
4286
4286 2001-11-29 Fernando Perez <fperez@colorado.edu>
4287 2001-11-29 Fernando Perez <fperez@colorado.edu>
4287
4288
4288 * Got input history working. Changed output history variables from
4289 * Got input history working. Changed output history variables from
4289 _p to _o so that _i is for input and _o for output. Just cleaner
4290 _p to _o so that _i is for input and _o for output. Just cleaner
4290 convention.
4291 convention.
4291
4292
4292 * Implemented parametric aliases. This pretty much allows the
4293 * Implemented parametric aliases. This pretty much allows the
4293 alias system to offer full-blown shell convenience, I think.
4294 alias system to offer full-blown shell convenience, I think.
4294
4295
4295 * Version 0.1.17 released, 0.1.18 opened.
4296 * Version 0.1.17 released, 0.1.18 opened.
4296
4297
4297 * dot_ipython/ipythonrc (alias): added documentation.
4298 * dot_ipython/ipythonrc (alias): added documentation.
4298 (xcolor): Fixed small bug (xcolors -> xcolor)
4299 (xcolor): Fixed small bug (xcolors -> xcolor)
4299
4300
4300 * Changed the alias system. Now alias is a magic command to define
4301 * Changed the alias system. Now alias is a magic command to define
4301 aliases just like the shell. Rationale: the builtin magics should
4302 aliases just like the shell. Rationale: the builtin magics should
4302 be there for things deeply connected to IPython's
4303 be there for things deeply connected to IPython's
4303 architecture. And this is a much lighter system for what I think
4304 architecture. And this is a much lighter system for what I think
4304 is the really important feature: allowing users to define quickly
4305 is the really important feature: allowing users to define quickly
4305 magics that will do shell things for them, so they can customize
4306 magics that will do shell things for them, so they can customize
4306 IPython easily to match their work habits. If someone is really
4307 IPython easily to match their work habits. If someone is really
4307 desperate to have another name for a builtin alias, they can
4308 desperate to have another name for a builtin alias, they can
4308 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4309 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4309 works.
4310 works.
4310
4311
4311 2001-11-28 Fernando Perez <fperez@colorado.edu>
4312 2001-11-28 Fernando Perez <fperez@colorado.edu>
4312
4313
4313 * Changed @file so that it opens the source file at the proper
4314 * Changed @file so that it opens the source file at the proper
4314 line. Since it uses less, if your EDITOR environment is
4315 line. Since it uses less, if your EDITOR environment is
4315 configured, typing v will immediately open your editor of choice
4316 configured, typing v will immediately open your editor of choice
4316 right at the line where the object is defined. Not as quick as
4317 right at the line where the object is defined. Not as quick as
4317 having a direct @edit command, but for all intents and purposes it
4318 having a direct @edit command, but for all intents and purposes it
4318 works. And I don't have to worry about writing @edit to deal with
4319 works. And I don't have to worry about writing @edit to deal with
4319 all the editors, less does that.
4320 all the editors, less does that.
4320
4321
4321 * Version 0.1.16 released, 0.1.17 opened.
4322 * Version 0.1.16 released, 0.1.17 opened.
4322
4323
4323 * Fixed some nasty bugs in the page/page_dumb combo that could
4324 * Fixed some nasty bugs in the page/page_dumb combo that could
4324 crash IPython.
4325 crash IPython.
4325
4326
4326 2001-11-27 Fernando Perez <fperez@colorado.edu>
4327 2001-11-27 Fernando Perez <fperez@colorado.edu>
4327
4328
4328 * Version 0.1.15 released, 0.1.16 opened.
4329 * Version 0.1.15 released, 0.1.16 opened.
4329
4330
4330 * Finally got ? and ?? to work for undefined things: now it's
4331 * Finally got ? and ?? to work for undefined things: now it's
4331 possible to type {}.get? and get information about the get method
4332 possible to type {}.get? and get information about the get method
4332 of dicts, or os.path? even if only os is defined (so technically
4333 of dicts, or os.path? even if only os is defined (so technically
4333 os.path isn't). Works at any level. For example, after import os,
4334 os.path isn't). Works at any level. For example, after import os,
4334 os?, os.path?, os.path.abspath? all work. This is great, took some
4335 os?, os.path?, os.path.abspath? all work. This is great, took some
4335 work in _ofind.
4336 work in _ofind.
4336
4337
4337 * Fixed more bugs with logging. The sanest way to do it was to add
4338 * Fixed more bugs with logging. The sanest way to do it was to add
4338 to @log a 'mode' parameter. Killed two in one shot (this mode
4339 to @log a 'mode' parameter. Killed two in one shot (this mode
4339 option was a request of Janko's). I think it's finally clean
4340 option was a request of Janko's). I think it's finally clean
4340 (famous last words).
4341 (famous last words).
4341
4342
4342 * Added a page_dumb() pager which does a decent job of paging on
4343 * Added a page_dumb() pager which does a decent job of paging on
4343 screen, if better things (like less) aren't available. One less
4344 screen, if better things (like less) aren't available. One less
4344 unix dependency (someday maybe somebody will port this to
4345 unix dependency (someday maybe somebody will port this to
4345 windows).
4346 windows).
4346
4347
4347 * Fixed problem in magic_log: would lock of logging out if log
4348 * Fixed problem in magic_log: would lock of logging out if log
4348 creation failed (because it would still think it had succeeded).
4349 creation failed (because it would still think it had succeeded).
4349
4350
4350 * Improved the page() function using curses to auto-detect screen
4351 * Improved the page() function using curses to auto-detect screen
4351 size. Now it can make a much better decision on whether to print
4352 size. Now it can make a much better decision on whether to print
4352 or page a string. Option screen_length was modified: a value 0
4353 or page a string. Option screen_length was modified: a value 0
4353 means auto-detect, and that's the default now.
4354 means auto-detect, and that's the default now.
4354
4355
4355 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4356 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4356 go out. I'll test it for a few days, then talk to Janko about
4357 go out. I'll test it for a few days, then talk to Janko about
4357 licences and announce it.
4358 licences and announce it.
4358
4359
4359 * Fixed the length of the auto-generated ---> prompt which appears
4360 * Fixed the length of the auto-generated ---> prompt which appears
4360 for auto-parens and auto-quotes. Getting this right isn't trivial,
4361 for auto-parens and auto-quotes. Getting this right isn't trivial,
4361 with all the color escapes, different prompt types and optional
4362 with all the color escapes, different prompt types and optional
4362 separators. But it seems to be working in all the combinations.
4363 separators. But it seems to be working in all the combinations.
4363
4364
4364 2001-11-26 Fernando Perez <fperez@colorado.edu>
4365 2001-11-26 Fernando Perez <fperez@colorado.edu>
4365
4366
4366 * Wrote a regexp filter to get option types from the option names
4367 * Wrote a regexp filter to get option types from the option names
4367 string. This eliminates the need to manually keep two duplicate
4368 string. This eliminates the need to manually keep two duplicate
4368 lists.
4369 lists.
4369
4370
4370 * Removed the unneeded check_option_names. Now options are handled
4371 * Removed the unneeded check_option_names. Now options are handled
4371 in a much saner manner and it's easy to visually check that things
4372 in a much saner manner and it's easy to visually check that things
4372 are ok.
4373 are ok.
4373
4374
4374 * Updated version numbers on all files I modified to carry a
4375 * Updated version numbers on all files I modified to carry a
4375 notice so Janko and Nathan have clear version markers.
4376 notice so Janko and Nathan have clear version markers.
4376
4377
4377 * Updated docstring for ultraTB with my changes. I should send
4378 * Updated docstring for ultraTB with my changes. I should send
4378 this to Nathan.
4379 this to Nathan.
4379
4380
4380 * Lots of small fixes. Ran everything through pychecker again.
4381 * Lots of small fixes. Ran everything through pychecker again.
4381
4382
4382 * Made loading of deep_reload an cmd line option. If it's not too
4383 * Made loading of deep_reload an cmd line option. If it's not too
4383 kosher, now people can just disable it. With -nodeep_reload it's
4384 kosher, now people can just disable it. With -nodeep_reload it's
4384 still available as dreload(), it just won't overwrite reload().
4385 still available as dreload(), it just won't overwrite reload().
4385
4386
4386 * Moved many options to the no| form (-opt and -noopt
4387 * Moved many options to the no| form (-opt and -noopt
4387 accepted). Cleaner.
4388 accepted). Cleaner.
4388
4389
4389 * Changed magic_log so that if called with no parameters, it uses
4390 * Changed magic_log so that if called with no parameters, it uses
4390 'rotate' mode. That way auto-generated logs aren't automatically
4391 'rotate' mode. That way auto-generated logs aren't automatically
4391 over-written. For normal logs, now a backup is made if it exists
4392 over-written. For normal logs, now a backup is made if it exists
4392 (only 1 level of backups). A new 'backup' mode was added to the
4393 (only 1 level of backups). A new 'backup' mode was added to the
4393 Logger class to support this. This was a request by Janko.
4394 Logger class to support this. This was a request by Janko.
4394
4395
4395 * Added @logoff/@logon to stop/restart an active log.
4396 * Added @logoff/@logon to stop/restart an active log.
4396
4397
4397 * Fixed a lot of bugs in log saving/replay. It was pretty
4398 * Fixed a lot of bugs in log saving/replay. It was pretty
4398 broken. Now special lines (!@,/) appear properly in the command
4399 broken. Now special lines (!@,/) appear properly in the command
4399 history after a log replay.
4400 history after a log replay.
4400
4401
4401 * Tried and failed to implement full session saving via pickle. My
4402 * Tried and failed to implement full session saving via pickle. My
4402 idea was to pickle __main__.__dict__, but modules can't be
4403 idea was to pickle __main__.__dict__, but modules can't be
4403 pickled. This would be a better alternative to replaying logs, but
4404 pickled. This would be a better alternative to replaying logs, but
4404 seems quite tricky to get to work. Changed -session to be called
4405 seems quite tricky to get to work. Changed -session to be called
4405 -logplay, which more accurately reflects what it does. And if we
4406 -logplay, which more accurately reflects what it does. And if we
4406 ever get real session saving working, -session is now available.
4407 ever get real session saving working, -session is now available.
4407
4408
4408 * Implemented color schemes for prompts also. As for tracebacks,
4409 * Implemented color schemes for prompts also. As for tracebacks,
4409 currently only NoColor and Linux are supported. But now the
4410 currently only NoColor and Linux are supported. But now the
4410 infrastructure is in place, based on a generic ColorScheme
4411 infrastructure is in place, based on a generic ColorScheme
4411 class. So writing and activating new schemes both for the prompts
4412 class. So writing and activating new schemes both for the prompts
4412 and the tracebacks should be straightforward.
4413 and the tracebacks should be straightforward.
4413
4414
4414 * Version 0.1.13 released, 0.1.14 opened.
4415 * Version 0.1.13 released, 0.1.14 opened.
4415
4416
4416 * Changed handling of options for output cache. Now counter is
4417 * Changed handling of options for output cache. Now counter is
4417 hardwired starting at 1 and one specifies the maximum number of
4418 hardwired starting at 1 and one specifies the maximum number of
4418 entries *in the outcache* (not the max prompt counter). This is
4419 entries *in the outcache* (not the max prompt counter). This is
4419 much better, since many statements won't increase the cache
4420 much better, since many statements won't increase the cache
4420 count. It also eliminated some confusing options, now there's only
4421 count. It also eliminated some confusing options, now there's only
4421 one: cache_size.
4422 one: cache_size.
4422
4423
4423 * Added 'alias' magic function and magic_alias option in the
4424 * Added 'alias' magic function and magic_alias option in the
4424 ipythonrc file. Now the user can easily define whatever names he
4425 ipythonrc file. Now the user can easily define whatever names he
4425 wants for the magic functions without having to play weird
4426 wants for the magic functions without having to play weird
4426 namespace games. This gives IPython a real shell-like feel.
4427 namespace games. This gives IPython a real shell-like feel.
4427
4428
4428 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4429 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4429 @ or not).
4430 @ or not).
4430
4431
4431 This was one of the last remaining 'visible' bugs (that I know
4432 This was one of the last remaining 'visible' bugs (that I know
4432 of). I think if I can clean up the session loading so it works
4433 of). I think if I can clean up the session loading so it works
4433 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4434 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4434 about licensing).
4435 about licensing).
4435
4436
4436 2001-11-25 Fernando Perez <fperez@colorado.edu>
4437 2001-11-25 Fernando Perez <fperez@colorado.edu>
4437
4438
4438 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4439 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4439 there's a cleaner distinction between what ? and ?? show.
4440 there's a cleaner distinction between what ? and ?? show.
4440
4441
4441 * Added screen_length option. Now the user can define his own
4442 * Added screen_length option. Now the user can define his own
4442 screen size for page() operations.
4443 screen size for page() operations.
4443
4444
4444 * Implemented magic shell-like functions with automatic code
4445 * Implemented magic shell-like functions with automatic code
4445 generation. Now adding another function is just a matter of adding
4446 generation. Now adding another function is just a matter of adding
4446 an entry to a dict, and the function is dynamically generated at
4447 an entry to a dict, and the function is dynamically generated at
4447 run-time. Python has some really cool features!
4448 run-time. Python has some really cool features!
4448
4449
4449 * Renamed many options to cleanup conventions a little. Now all
4450 * Renamed many options to cleanup conventions a little. Now all
4450 are lowercase, and only underscores where needed. Also in the code
4451 are lowercase, and only underscores where needed. Also in the code
4451 option name tables are clearer.
4452 option name tables are clearer.
4452
4453
4453 * Changed prompts a little. Now input is 'In [n]:' instead of
4454 * Changed prompts a little. Now input is 'In [n]:' instead of
4454 'In[n]:='. This allows it the numbers to be aligned with the
4455 'In[n]:='. This allows it the numbers to be aligned with the
4455 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4456 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4456 Python (it was a Mathematica thing). The '...' continuation prompt
4457 Python (it was a Mathematica thing). The '...' continuation prompt
4457 was also changed a little to align better.
4458 was also changed a little to align better.
4458
4459
4459 * Fixed bug when flushing output cache. Not all _p<n> variables
4460 * Fixed bug when flushing output cache. Not all _p<n> variables
4460 exist, so their deletion needs to be wrapped in a try:
4461 exist, so their deletion needs to be wrapped in a try:
4461
4462
4462 * Figured out how to properly use inspect.formatargspec() (it
4463 * Figured out how to properly use inspect.formatargspec() (it
4463 requires the args preceded by *). So I removed all the code from
4464 requires the args preceded by *). So I removed all the code from
4464 _get_pdef in Magic, which was just replicating that.
4465 _get_pdef in Magic, which was just replicating that.
4465
4466
4466 * Added test to prefilter to allow redefining magic function names
4467 * Added test to prefilter to allow redefining magic function names
4467 as variables. This is ok, since the @ form is always available,
4468 as variables. This is ok, since the @ form is always available,
4468 but whe should allow the user to define a variable called 'ls' if
4469 but whe should allow the user to define a variable called 'ls' if
4469 he needs it.
4470 he needs it.
4470
4471
4471 * Moved the ToDo information from README into a separate ToDo.
4472 * Moved the ToDo information from README into a separate ToDo.
4472
4473
4473 * General code cleanup and small bugfixes. I think it's close to a
4474 * General code cleanup and small bugfixes. I think it's close to a
4474 state where it can be released, obviously with a big 'beta'
4475 state where it can be released, obviously with a big 'beta'
4475 warning on it.
4476 warning on it.
4476
4477
4477 * Got the magic function split to work. Now all magics are defined
4478 * Got the magic function split to work. Now all magics are defined
4478 in a separate class. It just organizes things a bit, and now
4479 in a separate class. It just organizes things a bit, and now
4479 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4480 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4480 was too long).
4481 was too long).
4481
4482
4482 * Changed @clear to @reset to avoid potential confusions with
4483 * Changed @clear to @reset to avoid potential confusions with
4483 the shell command clear. Also renamed @cl to @clear, which does
4484 the shell command clear. Also renamed @cl to @clear, which does
4484 exactly what people expect it to from their shell experience.
4485 exactly what people expect it to from their shell experience.
4485
4486
4486 Added a check to the @reset command (since it's so
4487 Added a check to the @reset command (since it's so
4487 destructive, it's probably a good idea to ask for confirmation).
4488 destructive, it's probably a good idea to ask for confirmation).
4488 But now reset only works for full namespace resetting. Since the
4489 But now reset only works for full namespace resetting. Since the
4489 del keyword is already there for deleting a few specific
4490 del keyword is already there for deleting a few specific
4490 variables, I don't see the point of having a redundant magic
4491 variables, I don't see the point of having a redundant magic
4491 function for the same task.
4492 function for the same task.
4492
4493
4493 2001-11-24 Fernando Perez <fperez@colorado.edu>
4494 2001-11-24 Fernando Perez <fperez@colorado.edu>
4494
4495
4495 * Updated the builtin docs (esp. the ? ones).
4496 * Updated the builtin docs (esp. the ? ones).
4496
4497
4497 * Ran all the code through pychecker. Not terribly impressed with
4498 * Ran all the code through pychecker. Not terribly impressed with
4498 it: lots of spurious warnings and didn't really find anything of
4499 it: lots of spurious warnings and didn't really find anything of
4499 substance (just a few modules being imported and not used).
4500 substance (just a few modules being imported and not used).
4500
4501
4501 * Implemented the new ultraTB functionality into IPython. New
4502 * Implemented the new ultraTB functionality into IPython. New
4502 option: xcolors. This chooses color scheme. xmode now only selects
4503 option: xcolors. This chooses color scheme. xmode now only selects
4503 between Plain and Verbose. Better orthogonality.
4504 between Plain and Verbose. Better orthogonality.
4504
4505
4505 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4506 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4506 mode and color scheme for the exception handlers. Now it's
4507 mode and color scheme for the exception handlers. Now it's
4507 possible to have the verbose traceback with no coloring.
4508 possible to have the verbose traceback with no coloring.
4508
4509
4509 2001-11-23 Fernando Perez <fperez@colorado.edu>
4510 2001-11-23 Fernando Perez <fperez@colorado.edu>
4510
4511
4511 * Version 0.1.12 released, 0.1.13 opened.
4512 * Version 0.1.12 released, 0.1.13 opened.
4512
4513
4513 * Removed option to set auto-quote and auto-paren escapes by
4514 * Removed option to set auto-quote and auto-paren escapes by
4514 user. The chances of breaking valid syntax are just too high. If
4515 user. The chances of breaking valid syntax are just too high. If
4515 someone *really* wants, they can always dig into the code.
4516 someone *really* wants, they can always dig into the code.
4516
4517
4517 * Made prompt separators configurable.
4518 * Made prompt separators configurable.
4518
4519
4519 2001-11-22 Fernando Perez <fperez@colorado.edu>
4520 2001-11-22 Fernando Perez <fperez@colorado.edu>
4520
4521
4521 * Small bugfixes in many places.
4522 * Small bugfixes in many places.
4522
4523
4523 * Removed the MyCompleter class from ipplib. It seemed redundant
4524 * Removed the MyCompleter class from ipplib. It seemed redundant
4524 with the C-p,C-n history search functionality. Less code to
4525 with the C-p,C-n history search functionality. Less code to
4525 maintain.
4526 maintain.
4526
4527
4527 * Moved all the original ipython.py code into ipythonlib.py. Right
4528 * Moved all the original ipython.py code into ipythonlib.py. Right
4528 now it's just one big dump into a function called make_IPython, so
4529 now it's just one big dump into a function called make_IPython, so
4529 no real modularity has been gained. But at least it makes the
4530 no real modularity has been gained. But at least it makes the
4530 wrapper script tiny, and since ipythonlib is a module, it gets
4531 wrapper script tiny, and since ipythonlib is a module, it gets
4531 compiled and startup is much faster.
4532 compiled and startup is much faster.
4532
4533
4533 This is a reasobably 'deep' change, so we should test it for a
4534 This is a reasobably 'deep' change, so we should test it for a
4534 while without messing too much more with the code.
4535 while without messing too much more with the code.
4535
4536
4536 2001-11-21 Fernando Perez <fperez@colorado.edu>
4537 2001-11-21 Fernando Perez <fperez@colorado.edu>
4537
4538
4538 * Version 0.1.11 released, 0.1.12 opened for further work.
4539 * Version 0.1.11 released, 0.1.12 opened for further work.
4539
4540
4540 * Removed dependency on Itpl. It was only needed in one place. It
4541 * Removed dependency on Itpl. It was only needed in one place. It
4541 would be nice if this became part of python, though. It makes life
4542 would be nice if this became part of python, though. It makes life
4542 *a lot* easier in some cases.
4543 *a lot* easier in some cases.
4543
4544
4544 * Simplified the prefilter code a bit. Now all handlers are
4545 * Simplified the prefilter code a bit. Now all handlers are
4545 expected to explicitly return a value (at least a blank string).
4546 expected to explicitly return a value (at least a blank string).
4546
4547
4547 * Heavy edits in ipplib. Removed the help system altogether. Now
4548 * Heavy edits in ipplib. Removed the help system altogether. Now
4548 obj?/?? is used for inspecting objects, a magic @doc prints
4549 obj?/?? is used for inspecting objects, a magic @doc prints
4549 docstrings, and full-blown Python help is accessed via the 'help'
4550 docstrings, and full-blown Python help is accessed via the 'help'
4550 keyword. This cleans up a lot of code (less to maintain) and does
4551 keyword. This cleans up a lot of code (less to maintain) and does
4551 the job. Since 'help' is now a standard Python component, might as
4552 the job. Since 'help' is now a standard Python component, might as
4552 well use it and remove duplicate functionality.
4553 well use it and remove duplicate functionality.
4553
4554
4554 Also removed the option to use ipplib as a standalone program. By
4555 Also removed the option to use ipplib as a standalone program. By
4555 now it's too dependent on other parts of IPython to function alone.
4556 now it's too dependent on other parts of IPython to function alone.
4556
4557
4557 * Fixed bug in genutils.pager. It would crash if the pager was
4558 * Fixed bug in genutils.pager. It would crash if the pager was
4558 exited immediately after opening (broken pipe).
4559 exited immediately after opening (broken pipe).
4559
4560
4560 * Trimmed down the VerboseTB reporting a little. The header is
4561 * Trimmed down the VerboseTB reporting a little. The header is
4561 much shorter now and the repeated exception arguments at the end
4562 much shorter now and the repeated exception arguments at the end
4562 have been removed. For interactive use the old header seemed a bit
4563 have been removed. For interactive use the old header seemed a bit
4563 excessive.
4564 excessive.
4564
4565
4565 * Fixed small bug in output of @whos for variables with multi-word
4566 * Fixed small bug in output of @whos for variables with multi-word
4566 types (only first word was displayed).
4567 types (only first word was displayed).
4567
4568
4568 2001-11-17 Fernando Perez <fperez@colorado.edu>
4569 2001-11-17 Fernando Perez <fperez@colorado.edu>
4569
4570
4570 * Version 0.1.10 released, 0.1.11 opened for further work.
4571 * Version 0.1.10 released, 0.1.11 opened for further work.
4571
4572
4572 * Modified dirs and friends. dirs now *returns* the stack (not
4573 * Modified dirs and friends. dirs now *returns* the stack (not
4573 prints), so one can manipulate it as a variable. Convenient to
4574 prints), so one can manipulate it as a variable. Convenient to
4574 travel along many directories.
4575 travel along many directories.
4575
4576
4576 * Fixed bug in magic_pdef: would only work with functions with
4577 * Fixed bug in magic_pdef: would only work with functions with
4577 arguments with default values.
4578 arguments with default values.
4578
4579
4579 2001-11-14 Fernando Perez <fperez@colorado.edu>
4580 2001-11-14 Fernando Perez <fperez@colorado.edu>
4580
4581
4581 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4582 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4582 example with IPython. Various other minor fixes and cleanups.
4583 example with IPython. Various other minor fixes and cleanups.
4583
4584
4584 * Version 0.1.9 released, 0.1.10 opened for further work.
4585 * Version 0.1.9 released, 0.1.10 opened for further work.
4585
4586
4586 * Added sys.path to the list of directories searched in the
4587 * Added sys.path to the list of directories searched in the
4587 execfile= option. It used to be the current directory and the
4588 execfile= option. It used to be the current directory and the
4588 user's IPYTHONDIR only.
4589 user's IPYTHONDIR only.
4589
4590
4590 2001-11-13 Fernando Perez <fperez@colorado.edu>
4591 2001-11-13 Fernando Perez <fperez@colorado.edu>
4591
4592
4592 * Reinstated the raw_input/prefilter separation that Janko had
4593 * Reinstated the raw_input/prefilter separation that Janko had
4593 initially. This gives a more convenient setup for extending the
4594 initially. This gives a more convenient setup for extending the
4594 pre-processor from the outside: raw_input always gets a string,
4595 pre-processor from the outside: raw_input always gets a string,
4595 and prefilter has to process it. We can then redefine prefilter
4596 and prefilter has to process it. We can then redefine prefilter
4596 from the outside and implement extensions for special
4597 from the outside and implement extensions for special
4597 purposes.
4598 purposes.
4598
4599
4599 Today I got one for inputting PhysicalQuantity objects
4600 Today I got one for inputting PhysicalQuantity objects
4600 (from Scientific) without needing any function calls at
4601 (from Scientific) without needing any function calls at
4601 all. Extremely convenient, and it's all done as a user-level
4602 all. Extremely convenient, and it's all done as a user-level
4602 extension (no IPython code was touched). Now instead of:
4603 extension (no IPython code was touched). Now instead of:
4603 a = PhysicalQuantity(4.2,'m/s**2')
4604 a = PhysicalQuantity(4.2,'m/s**2')
4604 one can simply say
4605 one can simply say
4605 a = 4.2 m/s**2
4606 a = 4.2 m/s**2
4606 or even
4607 or even
4607 a = 4.2 m/s^2
4608 a = 4.2 m/s^2
4608
4609
4609 I use this, but it's also a proof of concept: IPython really is
4610 I use this, but it's also a proof of concept: IPython really is
4610 fully user-extensible, even at the level of the parsing of the
4611 fully user-extensible, even at the level of the parsing of the
4611 command line. It's not trivial, but it's perfectly doable.
4612 command line. It's not trivial, but it's perfectly doable.
4612
4613
4613 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4614 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4614 the problem of modules being loaded in the inverse order in which
4615 the problem of modules being loaded in the inverse order in which
4615 they were defined in
4616 they were defined in
4616
4617
4617 * Version 0.1.8 released, 0.1.9 opened for further work.
4618 * Version 0.1.8 released, 0.1.9 opened for further work.
4618
4619
4619 * Added magics pdef, source and file. They respectively show the
4620 * Added magics pdef, source and file. They respectively show the
4620 definition line ('prototype' in C), source code and full python
4621 definition line ('prototype' in C), source code and full python
4621 file for any callable object. The object inspector oinfo uses
4622 file for any callable object. The object inspector oinfo uses
4622 these to show the same information.
4623 these to show the same information.
4623
4624
4624 * Version 0.1.7 released, 0.1.8 opened for further work.
4625 * Version 0.1.7 released, 0.1.8 opened for further work.
4625
4626
4626 * Separated all the magic functions into a class called Magic. The
4627 * Separated all the magic functions into a class called Magic. The
4627 InteractiveShell class was becoming too big for Xemacs to handle
4628 InteractiveShell class was becoming too big for Xemacs to handle
4628 (de-indenting a line would lock it up for 10 seconds while it
4629 (de-indenting a line would lock it up for 10 seconds while it
4629 backtracked on the whole class!)
4630 backtracked on the whole class!)
4630
4631
4631 FIXME: didn't work. It can be done, but right now namespaces are
4632 FIXME: didn't work. It can be done, but right now namespaces are
4632 all messed up. Do it later (reverted it for now, so at least
4633 all messed up. Do it later (reverted it for now, so at least
4633 everything works as before).
4634 everything works as before).
4634
4635
4635 * Got the object introspection system (magic_oinfo) working! I
4636 * Got the object introspection system (magic_oinfo) working! I
4636 think this is pretty much ready for release to Janko, so he can
4637 think this is pretty much ready for release to Janko, so he can
4637 test it for a while and then announce it. Pretty much 100% of what
4638 test it for a while and then announce it. Pretty much 100% of what
4638 I wanted for the 'phase 1' release is ready. Happy, tired.
4639 I wanted for the 'phase 1' release is ready. Happy, tired.
4639
4640
4640 2001-11-12 Fernando Perez <fperez@colorado.edu>
4641 2001-11-12 Fernando Perez <fperez@colorado.edu>
4641
4642
4642 * Version 0.1.6 released, 0.1.7 opened for further work.
4643 * Version 0.1.6 released, 0.1.7 opened for further work.
4643
4644
4644 * Fixed bug in printing: it used to test for truth before
4645 * Fixed bug in printing: it used to test for truth before
4645 printing, so 0 wouldn't print. Now checks for None.
4646 printing, so 0 wouldn't print. Now checks for None.
4646
4647
4647 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4648 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4648 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4649 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4649 reaches by hand into the outputcache. Think of a better way to do
4650 reaches by hand into the outputcache. Think of a better way to do
4650 this later.
4651 this later.
4651
4652
4652 * Various small fixes thanks to Nathan's comments.
4653 * Various small fixes thanks to Nathan's comments.
4653
4654
4654 * Changed magic_pprint to magic_Pprint. This way it doesn't
4655 * Changed magic_pprint to magic_Pprint. This way it doesn't
4655 collide with pprint() and the name is consistent with the command
4656 collide with pprint() and the name is consistent with the command
4656 line option.
4657 line option.
4657
4658
4658 * Changed prompt counter behavior to be fully like
4659 * Changed prompt counter behavior to be fully like
4659 Mathematica's. That is, even input that doesn't return a result
4660 Mathematica's. That is, even input that doesn't return a result
4660 raises the prompt counter. The old behavior was kind of confusing
4661 raises the prompt counter. The old behavior was kind of confusing
4661 (getting the same prompt number several times if the operation
4662 (getting the same prompt number several times if the operation
4662 didn't return a result).
4663 didn't return a result).
4663
4664
4664 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4665 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4665
4666
4666 * Fixed -Classic mode (wasn't working anymore).
4667 * Fixed -Classic mode (wasn't working anymore).
4667
4668
4668 * Added colored prompts using Nathan's new code. Colors are
4669 * Added colored prompts using Nathan's new code. Colors are
4669 currently hardwired, they can be user-configurable. For
4670 currently hardwired, they can be user-configurable. For
4670 developers, they can be chosen in file ipythonlib.py, at the
4671 developers, they can be chosen in file ipythonlib.py, at the
4671 beginning of the CachedOutput class def.
4672 beginning of the CachedOutput class def.
4672
4673
4673 2001-11-11 Fernando Perez <fperez@colorado.edu>
4674 2001-11-11 Fernando Perez <fperez@colorado.edu>
4674
4675
4675 * Version 0.1.5 released, 0.1.6 opened for further work.
4676 * Version 0.1.5 released, 0.1.6 opened for further work.
4676
4677
4677 * Changed magic_env to *return* the environment as a dict (not to
4678 * Changed magic_env to *return* the environment as a dict (not to
4678 print it). This way it prints, but it can also be processed.
4679 print it). This way it prints, but it can also be processed.
4679
4680
4680 * Added Verbose exception reporting to interactive
4681 * Added Verbose exception reporting to interactive
4681 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4682 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4682 traceback. Had to make some changes to the ultraTB file. This is
4683 traceback. Had to make some changes to the ultraTB file. This is
4683 probably the last 'big' thing in my mental todo list. This ties
4684 probably the last 'big' thing in my mental todo list. This ties
4684 in with the next entry:
4685 in with the next entry:
4685
4686
4686 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4687 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4687 has to specify is Plain, Color or Verbose for all exception
4688 has to specify is Plain, Color or Verbose for all exception
4688 handling.
4689 handling.
4689
4690
4690 * Removed ShellServices option. All this can really be done via
4691 * Removed ShellServices option. All this can really be done via
4691 the magic system. It's easier to extend, cleaner and has automatic
4692 the magic system. It's easier to extend, cleaner and has automatic
4692 namespace protection and documentation.
4693 namespace protection and documentation.
4693
4694
4694 2001-11-09 Fernando Perez <fperez@colorado.edu>
4695 2001-11-09 Fernando Perez <fperez@colorado.edu>
4695
4696
4696 * Fixed bug in output cache flushing (missing parameter to
4697 * Fixed bug in output cache flushing (missing parameter to
4697 __init__). Other small bugs fixed (found using pychecker).
4698 __init__). Other small bugs fixed (found using pychecker).
4698
4699
4699 * Version 0.1.4 opened for bugfixing.
4700 * Version 0.1.4 opened for bugfixing.
4700
4701
4701 2001-11-07 Fernando Perez <fperez@colorado.edu>
4702 2001-11-07 Fernando Perez <fperez@colorado.edu>
4702
4703
4703 * Version 0.1.3 released, mainly because of the raw_input bug.
4704 * Version 0.1.3 released, mainly because of the raw_input bug.
4704
4705
4705 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4706 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4706 and when testing for whether things were callable, a call could
4707 and when testing for whether things were callable, a call could
4707 actually be made to certain functions. They would get called again
4708 actually be made to certain functions. They would get called again
4708 once 'really' executed, with a resulting double call. A disaster
4709 once 'really' executed, with a resulting double call. A disaster
4709 in many cases (list.reverse() would never work!).
4710 in many cases (list.reverse() would never work!).
4710
4711
4711 * Removed prefilter() function, moved its code to raw_input (which
4712 * Removed prefilter() function, moved its code to raw_input (which
4712 after all was just a near-empty caller for prefilter). This saves
4713 after all was just a near-empty caller for prefilter). This saves
4713 a function call on every prompt, and simplifies the class a tiny bit.
4714 a function call on every prompt, and simplifies the class a tiny bit.
4714
4715
4715 * Fix _ip to __ip name in magic example file.
4716 * Fix _ip to __ip name in magic example file.
4716
4717
4717 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4718 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4718 work with non-gnu versions of tar.
4719 work with non-gnu versions of tar.
4719
4720
4720 2001-11-06 Fernando Perez <fperez@colorado.edu>
4721 2001-11-06 Fernando Perez <fperez@colorado.edu>
4721
4722
4722 * Version 0.1.2. Just to keep track of the recent changes.
4723 * Version 0.1.2. Just to keep track of the recent changes.
4723
4724
4724 * Fixed nasty bug in output prompt routine. It used to check 'if
4725 * Fixed nasty bug in output prompt routine. It used to check 'if
4725 arg != None...'. Problem is, this fails if arg implements a
4726 arg != None...'. Problem is, this fails if arg implements a
4726 special comparison (__cmp__) which disallows comparing to
4727 special comparison (__cmp__) which disallows comparing to
4727 None. Found it when trying to use the PhysicalQuantity module from
4728 None. Found it when trying to use the PhysicalQuantity module from
4728 ScientificPython.
4729 ScientificPython.
4729
4730
4730 2001-11-05 Fernando Perez <fperez@colorado.edu>
4731 2001-11-05 Fernando Perez <fperez@colorado.edu>
4731
4732
4732 * Also added dirs. Now the pushd/popd/dirs family functions
4733 * Also added dirs. Now the pushd/popd/dirs family functions
4733 basically like the shell, with the added convenience of going home
4734 basically like the shell, with the added convenience of going home
4734 when called with no args.
4735 when called with no args.
4735
4736
4736 * pushd/popd slightly modified to mimic shell behavior more
4737 * pushd/popd slightly modified to mimic shell behavior more
4737 closely.
4738 closely.
4738
4739
4739 * Added env,pushd,popd from ShellServices as magic functions. I
4740 * Added env,pushd,popd from ShellServices as magic functions. I
4740 think the cleanest will be to port all desired functions from
4741 think the cleanest will be to port all desired functions from
4741 ShellServices as magics and remove ShellServices altogether. This
4742 ShellServices as magics and remove ShellServices altogether. This
4742 will provide a single, clean way of adding functionality
4743 will provide a single, clean way of adding functionality
4743 (shell-type or otherwise) to IP.
4744 (shell-type or otherwise) to IP.
4744
4745
4745 2001-11-04 Fernando Perez <fperez@colorado.edu>
4746 2001-11-04 Fernando Perez <fperez@colorado.edu>
4746
4747
4747 * Added .ipython/ directory to sys.path. This way users can keep
4748 * Added .ipython/ directory to sys.path. This way users can keep
4748 customizations there and access them via import.
4749 customizations there and access them via import.
4749
4750
4750 2001-11-03 Fernando Perez <fperez@colorado.edu>
4751 2001-11-03 Fernando Perez <fperez@colorado.edu>
4751
4752
4752 * Opened version 0.1.1 for new changes.
4753 * Opened version 0.1.1 for new changes.
4753
4754
4754 * Changed version number to 0.1.0: first 'public' release, sent to
4755 * Changed version number to 0.1.0: first 'public' release, sent to
4755 Nathan and Janko.
4756 Nathan and Janko.
4756
4757
4757 * Lots of small fixes and tweaks.
4758 * Lots of small fixes and tweaks.
4758
4759
4759 * Minor changes to whos format. Now strings are shown, snipped if
4760 * Minor changes to whos format. Now strings are shown, snipped if
4760 too long.
4761 too long.
4761
4762
4762 * Changed ShellServices to work on __main__ so they show up in @who
4763 * Changed ShellServices to work on __main__ so they show up in @who
4763
4764
4764 * Help also works with ? at the end of a line:
4765 * Help also works with ? at the end of a line:
4765 ?sin and sin?
4766 ?sin and sin?
4766 both produce the same effect. This is nice, as often I use the
4767 both produce the same effect. This is nice, as often I use the
4767 tab-complete to find the name of a method, but I used to then have
4768 tab-complete to find the name of a method, but I used to then have
4768 to go to the beginning of the line to put a ? if I wanted more
4769 to go to the beginning of the line to put a ? if I wanted more
4769 info. Now I can just add the ? and hit return. Convenient.
4770 info. Now I can just add the ? and hit return. Convenient.
4770
4771
4771 2001-11-02 Fernando Perez <fperez@colorado.edu>
4772 2001-11-02 Fernando Perez <fperez@colorado.edu>
4772
4773
4773 * Python version check (>=2.1) added.
4774 * Python version check (>=2.1) added.
4774
4775
4775 * Added LazyPython documentation. At this point the docs are quite
4776 * Added LazyPython documentation. At this point the docs are quite
4776 a mess. A cleanup is in order.
4777 a mess. A cleanup is in order.
4777
4778
4778 * Auto-installer created. For some bizarre reason, the zipfiles
4779 * Auto-installer created. For some bizarre reason, the zipfiles
4779 module isn't working on my system. So I made a tar version
4780 module isn't working on my system. So I made a tar version
4780 (hopefully the command line options in various systems won't kill
4781 (hopefully the command line options in various systems won't kill
4781 me).
4782 me).
4782
4783
4783 * Fixes to Struct in genutils. Now all dictionary-like methods are
4784 * Fixes to Struct in genutils. Now all dictionary-like methods are
4784 protected (reasonably).
4785 protected (reasonably).
4785
4786
4786 * Added pager function to genutils and changed ? to print usage
4787 * Added pager function to genutils and changed ? to print usage
4787 note through it (it was too long).
4788 note through it (it was too long).
4788
4789
4789 * Added the LazyPython functionality. Works great! I changed the
4790 * Added the LazyPython functionality. Works great! I changed the
4790 auto-quote escape to ';', it's on home row and next to '. But
4791 auto-quote escape to ';', it's on home row and next to '. But
4791 both auto-quote and auto-paren (still /) escapes are command-line
4792 both auto-quote and auto-paren (still /) escapes are command-line
4792 parameters.
4793 parameters.
4793
4794
4794
4795
4795 2001-11-01 Fernando Perez <fperez@colorado.edu>
4796 2001-11-01 Fernando Perez <fperez@colorado.edu>
4796
4797
4797 * Version changed to 0.0.7. Fairly large change: configuration now
4798 * Version changed to 0.0.7. Fairly large change: configuration now
4798 is all stored in a directory, by default .ipython. There, all
4799 is all stored in a directory, by default .ipython. There, all
4799 config files have normal looking names (not .names)
4800 config files have normal looking names (not .names)
4800
4801
4801 * Version 0.0.6 Released first to Lucas and Archie as a test
4802 * Version 0.0.6 Released first to Lucas and Archie as a test
4802 run. Since it's the first 'semi-public' release, change version to
4803 run. Since it's the first 'semi-public' release, change version to
4803 > 0.0.6 for any changes now.
4804 > 0.0.6 for any changes now.
4804
4805
4805 * Stuff I had put in the ipplib.py changelog:
4806 * Stuff I had put in the ipplib.py changelog:
4806
4807
4807 Changes to InteractiveShell:
4808 Changes to InteractiveShell:
4808
4809
4809 - Made the usage message a parameter.
4810 - Made the usage message a parameter.
4810
4811
4811 - Require the name of the shell variable to be given. It's a bit
4812 - Require the name of the shell variable to be given. It's a bit
4812 of a hack, but allows the name 'shell' not to be hardwire in the
4813 of a hack, but allows the name 'shell' not to be hardwire in the
4813 magic (@) handler, which is problematic b/c it requires
4814 magic (@) handler, which is problematic b/c it requires
4814 polluting the global namespace with 'shell'. This in turn is
4815 polluting the global namespace with 'shell'. This in turn is
4815 fragile: if a user redefines a variable called shell, things
4816 fragile: if a user redefines a variable called shell, things
4816 break.
4817 break.
4817
4818
4818 - magic @: all functions available through @ need to be defined
4819 - magic @: all functions available through @ need to be defined
4819 as magic_<name>, even though they can be called simply as
4820 as magic_<name>, even though they can be called simply as
4820 @<name>. This allows the special command @magic to gather
4821 @<name>. This allows the special command @magic to gather
4821 information automatically about all existing magic functions,
4822 information automatically about all existing magic functions,
4822 even if they are run-time user extensions, by parsing the shell
4823 even if they are run-time user extensions, by parsing the shell
4823 instance __dict__ looking for special magic_ names.
4824 instance __dict__ looking for special magic_ names.
4824
4825
4825 - mainloop: added *two* local namespace parameters. This allows
4826 - mainloop: added *two* local namespace parameters. This allows
4826 the class to differentiate between parameters which were there
4827 the class to differentiate between parameters which were there
4827 before and after command line initialization was processed. This
4828 before and after command line initialization was processed. This
4828 way, later @who can show things loaded at startup by the
4829 way, later @who can show things loaded at startup by the
4829 user. This trick was necessary to make session saving/reloading
4830 user. This trick was necessary to make session saving/reloading
4830 really work: ideally after saving/exiting/reloading a session,
4831 really work: ideally after saving/exiting/reloading a session,
4831 *everythin* should look the same, including the output of @who. I
4832 *everythin* should look the same, including the output of @who. I
4832 was only able to make this work with this double namespace
4833 was only able to make this work with this double namespace
4833 trick.
4834 trick.
4834
4835
4835 - added a header to the logfile which allows (almost) full
4836 - added a header to the logfile which allows (almost) full
4836 session restoring.
4837 session restoring.
4837
4838
4838 - prepend lines beginning with @ or !, with a and log
4839 - prepend lines beginning with @ or !, with a and log
4839 them. Why? !lines: may be useful to know what you did @lines:
4840 them. Why? !lines: may be useful to know what you did @lines:
4840 they may affect session state. So when restoring a session, at
4841 they may affect session state. So when restoring a session, at
4841 least inform the user of their presence. I couldn't quite get
4842 least inform the user of their presence. I couldn't quite get
4842 them to properly re-execute, but at least the user is warned.
4843 them to properly re-execute, but at least the user is warned.
4843
4844
4844 * Started ChangeLog.
4845 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now