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