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