##// END OF EJS Templates
Fix typos and remove trailing whitespace.
walter.doerwald -
Show More
@@ -1,5594 +1,5593 b''
1 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2
2
3 * IPython/Extensions/ibrowse.py: Add two new commands to
3 * IPython/Extensions/ibrowse.py: Add two new commands to
4 ibrowse: hideattr (mapped to "h") hides the attribute under
4 ibrowse: "hideattr" (mapped to "h") hides the attribute under
5 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
5 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
6 attributes again. Remapped the help command to "?". Display
6 attributes again. Remapped the help command to "?". Display
7 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
7 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
8 as keys for the "home" and "end" commands.
8 as keys for the "home" and "end" commands.
9
9
10 2006-06-15 Ville Vainio <vivainio@gmail.com>
10 2006-06-15 Ville Vainio <vivainio@gmail.com>
11
11
12 * iplib.py, hooks.py: Added new generate_prompt hook that can be
12 * iplib.py, hooks.py: Added new generate_prompt hook that can be
13 used to create prompts dynamically, instead of the "old" way of
13 used to create prompts dynamically, instead of the "old" way of
14 assigning "magic" strings to prompt_in1 and prompt_in2. The old
14 assigning "magic" strings to prompt_in1 and prompt_in2. The old
15 way still works (it's invoked by the default hook), of course.
15 way still works (it's invoked by the default hook), of course.
16
16
17 * Prompts.py: added generate_output_prompt hook for altering output
17 * Prompts.py: added generate_output_prompt hook for altering output
18 prompt
18 prompt
19
19
20 * Release.py: Changed version string to 0.7.3.svn.
20 * Release.py: Changed version string to 0.7.3.svn.
21
21
22 2006-06-15 Walter Doerwald <walter@livinglogic.de>
22 2006-06-15 Walter Doerwald <walter@livinglogic.de>
23
23
24 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
24 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
25 the call to fetch() always tries to fetch enough data for at least one
25 the call to fetch() always tries to fetch enough data for at least one
26 full screen. This makes it possible to simply call moveto(0,0,True) in
26 full screen. This makes it possible to simply call moveto(0,0,True) in
27 the constructor. Fix typos and removed the obsolete goto attribute.
27 the constructor. Fix typos and removed the obsolete goto attribute.
28
28
29 2006-06-12 Ville Vainio <vivainio@gmail.com>
29 2006-06-12 Ville Vainio <vivainio@gmail.com>
30
30
31 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
31 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
32 allowing $variable interpolation within multiline statements,
32 allowing $variable interpolation within multiline statements,
33 though so far only with "sh" profile for a testing period.
33 though so far only with "sh" profile for a testing period.
34 The patch also enables splitting long commands with \ but it
34 The patch also enables splitting long commands with \ but it
35 doesn't work properly yet.
35 doesn't work properly yet.
36
36
37 2006-06-12 Walter Doerwald <walter@livinglogic.de>
37 2006-06-12 Walter Doerwald <walter@livinglogic.de>
38
38
39 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
39 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
40 input history and the position of the cursor in the input history for
40 input history and the position of the cursor in the input history for
41 the find, findbackwards and goto command.
41 the find, findbackwards and goto command.
42
42
43 2006-06-10 Walter Doerwald <walter@livinglogic.de>
43 2006-06-10 Walter Doerwald <walter@livinglogic.de>
44
44
45 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
45 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
46 implements the basic functionality of browser commands that require
46 implements the basic functionality of browser commands that require
47 input. Reimplement the goto, find and findbackwards commands as
47 input. Reimplement the goto, find and findbackwards commands as
48 subclasses of _CommandInput. Add an input history and keymaps to those
48 subclasses of _CommandInput. Add an input history and keymaps to those
49 commands. Add "\r" as a keyboard shortcut for the enterdefault and
49 commands. Add "\r" as a keyboard shortcut for the enterdefault and
50 execute commands.
50 execute commands.
51
51
52 2006-06-07 Ville Vainio <vivainio@gmail.com>
52 2006-06-07 Ville Vainio <vivainio@gmail.com>
53
53
54 * iplib.py: ipython mybatch.ipy exits ipython immediately after
54 * iplib.py: ipython mybatch.ipy exits ipython immediately after
55 running the batch files instead of leaving the session open.
55 running the batch files instead of leaving the session open.
56
56
57 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
57 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
58
58
59 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
59 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
60 the original fix was incomplete. Patch submitted by W. Maier.
60 the original fix was incomplete. Patch submitted by W. Maier.
61
61
62 2006-06-07 Ville Vainio <vivainio@gmail.com>
62 2006-06-07 Ville Vainio <vivainio@gmail.com>
63
63
64 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
64 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
65 Confirmation prompts can be supressed by 'quiet' option.
65 Confirmation prompts can be supressed by 'quiet' option.
66 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
66 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
67
67
68 2006-06-06 *** Released version 0.7.2
68 2006-06-06 *** Released version 0.7.2
69
69
70 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
70 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
71
71
72 * IPython/Release.py (version): Made 0.7.2 final for release.
72 * IPython/Release.py (version): Made 0.7.2 final for release.
73 Repo tagged and release cut.
73 Repo tagged and release cut.
74
74
75 2006-06-05 Ville Vainio <vivainio@gmail.com>
75 2006-06-05 Ville Vainio <vivainio@gmail.com>
76
76
77 * Magic.py (magic_rehashx): Honor no_alias list earlier in
77 * Magic.py (magic_rehashx): Honor no_alias list earlier in
78 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
78 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
79
79
80 * upgrade_dir.py: try import 'path' module a bit harder
80 * upgrade_dir.py: try import 'path' module a bit harder
81 (for %upgrade)
81 (for %upgrade)
82
82
83 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
83 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
84
84
85 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
85 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
86 instead of looping 20 times.
86 instead of looping 20 times.
87
87
88 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
88 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
89 correctly at initialization time. Bug reported by Krishna Mohan
89 correctly at initialization time. Bug reported by Krishna Mohan
90 Gundu <gkmohan-AT-gmail.com> on the user list.
90 Gundu <gkmohan-AT-gmail.com> on the user list.
91
91
92 * IPython/Release.py (version): Mark 0.7.2 version to start
92 * IPython/Release.py (version): Mark 0.7.2 version to start
93 testing for release on 06/06.
93 testing for release on 06/06.
94
94
95 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
95 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
96
96
97 * scripts/irunner: thin script interface so users don't have to
97 * scripts/irunner: thin script interface so users don't have to
98 find the module and call it as an executable, since modules rarely
98 find the module and call it as an executable, since modules rarely
99 live in people's PATH.
99 live in people's PATH.
100
100
101 * IPython/irunner.py (InteractiveRunner.__init__): added
101 * IPython/irunner.py (InteractiveRunner.__init__): added
102 delaybeforesend attribute to control delays with newer versions of
102 delaybeforesend attribute to control delays with newer versions of
103 pexpect. Thanks to detailed help from pexpect's author, Noah
103 pexpect. Thanks to detailed help from pexpect's author, Noah
104 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
104 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
105 correctly (it works in NoColor mode).
105 correctly (it works in NoColor mode).
106
106
107 * IPython/iplib.py (handle_normal): fix nasty crash reported on
107 * IPython/iplib.py (handle_normal): fix nasty crash reported on
108 SAGE list, from improper log() calls.
108 SAGE list, from improper log() calls.
109
109
110 2006-05-31 Ville Vainio <vivainio@gmail.com>
110 2006-05-31 Ville Vainio <vivainio@gmail.com>
111
111
112 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
112 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
113 with args in parens to work correctly with dirs that have spaces.
113 with args in parens to work correctly with dirs that have spaces.
114
114
115 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
115 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
116
116
117 * IPython/Logger.py (Logger.logstart): add option to log raw input
117 * IPython/Logger.py (Logger.logstart): add option to log raw input
118 instead of the processed one. A -r flag was added to the
118 instead of the processed one. A -r flag was added to the
119 %logstart magic used for controlling logging.
119 %logstart magic used for controlling logging.
120
120
121 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
121 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
122
122
123 * IPython/iplib.py (InteractiveShell.__init__): add check for the
123 * IPython/iplib.py (InteractiveShell.__init__): add check for the
124 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
124 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
125 recognize the option. After a bug report by Will Maier. This
125 recognize the option. After a bug report by Will Maier. This
126 closes #64 (will do it after confirmation from W. Maier).
126 closes #64 (will do it after confirmation from W. Maier).
127
127
128 * IPython/irunner.py: New module to run scripts as if manually
128 * IPython/irunner.py: New module to run scripts as if manually
129 typed into an interactive environment, based on pexpect. After a
129 typed into an interactive environment, based on pexpect. After a
130 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
130 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
131 ipython-user list. Simple unittests in the tests/ directory.
131 ipython-user list. Simple unittests in the tests/ directory.
132
132
133 * tools/release: add Will Maier, OpenBSD port maintainer, to
133 * tools/release: add Will Maier, OpenBSD port maintainer, to
134 recepients list. We are now officially part of the OpenBSD ports:
134 recepients list. We are now officially part of the OpenBSD ports:
135 http://www.openbsd.org/ports.html ! Many thanks to Will for the
135 http://www.openbsd.org/ports.html ! Many thanks to Will for the
136 work.
136 work.
137
137
138 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
138 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
139
139
140 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
140 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
141 so that it doesn't break tkinter apps.
141 so that it doesn't break tkinter apps.
142
142
143 * IPython/iplib.py (_prefilter): fix bug where aliases would
143 * IPython/iplib.py (_prefilter): fix bug where aliases would
144 shadow variables when autocall was fully off. Reported by SAGE
144 shadow variables when autocall was fully off. Reported by SAGE
145 author William Stein.
145 author William Stein.
146
146
147 * IPython/OInspect.py (Inspector.__init__): add a flag to control
147 * IPython/OInspect.py (Inspector.__init__): add a flag to control
148 at what detail level strings are computed when foo? is requested.
148 at what detail level strings are computed when foo? is requested.
149 This allows users to ask for example that the string form of an
149 This allows users to ask for example that the string form of an
150 object is only computed when foo?? is called, or even never, by
150 object is only computed when foo?? is called, or even never, by
151 setting the object_info_string_level >= 2 in the configuration
151 setting the object_info_string_level >= 2 in the configuration
152 file. This new option has been added and documented. After a
152 file. This new option has been added and documented. After a
153 request by SAGE to be able to control the printing of very large
153 request by SAGE to be able to control the printing of very large
154 objects more easily.
154 objects more easily.
155
155
156 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
156 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
157
157
158 * IPython/ipmaker.py (make_IPython): remove the ipython call path
158 * IPython/ipmaker.py (make_IPython): remove the ipython call path
159 from sys.argv, to be 100% consistent with how Python itself works
159 from sys.argv, to be 100% consistent with how Python itself works
160 (as seen for example with python -i file.py). After a bug report
160 (as seen for example with python -i file.py). After a bug report
161 by Jeffrey Collins.
161 by Jeffrey Collins.
162
162
163 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
163 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
164 nasty bug which was preventing custom namespaces with -pylab,
164 nasty bug which was preventing custom namespaces with -pylab,
165 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
165 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
166 compatibility (long gone from mpl).
166 compatibility (long gone from mpl).
167
167
168 * IPython/ipapi.py (make_session): name change: create->make. We
168 * IPython/ipapi.py (make_session): name change: create->make. We
169 use make in other places (ipmaker,...), it's shorter and easier to
169 use make in other places (ipmaker,...), it's shorter and easier to
170 type and say, etc. I'm trying to clean things before 0.7.2 so
170 type and say, etc. I'm trying to clean things before 0.7.2 so
171 that I can keep things stable wrt to ipapi in the chainsaw branch.
171 that I can keep things stable wrt to ipapi in the chainsaw branch.
172
172
173 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
173 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
174 python-mode recognizes our debugger mode. Add support for
174 python-mode recognizes our debugger mode. Add support for
175 autoindent inside (X)emacs. After a patch sent in by Jin Liu
175 autoindent inside (X)emacs. After a patch sent in by Jin Liu
176 <m.liu.jin-AT-gmail.com> originally written by
176 <m.liu.jin-AT-gmail.com> originally written by
177 doxgen-AT-newsmth.net (with minor modifications for xemacs
177 doxgen-AT-newsmth.net (with minor modifications for xemacs
178 compatibility)
178 compatibility)
179
179
180 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
180 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
181 tracebacks when walking the stack so that the stack tracking system
181 tracebacks when walking the stack so that the stack tracking system
182 in emacs' python-mode can identify the frames correctly.
182 in emacs' python-mode can identify the frames correctly.
183
183
184 * IPython/ipmaker.py (make_IPython): make the internal (and
184 * IPython/ipmaker.py (make_IPython): make the internal (and
185 default config) autoedit_syntax value false by default. Too many
185 default config) autoedit_syntax value false by default. Too many
186 users have complained to me (both on and off-list) about problems
186 users have complained to me (both on and off-list) about problems
187 with this option being on by default, so I'm making it default to
187 with this option being on by default, so I'm making it default to
188 off. It can still be enabled by anyone via the usual mechanisms.
188 off. It can still be enabled by anyone via the usual mechanisms.
189
189
190 * IPython/completer.py (Completer.attr_matches): add support for
190 * IPython/completer.py (Completer.attr_matches): add support for
191 PyCrust-style _getAttributeNames magic method. Patch contributed
191 PyCrust-style _getAttributeNames magic method. Patch contributed
192 by <mscott-AT-goldenspud.com>. Closes #50.
192 by <mscott-AT-goldenspud.com>. Closes #50.
193
193
194 * IPython/iplib.py (InteractiveShell.__init__): remove the
194 * IPython/iplib.py (InteractiveShell.__init__): remove the
195 deletion of exit/quit from __builtin__, which can break
195 deletion of exit/quit from __builtin__, which can break
196 third-party tools like the Zope debugging console. The
196 third-party tools like the Zope debugging console. The
197 %exit/%quit magics remain. In general, it's probably a good idea
197 %exit/%quit magics remain. In general, it's probably a good idea
198 not to delete anything from __builtin__, since we never know what
198 not to delete anything from __builtin__, since we never know what
199 that will break. In any case, python now (for 2.5) will support
199 that will break. In any case, python now (for 2.5) will support
200 'real' exit/quit, so this issue is moot. Closes #55.
200 'real' exit/quit, so this issue is moot. Closes #55.
201
201
202 * IPython/genutils.py (with_obj): rename the 'with' function to
202 * IPython/genutils.py (with_obj): rename the 'with' function to
203 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
203 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
204 becomes a language keyword. Closes #53.
204 becomes a language keyword. Closes #53.
205
205
206 * IPython/FakeModule.py (FakeModule.__init__): add a proper
206 * IPython/FakeModule.py (FakeModule.__init__): add a proper
207 __file__ attribute to this so it fools more things into thinking
207 __file__ attribute to this so it fools more things into thinking
208 it is a real module. Closes #59.
208 it is a real module. Closes #59.
209
209
210 * IPython/Magic.py (magic_edit): add -n option to open the editor
210 * IPython/Magic.py (magic_edit): add -n option to open the editor
211 at a specific line number. After a patch by Stefan van der Walt.
211 at a specific line number. After a patch by Stefan van der Walt.
212
212
213 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
213 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
214
214
215 * IPython/iplib.py (edit_syntax_error): fix crash when for some
215 * IPython/iplib.py (edit_syntax_error): fix crash when for some
216 reason the file could not be opened. After automatic crash
216 reason the file could not be opened. After automatic crash
217 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
217 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
218 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
218 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
219 (_should_recompile): Don't fire editor if using %bg, since there
219 (_should_recompile): Don't fire editor if using %bg, since there
220 is no file in the first place. From the same report as above.
220 is no file in the first place. From the same report as above.
221 (raw_input): protect against faulty third-party prefilters. After
221 (raw_input): protect against faulty third-party prefilters. After
222 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
222 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
223 while running under SAGE.
223 while running under SAGE.
224
224
225 2006-05-23 Ville Vainio <vivainio@gmail.com>
225 2006-05-23 Ville Vainio <vivainio@gmail.com>
226
226
227 * ipapi.py: Stripped down ip.to_user_ns() to work only as
227 * ipapi.py: Stripped down ip.to_user_ns() to work only as
228 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
228 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
229 now returns None (again), unless dummy is specifically allowed by
229 now returns None (again), unless dummy is specifically allowed by
230 ipapi.get(allow_dummy=True).
230 ipapi.get(allow_dummy=True).
231
231
232 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
232 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
233
233
234 * IPython: remove all 2.2-compatibility objects and hacks from
234 * IPython: remove all 2.2-compatibility objects and hacks from
235 everywhere, since we only support 2.3 at this point. Docs
235 everywhere, since we only support 2.3 at this point. Docs
236 updated.
236 updated.
237
237
238 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
238 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
239 Anything requiring extra validation can be turned into a Python
239 Anything requiring extra validation can be turned into a Python
240 property in the future. I used a property for the db one b/c
240 property in the future. I used a property for the db one b/c
241 there was a nasty circularity problem with the initialization
241 there was a nasty circularity problem with the initialization
242 order, which right now I don't have time to clean up.
242 order, which right now I don't have time to clean up.
243
243
244 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
244 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
245 another locking bug reported by Jorgen. I'm not 100% sure though,
245 another locking bug reported by Jorgen. I'm not 100% sure though,
246 so more testing is needed...
246 so more testing is needed...
247
247
248 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
248 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
249
249
250 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
250 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
251 local variables from any routine in user code (typically executed
251 local variables from any routine in user code (typically executed
252 with %run) directly into the interactive namespace. Very useful
252 with %run) directly into the interactive namespace. Very useful
253 when doing complex debugging.
253 when doing complex debugging.
254 (IPythonNotRunning): Changed the default None object to a dummy
254 (IPythonNotRunning): Changed the default None object to a dummy
255 whose attributes can be queried as well as called without
255 whose attributes can be queried as well as called without
256 exploding, to ease writing code which works transparently both in
256 exploding, to ease writing code which works transparently both in
257 and out of ipython and uses some of this API.
257 and out of ipython and uses some of this API.
258
258
259 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
259 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
260
260
261 * IPython/hooks.py (result_display): Fix the fact that our display
261 * IPython/hooks.py (result_display): Fix the fact that our display
262 hook was using str() instead of repr(), as the default python
262 hook was using str() instead of repr(), as the default python
263 console does. This had gone unnoticed b/c it only happened if
263 console does. This had gone unnoticed b/c it only happened if
264 %Pprint was off, but the inconsistency was there.
264 %Pprint was off, but the inconsistency was there.
265
265
266 2006-05-15 Ville Vainio <vivainio@gmail.com>
266 2006-05-15 Ville Vainio <vivainio@gmail.com>
267
267
268 * Oinspect.py: Only show docstring for nonexisting/binary files
268 * Oinspect.py: Only show docstring for nonexisting/binary files
269 when doing object??, closing ticket #62
269 when doing object??, closing ticket #62
270
270
271 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
271 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
272
272
273 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
273 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
274 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
274 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
275 was being released in a routine which hadn't checked if it had
275 was being released in a routine which hadn't checked if it had
276 been the one to acquire it.
276 been the one to acquire it.
277
277
278 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
278 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
279
279
280 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
280 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
281
281
282 2006-04-11 Ville Vainio <vivainio@gmail.com>
282 2006-04-11 Ville Vainio <vivainio@gmail.com>
283
283
284 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
284 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
285 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
285 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
286 prefilters, allowing stuff like magics and aliases in the file.
286 prefilters, allowing stuff like magics and aliases in the file.
287
287
288 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
288 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
289 added. Supported now are "%clear in" and "%clear out" (clear input and
289 added. Supported now are "%clear in" and "%clear out" (clear input and
290 output history, respectively). Also fixed CachedOutput.flush to
290 output history, respectively). Also fixed CachedOutput.flush to
291 properly flush the output cache.
291 properly flush the output cache.
292
292
293 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
293 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
294 half-success (and fail explicitly).
294 half-success (and fail explicitly).
295
295
296 2006-03-28 Ville Vainio <vivainio@gmail.com>
296 2006-03-28 Ville Vainio <vivainio@gmail.com>
297
297
298 * iplib.py: Fix quoting of aliases so that only argless ones
298 * iplib.py: Fix quoting of aliases so that only argless ones
299 are quoted
299 are quoted
300
300
301 2006-03-28 Ville Vainio <vivainio@gmail.com>
301 2006-03-28 Ville Vainio <vivainio@gmail.com>
302
302
303 * iplib.py: Quote aliases with spaces in the name.
303 * iplib.py: Quote aliases with spaces in the name.
304 "c:\program files\blah\bin" is now legal alias target.
304 "c:\program files\blah\bin" is now legal alias target.
305
305
306 * ext_rehashdir.py: Space no longer allowed as arg
306 * ext_rehashdir.py: Space no longer allowed as arg
307 separator, since space is legal in path names.
307 separator, since space is legal in path names.
308
308
309 2006-03-16 Ville Vainio <vivainio@gmail.com>
309 2006-03-16 Ville Vainio <vivainio@gmail.com>
310
310
311 * upgrade_dir.py: Take path.py from Extensions, correcting
311 * upgrade_dir.py: Take path.py from Extensions, correcting
312 %upgrade magic
312 %upgrade magic
313
313
314 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
314 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
315
315
316 * hooks.py: Only enclose editor binary in quotes if legal and
316 * hooks.py: Only enclose editor binary in quotes if legal and
317 necessary (space in the name, and is an existing file). Fixes a bug
317 necessary (space in the name, and is an existing file). Fixes a bug
318 reported by Zachary Pincus.
318 reported by Zachary Pincus.
319
319
320 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
320 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
321
321
322 * Manual: thanks to a tip on proper color handling for Emacs, by
322 * Manual: thanks to a tip on proper color handling for Emacs, by
323 Eric J Haywiser <ejh1-AT-MIT.EDU>.
323 Eric J Haywiser <ejh1-AT-MIT.EDU>.
324
324
325 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
325 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
326 by applying the provided patch. Thanks to Liu Jin
326 by applying the provided patch. Thanks to Liu Jin
327 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
327 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
328 XEmacs/Linux, I'm trusting the submitter that it actually helps
328 XEmacs/Linux, I'm trusting the submitter that it actually helps
329 under win32/GNU Emacs. Will revisit if any problems are reported.
329 under win32/GNU Emacs. Will revisit if any problems are reported.
330
330
331 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
331 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
332
332
333 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
333 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
334 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
334 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
335
335
336 2006-03-12 Ville Vainio <vivainio@gmail.com>
336 2006-03-12 Ville Vainio <vivainio@gmail.com>
337
337
338 * Magic.py (magic_timeit): Added %timeit magic, contributed by
338 * Magic.py (magic_timeit): Added %timeit magic, contributed by
339 Torsten Marek.
339 Torsten Marek.
340
340
341 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
341 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
342
342
343 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
343 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
344 line ranges works again.
344 line ranges works again.
345
345
346 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
346 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
347
347
348 * IPython/iplib.py (showtraceback): add back sys.last_traceback
348 * IPython/iplib.py (showtraceback): add back sys.last_traceback
349 and friends, after a discussion with Zach Pincus on ipython-user.
349 and friends, after a discussion with Zach Pincus on ipython-user.
350 I'm not 100% sure, but after thinking aobut it quite a bit, it may
350 I'm not 100% sure, but after thinking about it quite a bit, it may
351 be OK. Testing with the multithreaded shells didn't reveal any
351 be OK. Testing with the multithreaded shells didn't reveal any
352 problems, but let's keep an eye out.
352 problems, but let's keep an eye out.
353
353
354 In the process, I fixed a few things which were calling
354 In the process, I fixed a few things which were calling
355 self.InteractiveTB() directly (like safe_execfile), which is a
355 self.InteractiveTB() directly (like safe_execfile), which is a
356 mistake: ALL exception reporting should be done by calling
356 mistake: ALL exception reporting should be done by calling
357 self.showtraceback(), which handles state and tab-completion and
357 self.showtraceback(), which handles state and tab-completion and
358 more.
358 more.
359
359
360 2006-03-01 Ville Vainio <vivainio@gmail.com>
360 2006-03-01 Ville Vainio <vivainio@gmail.com>
361
361
362 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
362 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
363 To use, do "from ipipe import *".
363 To use, do "from ipipe import *".
364
364
365 2006-02-24 Ville Vainio <vivainio@gmail.com>
365 2006-02-24 Ville Vainio <vivainio@gmail.com>
366
366
367 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
367 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
368 "cleanly" and safely than the older upgrade mechanism.
368 "cleanly" and safely than the older upgrade mechanism.
369
369
370 2006-02-21 Ville Vainio <vivainio@gmail.com>
370 2006-02-21 Ville Vainio <vivainio@gmail.com>
371
371
372 * Magic.py: %save works again.
372 * Magic.py: %save works again.
373
373
374 2006-02-15 Ville Vainio <vivainio@gmail.com>
374 2006-02-15 Ville Vainio <vivainio@gmail.com>
375
375
376 * Magic.py: %Pprint works again
376 * Magic.py: %Pprint works again
377
377
378 * Extensions/ipy_sane_defaults.py: Provide everything provided
378 * Extensions/ipy_sane_defaults.py: Provide everything provided
379 in default ipythonrc, to make it possible to have a completely empty
379 in default ipythonrc, to make it possible to have a completely empty
380 ipythonrc (and thus completely rc-file free configuration)
380 ipythonrc (and thus completely rc-file free configuration)
381
382
381
383 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
382 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
384
383
385 * IPython/hooks.py (editor): quote the call to the editor command,
384 * IPython/hooks.py (editor): quote the call to the editor command,
386 to allow commands with spaces in them. Problem noted by watching
385 to allow commands with spaces in them. Problem noted by watching
387 Ian Oswald's video about textpad under win32 at
386 Ian Oswald's video about textpad under win32 at
388 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
387 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
389
388
390 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
389 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
391 describing magics (we haven't used @ for a loong time).
390 describing magics (we haven't used @ for a loong time).
392
391
393 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
392 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
394 contributed by marienz to close
393 contributed by marienz to close
395 http://www.scipy.net/roundup/ipython/issue53.
394 http://www.scipy.net/roundup/ipython/issue53.
396
395
397 2006-02-10 Ville Vainio <vivainio@gmail.com>
396 2006-02-10 Ville Vainio <vivainio@gmail.com>
398
397
399 * genutils.py: getoutput now works in win32 too
398 * genutils.py: getoutput now works in win32 too
400
399
401 * completer.py: alias and magic completion only invoked
400 * completer.py: alias and magic completion only invoked
402 at the first "item" in the line, to avoid "cd %store"
401 at the first "item" in the line, to avoid "cd %store"
403 nonsense.
402 nonsense.
404
403
405 2006-02-09 Ville Vainio <vivainio@gmail.com>
404 2006-02-09 Ville Vainio <vivainio@gmail.com>
406
405
407 * test/*: Added a unit testing framework (finally).
406 * test/*: Added a unit testing framework (finally).
408 '%run runtests.py' to run test_*.
407 '%run runtests.py' to run test_*.
409
408
410 * ipapi.py: Exposed runlines and set_custom_exc
409 * ipapi.py: Exposed runlines and set_custom_exc
411
410
412 2006-02-07 Ville Vainio <vivainio@gmail.com>
411 2006-02-07 Ville Vainio <vivainio@gmail.com>
413
412
414 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
413 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
415 instead use "f(1 2)" as before.
414 instead use "f(1 2)" as before.
416
415
417 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
416 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
418
417
419 * IPython/demo.py (IPythonDemo): Add new classes to the demo
418 * IPython/demo.py (IPythonDemo): Add new classes to the demo
420 facilities, for demos processed by the IPython input filter
419 facilities, for demos processed by the IPython input filter
421 (IPythonDemo), and for running a script one-line-at-a-time as a
420 (IPythonDemo), and for running a script one-line-at-a-time as a
422 demo, both for pure Python (LineDemo) and for IPython-processed
421 demo, both for pure Python (LineDemo) and for IPython-processed
423 input (IPythonLineDemo). After a request by Dave Kohel, from the
422 input (IPythonLineDemo). After a request by Dave Kohel, from the
424 SAGE team.
423 SAGE team.
425 (Demo.edit): added and edit() method to the demo objects, to edit
424 (Demo.edit): added an edit() method to the demo objects, to edit
426 the in-memory copy of the last executed block.
425 the in-memory copy of the last executed block.
427
426
428 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
427 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
429 processing to %edit, %macro and %save. These commands can now be
428 processing to %edit, %macro and %save. These commands can now be
430 invoked on the unprocessed input as it was typed by the user
429 invoked on the unprocessed input as it was typed by the user
431 (without any prefilters applied). After requests by the SAGE team
430 (without any prefilters applied). After requests by the SAGE team
432 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
431 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
433
432
434 2006-02-01 Ville Vainio <vivainio@gmail.com>
433 2006-02-01 Ville Vainio <vivainio@gmail.com>
435
434
436 * setup.py, eggsetup.py: easy_install ipython==dev works
435 * setup.py, eggsetup.py: easy_install ipython==dev works
437 correctly now (on Linux)
436 correctly now (on Linux)
438
437
439 * ipy_user_conf,ipmaker: user config changes, removed spurious
438 * ipy_user_conf,ipmaker: user config changes, removed spurious
440 warnings
439 warnings
441
440
442 * iplib: if rc.banner is string, use it as is.
441 * iplib: if rc.banner is string, use it as is.
443
442
444 * Magic: %pycat accepts a string argument and pages it's contents.
443 * Magic: %pycat accepts a string argument and pages it's contents.
445
444
446
445
447 2006-01-30 Ville Vainio <vivainio@gmail.com>
446 2006-01-30 Ville Vainio <vivainio@gmail.com>
448
447
449 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
448 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
450 Now %store and bookmarks work through PickleShare, meaning that
449 Now %store and bookmarks work through PickleShare, meaning that
451 concurrent access is possible and all ipython sessions see the
450 concurrent access is possible and all ipython sessions see the
452 same database situation all the time, instead of snapshot of
451 same database situation all the time, instead of snapshot of
453 the situation when the session was started. Hence, %bookmark
452 the situation when the session was started. Hence, %bookmark
454 results are immediately accessible from othes sessions. The database
453 results are immediately accessible from othes sessions. The database
455 is also available for use by user extensions. See:
454 is also available for use by user extensions. See:
456 http://www.python.org/pypi/pickleshare
455 http://www.python.org/pypi/pickleshare
457
456
458 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
457 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
459
458
460 * aliases can now be %store'd
459 * aliases can now be %store'd
461
460
462 * path.py move to Extensions so that pickleshare does not need
461 * path.py moved to Extensions so that pickleshare does not need
463 IPython-specific import. Extensions added to pythonpath right
462 IPython-specific import. Extensions added to pythonpath right
464 at __init__.
463 at __init__.
465
464
466 * iplib.py: ipalias deprecated/redundant; aliases are converted and
465 * iplib.py: ipalias deprecated/redundant; aliases are converted and
467 called with _ip.system and the pre-transformed command string.
466 called with _ip.system and the pre-transformed command string.
468
467
469 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
468 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
470
469
471 * IPython/iplib.py (interact): Fix that we were not catching
470 * IPython/iplib.py (interact): Fix that we were not catching
472 KeyboardInterrupt exceptions properly. I'm not quite sure why the
471 KeyboardInterrupt exceptions properly. I'm not quite sure why the
473 logic here had to change, but it's fixed now.
472 logic here had to change, but it's fixed now.
474
473
475 2006-01-29 Ville Vainio <vivainio@gmail.com>
474 2006-01-29 Ville Vainio <vivainio@gmail.com>
476
475
477 * iplib.py: Try to import pyreadline on Windows.
476 * iplib.py: Try to import pyreadline on Windows.
478
477
479 2006-01-27 Ville Vainio <vivainio@gmail.com>
478 2006-01-27 Ville Vainio <vivainio@gmail.com>
480
479
481 * iplib.py: Expose ipapi as _ip in builtin namespace.
480 * iplib.py: Expose ipapi as _ip in builtin namespace.
482 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
481 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
483 and ip_set_hook (-> _ip.set_hook) redundant. % and !
482 and ip_set_hook (-> _ip.set_hook) redundant. % and !
484 syntax now produce _ip.* variant of the commands.
483 syntax now produce _ip.* variant of the commands.
485
484
486 * "_ip.options().autoedit_syntax = 2" automatically throws
485 * "_ip.options().autoedit_syntax = 2" automatically throws
487 user to editor for syntax error correction without prompting.
486 user to editor for syntax error correction without prompting.
488
487
489 2006-01-27 Ville Vainio <vivainio@gmail.com>
488 2006-01-27 Ville Vainio <vivainio@gmail.com>
490
489
491 * ipmaker.py: Give "realistic" sys.argv for scripts (without
490 * ipmaker.py: Give "realistic" sys.argv for scripts (without
492 'ipython' at argv[0]) executed through command line.
491 'ipython' at argv[0]) executed through command line.
493 NOTE: this DEPRECATES calling ipython with multiple scripts
492 NOTE: this DEPRECATES calling ipython with multiple scripts
494 ("ipython a.py b.py c.py")
493 ("ipython a.py b.py c.py")
495
494
496 * iplib.py, hooks.py: Added configurable input prefilter,
495 * iplib.py, hooks.py: Added configurable input prefilter,
497 named 'input_prefilter'. See ext_rescapture.py for example
496 named 'input_prefilter'. See ext_rescapture.py for example
498 usage.
497 usage.
499
498
500 * ext_rescapture.py, Magic.py: Better system command output capture
499 * ext_rescapture.py, Magic.py: Better system command output capture
501 through 'var = !ls' (deprecates user-visible %sc). Same notation
500 through 'var = !ls' (deprecates user-visible %sc). Same notation
502 applies for magics, 'var = %alias' assigns alias list to var.
501 applies for magics, 'var = %alias' assigns alias list to var.
503
502
504 * ipapi.py: added meta() for accessing extension-usable data store.
503 * ipapi.py: added meta() for accessing extension-usable data store.
505
504
506 * iplib.py: added InteractiveShell.getapi(). New magics should be
505 * iplib.py: added InteractiveShell.getapi(). New magics should be
507 written doing self.getapi() instead of using the shell directly.
506 written doing self.getapi() instead of using the shell directly.
508
507
509 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
508 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
510 %store foo >> ~/myfoo.txt to store variables to files (in clean
509 %store foo >> ~/myfoo.txt to store variables to files (in clean
511 textual form, not a restorable pickle).
510 textual form, not a restorable pickle).
512
511
513 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
512 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
514
513
515 * usage.py, Magic.py: added %quickref
514 * usage.py, Magic.py: added %quickref
516
515
517 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
516 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
518
517
519 * GetoptErrors when invoking magics etc. with wrong args
518 * GetoptErrors when invoking magics etc. with wrong args
520 are now more helpful:
519 are now more helpful:
521 GetoptError: option -l not recognized (allowed: "qb" )
520 GetoptError: option -l not recognized (allowed: "qb" )
522
521
523 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
522 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
524
523
525 * IPython/demo.py (Demo.show): Flush stdout after each block, so
524 * IPython/demo.py (Demo.show): Flush stdout after each block, so
526 computationally intensive blocks don't appear to stall the demo.
525 computationally intensive blocks don't appear to stall the demo.
527
526
528 2006-01-24 Ville Vainio <vivainio@gmail.com>
527 2006-01-24 Ville Vainio <vivainio@gmail.com>
529
528
530 * iplib.py, hooks.py: 'result_display' hook can return a non-None
529 * iplib.py, hooks.py: 'result_display' hook can return a non-None
531 value to manipulate resulting history entry.
530 value to manipulate resulting history entry.
532
531
533 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
532 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
534 to instance methods of IPApi class, to make extending an embedded
533 to instance methods of IPApi class, to make extending an embedded
535 IPython feasible. See ext_rehashdir.py for example usage.
534 IPython feasible. See ext_rehashdir.py for example usage.
536
535
537 * Merged 1071-1076 from banches/0.7.1
536 * Merged 1071-1076 from branches/0.7.1
538
537
539
538
540 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
539 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
541
540
542 * tools/release (daystamp): Fix build tools to use the new
541 * tools/release (daystamp): Fix build tools to use the new
543 eggsetup.py script to build lightweight eggs.
542 eggsetup.py script to build lightweight eggs.
544
543
545 * Applied changesets 1062 and 1064 before 0.7.1 release.
544 * Applied changesets 1062 and 1064 before 0.7.1 release.
546
545
547 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
546 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
548 see the raw input history (without conversions like %ls ->
547 see the raw input history (without conversions like %ls ->
549 ipmagic("ls")). After a request from W. Stein, SAGE
548 ipmagic("ls")). After a request from W. Stein, SAGE
550 (http://modular.ucsd.edu/sage) developer. This information is
549 (http://modular.ucsd.edu/sage) developer. This information is
551 stored in the input_hist_raw attribute of the IPython instance, so
550 stored in the input_hist_raw attribute of the IPython instance, so
552 developers can access it if needed (it's an InputList instance).
551 developers can access it if needed (it's an InputList instance).
553
552
554 * Versionstring = 0.7.2.svn
553 * Versionstring = 0.7.2.svn
555
554
556 * eggsetup.py: A separate script for constructing eggs, creates
555 * eggsetup.py: A separate script for constructing eggs, creates
557 proper launch scripts even on Windows (an .exe file in
556 proper launch scripts even on Windows (an .exe file in
558 \python24\scripts).
557 \python24\scripts).
559
558
560 * ipapi.py: launch_new_instance, launch entry point needed for the
559 * ipapi.py: launch_new_instance, launch entry point needed for the
561 egg.
560 egg.
562
561
563 2006-01-23 Ville Vainio <vivainio@gmail.com>
562 2006-01-23 Ville Vainio <vivainio@gmail.com>
564
563
565 * Added %cpaste magic for pasting python code
564 * Added %cpaste magic for pasting python code
566
565
567 2006-01-22 Ville Vainio <vivainio@gmail.com>
566 2006-01-22 Ville Vainio <vivainio@gmail.com>
568
567
569 * Merge from branches/0.7.1 into trunk, revs 1052-1057
568 * Merge from branches/0.7.1 into trunk, revs 1052-1057
570
569
571 * Versionstring = 0.7.2.svn
570 * Versionstring = 0.7.2.svn
572
571
573 * eggsetup.py: A separate script for constructing eggs, creates
572 * eggsetup.py: A separate script for constructing eggs, creates
574 proper launch scripts even on Windows (an .exe file in
573 proper launch scripts even on Windows (an .exe file in
575 \python24\scripts).
574 \python24\scripts).
576
575
577 * ipapi.py: launch_new_instance, launch entry point needed for the
576 * ipapi.py: launch_new_instance, launch entry point needed for the
578 egg.
577 egg.
579
578
580 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
579 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
581
580
582 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
581 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
583 %pfile foo would print the file for foo even if it was a binary.
582 %pfile foo would print the file for foo even if it was a binary.
584 Now, extensions '.so' and '.dll' are skipped.
583 Now, extensions '.so' and '.dll' are skipped.
585
584
586 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
585 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
587 bug, where macros would fail in all threaded modes. I'm not 100%
586 bug, where macros would fail in all threaded modes. I'm not 100%
588 sure, so I'm going to put out an rc instead of making a release
587 sure, so I'm going to put out an rc instead of making a release
589 today, and wait for feedback for at least a few days.
588 today, and wait for feedback for at least a few days.
590
589
591 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
590 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
592 it...) the handling of pasting external code with autoindent on.
591 it...) the handling of pasting external code with autoindent on.
593 To get out of a multiline input, the rule will appear for most
592 To get out of a multiline input, the rule will appear for most
594 users unchanged: two blank lines or change the indent level
593 users unchanged: two blank lines or change the indent level
595 proposed by IPython. But there is a twist now: you can
594 proposed by IPython. But there is a twist now: you can
596 add/subtract only *one or two spaces*. If you add/subtract three
595 add/subtract only *one or two spaces*. If you add/subtract three
597 or more (unless you completely delete the line), IPython will
596 or more (unless you completely delete the line), IPython will
598 accept that line, and you'll need to enter a second one of pure
597 accept that line, and you'll need to enter a second one of pure
599 whitespace. I know it sounds complicated, but I can't find a
598 whitespace. I know it sounds complicated, but I can't find a
600 different solution that covers all the cases, with the right
599 different solution that covers all the cases, with the right
601 heuristics. Hopefully in actual use, nobody will really notice
600 heuristics. Hopefully in actual use, nobody will really notice
602 all these strange rules and things will 'just work'.
601 all these strange rules and things will 'just work'.
603
602
604 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
603 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
605
604
606 * IPython/iplib.py (interact): catch exceptions which can be
605 * IPython/iplib.py (interact): catch exceptions which can be
607 triggered asynchronously by signal handlers. Thanks to an
606 triggered asynchronously by signal handlers. Thanks to an
608 automatic crash report, submitted by Colin Kingsley
607 automatic crash report, submitted by Colin Kingsley
609 <tercel-AT-gentoo.org>.
608 <tercel-AT-gentoo.org>.
610
609
611 2006-01-20 Ville Vainio <vivainio@gmail.com>
610 2006-01-20 Ville Vainio <vivainio@gmail.com>
612
611
613 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
612 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
614 (%rehashdir, very useful, try it out) of how to extend ipython
613 (%rehashdir, very useful, try it out) of how to extend ipython
615 with new magics. Also added Extensions dir to pythonpath to make
614 with new magics. Also added Extensions dir to pythonpath to make
616 importing extensions easy.
615 importing extensions easy.
617
616
618 * %store now complains when trying to store interactively declared
617 * %store now complains when trying to store interactively declared
619 classes / instances of those classes.
618 classes / instances of those classes.
620
619
621 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
620 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
622 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
621 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
623 if they exist, and ipy_user_conf.py with some defaults is created for
622 if they exist, and ipy_user_conf.py with some defaults is created for
624 the user.
623 the user.
625
624
626 * Startup rehashing done by the config file, not InterpreterExec.
625 * Startup rehashing done by the config file, not InterpreterExec.
627 This means system commands are available even without selecting the
626 This means system commands are available even without selecting the
628 pysh profile. It's the sensible default after all.
627 pysh profile. It's the sensible default after all.
629
628
630 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
629 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
631
630
632 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
631 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
633 multiline code with autoindent on working. But I am really not
632 multiline code with autoindent on working. But I am really not
634 sure, so this needs more testing. Will commit a debug-enabled
633 sure, so this needs more testing. Will commit a debug-enabled
635 version for now, while I test it some more, so that Ville and
634 version for now, while I test it some more, so that Ville and
636 others may also catch any problems. Also made
635 others may also catch any problems. Also made
637 self.indent_current_str() a method, to ensure that there's no
636 self.indent_current_str() a method, to ensure that there's no
638 chance of the indent space count and the corresponding string
637 chance of the indent space count and the corresponding string
639 falling out of sync. All code needing the string should just call
638 falling out of sync. All code needing the string should just call
640 the method.
639 the method.
641
640
642 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
641 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
643
642
644 * IPython/Magic.py (magic_edit): fix check for when users don't
643 * IPython/Magic.py (magic_edit): fix check for when users don't
645 save their output files, the try/except was in the wrong section.
644 save their output files, the try/except was in the wrong section.
646
645
647 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
646 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
648
647
649 * IPython/Magic.py (magic_run): fix __file__ global missing from
648 * IPython/Magic.py (magic_run): fix __file__ global missing from
650 script's namespace when executed via %run. After a report by
649 script's namespace when executed via %run. After a report by
651 Vivian.
650 Vivian.
652
651
653 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
652 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
654 when using python 2.4. The parent constructor changed in 2.4, and
653 when using python 2.4. The parent constructor changed in 2.4, and
655 we need to track it directly (we can't call it, as it messes up
654 we need to track it directly (we can't call it, as it messes up
656 readline and tab-completion inside our pdb would stop working).
655 readline and tab-completion inside our pdb would stop working).
657 After a bug report by R. Bernstein <rocky-AT-panix.com>.
656 After a bug report by R. Bernstein <rocky-AT-panix.com>.
658
657
659 2006-01-16 Ville Vainio <vivainio@gmail.com>
658 2006-01-16 Ville Vainio <vivainio@gmail.com>
660
659
661 * Ipython/magic.py:Reverted back to old %edit functionality
660 * Ipython/magic.py: Reverted back to old %edit functionality
662 that returns file contents on exit.
661 that returns file contents on exit.
663
662
664 * IPython/path.py: Added Jason Orendorff's "path" module to
663 * IPython/path.py: Added Jason Orendorff's "path" module to
665 IPython tree, http://www.jorendorff.com/articles/python/path/.
664 IPython tree, http://www.jorendorff.com/articles/python/path/.
666 You can get path objects conveniently through %sc, and !!, e.g.:
665 You can get path objects conveniently through %sc, and !!, e.g.:
667 sc files=ls
666 sc files=ls
668 for p in files.paths: # or files.p
667 for p in files.paths: # or files.p
669 print p,p.mtime
668 print p,p.mtime
670
669
671 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
670 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
672 now work again without considering the exclusion regexp -
671 now work again without considering the exclusion regexp -
673 hence, things like ',foo my/path' turn to 'foo("my/path")'
672 hence, things like ',foo my/path' turn to 'foo("my/path")'
674 instead of syntax error.
673 instead of syntax error.
675
674
676
675
677 2006-01-14 Ville Vainio <vivainio@gmail.com>
676 2006-01-14 Ville Vainio <vivainio@gmail.com>
678
677
679 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
678 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
680 ipapi decorators for python 2.4 users, options() provides access to rc
679 ipapi decorators for python 2.4 users, options() provides access to rc
681 data.
680 data.
682
681
683 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
682 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
684 as path separators (even on Linux ;-). Space character after
683 as path separators (even on Linux ;-). Space character after
685 backslash (as yielded by tab completer) is still space;
684 backslash (as yielded by tab completer) is still space;
686 "%cd long\ name" works as expected.
685 "%cd long\ name" works as expected.
687
686
688 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
687 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
689 as "chain of command", with priority. API stays the same,
688 as "chain of command", with priority. API stays the same,
690 TryNext exception raised by a hook function signals that
689 TryNext exception raised by a hook function signals that
691 current hook failed and next hook should try handling it, as
690 current hook failed and next hook should try handling it, as
692 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
691 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
693 requested configurable display hook, which is now implemented.
692 requested configurable display hook, which is now implemented.
694
693
695 2006-01-13 Ville Vainio <vivainio@gmail.com>
694 2006-01-13 Ville Vainio <vivainio@gmail.com>
696
695
697 * IPython/platutils*.py: platform specific utility functions,
696 * IPython/platutils*.py: platform specific utility functions,
698 so far only set_term_title is implemented (change terminal
697 so far only set_term_title is implemented (change terminal
699 label in windowing systems). %cd now changes the title to
698 label in windowing systems). %cd now changes the title to
700 current dir.
699 current dir.
701
700
702 * IPython/Release.py: Added myself to "authors" list,
701 * IPython/Release.py: Added myself to "authors" list,
703 had to create new files.
702 had to create new files.
704
703
705 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
704 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
706 shell escape; not a known bug but had potential to be one in the
705 shell escape; not a known bug but had potential to be one in the
707 future.
706 future.
708
707
709 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
708 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
710 extension API for IPython! See the module for usage example. Fix
709 extension API for IPython! See the module for usage example. Fix
711 OInspect for docstring-less magic functions.
710 OInspect for docstring-less magic functions.
712
711
713
712
714 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
713 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
715
714
716 * IPython/iplib.py (raw_input): temporarily deactivate all
715 * IPython/iplib.py (raw_input): temporarily deactivate all
717 attempts at allowing pasting of code with autoindent on. It
716 attempts at allowing pasting of code with autoindent on. It
718 introduced bugs (reported by Prabhu) and I can't seem to find a
717 introduced bugs (reported by Prabhu) and I can't seem to find a
719 robust combination which works in all cases. Will have to revisit
718 robust combination which works in all cases. Will have to revisit
720 later.
719 later.
721
720
722 * IPython/genutils.py: remove isspace() function. We've dropped
721 * IPython/genutils.py: remove isspace() function. We've dropped
723 2.2 compatibility, so it's OK to use the string method.
722 2.2 compatibility, so it's OK to use the string method.
724
723
725 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
724 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
726
725
727 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
726 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
728 matching what NOT to autocall on, to include all python binary
727 matching what NOT to autocall on, to include all python binary
729 operators (including things like 'and', 'or', 'is' and 'in').
728 operators (including things like 'and', 'or', 'is' and 'in').
730 Prompted by a bug report on 'foo & bar', but I realized we had
729 Prompted by a bug report on 'foo & bar', but I realized we had
731 many more potential bug cases with other operators. The regexp is
730 many more potential bug cases with other operators. The regexp is
732 self.re_exclude_auto, it's fairly commented.
731 self.re_exclude_auto, it's fairly commented.
733
732
734 2006-01-12 Ville Vainio <vivainio@gmail.com>
733 2006-01-12 Ville Vainio <vivainio@gmail.com>
735
734
736 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
735 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
737 Prettified and hardened string/backslash quoting with ipsystem(),
736 Prettified and hardened string/backslash quoting with ipsystem(),
738 ipalias() and ipmagic(). Now even \ characters are passed to
737 ipalias() and ipmagic(). Now even \ characters are passed to
739 %magics, !shell escapes and aliases exactly as they are in the
738 %magics, !shell escapes and aliases exactly as they are in the
740 ipython command line. Should improve backslash experience,
739 ipython command line. Should improve backslash experience,
741 particularly in Windows (path delimiter for some commands that
740 particularly in Windows (path delimiter for some commands that
742 won't understand '/'), but Unix benefits as well (regexps). %cd
741 won't understand '/'), but Unix benefits as well (regexps). %cd
743 magic still doesn't support backslash path delimiters, though. Also
742 magic still doesn't support backslash path delimiters, though. Also
744 deleted all pretense of supporting multiline command strings in
743 deleted all pretense of supporting multiline command strings in
745 !system or %magic commands. Thanks to Jerry McRae for suggestions.
744 !system or %magic commands. Thanks to Jerry McRae for suggestions.
746
745
747 * doc/build_doc_instructions.txt added. Documentation on how to
746 * doc/build_doc_instructions.txt added. Documentation on how to
748 use doc/update_manual.py, added yesterday. Both files contributed
747 use doc/update_manual.py, added yesterday. Both files contributed
749 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
748 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
750 doc/*.sh for deprecation at a later date.
749 doc/*.sh for deprecation at a later date.
751
750
752 * /ipython.py Added ipython.py to root directory for
751 * /ipython.py Added ipython.py to root directory for
753 zero-installation (tar xzvf ipython.tgz; cd ipython; python
752 zero-installation (tar xzvf ipython.tgz; cd ipython; python
754 ipython.py) and development convenience (no need to kee doing
753 ipython.py) and development convenience (no need to keep doing
755 "setup.py install" between changes).
754 "setup.py install" between changes).
756
755
757 * Made ! and !! shell escapes work (again) in multiline expressions:
756 * Made ! and !! shell escapes work (again) in multiline expressions:
758 if 1:
757 if 1:
759 !ls
758 !ls
760 !!ls
759 !!ls
761
760
762 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
761 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
763
762
764 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
763 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
765 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
764 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
766 module in case-insensitive installation. Was causing crashes
765 module in case-insensitive installation. Was causing crashes
767 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
766 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
768
767
769 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
768 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
770 <marienz-AT-gentoo.org>, closes
769 <marienz-AT-gentoo.org>, closes
771 http://www.scipy.net/roundup/ipython/issue51.
770 http://www.scipy.net/roundup/ipython/issue51.
772
771
773 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
772 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
774
773
775 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
774 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
776 problem of excessive CPU usage under *nix and keyboard lag under
775 problem of excessive CPU usage under *nix and keyboard lag under
777 win32.
776 win32.
778
777
779 2006-01-10 *** Released version 0.7.0
778 2006-01-10 *** Released version 0.7.0
780
779
781 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
780 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
782
781
783 * IPython/Release.py (revision): tag version number to 0.7.0,
782 * IPython/Release.py (revision): tag version number to 0.7.0,
784 ready for release.
783 ready for release.
785
784
786 * IPython/Magic.py (magic_edit): Add print statement to %edit so
785 * IPython/Magic.py (magic_edit): Add print statement to %edit so
787 it informs the user of the name of the temp. file used. This can
786 it informs the user of the name of the temp. file used. This can
788 help if you decide later to reuse that same file, so you know
787 help if you decide later to reuse that same file, so you know
789 where to copy the info from.
788 where to copy the info from.
790
789
791 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
790 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
792
791
793 * setup_bdist_egg.py: little script to build an egg. Added
792 * setup_bdist_egg.py: little script to build an egg. Added
794 support in the release tools as well.
793 support in the release tools as well.
795
794
796 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
795 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
797
796
798 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
797 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
799 version selection (new -wxversion command line and ipythonrc
798 version selection (new -wxversion command line and ipythonrc
800 parameter). Patch contributed by Arnd Baecker
799 parameter). Patch contributed by Arnd Baecker
801 <arnd.baecker-AT-web.de>.
800 <arnd.baecker-AT-web.de>.
802
801
803 * IPython/iplib.py (embed_mainloop): fix tab-completion in
802 * IPython/iplib.py (embed_mainloop): fix tab-completion in
804 embedded instances, for variables defined at the interactive
803 embedded instances, for variables defined at the interactive
805 prompt of the embedded ipython. Reported by Arnd.
804 prompt of the embedded ipython. Reported by Arnd.
806
805
807 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
806 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
808 it can be used as a (stateful) toggle, or with a direct parameter.
807 it can be used as a (stateful) toggle, or with a direct parameter.
809
808
810 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
809 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
811 could be triggered in certain cases and cause the traceback
810 could be triggered in certain cases and cause the traceback
812 printer not to work.
811 printer not to work.
813
812
814 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
813 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
815
814
816 * IPython/iplib.py (_should_recompile): Small fix, closes
815 * IPython/iplib.py (_should_recompile): Small fix, closes
817 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
816 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
818
817
819 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
818 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
820
819
821 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
820 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
822 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
821 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
823 Moad for help with tracking it down.
822 Moad for help with tracking it down.
824
823
825 * IPython/iplib.py (handle_auto): fix autocall handling for
824 * IPython/iplib.py (handle_auto): fix autocall handling for
826 objects which support BOTH __getitem__ and __call__ (so that f [x]
825 objects which support BOTH __getitem__ and __call__ (so that f [x]
827 is left alone, instead of becoming f([x]) automatically).
826 is left alone, instead of becoming f([x]) automatically).
828
827
829 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
828 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
830 Ville's patch.
829 Ville's patch.
831
830
832 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
831 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
833
832
834 * IPython/iplib.py (handle_auto): changed autocall semantics to
833 * IPython/iplib.py (handle_auto): changed autocall semantics to
835 include 'smart' mode, where the autocall transformation is NOT
834 include 'smart' mode, where the autocall transformation is NOT
836 applied if there are no arguments on the line. This allows you to
835 applied if there are no arguments on the line. This allows you to
837 just type 'foo' if foo is a callable to see its internal form,
836 just type 'foo' if foo is a callable to see its internal form,
838 instead of having it called with no arguments (typically a
837 instead of having it called with no arguments (typically a
839 mistake). The old 'full' autocall still exists: for that, you
838 mistake). The old 'full' autocall still exists: for that, you
840 need to set the 'autocall' parameter to 2 in your ipythonrc file.
839 need to set the 'autocall' parameter to 2 in your ipythonrc file.
841
840
842 * IPython/completer.py (Completer.attr_matches): add
841 * IPython/completer.py (Completer.attr_matches): add
843 tab-completion support for Enthoughts' traits. After a report by
842 tab-completion support for Enthoughts' traits. After a report by
844 Arnd and a patch by Prabhu.
843 Arnd and a patch by Prabhu.
845
844
846 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
845 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
847
846
848 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
847 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
849 Schmolck's patch to fix inspect.getinnerframes().
848 Schmolck's patch to fix inspect.getinnerframes().
850
849
851 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
850 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
852 for embedded instances, regarding handling of namespaces and items
851 for embedded instances, regarding handling of namespaces and items
853 added to the __builtin__ one. Multiple embedded instances and
852 added to the __builtin__ one. Multiple embedded instances and
854 recursive embeddings should work better now (though I'm not sure
853 recursive embeddings should work better now (though I'm not sure
855 I've got all the corner cases fixed, that code is a bit of a brain
854 I've got all the corner cases fixed, that code is a bit of a brain
856 twister).
855 twister).
857
856
858 * IPython/Magic.py (magic_edit): added support to edit in-memory
857 * IPython/Magic.py (magic_edit): added support to edit in-memory
859 macros (automatically creates the necessary temp files). %edit
858 macros (automatically creates the necessary temp files). %edit
860 also doesn't return the file contents anymore, it's just noise.
859 also doesn't return the file contents anymore, it's just noise.
861
860
862 * IPython/completer.py (Completer.attr_matches): revert change to
861 * IPython/completer.py (Completer.attr_matches): revert change to
863 complete only on attributes listed in __all__. I realized it
862 complete only on attributes listed in __all__. I realized it
864 cripples the tab-completion system as a tool for exploring the
863 cripples the tab-completion system as a tool for exploring the
865 internals of unknown libraries (it renders any non-__all__
864 internals of unknown libraries (it renders any non-__all__
866 attribute off-limits). I got bit by this when trying to see
865 attribute off-limits). I got bit by this when trying to see
867 something inside the dis module.
866 something inside the dis module.
868
867
869 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
868 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
870
869
871 * IPython/iplib.py (InteractiveShell.__init__): add .meta
870 * IPython/iplib.py (InteractiveShell.__init__): add .meta
872 namespace for users and extension writers to hold data in. This
871 namespace for users and extension writers to hold data in. This
873 follows the discussion in
872 follows the discussion in
874 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
873 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
875
874
876 * IPython/completer.py (IPCompleter.complete): small patch to help
875 * IPython/completer.py (IPCompleter.complete): small patch to help
877 tab-completion under Emacs, after a suggestion by John Barnard
876 tab-completion under Emacs, after a suggestion by John Barnard
878 <barnarj-AT-ccf.org>.
877 <barnarj-AT-ccf.org>.
879
878
880 * IPython/Magic.py (Magic.extract_input_slices): added support for
879 * IPython/Magic.py (Magic.extract_input_slices): added support for
881 the slice notation in magics to use N-M to represent numbers N...M
880 the slice notation in magics to use N-M to represent numbers N...M
882 (closed endpoints). This is used by %macro and %save.
881 (closed endpoints). This is used by %macro and %save.
883
882
884 * IPython/completer.py (Completer.attr_matches): for modules which
883 * IPython/completer.py (Completer.attr_matches): for modules which
885 define __all__, complete only on those. After a patch by Jeffrey
884 define __all__, complete only on those. After a patch by Jeffrey
886 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
885 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
887 speed up this routine.
886 speed up this routine.
888
887
889 * IPython/Logger.py (Logger.log): fix a history handling bug. I
888 * IPython/Logger.py (Logger.log): fix a history handling bug. I
890 don't know if this is the end of it, but the behavior now is
889 don't know if this is the end of it, but the behavior now is
891 certainly much more correct. Note that coupled with macros,
890 certainly much more correct. Note that coupled with macros,
892 slightly surprising (at first) behavior may occur: a macro will in
891 slightly surprising (at first) behavior may occur: a macro will in
893 general expand to multiple lines of input, so upon exiting, the
892 general expand to multiple lines of input, so upon exiting, the
894 in/out counters will both be bumped by the corresponding amount
893 in/out counters will both be bumped by the corresponding amount
895 (as if the macro's contents had been typed interactively). Typing
894 (as if the macro's contents had been typed interactively). Typing
896 %hist will reveal the intermediate (silently processed) lines.
895 %hist will reveal the intermediate (silently processed) lines.
897
896
898 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
897 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
899 pickle to fail (%run was overwriting __main__ and not restoring
898 pickle to fail (%run was overwriting __main__ and not restoring
900 it, but pickle relies on __main__ to operate).
899 it, but pickle relies on __main__ to operate).
901
900
902 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
901 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
903 using properties, but forgot to make the main InteractiveShell
902 using properties, but forgot to make the main InteractiveShell
904 class a new-style class. Properties fail silently, and
903 class a new-style class. Properties fail silently, and
905 misteriously, with old-style class (getters work, but
904 mysteriously, with old-style class (getters work, but
906 setters don't do anything).
905 setters don't do anything).
907
906
908 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
907 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
909
908
910 * IPython/Magic.py (magic_history): fix history reporting bug (I
909 * IPython/Magic.py (magic_history): fix history reporting bug (I
911 know some nasties are still there, I just can't seem to find a
910 know some nasties are still there, I just can't seem to find a
912 reproducible test case to track them down; the input history is
911 reproducible test case to track them down; the input history is
913 falling out of sync...)
912 falling out of sync...)
914
913
915 * IPython/iplib.py (handle_shell_escape): fix bug where both
914 * IPython/iplib.py (handle_shell_escape): fix bug where both
916 aliases and system accesses where broken for indented code (such
915 aliases and system accesses where broken for indented code (such
917 as loops).
916 as loops).
918
917
919 * IPython/genutils.py (shell): fix small but critical bug for
918 * IPython/genutils.py (shell): fix small but critical bug for
920 win32 system access.
919 win32 system access.
921
920
922 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
921 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
923
922
924 * IPython/iplib.py (showtraceback): remove use of the
923 * IPython/iplib.py (showtraceback): remove use of the
925 sys.last_{type/value/traceback} structures, which are non
924 sys.last_{type/value/traceback} structures, which are non
926 thread-safe.
925 thread-safe.
927 (_prefilter): change control flow to ensure that we NEVER
926 (_prefilter): change control flow to ensure that we NEVER
928 introspect objects when autocall is off. This will guarantee that
927 introspect objects when autocall is off. This will guarantee that
929 having an input line of the form 'x.y', where access to attribute
928 having an input line of the form 'x.y', where access to attribute
930 'y' has side effects, doesn't trigger the side effect TWICE. It
929 'y' has side effects, doesn't trigger the side effect TWICE. It
931 is important to note that, with autocall on, these side effects
930 is important to note that, with autocall on, these side effects
932 can still happen.
931 can still happen.
933 (ipsystem): new builtin, to complete the ip{magic/alias/system}
932 (ipsystem): new builtin, to complete the ip{magic/alias/system}
934 trio. IPython offers these three kinds of special calls which are
933 trio. IPython offers these three kinds of special calls which are
935 not python code, and it's a good thing to have their call method
934 not python code, and it's a good thing to have their call method
936 be accessible as pure python functions (not just special syntax at
935 be accessible as pure python functions (not just special syntax at
937 the command line). It gives us a better internal implementation
936 the command line). It gives us a better internal implementation
938 structure, as well as exposing these for user scripting more
937 structure, as well as exposing these for user scripting more
939 cleanly.
938 cleanly.
940
939
941 * IPython/macro.py (Macro.__init__): moved macros to a standalone
940 * IPython/macro.py (Macro.__init__): moved macros to a standalone
942 file. Now that they'll be more likely to be used with the
941 file. Now that they'll be more likely to be used with the
943 persistance system (%store), I want to make sure their module path
942 persistance system (%store), I want to make sure their module path
944 doesn't change in the future, so that we don't break things for
943 doesn't change in the future, so that we don't break things for
945 users' persisted data.
944 users' persisted data.
946
945
947 * IPython/iplib.py (autoindent_update): move indentation
946 * IPython/iplib.py (autoindent_update): move indentation
948 management into the _text_ processing loop, not the keyboard
947 management into the _text_ processing loop, not the keyboard
949 interactive one. This is necessary to correctly process non-typed
948 interactive one. This is necessary to correctly process non-typed
950 multiline input (such as macros).
949 multiline input (such as macros).
951
950
952 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
951 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
953 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
952 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
954 which was producing problems in the resulting manual.
953 which was producing problems in the resulting manual.
955 (magic_whos): improve reporting of instances (show their class,
954 (magic_whos): improve reporting of instances (show their class,
956 instead of simply printing 'instance' which isn't terribly
955 instead of simply printing 'instance' which isn't terribly
957 informative).
956 informative).
958
957
959 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
958 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
960 (minor mods) to support network shares under win32.
959 (minor mods) to support network shares under win32.
961
960
962 * IPython/winconsole.py (get_console_size): add new winconsole
961 * IPython/winconsole.py (get_console_size): add new winconsole
963 module and fixes to page_dumb() to improve its behavior under
962 module and fixes to page_dumb() to improve its behavior under
964 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
963 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
965
964
966 * IPython/Magic.py (Macro): simplified Macro class to just
965 * IPython/Magic.py (Macro): simplified Macro class to just
967 subclass list. We've had only 2.2 compatibility for a very long
966 subclass list. We've had only 2.2 compatibility for a very long
968 time, yet I was still avoiding subclassing the builtin types. No
967 time, yet I was still avoiding subclassing the builtin types. No
969 more (I'm also starting to use properties, though I won't shift to
968 more (I'm also starting to use properties, though I won't shift to
970 2.3-specific features quite yet).
969 2.3-specific features quite yet).
971 (magic_store): added Ville's patch for lightweight variable
970 (magic_store): added Ville's patch for lightweight variable
972 persistence, after a request on the user list by Matt Wilkie
971 persistence, after a request on the user list by Matt Wilkie
973 <maphew-AT-gmail.com>. The new %store magic's docstring has full
972 <maphew-AT-gmail.com>. The new %store magic's docstring has full
974 details.
973 details.
975
974
976 * IPython/iplib.py (InteractiveShell.post_config_initialization):
975 * IPython/iplib.py (InteractiveShell.post_config_initialization):
977 changed the default logfile name from 'ipython.log' to
976 changed the default logfile name from 'ipython.log' to
978 'ipython_log.py'. These logs are real python files, and now that
977 'ipython_log.py'. These logs are real python files, and now that
979 we have much better multiline support, people are more likely to
978 we have much better multiline support, people are more likely to
980 want to use them as such. Might as well name them correctly.
979 want to use them as such. Might as well name them correctly.
981
980
982 * IPython/Magic.py: substantial cleanup. While we can't stop
981 * IPython/Magic.py: substantial cleanup. While we can't stop
983 using magics as mixins, due to the existing customizations 'out
982 using magics as mixins, due to the existing customizations 'out
984 there' which rely on the mixin naming conventions, at least I
983 there' which rely on the mixin naming conventions, at least I
985 cleaned out all cross-class name usage. So once we are OK with
984 cleaned out all cross-class name usage. So once we are OK with
986 breaking compatibility, the two systems can be separated.
985 breaking compatibility, the two systems can be separated.
987
986
988 * IPython/Logger.py: major cleanup. This one is NOT a mixin
987 * IPython/Logger.py: major cleanup. This one is NOT a mixin
989 anymore, and the class is a fair bit less hideous as well. New
988 anymore, and the class is a fair bit less hideous as well. New
990 features were also introduced: timestamping of input, and logging
989 features were also introduced: timestamping of input, and logging
991 of output results. These are user-visible with the -t and -o
990 of output results. These are user-visible with the -t and -o
992 options to %logstart. Closes
991 options to %logstart. Closes
993 http://www.scipy.net/roundup/ipython/issue11 and a request by
992 http://www.scipy.net/roundup/ipython/issue11 and a request by
994 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
993 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
995
994
996 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
995 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
997
996
998 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
997 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
999 better hadnle backslashes in paths. See the thread 'More Windows
998 better handle backslashes in paths. See the thread 'More Windows
1000 questions part 2 - \/ characters revisited' on the iypthon user
999 questions part 2 - \/ characters revisited' on the iypthon user
1001 list:
1000 list:
1002 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1001 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1003
1002
1004 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1003 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1005
1004
1006 (InteractiveShell.__init__): change threaded shells to not use the
1005 (InteractiveShell.__init__): change threaded shells to not use the
1007 ipython crash handler. This was causing more problems than not,
1006 ipython crash handler. This was causing more problems than not,
1008 as exceptions in the main thread (GUI code, typically) would
1007 as exceptions in the main thread (GUI code, typically) would
1009 always show up as a 'crash', when they really weren't.
1008 always show up as a 'crash', when they really weren't.
1010
1009
1011 The colors and exception mode commands (%colors/%xmode) have been
1010 The colors and exception mode commands (%colors/%xmode) have been
1012 synchronized to also take this into account, so users can get
1011 synchronized to also take this into account, so users can get
1013 verbose exceptions for their threaded code as well. I also added
1012 verbose exceptions for their threaded code as well. I also added
1014 support for activating pdb inside this exception handler as well,
1013 support for activating pdb inside this exception handler as well,
1015 so now GUI authors can use IPython's enhanced pdb at runtime.
1014 so now GUI authors can use IPython's enhanced pdb at runtime.
1016
1015
1017 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1016 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1018 true by default, and add it to the shipped ipythonrc file. Since
1017 true by default, and add it to the shipped ipythonrc file. Since
1019 this asks the user before proceeding, I think it's OK to make it
1018 this asks the user before proceeding, I think it's OK to make it
1020 true by default.
1019 true by default.
1021
1020
1022 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1021 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1023 of the previous special-casing of input in the eval loop. I think
1022 of the previous special-casing of input in the eval loop. I think
1024 this is cleaner, as they really are commands and shouldn't have
1023 this is cleaner, as they really are commands and shouldn't have
1025 a special role in the middle of the core code.
1024 a special role in the middle of the core code.
1026
1025
1027 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1026 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1027
1029 * IPython/iplib.py (edit_syntax_error): added support for
1028 * IPython/iplib.py (edit_syntax_error): added support for
1030 automatically reopening the editor if the file had a syntax error
1029 automatically reopening the editor if the file had a syntax error
1031 in it. Thanks to scottt who provided the patch at:
1030 in it. Thanks to scottt who provided the patch at:
1032 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1031 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1033 version committed).
1032 version committed).
1034
1033
1035 * IPython/iplib.py (handle_normal): add suport for multi-line
1034 * IPython/iplib.py (handle_normal): add suport for multi-line
1036 input with emtpy lines. This fixes
1035 input with emtpy lines. This fixes
1037 http://www.scipy.net/roundup/ipython/issue43 and a similar
1036 http://www.scipy.net/roundup/ipython/issue43 and a similar
1038 discussion on the user list.
1037 discussion on the user list.
1039
1038
1040 WARNING: a behavior change is necessarily introduced to support
1039 WARNING: a behavior change is necessarily introduced to support
1041 blank lines: now a single blank line with whitespace does NOT
1040 blank lines: now a single blank line with whitespace does NOT
1042 break the input loop, which means that when autoindent is on, by
1041 break the input loop, which means that when autoindent is on, by
1043 default hitting return on the next (indented) line does NOT exit.
1042 default hitting return on the next (indented) line does NOT exit.
1044
1043
1045 Instead, to exit a multiline input you can either have:
1044 Instead, to exit a multiline input you can either have:
1046
1045
1047 - TWO whitespace lines (just hit return again), or
1046 - TWO whitespace lines (just hit return again), or
1048 - a single whitespace line of a different length than provided
1047 - a single whitespace line of a different length than provided
1049 by the autoindent (add or remove a space).
1048 by the autoindent (add or remove a space).
1050
1049
1051 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1050 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1052 module to better organize all readline-related functionality.
1051 module to better organize all readline-related functionality.
1053 I've deleted FlexCompleter and put all completion clases here.
1052 I've deleted FlexCompleter and put all completion clases here.
1054
1053
1055 * IPython/iplib.py (raw_input): improve indentation management.
1054 * IPython/iplib.py (raw_input): improve indentation management.
1056 It is now possible to paste indented code with autoindent on, and
1055 It is now possible to paste indented code with autoindent on, and
1057 the code is interpreted correctly (though it still looks bad on
1056 the code is interpreted correctly (though it still looks bad on
1058 screen, due to the line-oriented nature of ipython).
1057 screen, due to the line-oriented nature of ipython).
1059 (MagicCompleter.complete): change behavior so that a TAB key on an
1058 (MagicCompleter.complete): change behavior so that a TAB key on an
1060 otherwise empty line actually inserts a tab, instead of completing
1059 otherwise empty line actually inserts a tab, instead of completing
1061 on the entire global namespace. This makes it easier to use the
1060 on the entire global namespace. This makes it easier to use the
1062 TAB key for indentation. After a request by Hans Meine
1061 TAB key for indentation. After a request by Hans Meine
1063 <hans_meine-AT-gmx.net>
1062 <hans_meine-AT-gmx.net>
1064 (_prefilter): add support so that typing plain 'exit' or 'quit'
1063 (_prefilter): add support so that typing plain 'exit' or 'quit'
1065 does a sensible thing. Originally I tried to deviate as little as
1064 does a sensible thing. Originally I tried to deviate as little as
1066 possible from the default python behavior, but even that one may
1065 possible from the default python behavior, but even that one may
1067 change in this direction (thread on python-dev to that effect).
1066 change in this direction (thread on python-dev to that effect).
1068 Regardless, ipython should do the right thing even if CPython's
1067 Regardless, ipython should do the right thing even if CPython's
1069 '>>>' prompt doesn't.
1068 '>>>' prompt doesn't.
1070 (InteractiveShell): removed subclassing code.InteractiveConsole
1069 (InteractiveShell): removed subclassing code.InteractiveConsole
1071 class. By now we'd overridden just about all of its methods: I've
1070 class. By now we'd overridden just about all of its methods: I've
1072 copied the remaining two over, and now ipython is a standalone
1071 copied the remaining two over, and now ipython is a standalone
1073 class. This will provide a clearer picture for the chainsaw
1072 class. This will provide a clearer picture for the chainsaw
1074 branch refactoring.
1073 branch refactoring.
1075
1074
1076 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1075 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1077
1076
1078 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1077 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1079 failures for objects which break when dir() is called on them.
1078 failures for objects which break when dir() is called on them.
1080
1079
1081 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1080 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1082 distinct local and global namespaces in the completer API. This
1081 distinct local and global namespaces in the completer API. This
1083 change allows us top properly handle completion with distinct
1082 change allows us to properly handle completion with distinct
1084 scopes, including in embedded instances (this had never really
1083 scopes, including in embedded instances (this had never really
1085 worked correctly).
1084 worked correctly).
1086
1085
1087 Note: this introduces a change in the constructor for
1086 Note: this introduces a change in the constructor for
1088 MagicCompleter, as a new global_namespace parameter is now the
1087 MagicCompleter, as a new global_namespace parameter is now the
1089 second argument (the others were bumped one position).
1088 second argument (the others were bumped one position).
1090
1089
1091 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1090 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1091
1093 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1092 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1094 embedded instances (which can be done now thanks to Vivian's
1093 embedded instances (which can be done now thanks to Vivian's
1095 frame-handling fixes for pdb).
1094 frame-handling fixes for pdb).
1096 (InteractiveShell.__init__): Fix namespace handling problem in
1095 (InteractiveShell.__init__): Fix namespace handling problem in
1097 embedded instances. We were overwriting __main__ unconditionally,
1096 embedded instances. We were overwriting __main__ unconditionally,
1098 and this should only be done for 'full' (non-embedded) IPython;
1097 and this should only be done for 'full' (non-embedded) IPython;
1099 embedded instances must respect the caller's __main__. Thanks to
1098 embedded instances must respect the caller's __main__. Thanks to
1100 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1099 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1101
1100
1102 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1101 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1103
1102
1104 * setup.py: added download_url to setup(). This registers the
1103 * setup.py: added download_url to setup(). This registers the
1105 download address at PyPI, which is not only useful to humans
1104 download address at PyPI, which is not only useful to humans
1106 browsing the site, but is also picked up by setuptools (the Eggs
1105 browsing the site, but is also picked up by setuptools (the Eggs
1107 machinery). Thanks to Ville and R. Kern for the info/discussion
1106 machinery). Thanks to Ville and R. Kern for the info/discussion
1108 on this.
1107 on this.
1109
1108
1110 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1109 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1110
1112 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1111 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1113 This brings a lot of nice functionality to the pdb mode, which now
1112 This brings a lot of nice functionality to the pdb mode, which now
1114 has tab-completion, syntax highlighting, and better stack handling
1113 has tab-completion, syntax highlighting, and better stack handling
1115 than before. Many thanks to Vivian De Smedt
1114 than before. Many thanks to Vivian De Smedt
1116 <vivian-AT-vdesmedt.com> for the original patches.
1115 <vivian-AT-vdesmedt.com> for the original patches.
1117
1116
1118 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1117 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1119
1118
1120 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1119 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1121 sequence to consistently accept the banner argument. The
1120 sequence to consistently accept the banner argument. The
1122 inconsistency was tripping SAGE, thanks to Gary Zablackis
1121 inconsistency was tripping SAGE, thanks to Gary Zablackis
1123 <gzabl-AT-yahoo.com> for the report.
1122 <gzabl-AT-yahoo.com> for the report.
1124
1123
1125 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1124 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1126
1125
1127 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1126 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1128 Fix bug where a naked 'alias' call in the ipythonrc file would
1127 Fix bug where a naked 'alias' call in the ipythonrc file would
1129 cause a crash. Bug reported by Jorgen Stenarson.
1128 cause a crash. Bug reported by Jorgen Stenarson.
1130
1129
1131 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1132
1131
1133 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1132 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1134 startup time.
1133 startup time.
1135
1134
1136 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1135 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1137 instances had introduced a bug with globals in normal code. Now
1136 instances had introduced a bug with globals in normal code. Now
1138 it's working in all cases.
1137 it's working in all cases.
1139
1138
1140 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1139 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1141 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1140 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1142 has been introduced to set the default case sensitivity of the
1141 has been introduced to set the default case sensitivity of the
1143 searches. Users can still select either mode at runtime on a
1142 searches. Users can still select either mode at runtime on a
1144 per-search basis.
1143 per-search basis.
1145
1144
1146 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1145 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1147
1146
1148 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1147 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1149 attributes in wildcard searches for subclasses. Modified version
1148 attributes in wildcard searches for subclasses. Modified version
1150 of a patch by Jorgen.
1149 of a patch by Jorgen.
1151
1150
1152 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1151 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1153
1152
1154 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1153 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1155 embedded instances. I added a user_global_ns attribute to the
1154 embedded instances. I added a user_global_ns attribute to the
1156 InteractiveShell class to handle this.
1155 InteractiveShell class to handle this.
1157
1156
1158 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1157 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1159
1158
1160 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1159 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1161 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1160 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1162 (reported under win32, but may happen also in other platforms).
1161 (reported under win32, but may happen also in other platforms).
1163 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1162 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1164
1163
1165 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1164 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1166
1165
1167 * IPython/Magic.py (magic_psearch): new support for wildcard
1166 * IPython/Magic.py (magic_psearch): new support for wildcard
1168 patterns. Now, typing ?a*b will list all names which begin with a
1167 patterns. Now, typing ?a*b will list all names which begin with a
1169 and end in b, for example. The %psearch magic has full
1168 and end in b, for example. The %psearch magic has full
1170 docstrings. Many thanks to JΓΆrgen Stenarson
1169 docstrings. Many thanks to JΓΆrgen Stenarson
1171 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1170 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1172 implementing this functionality.
1171 implementing this functionality.
1173
1172
1174 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1173 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1175
1174
1176 * Manual: fixed long-standing annoyance of double-dashes (as in
1175 * Manual: fixed long-standing annoyance of double-dashes (as in
1177 --prefix=~, for example) being stripped in the HTML version. This
1176 --prefix=~, for example) being stripped in the HTML version. This
1178 is a latex2html bug, but a workaround was provided. Many thanks
1177 is a latex2html bug, but a workaround was provided. Many thanks
1179 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1178 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1180 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1179 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1181 rolling. This seemingly small issue had tripped a number of users
1180 rolling. This seemingly small issue had tripped a number of users
1182 when first installing, so I'm glad to see it gone.
1181 when first installing, so I'm glad to see it gone.
1183
1182
1184 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1183 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1185
1184
1186 * IPython/Extensions/numeric_formats.py: fix missing import,
1185 * IPython/Extensions/numeric_formats.py: fix missing import,
1187 reported by Stephen Walton.
1186 reported by Stephen Walton.
1188
1187
1189 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1188 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1190
1189
1191 * IPython/demo.py: finish demo module, fully documented now.
1190 * IPython/demo.py: finish demo module, fully documented now.
1192
1191
1193 * IPython/genutils.py (file_read): simple little utility to read a
1192 * IPython/genutils.py (file_read): simple little utility to read a
1194 file and ensure it's closed afterwards.
1193 file and ensure it's closed afterwards.
1195
1194
1196 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1195 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1197
1196
1198 * IPython/demo.py (Demo.__init__): added support for individually
1197 * IPython/demo.py (Demo.__init__): added support for individually
1199 tagging blocks for automatic execution.
1198 tagging blocks for automatic execution.
1200
1199
1201 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1200 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1202 syntax-highlighted python sources, requested by John.
1201 syntax-highlighted python sources, requested by John.
1203
1202
1204 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1203 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1205
1204
1206 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1205 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1207 finishing.
1206 finishing.
1208
1207
1209 * IPython/genutils.py (shlex_split): moved from Magic to here,
1208 * IPython/genutils.py (shlex_split): moved from Magic to here,
1210 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1209 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1211
1210
1212 * IPython/demo.py (Demo.__init__): added support for silent
1211 * IPython/demo.py (Demo.__init__): added support for silent
1213 blocks, improved marks as regexps, docstrings written.
1212 blocks, improved marks as regexps, docstrings written.
1214 (Demo.__init__): better docstring, added support for sys.argv.
1213 (Demo.__init__): better docstring, added support for sys.argv.
1215
1214
1216 * IPython/genutils.py (marquee): little utility used by the demo
1215 * IPython/genutils.py (marquee): little utility used by the demo
1217 code, handy in general.
1216 code, handy in general.
1218
1217
1219 * IPython/demo.py (Demo.__init__): new class for interactive
1218 * IPython/demo.py (Demo.__init__): new class for interactive
1220 demos. Not documented yet, I just wrote it in a hurry for
1219 demos. Not documented yet, I just wrote it in a hurry for
1221 scipy'05. Will docstring later.
1220 scipy'05. Will docstring later.
1222
1221
1223 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1222 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1224
1223
1225 * IPython/Shell.py (sigint_handler): Drastic simplification which
1224 * IPython/Shell.py (sigint_handler): Drastic simplification which
1226 also seems to make Ctrl-C work correctly across threads! This is
1225 also seems to make Ctrl-C work correctly across threads! This is
1227 so simple, that I can't beleive I'd missed it before. Needs more
1226 so simple, that I can't beleive I'd missed it before. Needs more
1228 testing, though.
1227 testing, though.
1229 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1228 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1230 like this before...
1229 like this before...
1231
1230
1232 * IPython/genutils.py (get_home_dir): add protection against
1231 * IPython/genutils.py (get_home_dir): add protection against
1233 non-dirs in win32 registry.
1232 non-dirs in win32 registry.
1234
1233
1235 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1234 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1236 bug where dict was mutated while iterating (pysh crash).
1235 bug where dict was mutated while iterating (pysh crash).
1237
1236
1238 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1237 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1239
1238
1240 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1239 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1241 spurious newlines added by this routine. After a report by
1240 spurious newlines added by this routine. After a report by
1242 F. Mantegazza.
1241 F. Mantegazza.
1243
1242
1244 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1243 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1245
1244
1246 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1245 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1247 calls. These were a leftover from the GTK 1.x days, and can cause
1246 calls. These were a leftover from the GTK 1.x days, and can cause
1248 problems in certain cases (after a report by John Hunter).
1247 problems in certain cases (after a report by John Hunter).
1249
1248
1250 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1249 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1251 os.getcwd() fails at init time. Thanks to patch from David Remahl
1250 os.getcwd() fails at init time. Thanks to patch from David Remahl
1252 <chmod007-AT-mac.com>.
1251 <chmod007-AT-mac.com>.
1253 (InteractiveShell.__init__): prevent certain special magics from
1252 (InteractiveShell.__init__): prevent certain special magics from
1254 being shadowed by aliases. Closes
1253 being shadowed by aliases. Closes
1255 http://www.scipy.net/roundup/ipython/issue41.
1254 http://www.scipy.net/roundup/ipython/issue41.
1256
1255
1257 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1256 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1258
1257
1259 * IPython/iplib.py (InteractiveShell.complete): Added new
1258 * IPython/iplib.py (InteractiveShell.complete): Added new
1260 top-level completion method to expose the completion mechanism
1259 top-level completion method to expose the completion mechanism
1261 beyond readline-based environments.
1260 beyond readline-based environments.
1262
1261
1263 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1262 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1264
1263
1265 * tools/ipsvnc (svnversion): fix svnversion capture.
1264 * tools/ipsvnc (svnversion): fix svnversion capture.
1266
1265
1267 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1266 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1268 attribute to self, which was missing. Before, it was set by a
1267 attribute to self, which was missing. Before, it was set by a
1269 routine which in certain cases wasn't being called, so the
1268 routine which in certain cases wasn't being called, so the
1270 instance could end up missing the attribute. This caused a crash.
1269 instance could end up missing the attribute. This caused a crash.
1271 Closes http://www.scipy.net/roundup/ipython/issue40.
1270 Closes http://www.scipy.net/roundup/ipython/issue40.
1272
1271
1273 2005-08-16 Fernando Perez <fperez@colorado.edu>
1272 2005-08-16 Fernando Perez <fperez@colorado.edu>
1274
1273
1275 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1274 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1276 contains non-string attribute. Closes
1275 contains non-string attribute. Closes
1277 http://www.scipy.net/roundup/ipython/issue38.
1276 http://www.scipy.net/roundup/ipython/issue38.
1278
1277
1279 2005-08-14 Fernando Perez <fperez@colorado.edu>
1278 2005-08-14 Fernando Perez <fperez@colorado.edu>
1280
1279
1281 * tools/ipsvnc: Minor improvements, to add changeset info.
1280 * tools/ipsvnc: Minor improvements, to add changeset info.
1282
1281
1283 2005-08-12 Fernando Perez <fperez@colorado.edu>
1282 2005-08-12 Fernando Perez <fperez@colorado.edu>
1284
1283
1285 * IPython/iplib.py (runsource): remove self.code_to_run_src
1284 * IPython/iplib.py (runsource): remove self.code_to_run_src
1286 attribute. I realized this is nothing more than
1285 attribute. I realized this is nothing more than
1287 '\n'.join(self.buffer), and having the same data in two different
1286 '\n'.join(self.buffer), and having the same data in two different
1288 places is just asking for synchronization bugs. This may impact
1287 places is just asking for synchronization bugs. This may impact
1289 people who have custom exception handlers, so I need to warn
1288 people who have custom exception handlers, so I need to warn
1290 ipython-dev about it (F. Mantegazza may use them).
1289 ipython-dev about it (F. Mantegazza may use them).
1291
1290
1292 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1291 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1293
1292
1294 * IPython/genutils.py: fix 2.2 compatibility (generators)
1293 * IPython/genutils.py: fix 2.2 compatibility (generators)
1295
1294
1296 2005-07-18 Fernando Perez <fperez@colorado.edu>
1295 2005-07-18 Fernando Perez <fperez@colorado.edu>
1297
1296
1298 * IPython/genutils.py (get_home_dir): fix to help users with
1297 * IPython/genutils.py (get_home_dir): fix to help users with
1299 invalid $HOME under win32.
1298 invalid $HOME under win32.
1300
1299
1301 2005-07-17 Fernando Perez <fperez@colorado.edu>
1300 2005-07-17 Fernando Perez <fperez@colorado.edu>
1302
1301
1303 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1302 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1304 some old hacks and clean up a bit other routines; code should be
1303 some old hacks and clean up a bit other routines; code should be
1305 simpler and a bit faster.
1304 simpler and a bit faster.
1306
1305
1307 * IPython/iplib.py (interact): removed some last-resort attempts
1306 * IPython/iplib.py (interact): removed some last-resort attempts
1308 to survive broken stdout/stderr. That code was only making it
1307 to survive broken stdout/stderr. That code was only making it
1309 harder to abstract out the i/o (necessary for gui integration),
1308 harder to abstract out the i/o (necessary for gui integration),
1310 and the crashes it could prevent were extremely rare in practice
1309 and the crashes it could prevent were extremely rare in practice
1311 (besides being fully user-induced in a pretty violent manner).
1310 (besides being fully user-induced in a pretty violent manner).
1312
1311
1313 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1312 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1314 Nothing major yet, but the code is simpler to read; this should
1313 Nothing major yet, but the code is simpler to read; this should
1315 make it easier to do more serious modifications in the future.
1314 make it easier to do more serious modifications in the future.
1316
1315
1317 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1316 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1318 which broke in .15 (thanks to a report by Ville).
1317 which broke in .15 (thanks to a report by Ville).
1319
1318
1320 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1319 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1321 be quite correct, I know next to nothing about unicode). This
1320 be quite correct, I know next to nothing about unicode). This
1322 will allow unicode strings to be used in prompts, amongst other
1321 will allow unicode strings to be used in prompts, amongst other
1323 cases. It also will prevent ipython from crashing when unicode
1322 cases. It also will prevent ipython from crashing when unicode
1324 shows up unexpectedly in many places. If ascii encoding fails, we
1323 shows up unexpectedly in many places. If ascii encoding fails, we
1325 assume utf_8. Currently the encoding is not a user-visible
1324 assume utf_8. Currently the encoding is not a user-visible
1326 setting, though it could be made so if there is demand for it.
1325 setting, though it could be made so if there is demand for it.
1327
1326
1328 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1327 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1329
1328
1330 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1329 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1331
1330
1332 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1331 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1333
1332
1334 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1333 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1335 code can work transparently for 2.2/2.3.
1334 code can work transparently for 2.2/2.3.
1336
1335
1337 2005-07-16 Fernando Perez <fperez@colorado.edu>
1336 2005-07-16 Fernando Perez <fperez@colorado.edu>
1338
1337
1339 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1338 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1340 out of the color scheme table used for coloring exception
1339 out of the color scheme table used for coloring exception
1341 tracebacks. This allows user code to add new schemes at runtime.
1340 tracebacks. This allows user code to add new schemes at runtime.
1342 This is a minimally modified version of the patch at
1341 This is a minimally modified version of the patch at
1343 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1342 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1344 for the contribution.
1343 for the contribution.
1345
1344
1346 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1345 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1347 slightly modified version of the patch in
1346 slightly modified version of the patch in
1348 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1347 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1349 to remove the previous try/except solution (which was costlier).
1348 to remove the previous try/except solution (which was costlier).
1350 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1349 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1351
1350
1352 2005-06-08 Fernando Perez <fperez@colorado.edu>
1351 2005-06-08 Fernando Perez <fperez@colorado.edu>
1353
1352
1354 * IPython/iplib.py (write/write_err): Add methods to abstract all
1353 * IPython/iplib.py (write/write_err): Add methods to abstract all
1355 I/O a bit more.
1354 I/O a bit more.
1356
1355
1357 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1356 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1358 warning, reported by Aric Hagberg, fix by JD Hunter.
1357 warning, reported by Aric Hagberg, fix by JD Hunter.
1359
1358
1360 2005-06-02 *** Released version 0.6.15
1359 2005-06-02 *** Released version 0.6.15
1361
1360
1362 2005-06-01 Fernando Perez <fperez@colorado.edu>
1361 2005-06-01 Fernando Perez <fperez@colorado.edu>
1363
1362
1364 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1363 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1365 tab-completion of filenames within open-quoted strings. Note that
1364 tab-completion of filenames within open-quoted strings. Note that
1366 this requires that in ~/.ipython/ipythonrc, users change the
1365 this requires that in ~/.ipython/ipythonrc, users change the
1367 readline delimiters configuration to read:
1366 readline delimiters configuration to read:
1368
1367
1369 readline_remove_delims -/~
1368 readline_remove_delims -/~
1370
1369
1371
1370
1372 2005-05-31 *** Released version 0.6.14
1371 2005-05-31 *** Released version 0.6.14
1373
1372
1374 2005-05-29 Fernando Perez <fperez@colorado.edu>
1373 2005-05-29 Fernando Perez <fperez@colorado.edu>
1375
1374
1376 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1375 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1377 with files not on the filesystem. Reported by Eliyahu Sandler
1376 with files not on the filesystem. Reported by Eliyahu Sandler
1378 <eli@gondolin.net>
1377 <eli@gondolin.net>
1379
1378
1380 2005-05-22 Fernando Perez <fperez@colorado.edu>
1379 2005-05-22 Fernando Perez <fperez@colorado.edu>
1381
1380
1382 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1381 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1383 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1382 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1384
1383
1385 2005-05-19 Fernando Perez <fperez@colorado.edu>
1384 2005-05-19 Fernando Perez <fperez@colorado.edu>
1386
1385
1387 * IPython/iplib.py (safe_execfile): close a file which could be
1386 * IPython/iplib.py (safe_execfile): close a file which could be
1388 left open (causing problems in win32, which locks open files).
1387 left open (causing problems in win32, which locks open files).
1389 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1388 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1390
1389
1391 2005-05-18 Fernando Perez <fperez@colorado.edu>
1390 2005-05-18 Fernando Perez <fperez@colorado.edu>
1392
1391
1393 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1392 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1394 keyword arguments correctly to safe_execfile().
1393 keyword arguments correctly to safe_execfile().
1395
1394
1396 2005-05-13 Fernando Perez <fperez@colorado.edu>
1395 2005-05-13 Fernando Perez <fperez@colorado.edu>
1397
1396
1398 * ipython.1: Added info about Qt to manpage, and threads warning
1397 * ipython.1: Added info about Qt to manpage, and threads warning
1399 to usage page (invoked with --help).
1398 to usage page (invoked with --help).
1400
1399
1401 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1400 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1402 new matcher (it goes at the end of the priority list) to do
1401 new matcher (it goes at the end of the priority list) to do
1403 tab-completion on named function arguments. Submitted by George
1402 tab-completion on named function arguments. Submitted by George
1404 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1403 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1405 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1404 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1406 for more details.
1405 for more details.
1407
1406
1408 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1407 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1409 SystemExit exceptions in the script being run. Thanks to a report
1408 SystemExit exceptions in the script being run. Thanks to a report
1410 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1409 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1411 producing very annoying behavior when running unit tests.
1410 producing very annoying behavior when running unit tests.
1412
1411
1413 2005-05-12 Fernando Perez <fperez@colorado.edu>
1412 2005-05-12 Fernando Perez <fperez@colorado.edu>
1414
1413
1415 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1414 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1416 which I'd broken (again) due to a changed regexp. In the process,
1415 which I'd broken (again) due to a changed regexp. In the process,
1417 added ';' as an escape to auto-quote the whole line without
1416 added ';' as an escape to auto-quote the whole line without
1418 splitting its arguments. Thanks to a report by Jerry McRae
1417 splitting its arguments. Thanks to a report by Jerry McRae
1419 <qrs0xyc02-AT-sneakemail.com>.
1418 <qrs0xyc02-AT-sneakemail.com>.
1420
1419
1421 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1420 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1422 possible crashes caused by a TokenError. Reported by Ed Schofield
1421 possible crashes caused by a TokenError. Reported by Ed Schofield
1423 <schofield-AT-ftw.at>.
1422 <schofield-AT-ftw.at>.
1424
1423
1425 2005-05-06 Fernando Perez <fperez@colorado.edu>
1424 2005-05-06 Fernando Perez <fperez@colorado.edu>
1426
1425
1427 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1426 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1428
1427
1429 2005-04-29 Fernando Perez <fperez@colorado.edu>
1428 2005-04-29 Fernando Perez <fperez@colorado.edu>
1430
1429
1431 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1430 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1432 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1431 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1433 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1432 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1434 which provides support for Qt interactive usage (similar to the
1433 which provides support for Qt interactive usage (similar to the
1435 existing one for WX and GTK). This had been often requested.
1434 existing one for WX and GTK). This had been often requested.
1436
1435
1437 2005-04-14 *** Released version 0.6.13
1436 2005-04-14 *** Released version 0.6.13
1438
1437
1439 2005-04-08 Fernando Perez <fperez@colorado.edu>
1438 2005-04-08 Fernando Perez <fperez@colorado.edu>
1440
1439
1441 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1440 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1442 from _ofind, which gets called on almost every input line. Now,
1441 from _ofind, which gets called on almost every input line. Now,
1443 we only try to get docstrings if they are actually going to be
1442 we only try to get docstrings if they are actually going to be
1444 used (the overhead of fetching unnecessary docstrings can be
1443 used (the overhead of fetching unnecessary docstrings can be
1445 noticeable for certain objects, such as Pyro proxies).
1444 noticeable for certain objects, such as Pyro proxies).
1446
1445
1447 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1446 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1448 for completers. For some reason I had been passing them the state
1447 for completers. For some reason I had been passing them the state
1449 variable, which completers never actually need, and was in
1448 variable, which completers never actually need, and was in
1450 conflict with the rlcompleter API. Custom completers ONLY need to
1449 conflict with the rlcompleter API. Custom completers ONLY need to
1451 take the text parameter.
1450 take the text parameter.
1452
1451
1453 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1452 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1454 work correctly in pysh. I've also moved all the logic which used
1453 work correctly in pysh. I've also moved all the logic which used
1455 to be in pysh.py here, which will prevent problems with future
1454 to be in pysh.py here, which will prevent problems with future
1456 upgrades. However, this time I must warn users to update their
1455 upgrades. However, this time I must warn users to update their
1457 pysh profile to include the line
1456 pysh profile to include the line
1458
1457
1459 import_all IPython.Extensions.InterpreterExec
1458 import_all IPython.Extensions.InterpreterExec
1460
1459
1461 because otherwise things won't work for them. They MUST also
1460 because otherwise things won't work for them. They MUST also
1462 delete pysh.py and the line
1461 delete pysh.py and the line
1463
1462
1464 execfile pysh.py
1463 execfile pysh.py
1465
1464
1466 from their ipythonrc-pysh.
1465 from their ipythonrc-pysh.
1467
1466
1468 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1467 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1469 robust in the face of objects whose dir() returns non-strings
1468 robust in the face of objects whose dir() returns non-strings
1470 (which it shouldn't, but some broken libs like ITK do). Thanks to
1469 (which it shouldn't, but some broken libs like ITK do). Thanks to
1471 a patch by John Hunter (implemented differently, though). Also
1470 a patch by John Hunter (implemented differently, though). Also
1472 minor improvements by using .extend instead of + on lists.
1471 minor improvements by using .extend instead of + on lists.
1473
1472
1474 * pysh.py:
1473 * pysh.py:
1475
1474
1476 2005-04-06 Fernando Perez <fperez@colorado.edu>
1475 2005-04-06 Fernando Perez <fperez@colorado.edu>
1477
1476
1478 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1477 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1479 by default, so that all users benefit from it. Those who don't
1478 by default, so that all users benefit from it. Those who don't
1480 want it can still turn it off.
1479 want it can still turn it off.
1481
1480
1482 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1481 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1483 config file, I'd forgotten about this, so users were getting it
1482 config file, I'd forgotten about this, so users were getting it
1484 off by default.
1483 off by default.
1485
1484
1486 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1485 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1487 consistency. Now magics can be called in multiline statements,
1486 consistency. Now magics can be called in multiline statements,
1488 and python variables can be expanded in magic calls via $var.
1487 and python variables can be expanded in magic calls via $var.
1489 This makes the magic system behave just like aliases or !system
1488 This makes the magic system behave just like aliases or !system
1490 calls.
1489 calls.
1491
1490
1492 2005-03-28 Fernando Perez <fperez@colorado.edu>
1491 2005-03-28 Fernando Perez <fperez@colorado.edu>
1493
1492
1494 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1493 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1495 expensive string additions for building command. Add support for
1494 expensive string additions for building command. Add support for
1496 trailing ';' when autocall is used.
1495 trailing ';' when autocall is used.
1497
1496
1498 2005-03-26 Fernando Perez <fperez@colorado.edu>
1497 2005-03-26 Fernando Perez <fperez@colorado.edu>
1499
1498
1500 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1499 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1501 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1500 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1502 ipython.el robust against prompts with any number of spaces
1501 ipython.el robust against prompts with any number of spaces
1503 (including 0) after the ':' character.
1502 (including 0) after the ':' character.
1504
1503
1505 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1504 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1506 continuation prompt, which misled users to think the line was
1505 continuation prompt, which misled users to think the line was
1507 already indented. Closes debian Bug#300847, reported to me by
1506 already indented. Closes debian Bug#300847, reported to me by
1508 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1507 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1509
1508
1510 2005-03-23 Fernando Perez <fperez@colorado.edu>
1509 2005-03-23 Fernando Perez <fperez@colorado.edu>
1511
1510
1512 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1511 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1513 properly aligned if they have embedded newlines.
1512 properly aligned if they have embedded newlines.
1514
1513
1515 * IPython/iplib.py (runlines): Add a public method to expose
1514 * IPython/iplib.py (runlines): Add a public method to expose
1516 IPython's code execution machinery, so that users can run strings
1515 IPython's code execution machinery, so that users can run strings
1517 as if they had been typed at the prompt interactively.
1516 as if they had been typed at the prompt interactively.
1518 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1517 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1519 methods which can call the system shell, but with python variable
1518 methods which can call the system shell, but with python variable
1520 expansion. The three such methods are: __IPYTHON__.system,
1519 expansion. The three such methods are: __IPYTHON__.system,
1521 .getoutput and .getoutputerror. These need to be documented in a
1520 .getoutput and .getoutputerror. These need to be documented in a
1522 'public API' section (to be written) of the manual.
1521 'public API' section (to be written) of the manual.
1523
1522
1524 2005-03-20 Fernando Perez <fperez@colorado.edu>
1523 2005-03-20 Fernando Perez <fperez@colorado.edu>
1525
1524
1526 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1525 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1527 for custom exception handling. This is quite powerful, and it
1526 for custom exception handling. This is quite powerful, and it
1528 allows for user-installable exception handlers which can trap
1527 allows for user-installable exception handlers which can trap
1529 custom exceptions at runtime and treat them separately from
1528 custom exceptions at runtime and treat them separately from
1530 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1529 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1531 Mantegazza <mantegazza-AT-ill.fr>.
1530 Mantegazza <mantegazza-AT-ill.fr>.
1532 (InteractiveShell.set_custom_completer): public API function to
1531 (InteractiveShell.set_custom_completer): public API function to
1533 add new completers at runtime.
1532 add new completers at runtime.
1534
1533
1535 2005-03-19 Fernando Perez <fperez@colorado.edu>
1534 2005-03-19 Fernando Perez <fperez@colorado.edu>
1536
1535
1537 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1536 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1538 allow objects which provide their docstrings via non-standard
1537 allow objects which provide their docstrings via non-standard
1539 mechanisms (like Pyro proxies) to still be inspected by ipython's
1538 mechanisms (like Pyro proxies) to still be inspected by ipython's
1540 ? system.
1539 ? system.
1541
1540
1542 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1541 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1543 automatic capture system. I tried quite hard to make it work
1542 automatic capture system. I tried quite hard to make it work
1544 reliably, and simply failed. I tried many combinations with the
1543 reliably, and simply failed. I tried many combinations with the
1545 subprocess module, but eventually nothing worked in all needed
1544 subprocess module, but eventually nothing worked in all needed
1546 cases (not blocking stdin for the child, duplicating stdout
1545 cases (not blocking stdin for the child, duplicating stdout
1547 without blocking, etc). The new %sc/%sx still do capture to these
1546 without blocking, etc). The new %sc/%sx still do capture to these
1548 magical list/string objects which make shell use much more
1547 magical list/string objects which make shell use much more
1549 conveninent, so not all is lost.
1548 conveninent, so not all is lost.
1550
1549
1551 XXX - FIX MANUAL for the change above!
1550 XXX - FIX MANUAL for the change above!
1552
1551
1553 (runsource): I copied code.py's runsource() into ipython to modify
1552 (runsource): I copied code.py's runsource() into ipython to modify
1554 it a bit. Now the code object and source to be executed are
1553 it a bit. Now the code object and source to be executed are
1555 stored in ipython. This makes this info accessible to third-party
1554 stored in ipython. This makes this info accessible to third-party
1556 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1555 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1557 Mantegazza <mantegazza-AT-ill.fr>.
1556 Mantegazza <mantegazza-AT-ill.fr>.
1558
1557
1559 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1558 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1560 history-search via readline (like C-p/C-n). I'd wanted this for a
1559 history-search via readline (like C-p/C-n). I'd wanted this for a
1561 long time, but only recently found out how to do it. For users
1560 long time, but only recently found out how to do it. For users
1562 who already have their ipythonrc files made and want this, just
1561 who already have their ipythonrc files made and want this, just
1563 add:
1562 add:
1564
1563
1565 readline_parse_and_bind "\e[A": history-search-backward
1564 readline_parse_and_bind "\e[A": history-search-backward
1566 readline_parse_and_bind "\e[B": history-search-forward
1565 readline_parse_and_bind "\e[B": history-search-forward
1567
1566
1568 2005-03-18 Fernando Perez <fperez@colorado.edu>
1567 2005-03-18 Fernando Perez <fperez@colorado.edu>
1569
1568
1570 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1569 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1571 LSString and SList classes which allow transparent conversions
1570 LSString and SList classes which allow transparent conversions
1572 between list mode and whitespace-separated string.
1571 between list mode and whitespace-separated string.
1573 (magic_r): Fix recursion problem in %r.
1572 (magic_r): Fix recursion problem in %r.
1574
1573
1575 * IPython/genutils.py (LSString): New class to be used for
1574 * IPython/genutils.py (LSString): New class to be used for
1576 automatic storage of the results of all alias/system calls in _o
1575 automatic storage of the results of all alias/system calls in _o
1577 and _e (stdout/err). These provide a .l/.list attribute which
1576 and _e (stdout/err). These provide a .l/.list attribute which
1578 does automatic splitting on newlines. This means that for most
1577 does automatic splitting on newlines. This means that for most
1579 uses, you'll never need to do capturing of output with %sc/%sx
1578 uses, you'll never need to do capturing of output with %sc/%sx
1580 anymore, since ipython keeps this always done for you. Note that
1579 anymore, since ipython keeps this always done for you. Note that
1581 only the LAST results are stored, the _o/e variables are
1580 only the LAST results are stored, the _o/e variables are
1582 overwritten on each call. If you need to save their contents
1581 overwritten on each call. If you need to save their contents
1583 further, simply bind them to any other name.
1582 further, simply bind them to any other name.
1584
1583
1585 2005-03-17 Fernando Perez <fperez@colorado.edu>
1584 2005-03-17 Fernando Perez <fperez@colorado.edu>
1586
1585
1587 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1586 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1588 prompt namespace handling.
1587 prompt namespace handling.
1589
1588
1590 2005-03-16 Fernando Perez <fperez@colorado.edu>
1589 2005-03-16 Fernando Perez <fperez@colorado.edu>
1591
1590
1592 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1591 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1593 classic prompts to be '>>> ' (final space was missing, and it
1592 classic prompts to be '>>> ' (final space was missing, and it
1594 trips the emacs python mode).
1593 trips the emacs python mode).
1595 (BasePrompt.__str__): Added safe support for dynamic prompt
1594 (BasePrompt.__str__): Added safe support for dynamic prompt
1596 strings. Now you can set your prompt string to be '$x', and the
1595 strings. Now you can set your prompt string to be '$x', and the
1597 value of x will be printed from your interactive namespace. The
1596 value of x will be printed from your interactive namespace. The
1598 interpolation syntax includes the full Itpl support, so
1597 interpolation syntax includes the full Itpl support, so
1599 ${foo()+x+bar()} is a valid prompt string now, and the function
1598 ${foo()+x+bar()} is a valid prompt string now, and the function
1600 calls will be made at runtime.
1599 calls will be made at runtime.
1601
1600
1602 2005-03-15 Fernando Perez <fperez@colorado.edu>
1601 2005-03-15 Fernando Perez <fperez@colorado.edu>
1603
1602
1604 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1603 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1605 avoid name clashes in pylab. %hist still works, it just forwards
1604 avoid name clashes in pylab. %hist still works, it just forwards
1606 the call to %history.
1605 the call to %history.
1607
1606
1608 2005-03-02 *** Released version 0.6.12
1607 2005-03-02 *** Released version 0.6.12
1609
1608
1610 2005-03-02 Fernando Perez <fperez@colorado.edu>
1609 2005-03-02 Fernando Perez <fperez@colorado.edu>
1611
1610
1612 * IPython/iplib.py (handle_magic): log magic calls properly as
1611 * IPython/iplib.py (handle_magic): log magic calls properly as
1613 ipmagic() function calls.
1612 ipmagic() function calls.
1614
1613
1615 * IPython/Magic.py (magic_time): Improved %time to support
1614 * IPython/Magic.py (magic_time): Improved %time to support
1616 statements and provide wall-clock as well as CPU time.
1615 statements and provide wall-clock as well as CPU time.
1617
1616
1618 2005-02-27 Fernando Perez <fperez@colorado.edu>
1617 2005-02-27 Fernando Perez <fperez@colorado.edu>
1619
1618
1620 * IPython/hooks.py: New hooks module, to expose user-modifiable
1619 * IPython/hooks.py: New hooks module, to expose user-modifiable
1621 IPython functionality in a clean manner. For now only the editor
1620 IPython functionality in a clean manner. For now only the editor
1622 hook is actually written, and other thigns which I intend to turn
1621 hook is actually written, and other thigns which I intend to turn
1623 into proper hooks aren't yet there. The display and prefilter
1622 into proper hooks aren't yet there. The display and prefilter
1624 stuff, for example, should be hooks. But at least now the
1623 stuff, for example, should be hooks. But at least now the
1625 framework is in place, and the rest can be moved here with more
1624 framework is in place, and the rest can be moved here with more
1626 time later. IPython had had a .hooks variable for a long time for
1625 time later. IPython had had a .hooks variable for a long time for
1627 this purpose, but I'd never actually used it for anything.
1626 this purpose, but I'd never actually used it for anything.
1628
1627
1629 2005-02-26 Fernando Perez <fperez@colorado.edu>
1628 2005-02-26 Fernando Perez <fperez@colorado.edu>
1630
1629
1631 * IPython/ipmaker.py (make_IPython): make the default ipython
1630 * IPython/ipmaker.py (make_IPython): make the default ipython
1632 directory be called _ipython under win32, to follow more the
1631 directory be called _ipython under win32, to follow more the
1633 naming peculiarities of that platform (where buggy software like
1632 naming peculiarities of that platform (where buggy software like
1634 Visual Sourcesafe breaks with .named directories). Reported by
1633 Visual Sourcesafe breaks with .named directories). Reported by
1635 Ville Vainio.
1634 Ville Vainio.
1636
1635
1637 2005-02-23 Fernando Perez <fperez@colorado.edu>
1636 2005-02-23 Fernando Perez <fperez@colorado.edu>
1638
1637
1639 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1638 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1640 auto_aliases for win32 which were causing problems. Users can
1639 auto_aliases for win32 which were causing problems. Users can
1641 define the ones they personally like.
1640 define the ones they personally like.
1642
1641
1643 2005-02-21 Fernando Perez <fperez@colorado.edu>
1642 2005-02-21 Fernando Perez <fperez@colorado.edu>
1644
1643
1645 * IPython/Magic.py (magic_time): new magic to time execution of
1644 * IPython/Magic.py (magic_time): new magic to time execution of
1646 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1645 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1647
1646
1648 2005-02-19 Fernando Perez <fperez@colorado.edu>
1647 2005-02-19 Fernando Perez <fperez@colorado.edu>
1649
1648
1650 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1649 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1651 into keys (for prompts, for example).
1650 into keys (for prompts, for example).
1652
1651
1653 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1652 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1654 prompts in case users want them. This introduces a small behavior
1653 prompts in case users want them. This introduces a small behavior
1655 change: ipython does not automatically add a space to all prompts
1654 change: ipython does not automatically add a space to all prompts
1656 anymore. To get the old prompts with a space, users should add it
1655 anymore. To get the old prompts with a space, users should add it
1657 manually to their ipythonrc file, so for example prompt_in1 should
1656 manually to their ipythonrc file, so for example prompt_in1 should
1658 now read 'In [\#]: ' instead of 'In [\#]:'.
1657 now read 'In [\#]: ' instead of 'In [\#]:'.
1659 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1658 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1660 file) to control left-padding of secondary prompts.
1659 file) to control left-padding of secondary prompts.
1661
1660
1662 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1661 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1663 the profiler can't be imported. Fix for Debian, which removed
1662 the profiler can't be imported. Fix for Debian, which removed
1664 profile.py because of License issues. I applied a slightly
1663 profile.py because of License issues. I applied a slightly
1665 modified version of the original Debian patch at
1664 modified version of the original Debian patch at
1666 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1665 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1667
1666
1668 2005-02-17 Fernando Perez <fperez@colorado.edu>
1667 2005-02-17 Fernando Perez <fperez@colorado.edu>
1669
1668
1670 * IPython/genutils.py (native_line_ends): Fix bug which would
1669 * IPython/genutils.py (native_line_ends): Fix bug which would
1671 cause improper line-ends under win32 b/c I was not opening files
1670 cause improper line-ends under win32 b/c I was not opening files
1672 in binary mode. Bug report and fix thanks to Ville.
1671 in binary mode. Bug report and fix thanks to Ville.
1673
1672
1674 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1673 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1675 trying to catch spurious foo[1] autocalls. My fix actually broke
1674 trying to catch spurious foo[1] autocalls. My fix actually broke
1676 ',/' autoquote/call with explicit escape (bad regexp).
1675 ',/' autoquote/call with explicit escape (bad regexp).
1677
1676
1678 2005-02-15 *** Released version 0.6.11
1677 2005-02-15 *** Released version 0.6.11
1679
1678
1680 2005-02-14 Fernando Perez <fperez@colorado.edu>
1679 2005-02-14 Fernando Perez <fperez@colorado.edu>
1681
1680
1682 * IPython/background_jobs.py: New background job management
1681 * IPython/background_jobs.py: New background job management
1683 subsystem. This is implemented via a new set of classes, and
1682 subsystem. This is implemented via a new set of classes, and
1684 IPython now provides a builtin 'jobs' object for background job
1683 IPython now provides a builtin 'jobs' object for background job
1685 execution. A convenience %bg magic serves as a lightweight
1684 execution. A convenience %bg magic serves as a lightweight
1686 frontend for starting the more common type of calls. This was
1685 frontend for starting the more common type of calls. This was
1687 inspired by discussions with B. Granger and the BackgroundCommand
1686 inspired by discussions with B. Granger and the BackgroundCommand
1688 class described in the book Python Scripting for Computational
1687 class described in the book Python Scripting for Computational
1689 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1688 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1690 (although ultimately no code from this text was used, as IPython's
1689 (although ultimately no code from this text was used, as IPython's
1691 system is a separate implementation).
1690 system is a separate implementation).
1692
1691
1693 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1692 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1694 to control the completion of single/double underscore names
1693 to control the completion of single/double underscore names
1695 separately. As documented in the example ipytonrc file, the
1694 separately. As documented in the example ipytonrc file, the
1696 readline_omit__names variable can now be set to 2, to omit even
1695 readline_omit__names variable can now be set to 2, to omit even
1697 single underscore names. Thanks to a patch by Brian Wong
1696 single underscore names. Thanks to a patch by Brian Wong
1698 <BrianWong-AT-AirgoNetworks.Com>.
1697 <BrianWong-AT-AirgoNetworks.Com>.
1699 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1698 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1700 be autocalled as foo([1]) if foo were callable. A problem for
1699 be autocalled as foo([1]) if foo were callable. A problem for
1701 things which are both callable and implement __getitem__.
1700 things which are both callable and implement __getitem__.
1702 (init_readline): Fix autoindentation for win32. Thanks to a patch
1701 (init_readline): Fix autoindentation for win32. Thanks to a patch
1703 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1702 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1704
1703
1705 2005-02-12 Fernando Perez <fperez@colorado.edu>
1704 2005-02-12 Fernando Perez <fperez@colorado.edu>
1706
1705
1707 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1706 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1708 which I had written long ago to sort out user error messages which
1707 which I had written long ago to sort out user error messages which
1709 may occur during startup. This seemed like a good idea initially,
1708 may occur during startup. This seemed like a good idea initially,
1710 but it has proven a disaster in retrospect. I don't want to
1709 but it has proven a disaster in retrospect. I don't want to
1711 change much code for now, so my fix is to set the internal 'debug'
1710 change much code for now, so my fix is to set the internal 'debug'
1712 flag to true everywhere, whose only job was precisely to control
1711 flag to true everywhere, whose only job was precisely to control
1713 this subsystem. This closes issue 28 (as well as avoiding all
1712 this subsystem. This closes issue 28 (as well as avoiding all
1714 sorts of strange hangups which occur from time to time).
1713 sorts of strange hangups which occur from time to time).
1715
1714
1716 2005-02-07 Fernando Perez <fperez@colorado.edu>
1715 2005-02-07 Fernando Perez <fperez@colorado.edu>
1717
1716
1718 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1717 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1719 previous call produced a syntax error.
1718 previous call produced a syntax error.
1720
1719
1721 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1720 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1722 classes without constructor.
1721 classes without constructor.
1723
1722
1724 2005-02-06 Fernando Perez <fperez@colorado.edu>
1723 2005-02-06 Fernando Perez <fperez@colorado.edu>
1725
1724
1726 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1725 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1727 completions with the results of each matcher, so we return results
1726 completions with the results of each matcher, so we return results
1728 to the user from all namespaces. This breaks with ipython
1727 to the user from all namespaces. This breaks with ipython
1729 tradition, but I think it's a nicer behavior. Now you get all
1728 tradition, but I think it's a nicer behavior. Now you get all
1730 possible completions listed, from all possible namespaces (python,
1729 possible completions listed, from all possible namespaces (python,
1731 filesystem, magics...) After a request by John Hunter
1730 filesystem, magics...) After a request by John Hunter
1732 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1731 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1733
1732
1734 2005-02-05 Fernando Perez <fperez@colorado.edu>
1733 2005-02-05 Fernando Perez <fperez@colorado.edu>
1735
1734
1736 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1735 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1737 the call had quote characters in it (the quotes were stripped).
1736 the call had quote characters in it (the quotes were stripped).
1738
1737
1739 2005-01-31 Fernando Perez <fperez@colorado.edu>
1738 2005-01-31 Fernando Perez <fperez@colorado.edu>
1740
1739
1741 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1740 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1742 Itpl.itpl() to make the code more robust against psyco
1741 Itpl.itpl() to make the code more robust against psyco
1743 optimizations.
1742 optimizations.
1744
1743
1745 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1744 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1746 of causing an exception. Quicker, cleaner.
1745 of causing an exception. Quicker, cleaner.
1747
1746
1748 2005-01-28 Fernando Perez <fperez@colorado.edu>
1747 2005-01-28 Fernando Perez <fperez@colorado.edu>
1749
1748
1750 * scripts/ipython_win_post_install.py (install): hardcode
1749 * scripts/ipython_win_post_install.py (install): hardcode
1751 sys.prefix+'python.exe' as the executable path. It turns out that
1750 sys.prefix+'python.exe' as the executable path. It turns out that
1752 during the post-installation run, sys.executable resolves to the
1751 during the post-installation run, sys.executable resolves to the
1753 name of the binary installer! I should report this as a distutils
1752 name of the binary installer! I should report this as a distutils
1754 bug, I think. I updated the .10 release with this tiny fix, to
1753 bug, I think. I updated the .10 release with this tiny fix, to
1755 avoid annoying the lists further.
1754 avoid annoying the lists further.
1756
1755
1757 2005-01-27 *** Released version 0.6.10
1756 2005-01-27 *** Released version 0.6.10
1758
1757
1759 2005-01-27 Fernando Perez <fperez@colorado.edu>
1758 2005-01-27 Fernando Perez <fperez@colorado.edu>
1760
1759
1761 * IPython/numutils.py (norm): Added 'inf' as optional name for
1760 * IPython/numutils.py (norm): Added 'inf' as optional name for
1762 L-infinity norm, included references to mathworld.com for vector
1761 L-infinity norm, included references to mathworld.com for vector
1763 norm definitions.
1762 norm definitions.
1764 (amin/amax): added amin/amax for array min/max. Similar to what
1763 (amin/amax): added amin/amax for array min/max. Similar to what
1765 pylab ships with after the recent reorganization of names.
1764 pylab ships with after the recent reorganization of names.
1766 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1765 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1767
1766
1768 * ipython.el: committed Alex's recent fixes and improvements.
1767 * ipython.el: committed Alex's recent fixes and improvements.
1769 Tested with python-mode from CVS, and it looks excellent. Since
1768 Tested with python-mode from CVS, and it looks excellent. Since
1770 python-mode hasn't released anything in a while, I'm temporarily
1769 python-mode hasn't released anything in a while, I'm temporarily
1771 putting a copy of today's CVS (v 4.70) of python-mode in:
1770 putting a copy of today's CVS (v 4.70) of python-mode in:
1772 http://ipython.scipy.org/tmp/python-mode.el
1771 http://ipython.scipy.org/tmp/python-mode.el
1773
1772
1774 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1773 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1775 sys.executable for the executable name, instead of assuming it's
1774 sys.executable for the executable name, instead of assuming it's
1776 called 'python.exe' (the post-installer would have produced broken
1775 called 'python.exe' (the post-installer would have produced broken
1777 setups on systems with a differently named python binary).
1776 setups on systems with a differently named python binary).
1778
1777
1779 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1778 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1780 references to os.linesep, to make the code more
1779 references to os.linesep, to make the code more
1781 platform-independent. This is also part of the win32 coloring
1780 platform-independent. This is also part of the win32 coloring
1782 fixes.
1781 fixes.
1783
1782
1784 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1783 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1785 lines, which actually cause coloring bugs because the length of
1784 lines, which actually cause coloring bugs because the length of
1786 the line is very difficult to correctly compute with embedded
1785 the line is very difficult to correctly compute with embedded
1787 escapes. This was the source of all the coloring problems under
1786 escapes. This was the source of all the coloring problems under
1788 Win32. I think that _finally_, Win32 users have a properly
1787 Win32. I think that _finally_, Win32 users have a properly
1789 working ipython in all respects. This would never have happened
1788 working ipython in all respects. This would never have happened
1790 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1789 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1791
1790
1792 2005-01-26 *** Released version 0.6.9
1791 2005-01-26 *** Released version 0.6.9
1793
1792
1794 2005-01-25 Fernando Perez <fperez@colorado.edu>
1793 2005-01-25 Fernando Perez <fperez@colorado.edu>
1795
1794
1796 * setup.py: finally, we have a true Windows installer, thanks to
1795 * setup.py: finally, we have a true Windows installer, thanks to
1797 the excellent work of Viktor Ransmayr
1796 the excellent work of Viktor Ransmayr
1798 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1797 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1799 Windows users. The setup routine is quite a bit cleaner thanks to
1798 Windows users. The setup routine is quite a bit cleaner thanks to
1800 this, and the post-install script uses the proper functions to
1799 this, and the post-install script uses the proper functions to
1801 allow a clean de-installation using the standard Windows Control
1800 allow a clean de-installation using the standard Windows Control
1802 Panel.
1801 Panel.
1803
1802
1804 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1803 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1805 environment variable under all OSes (including win32) if
1804 environment variable under all OSes (including win32) if
1806 available. This will give consistency to win32 users who have set
1805 available. This will give consistency to win32 users who have set
1807 this variable for any reason. If os.environ['HOME'] fails, the
1806 this variable for any reason. If os.environ['HOME'] fails, the
1808 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1807 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1809
1808
1810 2005-01-24 Fernando Perez <fperez@colorado.edu>
1809 2005-01-24 Fernando Perez <fperez@colorado.edu>
1811
1810
1812 * IPython/numutils.py (empty_like): add empty_like(), similar to
1811 * IPython/numutils.py (empty_like): add empty_like(), similar to
1813 zeros_like() but taking advantage of the new empty() Numeric routine.
1812 zeros_like() but taking advantage of the new empty() Numeric routine.
1814
1813
1815 2005-01-23 *** Released version 0.6.8
1814 2005-01-23 *** Released version 0.6.8
1816
1815
1817 2005-01-22 Fernando Perez <fperez@colorado.edu>
1816 2005-01-22 Fernando Perez <fperez@colorado.edu>
1818
1817
1819 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1818 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1820 automatic show() calls. After discussing things with JDH, it
1819 automatic show() calls. After discussing things with JDH, it
1821 turns out there are too many corner cases where this can go wrong.
1820 turns out there are too many corner cases where this can go wrong.
1822 It's best not to try to be 'too smart', and simply have ipython
1821 It's best not to try to be 'too smart', and simply have ipython
1823 reproduce as much as possible the default behavior of a normal
1822 reproduce as much as possible the default behavior of a normal
1824 python shell.
1823 python shell.
1825
1824
1826 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1825 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1827 line-splitting regexp and _prefilter() to avoid calling getattr()
1826 line-splitting regexp and _prefilter() to avoid calling getattr()
1828 on assignments. This closes
1827 on assignments. This closes
1829 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1828 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1830 readline uses getattr(), so a simple <TAB> keypress is still
1829 readline uses getattr(), so a simple <TAB> keypress is still
1831 enough to trigger getattr() calls on an object.
1830 enough to trigger getattr() calls on an object.
1832
1831
1833 2005-01-21 Fernando Perez <fperez@colorado.edu>
1832 2005-01-21 Fernando Perez <fperez@colorado.edu>
1834
1833
1835 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1834 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1836 docstring under pylab so it doesn't mask the original.
1835 docstring under pylab so it doesn't mask the original.
1837
1836
1838 2005-01-21 *** Released version 0.6.7
1837 2005-01-21 *** Released version 0.6.7
1839
1838
1840 2005-01-21 Fernando Perez <fperez@colorado.edu>
1839 2005-01-21 Fernando Perez <fperez@colorado.edu>
1841
1840
1842 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1841 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1843 signal handling for win32 users in multithreaded mode.
1842 signal handling for win32 users in multithreaded mode.
1844
1843
1845 2005-01-17 Fernando Perez <fperez@colorado.edu>
1844 2005-01-17 Fernando Perez <fperez@colorado.edu>
1846
1845
1847 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1846 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1848 instances with no __init__. After a crash report by Norbert Nemec
1847 instances with no __init__. After a crash report by Norbert Nemec
1849 <Norbert-AT-nemec-online.de>.
1848 <Norbert-AT-nemec-online.de>.
1850
1849
1851 2005-01-14 Fernando Perez <fperez@colorado.edu>
1850 2005-01-14 Fernando Perez <fperez@colorado.edu>
1852
1851
1853 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1852 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1854 names for verbose exceptions, when multiple dotted names and the
1853 names for verbose exceptions, when multiple dotted names and the
1855 'parent' object were present on the same line.
1854 'parent' object were present on the same line.
1856
1855
1857 2005-01-11 Fernando Perez <fperez@colorado.edu>
1856 2005-01-11 Fernando Perez <fperez@colorado.edu>
1858
1857
1859 * IPython/genutils.py (flag_calls): new utility to trap and flag
1858 * IPython/genutils.py (flag_calls): new utility to trap and flag
1860 calls in functions. I need it to clean up matplotlib support.
1859 calls in functions. I need it to clean up matplotlib support.
1861 Also removed some deprecated code in genutils.
1860 Also removed some deprecated code in genutils.
1862
1861
1863 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1862 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1864 that matplotlib scripts called with %run, which don't call show()
1863 that matplotlib scripts called with %run, which don't call show()
1865 themselves, still have their plotting windows open.
1864 themselves, still have their plotting windows open.
1866
1865
1867 2005-01-05 Fernando Perez <fperez@colorado.edu>
1866 2005-01-05 Fernando Perez <fperez@colorado.edu>
1868
1867
1869 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1868 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1870 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1869 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1871
1870
1872 2004-12-19 Fernando Perez <fperez@colorado.edu>
1871 2004-12-19 Fernando Perez <fperez@colorado.edu>
1873
1872
1874 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1873 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1875 parent_runcode, which was an eyesore. The same result can be
1874 parent_runcode, which was an eyesore. The same result can be
1876 obtained with Python's regular superclass mechanisms.
1875 obtained with Python's regular superclass mechanisms.
1877
1876
1878 2004-12-17 Fernando Perez <fperez@colorado.edu>
1877 2004-12-17 Fernando Perez <fperez@colorado.edu>
1879
1878
1880 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1879 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1881 reported by Prabhu.
1880 reported by Prabhu.
1882 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1881 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1883 sys.stderr) instead of explicitly calling sys.stderr. This helps
1882 sys.stderr) instead of explicitly calling sys.stderr. This helps
1884 maintain our I/O abstractions clean, for future GUI embeddings.
1883 maintain our I/O abstractions clean, for future GUI embeddings.
1885
1884
1886 * IPython/genutils.py (info): added new utility for sys.stderr
1885 * IPython/genutils.py (info): added new utility for sys.stderr
1887 unified info message handling (thin wrapper around warn()).
1886 unified info message handling (thin wrapper around warn()).
1888
1887
1889 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1888 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1890 composite (dotted) names on verbose exceptions.
1889 composite (dotted) names on verbose exceptions.
1891 (VerboseTB.nullrepr): harden against another kind of errors which
1890 (VerboseTB.nullrepr): harden against another kind of errors which
1892 Python's inspect module can trigger, and which were crashing
1891 Python's inspect module can trigger, and which were crashing
1893 IPython. Thanks to a report by Marco Lombardi
1892 IPython. Thanks to a report by Marco Lombardi
1894 <mlombard-AT-ma010192.hq.eso.org>.
1893 <mlombard-AT-ma010192.hq.eso.org>.
1895
1894
1896 2004-12-13 *** Released version 0.6.6
1895 2004-12-13 *** Released version 0.6.6
1897
1896
1898 2004-12-12 Fernando Perez <fperez@colorado.edu>
1897 2004-12-12 Fernando Perez <fperez@colorado.edu>
1899
1898
1900 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1899 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1901 generated by pygtk upon initialization if it was built without
1900 generated by pygtk upon initialization if it was built without
1902 threads (for matplotlib users). After a crash reported by
1901 threads (for matplotlib users). After a crash reported by
1903 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1902 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1904
1903
1905 * IPython/ipmaker.py (make_IPython): fix small bug in the
1904 * IPython/ipmaker.py (make_IPython): fix small bug in the
1906 import_some parameter for multiple imports.
1905 import_some parameter for multiple imports.
1907
1906
1908 * IPython/iplib.py (ipmagic): simplified the interface of
1907 * IPython/iplib.py (ipmagic): simplified the interface of
1909 ipmagic() to take a single string argument, just as it would be
1908 ipmagic() to take a single string argument, just as it would be
1910 typed at the IPython cmd line.
1909 typed at the IPython cmd line.
1911 (ipalias): Added new ipalias() with an interface identical to
1910 (ipalias): Added new ipalias() with an interface identical to
1912 ipmagic(). This completes exposing a pure python interface to the
1911 ipmagic(). This completes exposing a pure python interface to the
1913 alias and magic system, which can be used in loops or more complex
1912 alias and magic system, which can be used in loops or more complex
1914 code where IPython's automatic line mangling is not active.
1913 code where IPython's automatic line mangling is not active.
1915
1914
1916 * IPython/genutils.py (timing): changed interface of timing to
1915 * IPython/genutils.py (timing): changed interface of timing to
1917 simply run code once, which is the most common case. timings()
1916 simply run code once, which is the most common case. timings()
1918 remains unchanged, for the cases where you want multiple runs.
1917 remains unchanged, for the cases where you want multiple runs.
1919
1918
1920 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1919 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1921 bug where Python2.2 crashes with exec'ing code which does not end
1920 bug where Python2.2 crashes with exec'ing code which does not end
1922 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1921 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1923 before.
1922 before.
1924
1923
1925 2004-12-10 Fernando Perez <fperez@colorado.edu>
1924 2004-12-10 Fernando Perez <fperez@colorado.edu>
1926
1925
1927 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1926 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1928 -t to -T, to accomodate the new -t flag in %run (the %run and
1927 -t to -T, to accomodate the new -t flag in %run (the %run and
1929 %prun options are kind of intermixed, and it's not easy to change
1928 %prun options are kind of intermixed, and it's not easy to change
1930 this with the limitations of python's getopt).
1929 this with the limitations of python's getopt).
1931
1930
1932 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1931 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1933 the execution of scripts. It's not as fine-tuned as timeit.py,
1932 the execution of scripts. It's not as fine-tuned as timeit.py,
1934 but it works from inside ipython (and under 2.2, which lacks
1933 but it works from inside ipython (and under 2.2, which lacks
1935 timeit.py). Optionally a number of runs > 1 can be given for
1934 timeit.py). Optionally a number of runs > 1 can be given for
1936 timing very short-running code.
1935 timing very short-running code.
1937
1936
1938 * IPython/genutils.py (uniq_stable): new routine which returns a
1937 * IPython/genutils.py (uniq_stable): new routine which returns a
1939 list of unique elements in any iterable, but in stable order of
1938 list of unique elements in any iterable, but in stable order of
1940 appearance. I needed this for the ultraTB fixes, and it's a handy
1939 appearance. I needed this for the ultraTB fixes, and it's a handy
1941 utility.
1940 utility.
1942
1941
1943 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1942 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1944 dotted names in Verbose exceptions. This had been broken since
1943 dotted names in Verbose exceptions. This had been broken since
1945 the very start, now x.y will properly be printed in a Verbose
1944 the very start, now x.y will properly be printed in a Verbose
1946 traceback, instead of x being shown and y appearing always as an
1945 traceback, instead of x being shown and y appearing always as an
1947 'undefined global'. Getting this to work was a bit tricky,
1946 'undefined global'. Getting this to work was a bit tricky,
1948 because by default python tokenizers are stateless. Saved by
1947 because by default python tokenizers are stateless. Saved by
1949 python's ability to easily add a bit of state to an arbitrary
1948 python's ability to easily add a bit of state to an arbitrary
1950 function (without needing to build a full-blown callable object).
1949 function (without needing to build a full-blown callable object).
1951
1950
1952 Also big cleanup of this code, which had horrendous runtime
1951 Also big cleanup of this code, which had horrendous runtime
1953 lookups of zillions of attributes for colorization. Moved all
1952 lookups of zillions of attributes for colorization. Moved all
1954 this code into a few templates, which make it cleaner and quicker.
1953 this code into a few templates, which make it cleaner and quicker.
1955
1954
1956 Printout quality was also improved for Verbose exceptions: one
1955 Printout quality was also improved for Verbose exceptions: one
1957 variable per line, and memory addresses are printed (this can be
1956 variable per line, and memory addresses are printed (this can be
1958 quite handy in nasty debugging situations, which is what Verbose
1957 quite handy in nasty debugging situations, which is what Verbose
1959 is for).
1958 is for).
1960
1959
1961 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1960 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1962 the command line as scripts to be loaded by embedded instances.
1961 the command line as scripts to be loaded by embedded instances.
1963 Doing so has the potential for an infinite recursion if there are
1962 Doing so has the potential for an infinite recursion if there are
1964 exceptions thrown in the process. This fixes a strange crash
1963 exceptions thrown in the process. This fixes a strange crash
1965 reported by Philippe MULLER <muller-AT-irit.fr>.
1964 reported by Philippe MULLER <muller-AT-irit.fr>.
1966
1965
1967 2004-12-09 Fernando Perez <fperez@colorado.edu>
1966 2004-12-09 Fernando Perez <fperez@colorado.edu>
1968
1967
1969 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1968 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1970 to reflect new names in matplotlib, which now expose the
1969 to reflect new names in matplotlib, which now expose the
1971 matlab-compatible interface via a pylab module instead of the
1970 matlab-compatible interface via a pylab module instead of the
1972 'matlab' name. The new code is backwards compatible, so users of
1971 'matlab' name. The new code is backwards compatible, so users of
1973 all matplotlib versions are OK. Patch by J. Hunter.
1972 all matplotlib versions are OK. Patch by J. Hunter.
1974
1973
1975 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1974 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1976 of __init__ docstrings for instances (class docstrings are already
1975 of __init__ docstrings for instances (class docstrings are already
1977 automatically printed). Instances with customized docstrings
1976 automatically printed). Instances with customized docstrings
1978 (indep. of the class) are also recognized and all 3 separate
1977 (indep. of the class) are also recognized and all 3 separate
1979 docstrings are printed (instance, class, constructor). After some
1978 docstrings are printed (instance, class, constructor). After some
1980 comments/suggestions by J. Hunter.
1979 comments/suggestions by J. Hunter.
1981
1980
1982 2004-12-05 Fernando Perez <fperez@colorado.edu>
1981 2004-12-05 Fernando Perez <fperez@colorado.edu>
1983
1982
1984 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1983 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1985 warnings when tab-completion fails and triggers an exception.
1984 warnings when tab-completion fails and triggers an exception.
1986
1985
1987 2004-12-03 Fernando Perez <fperez@colorado.edu>
1986 2004-12-03 Fernando Perez <fperez@colorado.edu>
1988
1987
1989 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1988 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1990 be triggered when using 'run -p'. An incorrect option flag was
1989 be triggered when using 'run -p'. An incorrect option flag was
1991 being set ('d' instead of 'D').
1990 being set ('d' instead of 'D').
1992 (manpage): fix missing escaped \- sign.
1991 (manpage): fix missing escaped \- sign.
1993
1992
1994 2004-11-30 *** Released version 0.6.5
1993 2004-11-30 *** Released version 0.6.5
1995
1994
1996 2004-11-30 Fernando Perez <fperez@colorado.edu>
1995 2004-11-30 Fernando Perez <fperez@colorado.edu>
1997
1996
1998 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1997 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1999 setting with -d option.
1998 setting with -d option.
2000
1999
2001 * setup.py (docfiles): Fix problem where the doc glob I was using
2000 * setup.py (docfiles): Fix problem where the doc glob I was using
2002 was COMPLETELY BROKEN. It was giving the right files by pure
2001 was COMPLETELY BROKEN. It was giving the right files by pure
2003 accident, but failed once I tried to include ipython.el. Note:
2002 accident, but failed once I tried to include ipython.el. Note:
2004 glob() does NOT allow you to do exclusion on multiple endings!
2003 glob() does NOT allow you to do exclusion on multiple endings!
2005
2004
2006 2004-11-29 Fernando Perez <fperez@colorado.edu>
2005 2004-11-29 Fernando Perez <fperez@colorado.edu>
2007
2006
2008 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2007 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2009 the manpage as the source. Better formatting & consistency.
2008 the manpage as the source. Better formatting & consistency.
2010
2009
2011 * IPython/Magic.py (magic_run): Added new -d option, to run
2010 * IPython/Magic.py (magic_run): Added new -d option, to run
2012 scripts under the control of the python pdb debugger. Note that
2011 scripts under the control of the python pdb debugger. Note that
2013 this required changing the %prun option -d to -D, to avoid a clash
2012 this required changing the %prun option -d to -D, to avoid a clash
2014 (since %run must pass options to %prun, and getopt is too dumb to
2013 (since %run must pass options to %prun, and getopt is too dumb to
2015 handle options with string values with embedded spaces). Thanks
2014 handle options with string values with embedded spaces). Thanks
2016 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2015 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2017 (magic_who_ls): added type matching to %who and %whos, so that one
2016 (magic_who_ls): added type matching to %who and %whos, so that one
2018 can filter their output to only include variables of certain
2017 can filter their output to only include variables of certain
2019 types. Another suggestion by Matthew.
2018 types. Another suggestion by Matthew.
2020 (magic_whos): Added memory summaries in kb and Mb for arrays.
2019 (magic_whos): Added memory summaries in kb and Mb for arrays.
2021 (magic_who): Improve formatting (break lines every 9 vars).
2020 (magic_who): Improve formatting (break lines every 9 vars).
2022
2021
2023 2004-11-28 Fernando Perez <fperez@colorado.edu>
2022 2004-11-28 Fernando Perez <fperez@colorado.edu>
2024
2023
2025 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2024 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2026 cache when empty lines were present.
2025 cache when empty lines were present.
2027
2026
2028 2004-11-24 Fernando Perez <fperez@colorado.edu>
2027 2004-11-24 Fernando Perez <fperez@colorado.edu>
2029
2028
2030 * IPython/usage.py (__doc__): document the re-activated threading
2029 * IPython/usage.py (__doc__): document the re-activated threading
2031 options for WX and GTK.
2030 options for WX and GTK.
2032
2031
2033 2004-11-23 Fernando Perez <fperez@colorado.edu>
2032 2004-11-23 Fernando Perez <fperez@colorado.edu>
2034
2033
2035 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2034 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2036 the -wthread and -gthread options, along with a new -tk one to try
2035 the -wthread and -gthread options, along with a new -tk one to try
2037 and coordinate Tk threading with wx/gtk. The tk support is very
2036 and coordinate Tk threading with wx/gtk. The tk support is very
2038 platform dependent, since it seems to require Tcl and Tk to be
2037 platform dependent, since it seems to require Tcl and Tk to be
2039 built with threads (Fedora1/2 appears NOT to have it, but in
2038 built with threads (Fedora1/2 appears NOT to have it, but in
2040 Prabhu's Debian boxes it works OK). But even with some Tk
2039 Prabhu's Debian boxes it works OK). But even with some Tk
2041 limitations, this is a great improvement.
2040 limitations, this is a great improvement.
2042
2041
2043 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2042 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2044 info in user prompts. Patch by Prabhu.
2043 info in user prompts. Patch by Prabhu.
2045
2044
2046 2004-11-18 Fernando Perez <fperez@colorado.edu>
2045 2004-11-18 Fernando Perez <fperez@colorado.edu>
2047
2046
2048 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2047 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2049 EOFErrors and bail, to avoid infinite loops if a non-terminating
2048 EOFErrors and bail, to avoid infinite loops if a non-terminating
2050 file is fed into ipython. Patch submitted in issue 19 by user,
2049 file is fed into ipython. Patch submitted in issue 19 by user,
2051 many thanks.
2050 many thanks.
2052
2051
2053 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2052 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2054 autoquote/parens in continuation prompts, which can cause lots of
2053 autoquote/parens in continuation prompts, which can cause lots of
2055 problems. Closes roundup issue 20.
2054 problems. Closes roundup issue 20.
2056
2055
2057 2004-11-17 Fernando Perez <fperez@colorado.edu>
2056 2004-11-17 Fernando Perez <fperez@colorado.edu>
2058
2057
2059 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2058 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2060 reported as debian bug #280505. I'm not sure my local changelog
2059 reported as debian bug #280505. I'm not sure my local changelog
2061 entry has the proper debian format (Jack?).
2060 entry has the proper debian format (Jack?).
2062
2061
2063 2004-11-08 *** Released version 0.6.4
2062 2004-11-08 *** Released version 0.6.4
2064
2063
2065 2004-11-08 Fernando Perez <fperez@colorado.edu>
2064 2004-11-08 Fernando Perez <fperez@colorado.edu>
2066
2065
2067 * IPython/iplib.py (init_readline): Fix exit message for Windows
2066 * IPython/iplib.py (init_readline): Fix exit message for Windows
2068 when readline is active. Thanks to a report by Eric Jones
2067 when readline is active. Thanks to a report by Eric Jones
2069 <eric-AT-enthought.com>.
2068 <eric-AT-enthought.com>.
2070
2069
2071 2004-11-07 Fernando Perez <fperez@colorado.edu>
2070 2004-11-07 Fernando Perez <fperez@colorado.edu>
2072
2071
2073 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2072 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2074 sometimes seen by win2k/cygwin users.
2073 sometimes seen by win2k/cygwin users.
2075
2074
2076 2004-11-06 Fernando Perez <fperez@colorado.edu>
2075 2004-11-06 Fernando Perez <fperez@colorado.edu>
2077
2076
2078 * IPython/iplib.py (interact): Change the handling of %Exit from
2077 * IPython/iplib.py (interact): Change the handling of %Exit from
2079 trying to propagate a SystemExit to an internal ipython flag.
2078 trying to propagate a SystemExit to an internal ipython flag.
2080 This is less elegant than using Python's exception mechanism, but
2079 This is less elegant than using Python's exception mechanism, but
2081 I can't get that to work reliably with threads, so under -pylab
2080 I can't get that to work reliably with threads, so under -pylab
2082 %Exit was hanging IPython. Cross-thread exception handling is
2081 %Exit was hanging IPython. Cross-thread exception handling is
2083 really a bitch. Thaks to a bug report by Stephen Walton
2082 really a bitch. Thaks to a bug report by Stephen Walton
2084 <stephen.walton-AT-csun.edu>.
2083 <stephen.walton-AT-csun.edu>.
2085
2084
2086 2004-11-04 Fernando Perez <fperez@colorado.edu>
2085 2004-11-04 Fernando Perez <fperez@colorado.edu>
2087
2086
2088 * IPython/iplib.py (raw_input_original): store a pointer to the
2087 * IPython/iplib.py (raw_input_original): store a pointer to the
2089 true raw_input to harden against code which can modify it
2088 true raw_input to harden against code which can modify it
2090 (wx.py.PyShell does this and would otherwise crash ipython).
2089 (wx.py.PyShell does this and would otherwise crash ipython).
2091 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2090 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2092
2091
2093 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2092 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2094 Ctrl-C problem, which does not mess up the input line.
2093 Ctrl-C problem, which does not mess up the input line.
2095
2094
2096 2004-11-03 Fernando Perez <fperez@colorado.edu>
2095 2004-11-03 Fernando Perez <fperez@colorado.edu>
2097
2096
2098 * IPython/Release.py: Changed licensing to BSD, in all files.
2097 * IPython/Release.py: Changed licensing to BSD, in all files.
2099 (name): lowercase name for tarball/RPM release.
2098 (name): lowercase name for tarball/RPM release.
2100
2099
2101 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2100 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2102 use throughout ipython.
2101 use throughout ipython.
2103
2102
2104 * IPython/Magic.py (Magic._ofind): Switch to using the new
2103 * IPython/Magic.py (Magic._ofind): Switch to using the new
2105 OInspect.getdoc() function.
2104 OInspect.getdoc() function.
2106
2105
2107 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2106 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2108 of the line currently being canceled via Ctrl-C. It's extremely
2107 of the line currently being canceled via Ctrl-C. It's extremely
2109 ugly, but I don't know how to do it better (the problem is one of
2108 ugly, but I don't know how to do it better (the problem is one of
2110 handling cross-thread exceptions).
2109 handling cross-thread exceptions).
2111
2110
2112 2004-10-28 Fernando Perez <fperez@colorado.edu>
2111 2004-10-28 Fernando Perez <fperez@colorado.edu>
2113
2112
2114 * IPython/Shell.py (signal_handler): add signal handlers to trap
2113 * IPython/Shell.py (signal_handler): add signal handlers to trap
2115 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2114 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2116 report by Francesc Alted.
2115 report by Francesc Alted.
2117
2116
2118 2004-10-21 Fernando Perez <fperez@colorado.edu>
2117 2004-10-21 Fernando Perez <fperez@colorado.edu>
2119
2118
2120 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2119 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2121 to % for pysh syntax extensions.
2120 to % for pysh syntax extensions.
2122
2121
2123 2004-10-09 Fernando Perez <fperez@colorado.edu>
2122 2004-10-09 Fernando Perez <fperez@colorado.edu>
2124
2123
2125 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2124 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2126 arrays to print a more useful summary, without calling str(arr).
2125 arrays to print a more useful summary, without calling str(arr).
2127 This avoids the problem of extremely lengthy computations which
2126 This avoids the problem of extremely lengthy computations which
2128 occur if arr is large, and appear to the user as a system lockup
2127 occur if arr is large, and appear to the user as a system lockup
2129 with 100% cpu activity. After a suggestion by Kristian Sandberg
2128 with 100% cpu activity. After a suggestion by Kristian Sandberg
2130 <Kristian.Sandberg@colorado.edu>.
2129 <Kristian.Sandberg@colorado.edu>.
2131 (Magic.__init__): fix bug in global magic escapes not being
2130 (Magic.__init__): fix bug in global magic escapes not being
2132 correctly set.
2131 correctly set.
2133
2132
2134 2004-10-08 Fernando Perez <fperez@colorado.edu>
2133 2004-10-08 Fernando Perez <fperez@colorado.edu>
2135
2134
2136 * IPython/Magic.py (__license__): change to absolute imports of
2135 * IPython/Magic.py (__license__): change to absolute imports of
2137 ipython's own internal packages, to start adapting to the absolute
2136 ipython's own internal packages, to start adapting to the absolute
2138 import requirement of PEP-328.
2137 import requirement of PEP-328.
2139
2138
2140 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2139 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2141 files, and standardize author/license marks through the Release
2140 files, and standardize author/license marks through the Release
2142 module instead of having per/file stuff (except for files with
2141 module instead of having per/file stuff (except for files with
2143 particular licenses, like the MIT/PSF-licensed codes).
2142 particular licenses, like the MIT/PSF-licensed codes).
2144
2143
2145 * IPython/Debugger.py: remove dead code for python 2.1
2144 * IPython/Debugger.py: remove dead code for python 2.1
2146
2145
2147 2004-10-04 Fernando Perez <fperez@colorado.edu>
2146 2004-10-04 Fernando Perez <fperez@colorado.edu>
2148
2147
2149 * IPython/iplib.py (ipmagic): New function for accessing magics
2148 * IPython/iplib.py (ipmagic): New function for accessing magics
2150 via a normal python function call.
2149 via a normal python function call.
2151
2150
2152 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2151 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2153 from '@' to '%', to accomodate the new @decorator syntax of python
2152 from '@' to '%', to accomodate the new @decorator syntax of python
2154 2.4.
2153 2.4.
2155
2154
2156 2004-09-29 Fernando Perez <fperez@colorado.edu>
2155 2004-09-29 Fernando Perez <fperez@colorado.edu>
2157
2156
2158 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2157 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2159 matplotlib.use to prevent running scripts which try to switch
2158 matplotlib.use to prevent running scripts which try to switch
2160 interactive backends from within ipython. This will just crash
2159 interactive backends from within ipython. This will just crash
2161 the python interpreter, so we can't allow it (but a detailed error
2160 the python interpreter, so we can't allow it (but a detailed error
2162 is given to the user).
2161 is given to the user).
2163
2162
2164 2004-09-28 Fernando Perez <fperez@colorado.edu>
2163 2004-09-28 Fernando Perez <fperez@colorado.edu>
2165
2164
2166 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2165 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2167 matplotlib-related fixes so that using @run with non-matplotlib
2166 matplotlib-related fixes so that using @run with non-matplotlib
2168 scripts doesn't pop up spurious plot windows. This requires
2167 scripts doesn't pop up spurious plot windows. This requires
2169 matplotlib >= 0.63, where I had to make some changes as well.
2168 matplotlib >= 0.63, where I had to make some changes as well.
2170
2169
2171 * IPython/ipmaker.py (make_IPython): update version requirement to
2170 * IPython/ipmaker.py (make_IPython): update version requirement to
2172 python 2.2.
2171 python 2.2.
2173
2172
2174 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2173 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2175 banner arg for embedded customization.
2174 banner arg for embedded customization.
2176
2175
2177 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2176 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2178 explicit uses of __IP as the IPython's instance name. Now things
2177 explicit uses of __IP as the IPython's instance name. Now things
2179 are properly handled via the shell.name value. The actual code
2178 are properly handled via the shell.name value. The actual code
2180 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2179 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2181 is much better than before. I'll clean things completely when the
2180 is much better than before. I'll clean things completely when the
2182 magic stuff gets a real overhaul.
2181 magic stuff gets a real overhaul.
2183
2182
2184 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2183 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2185 minor changes to debian dir.
2184 minor changes to debian dir.
2186
2185
2187 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2186 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2188 pointer to the shell itself in the interactive namespace even when
2187 pointer to the shell itself in the interactive namespace even when
2189 a user-supplied dict is provided. This is needed for embedding
2188 a user-supplied dict is provided. This is needed for embedding
2190 purposes (found by tests with Michel Sanner).
2189 purposes (found by tests with Michel Sanner).
2191
2190
2192 2004-09-27 Fernando Perez <fperez@colorado.edu>
2191 2004-09-27 Fernando Perez <fperez@colorado.edu>
2193
2192
2194 * IPython/UserConfig/ipythonrc: remove []{} from
2193 * IPython/UserConfig/ipythonrc: remove []{} from
2195 readline_remove_delims, so that things like [modname.<TAB> do
2194 readline_remove_delims, so that things like [modname.<TAB> do
2196 proper completion. This disables [].TAB, but that's a less common
2195 proper completion. This disables [].TAB, but that's a less common
2197 case than module names in list comprehensions, for example.
2196 case than module names in list comprehensions, for example.
2198 Thanks to a report by Andrea Riciputi.
2197 Thanks to a report by Andrea Riciputi.
2199
2198
2200 2004-09-09 Fernando Perez <fperez@colorado.edu>
2199 2004-09-09 Fernando Perez <fperez@colorado.edu>
2201
2200
2202 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2201 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2203 blocking problems in win32 and osx. Fix by John.
2202 blocking problems in win32 and osx. Fix by John.
2204
2203
2205 2004-09-08 Fernando Perez <fperez@colorado.edu>
2204 2004-09-08 Fernando Perez <fperez@colorado.edu>
2206
2205
2207 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2206 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2208 for Win32 and OSX. Fix by John Hunter.
2207 for Win32 and OSX. Fix by John Hunter.
2209
2208
2210 2004-08-30 *** Released version 0.6.3
2209 2004-08-30 *** Released version 0.6.3
2211
2210
2212 2004-08-30 Fernando Perez <fperez@colorado.edu>
2211 2004-08-30 Fernando Perez <fperez@colorado.edu>
2213
2212
2214 * setup.py (isfile): Add manpages to list of dependent files to be
2213 * setup.py (isfile): Add manpages to list of dependent files to be
2215 updated.
2214 updated.
2216
2215
2217 2004-08-27 Fernando Perez <fperez@colorado.edu>
2216 2004-08-27 Fernando Perez <fperez@colorado.edu>
2218
2217
2219 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2218 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2220 for now. They don't really work with standalone WX/GTK code
2219 for now. They don't really work with standalone WX/GTK code
2221 (though matplotlib IS working fine with both of those backends).
2220 (though matplotlib IS working fine with both of those backends).
2222 This will neeed much more testing. I disabled most things with
2221 This will neeed much more testing. I disabled most things with
2223 comments, so turning it back on later should be pretty easy.
2222 comments, so turning it back on later should be pretty easy.
2224
2223
2225 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2224 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2226 autocalling of expressions like r'foo', by modifying the line
2225 autocalling of expressions like r'foo', by modifying the line
2227 split regexp. Closes
2226 split regexp. Closes
2228 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2227 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2229 Riley <ipythonbugs-AT-sabi.net>.
2228 Riley <ipythonbugs-AT-sabi.net>.
2230 (InteractiveShell.mainloop): honor --nobanner with banner
2229 (InteractiveShell.mainloop): honor --nobanner with banner
2231 extensions.
2230 extensions.
2232
2231
2233 * IPython/Shell.py: Significant refactoring of all classes, so
2232 * IPython/Shell.py: Significant refactoring of all classes, so
2234 that we can really support ALL matplotlib backends and threading
2233 that we can really support ALL matplotlib backends and threading
2235 models (John spotted a bug with Tk which required this). Now we
2234 models (John spotted a bug with Tk which required this). Now we
2236 should support single-threaded, WX-threads and GTK-threads, both
2235 should support single-threaded, WX-threads and GTK-threads, both
2237 for generic code and for matplotlib.
2236 for generic code and for matplotlib.
2238
2237
2239 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2238 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2240 -pylab, to simplify things for users. Will also remove the pylab
2239 -pylab, to simplify things for users. Will also remove the pylab
2241 profile, since now all of matplotlib configuration is directly
2240 profile, since now all of matplotlib configuration is directly
2242 handled here. This also reduces startup time.
2241 handled here. This also reduces startup time.
2243
2242
2244 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2243 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2245 shell wasn't being correctly called. Also in IPShellWX.
2244 shell wasn't being correctly called. Also in IPShellWX.
2246
2245
2247 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2246 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2248 fine-tune banner.
2247 fine-tune banner.
2249
2248
2250 * IPython/numutils.py (spike): Deprecate these spike functions,
2249 * IPython/numutils.py (spike): Deprecate these spike functions,
2251 delete (long deprecated) gnuplot_exec handler.
2250 delete (long deprecated) gnuplot_exec handler.
2252
2251
2253 2004-08-26 Fernando Perez <fperez@colorado.edu>
2252 2004-08-26 Fernando Perez <fperez@colorado.edu>
2254
2253
2255 * ipython.1: Update for threading options, plus some others which
2254 * ipython.1: Update for threading options, plus some others which
2256 were missing.
2255 were missing.
2257
2256
2258 * IPython/ipmaker.py (__call__): Added -wthread option for
2257 * IPython/ipmaker.py (__call__): Added -wthread option for
2259 wxpython thread handling. Make sure threading options are only
2258 wxpython thread handling. Make sure threading options are only
2260 valid at the command line.
2259 valid at the command line.
2261
2260
2262 * scripts/ipython: moved shell selection into a factory function
2261 * scripts/ipython: moved shell selection into a factory function
2263 in Shell.py, to keep the starter script to a minimum.
2262 in Shell.py, to keep the starter script to a minimum.
2264
2263
2265 2004-08-25 Fernando Perez <fperez@colorado.edu>
2264 2004-08-25 Fernando Perez <fperez@colorado.edu>
2266
2265
2267 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2266 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2268 John. Along with some recent changes he made to matplotlib, the
2267 John. Along with some recent changes he made to matplotlib, the
2269 next versions of both systems should work very well together.
2268 next versions of both systems should work very well together.
2270
2269
2271 2004-08-24 Fernando Perez <fperez@colorado.edu>
2270 2004-08-24 Fernando Perez <fperez@colorado.edu>
2272
2271
2273 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2272 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2274 tried to switch the profiling to using hotshot, but I'm getting
2273 tried to switch the profiling to using hotshot, but I'm getting
2275 strange errors from prof.runctx() there. I may be misreading the
2274 strange errors from prof.runctx() there. I may be misreading the
2276 docs, but it looks weird. For now the profiling code will
2275 docs, but it looks weird. For now the profiling code will
2277 continue to use the standard profiler.
2276 continue to use the standard profiler.
2278
2277
2279 2004-08-23 Fernando Perez <fperez@colorado.edu>
2278 2004-08-23 Fernando Perez <fperez@colorado.edu>
2280
2279
2281 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2280 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2282 threaded shell, by John Hunter. It's not quite ready yet, but
2281 threaded shell, by John Hunter. It's not quite ready yet, but
2283 close.
2282 close.
2284
2283
2285 2004-08-22 Fernando Perez <fperez@colorado.edu>
2284 2004-08-22 Fernando Perez <fperez@colorado.edu>
2286
2285
2287 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2286 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2288 in Magic and ultraTB.
2287 in Magic and ultraTB.
2289
2288
2290 * ipython.1: document threading options in manpage.
2289 * ipython.1: document threading options in manpage.
2291
2290
2292 * scripts/ipython: Changed name of -thread option to -gthread,
2291 * scripts/ipython: Changed name of -thread option to -gthread,
2293 since this is GTK specific. I want to leave the door open for a
2292 since this is GTK specific. I want to leave the door open for a
2294 -wthread option for WX, which will most likely be necessary. This
2293 -wthread option for WX, which will most likely be necessary. This
2295 change affects usage and ipmaker as well.
2294 change affects usage and ipmaker as well.
2296
2295
2297 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2296 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2298 handle the matplotlib shell issues. Code by John Hunter
2297 handle the matplotlib shell issues. Code by John Hunter
2299 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2298 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2300 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2299 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2301 broken (and disabled for end users) for now, but it puts the
2300 broken (and disabled for end users) for now, but it puts the
2302 infrastructure in place.
2301 infrastructure in place.
2303
2302
2304 2004-08-21 Fernando Perez <fperez@colorado.edu>
2303 2004-08-21 Fernando Perez <fperez@colorado.edu>
2305
2304
2306 * ipythonrc-pylab: Add matplotlib support.
2305 * ipythonrc-pylab: Add matplotlib support.
2307
2306
2308 * matplotlib_config.py: new files for matplotlib support, part of
2307 * matplotlib_config.py: new files for matplotlib support, part of
2309 the pylab profile.
2308 the pylab profile.
2310
2309
2311 * IPython/usage.py (__doc__): documented the threading options.
2310 * IPython/usage.py (__doc__): documented the threading options.
2312
2311
2313 2004-08-20 Fernando Perez <fperez@colorado.edu>
2312 2004-08-20 Fernando Perez <fperez@colorado.edu>
2314
2313
2315 * ipython: Modified the main calling routine to handle the -thread
2314 * ipython: Modified the main calling routine to handle the -thread
2316 and -mpthread options. This needs to be done as a top-level hack,
2315 and -mpthread options. This needs to be done as a top-level hack,
2317 because it determines which class to instantiate for IPython
2316 because it determines which class to instantiate for IPython
2318 itself.
2317 itself.
2319
2318
2320 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2319 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2321 classes to support multithreaded GTK operation without blocking,
2320 classes to support multithreaded GTK operation without blocking,
2322 and matplotlib with all backends. This is a lot of still very
2321 and matplotlib with all backends. This is a lot of still very
2323 experimental code, and threads are tricky. So it may still have a
2322 experimental code, and threads are tricky. So it may still have a
2324 few rough edges... This code owes a lot to
2323 few rough edges... This code owes a lot to
2325 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2324 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2326 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2325 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2327 to John Hunter for all the matplotlib work.
2326 to John Hunter for all the matplotlib work.
2328
2327
2329 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2328 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2330 options for gtk thread and matplotlib support.
2329 options for gtk thread and matplotlib support.
2331
2330
2332 2004-08-16 Fernando Perez <fperez@colorado.edu>
2331 2004-08-16 Fernando Perez <fperez@colorado.edu>
2333
2332
2334 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2333 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2335 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2334 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2336 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2335 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2337
2336
2338 2004-08-11 Fernando Perez <fperez@colorado.edu>
2337 2004-08-11 Fernando Perez <fperez@colorado.edu>
2339
2338
2340 * setup.py (isfile): Fix build so documentation gets updated for
2339 * setup.py (isfile): Fix build so documentation gets updated for
2341 rpms (it was only done for .tgz builds).
2340 rpms (it was only done for .tgz builds).
2342
2341
2343 2004-08-10 Fernando Perez <fperez@colorado.edu>
2342 2004-08-10 Fernando Perez <fperez@colorado.edu>
2344
2343
2345 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2344 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2346
2345
2347 * iplib.py : Silence syntax error exceptions in tab-completion.
2346 * iplib.py : Silence syntax error exceptions in tab-completion.
2348
2347
2349 2004-08-05 Fernando Perez <fperez@colorado.edu>
2348 2004-08-05 Fernando Perez <fperez@colorado.edu>
2350
2349
2351 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2350 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2352 'color off' mark for continuation prompts. This was causing long
2351 'color off' mark for continuation prompts. This was causing long
2353 continuation lines to mis-wrap.
2352 continuation lines to mis-wrap.
2354
2353
2355 2004-08-01 Fernando Perez <fperez@colorado.edu>
2354 2004-08-01 Fernando Perez <fperez@colorado.edu>
2356
2355
2357 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2356 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2358 for building ipython to be a parameter. All this is necessary
2357 for building ipython to be a parameter. All this is necessary
2359 right now to have a multithreaded version, but this insane
2358 right now to have a multithreaded version, but this insane
2360 non-design will be cleaned up soon. For now, it's a hack that
2359 non-design will be cleaned up soon. For now, it's a hack that
2361 works.
2360 works.
2362
2361
2363 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2362 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2364 args in various places. No bugs so far, but it's a dangerous
2363 args in various places. No bugs so far, but it's a dangerous
2365 practice.
2364 practice.
2366
2365
2367 2004-07-31 Fernando Perez <fperez@colorado.edu>
2366 2004-07-31 Fernando Perez <fperez@colorado.edu>
2368
2367
2369 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2368 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2370 fix completion of files with dots in their names under most
2369 fix completion of files with dots in their names under most
2371 profiles (pysh was OK because the completion order is different).
2370 profiles (pysh was OK because the completion order is different).
2372
2371
2373 2004-07-27 Fernando Perez <fperez@colorado.edu>
2372 2004-07-27 Fernando Perez <fperez@colorado.edu>
2374
2373
2375 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2374 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2376 keywords manually, b/c the one in keyword.py was removed in python
2375 keywords manually, b/c the one in keyword.py was removed in python
2377 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2376 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2378 This is NOT a bug under python 2.3 and earlier.
2377 This is NOT a bug under python 2.3 and earlier.
2379
2378
2380 2004-07-26 Fernando Perez <fperez@colorado.edu>
2379 2004-07-26 Fernando Perez <fperez@colorado.edu>
2381
2380
2382 * IPython/ultraTB.py (VerboseTB.text): Add another
2381 * IPython/ultraTB.py (VerboseTB.text): Add another
2383 linecache.checkcache() call to try to prevent inspect.py from
2382 linecache.checkcache() call to try to prevent inspect.py from
2384 crashing under python 2.3. I think this fixes
2383 crashing under python 2.3. I think this fixes
2385 http://www.scipy.net/roundup/ipython/issue17.
2384 http://www.scipy.net/roundup/ipython/issue17.
2386
2385
2387 2004-07-26 *** Released version 0.6.2
2386 2004-07-26 *** Released version 0.6.2
2388
2387
2389 2004-07-26 Fernando Perez <fperez@colorado.edu>
2388 2004-07-26 Fernando Perez <fperez@colorado.edu>
2390
2389
2391 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2390 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2392 fail for any number.
2391 fail for any number.
2393 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2392 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2394 empty bookmarks.
2393 empty bookmarks.
2395
2394
2396 2004-07-26 *** Released version 0.6.1
2395 2004-07-26 *** Released version 0.6.1
2397
2396
2398 2004-07-26 Fernando Perez <fperez@colorado.edu>
2397 2004-07-26 Fernando Perez <fperez@colorado.edu>
2399
2398
2400 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2399 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2401
2400
2402 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2401 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2403 escaping '()[]{}' in filenames.
2402 escaping '()[]{}' in filenames.
2404
2403
2405 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2404 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2406 Python 2.2 users who lack a proper shlex.split.
2405 Python 2.2 users who lack a proper shlex.split.
2407
2406
2408 2004-07-19 Fernando Perez <fperez@colorado.edu>
2407 2004-07-19 Fernando Perez <fperez@colorado.edu>
2409
2408
2410 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2409 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2411 for reading readline's init file. I follow the normal chain:
2410 for reading readline's init file. I follow the normal chain:
2412 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2411 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2413 report by Mike Heeter. This closes
2412 report by Mike Heeter. This closes
2414 http://www.scipy.net/roundup/ipython/issue16.
2413 http://www.scipy.net/roundup/ipython/issue16.
2415
2414
2416 2004-07-18 Fernando Perez <fperez@colorado.edu>
2415 2004-07-18 Fernando Perez <fperez@colorado.edu>
2417
2416
2418 * IPython/iplib.py (__init__): Add better handling of '\' under
2417 * IPython/iplib.py (__init__): Add better handling of '\' under
2419 Win32 for filenames. After a patch by Ville.
2418 Win32 for filenames. After a patch by Ville.
2420
2419
2421 2004-07-17 Fernando Perez <fperez@colorado.edu>
2420 2004-07-17 Fernando Perez <fperez@colorado.edu>
2422
2421
2423 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2422 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2424 autocalling would be triggered for 'foo is bar' if foo is
2423 autocalling would be triggered for 'foo is bar' if foo is
2425 callable. I also cleaned up the autocall detection code to use a
2424 callable. I also cleaned up the autocall detection code to use a
2426 regexp, which is faster. Bug reported by Alexander Schmolck.
2425 regexp, which is faster. Bug reported by Alexander Schmolck.
2427
2426
2428 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2427 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2429 '?' in them would confuse the help system. Reported by Alex
2428 '?' in them would confuse the help system. Reported by Alex
2430 Schmolck.
2429 Schmolck.
2431
2430
2432 2004-07-16 Fernando Perez <fperez@colorado.edu>
2431 2004-07-16 Fernando Perez <fperez@colorado.edu>
2433
2432
2434 * IPython/GnuplotInteractive.py (__all__): added plot2.
2433 * IPython/GnuplotInteractive.py (__all__): added plot2.
2435
2434
2436 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2435 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2437 plotting dictionaries, lists or tuples of 1d arrays.
2436 plotting dictionaries, lists or tuples of 1d arrays.
2438
2437
2439 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2438 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2440 optimizations.
2439 optimizations.
2441
2440
2442 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2441 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2443 the information which was there from Janko's original IPP code:
2442 the information which was there from Janko's original IPP code:
2444
2443
2445 03.05.99 20:53 porto.ifm.uni-kiel.de
2444 03.05.99 20:53 porto.ifm.uni-kiel.de
2446 --Started changelog.
2445 --Started changelog.
2447 --make clear do what it say it does
2446 --make clear do what it say it does
2448 --added pretty output of lines from inputcache
2447 --added pretty output of lines from inputcache
2449 --Made Logger a mixin class, simplifies handling of switches
2448 --Made Logger a mixin class, simplifies handling of switches
2450 --Added own completer class. .string<TAB> expands to last history
2449 --Added own completer class. .string<TAB> expands to last history
2451 line which starts with string. The new expansion is also present
2450 line which starts with string. The new expansion is also present
2452 with Ctrl-r from the readline library. But this shows, who this
2451 with Ctrl-r from the readline library. But this shows, who this
2453 can be done for other cases.
2452 can be done for other cases.
2454 --Added convention that all shell functions should accept a
2453 --Added convention that all shell functions should accept a
2455 parameter_string This opens the door for different behaviour for
2454 parameter_string This opens the door for different behaviour for
2456 each function. @cd is a good example of this.
2455 each function. @cd is a good example of this.
2457
2456
2458 04.05.99 12:12 porto.ifm.uni-kiel.de
2457 04.05.99 12:12 porto.ifm.uni-kiel.de
2459 --added logfile rotation
2458 --added logfile rotation
2460 --added new mainloop method which freezes first the namespace
2459 --added new mainloop method which freezes first the namespace
2461
2460
2462 07.05.99 21:24 porto.ifm.uni-kiel.de
2461 07.05.99 21:24 porto.ifm.uni-kiel.de
2463 --added the docreader classes. Now there is a help system.
2462 --added the docreader classes. Now there is a help system.
2464 -This is only a first try. Currently it's not easy to put new
2463 -This is only a first try. Currently it's not easy to put new
2465 stuff in the indices. But this is the way to go. Info would be
2464 stuff in the indices. But this is the way to go. Info would be
2466 better, but HTML is every where and not everybody has an info
2465 better, but HTML is every where and not everybody has an info
2467 system installed and it's not so easy to change html-docs to info.
2466 system installed and it's not so easy to change html-docs to info.
2468 --added global logfile option
2467 --added global logfile option
2469 --there is now a hook for object inspection method pinfo needs to
2468 --there is now a hook for object inspection method pinfo needs to
2470 be provided for this. Can be reached by two '??'.
2469 be provided for this. Can be reached by two '??'.
2471
2470
2472 08.05.99 20:51 porto.ifm.uni-kiel.de
2471 08.05.99 20:51 porto.ifm.uni-kiel.de
2473 --added a README
2472 --added a README
2474 --bug in rc file. Something has changed so functions in the rc
2473 --bug in rc file. Something has changed so functions in the rc
2475 file need to reference the shell and not self. Not clear if it's a
2474 file need to reference the shell and not self. Not clear if it's a
2476 bug or feature.
2475 bug or feature.
2477 --changed rc file for new behavior
2476 --changed rc file for new behavior
2478
2477
2479 2004-07-15 Fernando Perez <fperez@colorado.edu>
2478 2004-07-15 Fernando Perez <fperez@colorado.edu>
2480
2479
2481 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2480 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2482 cache was falling out of sync in bizarre manners when multi-line
2481 cache was falling out of sync in bizarre manners when multi-line
2483 input was present. Minor optimizations and cleanup.
2482 input was present. Minor optimizations and cleanup.
2484
2483
2485 (Logger): Remove old Changelog info for cleanup. This is the
2484 (Logger): Remove old Changelog info for cleanup. This is the
2486 information which was there from Janko's original code:
2485 information which was there from Janko's original code:
2487
2486
2488 Changes to Logger: - made the default log filename a parameter
2487 Changes to Logger: - made the default log filename a parameter
2489
2488
2490 - put a check for lines beginning with !@? in log(). Needed
2489 - put a check for lines beginning with !@? in log(). Needed
2491 (even if the handlers properly log their lines) for mid-session
2490 (even if the handlers properly log their lines) for mid-session
2492 logging activation to work properly. Without this, lines logged
2491 logging activation to work properly. Without this, lines logged
2493 in mid session, which get read from the cache, would end up
2492 in mid session, which get read from the cache, would end up
2494 'bare' (with !@? in the open) in the log. Now they are caught
2493 'bare' (with !@? in the open) in the log. Now they are caught
2495 and prepended with a #.
2494 and prepended with a #.
2496
2495
2497 * IPython/iplib.py (InteractiveShell.init_readline): added check
2496 * IPython/iplib.py (InteractiveShell.init_readline): added check
2498 in case MagicCompleter fails to be defined, so we don't crash.
2497 in case MagicCompleter fails to be defined, so we don't crash.
2499
2498
2500 2004-07-13 Fernando Perez <fperez@colorado.edu>
2499 2004-07-13 Fernando Perez <fperez@colorado.edu>
2501
2500
2502 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2501 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2503 of EPS if the requested filename ends in '.eps'.
2502 of EPS if the requested filename ends in '.eps'.
2504
2503
2505 2004-07-04 Fernando Perez <fperez@colorado.edu>
2504 2004-07-04 Fernando Perez <fperez@colorado.edu>
2506
2505
2507 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2506 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2508 escaping of quotes when calling the shell.
2507 escaping of quotes when calling the shell.
2509
2508
2510 2004-07-02 Fernando Perez <fperez@colorado.edu>
2509 2004-07-02 Fernando Perez <fperez@colorado.edu>
2511
2510
2512 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2511 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2513 gettext not working because we were clobbering '_'. Fixes
2512 gettext not working because we were clobbering '_'. Fixes
2514 http://www.scipy.net/roundup/ipython/issue6.
2513 http://www.scipy.net/roundup/ipython/issue6.
2515
2514
2516 2004-07-01 Fernando Perez <fperez@colorado.edu>
2515 2004-07-01 Fernando Perez <fperez@colorado.edu>
2517
2516
2518 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2517 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2519 into @cd. Patch by Ville.
2518 into @cd. Patch by Ville.
2520
2519
2521 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2520 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2522 new function to store things after ipmaker runs. Patch by Ville.
2521 new function to store things after ipmaker runs. Patch by Ville.
2523 Eventually this will go away once ipmaker is removed and the class
2522 Eventually this will go away once ipmaker is removed and the class
2524 gets cleaned up, but for now it's ok. Key functionality here is
2523 gets cleaned up, but for now it's ok. Key functionality here is
2525 the addition of the persistent storage mechanism, a dict for
2524 the addition of the persistent storage mechanism, a dict for
2526 keeping data across sessions (for now just bookmarks, but more can
2525 keeping data across sessions (for now just bookmarks, but more can
2527 be implemented later).
2526 be implemented later).
2528
2527
2529 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2528 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2530 persistent across sections. Patch by Ville, I modified it
2529 persistent across sections. Patch by Ville, I modified it
2531 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2530 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2532 added a '-l' option to list all bookmarks.
2531 added a '-l' option to list all bookmarks.
2533
2532
2534 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2533 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2535 center for cleanup. Registered with atexit.register(). I moved
2534 center for cleanup. Registered with atexit.register(). I moved
2536 here the old exit_cleanup(). After a patch by Ville.
2535 here the old exit_cleanup(). After a patch by Ville.
2537
2536
2538 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2537 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2539 characters in the hacked shlex_split for python 2.2.
2538 characters in the hacked shlex_split for python 2.2.
2540
2539
2541 * IPython/iplib.py (file_matches): more fixes to filenames with
2540 * IPython/iplib.py (file_matches): more fixes to filenames with
2542 whitespace in them. It's not perfect, but limitations in python's
2541 whitespace in them. It's not perfect, but limitations in python's
2543 readline make it impossible to go further.
2542 readline make it impossible to go further.
2544
2543
2545 2004-06-29 Fernando Perez <fperez@colorado.edu>
2544 2004-06-29 Fernando Perez <fperez@colorado.edu>
2546
2545
2547 * IPython/iplib.py (file_matches): escape whitespace correctly in
2546 * IPython/iplib.py (file_matches): escape whitespace correctly in
2548 filename completions. Bug reported by Ville.
2547 filename completions. Bug reported by Ville.
2549
2548
2550 2004-06-28 Fernando Perez <fperez@colorado.edu>
2549 2004-06-28 Fernando Perez <fperez@colorado.edu>
2551
2550
2552 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2551 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2553 the history file will be called 'history-PROFNAME' (or just
2552 the history file will be called 'history-PROFNAME' (or just
2554 'history' if no profile is loaded). I was getting annoyed at
2553 'history' if no profile is loaded). I was getting annoyed at
2555 getting my Numerical work history clobbered by pysh sessions.
2554 getting my Numerical work history clobbered by pysh sessions.
2556
2555
2557 * IPython/iplib.py (InteractiveShell.__init__): Internal
2556 * IPython/iplib.py (InteractiveShell.__init__): Internal
2558 getoutputerror() function so that we can honor the system_verbose
2557 getoutputerror() function so that we can honor the system_verbose
2559 flag for _all_ system calls. I also added escaping of #
2558 flag for _all_ system calls. I also added escaping of #
2560 characters here to avoid confusing Itpl.
2559 characters here to avoid confusing Itpl.
2561
2560
2562 * IPython/Magic.py (shlex_split): removed call to shell in
2561 * IPython/Magic.py (shlex_split): removed call to shell in
2563 parse_options and replaced it with shlex.split(). The annoying
2562 parse_options and replaced it with shlex.split(). The annoying
2564 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2563 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2565 to backport it from 2.3, with several frail hacks (the shlex
2564 to backport it from 2.3, with several frail hacks (the shlex
2566 module is rather limited in 2.2). Thanks to a suggestion by Ville
2565 module is rather limited in 2.2). Thanks to a suggestion by Ville
2567 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2566 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2568 problem.
2567 problem.
2569
2568
2570 (Magic.magic_system_verbose): new toggle to print the actual
2569 (Magic.magic_system_verbose): new toggle to print the actual
2571 system calls made by ipython. Mainly for debugging purposes.
2570 system calls made by ipython. Mainly for debugging purposes.
2572
2571
2573 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2572 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2574 doesn't support persistence. Reported (and fix suggested) by
2573 doesn't support persistence. Reported (and fix suggested) by
2575 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2574 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2576
2575
2577 2004-06-26 Fernando Perez <fperez@colorado.edu>
2576 2004-06-26 Fernando Perez <fperez@colorado.edu>
2578
2577
2579 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2578 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2580 continue prompts.
2579 continue prompts.
2581
2580
2582 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2581 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2583 function (basically a big docstring) and a few more things here to
2582 function (basically a big docstring) and a few more things here to
2584 speedup startup. pysh.py is now very lightweight. We want because
2583 speedup startup. pysh.py is now very lightweight. We want because
2585 it gets execfile'd, while InterpreterExec gets imported, so
2584 it gets execfile'd, while InterpreterExec gets imported, so
2586 byte-compilation saves time.
2585 byte-compilation saves time.
2587
2586
2588 2004-06-25 Fernando Perez <fperez@colorado.edu>
2587 2004-06-25 Fernando Perez <fperez@colorado.edu>
2589
2588
2590 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2589 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2591 -NUM', which was recently broken.
2590 -NUM', which was recently broken.
2592
2591
2593 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2592 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2594 in multi-line input (but not !!, which doesn't make sense there).
2593 in multi-line input (but not !!, which doesn't make sense there).
2595
2594
2596 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2595 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2597 It's just too useful, and people can turn it off in the less
2596 It's just too useful, and people can turn it off in the less
2598 common cases where it's a problem.
2597 common cases where it's a problem.
2599
2598
2600 2004-06-24 Fernando Perez <fperez@colorado.edu>
2599 2004-06-24 Fernando Perez <fperez@colorado.edu>
2601
2600
2602 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2601 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2603 special syntaxes (like alias calling) is now allied in multi-line
2602 special syntaxes (like alias calling) is now allied in multi-line
2604 input. This is still _very_ experimental, but it's necessary for
2603 input. This is still _very_ experimental, but it's necessary for
2605 efficient shell usage combining python looping syntax with system
2604 efficient shell usage combining python looping syntax with system
2606 calls. For now it's restricted to aliases, I don't think it
2605 calls. For now it's restricted to aliases, I don't think it
2607 really even makes sense to have this for magics.
2606 really even makes sense to have this for magics.
2608
2607
2609 2004-06-23 Fernando Perez <fperez@colorado.edu>
2608 2004-06-23 Fernando Perez <fperez@colorado.edu>
2610
2609
2611 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2610 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2612 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2611 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2613
2612
2614 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2613 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2615 extensions under Windows (after code sent by Gary Bishop). The
2614 extensions under Windows (after code sent by Gary Bishop). The
2616 extensions considered 'executable' are stored in IPython's rc
2615 extensions considered 'executable' are stored in IPython's rc
2617 structure as win_exec_ext.
2616 structure as win_exec_ext.
2618
2617
2619 * IPython/genutils.py (shell): new function, like system() but
2618 * IPython/genutils.py (shell): new function, like system() but
2620 without return value. Very useful for interactive shell work.
2619 without return value. Very useful for interactive shell work.
2621
2620
2622 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2621 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2623 delete aliases.
2622 delete aliases.
2624
2623
2625 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2624 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2626 sure that the alias table doesn't contain python keywords.
2625 sure that the alias table doesn't contain python keywords.
2627
2626
2628 2004-06-21 Fernando Perez <fperez@colorado.edu>
2627 2004-06-21 Fernando Perez <fperez@colorado.edu>
2629
2628
2630 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2629 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2631 non-existent items are found in $PATH. Reported by Thorsten.
2630 non-existent items are found in $PATH. Reported by Thorsten.
2632
2631
2633 2004-06-20 Fernando Perez <fperez@colorado.edu>
2632 2004-06-20 Fernando Perez <fperez@colorado.edu>
2634
2633
2635 * IPython/iplib.py (complete): modified the completer so that the
2634 * IPython/iplib.py (complete): modified the completer so that the
2636 order of priorities can be easily changed at runtime.
2635 order of priorities can be easily changed at runtime.
2637
2636
2638 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2637 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2639 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2638 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2640
2639
2641 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2640 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2642 expand Python variables prepended with $ in all system calls. The
2641 expand Python variables prepended with $ in all system calls. The
2643 same was done to InteractiveShell.handle_shell_escape. Now all
2642 same was done to InteractiveShell.handle_shell_escape. Now all
2644 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2643 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2645 expansion of python variables and expressions according to the
2644 expansion of python variables and expressions according to the
2646 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2645 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2647
2646
2648 Though PEP-215 has been rejected, a similar (but simpler) one
2647 Though PEP-215 has been rejected, a similar (but simpler) one
2649 seems like it will go into Python 2.4, PEP-292 -
2648 seems like it will go into Python 2.4, PEP-292 -
2650 http://www.python.org/peps/pep-0292.html.
2649 http://www.python.org/peps/pep-0292.html.
2651
2650
2652 I'll keep the full syntax of PEP-215, since IPython has since the
2651 I'll keep the full syntax of PEP-215, since IPython has since the
2653 start used Ka-Ping Yee's reference implementation discussed there
2652 start used Ka-Ping Yee's reference implementation discussed there
2654 (Itpl), and I actually like the powerful semantics it offers.
2653 (Itpl), and I actually like the powerful semantics it offers.
2655
2654
2656 In order to access normal shell variables, the $ has to be escaped
2655 In order to access normal shell variables, the $ has to be escaped
2657 via an extra $. For example:
2656 via an extra $. For example:
2658
2657
2659 In [7]: PATH='a python variable'
2658 In [7]: PATH='a python variable'
2660
2659
2661 In [8]: !echo $PATH
2660 In [8]: !echo $PATH
2662 a python variable
2661 a python variable
2663
2662
2664 In [9]: !echo $$PATH
2663 In [9]: !echo $$PATH
2665 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2664 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2666
2665
2667 (Magic.parse_options): escape $ so the shell doesn't evaluate
2666 (Magic.parse_options): escape $ so the shell doesn't evaluate
2668 things prematurely.
2667 things prematurely.
2669
2668
2670 * IPython/iplib.py (InteractiveShell.call_alias): added the
2669 * IPython/iplib.py (InteractiveShell.call_alias): added the
2671 ability for aliases to expand python variables via $.
2670 ability for aliases to expand python variables via $.
2672
2671
2673 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2672 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2674 system, now there's a @rehash/@rehashx pair of magics. These work
2673 system, now there's a @rehash/@rehashx pair of magics. These work
2675 like the csh rehash command, and can be invoked at any time. They
2674 like the csh rehash command, and can be invoked at any time. They
2676 build a table of aliases to everything in the user's $PATH
2675 build a table of aliases to everything in the user's $PATH
2677 (@rehash uses everything, @rehashx is slower but only adds
2676 (@rehash uses everything, @rehashx is slower but only adds
2678 executable files). With this, the pysh.py-based shell profile can
2677 executable files). With this, the pysh.py-based shell profile can
2679 now simply call rehash upon startup, and full access to all
2678 now simply call rehash upon startup, and full access to all
2680 programs in the user's path is obtained.
2679 programs in the user's path is obtained.
2681
2680
2682 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2681 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2683 functionality is now fully in place. I removed the old dynamic
2682 functionality is now fully in place. I removed the old dynamic
2684 code generation based approach, in favor of a much lighter one
2683 code generation based approach, in favor of a much lighter one
2685 based on a simple dict. The advantage is that this allows me to
2684 based on a simple dict. The advantage is that this allows me to
2686 now have thousands of aliases with negligible cost (unthinkable
2685 now have thousands of aliases with negligible cost (unthinkable
2687 with the old system).
2686 with the old system).
2688
2687
2689 2004-06-19 Fernando Perez <fperez@colorado.edu>
2688 2004-06-19 Fernando Perez <fperez@colorado.edu>
2690
2689
2691 * IPython/iplib.py (__init__): extended MagicCompleter class to
2690 * IPython/iplib.py (__init__): extended MagicCompleter class to
2692 also complete (last in priority) on user aliases.
2691 also complete (last in priority) on user aliases.
2693
2692
2694 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2693 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2695 call to eval.
2694 call to eval.
2696 (ItplNS.__init__): Added a new class which functions like Itpl,
2695 (ItplNS.__init__): Added a new class which functions like Itpl,
2697 but allows configuring the namespace for the evaluation to occur
2696 but allows configuring the namespace for the evaluation to occur
2698 in.
2697 in.
2699
2698
2700 2004-06-18 Fernando Perez <fperez@colorado.edu>
2699 2004-06-18 Fernando Perez <fperez@colorado.edu>
2701
2700
2702 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2701 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2703 better message when 'exit' or 'quit' are typed (a common newbie
2702 better message when 'exit' or 'quit' are typed (a common newbie
2704 confusion).
2703 confusion).
2705
2704
2706 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2705 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2707 check for Windows users.
2706 check for Windows users.
2708
2707
2709 * IPython/iplib.py (InteractiveShell.user_setup): removed
2708 * IPython/iplib.py (InteractiveShell.user_setup): removed
2710 disabling of colors for Windows. I'll test at runtime and issue a
2709 disabling of colors for Windows. I'll test at runtime and issue a
2711 warning if Gary's readline isn't found, as to nudge users to
2710 warning if Gary's readline isn't found, as to nudge users to
2712 download it.
2711 download it.
2713
2712
2714 2004-06-16 Fernando Perez <fperez@colorado.edu>
2713 2004-06-16 Fernando Perez <fperez@colorado.edu>
2715
2714
2716 * IPython/genutils.py (Stream.__init__): changed to print errors
2715 * IPython/genutils.py (Stream.__init__): changed to print errors
2717 to sys.stderr. I had a circular dependency here. Now it's
2716 to sys.stderr. I had a circular dependency here. Now it's
2718 possible to run ipython as IDLE's shell (consider this pre-alpha,
2717 possible to run ipython as IDLE's shell (consider this pre-alpha,
2719 since true stdout things end up in the starting terminal instead
2718 since true stdout things end up in the starting terminal instead
2720 of IDLE's out).
2719 of IDLE's out).
2721
2720
2722 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2721 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2723 users who haven't # updated their prompt_in2 definitions. Remove
2722 users who haven't # updated their prompt_in2 definitions. Remove
2724 eventually.
2723 eventually.
2725 (multiple_replace): added credit to original ASPN recipe.
2724 (multiple_replace): added credit to original ASPN recipe.
2726
2725
2727 2004-06-15 Fernando Perez <fperez@colorado.edu>
2726 2004-06-15 Fernando Perez <fperez@colorado.edu>
2728
2727
2729 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2728 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2730 list of auto-defined aliases.
2729 list of auto-defined aliases.
2731
2730
2732 2004-06-13 Fernando Perez <fperez@colorado.edu>
2731 2004-06-13 Fernando Perez <fperez@colorado.edu>
2733
2732
2734 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2733 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2735 install was really requested (so setup.py can be used for other
2734 install was really requested (so setup.py can be used for other
2736 things under Windows).
2735 things under Windows).
2737
2736
2738 2004-06-10 Fernando Perez <fperez@colorado.edu>
2737 2004-06-10 Fernando Perez <fperez@colorado.edu>
2739
2738
2740 * IPython/Logger.py (Logger.create_log): Manually remove any old
2739 * IPython/Logger.py (Logger.create_log): Manually remove any old
2741 backup, since os.remove may fail under Windows. Fixes bug
2740 backup, since os.remove may fail under Windows. Fixes bug
2742 reported by Thorsten.
2741 reported by Thorsten.
2743
2742
2744 2004-06-09 Fernando Perez <fperez@colorado.edu>
2743 2004-06-09 Fernando Perez <fperez@colorado.edu>
2745
2744
2746 * examples/example-embed.py: fixed all references to %n (replaced
2745 * examples/example-embed.py: fixed all references to %n (replaced
2747 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2746 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2748 for all examples and the manual as well.
2747 for all examples and the manual as well.
2749
2748
2750 2004-06-08 Fernando Perez <fperez@colorado.edu>
2749 2004-06-08 Fernando Perez <fperez@colorado.edu>
2751
2750
2752 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2751 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2753 alignment and color management. All 3 prompt subsystems now
2752 alignment and color management. All 3 prompt subsystems now
2754 inherit from BasePrompt.
2753 inherit from BasePrompt.
2755
2754
2756 * tools/release: updates for windows installer build and tag rpms
2755 * tools/release: updates for windows installer build and tag rpms
2757 with python version (since paths are fixed).
2756 with python version (since paths are fixed).
2758
2757
2759 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2758 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2760 which will become eventually obsolete. Also fixed the default
2759 which will become eventually obsolete. Also fixed the default
2761 prompt_in2 to use \D, so at least new users start with the correct
2760 prompt_in2 to use \D, so at least new users start with the correct
2762 defaults.
2761 defaults.
2763 WARNING: Users with existing ipythonrc files will need to apply
2762 WARNING: Users with existing ipythonrc files will need to apply
2764 this fix manually!
2763 this fix manually!
2765
2764
2766 * setup.py: make windows installer (.exe). This is finally the
2765 * setup.py: make windows installer (.exe). This is finally the
2767 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2766 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2768 which I hadn't included because it required Python 2.3 (or recent
2767 which I hadn't included because it required Python 2.3 (or recent
2769 distutils).
2768 distutils).
2770
2769
2771 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2770 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2772 usage of new '\D' escape.
2771 usage of new '\D' escape.
2773
2772
2774 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2773 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2775 lacks os.getuid())
2774 lacks os.getuid())
2776 (CachedOutput.set_colors): Added the ability to turn coloring
2775 (CachedOutput.set_colors): Added the ability to turn coloring
2777 on/off with @colors even for manually defined prompt colors. It
2776 on/off with @colors even for manually defined prompt colors. It
2778 uses a nasty global, but it works safely and via the generic color
2777 uses a nasty global, but it works safely and via the generic color
2779 handling mechanism.
2778 handling mechanism.
2780 (Prompt2.__init__): Introduced new escape '\D' for continuation
2779 (Prompt2.__init__): Introduced new escape '\D' for continuation
2781 prompts. It represents the counter ('\#') as dots.
2780 prompts. It represents the counter ('\#') as dots.
2782 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2781 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2783 need to update their ipythonrc files and replace '%n' with '\D' in
2782 need to update their ipythonrc files and replace '%n' with '\D' in
2784 their prompt_in2 settings everywhere. Sorry, but there's
2783 their prompt_in2 settings everywhere. Sorry, but there's
2785 otherwise no clean way to get all prompts to properly align. The
2784 otherwise no clean way to get all prompts to properly align. The
2786 ipythonrc shipped with IPython has been updated.
2785 ipythonrc shipped with IPython has been updated.
2787
2786
2788 2004-06-07 Fernando Perez <fperez@colorado.edu>
2787 2004-06-07 Fernando Perez <fperez@colorado.edu>
2789
2788
2790 * setup.py (isfile): Pass local_icons option to latex2html, so the
2789 * setup.py (isfile): Pass local_icons option to latex2html, so the
2791 resulting HTML file is self-contained. Thanks to
2790 resulting HTML file is self-contained. Thanks to
2792 dryice-AT-liu.com.cn for the tip.
2791 dryice-AT-liu.com.cn for the tip.
2793
2792
2794 * pysh.py: I created a new profile 'shell', which implements a
2793 * pysh.py: I created a new profile 'shell', which implements a
2795 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2794 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2796 system shell, nor will it become one anytime soon. It's mainly
2795 system shell, nor will it become one anytime soon. It's mainly
2797 meant to illustrate the use of the new flexible bash-like prompts.
2796 meant to illustrate the use of the new flexible bash-like prompts.
2798 I guess it could be used by hardy souls for true shell management,
2797 I guess it could be used by hardy souls for true shell management,
2799 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2798 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2800 profile. This uses the InterpreterExec extension provided by
2799 profile. This uses the InterpreterExec extension provided by
2801 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2800 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2802
2801
2803 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2802 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2804 auto-align itself with the length of the previous input prompt
2803 auto-align itself with the length of the previous input prompt
2805 (taking into account the invisible color escapes).
2804 (taking into account the invisible color escapes).
2806 (CachedOutput.__init__): Large restructuring of this class. Now
2805 (CachedOutput.__init__): Large restructuring of this class. Now
2807 all three prompts (primary1, primary2, output) are proper objects,
2806 all three prompts (primary1, primary2, output) are proper objects,
2808 managed by the 'parent' CachedOutput class. The code is still a
2807 managed by the 'parent' CachedOutput class. The code is still a
2809 bit hackish (all prompts share state via a pointer to the cache),
2808 bit hackish (all prompts share state via a pointer to the cache),
2810 but it's overall far cleaner than before.
2809 but it's overall far cleaner than before.
2811
2810
2812 * IPython/genutils.py (getoutputerror): modified to add verbose,
2811 * IPython/genutils.py (getoutputerror): modified to add verbose,
2813 debug and header options. This makes the interface of all getout*
2812 debug and header options. This makes the interface of all getout*
2814 functions uniform.
2813 functions uniform.
2815 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2814 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2816
2815
2817 * IPython/Magic.py (Magic.default_option): added a function to
2816 * IPython/Magic.py (Magic.default_option): added a function to
2818 allow registering default options for any magic command. This
2817 allow registering default options for any magic command. This
2819 makes it easy to have profiles which customize the magics globally
2818 makes it easy to have profiles which customize the magics globally
2820 for a certain use. The values set through this function are
2819 for a certain use. The values set through this function are
2821 picked up by the parse_options() method, which all magics should
2820 picked up by the parse_options() method, which all magics should
2822 use to parse their options.
2821 use to parse their options.
2823
2822
2824 * IPython/genutils.py (warn): modified the warnings framework to
2823 * IPython/genutils.py (warn): modified the warnings framework to
2825 use the Term I/O class. I'm trying to slowly unify all of
2824 use the Term I/O class. I'm trying to slowly unify all of
2826 IPython's I/O operations to pass through Term.
2825 IPython's I/O operations to pass through Term.
2827
2826
2828 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2827 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2829 the secondary prompt to correctly match the length of the primary
2828 the secondary prompt to correctly match the length of the primary
2830 one for any prompt. Now multi-line code will properly line up
2829 one for any prompt. Now multi-line code will properly line up
2831 even for path dependent prompts, such as the new ones available
2830 even for path dependent prompts, such as the new ones available
2832 via the prompt_specials.
2831 via the prompt_specials.
2833
2832
2834 2004-06-06 Fernando Perez <fperez@colorado.edu>
2833 2004-06-06 Fernando Perez <fperez@colorado.edu>
2835
2834
2836 * IPython/Prompts.py (prompt_specials): Added the ability to have
2835 * IPython/Prompts.py (prompt_specials): Added the ability to have
2837 bash-like special sequences in the prompts, which get
2836 bash-like special sequences in the prompts, which get
2838 automatically expanded. Things like hostname, current working
2837 automatically expanded. Things like hostname, current working
2839 directory and username are implemented already, but it's easy to
2838 directory and username are implemented already, but it's easy to
2840 add more in the future. Thanks to a patch by W.J. van der Laan
2839 add more in the future. Thanks to a patch by W.J. van der Laan
2841 <gnufnork-AT-hetdigitalegat.nl>
2840 <gnufnork-AT-hetdigitalegat.nl>
2842 (prompt_specials): Added color support for prompt strings, so
2841 (prompt_specials): Added color support for prompt strings, so
2843 users can define arbitrary color setups for their prompts.
2842 users can define arbitrary color setups for their prompts.
2844
2843
2845 2004-06-05 Fernando Perez <fperez@colorado.edu>
2844 2004-06-05 Fernando Perez <fperez@colorado.edu>
2846
2845
2847 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2846 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2848 code to load Gary Bishop's readline and configure it
2847 code to load Gary Bishop's readline and configure it
2849 automatically. Thanks to Gary for help on this.
2848 automatically. Thanks to Gary for help on this.
2850
2849
2851 2004-06-01 Fernando Perez <fperez@colorado.edu>
2850 2004-06-01 Fernando Perez <fperez@colorado.edu>
2852
2851
2853 * IPython/Logger.py (Logger.create_log): fix bug for logging
2852 * IPython/Logger.py (Logger.create_log): fix bug for logging
2854 with no filename (previous fix was incomplete).
2853 with no filename (previous fix was incomplete).
2855
2854
2856 2004-05-25 Fernando Perez <fperez@colorado.edu>
2855 2004-05-25 Fernando Perez <fperez@colorado.edu>
2857
2856
2858 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2857 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2859 parens would get passed to the shell.
2858 parens would get passed to the shell.
2860
2859
2861 2004-05-20 Fernando Perez <fperez@colorado.edu>
2860 2004-05-20 Fernando Perez <fperez@colorado.edu>
2862
2861
2863 * IPython/Magic.py (Magic.magic_prun): changed default profile
2862 * IPython/Magic.py (Magic.magic_prun): changed default profile
2864 sort order to 'time' (the more common profiling need).
2863 sort order to 'time' (the more common profiling need).
2865
2864
2866 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2865 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2867 so that source code shown is guaranteed in sync with the file on
2866 so that source code shown is guaranteed in sync with the file on
2868 disk (also changed in psource). Similar fix to the one for
2867 disk (also changed in psource). Similar fix to the one for
2869 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2868 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2870 <yann.ledu-AT-noos.fr>.
2869 <yann.ledu-AT-noos.fr>.
2871
2870
2872 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2871 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2873 with a single option would not be correctly parsed. Closes
2872 with a single option would not be correctly parsed. Closes
2874 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2873 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2875 introduced in 0.6.0 (on 2004-05-06).
2874 introduced in 0.6.0 (on 2004-05-06).
2876
2875
2877 2004-05-13 *** Released version 0.6.0
2876 2004-05-13 *** Released version 0.6.0
2878
2877
2879 2004-05-13 Fernando Perez <fperez@colorado.edu>
2878 2004-05-13 Fernando Perez <fperez@colorado.edu>
2880
2879
2881 * debian/: Added debian/ directory to CVS, so that debian support
2880 * debian/: Added debian/ directory to CVS, so that debian support
2882 is publicly accessible. The debian package is maintained by Jack
2881 is publicly accessible. The debian package is maintained by Jack
2883 Moffit <jack-AT-xiph.org>.
2882 Moffit <jack-AT-xiph.org>.
2884
2883
2885 * Documentation: included the notes about an ipython-based system
2884 * Documentation: included the notes about an ipython-based system
2886 shell (the hypothetical 'pysh') into the new_design.pdf document,
2885 shell (the hypothetical 'pysh') into the new_design.pdf document,
2887 so that these ideas get distributed to users along with the
2886 so that these ideas get distributed to users along with the
2888 official documentation.
2887 official documentation.
2889
2888
2890 2004-05-10 Fernando Perez <fperez@colorado.edu>
2889 2004-05-10 Fernando Perez <fperez@colorado.edu>
2891
2890
2892 * IPython/Logger.py (Logger.create_log): fix recently introduced
2891 * IPython/Logger.py (Logger.create_log): fix recently introduced
2893 bug (misindented line) where logstart would fail when not given an
2892 bug (misindented line) where logstart would fail when not given an
2894 explicit filename.
2893 explicit filename.
2895
2894
2896 2004-05-09 Fernando Perez <fperez@colorado.edu>
2895 2004-05-09 Fernando Perez <fperez@colorado.edu>
2897
2896
2898 * IPython/Magic.py (Magic.parse_options): skip system call when
2897 * IPython/Magic.py (Magic.parse_options): skip system call when
2899 there are no options to look for. Faster, cleaner for the common
2898 there are no options to look for. Faster, cleaner for the common
2900 case.
2899 case.
2901
2900
2902 * Documentation: many updates to the manual: describing Windows
2901 * Documentation: many updates to the manual: describing Windows
2903 support better, Gnuplot updates, credits, misc small stuff. Also
2902 support better, Gnuplot updates, credits, misc small stuff. Also
2904 updated the new_design doc a bit.
2903 updated the new_design doc a bit.
2905
2904
2906 2004-05-06 *** Released version 0.6.0.rc1
2905 2004-05-06 *** Released version 0.6.0.rc1
2907
2906
2908 2004-05-06 Fernando Perez <fperez@colorado.edu>
2907 2004-05-06 Fernando Perez <fperez@colorado.edu>
2909
2908
2910 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2909 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2911 operations to use the vastly more efficient list/''.join() method.
2910 operations to use the vastly more efficient list/''.join() method.
2912 (FormattedTB.text): Fix
2911 (FormattedTB.text): Fix
2913 http://www.scipy.net/roundup/ipython/issue12 - exception source
2912 http://www.scipy.net/roundup/ipython/issue12 - exception source
2914 extract not updated after reload. Thanks to Mike Salib
2913 extract not updated after reload. Thanks to Mike Salib
2915 <msalib-AT-mit.edu> for pinning the source of the problem.
2914 <msalib-AT-mit.edu> for pinning the source of the problem.
2916 Fortunately, the solution works inside ipython and doesn't require
2915 Fortunately, the solution works inside ipython and doesn't require
2917 any changes to python proper.
2916 any changes to python proper.
2918
2917
2919 * IPython/Magic.py (Magic.parse_options): Improved to process the
2918 * IPython/Magic.py (Magic.parse_options): Improved to process the
2920 argument list as a true shell would (by actually using the
2919 argument list as a true shell would (by actually using the
2921 underlying system shell). This way, all @magics automatically get
2920 underlying system shell). This way, all @magics automatically get
2922 shell expansion for variables. Thanks to a comment by Alex
2921 shell expansion for variables. Thanks to a comment by Alex
2923 Schmolck.
2922 Schmolck.
2924
2923
2925 2004-04-04 Fernando Perez <fperez@colorado.edu>
2924 2004-04-04 Fernando Perez <fperez@colorado.edu>
2926
2925
2927 * IPython/iplib.py (InteractiveShell.interact): Added a special
2926 * IPython/iplib.py (InteractiveShell.interact): Added a special
2928 trap for a debugger quit exception, which is basically impossible
2927 trap for a debugger quit exception, which is basically impossible
2929 to handle by normal mechanisms, given what pdb does to the stack.
2928 to handle by normal mechanisms, given what pdb does to the stack.
2930 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2929 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2931
2930
2932 2004-04-03 Fernando Perez <fperez@colorado.edu>
2931 2004-04-03 Fernando Perez <fperez@colorado.edu>
2933
2932
2934 * IPython/genutils.py (Term): Standardized the names of the Term
2933 * IPython/genutils.py (Term): Standardized the names of the Term
2935 class streams to cin/cout/cerr, following C++ naming conventions
2934 class streams to cin/cout/cerr, following C++ naming conventions
2936 (I can't use in/out/err because 'in' is not a valid attribute
2935 (I can't use in/out/err because 'in' is not a valid attribute
2937 name).
2936 name).
2938
2937
2939 * IPython/iplib.py (InteractiveShell.interact): don't increment
2938 * IPython/iplib.py (InteractiveShell.interact): don't increment
2940 the prompt if there's no user input. By Daniel 'Dang' Griffith
2939 the prompt if there's no user input. By Daniel 'Dang' Griffith
2941 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2940 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2942 Francois Pinard.
2941 Francois Pinard.
2943
2942
2944 2004-04-02 Fernando Perez <fperez@colorado.edu>
2943 2004-04-02 Fernando Perez <fperez@colorado.edu>
2945
2944
2946 * IPython/genutils.py (Stream.__init__): Modified to survive at
2945 * IPython/genutils.py (Stream.__init__): Modified to survive at
2947 least importing in contexts where stdin/out/err aren't true file
2946 least importing in contexts where stdin/out/err aren't true file
2948 objects, such as PyCrust (they lack fileno() and mode). However,
2947 objects, such as PyCrust (they lack fileno() and mode). However,
2949 the recovery facilities which rely on these things existing will
2948 the recovery facilities which rely on these things existing will
2950 not work.
2949 not work.
2951
2950
2952 2004-04-01 Fernando Perez <fperez@colorado.edu>
2951 2004-04-01 Fernando Perez <fperez@colorado.edu>
2953
2952
2954 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2953 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2955 use the new getoutputerror() function, so it properly
2954 use the new getoutputerror() function, so it properly
2956 distinguishes stdout/err.
2955 distinguishes stdout/err.
2957
2956
2958 * IPython/genutils.py (getoutputerror): added a function to
2957 * IPython/genutils.py (getoutputerror): added a function to
2959 capture separately the standard output and error of a command.
2958 capture separately the standard output and error of a command.
2960 After a comment from dang on the mailing lists. This code is
2959 After a comment from dang on the mailing lists. This code is
2961 basically a modified version of commands.getstatusoutput(), from
2960 basically a modified version of commands.getstatusoutput(), from
2962 the standard library.
2961 the standard library.
2963
2962
2964 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2963 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2965 '!!' as a special syntax (shorthand) to access @sx.
2964 '!!' as a special syntax (shorthand) to access @sx.
2966
2965
2967 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2966 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2968 command and return its output as a list split on '\n'.
2967 command and return its output as a list split on '\n'.
2969
2968
2970 2004-03-31 Fernando Perez <fperez@colorado.edu>
2969 2004-03-31 Fernando Perez <fperez@colorado.edu>
2971
2970
2972 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2971 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2973 method to dictionaries used as FakeModule instances if they lack
2972 method to dictionaries used as FakeModule instances if they lack
2974 it. At least pydoc in python2.3 breaks for runtime-defined
2973 it. At least pydoc in python2.3 breaks for runtime-defined
2975 functions without this hack. At some point I need to _really_
2974 functions without this hack. At some point I need to _really_
2976 understand what FakeModule is doing, because it's a gross hack.
2975 understand what FakeModule is doing, because it's a gross hack.
2977 But it solves Arnd's problem for now...
2976 But it solves Arnd's problem for now...
2978
2977
2979 2004-02-27 Fernando Perez <fperez@colorado.edu>
2978 2004-02-27 Fernando Perez <fperez@colorado.edu>
2980
2979
2981 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2980 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2982 mode would behave erratically. Also increased the number of
2981 mode would behave erratically. Also increased the number of
2983 possible logs in rotate mod to 999. Thanks to Rod Holland
2982 possible logs in rotate mod to 999. Thanks to Rod Holland
2984 <rhh@StructureLABS.com> for the report and fixes.
2983 <rhh@StructureLABS.com> for the report and fixes.
2985
2984
2986 2004-02-26 Fernando Perez <fperez@colorado.edu>
2985 2004-02-26 Fernando Perez <fperez@colorado.edu>
2987
2986
2988 * IPython/genutils.py (page): Check that the curses module really
2987 * IPython/genutils.py (page): Check that the curses module really
2989 has the initscr attribute before trying to use it. For some
2988 has the initscr attribute before trying to use it. For some
2990 reason, the Solaris curses module is missing this. I think this
2989 reason, the Solaris curses module is missing this. I think this
2991 should be considered a Solaris python bug, but I'm not sure.
2990 should be considered a Solaris python bug, but I'm not sure.
2992
2991
2993 2004-01-17 Fernando Perez <fperez@colorado.edu>
2992 2004-01-17 Fernando Perez <fperez@colorado.edu>
2994
2993
2995 * IPython/genutils.py (Stream.__init__): Changes to try to make
2994 * IPython/genutils.py (Stream.__init__): Changes to try to make
2996 ipython robust against stdin/out/err being closed by the user.
2995 ipython robust against stdin/out/err being closed by the user.
2997 This is 'user error' (and blocks a normal python session, at least
2996 This is 'user error' (and blocks a normal python session, at least
2998 the stdout case). However, Ipython should be able to survive such
2997 the stdout case). However, Ipython should be able to survive such
2999 instances of abuse as gracefully as possible. To simplify the
2998 instances of abuse as gracefully as possible. To simplify the
3000 coding and maintain compatibility with Gary Bishop's Term
2999 coding and maintain compatibility with Gary Bishop's Term
3001 contributions, I've made use of classmethods for this. I think
3000 contributions, I've made use of classmethods for this. I think
3002 this introduces a dependency on python 2.2.
3001 this introduces a dependency on python 2.2.
3003
3002
3004 2004-01-13 Fernando Perez <fperez@colorado.edu>
3003 2004-01-13 Fernando Perez <fperez@colorado.edu>
3005
3004
3006 * IPython/numutils.py (exp_safe): simplified the code a bit and
3005 * IPython/numutils.py (exp_safe): simplified the code a bit and
3007 removed the need for importing the kinds module altogether.
3006 removed the need for importing the kinds module altogether.
3008
3007
3009 2004-01-06 Fernando Perez <fperez@colorado.edu>
3008 2004-01-06 Fernando Perez <fperez@colorado.edu>
3010
3009
3011 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3010 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3012 a magic function instead, after some community feedback. No
3011 a magic function instead, after some community feedback. No
3013 special syntax will exist for it, but its name is deliberately
3012 special syntax will exist for it, but its name is deliberately
3014 very short.
3013 very short.
3015
3014
3016 2003-12-20 Fernando Perez <fperez@colorado.edu>
3015 2003-12-20 Fernando Perez <fperez@colorado.edu>
3017
3016
3018 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3017 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3019 new functionality, to automagically assign the result of a shell
3018 new functionality, to automagically assign the result of a shell
3020 command to a variable. I'll solicit some community feedback on
3019 command to a variable. I'll solicit some community feedback on
3021 this before making it permanent.
3020 this before making it permanent.
3022
3021
3023 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3022 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3024 requested about callables for which inspect couldn't obtain a
3023 requested about callables for which inspect couldn't obtain a
3025 proper argspec. Thanks to a crash report sent by Etienne
3024 proper argspec. Thanks to a crash report sent by Etienne
3026 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3025 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3027
3026
3028 2003-12-09 Fernando Perez <fperez@colorado.edu>
3027 2003-12-09 Fernando Perez <fperez@colorado.edu>
3029
3028
3030 * IPython/genutils.py (page): patch for the pager to work across
3029 * IPython/genutils.py (page): patch for the pager to work across
3031 various versions of Windows. By Gary Bishop.
3030 various versions of Windows. By Gary Bishop.
3032
3031
3033 2003-12-04 Fernando Perez <fperez@colorado.edu>
3032 2003-12-04 Fernando Perez <fperez@colorado.edu>
3034
3033
3035 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3034 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3036 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3035 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3037 While I tested this and it looks ok, there may still be corner
3036 While I tested this and it looks ok, there may still be corner
3038 cases I've missed.
3037 cases I've missed.
3039
3038
3040 2003-12-01 Fernando Perez <fperez@colorado.edu>
3039 2003-12-01 Fernando Perez <fperez@colorado.edu>
3041
3040
3042 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3041 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3043 where a line like 'p,q=1,2' would fail because the automagic
3042 where a line like 'p,q=1,2' would fail because the automagic
3044 system would be triggered for @p.
3043 system would be triggered for @p.
3045
3044
3046 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3045 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3047 cleanups, code unmodified.
3046 cleanups, code unmodified.
3048
3047
3049 * IPython/genutils.py (Term): added a class for IPython to handle
3048 * IPython/genutils.py (Term): added a class for IPython to handle
3050 output. In most cases it will just be a proxy for stdout/err, but
3049 output. In most cases it will just be a proxy for stdout/err, but
3051 having this allows modifications to be made for some platforms,
3050 having this allows modifications to be made for some platforms,
3052 such as handling color escapes under Windows. All of this code
3051 such as handling color escapes under Windows. All of this code
3053 was contributed by Gary Bishop, with minor modifications by me.
3052 was contributed by Gary Bishop, with minor modifications by me.
3054 The actual changes affect many files.
3053 The actual changes affect many files.
3055
3054
3056 2003-11-30 Fernando Perez <fperez@colorado.edu>
3055 2003-11-30 Fernando Perez <fperez@colorado.edu>
3057
3056
3058 * IPython/iplib.py (file_matches): new completion code, courtesy
3057 * IPython/iplib.py (file_matches): new completion code, courtesy
3059 of Jeff Collins. This enables filename completion again under
3058 of Jeff Collins. This enables filename completion again under
3060 python 2.3, which disabled it at the C level.
3059 python 2.3, which disabled it at the C level.
3061
3060
3062 2003-11-11 Fernando Perez <fperez@colorado.edu>
3061 2003-11-11 Fernando Perez <fperez@colorado.edu>
3063
3062
3064 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3063 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3065 for Numeric.array(map(...)), but often convenient.
3064 for Numeric.array(map(...)), but often convenient.
3066
3065
3067 2003-11-05 Fernando Perez <fperez@colorado.edu>
3066 2003-11-05 Fernando Perez <fperez@colorado.edu>
3068
3067
3069 * IPython/numutils.py (frange): Changed a call from int() to
3068 * IPython/numutils.py (frange): Changed a call from int() to
3070 int(round()) to prevent a problem reported with arange() in the
3069 int(round()) to prevent a problem reported with arange() in the
3071 numpy list.
3070 numpy list.
3072
3071
3073 2003-10-06 Fernando Perez <fperez@colorado.edu>
3072 2003-10-06 Fernando Perez <fperez@colorado.edu>
3074
3073
3075 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3074 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3076 prevent crashes if sys lacks an argv attribute (it happens with
3075 prevent crashes if sys lacks an argv attribute (it happens with
3077 embedded interpreters which build a bare-bones sys module).
3076 embedded interpreters which build a bare-bones sys module).
3078 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3077 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3079
3078
3080 2003-09-24 Fernando Perez <fperez@colorado.edu>
3079 2003-09-24 Fernando Perez <fperez@colorado.edu>
3081
3080
3082 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3081 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3083 to protect against poorly written user objects where __getattr__
3082 to protect against poorly written user objects where __getattr__
3084 raises exceptions other than AttributeError. Thanks to a bug
3083 raises exceptions other than AttributeError. Thanks to a bug
3085 report by Oliver Sander <osander-AT-gmx.de>.
3084 report by Oliver Sander <osander-AT-gmx.de>.
3086
3085
3087 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3086 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3088 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3087 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3089
3088
3090 2003-09-09 Fernando Perez <fperez@colorado.edu>
3089 2003-09-09 Fernando Perez <fperez@colorado.edu>
3091
3090
3092 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3091 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3093 unpacking a list whith a callable as first element would
3092 unpacking a list whith a callable as first element would
3094 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3093 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3095 Collins.
3094 Collins.
3096
3095
3097 2003-08-25 *** Released version 0.5.0
3096 2003-08-25 *** Released version 0.5.0
3098
3097
3099 2003-08-22 Fernando Perez <fperez@colorado.edu>
3098 2003-08-22 Fernando Perez <fperez@colorado.edu>
3100
3099
3101 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3100 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3102 improperly defined user exceptions. Thanks to feedback from Mark
3101 improperly defined user exceptions. Thanks to feedback from Mark
3103 Russell <mrussell-AT-verio.net>.
3102 Russell <mrussell-AT-verio.net>.
3104
3103
3105 2003-08-20 Fernando Perez <fperez@colorado.edu>
3104 2003-08-20 Fernando Perez <fperez@colorado.edu>
3106
3105
3107 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3106 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3108 printing so that it would print multi-line string forms starting
3107 printing so that it would print multi-line string forms starting
3109 with a new line. This way the formatting is better respected for
3108 with a new line. This way the formatting is better respected for
3110 objects which work hard to make nice string forms.
3109 objects which work hard to make nice string forms.
3111
3110
3112 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3111 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3113 autocall would overtake data access for objects with both
3112 autocall would overtake data access for objects with both
3114 __getitem__ and __call__.
3113 __getitem__ and __call__.
3115
3114
3116 2003-08-19 *** Released version 0.5.0-rc1
3115 2003-08-19 *** Released version 0.5.0-rc1
3117
3116
3118 2003-08-19 Fernando Perez <fperez@colorado.edu>
3117 2003-08-19 Fernando Perez <fperez@colorado.edu>
3119
3118
3120 * IPython/deep_reload.py (load_tail): single tiny change here
3119 * IPython/deep_reload.py (load_tail): single tiny change here
3121 seems to fix the long-standing bug of dreload() failing to work
3120 seems to fix the long-standing bug of dreload() failing to work
3122 for dotted names. But this module is pretty tricky, so I may have
3121 for dotted names. But this module is pretty tricky, so I may have
3123 missed some subtlety. Needs more testing!.
3122 missed some subtlety. Needs more testing!.
3124
3123
3125 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3124 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3126 exceptions which have badly implemented __str__ methods.
3125 exceptions which have badly implemented __str__ methods.
3127 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3126 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3128 which I've been getting reports about from Python 2.3 users. I
3127 which I've been getting reports about from Python 2.3 users. I
3129 wish I had a simple test case to reproduce the problem, so I could
3128 wish I had a simple test case to reproduce the problem, so I could
3130 either write a cleaner workaround or file a bug report if
3129 either write a cleaner workaround or file a bug report if
3131 necessary.
3130 necessary.
3132
3131
3133 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3132 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3134 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3133 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3135 a bug report by Tjabo Kloppenburg.
3134 a bug report by Tjabo Kloppenburg.
3136
3135
3137 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3136 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3138 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3137 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3139 seems rather unstable. Thanks to a bug report by Tjabo
3138 seems rather unstable. Thanks to a bug report by Tjabo
3140 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3139 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3141
3140
3142 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3141 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3143 this out soon because of the critical fixes in the inner loop for
3142 this out soon because of the critical fixes in the inner loop for
3144 generators.
3143 generators.
3145
3144
3146 * IPython/Magic.py (Magic.getargspec): removed. This (and
3145 * IPython/Magic.py (Magic.getargspec): removed. This (and
3147 _get_def) have been obsoleted by OInspect for a long time, I
3146 _get_def) have been obsoleted by OInspect for a long time, I
3148 hadn't noticed that they were dead code.
3147 hadn't noticed that they were dead code.
3149 (Magic._ofind): restored _ofind functionality for a few literals
3148 (Magic._ofind): restored _ofind functionality for a few literals
3150 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3149 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3151 for things like "hello".capitalize?, since that would require a
3150 for things like "hello".capitalize?, since that would require a
3152 potentially dangerous eval() again.
3151 potentially dangerous eval() again.
3153
3152
3154 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3153 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3155 logic a bit more to clean up the escapes handling and minimize the
3154 logic a bit more to clean up the escapes handling and minimize the
3156 use of _ofind to only necessary cases. The interactive 'feel' of
3155 use of _ofind to only necessary cases. The interactive 'feel' of
3157 IPython should have improved quite a bit with the changes in
3156 IPython should have improved quite a bit with the changes in
3158 _prefilter and _ofind (besides being far safer than before).
3157 _prefilter and _ofind (besides being far safer than before).
3159
3158
3160 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3159 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3161 obscure, never reported). Edit would fail to find the object to
3160 obscure, never reported). Edit would fail to find the object to
3162 edit under some circumstances.
3161 edit under some circumstances.
3163 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3162 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3164 which were causing double-calling of generators. Those eval calls
3163 which were causing double-calling of generators. Those eval calls
3165 were _very_ dangerous, since code with side effects could be
3164 were _very_ dangerous, since code with side effects could be
3166 triggered. As they say, 'eval is evil'... These were the
3165 triggered. As they say, 'eval is evil'... These were the
3167 nastiest evals in IPython. Besides, _ofind is now far simpler,
3166 nastiest evals in IPython. Besides, _ofind is now far simpler,
3168 and it should also be quite a bit faster. Its use of inspect is
3167 and it should also be quite a bit faster. Its use of inspect is
3169 also safer, so perhaps some of the inspect-related crashes I've
3168 also safer, so perhaps some of the inspect-related crashes I've
3170 seen lately with Python 2.3 might be taken care of. That will
3169 seen lately with Python 2.3 might be taken care of. That will
3171 need more testing.
3170 need more testing.
3172
3171
3173 2003-08-17 Fernando Perez <fperez@colorado.edu>
3172 2003-08-17 Fernando Perez <fperez@colorado.edu>
3174
3173
3175 * IPython/iplib.py (InteractiveShell._prefilter): significant
3174 * IPython/iplib.py (InteractiveShell._prefilter): significant
3176 simplifications to the logic for handling user escapes. Faster
3175 simplifications to the logic for handling user escapes. Faster
3177 and simpler code.
3176 and simpler code.
3178
3177
3179 2003-08-14 Fernando Perez <fperez@colorado.edu>
3178 2003-08-14 Fernando Perez <fperez@colorado.edu>
3180
3179
3181 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3180 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3182 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3181 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3183 but it should be quite a bit faster. And the recursive version
3182 but it should be quite a bit faster. And the recursive version
3184 generated O(log N) intermediate storage for all rank>1 arrays,
3183 generated O(log N) intermediate storage for all rank>1 arrays,
3185 even if they were contiguous.
3184 even if they were contiguous.
3186 (l1norm): Added this function.
3185 (l1norm): Added this function.
3187 (norm): Added this function for arbitrary norms (including
3186 (norm): Added this function for arbitrary norms (including
3188 l-infinity). l1 and l2 are still special cases for convenience
3187 l-infinity). l1 and l2 are still special cases for convenience
3189 and speed.
3188 and speed.
3190
3189
3191 2003-08-03 Fernando Perez <fperez@colorado.edu>
3190 2003-08-03 Fernando Perez <fperez@colorado.edu>
3192
3191
3193 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3192 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3194 exceptions, which now raise PendingDeprecationWarnings in Python
3193 exceptions, which now raise PendingDeprecationWarnings in Python
3195 2.3. There were some in Magic and some in Gnuplot2.
3194 2.3. There were some in Magic and some in Gnuplot2.
3196
3195
3197 2003-06-30 Fernando Perez <fperez@colorado.edu>
3196 2003-06-30 Fernando Perez <fperez@colorado.edu>
3198
3197
3199 * IPython/genutils.py (page): modified to call curses only for
3198 * IPython/genutils.py (page): modified to call curses only for
3200 terminals where TERM=='xterm'. After problems under many other
3199 terminals where TERM=='xterm'. After problems under many other
3201 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3200 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3202
3201
3203 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3202 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3204 would be triggered when readline was absent. This was just an old
3203 would be triggered when readline was absent. This was just an old
3205 debugging statement I'd forgotten to take out.
3204 debugging statement I'd forgotten to take out.
3206
3205
3207 2003-06-20 Fernando Perez <fperez@colorado.edu>
3206 2003-06-20 Fernando Perez <fperez@colorado.edu>
3208
3207
3209 * IPython/genutils.py (clock): modified to return only user time
3208 * IPython/genutils.py (clock): modified to return only user time
3210 (not counting system time), after a discussion on scipy. While
3209 (not counting system time), after a discussion on scipy. While
3211 system time may be a useful quantity occasionally, it may much
3210 system time may be a useful quantity occasionally, it may much
3212 more easily be skewed by occasional swapping or other similar
3211 more easily be skewed by occasional swapping or other similar
3213 activity.
3212 activity.
3214
3213
3215 2003-06-05 Fernando Perez <fperez@colorado.edu>
3214 2003-06-05 Fernando Perez <fperez@colorado.edu>
3216
3215
3217 * IPython/numutils.py (identity): new function, for building
3216 * IPython/numutils.py (identity): new function, for building
3218 arbitrary rank Kronecker deltas (mostly backwards compatible with
3217 arbitrary rank Kronecker deltas (mostly backwards compatible with
3219 Numeric.identity)
3218 Numeric.identity)
3220
3219
3221 2003-06-03 Fernando Perez <fperez@colorado.edu>
3220 2003-06-03 Fernando Perez <fperez@colorado.edu>
3222
3221
3223 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3222 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3224 arguments passed to magics with spaces, to allow trailing '\' to
3223 arguments passed to magics with spaces, to allow trailing '\' to
3225 work normally (mainly for Windows users).
3224 work normally (mainly for Windows users).
3226
3225
3227 2003-05-29 Fernando Perez <fperez@colorado.edu>
3226 2003-05-29 Fernando Perez <fperez@colorado.edu>
3228
3227
3229 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3228 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3230 instead of pydoc.help. This fixes a bizarre behavior where
3229 instead of pydoc.help. This fixes a bizarre behavior where
3231 printing '%s' % locals() would trigger the help system. Now
3230 printing '%s' % locals() would trigger the help system. Now
3232 ipython behaves like normal python does.
3231 ipython behaves like normal python does.
3233
3232
3234 Note that if one does 'from pydoc import help', the bizarre
3233 Note that if one does 'from pydoc import help', the bizarre
3235 behavior returns, but this will also happen in normal python, so
3234 behavior returns, but this will also happen in normal python, so
3236 it's not an ipython bug anymore (it has to do with how pydoc.help
3235 it's not an ipython bug anymore (it has to do with how pydoc.help
3237 is implemented).
3236 is implemented).
3238
3237
3239 2003-05-22 Fernando Perez <fperez@colorado.edu>
3238 2003-05-22 Fernando Perez <fperez@colorado.edu>
3240
3239
3241 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3240 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3242 return [] instead of None when nothing matches, also match to end
3241 return [] instead of None when nothing matches, also match to end
3243 of line. Patch by Gary Bishop.
3242 of line. Patch by Gary Bishop.
3244
3243
3245 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3244 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3246 protection as before, for files passed on the command line. This
3245 protection as before, for files passed on the command line. This
3247 prevents the CrashHandler from kicking in if user files call into
3246 prevents the CrashHandler from kicking in if user files call into
3248 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3247 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3249 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3248 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3250
3249
3251 2003-05-20 *** Released version 0.4.0
3250 2003-05-20 *** Released version 0.4.0
3252
3251
3253 2003-05-20 Fernando Perez <fperez@colorado.edu>
3252 2003-05-20 Fernando Perez <fperez@colorado.edu>
3254
3253
3255 * setup.py: added support for manpages. It's a bit hackish b/c of
3254 * setup.py: added support for manpages. It's a bit hackish b/c of
3256 a bug in the way the bdist_rpm distutils target handles gzipped
3255 a bug in the way the bdist_rpm distutils target handles gzipped
3257 manpages, but it works. After a patch by Jack.
3256 manpages, but it works. After a patch by Jack.
3258
3257
3259 2003-05-19 Fernando Perez <fperez@colorado.edu>
3258 2003-05-19 Fernando Perez <fperez@colorado.edu>
3260
3259
3261 * IPython/numutils.py: added a mockup of the kinds module, since
3260 * IPython/numutils.py: added a mockup of the kinds module, since
3262 it was recently removed from Numeric. This way, numutils will
3261 it was recently removed from Numeric. This way, numutils will
3263 work for all users even if they are missing kinds.
3262 work for all users even if they are missing kinds.
3264
3263
3265 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3264 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3266 failure, which can occur with SWIG-wrapped extensions. After a
3265 failure, which can occur with SWIG-wrapped extensions. After a
3267 crash report from Prabhu.
3266 crash report from Prabhu.
3268
3267
3269 2003-05-16 Fernando Perez <fperez@colorado.edu>
3268 2003-05-16 Fernando Perez <fperez@colorado.edu>
3270
3269
3271 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3270 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3272 protect ipython from user code which may call directly
3271 protect ipython from user code which may call directly
3273 sys.excepthook (this looks like an ipython crash to the user, even
3272 sys.excepthook (this looks like an ipython crash to the user, even
3274 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3273 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3275 This is especially important to help users of WxWindows, but may
3274 This is especially important to help users of WxWindows, but may
3276 also be useful in other cases.
3275 also be useful in other cases.
3277
3276
3278 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3277 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3279 an optional tb_offset to be specified, and to preserve exception
3278 an optional tb_offset to be specified, and to preserve exception
3280 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3279 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3281
3280
3282 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3281 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3283
3282
3284 2003-05-15 Fernando Perez <fperez@colorado.edu>
3283 2003-05-15 Fernando Perez <fperez@colorado.edu>
3285
3284
3286 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3285 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3287 installing for a new user under Windows.
3286 installing for a new user under Windows.
3288
3287
3289 2003-05-12 Fernando Perez <fperez@colorado.edu>
3288 2003-05-12 Fernando Perez <fperez@colorado.edu>
3290
3289
3291 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3290 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3292 handler for Emacs comint-based lines. Currently it doesn't do
3291 handler for Emacs comint-based lines. Currently it doesn't do
3293 much (but importantly, it doesn't update the history cache). In
3292 much (but importantly, it doesn't update the history cache). In
3294 the future it may be expanded if Alex needs more functionality
3293 the future it may be expanded if Alex needs more functionality
3295 there.
3294 there.
3296
3295
3297 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3296 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3298 info to crash reports.
3297 info to crash reports.
3299
3298
3300 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3299 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3301 just like Python's -c. Also fixed crash with invalid -color
3300 just like Python's -c. Also fixed crash with invalid -color
3302 option value at startup. Thanks to Will French
3301 option value at startup. Thanks to Will French
3303 <wfrench-AT-bestweb.net> for the bug report.
3302 <wfrench-AT-bestweb.net> for the bug report.
3304
3303
3305 2003-05-09 Fernando Perez <fperez@colorado.edu>
3304 2003-05-09 Fernando Perez <fperez@colorado.edu>
3306
3305
3307 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3306 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3308 to EvalDict (it's a mapping, after all) and simplified its code
3307 to EvalDict (it's a mapping, after all) and simplified its code
3309 quite a bit, after a nice discussion on c.l.py where Gustavo
3308 quite a bit, after a nice discussion on c.l.py where Gustavo
3310 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3309 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3311
3310
3312 2003-04-30 Fernando Perez <fperez@colorado.edu>
3311 2003-04-30 Fernando Perez <fperez@colorado.edu>
3313
3312
3314 * IPython/genutils.py (timings_out): modified it to reduce its
3313 * IPython/genutils.py (timings_out): modified it to reduce its
3315 overhead in the common reps==1 case.
3314 overhead in the common reps==1 case.
3316
3315
3317 2003-04-29 Fernando Perez <fperez@colorado.edu>
3316 2003-04-29 Fernando Perez <fperez@colorado.edu>
3318
3317
3319 * IPython/genutils.py (timings_out): Modified to use the resource
3318 * IPython/genutils.py (timings_out): Modified to use the resource
3320 module, which avoids the wraparound problems of time.clock().
3319 module, which avoids the wraparound problems of time.clock().
3321
3320
3322 2003-04-17 *** Released version 0.2.15pre4
3321 2003-04-17 *** Released version 0.2.15pre4
3323
3322
3324 2003-04-17 Fernando Perez <fperez@colorado.edu>
3323 2003-04-17 Fernando Perez <fperez@colorado.edu>
3325
3324
3326 * setup.py (scriptfiles): Split windows-specific stuff over to a
3325 * setup.py (scriptfiles): Split windows-specific stuff over to a
3327 separate file, in an attempt to have a Windows GUI installer.
3326 separate file, in an attempt to have a Windows GUI installer.
3328 That didn't work, but part of the groundwork is done.
3327 That didn't work, but part of the groundwork is done.
3329
3328
3330 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3329 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3331 indent/unindent with 4 spaces. Particularly useful in combination
3330 indent/unindent with 4 spaces. Particularly useful in combination
3332 with the new auto-indent option.
3331 with the new auto-indent option.
3333
3332
3334 2003-04-16 Fernando Perez <fperez@colorado.edu>
3333 2003-04-16 Fernando Perez <fperez@colorado.edu>
3335
3334
3336 * IPython/Magic.py: various replacements of self.rc for
3335 * IPython/Magic.py: various replacements of self.rc for
3337 self.shell.rc. A lot more remains to be done to fully disentangle
3336 self.shell.rc. A lot more remains to be done to fully disentangle
3338 this class from the main Shell class.
3337 this class from the main Shell class.
3339
3338
3340 * IPython/GnuplotRuntime.py: added checks for mouse support so
3339 * IPython/GnuplotRuntime.py: added checks for mouse support so
3341 that we don't try to enable it if the current gnuplot doesn't
3340 that we don't try to enable it if the current gnuplot doesn't
3342 really support it. Also added checks so that we don't try to
3341 really support it. Also added checks so that we don't try to
3343 enable persist under Windows (where Gnuplot doesn't recognize the
3342 enable persist under Windows (where Gnuplot doesn't recognize the
3344 option).
3343 option).
3345
3344
3346 * IPython/iplib.py (InteractiveShell.interact): Added optional
3345 * IPython/iplib.py (InteractiveShell.interact): Added optional
3347 auto-indenting code, after a patch by King C. Shu
3346 auto-indenting code, after a patch by King C. Shu
3348 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3347 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3349 get along well with pasting indented code. If I ever figure out
3348 get along well with pasting indented code. If I ever figure out
3350 how to make that part go well, it will become on by default.
3349 how to make that part go well, it will become on by default.
3351
3350
3352 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3351 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3353 crash ipython if there was an unmatched '%' in the user's prompt
3352 crash ipython if there was an unmatched '%' in the user's prompt
3354 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3353 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3355
3354
3356 * IPython/iplib.py (InteractiveShell.interact): removed the
3355 * IPython/iplib.py (InteractiveShell.interact): removed the
3357 ability to ask the user whether he wants to crash or not at the
3356 ability to ask the user whether he wants to crash or not at the
3358 'last line' exception handler. Calling functions at that point
3357 'last line' exception handler. Calling functions at that point
3359 changes the stack, and the error reports would have incorrect
3358 changes the stack, and the error reports would have incorrect
3360 tracebacks.
3359 tracebacks.
3361
3360
3362 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3361 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3363 pass through a peger a pretty-printed form of any object. After a
3362 pass through a peger a pretty-printed form of any object. After a
3364 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3363 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3365
3364
3366 2003-04-14 Fernando Perez <fperez@colorado.edu>
3365 2003-04-14 Fernando Perez <fperez@colorado.edu>
3367
3366
3368 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3367 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3369 all files in ~ would be modified at first install (instead of
3368 all files in ~ would be modified at first install (instead of
3370 ~/.ipython). This could be potentially disastrous, as the
3369 ~/.ipython). This could be potentially disastrous, as the
3371 modification (make line-endings native) could damage binary files.
3370 modification (make line-endings native) could damage binary files.
3372
3371
3373 2003-04-10 Fernando Perez <fperez@colorado.edu>
3372 2003-04-10 Fernando Perez <fperez@colorado.edu>
3374
3373
3375 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3374 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3376 handle only lines which are invalid python. This now means that
3375 handle only lines which are invalid python. This now means that
3377 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3376 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3378 for the bug report.
3377 for the bug report.
3379
3378
3380 2003-04-01 Fernando Perez <fperez@colorado.edu>
3379 2003-04-01 Fernando Perez <fperez@colorado.edu>
3381
3380
3382 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3381 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3383 where failing to set sys.last_traceback would crash pdb.pm().
3382 where failing to set sys.last_traceback would crash pdb.pm().
3384 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3383 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3385 report.
3384 report.
3386
3385
3387 2003-03-25 Fernando Perez <fperez@colorado.edu>
3386 2003-03-25 Fernando Perez <fperez@colorado.edu>
3388
3387
3389 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3388 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3390 before printing it (it had a lot of spurious blank lines at the
3389 before printing it (it had a lot of spurious blank lines at the
3391 end).
3390 end).
3392
3391
3393 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3392 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3394 output would be sent 21 times! Obviously people don't use this
3393 output would be sent 21 times! Obviously people don't use this
3395 too often, or I would have heard about it.
3394 too often, or I would have heard about it.
3396
3395
3397 2003-03-24 Fernando Perez <fperez@colorado.edu>
3396 2003-03-24 Fernando Perez <fperez@colorado.edu>
3398
3397
3399 * setup.py (scriptfiles): renamed the data_files parameter from
3398 * setup.py (scriptfiles): renamed the data_files parameter from
3400 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3399 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3401 for the patch.
3400 for the patch.
3402
3401
3403 2003-03-20 Fernando Perez <fperez@colorado.edu>
3402 2003-03-20 Fernando Perez <fperez@colorado.edu>
3404
3403
3405 * IPython/genutils.py (error): added error() and fatal()
3404 * IPython/genutils.py (error): added error() and fatal()
3406 functions.
3405 functions.
3407
3406
3408 2003-03-18 *** Released version 0.2.15pre3
3407 2003-03-18 *** Released version 0.2.15pre3
3409
3408
3410 2003-03-18 Fernando Perez <fperez@colorado.edu>
3409 2003-03-18 Fernando Perez <fperez@colorado.edu>
3411
3410
3412 * setupext/install_data_ext.py
3411 * setupext/install_data_ext.py
3413 (install_data_ext.initialize_options): Class contributed by Jack
3412 (install_data_ext.initialize_options): Class contributed by Jack
3414 Moffit for fixing the old distutils hack. He is sending this to
3413 Moffit for fixing the old distutils hack. He is sending this to
3415 the distutils folks so in the future we may not need it as a
3414 the distutils folks so in the future we may not need it as a
3416 private fix.
3415 private fix.
3417
3416
3418 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3417 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3419 changes for Debian packaging. See his patch for full details.
3418 changes for Debian packaging. See his patch for full details.
3420 The old distutils hack of making the ipythonrc* files carry a
3419 The old distutils hack of making the ipythonrc* files carry a
3421 bogus .py extension is gone, at last. Examples were moved to a
3420 bogus .py extension is gone, at last. Examples were moved to a
3422 separate subdir under doc/, and the separate executable scripts
3421 separate subdir under doc/, and the separate executable scripts
3423 now live in their own directory. Overall a great cleanup. The
3422 now live in their own directory. Overall a great cleanup. The
3424 manual was updated to use the new files, and setup.py has been
3423 manual was updated to use the new files, and setup.py has been
3425 fixed for this setup.
3424 fixed for this setup.
3426
3425
3427 * IPython/PyColorize.py (Parser.usage): made non-executable and
3426 * IPython/PyColorize.py (Parser.usage): made non-executable and
3428 created a pycolor wrapper around it to be included as a script.
3427 created a pycolor wrapper around it to be included as a script.
3429
3428
3430 2003-03-12 *** Released version 0.2.15pre2
3429 2003-03-12 *** Released version 0.2.15pre2
3431
3430
3432 2003-03-12 Fernando Perez <fperez@colorado.edu>
3431 2003-03-12 Fernando Perez <fperez@colorado.edu>
3433
3432
3434 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3433 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3435 long-standing problem with garbage characters in some terminals.
3434 long-standing problem with garbage characters in some terminals.
3436 The issue was really that the \001 and \002 escapes must _only_ be
3435 The issue was really that the \001 and \002 escapes must _only_ be
3437 passed to input prompts (which call readline), but _never_ to
3436 passed to input prompts (which call readline), but _never_ to
3438 normal text to be printed on screen. I changed ColorANSI to have
3437 normal text to be printed on screen. I changed ColorANSI to have
3439 two classes: TermColors and InputTermColors, each with the
3438 two classes: TermColors and InputTermColors, each with the
3440 appropriate escapes for input prompts or normal text. The code in
3439 appropriate escapes for input prompts or normal text. The code in
3441 Prompts.py got slightly more complicated, but this very old and
3440 Prompts.py got slightly more complicated, but this very old and
3442 annoying bug is finally fixed.
3441 annoying bug is finally fixed.
3443
3442
3444 All the credit for nailing down the real origin of this problem
3443 All the credit for nailing down the real origin of this problem
3445 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3444 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3446 *Many* thanks to him for spending quite a bit of effort on this.
3445 *Many* thanks to him for spending quite a bit of effort on this.
3447
3446
3448 2003-03-05 *** Released version 0.2.15pre1
3447 2003-03-05 *** Released version 0.2.15pre1
3449
3448
3450 2003-03-03 Fernando Perez <fperez@colorado.edu>
3449 2003-03-03 Fernando Perez <fperez@colorado.edu>
3451
3450
3452 * IPython/FakeModule.py: Moved the former _FakeModule to a
3451 * IPython/FakeModule.py: Moved the former _FakeModule to a
3453 separate file, because it's also needed by Magic (to fix a similar
3452 separate file, because it's also needed by Magic (to fix a similar
3454 pickle-related issue in @run).
3453 pickle-related issue in @run).
3455
3454
3456 2003-03-02 Fernando Perez <fperez@colorado.edu>
3455 2003-03-02 Fernando Perez <fperez@colorado.edu>
3457
3456
3458 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3457 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3459 the autocall option at runtime.
3458 the autocall option at runtime.
3460 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3459 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3461 across Magic.py to start separating Magic from InteractiveShell.
3460 across Magic.py to start separating Magic from InteractiveShell.
3462 (Magic._ofind): Fixed to return proper namespace for dotted
3461 (Magic._ofind): Fixed to return proper namespace for dotted
3463 names. Before, a dotted name would always return 'not currently
3462 names. Before, a dotted name would always return 'not currently
3464 defined', because it would find the 'parent'. s.x would be found,
3463 defined', because it would find the 'parent'. s.x would be found,
3465 but since 'x' isn't defined by itself, it would get confused.
3464 but since 'x' isn't defined by itself, it would get confused.
3466 (Magic.magic_run): Fixed pickling problems reported by Ralf
3465 (Magic.magic_run): Fixed pickling problems reported by Ralf
3467 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3466 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3468 that I'd used when Mike Heeter reported similar issues at the
3467 that I'd used when Mike Heeter reported similar issues at the
3469 top-level, but now for @run. It boils down to injecting the
3468 top-level, but now for @run. It boils down to injecting the
3470 namespace where code is being executed with something that looks
3469 namespace where code is being executed with something that looks
3471 enough like a module to fool pickle.dump(). Since a pickle stores
3470 enough like a module to fool pickle.dump(). Since a pickle stores
3472 a named reference to the importing module, we need this for
3471 a named reference to the importing module, we need this for
3473 pickles to save something sensible.
3472 pickles to save something sensible.
3474
3473
3475 * IPython/ipmaker.py (make_IPython): added an autocall option.
3474 * IPython/ipmaker.py (make_IPython): added an autocall option.
3476
3475
3477 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3476 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3478 the auto-eval code. Now autocalling is an option, and the code is
3477 the auto-eval code. Now autocalling is an option, and the code is
3479 also vastly safer. There is no more eval() involved at all.
3478 also vastly safer. There is no more eval() involved at all.
3480
3479
3481 2003-03-01 Fernando Perez <fperez@colorado.edu>
3480 2003-03-01 Fernando Perez <fperez@colorado.edu>
3482
3481
3483 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3482 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3484 dict with named keys instead of a tuple.
3483 dict with named keys instead of a tuple.
3485
3484
3486 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3485 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3487
3486
3488 * setup.py (make_shortcut): Fixed message about directories
3487 * setup.py (make_shortcut): Fixed message about directories
3489 created during Windows installation (the directories were ok, just
3488 created during Windows installation (the directories were ok, just
3490 the printed message was misleading). Thanks to Chris Liechti
3489 the printed message was misleading). Thanks to Chris Liechti
3491 <cliechti-AT-gmx.net> for the heads up.
3490 <cliechti-AT-gmx.net> for the heads up.
3492
3491
3493 2003-02-21 Fernando Perez <fperez@colorado.edu>
3492 2003-02-21 Fernando Perez <fperez@colorado.edu>
3494
3493
3495 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3494 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3496 of ValueError exception when checking for auto-execution. This
3495 of ValueError exception when checking for auto-execution. This
3497 one is raised by things like Numeric arrays arr.flat when the
3496 one is raised by things like Numeric arrays arr.flat when the
3498 array is non-contiguous.
3497 array is non-contiguous.
3499
3498
3500 2003-01-31 Fernando Perez <fperez@colorado.edu>
3499 2003-01-31 Fernando Perez <fperez@colorado.edu>
3501
3500
3502 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3501 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3503 not return any value at all (even though the command would get
3502 not return any value at all (even though the command would get
3504 executed).
3503 executed).
3505 (xsys): Flush stdout right after printing the command to ensure
3504 (xsys): Flush stdout right after printing the command to ensure
3506 proper ordering of commands and command output in the total
3505 proper ordering of commands and command output in the total
3507 output.
3506 output.
3508 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3507 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3509 system/getoutput as defaults. The old ones are kept for
3508 system/getoutput as defaults. The old ones are kept for
3510 compatibility reasons, so no code which uses this library needs
3509 compatibility reasons, so no code which uses this library needs
3511 changing.
3510 changing.
3512
3511
3513 2003-01-27 *** Released version 0.2.14
3512 2003-01-27 *** Released version 0.2.14
3514
3513
3515 2003-01-25 Fernando Perez <fperez@colorado.edu>
3514 2003-01-25 Fernando Perez <fperez@colorado.edu>
3516
3515
3517 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3516 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3518 functions defined in previous edit sessions could not be re-edited
3517 functions defined in previous edit sessions could not be re-edited
3519 (because the temp files were immediately removed). Now temp files
3518 (because the temp files were immediately removed). Now temp files
3520 are removed only at IPython's exit.
3519 are removed only at IPython's exit.
3521 (Magic.magic_run): Improved @run to perform shell-like expansions
3520 (Magic.magic_run): Improved @run to perform shell-like expansions
3522 on its arguments (~users and $VARS). With this, @run becomes more
3521 on its arguments (~users and $VARS). With this, @run becomes more
3523 like a normal command-line.
3522 like a normal command-line.
3524
3523
3525 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3524 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3526 bugs related to embedding and cleaned up that code. A fairly
3525 bugs related to embedding and cleaned up that code. A fairly
3527 important one was the impossibility to access the global namespace
3526 important one was the impossibility to access the global namespace
3528 through the embedded IPython (only local variables were visible).
3527 through the embedded IPython (only local variables were visible).
3529
3528
3530 2003-01-14 Fernando Perez <fperez@colorado.edu>
3529 2003-01-14 Fernando Perez <fperez@colorado.edu>
3531
3530
3532 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3531 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3533 auto-calling to be a bit more conservative. Now it doesn't get
3532 auto-calling to be a bit more conservative. Now it doesn't get
3534 triggered if any of '!=()<>' are in the rest of the input line, to
3533 triggered if any of '!=()<>' are in the rest of the input line, to
3535 allow comparing callables. Thanks to Alex for the heads up.
3534 allow comparing callables. Thanks to Alex for the heads up.
3536
3535
3537 2003-01-07 Fernando Perez <fperez@colorado.edu>
3536 2003-01-07 Fernando Perez <fperez@colorado.edu>
3538
3537
3539 * IPython/genutils.py (page): fixed estimation of the number of
3538 * IPython/genutils.py (page): fixed estimation of the number of
3540 lines in a string to be paged to simply count newlines. This
3539 lines in a string to be paged to simply count newlines. This
3541 prevents over-guessing due to embedded escape sequences. A better
3540 prevents over-guessing due to embedded escape sequences. A better
3542 long-term solution would involve stripping out the control chars
3541 long-term solution would involve stripping out the control chars
3543 for the count, but it's potentially so expensive I just don't
3542 for the count, but it's potentially so expensive I just don't
3544 think it's worth doing.
3543 think it's worth doing.
3545
3544
3546 2002-12-19 *** Released version 0.2.14pre50
3545 2002-12-19 *** Released version 0.2.14pre50
3547
3546
3548 2002-12-19 Fernando Perez <fperez@colorado.edu>
3547 2002-12-19 Fernando Perez <fperez@colorado.edu>
3549
3548
3550 * tools/release (version): Changed release scripts to inform
3549 * tools/release (version): Changed release scripts to inform
3551 Andrea and build a NEWS file with a list of recent changes.
3550 Andrea and build a NEWS file with a list of recent changes.
3552
3551
3553 * IPython/ColorANSI.py (__all__): changed terminal detection
3552 * IPython/ColorANSI.py (__all__): changed terminal detection
3554 code. Seems to work better for xterms without breaking
3553 code. Seems to work better for xterms without breaking
3555 konsole. Will need more testing to determine if WinXP and Mac OSX
3554 konsole. Will need more testing to determine if WinXP and Mac OSX
3556 also work ok.
3555 also work ok.
3557
3556
3558 2002-12-18 *** Released version 0.2.14pre49
3557 2002-12-18 *** Released version 0.2.14pre49
3559
3558
3560 2002-12-18 Fernando Perez <fperez@colorado.edu>
3559 2002-12-18 Fernando Perez <fperez@colorado.edu>
3561
3560
3562 * Docs: added new info about Mac OSX, from Andrea.
3561 * Docs: added new info about Mac OSX, from Andrea.
3563
3562
3564 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3563 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3565 allow direct plotting of python strings whose format is the same
3564 allow direct plotting of python strings whose format is the same
3566 of gnuplot data files.
3565 of gnuplot data files.
3567
3566
3568 2002-12-16 Fernando Perez <fperez@colorado.edu>
3567 2002-12-16 Fernando Perez <fperez@colorado.edu>
3569
3568
3570 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3569 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3571 value of exit question to be acknowledged.
3570 value of exit question to be acknowledged.
3572
3571
3573 2002-12-03 Fernando Perez <fperez@colorado.edu>
3572 2002-12-03 Fernando Perez <fperez@colorado.edu>
3574
3573
3575 * IPython/ipmaker.py: removed generators, which had been added
3574 * IPython/ipmaker.py: removed generators, which had been added
3576 by mistake in an earlier debugging run. This was causing trouble
3575 by mistake in an earlier debugging run. This was causing trouble
3577 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3576 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3578 for pointing this out.
3577 for pointing this out.
3579
3578
3580 2002-11-17 Fernando Perez <fperez@colorado.edu>
3579 2002-11-17 Fernando Perez <fperez@colorado.edu>
3581
3580
3582 * Manual: updated the Gnuplot section.
3581 * Manual: updated the Gnuplot section.
3583
3582
3584 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3583 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3585 a much better split of what goes in Runtime and what goes in
3584 a much better split of what goes in Runtime and what goes in
3586 Interactive.
3585 Interactive.
3587
3586
3588 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3587 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3589 being imported from iplib.
3588 being imported from iplib.
3590
3589
3591 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3590 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3592 for command-passing. Now the global Gnuplot instance is called
3591 for command-passing. Now the global Gnuplot instance is called
3593 'gp' instead of 'g', which was really a far too fragile and
3592 'gp' instead of 'g', which was really a far too fragile and
3594 common name.
3593 common name.
3595
3594
3596 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3595 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3597 bounding boxes generated by Gnuplot for square plots.
3596 bounding boxes generated by Gnuplot for square plots.
3598
3597
3599 * IPython/genutils.py (popkey): new function added. I should
3598 * IPython/genutils.py (popkey): new function added. I should
3600 suggest this on c.l.py as a dict method, it seems useful.
3599 suggest this on c.l.py as a dict method, it seems useful.
3601
3600
3602 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3601 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3603 to transparently handle PostScript generation. MUCH better than
3602 to transparently handle PostScript generation. MUCH better than
3604 the previous plot_eps/replot_eps (which I removed now). The code
3603 the previous plot_eps/replot_eps (which I removed now). The code
3605 is also fairly clean and well documented now (including
3604 is also fairly clean and well documented now (including
3606 docstrings).
3605 docstrings).
3607
3606
3608 2002-11-13 Fernando Perez <fperez@colorado.edu>
3607 2002-11-13 Fernando Perez <fperez@colorado.edu>
3609
3608
3610 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3609 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3611 (inconsistent with options).
3610 (inconsistent with options).
3612
3611
3613 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3612 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3614 manually disabled, I don't know why. Fixed it.
3613 manually disabled, I don't know why. Fixed it.
3615 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3614 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3616 eps output.
3615 eps output.
3617
3616
3618 2002-11-12 Fernando Perez <fperez@colorado.edu>
3617 2002-11-12 Fernando Perez <fperez@colorado.edu>
3619
3618
3620 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3619 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3621 don't propagate up to caller. Fixes crash reported by François
3620 don't propagate up to caller. Fixes crash reported by François
3622 Pinard.
3621 Pinard.
3623
3622
3624 2002-11-09 Fernando Perez <fperez@colorado.edu>
3623 2002-11-09 Fernando Perez <fperez@colorado.edu>
3625
3624
3626 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3625 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3627 history file for new users.
3626 history file for new users.
3628 (make_IPython): fixed bug where initial install would leave the
3627 (make_IPython): fixed bug where initial install would leave the
3629 user running in the .ipython dir.
3628 user running in the .ipython dir.
3630 (make_IPython): fixed bug where config dir .ipython would be
3629 (make_IPython): fixed bug where config dir .ipython would be
3631 created regardless of the given -ipythondir option. Thanks to Cory
3630 created regardless of the given -ipythondir option. Thanks to Cory
3632 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3631 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3633
3632
3634 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3633 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3635 type confirmations. Will need to use it in all of IPython's code
3634 type confirmations. Will need to use it in all of IPython's code
3636 consistently.
3635 consistently.
3637
3636
3638 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3637 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3639 context to print 31 lines instead of the default 5. This will make
3638 context to print 31 lines instead of the default 5. This will make
3640 the crash reports extremely detailed in case the problem is in
3639 the crash reports extremely detailed in case the problem is in
3641 libraries I don't have access to.
3640 libraries I don't have access to.
3642
3641
3643 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3642 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3644 line of defense' code to still crash, but giving users fair
3643 line of defense' code to still crash, but giving users fair
3645 warning. I don't want internal errors to go unreported: if there's
3644 warning. I don't want internal errors to go unreported: if there's
3646 an internal problem, IPython should crash and generate a full
3645 an internal problem, IPython should crash and generate a full
3647 report.
3646 report.
3648
3647
3649 2002-11-08 Fernando Perez <fperez@colorado.edu>
3648 2002-11-08 Fernando Perez <fperez@colorado.edu>
3650
3649
3651 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3650 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3652 otherwise uncaught exceptions which can appear if people set
3651 otherwise uncaught exceptions which can appear if people set
3653 sys.stdout to something badly broken. Thanks to a crash report
3652 sys.stdout to something badly broken. Thanks to a crash report
3654 from henni-AT-mail.brainbot.com.
3653 from henni-AT-mail.brainbot.com.
3655
3654
3656 2002-11-04 Fernando Perez <fperez@colorado.edu>
3655 2002-11-04 Fernando Perez <fperez@colorado.edu>
3657
3656
3658 * IPython/iplib.py (InteractiveShell.interact): added
3657 * IPython/iplib.py (InteractiveShell.interact): added
3659 __IPYTHON__active to the builtins. It's a flag which goes on when
3658 __IPYTHON__active to the builtins. It's a flag which goes on when
3660 the interaction starts and goes off again when it stops. This
3659 the interaction starts and goes off again when it stops. This
3661 allows embedding code to detect being inside IPython. Before this
3660 allows embedding code to detect being inside IPython. Before this
3662 was done via __IPYTHON__, but that only shows that an IPython
3661 was done via __IPYTHON__, but that only shows that an IPython
3663 instance has been created.
3662 instance has been created.
3664
3663
3665 * IPython/Magic.py (Magic.magic_env): I realized that in a
3664 * IPython/Magic.py (Magic.magic_env): I realized that in a
3666 UserDict, instance.data holds the data as a normal dict. So I
3665 UserDict, instance.data holds the data as a normal dict. So I
3667 modified @env to return os.environ.data instead of rebuilding a
3666 modified @env to return os.environ.data instead of rebuilding a
3668 dict by hand.
3667 dict by hand.
3669
3668
3670 2002-11-02 Fernando Perez <fperez@colorado.edu>
3669 2002-11-02 Fernando Perez <fperez@colorado.edu>
3671
3670
3672 * IPython/genutils.py (warn): changed so that level 1 prints no
3671 * IPython/genutils.py (warn): changed so that level 1 prints no
3673 header. Level 2 is now the default (with 'WARNING' header, as
3672 header. Level 2 is now the default (with 'WARNING' header, as
3674 before). I think I tracked all places where changes were needed in
3673 before). I think I tracked all places where changes were needed in
3675 IPython, but outside code using the old level numbering may have
3674 IPython, but outside code using the old level numbering may have
3676 broken.
3675 broken.
3677
3676
3678 * IPython/iplib.py (InteractiveShell.runcode): added this to
3677 * IPython/iplib.py (InteractiveShell.runcode): added this to
3679 handle the tracebacks in SystemExit traps correctly. The previous
3678 handle the tracebacks in SystemExit traps correctly. The previous
3680 code (through interact) was printing more of the stack than
3679 code (through interact) was printing more of the stack than
3681 necessary, showing IPython internal code to the user.
3680 necessary, showing IPython internal code to the user.
3682
3681
3683 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3682 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3684 default. Now that the default at the confirmation prompt is yes,
3683 default. Now that the default at the confirmation prompt is yes,
3685 it's not so intrusive. François' argument that ipython sessions
3684 it's not so intrusive. François' argument that ipython sessions
3686 tend to be complex enough not to lose them from an accidental C-d,
3685 tend to be complex enough not to lose them from an accidental C-d,
3687 is a valid one.
3686 is a valid one.
3688
3687
3689 * IPython/iplib.py (InteractiveShell.interact): added a
3688 * IPython/iplib.py (InteractiveShell.interact): added a
3690 showtraceback() call to the SystemExit trap, and modified the exit
3689 showtraceback() call to the SystemExit trap, and modified the exit
3691 confirmation to have yes as the default.
3690 confirmation to have yes as the default.
3692
3691
3693 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3692 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3694 this file. It's been gone from the code for a long time, this was
3693 this file. It's been gone from the code for a long time, this was
3695 simply leftover junk.
3694 simply leftover junk.
3696
3695
3697 2002-11-01 Fernando Perez <fperez@colorado.edu>
3696 2002-11-01 Fernando Perez <fperez@colorado.edu>
3698
3697
3699 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3698 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3700 added. If set, IPython now traps EOF and asks for
3699 added. If set, IPython now traps EOF and asks for
3701 confirmation. After a request by François Pinard.
3700 confirmation. After a request by François Pinard.
3702
3701
3703 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3702 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3704 of @abort, and with a new (better) mechanism for handling the
3703 of @abort, and with a new (better) mechanism for handling the
3705 exceptions.
3704 exceptions.
3706
3705
3707 2002-10-27 Fernando Perez <fperez@colorado.edu>
3706 2002-10-27 Fernando Perez <fperez@colorado.edu>
3708
3707
3709 * IPython/usage.py (__doc__): updated the --help information and
3708 * IPython/usage.py (__doc__): updated the --help information and
3710 the ipythonrc file to indicate that -log generates
3709 the ipythonrc file to indicate that -log generates
3711 ./ipython.log. Also fixed the corresponding info in @logstart.
3710 ./ipython.log. Also fixed the corresponding info in @logstart.
3712 This and several other fixes in the manuals thanks to reports by
3711 This and several other fixes in the manuals thanks to reports by
3713 François Pinard <pinard-AT-iro.umontreal.ca>.
3712 François Pinard <pinard-AT-iro.umontreal.ca>.
3714
3713
3715 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3714 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3716 refer to @logstart (instead of @log, which doesn't exist).
3715 refer to @logstart (instead of @log, which doesn't exist).
3717
3716
3718 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3717 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3719 AttributeError crash. Thanks to Christopher Armstrong
3718 AttributeError crash. Thanks to Christopher Armstrong
3720 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3719 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3721 introduced recently (in 0.2.14pre37) with the fix to the eval
3720 introduced recently (in 0.2.14pre37) with the fix to the eval
3722 problem mentioned below.
3721 problem mentioned below.
3723
3722
3724 2002-10-17 Fernando Perez <fperez@colorado.edu>
3723 2002-10-17 Fernando Perez <fperez@colorado.edu>
3725
3724
3726 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3725 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3727 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3726 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3728
3727
3729 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3728 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3730 this function to fix a problem reported by Alex Schmolck. He saw
3729 this function to fix a problem reported by Alex Schmolck. He saw
3731 it with list comprehensions and generators, which were getting
3730 it with list comprehensions and generators, which were getting
3732 called twice. The real problem was an 'eval' call in testing for
3731 called twice. The real problem was an 'eval' call in testing for
3733 automagic which was evaluating the input line silently.
3732 automagic which was evaluating the input line silently.
3734
3733
3735 This is a potentially very nasty bug, if the input has side
3734 This is a potentially very nasty bug, if the input has side
3736 effects which must not be repeated. The code is much cleaner now,
3735 effects which must not be repeated. The code is much cleaner now,
3737 without any blanket 'except' left and with a regexp test for
3736 without any blanket 'except' left and with a regexp test for
3738 actual function names.
3737 actual function names.
3739
3738
3740 But an eval remains, which I'm not fully comfortable with. I just
3739 But an eval remains, which I'm not fully comfortable with. I just
3741 don't know how to find out if an expression could be a callable in
3740 don't know how to find out if an expression could be a callable in
3742 the user's namespace without doing an eval on the string. However
3741 the user's namespace without doing an eval on the string. However
3743 that string is now much more strictly checked so that no code
3742 that string is now much more strictly checked so that no code
3744 slips by, so the eval should only happen for things that can
3743 slips by, so the eval should only happen for things that can
3745 really be only function/method names.
3744 really be only function/method names.
3746
3745
3747 2002-10-15 Fernando Perez <fperez@colorado.edu>
3746 2002-10-15 Fernando Perez <fperez@colorado.edu>
3748
3747
3749 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3748 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3750 OSX information to main manual, removed README_Mac_OSX file from
3749 OSX information to main manual, removed README_Mac_OSX file from
3751 distribution. Also updated credits for recent additions.
3750 distribution. Also updated credits for recent additions.
3752
3751
3753 2002-10-10 Fernando Perez <fperez@colorado.edu>
3752 2002-10-10 Fernando Perez <fperez@colorado.edu>
3754
3753
3755 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3754 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3756 terminal-related issues. Many thanks to Andrea Riciputi
3755 terminal-related issues. Many thanks to Andrea Riciputi
3757 <andrea.riciputi-AT-libero.it> for writing it.
3756 <andrea.riciputi-AT-libero.it> for writing it.
3758
3757
3759 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3758 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3760 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3759 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3761
3760
3762 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3761 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3763 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3762 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3764 <syver-en-AT-online.no> who both submitted patches for this problem.
3763 <syver-en-AT-online.no> who both submitted patches for this problem.
3765
3764
3766 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3765 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3767 global embedding to make sure that things don't overwrite user
3766 global embedding to make sure that things don't overwrite user
3768 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3767 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3769
3768
3770 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3769 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3771 compatibility. Thanks to Hayden Callow
3770 compatibility. Thanks to Hayden Callow
3772 <h.callow-AT-elec.canterbury.ac.nz>
3771 <h.callow-AT-elec.canterbury.ac.nz>
3773
3772
3774 2002-10-04 Fernando Perez <fperez@colorado.edu>
3773 2002-10-04 Fernando Perez <fperez@colorado.edu>
3775
3774
3776 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3775 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3777 Gnuplot.File objects.
3776 Gnuplot.File objects.
3778
3777
3779 2002-07-23 Fernando Perez <fperez@colorado.edu>
3778 2002-07-23 Fernando Perez <fperez@colorado.edu>
3780
3779
3781 * IPython/genutils.py (timing): Added timings() and timing() for
3780 * IPython/genutils.py (timing): Added timings() and timing() for
3782 quick access to the most commonly needed data, the execution
3781 quick access to the most commonly needed data, the execution
3783 times. Old timing() renamed to timings_out().
3782 times. Old timing() renamed to timings_out().
3784
3783
3785 2002-07-18 Fernando Perez <fperez@colorado.edu>
3784 2002-07-18 Fernando Perez <fperez@colorado.edu>
3786
3785
3787 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3786 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3788 bug with nested instances disrupting the parent's tab completion.
3787 bug with nested instances disrupting the parent's tab completion.
3789
3788
3790 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3789 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3791 all_completions code to begin the emacs integration.
3790 all_completions code to begin the emacs integration.
3792
3791
3793 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3792 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3794 argument to allow titling individual arrays when plotting.
3793 argument to allow titling individual arrays when plotting.
3795
3794
3796 2002-07-15 Fernando Perez <fperez@colorado.edu>
3795 2002-07-15 Fernando Perez <fperez@colorado.edu>
3797
3796
3798 * setup.py (make_shortcut): changed to retrieve the value of
3797 * setup.py (make_shortcut): changed to retrieve the value of
3799 'Program Files' directory from the registry (this value changes in
3798 'Program Files' directory from the registry (this value changes in
3800 non-english versions of Windows). Thanks to Thomas Fanslau
3799 non-english versions of Windows). Thanks to Thomas Fanslau
3801 <tfanslau-AT-gmx.de> for the report.
3800 <tfanslau-AT-gmx.de> for the report.
3802
3801
3803 2002-07-10 Fernando Perez <fperez@colorado.edu>
3802 2002-07-10 Fernando Perez <fperez@colorado.edu>
3804
3803
3805 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3804 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3806 a bug in pdb, which crashes if a line with only whitespace is
3805 a bug in pdb, which crashes if a line with only whitespace is
3807 entered. Bug report submitted to sourceforge.
3806 entered. Bug report submitted to sourceforge.
3808
3807
3809 2002-07-09 Fernando Perez <fperez@colorado.edu>
3808 2002-07-09 Fernando Perez <fperez@colorado.edu>
3810
3809
3811 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3810 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3812 reporting exceptions (it's a bug in inspect.py, I just set a
3811 reporting exceptions (it's a bug in inspect.py, I just set a
3813 workaround).
3812 workaround).
3814
3813
3815 2002-07-08 Fernando Perez <fperez@colorado.edu>
3814 2002-07-08 Fernando Perez <fperez@colorado.edu>
3816
3815
3817 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3816 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3818 __IPYTHON__ in __builtins__ to show up in user_ns.
3817 __IPYTHON__ in __builtins__ to show up in user_ns.
3819
3818
3820 2002-07-03 Fernando Perez <fperez@colorado.edu>
3819 2002-07-03 Fernando Perez <fperez@colorado.edu>
3821
3820
3822 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3821 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3823 name from @gp_set_instance to @gp_set_default.
3822 name from @gp_set_instance to @gp_set_default.
3824
3823
3825 * IPython/ipmaker.py (make_IPython): default editor value set to
3824 * IPython/ipmaker.py (make_IPython): default editor value set to
3826 '0' (a string), to match the rc file. Otherwise will crash when
3825 '0' (a string), to match the rc file. Otherwise will crash when
3827 .strip() is called on it.
3826 .strip() is called on it.
3828
3827
3829
3828
3830 2002-06-28 Fernando Perez <fperez@colorado.edu>
3829 2002-06-28 Fernando Perez <fperez@colorado.edu>
3831
3830
3832 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3831 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3833 of files in current directory when a file is executed via
3832 of files in current directory when a file is executed via
3834 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3833 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3835
3834
3836 * setup.py (manfiles): fix for rpm builds, submitted by RA
3835 * setup.py (manfiles): fix for rpm builds, submitted by RA
3837 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3836 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3838
3837
3839 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3838 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3840 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3839 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3841 string!). A. Schmolck caught this one.
3840 string!). A. Schmolck caught this one.
3842
3841
3843 2002-06-27 Fernando Perez <fperez@colorado.edu>
3842 2002-06-27 Fernando Perez <fperez@colorado.edu>
3844
3843
3845 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3844 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3846 defined files at the cmd line. __name__ wasn't being set to
3845 defined files at the cmd line. __name__ wasn't being set to
3847 __main__.
3846 __main__.
3848
3847
3849 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3848 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3850 regular lists and tuples besides Numeric arrays.
3849 regular lists and tuples besides Numeric arrays.
3851
3850
3852 * IPython/Prompts.py (CachedOutput.__call__): Added output
3851 * IPython/Prompts.py (CachedOutput.__call__): Added output
3853 supression for input ending with ';'. Similar to Mathematica and
3852 supression for input ending with ';'. Similar to Mathematica and
3854 Matlab. The _* vars and Out[] list are still updated, just like
3853 Matlab. The _* vars and Out[] list are still updated, just like
3855 Mathematica behaves.
3854 Mathematica behaves.
3856
3855
3857 2002-06-25 Fernando Perez <fperez@colorado.edu>
3856 2002-06-25 Fernando Perez <fperez@colorado.edu>
3858
3857
3859 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3858 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3860 .ini extensions for profiels under Windows.
3859 .ini extensions for profiels under Windows.
3861
3860
3862 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3861 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3863 string form. Fix contributed by Alexander Schmolck
3862 string form. Fix contributed by Alexander Schmolck
3864 <a.schmolck-AT-gmx.net>
3863 <a.schmolck-AT-gmx.net>
3865
3864
3866 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3865 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3867 pre-configured Gnuplot instance.
3866 pre-configured Gnuplot instance.
3868
3867
3869 2002-06-21 Fernando Perez <fperez@colorado.edu>
3868 2002-06-21 Fernando Perez <fperez@colorado.edu>
3870
3869
3871 * IPython/numutils.py (exp_safe): new function, works around the
3870 * IPython/numutils.py (exp_safe): new function, works around the
3872 underflow problems in Numeric.
3871 underflow problems in Numeric.
3873 (log2): New fn. Safe log in base 2: returns exact integer answer
3872 (log2): New fn. Safe log in base 2: returns exact integer answer
3874 for exact integer powers of 2.
3873 for exact integer powers of 2.
3875
3874
3876 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3875 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3877 properly.
3876 properly.
3878
3877
3879 2002-06-20 Fernando Perez <fperez@colorado.edu>
3878 2002-06-20 Fernando Perez <fperez@colorado.edu>
3880
3879
3881 * IPython/genutils.py (timing): new function like
3880 * IPython/genutils.py (timing): new function like
3882 Mathematica's. Similar to time_test, but returns more info.
3881 Mathematica's. Similar to time_test, but returns more info.
3883
3882
3884 2002-06-18 Fernando Perez <fperez@colorado.edu>
3883 2002-06-18 Fernando Perez <fperez@colorado.edu>
3885
3884
3886 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3885 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3887 according to Mike Heeter's suggestions.
3886 according to Mike Heeter's suggestions.
3888
3887
3889 2002-06-16 Fernando Perez <fperez@colorado.edu>
3888 2002-06-16 Fernando Perez <fperez@colorado.edu>
3890
3889
3891 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3890 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3892 system. GnuplotMagic is gone as a user-directory option. New files
3891 system. GnuplotMagic is gone as a user-directory option. New files
3893 make it easier to use all the gnuplot stuff both from external
3892 make it easier to use all the gnuplot stuff both from external
3894 programs as well as from IPython. Had to rewrite part of
3893 programs as well as from IPython. Had to rewrite part of
3895 hardcopy() b/c of a strange bug: often the ps files simply don't
3894 hardcopy() b/c of a strange bug: often the ps files simply don't
3896 get created, and require a repeat of the command (often several
3895 get created, and require a repeat of the command (often several
3897 times).
3896 times).
3898
3897
3899 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3898 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3900 resolve output channel at call time, so that if sys.stderr has
3899 resolve output channel at call time, so that if sys.stderr has
3901 been redirected by user this gets honored.
3900 been redirected by user this gets honored.
3902
3901
3903 2002-06-13 Fernando Perez <fperez@colorado.edu>
3902 2002-06-13 Fernando Perez <fperez@colorado.edu>
3904
3903
3905 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3904 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3906 IPShell. Kept a copy with the old names to avoid breaking people's
3905 IPShell. Kept a copy with the old names to avoid breaking people's
3907 embedded code.
3906 embedded code.
3908
3907
3909 * IPython/ipython: simplified it to the bare minimum after
3908 * IPython/ipython: simplified it to the bare minimum after
3910 Holger's suggestions. Added info about how to use it in
3909 Holger's suggestions. Added info about how to use it in
3911 PYTHONSTARTUP.
3910 PYTHONSTARTUP.
3912
3911
3913 * IPython/Shell.py (IPythonShell): changed the options passing
3912 * IPython/Shell.py (IPythonShell): changed the options passing
3914 from a string with funky %s replacements to a straight list. Maybe
3913 from a string with funky %s replacements to a straight list. Maybe
3915 a bit more typing, but it follows sys.argv conventions, so there's
3914 a bit more typing, but it follows sys.argv conventions, so there's
3916 less special-casing to remember.
3915 less special-casing to remember.
3917
3916
3918 2002-06-12 Fernando Perez <fperez@colorado.edu>
3917 2002-06-12 Fernando Perez <fperez@colorado.edu>
3919
3918
3920 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3919 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3921 command. Thanks to a suggestion by Mike Heeter.
3920 command. Thanks to a suggestion by Mike Heeter.
3922 (Magic.magic_pfile): added behavior to look at filenames if given
3921 (Magic.magic_pfile): added behavior to look at filenames if given
3923 arg is not a defined object.
3922 arg is not a defined object.
3924 (Magic.magic_save): New @save function to save code snippets. Also
3923 (Magic.magic_save): New @save function to save code snippets. Also
3925 a Mike Heeter idea.
3924 a Mike Heeter idea.
3926
3925
3927 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3926 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3928 plot() and replot(). Much more convenient now, especially for
3927 plot() and replot(). Much more convenient now, especially for
3929 interactive use.
3928 interactive use.
3930
3929
3931 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3930 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3932 filenames.
3931 filenames.
3933
3932
3934 2002-06-02 Fernando Perez <fperez@colorado.edu>
3933 2002-06-02 Fernando Perez <fperez@colorado.edu>
3935
3934
3936 * IPython/Struct.py (Struct.__init__): modified to admit
3935 * IPython/Struct.py (Struct.__init__): modified to admit
3937 initialization via another struct.
3936 initialization via another struct.
3938
3937
3939 * IPython/genutils.py (SystemExec.__init__): New stateful
3938 * IPython/genutils.py (SystemExec.__init__): New stateful
3940 interface to xsys and bq. Useful for writing system scripts.
3939 interface to xsys and bq. Useful for writing system scripts.
3941
3940
3942 2002-05-30 Fernando Perez <fperez@colorado.edu>
3941 2002-05-30 Fernando Perez <fperez@colorado.edu>
3943
3942
3944 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3943 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3945 documents. This will make the user download smaller (it's getting
3944 documents. This will make the user download smaller (it's getting
3946 too big).
3945 too big).
3947
3946
3948 2002-05-29 Fernando Perez <fperez@colorado.edu>
3947 2002-05-29 Fernando Perez <fperez@colorado.edu>
3949
3948
3950 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3949 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3951 fix problems with shelve and pickle. Seems to work, but I don't
3950 fix problems with shelve and pickle. Seems to work, but I don't
3952 know if corner cases break it. Thanks to Mike Heeter
3951 know if corner cases break it. Thanks to Mike Heeter
3953 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3952 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3954
3953
3955 2002-05-24 Fernando Perez <fperez@colorado.edu>
3954 2002-05-24 Fernando Perez <fperez@colorado.edu>
3956
3955
3957 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3956 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3958 macros having broken.
3957 macros having broken.
3959
3958
3960 2002-05-21 Fernando Perez <fperez@colorado.edu>
3959 2002-05-21 Fernando Perez <fperez@colorado.edu>
3961
3960
3962 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3961 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3963 introduced logging bug: all history before logging started was
3962 introduced logging bug: all history before logging started was
3964 being written one character per line! This came from the redesign
3963 being written one character per line! This came from the redesign
3965 of the input history as a special list which slices to strings,
3964 of the input history as a special list which slices to strings,
3966 not to lists.
3965 not to lists.
3967
3966
3968 2002-05-20 Fernando Perez <fperez@colorado.edu>
3967 2002-05-20 Fernando Perez <fperez@colorado.edu>
3969
3968
3970 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3969 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3971 be an attribute of all classes in this module. The design of these
3970 be an attribute of all classes in this module. The design of these
3972 classes needs some serious overhauling.
3971 classes needs some serious overhauling.
3973
3972
3974 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3973 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3975 which was ignoring '_' in option names.
3974 which was ignoring '_' in option names.
3976
3975
3977 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3976 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3978 'Verbose_novars' to 'Context' and made it the new default. It's a
3977 'Verbose_novars' to 'Context' and made it the new default. It's a
3979 bit more readable and also safer than verbose.
3978 bit more readable and also safer than verbose.
3980
3979
3981 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3980 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3982 triple-quoted strings.
3981 triple-quoted strings.
3983
3982
3984 * IPython/OInspect.py (__all__): new module exposing the object
3983 * IPython/OInspect.py (__all__): new module exposing the object
3985 introspection facilities. Now the corresponding magics are dummy
3984 introspection facilities. Now the corresponding magics are dummy
3986 wrappers around this. Having this module will make it much easier
3985 wrappers around this. Having this module will make it much easier
3987 to put these functions into our modified pdb.
3986 to put these functions into our modified pdb.
3988 This new object inspector system uses the new colorizing module,
3987 This new object inspector system uses the new colorizing module,
3989 so source code and other things are nicely syntax highlighted.
3988 so source code and other things are nicely syntax highlighted.
3990
3989
3991 2002-05-18 Fernando Perez <fperez@colorado.edu>
3990 2002-05-18 Fernando Perez <fperez@colorado.edu>
3992
3991
3993 * IPython/ColorANSI.py: Split the coloring tools into a separate
3992 * IPython/ColorANSI.py: Split the coloring tools into a separate
3994 module so I can use them in other code easier (they were part of
3993 module so I can use them in other code easier (they were part of
3995 ultraTB).
3994 ultraTB).
3996
3995
3997 2002-05-17 Fernando Perez <fperez@colorado.edu>
3996 2002-05-17 Fernando Perez <fperez@colorado.edu>
3998
3997
3999 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3998 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4000 fixed it to set the global 'g' also to the called instance, as
3999 fixed it to set the global 'g' also to the called instance, as
4001 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4000 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4002 user's 'g' variables).
4001 user's 'g' variables).
4003
4002
4004 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4003 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4005 global variables (aliases to _ih,_oh) so that users which expect
4004 global variables (aliases to _ih,_oh) so that users which expect
4006 In[5] or Out[7] to work aren't unpleasantly surprised.
4005 In[5] or Out[7] to work aren't unpleasantly surprised.
4007 (InputList.__getslice__): new class to allow executing slices of
4006 (InputList.__getslice__): new class to allow executing slices of
4008 input history directly. Very simple class, complements the use of
4007 input history directly. Very simple class, complements the use of
4009 macros.
4008 macros.
4010
4009
4011 2002-05-16 Fernando Perez <fperez@colorado.edu>
4010 2002-05-16 Fernando Perez <fperez@colorado.edu>
4012
4011
4013 * setup.py (docdirbase): make doc directory be just doc/IPython
4012 * setup.py (docdirbase): make doc directory be just doc/IPython
4014 without version numbers, it will reduce clutter for users.
4013 without version numbers, it will reduce clutter for users.
4015
4014
4016 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4015 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4017 execfile call to prevent possible memory leak. See for details:
4016 execfile call to prevent possible memory leak. See for details:
4018 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4017 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4019
4018
4020 2002-05-15 Fernando Perez <fperez@colorado.edu>
4019 2002-05-15 Fernando Perez <fperez@colorado.edu>
4021
4020
4022 * IPython/Magic.py (Magic.magic_psource): made the object
4021 * IPython/Magic.py (Magic.magic_psource): made the object
4023 introspection names be more standard: pdoc, pdef, pfile and
4022 introspection names be more standard: pdoc, pdef, pfile and
4024 psource. They all print/page their output, and it makes
4023 psource. They all print/page their output, and it makes
4025 remembering them easier. Kept old names for compatibility as
4024 remembering them easier. Kept old names for compatibility as
4026 aliases.
4025 aliases.
4027
4026
4028 2002-05-14 Fernando Perez <fperez@colorado.edu>
4027 2002-05-14 Fernando Perez <fperez@colorado.edu>
4029
4028
4030 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4029 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4031 what the mouse problem was. The trick is to use gnuplot with temp
4030 what the mouse problem was. The trick is to use gnuplot with temp
4032 files and NOT with pipes (for data communication), because having
4031 files and NOT with pipes (for data communication), because having
4033 both pipes and the mouse on is bad news.
4032 both pipes and the mouse on is bad news.
4034
4033
4035 2002-05-13 Fernando Perez <fperez@colorado.edu>
4034 2002-05-13 Fernando Perez <fperez@colorado.edu>
4036
4035
4037 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4036 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4038 bug. Information would be reported about builtins even when
4037 bug. Information would be reported about builtins even when
4039 user-defined functions overrode them.
4038 user-defined functions overrode them.
4040
4039
4041 2002-05-11 Fernando Perez <fperez@colorado.edu>
4040 2002-05-11 Fernando Perez <fperez@colorado.edu>
4042
4041
4043 * IPython/__init__.py (__all__): removed FlexCompleter from
4042 * IPython/__init__.py (__all__): removed FlexCompleter from
4044 __all__ so that things don't fail in platforms without readline.
4043 __all__ so that things don't fail in platforms without readline.
4045
4044
4046 2002-05-10 Fernando Perez <fperez@colorado.edu>
4045 2002-05-10 Fernando Perez <fperez@colorado.edu>
4047
4046
4048 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4047 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4049 it requires Numeric, effectively making Numeric a dependency for
4048 it requires Numeric, effectively making Numeric a dependency for
4050 IPython.
4049 IPython.
4051
4050
4052 * Released 0.2.13
4051 * Released 0.2.13
4053
4052
4054 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4053 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4055 profiler interface. Now all the major options from the profiler
4054 profiler interface. Now all the major options from the profiler
4056 module are directly supported in IPython, both for single
4055 module are directly supported in IPython, both for single
4057 expressions (@prun) and for full programs (@run -p).
4056 expressions (@prun) and for full programs (@run -p).
4058
4057
4059 2002-05-09 Fernando Perez <fperez@colorado.edu>
4058 2002-05-09 Fernando Perez <fperez@colorado.edu>
4060
4059
4061 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4060 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4062 magic properly formatted for screen.
4061 magic properly formatted for screen.
4063
4062
4064 * setup.py (make_shortcut): Changed things to put pdf version in
4063 * setup.py (make_shortcut): Changed things to put pdf version in
4065 doc/ instead of doc/manual (had to change lyxport a bit).
4064 doc/ instead of doc/manual (had to change lyxport a bit).
4066
4065
4067 * IPython/Magic.py (Profile.string_stats): made profile runs go
4066 * IPython/Magic.py (Profile.string_stats): made profile runs go
4068 through pager (they are long and a pager allows searching, saving,
4067 through pager (they are long and a pager allows searching, saving,
4069 etc.)
4068 etc.)
4070
4069
4071 2002-05-08 Fernando Perez <fperez@colorado.edu>
4070 2002-05-08 Fernando Perez <fperez@colorado.edu>
4072
4071
4073 * Released 0.2.12
4072 * Released 0.2.12
4074
4073
4075 2002-05-06 Fernando Perez <fperez@colorado.edu>
4074 2002-05-06 Fernando Perez <fperez@colorado.edu>
4076
4075
4077 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4076 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4078 introduced); 'hist n1 n2' was broken.
4077 introduced); 'hist n1 n2' was broken.
4079 (Magic.magic_pdb): added optional on/off arguments to @pdb
4078 (Magic.magic_pdb): added optional on/off arguments to @pdb
4080 (Magic.magic_run): added option -i to @run, which executes code in
4079 (Magic.magic_run): added option -i to @run, which executes code in
4081 the IPython namespace instead of a clean one. Also added @irun as
4080 the IPython namespace instead of a clean one. Also added @irun as
4082 an alias to @run -i.
4081 an alias to @run -i.
4083
4082
4084 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4083 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4085 fixed (it didn't really do anything, the namespaces were wrong).
4084 fixed (it didn't really do anything, the namespaces were wrong).
4086
4085
4087 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4086 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4088
4087
4089 * IPython/__init__.py (__all__): Fixed package namespace, now
4088 * IPython/__init__.py (__all__): Fixed package namespace, now
4090 'import IPython' does give access to IPython.<all> as
4089 'import IPython' does give access to IPython.<all> as
4091 expected. Also renamed __release__ to Release.
4090 expected. Also renamed __release__ to Release.
4092
4091
4093 * IPython/Debugger.py (__license__): created new Pdb class which
4092 * IPython/Debugger.py (__license__): created new Pdb class which
4094 functions like a drop-in for the normal pdb.Pdb but does NOT
4093 functions like a drop-in for the normal pdb.Pdb but does NOT
4095 import readline by default. This way it doesn't muck up IPython's
4094 import readline by default. This way it doesn't muck up IPython's
4096 readline handling, and now tab-completion finally works in the
4095 readline handling, and now tab-completion finally works in the
4097 debugger -- sort of. It completes things globally visible, but the
4096 debugger -- sort of. It completes things globally visible, but the
4098 completer doesn't track the stack as pdb walks it. That's a bit
4097 completer doesn't track the stack as pdb walks it. That's a bit
4099 tricky, and I'll have to implement it later.
4098 tricky, and I'll have to implement it later.
4100
4099
4101 2002-05-05 Fernando Perez <fperez@colorado.edu>
4100 2002-05-05 Fernando Perez <fperez@colorado.edu>
4102
4101
4103 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4102 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4104 magic docstrings when printed via ? (explicit \'s were being
4103 magic docstrings when printed via ? (explicit \'s were being
4105 printed).
4104 printed).
4106
4105
4107 * IPython/ipmaker.py (make_IPython): fixed namespace
4106 * IPython/ipmaker.py (make_IPython): fixed namespace
4108 identification bug. Now variables loaded via logs or command-line
4107 identification bug. Now variables loaded via logs or command-line
4109 files are recognized in the interactive namespace by @who.
4108 files are recognized in the interactive namespace by @who.
4110
4109
4111 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4110 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4112 log replay system stemming from the string form of Structs.
4111 log replay system stemming from the string form of Structs.
4113
4112
4114 * IPython/Magic.py (Macro.__init__): improved macros to properly
4113 * IPython/Magic.py (Macro.__init__): improved macros to properly
4115 handle magic commands in them.
4114 handle magic commands in them.
4116 (Magic.magic_logstart): usernames are now expanded so 'logstart
4115 (Magic.magic_logstart): usernames are now expanded so 'logstart
4117 ~/mylog' now works.
4116 ~/mylog' now works.
4118
4117
4119 * IPython/iplib.py (complete): fixed bug where paths starting with
4118 * IPython/iplib.py (complete): fixed bug where paths starting with
4120 '/' would be completed as magic names.
4119 '/' would be completed as magic names.
4121
4120
4122 2002-05-04 Fernando Perez <fperez@colorado.edu>
4121 2002-05-04 Fernando Perez <fperez@colorado.edu>
4123
4122
4124 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4123 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4125 allow running full programs under the profiler's control.
4124 allow running full programs under the profiler's control.
4126
4125
4127 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4126 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4128 mode to report exceptions verbosely but without formatting
4127 mode to report exceptions verbosely but without formatting
4129 variables. This addresses the issue of ipython 'freezing' (it's
4128 variables. This addresses the issue of ipython 'freezing' (it's
4130 not frozen, but caught in an expensive formatting loop) when huge
4129 not frozen, but caught in an expensive formatting loop) when huge
4131 variables are in the context of an exception.
4130 variables are in the context of an exception.
4132 (VerboseTB.text): Added '--->' markers at line where exception was
4131 (VerboseTB.text): Added '--->' markers at line where exception was
4133 triggered. Much clearer to read, especially in NoColor modes.
4132 triggered. Much clearer to read, especially in NoColor modes.
4134
4133
4135 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4134 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4136 implemented in reverse when changing to the new parse_options().
4135 implemented in reverse when changing to the new parse_options().
4137
4136
4138 2002-05-03 Fernando Perez <fperez@colorado.edu>
4137 2002-05-03 Fernando Perez <fperez@colorado.edu>
4139
4138
4140 * IPython/Magic.py (Magic.parse_options): new function so that
4139 * IPython/Magic.py (Magic.parse_options): new function so that
4141 magics can parse options easier.
4140 magics can parse options easier.
4142 (Magic.magic_prun): new function similar to profile.run(),
4141 (Magic.magic_prun): new function similar to profile.run(),
4143 suggested by Chris Hart.
4142 suggested by Chris Hart.
4144 (Magic.magic_cd): fixed behavior so that it only changes if
4143 (Magic.magic_cd): fixed behavior so that it only changes if
4145 directory actually is in history.
4144 directory actually is in history.
4146
4145
4147 * IPython/usage.py (__doc__): added information about potential
4146 * IPython/usage.py (__doc__): added information about potential
4148 slowness of Verbose exception mode when there are huge data
4147 slowness of Verbose exception mode when there are huge data
4149 structures to be formatted (thanks to Archie Paulson).
4148 structures to be formatted (thanks to Archie Paulson).
4150
4149
4151 * IPython/ipmaker.py (make_IPython): Changed default logging
4150 * IPython/ipmaker.py (make_IPython): Changed default logging
4152 (when simply called with -log) to use curr_dir/ipython.log in
4151 (when simply called with -log) to use curr_dir/ipython.log in
4153 rotate mode. Fixed crash which was occuring with -log before
4152 rotate mode. Fixed crash which was occuring with -log before
4154 (thanks to Jim Boyle).
4153 (thanks to Jim Boyle).
4155
4154
4156 2002-05-01 Fernando Perez <fperez@colorado.edu>
4155 2002-05-01 Fernando Perez <fperez@colorado.edu>
4157
4156
4158 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4157 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4159 was nasty -- though somewhat of a corner case).
4158 was nasty -- though somewhat of a corner case).
4160
4159
4161 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4160 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4162 text (was a bug).
4161 text (was a bug).
4163
4162
4164 2002-04-30 Fernando Perez <fperez@colorado.edu>
4163 2002-04-30 Fernando Perez <fperez@colorado.edu>
4165
4164
4166 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4165 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4167 a print after ^D or ^C from the user so that the In[] prompt
4166 a print after ^D or ^C from the user so that the In[] prompt
4168 doesn't over-run the gnuplot one.
4167 doesn't over-run the gnuplot one.
4169
4168
4170 2002-04-29 Fernando Perez <fperez@colorado.edu>
4169 2002-04-29 Fernando Perez <fperez@colorado.edu>
4171
4170
4172 * Released 0.2.10
4171 * Released 0.2.10
4173
4172
4174 * IPython/__release__.py (version): get date dynamically.
4173 * IPython/__release__.py (version): get date dynamically.
4175
4174
4176 * Misc. documentation updates thanks to Arnd's comments. Also ran
4175 * Misc. documentation updates thanks to Arnd's comments. Also ran
4177 a full spellcheck on the manual (hadn't been done in a while).
4176 a full spellcheck on the manual (hadn't been done in a while).
4178
4177
4179 2002-04-27 Fernando Perez <fperez@colorado.edu>
4178 2002-04-27 Fernando Perez <fperez@colorado.edu>
4180
4179
4181 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4180 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4182 starting a log in mid-session would reset the input history list.
4181 starting a log in mid-session would reset the input history list.
4183
4182
4184 2002-04-26 Fernando Perez <fperez@colorado.edu>
4183 2002-04-26 Fernando Perez <fperez@colorado.edu>
4185
4184
4186 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4185 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4187 all files were being included in an update. Now anything in
4186 all files were being included in an update. Now anything in
4188 UserConfig that matches [A-Za-z]*.py will go (this excludes
4187 UserConfig that matches [A-Za-z]*.py will go (this excludes
4189 __init__.py)
4188 __init__.py)
4190
4189
4191 2002-04-25 Fernando Perez <fperez@colorado.edu>
4190 2002-04-25 Fernando Perez <fperez@colorado.edu>
4192
4191
4193 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4192 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4194 to __builtins__ so that any form of embedded or imported code can
4193 to __builtins__ so that any form of embedded or imported code can
4195 test for being inside IPython.
4194 test for being inside IPython.
4196
4195
4197 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4196 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4198 changed to GnuplotMagic because it's now an importable module,
4197 changed to GnuplotMagic because it's now an importable module,
4199 this makes the name follow that of the standard Gnuplot module.
4198 this makes the name follow that of the standard Gnuplot module.
4200 GnuplotMagic can now be loaded at any time in mid-session.
4199 GnuplotMagic can now be loaded at any time in mid-session.
4201
4200
4202 2002-04-24 Fernando Perez <fperez@colorado.edu>
4201 2002-04-24 Fernando Perez <fperez@colorado.edu>
4203
4202
4204 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4203 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4205 the globals (IPython has its own namespace) and the
4204 the globals (IPython has its own namespace) and the
4206 PhysicalQuantity stuff is much better anyway.
4205 PhysicalQuantity stuff is much better anyway.
4207
4206
4208 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4207 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4209 embedding example to standard user directory for
4208 embedding example to standard user directory for
4210 distribution. Also put it in the manual.
4209 distribution. Also put it in the manual.
4211
4210
4212 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4211 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4213 instance as first argument (so it doesn't rely on some obscure
4212 instance as first argument (so it doesn't rely on some obscure
4214 hidden global).
4213 hidden global).
4215
4214
4216 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4215 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4217 delimiters. While it prevents ().TAB from working, it allows
4216 delimiters. While it prevents ().TAB from working, it allows
4218 completions in open (... expressions. This is by far a more common
4217 completions in open (... expressions. This is by far a more common
4219 case.
4218 case.
4220
4219
4221 2002-04-23 Fernando Perez <fperez@colorado.edu>
4220 2002-04-23 Fernando Perez <fperez@colorado.edu>
4222
4221
4223 * IPython/Extensions/InterpreterPasteInput.py: new
4222 * IPython/Extensions/InterpreterPasteInput.py: new
4224 syntax-processing module for pasting lines with >>> or ... at the
4223 syntax-processing module for pasting lines with >>> or ... at the
4225 start.
4224 start.
4226
4225
4227 * IPython/Extensions/PhysicalQ_Interactive.py
4226 * IPython/Extensions/PhysicalQ_Interactive.py
4228 (PhysicalQuantityInteractive.__int__): fixed to work with either
4227 (PhysicalQuantityInteractive.__int__): fixed to work with either
4229 Numeric or math.
4228 Numeric or math.
4230
4229
4231 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4230 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4232 provided profiles. Now we have:
4231 provided profiles. Now we have:
4233 -math -> math module as * and cmath with its own namespace.
4232 -math -> math module as * and cmath with its own namespace.
4234 -numeric -> Numeric as *, plus gnuplot & grace
4233 -numeric -> Numeric as *, plus gnuplot & grace
4235 -physics -> same as before
4234 -physics -> same as before
4236
4235
4237 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4236 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4238 user-defined magics wouldn't be found by @magic if they were
4237 user-defined magics wouldn't be found by @magic if they were
4239 defined as class methods. Also cleaned up the namespace search
4238 defined as class methods. Also cleaned up the namespace search
4240 logic and the string building (to use %s instead of many repeated
4239 logic and the string building (to use %s instead of many repeated
4241 string adds).
4240 string adds).
4242
4241
4243 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4242 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4244 of user-defined magics to operate with class methods (cleaner, in
4243 of user-defined magics to operate with class methods (cleaner, in
4245 line with the gnuplot code).
4244 line with the gnuplot code).
4246
4245
4247 2002-04-22 Fernando Perez <fperez@colorado.edu>
4246 2002-04-22 Fernando Perez <fperez@colorado.edu>
4248
4247
4249 * setup.py: updated dependency list so that manual is updated when
4248 * setup.py: updated dependency list so that manual is updated when
4250 all included files change.
4249 all included files change.
4251
4250
4252 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4251 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4253 the delimiter removal option (the fix is ugly right now).
4252 the delimiter removal option (the fix is ugly right now).
4254
4253
4255 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4254 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4256 all of the math profile (quicker loading, no conflict between
4255 all of the math profile (quicker loading, no conflict between
4257 g-9.8 and g-gnuplot).
4256 g-9.8 and g-gnuplot).
4258
4257
4259 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4258 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4260 name of post-mortem files to IPython_crash_report.txt.
4259 name of post-mortem files to IPython_crash_report.txt.
4261
4260
4262 * Cleanup/update of the docs. Added all the new readline info and
4261 * Cleanup/update of the docs. Added all the new readline info and
4263 formatted all lists as 'real lists'.
4262 formatted all lists as 'real lists'.
4264
4263
4265 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4264 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4266 tab-completion options, since the full readline parse_and_bind is
4265 tab-completion options, since the full readline parse_and_bind is
4267 now accessible.
4266 now accessible.
4268
4267
4269 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4268 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4270 handling of readline options. Now users can specify any string to
4269 handling of readline options. Now users can specify any string to
4271 be passed to parse_and_bind(), as well as the delimiters to be
4270 be passed to parse_and_bind(), as well as the delimiters to be
4272 removed.
4271 removed.
4273 (InteractiveShell.__init__): Added __name__ to the global
4272 (InteractiveShell.__init__): Added __name__ to the global
4274 namespace so that things like Itpl which rely on its existence
4273 namespace so that things like Itpl which rely on its existence
4275 don't crash.
4274 don't crash.
4276 (InteractiveShell._prefilter): Defined the default with a _ so
4275 (InteractiveShell._prefilter): Defined the default with a _ so
4277 that prefilter() is easier to override, while the default one
4276 that prefilter() is easier to override, while the default one
4278 remains available.
4277 remains available.
4279
4278
4280 2002-04-18 Fernando Perez <fperez@colorado.edu>
4279 2002-04-18 Fernando Perez <fperez@colorado.edu>
4281
4280
4282 * Added information about pdb in the docs.
4281 * Added information about pdb in the docs.
4283
4282
4284 2002-04-17 Fernando Perez <fperez@colorado.edu>
4283 2002-04-17 Fernando Perez <fperez@colorado.edu>
4285
4284
4286 * IPython/ipmaker.py (make_IPython): added rc_override option to
4285 * IPython/ipmaker.py (make_IPython): added rc_override option to
4287 allow passing config options at creation time which may override
4286 allow passing config options at creation time which may override
4288 anything set in the config files or command line. This is
4287 anything set in the config files or command line. This is
4289 particularly useful for configuring embedded instances.
4288 particularly useful for configuring embedded instances.
4290
4289
4291 2002-04-15 Fernando Perez <fperez@colorado.edu>
4290 2002-04-15 Fernando Perez <fperez@colorado.edu>
4292
4291
4293 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4292 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4294 crash embedded instances because of the input cache falling out of
4293 crash embedded instances because of the input cache falling out of
4295 sync with the output counter.
4294 sync with the output counter.
4296
4295
4297 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4296 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4298 mode which calls pdb after an uncaught exception in IPython itself.
4297 mode which calls pdb after an uncaught exception in IPython itself.
4299
4298
4300 2002-04-14 Fernando Perez <fperez@colorado.edu>
4299 2002-04-14 Fernando Perez <fperez@colorado.edu>
4301
4300
4302 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4301 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4303 readline, fix it back after each call.
4302 readline, fix it back after each call.
4304
4303
4305 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4304 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4306 method to force all access via __call__(), which guarantees that
4305 method to force all access via __call__(), which guarantees that
4307 traceback references are properly deleted.
4306 traceback references are properly deleted.
4308
4307
4309 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4308 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4310 improve printing when pprint is in use.
4309 improve printing when pprint is in use.
4311
4310
4312 2002-04-13 Fernando Perez <fperez@colorado.edu>
4311 2002-04-13 Fernando Perez <fperez@colorado.edu>
4313
4312
4314 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4313 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4315 exceptions aren't caught anymore. If the user triggers one, he
4314 exceptions aren't caught anymore. If the user triggers one, he
4316 should know why he's doing it and it should go all the way up,
4315 should know why he's doing it and it should go all the way up,
4317 just like any other exception. So now @abort will fully kill the
4316 just like any other exception. So now @abort will fully kill the
4318 embedded interpreter and the embedding code (unless that happens
4317 embedded interpreter and the embedding code (unless that happens
4319 to catch SystemExit).
4318 to catch SystemExit).
4320
4319
4321 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4320 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4322 and a debugger() method to invoke the interactive pdb debugger
4321 and a debugger() method to invoke the interactive pdb debugger
4323 after printing exception information. Also added the corresponding
4322 after printing exception information. Also added the corresponding
4324 -pdb option and @pdb magic to control this feature, and updated
4323 -pdb option and @pdb magic to control this feature, and updated
4325 the docs. After a suggestion from Christopher Hart
4324 the docs. After a suggestion from Christopher Hart
4326 (hart-AT-caltech.edu).
4325 (hart-AT-caltech.edu).
4327
4326
4328 2002-04-12 Fernando Perez <fperez@colorado.edu>
4327 2002-04-12 Fernando Perez <fperez@colorado.edu>
4329
4328
4330 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4329 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4331 the exception handlers defined by the user (not the CrashHandler)
4330 the exception handlers defined by the user (not the CrashHandler)
4332 so that user exceptions don't trigger an ipython bug report.
4331 so that user exceptions don't trigger an ipython bug report.
4333
4332
4334 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4333 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4335 configurable (it should have always been so).
4334 configurable (it should have always been so).
4336
4335
4337 2002-03-26 Fernando Perez <fperez@colorado.edu>
4336 2002-03-26 Fernando Perez <fperez@colorado.edu>
4338
4337
4339 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4338 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4340 and there to fix embedding namespace issues. This should all be
4339 and there to fix embedding namespace issues. This should all be
4341 done in a more elegant way.
4340 done in a more elegant way.
4342
4341
4343 2002-03-25 Fernando Perez <fperez@colorado.edu>
4342 2002-03-25 Fernando Perez <fperez@colorado.edu>
4344
4343
4345 * IPython/genutils.py (get_home_dir): Try to make it work under
4344 * IPython/genutils.py (get_home_dir): Try to make it work under
4346 win9x also.
4345 win9x also.
4347
4346
4348 2002-03-20 Fernando Perez <fperez@colorado.edu>
4347 2002-03-20 Fernando Perez <fperez@colorado.edu>
4349
4348
4350 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4349 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4351 sys.displayhook untouched upon __init__.
4350 sys.displayhook untouched upon __init__.
4352
4351
4353 2002-03-19 Fernando Perez <fperez@colorado.edu>
4352 2002-03-19 Fernando Perez <fperez@colorado.edu>
4354
4353
4355 * Released 0.2.9 (for embedding bug, basically).
4354 * Released 0.2.9 (for embedding bug, basically).
4356
4355
4357 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4356 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4358 exceptions so that enclosing shell's state can be restored.
4357 exceptions so that enclosing shell's state can be restored.
4359
4358
4360 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4359 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4361 naming conventions in the .ipython/ dir.
4360 naming conventions in the .ipython/ dir.
4362
4361
4363 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4362 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4364 from delimiters list so filenames with - in them get expanded.
4363 from delimiters list so filenames with - in them get expanded.
4365
4364
4366 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4365 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4367 sys.displayhook not being properly restored after an embedded call.
4366 sys.displayhook not being properly restored after an embedded call.
4368
4367
4369 2002-03-18 Fernando Perez <fperez@colorado.edu>
4368 2002-03-18 Fernando Perez <fperez@colorado.edu>
4370
4369
4371 * Released 0.2.8
4370 * Released 0.2.8
4372
4371
4373 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4372 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4374 some files weren't being included in a -upgrade.
4373 some files weren't being included in a -upgrade.
4375 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4374 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4376 on' so that the first tab completes.
4375 on' so that the first tab completes.
4377 (InteractiveShell.handle_magic): fixed bug with spaces around
4376 (InteractiveShell.handle_magic): fixed bug with spaces around
4378 quotes breaking many magic commands.
4377 quotes breaking many magic commands.
4379
4378
4380 * setup.py: added note about ignoring the syntax error messages at
4379 * setup.py: added note about ignoring the syntax error messages at
4381 installation.
4380 installation.
4382
4381
4383 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4382 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4384 streamlining the gnuplot interface, now there's only one magic @gp.
4383 streamlining the gnuplot interface, now there's only one magic @gp.
4385
4384
4386 2002-03-17 Fernando Perez <fperez@colorado.edu>
4385 2002-03-17 Fernando Perez <fperez@colorado.edu>
4387
4386
4388 * IPython/UserConfig/magic_gnuplot.py: new name for the
4387 * IPython/UserConfig/magic_gnuplot.py: new name for the
4389 example-magic_pm.py file. Much enhanced system, now with a shell
4388 example-magic_pm.py file. Much enhanced system, now with a shell
4390 for communicating directly with gnuplot, one command at a time.
4389 for communicating directly with gnuplot, one command at a time.
4391
4390
4392 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4391 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4393 setting __name__=='__main__'.
4392 setting __name__=='__main__'.
4394
4393
4395 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4394 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4396 mini-shell for accessing gnuplot from inside ipython. Should
4395 mini-shell for accessing gnuplot from inside ipython. Should
4397 extend it later for grace access too. Inspired by Arnd's
4396 extend it later for grace access too. Inspired by Arnd's
4398 suggestion.
4397 suggestion.
4399
4398
4400 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4399 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4401 calling magic functions with () in their arguments. Thanks to Arnd
4400 calling magic functions with () in their arguments. Thanks to Arnd
4402 Baecker for pointing this to me.
4401 Baecker for pointing this to me.
4403
4402
4404 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4403 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4405 infinitely for integer or complex arrays (only worked with floats).
4404 infinitely for integer or complex arrays (only worked with floats).
4406
4405
4407 2002-03-16 Fernando Perez <fperez@colorado.edu>
4406 2002-03-16 Fernando Perez <fperez@colorado.edu>
4408
4407
4409 * setup.py: Merged setup and setup_windows into a single script
4408 * setup.py: Merged setup and setup_windows into a single script
4410 which properly handles things for windows users.
4409 which properly handles things for windows users.
4411
4410
4412 2002-03-15 Fernando Perez <fperez@colorado.edu>
4411 2002-03-15 Fernando Perez <fperez@colorado.edu>
4413
4412
4414 * Big change to the manual: now the magics are all automatically
4413 * Big change to the manual: now the magics are all automatically
4415 documented. This information is generated from their docstrings
4414 documented. This information is generated from their docstrings
4416 and put in a latex file included by the manual lyx file. This way
4415 and put in a latex file included by the manual lyx file. This way
4417 we get always up to date information for the magics. The manual
4416 we get always up to date information for the magics. The manual
4418 now also has proper version information, also auto-synced.
4417 now also has proper version information, also auto-synced.
4419
4418
4420 For this to work, an undocumented --magic_docstrings option was added.
4419 For this to work, an undocumented --magic_docstrings option was added.
4421
4420
4422 2002-03-13 Fernando Perez <fperez@colorado.edu>
4421 2002-03-13 Fernando Perez <fperez@colorado.edu>
4423
4422
4424 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4423 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4425 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4424 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4426
4425
4427 2002-03-12 Fernando Perez <fperez@colorado.edu>
4426 2002-03-12 Fernando Perez <fperez@colorado.edu>
4428
4427
4429 * IPython/ultraTB.py (TermColors): changed color escapes again to
4428 * IPython/ultraTB.py (TermColors): changed color escapes again to
4430 fix the (old, reintroduced) line-wrapping bug. Basically, if
4429 fix the (old, reintroduced) line-wrapping bug. Basically, if
4431 \001..\002 aren't given in the color escapes, lines get wrapped
4430 \001..\002 aren't given in the color escapes, lines get wrapped
4432 weirdly. But giving those screws up old xterms and emacs terms. So
4431 weirdly. But giving those screws up old xterms and emacs terms. So
4433 I added some logic for emacs terms to be ok, but I can't identify old
4432 I added some logic for emacs terms to be ok, but I can't identify old
4434 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4433 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4435
4434
4436 2002-03-10 Fernando Perez <fperez@colorado.edu>
4435 2002-03-10 Fernando Perez <fperez@colorado.edu>
4437
4436
4438 * IPython/usage.py (__doc__): Various documentation cleanups and
4437 * IPython/usage.py (__doc__): Various documentation cleanups and
4439 updates, both in usage docstrings and in the manual.
4438 updates, both in usage docstrings and in the manual.
4440
4439
4441 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4440 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4442 handling of caching. Set minimum acceptabe value for having a
4441 handling of caching. Set minimum acceptabe value for having a
4443 cache at 20 values.
4442 cache at 20 values.
4444
4443
4445 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4444 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4446 install_first_time function to a method, renamed it and added an
4445 install_first_time function to a method, renamed it and added an
4447 'upgrade' mode. Now people can update their config directory with
4446 'upgrade' mode. Now people can update their config directory with
4448 a simple command line switch (-upgrade, also new).
4447 a simple command line switch (-upgrade, also new).
4449
4448
4450 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4449 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4451 @file (convenient for automagic users under Python >= 2.2).
4450 @file (convenient for automagic users under Python >= 2.2).
4452 Removed @files (it seemed more like a plural than an abbrev. of
4451 Removed @files (it seemed more like a plural than an abbrev. of
4453 'file show').
4452 'file show').
4454
4453
4455 * IPython/iplib.py (install_first_time): Fixed crash if there were
4454 * IPython/iplib.py (install_first_time): Fixed crash if there were
4456 backup files ('~') in .ipython/ install directory.
4455 backup files ('~') in .ipython/ install directory.
4457
4456
4458 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4457 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4459 system. Things look fine, but these changes are fairly
4458 system. Things look fine, but these changes are fairly
4460 intrusive. Test them for a few days.
4459 intrusive. Test them for a few days.
4461
4460
4462 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4461 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4463 the prompts system. Now all in/out prompt strings are user
4462 the prompts system. Now all in/out prompt strings are user
4464 controllable. This is particularly useful for embedding, as one
4463 controllable. This is particularly useful for embedding, as one
4465 can tag embedded instances with particular prompts.
4464 can tag embedded instances with particular prompts.
4466
4465
4467 Also removed global use of sys.ps1/2, which now allows nested
4466 Also removed global use of sys.ps1/2, which now allows nested
4468 embeddings without any problems. Added command-line options for
4467 embeddings without any problems. Added command-line options for
4469 the prompt strings.
4468 the prompt strings.
4470
4469
4471 2002-03-08 Fernando Perez <fperez@colorado.edu>
4470 2002-03-08 Fernando Perez <fperez@colorado.edu>
4472
4471
4473 * IPython/UserConfig/example-embed-short.py (ipshell): added
4472 * IPython/UserConfig/example-embed-short.py (ipshell): added
4474 example file with the bare minimum code for embedding.
4473 example file with the bare minimum code for embedding.
4475
4474
4476 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4475 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4477 functionality for the embeddable shell to be activated/deactivated
4476 functionality for the embeddable shell to be activated/deactivated
4478 either globally or at each call.
4477 either globally or at each call.
4479
4478
4480 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4479 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4481 rewriting the prompt with '--->' for auto-inputs with proper
4480 rewriting the prompt with '--->' for auto-inputs with proper
4482 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4481 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4483 this is handled by the prompts class itself, as it should.
4482 this is handled by the prompts class itself, as it should.
4484
4483
4485 2002-03-05 Fernando Perez <fperez@colorado.edu>
4484 2002-03-05 Fernando Perez <fperez@colorado.edu>
4486
4485
4487 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4486 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4488 @logstart to avoid name clashes with the math log function.
4487 @logstart to avoid name clashes with the math log function.
4489
4488
4490 * Big updates to X/Emacs section of the manual.
4489 * Big updates to X/Emacs section of the manual.
4491
4490
4492 * Removed ipython_emacs. Milan explained to me how to pass
4491 * Removed ipython_emacs. Milan explained to me how to pass
4493 arguments to ipython through Emacs. Some day I'm going to end up
4492 arguments to ipython through Emacs. Some day I'm going to end up
4494 learning some lisp...
4493 learning some lisp...
4495
4494
4496 2002-03-04 Fernando Perez <fperez@colorado.edu>
4495 2002-03-04 Fernando Perez <fperez@colorado.edu>
4497
4496
4498 * IPython/ipython_emacs: Created script to be used as the
4497 * IPython/ipython_emacs: Created script to be used as the
4499 py-python-command Emacs variable so we can pass IPython
4498 py-python-command Emacs variable so we can pass IPython
4500 parameters. I can't figure out how to tell Emacs directly to pass
4499 parameters. I can't figure out how to tell Emacs directly to pass
4501 parameters to IPython, so a dummy shell script will do it.
4500 parameters to IPython, so a dummy shell script will do it.
4502
4501
4503 Other enhancements made for things to work better under Emacs'
4502 Other enhancements made for things to work better under Emacs'
4504 various types of terminals. Many thanks to Milan Zamazal
4503 various types of terminals. Many thanks to Milan Zamazal
4505 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4504 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4506
4505
4507 2002-03-01 Fernando Perez <fperez@colorado.edu>
4506 2002-03-01 Fernando Perez <fperez@colorado.edu>
4508
4507
4509 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4508 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4510 that loading of readline is now optional. This gives better
4509 that loading of readline is now optional. This gives better
4511 control to emacs users.
4510 control to emacs users.
4512
4511
4513 * IPython/ultraTB.py (__date__): Modified color escape sequences
4512 * IPython/ultraTB.py (__date__): Modified color escape sequences
4514 and now things work fine under xterm and in Emacs' term buffers
4513 and now things work fine under xterm and in Emacs' term buffers
4515 (though not shell ones). Well, in emacs you get colors, but all
4514 (though not shell ones). Well, in emacs you get colors, but all
4516 seem to be 'light' colors (no difference between dark and light
4515 seem to be 'light' colors (no difference between dark and light
4517 ones). But the garbage chars are gone, and also in xterms. It
4516 ones). But the garbage chars are gone, and also in xterms. It
4518 seems that now I'm using 'cleaner' ansi sequences.
4517 seems that now I'm using 'cleaner' ansi sequences.
4519
4518
4520 2002-02-21 Fernando Perez <fperez@colorado.edu>
4519 2002-02-21 Fernando Perez <fperez@colorado.edu>
4521
4520
4522 * Released 0.2.7 (mainly to publish the scoping fix).
4521 * Released 0.2.7 (mainly to publish the scoping fix).
4523
4522
4524 * IPython/Logger.py (Logger.logstate): added. A corresponding
4523 * IPython/Logger.py (Logger.logstate): added. A corresponding
4525 @logstate magic was created.
4524 @logstate magic was created.
4526
4525
4527 * IPython/Magic.py: fixed nested scoping problem under Python
4526 * IPython/Magic.py: fixed nested scoping problem under Python
4528 2.1.x (automagic wasn't working).
4527 2.1.x (automagic wasn't working).
4529
4528
4530 2002-02-20 Fernando Perez <fperez@colorado.edu>
4529 2002-02-20 Fernando Perez <fperez@colorado.edu>
4531
4530
4532 * Released 0.2.6.
4531 * Released 0.2.6.
4533
4532
4534 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4533 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4535 option so that logs can come out without any headers at all.
4534 option so that logs can come out without any headers at all.
4536
4535
4537 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4536 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4538 SciPy.
4537 SciPy.
4539
4538
4540 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4539 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4541 that embedded IPython calls don't require vars() to be explicitly
4540 that embedded IPython calls don't require vars() to be explicitly
4542 passed. Now they are extracted from the caller's frame (code
4541 passed. Now they are extracted from the caller's frame (code
4543 snatched from Eric Jones' weave). Added better documentation to
4542 snatched from Eric Jones' weave). Added better documentation to
4544 the section on embedding and the example file.
4543 the section on embedding and the example file.
4545
4544
4546 * IPython/genutils.py (page): Changed so that under emacs, it just
4545 * IPython/genutils.py (page): Changed so that under emacs, it just
4547 prints the string. You can then page up and down in the emacs
4546 prints the string. You can then page up and down in the emacs
4548 buffer itself. This is how the builtin help() works.
4547 buffer itself. This is how the builtin help() works.
4549
4548
4550 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4549 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4551 macro scoping: macros need to be executed in the user's namespace
4550 macro scoping: macros need to be executed in the user's namespace
4552 to work as if they had been typed by the user.
4551 to work as if they had been typed by the user.
4553
4552
4554 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4553 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4555 execute automatically (no need to type 'exec...'). They then
4554 execute automatically (no need to type 'exec...'). They then
4556 behave like 'true macros'. The printing system was also modified
4555 behave like 'true macros'. The printing system was also modified
4557 for this to work.
4556 for this to work.
4558
4557
4559 2002-02-19 Fernando Perez <fperez@colorado.edu>
4558 2002-02-19 Fernando Perez <fperez@colorado.edu>
4560
4559
4561 * IPython/genutils.py (page_file): new function for paging files
4560 * IPython/genutils.py (page_file): new function for paging files
4562 in an OS-independent way. Also necessary for file viewing to work
4561 in an OS-independent way. Also necessary for file viewing to work
4563 well inside Emacs buffers.
4562 well inside Emacs buffers.
4564 (page): Added checks for being in an emacs buffer.
4563 (page): Added checks for being in an emacs buffer.
4565 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4564 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4566 same bug in iplib.
4565 same bug in iplib.
4567
4566
4568 2002-02-18 Fernando Perez <fperez@colorado.edu>
4567 2002-02-18 Fernando Perez <fperez@colorado.edu>
4569
4568
4570 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4569 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4571 of readline so that IPython can work inside an Emacs buffer.
4570 of readline so that IPython can work inside an Emacs buffer.
4572
4571
4573 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4572 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4574 method signatures (they weren't really bugs, but it looks cleaner
4573 method signatures (they weren't really bugs, but it looks cleaner
4575 and keeps PyChecker happy).
4574 and keeps PyChecker happy).
4576
4575
4577 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4576 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4578 for implementing various user-defined hooks. Currently only
4577 for implementing various user-defined hooks. Currently only
4579 display is done.
4578 display is done.
4580
4579
4581 * IPython/Prompts.py (CachedOutput._display): changed display
4580 * IPython/Prompts.py (CachedOutput._display): changed display
4582 functions so that they can be dynamically changed by users easily.
4581 functions so that they can be dynamically changed by users easily.
4583
4582
4584 * IPython/Extensions/numeric_formats.py (num_display): added an
4583 * IPython/Extensions/numeric_formats.py (num_display): added an
4585 extension for printing NumPy arrays in flexible manners. It
4584 extension for printing NumPy arrays in flexible manners. It
4586 doesn't do anything yet, but all the structure is in
4585 doesn't do anything yet, but all the structure is in
4587 place. Ultimately the plan is to implement output format control
4586 place. Ultimately the plan is to implement output format control
4588 like in Octave.
4587 like in Octave.
4589
4588
4590 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4589 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4591 methods are found at run-time by all the automatic machinery.
4590 methods are found at run-time by all the automatic machinery.
4592
4591
4593 2002-02-17 Fernando Perez <fperez@colorado.edu>
4592 2002-02-17 Fernando Perez <fperez@colorado.edu>
4594
4593
4595 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4594 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4596 whole file a little.
4595 whole file a little.
4597
4596
4598 * ToDo: closed this document. Now there's a new_design.lyx
4597 * ToDo: closed this document. Now there's a new_design.lyx
4599 document for all new ideas. Added making a pdf of it for the
4598 document for all new ideas. Added making a pdf of it for the
4600 end-user distro.
4599 end-user distro.
4601
4600
4602 * IPython/Logger.py (Logger.switch_log): Created this to replace
4601 * IPython/Logger.py (Logger.switch_log): Created this to replace
4603 logon() and logoff(). It also fixes a nasty crash reported by
4602 logon() and logoff(). It also fixes a nasty crash reported by
4604 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4603 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4605
4604
4606 * IPython/iplib.py (complete): got auto-completion to work with
4605 * IPython/iplib.py (complete): got auto-completion to work with
4607 automagic (I had wanted this for a long time).
4606 automagic (I had wanted this for a long time).
4608
4607
4609 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4608 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4610 to @file, since file() is now a builtin and clashes with automagic
4609 to @file, since file() is now a builtin and clashes with automagic
4611 for @file.
4610 for @file.
4612
4611
4613 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4612 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4614 of this was previously in iplib, which had grown to more than 2000
4613 of this was previously in iplib, which had grown to more than 2000
4615 lines, way too long. No new functionality, but it makes managing
4614 lines, way too long. No new functionality, but it makes managing
4616 the code a bit easier.
4615 the code a bit easier.
4617
4616
4618 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4617 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4619 information to crash reports.
4618 information to crash reports.
4620
4619
4621 2002-02-12 Fernando Perez <fperez@colorado.edu>
4620 2002-02-12 Fernando Perez <fperez@colorado.edu>
4622
4621
4623 * Released 0.2.5.
4622 * Released 0.2.5.
4624
4623
4625 2002-02-11 Fernando Perez <fperez@colorado.edu>
4624 2002-02-11 Fernando Perez <fperez@colorado.edu>
4626
4625
4627 * Wrote a relatively complete Windows installer. It puts
4626 * Wrote a relatively complete Windows installer. It puts
4628 everything in place, creates Start Menu entries and fixes the
4627 everything in place, creates Start Menu entries and fixes the
4629 color issues. Nothing fancy, but it works.
4628 color issues. Nothing fancy, but it works.
4630
4629
4631 2002-02-10 Fernando Perez <fperez@colorado.edu>
4630 2002-02-10 Fernando Perez <fperez@colorado.edu>
4632
4631
4633 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4632 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4634 os.path.expanduser() call so that we can type @run ~/myfile.py and
4633 os.path.expanduser() call so that we can type @run ~/myfile.py and
4635 have thigs work as expected.
4634 have thigs work as expected.
4636
4635
4637 * IPython/genutils.py (page): fixed exception handling so things
4636 * IPython/genutils.py (page): fixed exception handling so things
4638 work both in Unix and Windows correctly. Quitting a pager triggers
4637 work both in Unix and Windows correctly. Quitting a pager triggers
4639 an IOError/broken pipe in Unix, and in windows not finding a pager
4638 an IOError/broken pipe in Unix, and in windows not finding a pager
4640 is also an IOError, so I had to actually look at the return value
4639 is also an IOError, so I had to actually look at the return value
4641 of the exception, not just the exception itself. Should be ok now.
4640 of the exception, not just the exception itself. Should be ok now.
4642
4641
4643 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4642 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4644 modified to allow case-insensitive color scheme changes.
4643 modified to allow case-insensitive color scheme changes.
4645
4644
4646 2002-02-09 Fernando Perez <fperez@colorado.edu>
4645 2002-02-09 Fernando Perez <fperez@colorado.edu>
4647
4646
4648 * IPython/genutils.py (native_line_ends): new function to leave
4647 * IPython/genutils.py (native_line_ends): new function to leave
4649 user config files with os-native line-endings.
4648 user config files with os-native line-endings.
4650
4649
4651 * README and manual updates.
4650 * README and manual updates.
4652
4651
4653 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4652 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4654 instead of StringType to catch Unicode strings.
4653 instead of StringType to catch Unicode strings.
4655
4654
4656 * IPython/genutils.py (filefind): fixed bug for paths with
4655 * IPython/genutils.py (filefind): fixed bug for paths with
4657 embedded spaces (very common in Windows).
4656 embedded spaces (very common in Windows).
4658
4657
4659 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4658 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4660 files under Windows, so that they get automatically associated
4659 files under Windows, so that they get automatically associated
4661 with a text editor. Windows makes it a pain to handle
4660 with a text editor. Windows makes it a pain to handle
4662 extension-less files.
4661 extension-less files.
4663
4662
4664 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4663 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4665 warning about readline only occur for Posix. In Windows there's no
4664 warning about readline only occur for Posix. In Windows there's no
4666 way to get readline, so why bother with the warning.
4665 way to get readline, so why bother with the warning.
4667
4666
4668 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4667 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4669 for __str__ instead of dir(self), since dir() changed in 2.2.
4668 for __str__ instead of dir(self), since dir() changed in 2.2.
4670
4669
4671 * Ported to Windows! Tested on XP, I suspect it should work fine
4670 * Ported to Windows! Tested on XP, I suspect it should work fine
4672 on NT/2000, but I don't think it will work on 98 et al. That
4671 on NT/2000, but I don't think it will work on 98 et al. That
4673 series of Windows is such a piece of junk anyway that I won't try
4672 series of Windows is such a piece of junk anyway that I won't try
4674 porting it there. The XP port was straightforward, showed a few
4673 porting it there. The XP port was straightforward, showed a few
4675 bugs here and there (fixed all), in particular some string
4674 bugs here and there (fixed all), in particular some string
4676 handling stuff which required considering Unicode strings (which
4675 handling stuff which required considering Unicode strings (which
4677 Windows uses). This is good, but hasn't been too tested :) No
4676 Windows uses). This is good, but hasn't been too tested :) No
4678 fancy installer yet, I'll put a note in the manual so people at
4677 fancy installer yet, I'll put a note in the manual so people at
4679 least make manually a shortcut.
4678 least make manually a shortcut.
4680
4679
4681 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4680 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4682 into a single one, "colors". This now controls both prompt and
4681 into a single one, "colors". This now controls both prompt and
4683 exception color schemes, and can be changed both at startup
4682 exception color schemes, and can be changed both at startup
4684 (either via command-line switches or via ipythonrc files) and at
4683 (either via command-line switches or via ipythonrc files) and at
4685 runtime, with @colors.
4684 runtime, with @colors.
4686 (Magic.magic_run): renamed @prun to @run and removed the old
4685 (Magic.magic_run): renamed @prun to @run and removed the old
4687 @run. The two were too similar to warrant keeping both.
4686 @run. The two were too similar to warrant keeping both.
4688
4687
4689 2002-02-03 Fernando Perez <fperez@colorado.edu>
4688 2002-02-03 Fernando Perez <fperez@colorado.edu>
4690
4689
4691 * IPython/iplib.py (install_first_time): Added comment on how to
4690 * IPython/iplib.py (install_first_time): Added comment on how to
4692 configure the color options for first-time users. Put a <return>
4691 configure the color options for first-time users. Put a <return>
4693 request at the end so that small-terminal users get a chance to
4692 request at the end so that small-terminal users get a chance to
4694 read the startup info.
4693 read the startup info.
4695
4694
4696 2002-01-23 Fernando Perez <fperez@colorado.edu>
4695 2002-01-23 Fernando Perez <fperez@colorado.edu>
4697
4696
4698 * IPython/iplib.py (CachedOutput.update): Changed output memory
4697 * IPython/iplib.py (CachedOutput.update): Changed output memory
4699 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4698 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4700 input history we still use _i. Did this b/c these variable are
4699 input history we still use _i. Did this b/c these variable are
4701 very commonly used in interactive work, so the less we need to
4700 very commonly used in interactive work, so the less we need to
4702 type the better off we are.
4701 type the better off we are.
4703 (Magic.magic_prun): updated @prun to better handle the namespaces
4702 (Magic.magic_prun): updated @prun to better handle the namespaces
4704 the file will run in, including a fix for __name__ not being set
4703 the file will run in, including a fix for __name__ not being set
4705 before.
4704 before.
4706
4705
4707 2002-01-20 Fernando Perez <fperez@colorado.edu>
4706 2002-01-20 Fernando Perez <fperez@colorado.edu>
4708
4707
4709 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4708 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4710 extra garbage for Python 2.2. Need to look more carefully into
4709 extra garbage for Python 2.2. Need to look more carefully into
4711 this later.
4710 this later.
4712
4711
4713 2002-01-19 Fernando Perez <fperez@colorado.edu>
4712 2002-01-19 Fernando Perez <fperez@colorado.edu>
4714
4713
4715 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4714 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4716 display SyntaxError exceptions properly formatted when they occur
4715 display SyntaxError exceptions properly formatted when they occur
4717 (they can be triggered by imported code).
4716 (they can be triggered by imported code).
4718
4717
4719 2002-01-18 Fernando Perez <fperez@colorado.edu>
4718 2002-01-18 Fernando Perez <fperez@colorado.edu>
4720
4719
4721 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4720 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4722 SyntaxError exceptions are reported nicely formatted, instead of
4721 SyntaxError exceptions are reported nicely formatted, instead of
4723 spitting out only offset information as before.
4722 spitting out only offset information as before.
4724 (Magic.magic_prun): Added the @prun function for executing
4723 (Magic.magic_prun): Added the @prun function for executing
4725 programs with command line args inside IPython.
4724 programs with command line args inside IPython.
4726
4725
4727 2002-01-16 Fernando Perez <fperez@colorado.edu>
4726 2002-01-16 Fernando Perez <fperez@colorado.edu>
4728
4727
4729 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4728 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4730 to *not* include the last item given in a range. This brings their
4729 to *not* include the last item given in a range. This brings their
4731 behavior in line with Python's slicing:
4730 behavior in line with Python's slicing:
4732 a[n1:n2] -> a[n1]...a[n2-1]
4731 a[n1:n2] -> a[n1]...a[n2-1]
4733 It may be a bit less convenient, but I prefer to stick to Python's
4732 It may be a bit less convenient, but I prefer to stick to Python's
4734 conventions *everywhere*, so users never have to wonder.
4733 conventions *everywhere*, so users never have to wonder.
4735 (Magic.magic_macro): Added @macro function to ease the creation of
4734 (Magic.magic_macro): Added @macro function to ease the creation of
4736 macros.
4735 macros.
4737
4736
4738 2002-01-05 Fernando Perez <fperez@colorado.edu>
4737 2002-01-05 Fernando Perez <fperez@colorado.edu>
4739
4738
4740 * Released 0.2.4.
4739 * Released 0.2.4.
4741
4740
4742 * IPython/iplib.py (Magic.magic_pdef):
4741 * IPython/iplib.py (Magic.magic_pdef):
4743 (InteractiveShell.safe_execfile): report magic lines and error
4742 (InteractiveShell.safe_execfile): report magic lines and error
4744 lines without line numbers so one can easily copy/paste them for
4743 lines without line numbers so one can easily copy/paste them for
4745 re-execution.
4744 re-execution.
4746
4745
4747 * Updated manual with recent changes.
4746 * Updated manual with recent changes.
4748
4747
4749 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4748 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4750 docstring printing when class? is called. Very handy for knowing
4749 docstring printing when class? is called. Very handy for knowing
4751 how to create class instances (as long as __init__ is well
4750 how to create class instances (as long as __init__ is well
4752 documented, of course :)
4751 documented, of course :)
4753 (Magic.magic_doc): print both class and constructor docstrings.
4752 (Magic.magic_doc): print both class and constructor docstrings.
4754 (Magic.magic_pdef): give constructor info if passed a class and
4753 (Magic.magic_pdef): give constructor info if passed a class and
4755 __call__ info for callable object instances.
4754 __call__ info for callable object instances.
4756
4755
4757 2002-01-04 Fernando Perez <fperez@colorado.edu>
4756 2002-01-04 Fernando Perez <fperez@colorado.edu>
4758
4757
4759 * Made deep_reload() off by default. It doesn't always work
4758 * Made deep_reload() off by default. It doesn't always work
4760 exactly as intended, so it's probably safer to have it off. It's
4759 exactly as intended, so it's probably safer to have it off. It's
4761 still available as dreload() anyway, so nothing is lost.
4760 still available as dreload() anyway, so nothing is lost.
4762
4761
4763 2002-01-02 Fernando Perez <fperez@colorado.edu>
4762 2002-01-02 Fernando Perez <fperez@colorado.edu>
4764
4763
4765 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4764 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4766 so I wanted an updated release).
4765 so I wanted an updated release).
4767
4766
4768 2001-12-27 Fernando Perez <fperez@colorado.edu>
4767 2001-12-27 Fernando Perez <fperez@colorado.edu>
4769
4768
4770 * IPython/iplib.py (InteractiveShell.interact): Added the original
4769 * IPython/iplib.py (InteractiveShell.interact): Added the original
4771 code from 'code.py' for this module in order to change the
4770 code from 'code.py' for this module in order to change the
4772 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4771 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4773 the history cache would break when the user hit Ctrl-C, and
4772 the history cache would break when the user hit Ctrl-C, and
4774 interact() offers no way to add any hooks to it.
4773 interact() offers no way to add any hooks to it.
4775
4774
4776 2001-12-23 Fernando Perez <fperez@colorado.edu>
4775 2001-12-23 Fernando Perez <fperez@colorado.edu>
4777
4776
4778 * setup.py: added check for 'MANIFEST' before trying to remove
4777 * setup.py: added check for 'MANIFEST' before trying to remove
4779 it. Thanks to Sean Reifschneider.
4778 it. Thanks to Sean Reifschneider.
4780
4779
4781 2001-12-22 Fernando Perez <fperez@colorado.edu>
4780 2001-12-22 Fernando Perez <fperez@colorado.edu>
4782
4781
4783 * Released 0.2.2.
4782 * Released 0.2.2.
4784
4783
4785 * Finished (reasonably) writing the manual. Later will add the
4784 * Finished (reasonably) writing the manual. Later will add the
4786 python-standard navigation stylesheets, but for the time being
4785 python-standard navigation stylesheets, but for the time being
4787 it's fairly complete. Distribution will include html and pdf
4786 it's fairly complete. Distribution will include html and pdf
4788 versions.
4787 versions.
4789
4788
4790 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4789 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4791 (MayaVi author).
4790 (MayaVi author).
4792
4791
4793 2001-12-21 Fernando Perez <fperez@colorado.edu>
4792 2001-12-21 Fernando Perez <fperez@colorado.edu>
4794
4793
4795 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4794 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4796 good public release, I think (with the manual and the distutils
4795 good public release, I think (with the manual and the distutils
4797 installer). The manual can use some work, but that can go
4796 installer). The manual can use some work, but that can go
4798 slowly. Otherwise I think it's quite nice for end users. Next
4797 slowly. Otherwise I think it's quite nice for end users. Next
4799 summer, rewrite the guts of it...
4798 summer, rewrite the guts of it...
4800
4799
4801 * Changed format of ipythonrc files to use whitespace as the
4800 * Changed format of ipythonrc files to use whitespace as the
4802 separator instead of an explicit '='. Cleaner.
4801 separator instead of an explicit '='. Cleaner.
4803
4802
4804 2001-12-20 Fernando Perez <fperez@colorado.edu>
4803 2001-12-20 Fernando Perez <fperez@colorado.edu>
4805
4804
4806 * Started a manual in LyX. For now it's just a quick merge of the
4805 * Started a manual in LyX. For now it's just a quick merge of the
4807 various internal docstrings and READMEs. Later it may grow into a
4806 various internal docstrings and READMEs. Later it may grow into a
4808 nice, full-blown manual.
4807 nice, full-blown manual.
4809
4808
4810 * Set up a distutils based installer. Installation should now be
4809 * Set up a distutils based installer. Installation should now be
4811 trivially simple for end-users.
4810 trivially simple for end-users.
4812
4811
4813 2001-12-11 Fernando Perez <fperez@colorado.edu>
4812 2001-12-11 Fernando Perez <fperez@colorado.edu>
4814
4813
4815 * Released 0.2.0. First public release, announced it at
4814 * Released 0.2.0. First public release, announced it at
4816 comp.lang.python. From now on, just bugfixes...
4815 comp.lang.python. From now on, just bugfixes...
4817
4816
4818 * Went through all the files, set copyright/license notices and
4817 * Went through all the files, set copyright/license notices and
4819 cleaned up things. Ready for release.
4818 cleaned up things. Ready for release.
4820
4819
4821 2001-12-10 Fernando Perez <fperez@colorado.edu>
4820 2001-12-10 Fernando Perez <fperez@colorado.edu>
4822
4821
4823 * Changed the first-time installer not to use tarfiles. It's more
4822 * Changed the first-time installer not to use tarfiles. It's more
4824 robust now and less unix-dependent. Also makes it easier for
4823 robust now and less unix-dependent. Also makes it easier for
4825 people to later upgrade versions.
4824 people to later upgrade versions.
4826
4825
4827 * Changed @exit to @abort to reflect the fact that it's pretty
4826 * Changed @exit to @abort to reflect the fact that it's pretty
4828 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4827 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4829 becomes significant only when IPyhton is embedded: in that case,
4828 becomes significant only when IPyhton is embedded: in that case,
4830 C-D closes IPython only, but @abort kills the enclosing program
4829 C-D closes IPython only, but @abort kills the enclosing program
4831 too (unless it had called IPython inside a try catching
4830 too (unless it had called IPython inside a try catching
4832 SystemExit).
4831 SystemExit).
4833
4832
4834 * Created Shell module which exposes the actuall IPython Shell
4833 * Created Shell module which exposes the actuall IPython Shell
4835 classes, currently the normal and the embeddable one. This at
4834 classes, currently the normal and the embeddable one. This at
4836 least offers a stable interface we won't need to change when
4835 least offers a stable interface we won't need to change when
4837 (later) the internals are rewritten. That rewrite will be confined
4836 (later) the internals are rewritten. That rewrite will be confined
4838 to iplib and ipmaker, but the Shell interface should remain as is.
4837 to iplib and ipmaker, but the Shell interface should remain as is.
4839
4838
4840 * Added embed module which offers an embeddable IPShell object,
4839 * Added embed module which offers an embeddable IPShell object,
4841 useful to fire up IPython *inside* a running program. Great for
4840 useful to fire up IPython *inside* a running program. Great for
4842 debugging or dynamical data analysis.
4841 debugging or dynamical data analysis.
4843
4842
4844 2001-12-08 Fernando Perez <fperez@colorado.edu>
4843 2001-12-08 Fernando Perez <fperez@colorado.edu>
4845
4844
4846 * Fixed small bug preventing seeing info from methods of defined
4845 * Fixed small bug preventing seeing info from methods of defined
4847 objects (incorrect namespace in _ofind()).
4846 objects (incorrect namespace in _ofind()).
4848
4847
4849 * Documentation cleanup. Moved the main usage docstrings to a
4848 * Documentation cleanup. Moved the main usage docstrings to a
4850 separate file, usage.py (cleaner to maintain, and hopefully in the
4849 separate file, usage.py (cleaner to maintain, and hopefully in the
4851 future some perlpod-like way of producing interactive, man and
4850 future some perlpod-like way of producing interactive, man and
4852 html docs out of it will be found).
4851 html docs out of it will be found).
4853
4852
4854 * Added @profile to see your profile at any time.
4853 * Added @profile to see your profile at any time.
4855
4854
4856 * Added @p as an alias for 'print'. It's especially convenient if
4855 * Added @p as an alias for 'print'. It's especially convenient if
4857 using automagic ('p x' prints x).
4856 using automagic ('p x' prints x).
4858
4857
4859 * Small cleanups and fixes after a pychecker run.
4858 * Small cleanups and fixes after a pychecker run.
4860
4859
4861 * Changed the @cd command to handle @cd - and @cd -<n> for
4860 * Changed the @cd command to handle @cd - and @cd -<n> for
4862 visiting any directory in _dh.
4861 visiting any directory in _dh.
4863
4862
4864 * Introduced _dh, a history of visited directories. @dhist prints
4863 * Introduced _dh, a history of visited directories. @dhist prints
4865 it out with numbers.
4864 it out with numbers.
4866
4865
4867 2001-12-07 Fernando Perez <fperez@colorado.edu>
4866 2001-12-07 Fernando Perez <fperez@colorado.edu>
4868
4867
4869 * Released 0.1.22
4868 * Released 0.1.22
4870
4869
4871 * Made initialization a bit more robust against invalid color
4870 * Made initialization a bit more robust against invalid color
4872 options in user input (exit, not traceback-crash).
4871 options in user input (exit, not traceback-crash).
4873
4872
4874 * Changed the bug crash reporter to write the report only in the
4873 * Changed the bug crash reporter to write the report only in the
4875 user's .ipython directory. That way IPython won't litter people's
4874 user's .ipython directory. That way IPython won't litter people's
4876 hard disks with crash files all over the place. Also print on
4875 hard disks with crash files all over the place. Also print on
4877 screen the necessary mail command.
4876 screen the necessary mail command.
4878
4877
4879 * With the new ultraTB, implemented LightBG color scheme for light
4878 * With the new ultraTB, implemented LightBG color scheme for light
4880 background terminals. A lot of people like white backgrounds, so I
4879 background terminals. A lot of people like white backgrounds, so I
4881 guess we should at least give them something readable.
4880 guess we should at least give them something readable.
4882
4881
4883 2001-12-06 Fernando Perez <fperez@colorado.edu>
4882 2001-12-06 Fernando Perez <fperez@colorado.edu>
4884
4883
4885 * Modified the structure of ultraTB. Now there's a proper class
4884 * Modified the structure of ultraTB. Now there's a proper class
4886 for tables of color schemes which allow adding schemes easily and
4885 for tables of color schemes which allow adding schemes easily and
4887 switching the active scheme without creating a new instance every
4886 switching the active scheme without creating a new instance every
4888 time (which was ridiculous). The syntax for creating new schemes
4887 time (which was ridiculous). The syntax for creating new schemes
4889 is also cleaner. I think ultraTB is finally done, with a clean
4888 is also cleaner. I think ultraTB is finally done, with a clean
4890 class structure. Names are also much cleaner (now there's proper
4889 class structure. Names are also much cleaner (now there's proper
4891 color tables, no need for every variable to also have 'color' in
4890 color tables, no need for every variable to also have 'color' in
4892 its name).
4891 its name).
4893
4892
4894 * Broke down genutils into separate files. Now genutils only
4893 * Broke down genutils into separate files. Now genutils only
4895 contains utility functions, and classes have been moved to their
4894 contains utility functions, and classes have been moved to their
4896 own files (they had enough independent functionality to warrant
4895 own files (they had enough independent functionality to warrant
4897 it): ConfigLoader, OutputTrap, Struct.
4896 it): ConfigLoader, OutputTrap, Struct.
4898
4897
4899 2001-12-05 Fernando Perez <fperez@colorado.edu>
4898 2001-12-05 Fernando Perez <fperez@colorado.edu>
4900
4899
4901 * IPython turns 21! Released version 0.1.21, as a candidate for
4900 * IPython turns 21! Released version 0.1.21, as a candidate for
4902 public consumption. If all goes well, release in a few days.
4901 public consumption. If all goes well, release in a few days.
4903
4902
4904 * Fixed path bug (files in Extensions/ directory wouldn't be found
4903 * Fixed path bug (files in Extensions/ directory wouldn't be found
4905 unless IPython/ was explicitly in sys.path).
4904 unless IPython/ was explicitly in sys.path).
4906
4905
4907 * Extended the FlexCompleter class as MagicCompleter to allow
4906 * Extended the FlexCompleter class as MagicCompleter to allow
4908 completion of @-starting lines.
4907 completion of @-starting lines.
4909
4908
4910 * Created __release__.py file as a central repository for release
4909 * Created __release__.py file as a central repository for release
4911 info that other files can read from.
4910 info that other files can read from.
4912
4911
4913 * Fixed small bug in logging: when logging was turned on in
4912 * Fixed small bug in logging: when logging was turned on in
4914 mid-session, old lines with special meanings (!@?) were being
4913 mid-session, old lines with special meanings (!@?) were being
4915 logged without the prepended comment, which is necessary since
4914 logged without the prepended comment, which is necessary since
4916 they are not truly valid python syntax. This should make session
4915 they are not truly valid python syntax. This should make session
4917 restores produce less errors.
4916 restores produce less errors.
4918
4917
4919 * The namespace cleanup forced me to make a FlexCompleter class
4918 * The namespace cleanup forced me to make a FlexCompleter class
4920 which is nothing but a ripoff of rlcompleter, but with selectable
4919 which is nothing but a ripoff of rlcompleter, but with selectable
4921 namespace (rlcompleter only works in __main__.__dict__). I'll try
4920 namespace (rlcompleter only works in __main__.__dict__). I'll try
4922 to submit a note to the authors to see if this change can be
4921 to submit a note to the authors to see if this change can be
4923 incorporated in future rlcompleter releases (Dec.6: done)
4922 incorporated in future rlcompleter releases (Dec.6: done)
4924
4923
4925 * More fixes to namespace handling. It was a mess! Now all
4924 * More fixes to namespace handling. It was a mess! Now all
4926 explicit references to __main__.__dict__ are gone (except when
4925 explicit references to __main__.__dict__ are gone (except when
4927 really needed) and everything is handled through the namespace
4926 really needed) and everything is handled through the namespace
4928 dicts in the IPython instance. We seem to be getting somewhere
4927 dicts in the IPython instance. We seem to be getting somewhere
4929 with this, finally...
4928 with this, finally...
4930
4929
4931 * Small documentation updates.
4930 * Small documentation updates.
4932
4931
4933 * Created the Extensions directory under IPython (with an
4932 * Created the Extensions directory under IPython (with an
4934 __init__.py). Put the PhysicalQ stuff there. This directory should
4933 __init__.py). Put the PhysicalQ stuff there. This directory should
4935 be used for all special-purpose extensions.
4934 be used for all special-purpose extensions.
4936
4935
4937 * File renaming:
4936 * File renaming:
4938 ipythonlib --> ipmaker
4937 ipythonlib --> ipmaker
4939 ipplib --> iplib
4938 ipplib --> iplib
4940 This makes a bit more sense in terms of what these files actually do.
4939 This makes a bit more sense in terms of what these files actually do.
4941
4940
4942 * Moved all the classes and functions in ipythonlib to ipplib, so
4941 * Moved all the classes and functions in ipythonlib to ipplib, so
4943 now ipythonlib only has make_IPython(). This will ease up its
4942 now ipythonlib only has make_IPython(). This will ease up its
4944 splitting in smaller functional chunks later.
4943 splitting in smaller functional chunks later.
4945
4944
4946 * Cleaned up (done, I think) output of @whos. Better column
4945 * Cleaned up (done, I think) output of @whos. Better column
4947 formatting, and now shows str(var) for as much as it can, which is
4946 formatting, and now shows str(var) for as much as it can, which is
4948 typically what one gets with a 'print var'.
4947 typically what one gets with a 'print var'.
4949
4948
4950 2001-12-04 Fernando Perez <fperez@colorado.edu>
4949 2001-12-04 Fernando Perez <fperez@colorado.edu>
4951
4950
4952 * Fixed namespace problems. Now builtin/IPyhton/user names get
4951 * Fixed namespace problems. Now builtin/IPyhton/user names get
4953 properly reported in their namespace. Internal namespace handling
4952 properly reported in their namespace. Internal namespace handling
4954 is finally getting decent (not perfect yet, but much better than
4953 is finally getting decent (not perfect yet, but much better than
4955 the ad-hoc mess we had).
4954 the ad-hoc mess we had).
4956
4955
4957 * Removed -exit option. If people just want to run a python
4956 * Removed -exit option. If people just want to run a python
4958 script, that's what the normal interpreter is for. Less
4957 script, that's what the normal interpreter is for. Less
4959 unnecessary options, less chances for bugs.
4958 unnecessary options, less chances for bugs.
4960
4959
4961 * Added a crash handler which generates a complete post-mortem if
4960 * Added a crash handler which generates a complete post-mortem if
4962 IPython crashes. This will help a lot in tracking bugs down the
4961 IPython crashes. This will help a lot in tracking bugs down the
4963 road.
4962 road.
4964
4963
4965 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4964 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4966 which were boud to functions being reassigned would bypass the
4965 which were boud to functions being reassigned would bypass the
4967 logger, breaking the sync of _il with the prompt counter. This
4966 logger, breaking the sync of _il with the prompt counter. This
4968 would then crash IPython later when a new line was logged.
4967 would then crash IPython later when a new line was logged.
4969
4968
4970 2001-12-02 Fernando Perez <fperez@colorado.edu>
4969 2001-12-02 Fernando Perez <fperez@colorado.edu>
4971
4970
4972 * Made IPython a package. This means people don't have to clutter
4971 * Made IPython a package. This means people don't have to clutter
4973 their sys.path with yet another directory. Changed the INSTALL
4972 their sys.path with yet another directory. Changed the INSTALL
4974 file accordingly.
4973 file accordingly.
4975
4974
4976 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4975 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4977 sorts its output (so @who shows it sorted) and @whos formats the
4976 sorts its output (so @who shows it sorted) and @whos formats the
4978 table according to the width of the first column. Nicer, easier to
4977 table according to the width of the first column. Nicer, easier to
4979 read. Todo: write a generic table_format() which takes a list of
4978 read. Todo: write a generic table_format() which takes a list of
4980 lists and prints it nicely formatted, with optional row/column
4979 lists and prints it nicely formatted, with optional row/column
4981 separators and proper padding and justification.
4980 separators and proper padding and justification.
4982
4981
4983 * Released 0.1.20
4982 * Released 0.1.20
4984
4983
4985 * Fixed bug in @log which would reverse the inputcache list (a
4984 * Fixed bug in @log which would reverse the inputcache list (a
4986 copy operation was missing).
4985 copy operation was missing).
4987
4986
4988 * Code cleanup. @config was changed to use page(). Better, since
4987 * Code cleanup. @config was changed to use page(). Better, since
4989 its output is always quite long.
4988 its output is always quite long.
4990
4989
4991 * Itpl is back as a dependency. I was having too many problems
4990 * Itpl is back as a dependency. I was having too many problems
4992 getting the parametric aliases to work reliably, and it's just
4991 getting the parametric aliases to work reliably, and it's just
4993 easier to code weird string operations with it than playing %()s
4992 easier to code weird string operations with it than playing %()s
4994 games. It's only ~6k, so I don't think it's too big a deal.
4993 games. It's only ~6k, so I don't think it's too big a deal.
4995
4994
4996 * Found (and fixed) a very nasty bug with history. !lines weren't
4995 * Found (and fixed) a very nasty bug with history. !lines weren't
4997 getting cached, and the out of sync caches would crash
4996 getting cached, and the out of sync caches would crash
4998 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4997 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4999 division of labor a bit better. Bug fixed, cleaner structure.
4998 division of labor a bit better. Bug fixed, cleaner structure.
5000
4999
5001 2001-12-01 Fernando Perez <fperez@colorado.edu>
5000 2001-12-01 Fernando Perez <fperez@colorado.edu>
5002
5001
5003 * Released 0.1.19
5002 * Released 0.1.19
5004
5003
5005 * Added option -n to @hist to prevent line number printing. Much
5004 * Added option -n to @hist to prevent line number printing. Much
5006 easier to copy/paste code this way.
5005 easier to copy/paste code this way.
5007
5006
5008 * Created global _il to hold the input list. Allows easy
5007 * Created global _il to hold the input list. Allows easy
5009 re-execution of blocks of code by slicing it (inspired by Janko's
5008 re-execution of blocks of code by slicing it (inspired by Janko's
5010 comment on 'macros').
5009 comment on 'macros').
5011
5010
5012 * Small fixes and doc updates.
5011 * Small fixes and doc updates.
5013
5012
5014 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5013 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5015 much too fragile with automagic. Handles properly multi-line
5014 much too fragile with automagic. Handles properly multi-line
5016 statements and takes parameters.
5015 statements and takes parameters.
5017
5016
5018 2001-11-30 Fernando Perez <fperez@colorado.edu>
5017 2001-11-30 Fernando Perez <fperez@colorado.edu>
5019
5018
5020 * Version 0.1.18 released.
5019 * Version 0.1.18 released.
5021
5020
5022 * Fixed nasty namespace bug in initial module imports.
5021 * Fixed nasty namespace bug in initial module imports.
5023
5022
5024 * Added copyright/license notes to all code files (except
5023 * Added copyright/license notes to all code files (except
5025 DPyGetOpt). For the time being, LGPL. That could change.
5024 DPyGetOpt). For the time being, LGPL. That could change.
5026
5025
5027 * Rewrote a much nicer README, updated INSTALL, cleaned up
5026 * Rewrote a much nicer README, updated INSTALL, cleaned up
5028 ipythonrc-* samples.
5027 ipythonrc-* samples.
5029
5028
5030 * Overall code/documentation cleanup. Basically ready for
5029 * Overall code/documentation cleanup. Basically ready for
5031 release. Only remaining thing: licence decision (LGPL?).
5030 release. Only remaining thing: licence decision (LGPL?).
5032
5031
5033 * Converted load_config to a class, ConfigLoader. Now recursion
5032 * Converted load_config to a class, ConfigLoader. Now recursion
5034 control is better organized. Doesn't include the same file twice.
5033 control is better organized. Doesn't include the same file twice.
5035
5034
5036 2001-11-29 Fernando Perez <fperez@colorado.edu>
5035 2001-11-29 Fernando Perez <fperez@colorado.edu>
5037
5036
5038 * Got input history working. Changed output history variables from
5037 * Got input history working. Changed output history variables from
5039 _p to _o so that _i is for input and _o for output. Just cleaner
5038 _p to _o so that _i is for input and _o for output. Just cleaner
5040 convention.
5039 convention.
5041
5040
5042 * Implemented parametric aliases. This pretty much allows the
5041 * Implemented parametric aliases. This pretty much allows the
5043 alias system to offer full-blown shell convenience, I think.
5042 alias system to offer full-blown shell convenience, I think.
5044
5043
5045 * Version 0.1.17 released, 0.1.18 opened.
5044 * Version 0.1.17 released, 0.1.18 opened.
5046
5045
5047 * dot_ipython/ipythonrc (alias): added documentation.
5046 * dot_ipython/ipythonrc (alias): added documentation.
5048 (xcolor): Fixed small bug (xcolors -> xcolor)
5047 (xcolor): Fixed small bug (xcolors -> xcolor)
5049
5048
5050 * Changed the alias system. Now alias is a magic command to define
5049 * Changed the alias system. Now alias is a magic command to define
5051 aliases just like the shell. Rationale: the builtin magics should
5050 aliases just like the shell. Rationale: the builtin magics should
5052 be there for things deeply connected to IPython's
5051 be there for things deeply connected to IPython's
5053 architecture. And this is a much lighter system for what I think
5052 architecture. And this is a much lighter system for what I think
5054 is the really important feature: allowing users to define quickly
5053 is the really important feature: allowing users to define quickly
5055 magics that will do shell things for them, so they can customize
5054 magics that will do shell things for them, so they can customize
5056 IPython easily to match their work habits. If someone is really
5055 IPython easily to match their work habits. If someone is really
5057 desperate to have another name for a builtin alias, they can
5056 desperate to have another name for a builtin alias, they can
5058 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5057 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5059 works.
5058 works.
5060
5059
5061 2001-11-28 Fernando Perez <fperez@colorado.edu>
5060 2001-11-28 Fernando Perez <fperez@colorado.edu>
5062
5061
5063 * Changed @file so that it opens the source file at the proper
5062 * Changed @file so that it opens the source file at the proper
5064 line. Since it uses less, if your EDITOR environment is
5063 line. Since it uses less, if your EDITOR environment is
5065 configured, typing v will immediately open your editor of choice
5064 configured, typing v will immediately open your editor of choice
5066 right at the line where the object is defined. Not as quick as
5065 right at the line where the object is defined. Not as quick as
5067 having a direct @edit command, but for all intents and purposes it
5066 having a direct @edit command, but for all intents and purposes it
5068 works. And I don't have to worry about writing @edit to deal with
5067 works. And I don't have to worry about writing @edit to deal with
5069 all the editors, less does that.
5068 all the editors, less does that.
5070
5069
5071 * Version 0.1.16 released, 0.1.17 opened.
5070 * Version 0.1.16 released, 0.1.17 opened.
5072
5071
5073 * Fixed some nasty bugs in the page/page_dumb combo that could
5072 * Fixed some nasty bugs in the page/page_dumb combo that could
5074 crash IPython.
5073 crash IPython.
5075
5074
5076 2001-11-27 Fernando Perez <fperez@colorado.edu>
5075 2001-11-27 Fernando Perez <fperez@colorado.edu>
5077
5076
5078 * Version 0.1.15 released, 0.1.16 opened.
5077 * Version 0.1.15 released, 0.1.16 opened.
5079
5078
5080 * Finally got ? and ?? to work for undefined things: now it's
5079 * Finally got ? and ?? to work for undefined things: now it's
5081 possible to type {}.get? and get information about the get method
5080 possible to type {}.get? and get information about the get method
5082 of dicts, or os.path? even if only os is defined (so technically
5081 of dicts, or os.path? even if only os is defined (so technically
5083 os.path isn't). Works at any level. For example, after import os,
5082 os.path isn't). Works at any level. For example, after import os,
5084 os?, os.path?, os.path.abspath? all work. This is great, took some
5083 os?, os.path?, os.path.abspath? all work. This is great, took some
5085 work in _ofind.
5084 work in _ofind.
5086
5085
5087 * Fixed more bugs with logging. The sanest way to do it was to add
5086 * Fixed more bugs with logging. The sanest way to do it was to add
5088 to @log a 'mode' parameter. Killed two in one shot (this mode
5087 to @log a 'mode' parameter. Killed two in one shot (this mode
5089 option was a request of Janko's). I think it's finally clean
5088 option was a request of Janko's). I think it's finally clean
5090 (famous last words).
5089 (famous last words).
5091
5090
5092 * Added a page_dumb() pager which does a decent job of paging on
5091 * Added a page_dumb() pager which does a decent job of paging on
5093 screen, if better things (like less) aren't available. One less
5092 screen, if better things (like less) aren't available. One less
5094 unix dependency (someday maybe somebody will port this to
5093 unix dependency (someday maybe somebody will port this to
5095 windows).
5094 windows).
5096
5095
5097 * Fixed problem in magic_log: would lock of logging out if log
5096 * Fixed problem in magic_log: would lock of logging out if log
5098 creation failed (because it would still think it had succeeded).
5097 creation failed (because it would still think it had succeeded).
5099
5098
5100 * Improved the page() function using curses to auto-detect screen
5099 * Improved the page() function using curses to auto-detect screen
5101 size. Now it can make a much better decision on whether to print
5100 size. Now it can make a much better decision on whether to print
5102 or page a string. Option screen_length was modified: a value 0
5101 or page a string. Option screen_length was modified: a value 0
5103 means auto-detect, and that's the default now.
5102 means auto-detect, and that's the default now.
5104
5103
5105 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5104 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5106 go out. I'll test it for a few days, then talk to Janko about
5105 go out. I'll test it for a few days, then talk to Janko about
5107 licences and announce it.
5106 licences and announce it.
5108
5107
5109 * Fixed the length of the auto-generated ---> prompt which appears
5108 * Fixed the length of the auto-generated ---> prompt which appears
5110 for auto-parens and auto-quotes. Getting this right isn't trivial,
5109 for auto-parens and auto-quotes. Getting this right isn't trivial,
5111 with all the color escapes, different prompt types and optional
5110 with all the color escapes, different prompt types and optional
5112 separators. But it seems to be working in all the combinations.
5111 separators. But it seems to be working in all the combinations.
5113
5112
5114 2001-11-26 Fernando Perez <fperez@colorado.edu>
5113 2001-11-26 Fernando Perez <fperez@colorado.edu>
5115
5114
5116 * Wrote a regexp filter to get option types from the option names
5115 * Wrote a regexp filter to get option types from the option names
5117 string. This eliminates the need to manually keep two duplicate
5116 string. This eliminates the need to manually keep two duplicate
5118 lists.
5117 lists.
5119
5118
5120 * Removed the unneeded check_option_names. Now options are handled
5119 * Removed the unneeded check_option_names. Now options are handled
5121 in a much saner manner and it's easy to visually check that things
5120 in a much saner manner and it's easy to visually check that things
5122 are ok.
5121 are ok.
5123
5122
5124 * Updated version numbers on all files I modified to carry a
5123 * Updated version numbers on all files I modified to carry a
5125 notice so Janko and Nathan have clear version markers.
5124 notice so Janko and Nathan have clear version markers.
5126
5125
5127 * Updated docstring for ultraTB with my changes. I should send
5126 * Updated docstring for ultraTB with my changes. I should send
5128 this to Nathan.
5127 this to Nathan.
5129
5128
5130 * Lots of small fixes. Ran everything through pychecker again.
5129 * Lots of small fixes. Ran everything through pychecker again.
5131
5130
5132 * Made loading of deep_reload an cmd line option. If it's not too
5131 * Made loading of deep_reload an cmd line option. If it's not too
5133 kosher, now people can just disable it. With -nodeep_reload it's
5132 kosher, now people can just disable it. With -nodeep_reload it's
5134 still available as dreload(), it just won't overwrite reload().
5133 still available as dreload(), it just won't overwrite reload().
5135
5134
5136 * Moved many options to the no| form (-opt and -noopt
5135 * Moved many options to the no| form (-opt and -noopt
5137 accepted). Cleaner.
5136 accepted). Cleaner.
5138
5137
5139 * Changed magic_log so that if called with no parameters, it uses
5138 * Changed magic_log so that if called with no parameters, it uses
5140 'rotate' mode. That way auto-generated logs aren't automatically
5139 'rotate' mode. That way auto-generated logs aren't automatically
5141 over-written. For normal logs, now a backup is made if it exists
5140 over-written. For normal logs, now a backup is made if it exists
5142 (only 1 level of backups). A new 'backup' mode was added to the
5141 (only 1 level of backups). A new 'backup' mode was added to the
5143 Logger class to support this. This was a request by Janko.
5142 Logger class to support this. This was a request by Janko.
5144
5143
5145 * Added @logoff/@logon to stop/restart an active log.
5144 * Added @logoff/@logon to stop/restart an active log.
5146
5145
5147 * Fixed a lot of bugs in log saving/replay. It was pretty
5146 * Fixed a lot of bugs in log saving/replay. It was pretty
5148 broken. Now special lines (!@,/) appear properly in the command
5147 broken. Now special lines (!@,/) appear properly in the command
5149 history after a log replay.
5148 history after a log replay.
5150
5149
5151 * Tried and failed to implement full session saving via pickle. My
5150 * Tried and failed to implement full session saving via pickle. My
5152 idea was to pickle __main__.__dict__, but modules can't be
5151 idea was to pickle __main__.__dict__, but modules can't be
5153 pickled. This would be a better alternative to replaying logs, but
5152 pickled. This would be a better alternative to replaying logs, but
5154 seems quite tricky to get to work. Changed -session to be called
5153 seems quite tricky to get to work. Changed -session to be called
5155 -logplay, which more accurately reflects what it does. And if we
5154 -logplay, which more accurately reflects what it does. And if we
5156 ever get real session saving working, -session is now available.
5155 ever get real session saving working, -session is now available.
5157
5156
5158 * Implemented color schemes for prompts also. As for tracebacks,
5157 * Implemented color schemes for prompts also. As for tracebacks,
5159 currently only NoColor and Linux are supported. But now the
5158 currently only NoColor and Linux are supported. But now the
5160 infrastructure is in place, based on a generic ColorScheme
5159 infrastructure is in place, based on a generic ColorScheme
5161 class. So writing and activating new schemes both for the prompts
5160 class. So writing and activating new schemes both for the prompts
5162 and the tracebacks should be straightforward.
5161 and the tracebacks should be straightforward.
5163
5162
5164 * Version 0.1.13 released, 0.1.14 opened.
5163 * Version 0.1.13 released, 0.1.14 opened.
5165
5164
5166 * Changed handling of options for output cache. Now counter is
5165 * Changed handling of options for output cache. Now counter is
5167 hardwired starting at 1 and one specifies the maximum number of
5166 hardwired starting at 1 and one specifies the maximum number of
5168 entries *in the outcache* (not the max prompt counter). This is
5167 entries *in the outcache* (not the max prompt counter). This is
5169 much better, since many statements won't increase the cache
5168 much better, since many statements won't increase the cache
5170 count. It also eliminated some confusing options, now there's only
5169 count. It also eliminated some confusing options, now there's only
5171 one: cache_size.
5170 one: cache_size.
5172
5171
5173 * Added 'alias' magic function and magic_alias option in the
5172 * Added 'alias' magic function and magic_alias option in the
5174 ipythonrc file. Now the user can easily define whatever names he
5173 ipythonrc file. Now the user can easily define whatever names he
5175 wants for the magic functions without having to play weird
5174 wants for the magic functions without having to play weird
5176 namespace games. This gives IPython a real shell-like feel.
5175 namespace games. This gives IPython a real shell-like feel.
5177
5176
5178 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5177 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5179 @ or not).
5178 @ or not).
5180
5179
5181 This was one of the last remaining 'visible' bugs (that I know
5180 This was one of the last remaining 'visible' bugs (that I know
5182 of). I think if I can clean up the session loading so it works
5181 of). I think if I can clean up the session loading so it works
5183 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5182 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5184 about licensing).
5183 about licensing).
5185
5184
5186 2001-11-25 Fernando Perez <fperez@colorado.edu>
5185 2001-11-25 Fernando Perez <fperez@colorado.edu>
5187
5186
5188 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5187 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5189 there's a cleaner distinction between what ? and ?? show.
5188 there's a cleaner distinction between what ? and ?? show.
5190
5189
5191 * Added screen_length option. Now the user can define his own
5190 * Added screen_length option. Now the user can define his own
5192 screen size for page() operations.
5191 screen size for page() operations.
5193
5192
5194 * Implemented magic shell-like functions with automatic code
5193 * Implemented magic shell-like functions with automatic code
5195 generation. Now adding another function is just a matter of adding
5194 generation. Now adding another function is just a matter of adding
5196 an entry to a dict, and the function is dynamically generated at
5195 an entry to a dict, and the function is dynamically generated at
5197 run-time. Python has some really cool features!
5196 run-time. Python has some really cool features!
5198
5197
5199 * Renamed many options to cleanup conventions a little. Now all
5198 * Renamed many options to cleanup conventions a little. Now all
5200 are lowercase, and only underscores where needed. Also in the code
5199 are lowercase, and only underscores where needed. Also in the code
5201 option name tables are clearer.
5200 option name tables are clearer.
5202
5201
5203 * Changed prompts a little. Now input is 'In [n]:' instead of
5202 * Changed prompts a little. Now input is 'In [n]:' instead of
5204 'In[n]:='. This allows it the numbers to be aligned with the
5203 'In[n]:='. This allows it the numbers to be aligned with the
5205 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5204 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5206 Python (it was a Mathematica thing). The '...' continuation prompt
5205 Python (it was a Mathematica thing). The '...' continuation prompt
5207 was also changed a little to align better.
5206 was also changed a little to align better.
5208
5207
5209 * Fixed bug when flushing output cache. Not all _p<n> variables
5208 * Fixed bug when flushing output cache. Not all _p<n> variables
5210 exist, so their deletion needs to be wrapped in a try:
5209 exist, so their deletion needs to be wrapped in a try:
5211
5210
5212 * Figured out how to properly use inspect.formatargspec() (it
5211 * Figured out how to properly use inspect.formatargspec() (it
5213 requires the args preceded by *). So I removed all the code from
5212 requires the args preceded by *). So I removed all the code from
5214 _get_pdef in Magic, which was just replicating that.
5213 _get_pdef in Magic, which was just replicating that.
5215
5214
5216 * Added test to prefilter to allow redefining magic function names
5215 * Added test to prefilter to allow redefining magic function names
5217 as variables. This is ok, since the @ form is always available,
5216 as variables. This is ok, since the @ form is always available,
5218 but whe should allow the user to define a variable called 'ls' if
5217 but whe should allow the user to define a variable called 'ls' if
5219 he needs it.
5218 he needs it.
5220
5219
5221 * Moved the ToDo information from README into a separate ToDo.
5220 * Moved the ToDo information from README into a separate ToDo.
5222
5221
5223 * General code cleanup and small bugfixes. I think it's close to a
5222 * General code cleanup and small bugfixes. I think it's close to a
5224 state where it can be released, obviously with a big 'beta'
5223 state where it can be released, obviously with a big 'beta'
5225 warning on it.
5224 warning on it.
5226
5225
5227 * Got the magic function split to work. Now all magics are defined
5226 * Got the magic function split to work. Now all magics are defined
5228 in a separate class. It just organizes things a bit, and now
5227 in a separate class. It just organizes things a bit, and now
5229 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5228 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5230 was too long).
5229 was too long).
5231
5230
5232 * Changed @clear to @reset to avoid potential confusions with
5231 * Changed @clear to @reset to avoid potential confusions with
5233 the shell command clear. Also renamed @cl to @clear, which does
5232 the shell command clear. Also renamed @cl to @clear, which does
5234 exactly what people expect it to from their shell experience.
5233 exactly what people expect it to from their shell experience.
5235
5234
5236 Added a check to the @reset command (since it's so
5235 Added a check to the @reset command (since it's so
5237 destructive, it's probably a good idea to ask for confirmation).
5236 destructive, it's probably a good idea to ask for confirmation).
5238 But now reset only works for full namespace resetting. Since the
5237 But now reset only works for full namespace resetting. Since the
5239 del keyword is already there for deleting a few specific
5238 del keyword is already there for deleting a few specific
5240 variables, I don't see the point of having a redundant magic
5239 variables, I don't see the point of having a redundant magic
5241 function for the same task.
5240 function for the same task.
5242
5241
5243 2001-11-24 Fernando Perez <fperez@colorado.edu>
5242 2001-11-24 Fernando Perez <fperez@colorado.edu>
5244
5243
5245 * Updated the builtin docs (esp. the ? ones).
5244 * Updated the builtin docs (esp. the ? ones).
5246
5245
5247 * Ran all the code through pychecker. Not terribly impressed with
5246 * Ran all the code through pychecker. Not terribly impressed with
5248 it: lots of spurious warnings and didn't really find anything of
5247 it: lots of spurious warnings and didn't really find anything of
5249 substance (just a few modules being imported and not used).
5248 substance (just a few modules being imported and not used).
5250
5249
5251 * Implemented the new ultraTB functionality into IPython. New
5250 * Implemented the new ultraTB functionality into IPython. New
5252 option: xcolors. This chooses color scheme. xmode now only selects
5251 option: xcolors. This chooses color scheme. xmode now only selects
5253 between Plain and Verbose. Better orthogonality.
5252 between Plain and Verbose. Better orthogonality.
5254
5253
5255 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5254 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5256 mode and color scheme for the exception handlers. Now it's
5255 mode and color scheme for the exception handlers. Now it's
5257 possible to have the verbose traceback with no coloring.
5256 possible to have the verbose traceback with no coloring.
5258
5257
5259 2001-11-23 Fernando Perez <fperez@colorado.edu>
5258 2001-11-23 Fernando Perez <fperez@colorado.edu>
5260
5259
5261 * Version 0.1.12 released, 0.1.13 opened.
5260 * Version 0.1.12 released, 0.1.13 opened.
5262
5261
5263 * Removed option to set auto-quote and auto-paren escapes by
5262 * Removed option to set auto-quote and auto-paren escapes by
5264 user. The chances of breaking valid syntax are just too high. If
5263 user. The chances of breaking valid syntax are just too high. If
5265 someone *really* wants, they can always dig into the code.
5264 someone *really* wants, they can always dig into the code.
5266
5265
5267 * Made prompt separators configurable.
5266 * Made prompt separators configurable.
5268
5267
5269 2001-11-22 Fernando Perez <fperez@colorado.edu>
5268 2001-11-22 Fernando Perez <fperez@colorado.edu>
5270
5269
5271 * Small bugfixes in many places.
5270 * Small bugfixes in many places.
5272
5271
5273 * Removed the MyCompleter class from ipplib. It seemed redundant
5272 * Removed the MyCompleter class from ipplib. It seemed redundant
5274 with the C-p,C-n history search functionality. Less code to
5273 with the C-p,C-n history search functionality. Less code to
5275 maintain.
5274 maintain.
5276
5275
5277 * Moved all the original ipython.py code into ipythonlib.py. Right
5276 * Moved all the original ipython.py code into ipythonlib.py. Right
5278 now it's just one big dump into a function called make_IPython, so
5277 now it's just one big dump into a function called make_IPython, so
5279 no real modularity has been gained. But at least it makes the
5278 no real modularity has been gained. But at least it makes the
5280 wrapper script tiny, and since ipythonlib is a module, it gets
5279 wrapper script tiny, and since ipythonlib is a module, it gets
5281 compiled and startup is much faster.
5280 compiled and startup is much faster.
5282
5281
5283 This is a reasobably 'deep' change, so we should test it for a
5282 This is a reasobably 'deep' change, so we should test it for a
5284 while without messing too much more with the code.
5283 while without messing too much more with the code.
5285
5284
5286 2001-11-21 Fernando Perez <fperez@colorado.edu>
5285 2001-11-21 Fernando Perez <fperez@colorado.edu>
5287
5286
5288 * Version 0.1.11 released, 0.1.12 opened for further work.
5287 * Version 0.1.11 released, 0.1.12 opened for further work.
5289
5288
5290 * Removed dependency on Itpl. It was only needed in one place. It
5289 * Removed dependency on Itpl. It was only needed in one place. It
5291 would be nice if this became part of python, though. It makes life
5290 would be nice if this became part of python, though. It makes life
5292 *a lot* easier in some cases.
5291 *a lot* easier in some cases.
5293
5292
5294 * Simplified the prefilter code a bit. Now all handlers are
5293 * Simplified the prefilter code a bit. Now all handlers are
5295 expected to explicitly return a value (at least a blank string).
5294 expected to explicitly return a value (at least a blank string).
5296
5295
5297 * Heavy edits in ipplib. Removed the help system altogether. Now
5296 * Heavy edits in ipplib. Removed the help system altogether. Now
5298 obj?/?? is used for inspecting objects, a magic @doc prints
5297 obj?/?? is used for inspecting objects, a magic @doc prints
5299 docstrings, and full-blown Python help is accessed via the 'help'
5298 docstrings, and full-blown Python help is accessed via the 'help'
5300 keyword. This cleans up a lot of code (less to maintain) and does
5299 keyword. This cleans up a lot of code (less to maintain) and does
5301 the job. Since 'help' is now a standard Python component, might as
5300 the job. Since 'help' is now a standard Python component, might as
5302 well use it and remove duplicate functionality.
5301 well use it and remove duplicate functionality.
5303
5302
5304 Also removed the option to use ipplib as a standalone program. By
5303 Also removed the option to use ipplib as a standalone program. By
5305 now it's too dependent on other parts of IPython to function alone.
5304 now it's too dependent on other parts of IPython to function alone.
5306
5305
5307 * Fixed bug in genutils.pager. It would crash if the pager was
5306 * Fixed bug in genutils.pager. It would crash if the pager was
5308 exited immediately after opening (broken pipe).
5307 exited immediately after opening (broken pipe).
5309
5308
5310 * Trimmed down the VerboseTB reporting a little. The header is
5309 * Trimmed down the VerboseTB reporting a little. The header is
5311 much shorter now and the repeated exception arguments at the end
5310 much shorter now and the repeated exception arguments at the end
5312 have been removed. For interactive use the old header seemed a bit
5311 have been removed. For interactive use the old header seemed a bit
5313 excessive.
5312 excessive.
5314
5313
5315 * Fixed small bug in output of @whos for variables with multi-word
5314 * Fixed small bug in output of @whos for variables with multi-word
5316 types (only first word was displayed).
5315 types (only first word was displayed).
5317
5316
5318 2001-11-17 Fernando Perez <fperez@colorado.edu>
5317 2001-11-17 Fernando Perez <fperez@colorado.edu>
5319
5318
5320 * Version 0.1.10 released, 0.1.11 opened for further work.
5319 * Version 0.1.10 released, 0.1.11 opened for further work.
5321
5320
5322 * Modified dirs and friends. dirs now *returns* the stack (not
5321 * Modified dirs and friends. dirs now *returns* the stack (not
5323 prints), so one can manipulate it as a variable. Convenient to
5322 prints), so one can manipulate it as a variable. Convenient to
5324 travel along many directories.
5323 travel along many directories.
5325
5324
5326 * Fixed bug in magic_pdef: would only work with functions with
5325 * Fixed bug in magic_pdef: would only work with functions with
5327 arguments with default values.
5326 arguments with default values.
5328
5327
5329 2001-11-14 Fernando Perez <fperez@colorado.edu>
5328 2001-11-14 Fernando Perez <fperez@colorado.edu>
5330
5329
5331 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5330 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5332 example with IPython. Various other minor fixes and cleanups.
5331 example with IPython. Various other minor fixes and cleanups.
5333
5332
5334 * Version 0.1.9 released, 0.1.10 opened for further work.
5333 * Version 0.1.9 released, 0.1.10 opened for further work.
5335
5334
5336 * Added sys.path to the list of directories searched in the
5335 * Added sys.path to the list of directories searched in the
5337 execfile= option. It used to be the current directory and the
5336 execfile= option. It used to be the current directory and the
5338 user's IPYTHONDIR only.
5337 user's IPYTHONDIR only.
5339
5338
5340 2001-11-13 Fernando Perez <fperez@colorado.edu>
5339 2001-11-13 Fernando Perez <fperez@colorado.edu>
5341
5340
5342 * Reinstated the raw_input/prefilter separation that Janko had
5341 * Reinstated the raw_input/prefilter separation that Janko had
5343 initially. This gives a more convenient setup for extending the
5342 initially. This gives a more convenient setup for extending the
5344 pre-processor from the outside: raw_input always gets a string,
5343 pre-processor from the outside: raw_input always gets a string,
5345 and prefilter has to process it. We can then redefine prefilter
5344 and prefilter has to process it. We can then redefine prefilter
5346 from the outside and implement extensions for special
5345 from the outside and implement extensions for special
5347 purposes.
5346 purposes.
5348
5347
5349 Today I got one for inputting PhysicalQuantity objects
5348 Today I got one for inputting PhysicalQuantity objects
5350 (from Scientific) without needing any function calls at
5349 (from Scientific) without needing any function calls at
5351 all. Extremely convenient, and it's all done as a user-level
5350 all. Extremely convenient, and it's all done as a user-level
5352 extension (no IPython code was touched). Now instead of:
5351 extension (no IPython code was touched). Now instead of:
5353 a = PhysicalQuantity(4.2,'m/s**2')
5352 a = PhysicalQuantity(4.2,'m/s**2')
5354 one can simply say
5353 one can simply say
5355 a = 4.2 m/s**2
5354 a = 4.2 m/s**2
5356 or even
5355 or even
5357 a = 4.2 m/s^2
5356 a = 4.2 m/s^2
5358
5357
5359 I use this, but it's also a proof of concept: IPython really is
5358 I use this, but it's also a proof of concept: IPython really is
5360 fully user-extensible, even at the level of the parsing of the
5359 fully user-extensible, even at the level of the parsing of the
5361 command line. It's not trivial, but it's perfectly doable.
5360 command line. It's not trivial, but it's perfectly doable.
5362
5361
5363 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5362 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5364 the problem of modules being loaded in the inverse order in which
5363 the problem of modules being loaded in the inverse order in which
5365 they were defined in
5364 they were defined in
5366
5365
5367 * Version 0.1.8 released, 0.1.9 opened for further work.
5366 * Version 0.1.8 released, 0.1.9 opened for further work.
5368
5367
5369 * Added magics pdef, source and file. They respectively show the
5368 * Added magics pdef, source and file. They respectively show the
5370 definition line ('prototype' in C), source code and full python
5369 definition line ('prototype' in C), source code and full python
5371 file for any callable object. The object inspector oinfo uses
5370 file for any callable object. The object inspector oinfo uses
5372 these to show the same information.
5371 these to show the same information.
5373
5372
5374 * Version 0.1.7 released, 0.1.8 opened for further work.
5373 * Version 0.1.7 released, 0.1.8 opened for further work.
5375
5374
5376 * Separated all the magic functions into a class called Magic. The
5375 * Separated all the magic functions into a class called Magic. The
5377 InteractiveShell class was becoming too big for Xemacs to handle
5376 InteractiveShell class was becoming too big for Xemacs to handle
5378 (de-indenting a line would lock it up for 10 seconds while it
5377 (de-indenting a line would lock it up for 10 seconds while it
5379 backtracked on the whole class!)
5378 backtracked on the whole class!)
5380
5379
5381 FIXME: didn't work. It can be done, but right now namespaces are
5380 FIXME: didn't work. It can be done, but right now namespaces are
5382 all messed up. Do it later (reverted it for now, so at least
5381 all messed up. Do it later (reverted it for now, so at least
5383 everything works as before).
5382 everything works as before).
5384
5383
5385 * Got the object introspection system (magic_oinfo) working! I
5384 * Got the object introspection system (magic_oinfo) working! I
5386 think this is pretty much ready for release to Janko, so he can
5385 think this is pretty much ready for release to Janko, so he can
5387 test it for a while and then announce it. Pretty much 100% of what
5386 test it for a while and then announce it. Pretty much 100% of what
5388 I wanted for the 'phase 1' release is ready. Happy, tired.
5387 I wanted for the 'phase 1' release is ready. Happy, tired.
5389
5388
5390 2001-11-12 Fernando Perez <fperez@colorado.edu>
5389 2001-11-12 Fernando Perez <fperez@colorado.edu>
5391
5390
5392 * Version 0.1.6 released, 0.1.7 opened for further work.
5391 * Version 0.1.6 released, 0.1.7 opened for further work.
5393
5392
5394 * Fixed bug in printing: it used to test for truth before
5393 * Fixed bug in printing: it used to test for truth before
5395 printing, so 0 wouldn't print. Now checks for None.
5394 printing, so 0 wouldn't print. Now checks for None.
5396
5395
5397 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5396 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5398 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5397 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5399 reaches by hand into the outputcache. Think of a better way to do
5398 reaches by hand into the outputcache. Think of a better way to do
5400 this later.
5399 this later.
5401
5400
5402 * Various small fixes thanks to Nathan's comments.
5401 * Various small fixes thanks to Nathan's comments.
5403
5402
5404 * Changed magic_pprint to magic_Pprint. This way it doesn't
5403 * Changed magic_pprint to magic_Pprint. This way it doesn't
5405 collide with pprint() and the name is consistent with the command
5404 collide with pprint() and the name is consistent with the command
5406 line option.
5405 line option.
5407
5406
5408 * Changed prompt counter behavior to be fully like
5407 * Changed prompt counter behavior to be fully like
5409 Mathematica's. That is, even input that doesn't return a result
5408 Mathematica's. That is, even input that doesn't return a result
5410 raises the prompt counter. The old behavior was kind of confusing
5409 raises the prompt counter. The old behavior was kind of confusing
5411 (getting the same prompt number several times if the operation
5410 (getting the same prompt number several times if the operation
5412 didn't return a result).
5411 didn't return a result).
5413
5412
5414 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5413 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5415
5414
5416 * Fixed -Classic mode (wasn't working anymore).
5415 * Fixed -Classic mode (wasn't working anymore).
5417
5416
5418 * Added colored prompts using Nathan's new code. Colors are
5417 * Added colored prompts using Nathan's new code. Colors are
5419 currently hardwired, they can be user-configurable. For
5418 currently hardwired, they can be user-configurable. For
5420 developers, they can be chosen in file ipythonlib.py, at the
5419 developers, they can be chosen in file ipythonlib.py, at the
5421 beginning of the CachedOutput class def.
5420 beginning of the CachedOutput class def.
5422
5421
5423 2001-11-11 Fernando Perez <fperez@colorado.edu>
5422 2001-11-11 Fernando Perez <fperez@colorado.edu>
5424
5423
5425 * Version 0.1.5 released, 0.1.6 opened for further work.
5424 * Version 0.1.5 released, 0.1.6 opened for further work.
5426
5425
5427 * Changed magic_env to *return* the environment as a dict (not to
5426 * Changed magic_env to *return* the environment as a dict (not to
5428 print it). This way it prints, but it can also be processed.
5427 print it). This way it prints, but it can also be processed.
5429
5428
5430 * Added Verbose exception reporting to interactive
5429 * Added Verbose exception reporting to interactive
5431 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5430 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5432 traceback. Had to make some changes to the ultraTB file. This is
5431 traceback. Had to make some changes to the ultraTB file. This is
5433 probably the last 'big' thing in my mental todo list. This ties
5432 probably the last 'big' thing in my mental todo list. This ties
5434 in with the next entry:
5433 in with the next entry:
5435
5434
5436 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5435 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5437 has to specify is Plain, Color or Verbose for all exception
5436 has to specify is Plain, Color or Verbose for all exception
5438 handling.
5437 handling.
5439
5438
5440 * Removed ShellServices option. All this can really be done via
5439 * Removed ShellServices option. All this can really be done via
5441 the magic system. It's easier to extend, cleaner and has automatic
5440 the magic system. It's easier to extend, cleaner and has automatic
5442 namespace protection and documentation.
5441 namespace protection and documentation.
5443
5442
5444 2001-11-09 Fernando Perez <fperez@colorado.edu>
5443 2001-11-09 Fernando Perez <fperez@colorado.edu>
5445
5444
5446 * Fixed bug in output cache flushing (missing parameter to
5445 * Fixed bug in output cache flushing (missing parameter to
5447 __init__). Other small bugs fixed (found using pychecker).
5446 __init__). Other small bugs fixed (found using pychecker).
5448
5447
5449 * Version 0.1.4 opened for bugfixing.
5448 * Version 0.1.4 opened for bugfixing.
5450
5449
5451 2001-11-07 Fernando Perez <fperez@colorado.edu>
5450 2001-11-07 Fernando Perez <fperez@colorado.edu>
5452
5451
5453 * Version 0.1.3 released, mainly because of the raw_input bug.
5452 * Version 0.1.3 released, mainly because of the raw_input bug.
5454
5453
5455 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5454 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5456 and when testing for whether things were callable, a call could
5455 and when testing for whether things were callable, a call could
5457 actually be made to certain functions. They would get called again
5456 actually be made to certain functions. They would get called again
5458 once 'really' executed, with a resulting double call. A disaster
5457 once 'really' executed, with a resulting double call. A disaster
5459 in many cases (list.reverse() would never work!).
5458 in many cases (list.reverse() would never work!).
5460
5459
5461 * Removed prefilter() function, moved its code to raw_input (which
5460 * Removed prefilter() function, moved its code to raw_input (which
5462 after all was just a near-empty caller for prefilter). This saves
5461 after all was just a near-empty caller for prefilter). This saves
5463 a function call on every prompt, and simplifies the class a tiny bit.
5462 a function call on every prompt, and simplifies the class a tiny bit.
5464
5463
5465 * Fix _ip to __ip name in magic example file.
5464 * Fix _ip to __ip name in magic example file.
5466
5465
5467 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5466 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5468 work with non-gnu versions of tar.
5467 work with non-gnu versions of tar.
5469
5468
5470 2001-11-06 Fernando Perez <fperez@colorado.edu>
5469 2001-11-06 Fernando Perez <fperez@colorado.edu>
5471
5470
5472 * Version 0.1.2. Just to keep track of the recent changes.
5471 * Version 0.1.2. Just to keep track of the recent changes.
5473
5472
5474 * Fixed nasty bug in output prompt routine. It used to check 'if
5473 * Fixed nasty bug in output prompt routine. It used to check 'if
5475 arg != None...'. Problem is, this fails if arg implements a
5474 arg != None...'. Problem is, this fails if arg implements a
5476 special comparison (__cmp__) which disallows comparing to
5475 special comparison (__cmp__) which disallows comparing to
5477 None. Found it when trying to use the PhysicalQuantity module from
5476 None. Found it when trying to use the PhysicalQuantity module from
5478 ScientificPython.
5477 ScientificPython.
5479
5478
5480 2001-11-05 Fernando Perez <fperez@colorado.edu>
5479 2001-11-05 Fernando Perez <fperez@colorado.edu>
5481
5480
5482 * Also added dirs. Now the pushd/popd/dirs family functions
5481 * Also added dirs. Now the pushd/popd/dirs family functions
5483 basically like the shell, with the added convenience of going home
5482 basically like the shell, with the added convenience of going home
5484 when called with no args.
5483 when called with no args.
5485
5484
5486 * pushd/popd slightly modified to mimic shell behavior more
5485 * pushd/popd slightly modified to mimic shell behavior more
5487 closely.
5486 closely.
5488
5487
5489 * Added env,pushd,popd from ShellServices as magic functions. I
5488 * Added env,pushd,popd from ShellServices as magic functions. I
5490 think the cleanest will be to port all desired functions from
5489 think the cleanest will be to port all desired functions from
5491 ShellServices as magics and remove ShellServices altogether. This
5490 ShellServices as magics and remove ShellServices altogether. This
5492 will provide a single, clean way of adding functionality
5491 will provide a single, clean way of adding functionality
5493 (shell-type or otherwise) to IP.
5492 (shell-type or otherwise) to IP.
5494
5493
5495 2001-11-04 Fernando Perez <fperez@colorado.edu>
5494 2001-11-04 Fernando Perez <fperez@colorado.edu>
5496
5495
5497 * Added .ipython/ directory to sys.path. This way users can keep
5496 * Added .ipython/ directory to sys.path. This way users can keep
5498 customizations there and access them via import.
5497 customizations there and access them via import.
5499
5498
5500 2001-11-03 Fernando Perez <fperez@colorado.edu>
5499 2001-11-03 Fernando Perez <fperez@colorado.edu>
5501
5500
5502 * Opened version 0.1.1 for new changes.
5501 * Opened version 0.1.1 for new changes.
5503
5502
5504 * Changed version number to 0.1.0: first 'public' release, sent to
5503 * Changed version number to 0.1.0: first 'public' release, sent to
5505 Nathan and Janko.
5504 Nathan and Janko.
5506
5505
5507 * Lots of small fixes and tweaks.
5506 * Lots of small fixes and tweaks.
5508
5507
5509 * Minor changes to whos format. Now strings are shown, snipped if
5508 * Minor changes to whos format. Now strings are shown, snipped if
5510 too long.
5509 too long.
5511
5510
5512 * Changed ShellServices to work on __main__ so they show up in @who
5511 * Changed ShellServices to work on __main__ so they show up in @who
5513
5512
5514 * Help also works with ? at the end of a line:
5513 * Help also works with ? at the end of a line:
5515 ?sin and sin?
5514 ?sin and sin?
5516 both produce the same effect. This is nice, as often I use the
5515 both produce the same effect. This is nice, as often I use the
5517 tab-complete to find the name of a method, but I used to then have
5516 tab-complete to find the name of a method, but I used to then have
5518 to go to the beginning of the line to put a ? if I wanted more
5517 to go to the beginning of the line to put a ? if I wanted more
5519 info. Now I can just add the ? and hit return. Convenient.
5518 info. Now I can just add the ? and hit return. Convenient.
5520
5519
5521 2001-11-02 Fernando Perez <fperez@colorado.edu>
5520 2001-11-02 Fernando Perez <fperez@colorado.edu>
5522
5521
5523 * Python version check (>=2.1) added.
5522 * Python version check (>=2.1) added.
5524
5523
5525 * Added LazyPython documentation. At this point the docs are quite
5524 * Added LazyPython documentation. At this point the docs are quite
5526 a mess. A cleanup is in order.
5525 a mess. A cleanup is in order.
5527
5526
5528 * Auto-installer created. For some bizarre reason, the zipfiles
5527 * Auto-installer created. For some bizarre reason, the zipfiles
5529 module isn't working on my system. So I made a tar version
5528 module isn't working on my system. So I made a tar version
5530 (hopefully the command line options in various systems won't kill
5529 (hopefully the command line options in various systems won't kill
5531 me).
5530 me).
5532
5531
5533 * Fixes to Struct in genutils. Now all dictionary-like methods are
5532 * Fixes to Struct in genutils. Now all dictionary-like methods are
5534 protected (reasonably).
5533 protected (reasonably).
5535
5534
5536 * Added pager function to genutils and changed ? to print usage
5535 * Added pager function to genutils and changed ? to print usage
5537 note through it (it was too long).
5536 note through it (it was too long).
5538
5537
5539 * Added the LazyPython functionality. Works great! I changed the
5538 * Added the LazyPython functionality. Works great! I changed the
5540 auto-quote escape to ';', it's on home row and next to '. But
5539 auto-quote escape to ';', it's on home row and next to '. But
5541 both auto-quote and auto-paren (still /) escapes are command-line
5540 both auto-quote and auto-paren (still /) escapes are command-line
5542 parameters.
5541 parameters.
5543
5542
5544
5543
5545 2001-11-01 Fernando Perez <fperez@colorado.edu>
5544 2001-11-01 Fernando Perez <fperez@colorado.edu>
5546
5545
5547 * Version changed to 0.0.7. Fairly large change: configuration now
5546 * Version changed to 0.0.7. Fairly large change: configuration now
5548 is all stored in a directory, by default .ipython. There, all
5547 is all stored in a directory, by default .ipython. There, all
5549 config files have normal looking names (not .names)
5548 config files have normal looking names (not .names)
5550
5549
5551 * Version 0.0.6 Released first to Lucas and Archie as a test
5550 * Version 0.0.6 Released first to Lucas and Archie as a test
5552 run. Since it's the first 'semi-public' release, change version to
5551 run. Since it's the first 'semi-public' release, change version to
5553 > 0.0.6 for any changes now.
5552 > 0.0.6 for any changes now.
5554
5553
5555 * Stuff I had put in the ipplib.py changelog:
5554 * Stuff I had put in the ipplib.py changelog:
5556
5555
5557 Changes to InteractiveShell:
5556 Changes to InteractiveShell:
5558
5557
5559 - Made the usage message a parameter.
5558 - Made the usage message a parameter.
5560
5559
5561 - Require the name of the shell variable to be given. It's a bit
5560 - Require the name of the shell variable to be given. It's a bit
5562 of a hack, but allows the name 'shell' not to be hardwire in the
5561 of a hack, but allows the name 'shell' not to be hardwired in the
5563 magic (@) handler, which is problematic b/c it requires
5562 magic (@) handler, which is problematic b/c it requires
5564 polluting the global namespace with 'shell'. This in turn is
5563 polluting the global namespace with 'shell'. This in turn is
5565 fragile: if a user redefines a variable called shell, things
5564 fragile: if a user redefines a variable called shell, things
5566 break.
5565 break.
5567
5566
5568 - magic @: all functions available through @ need to be defined
5567 - magic @: all functions available through @ need to be defined
5569 as magic_<name>, even though they can be called simply as
5568 as magic_<name>, even though they can be called simply as
5570 @<name>. This allows the special command @magic to gather
5569 @<name>. This allows the special command @magic to gather
5571 information automatically about all existing magic functions,
5570 information automatically about all existing magic functions,
5572 even if they are run-time user extensions, by parsing the shell
5571 even if they are run-time user extensions, by parsing the shell
5573 instance __dict__ looking for special magic_ names.
5572 instance __dict__ looking for special magic_ names.
5574
5573
5575 - mainloop: added *two* local namespace parameters. This allows
5574 - mainloop: added *two* local namespace parameters. This allows
5576 the class to differentiate between parameters which were there
5575 the class to differentiate between parameters which were there
5577 before and after command line initialization was processed. This
5576 before and after command line initialization was processed. This
5578 way, later @who can show things loaded at startup by the
5577 way, later @who can show things loaded at startup by the
5579 user. This trick was necessary to make session saving/reloading
5578 user. This trick was necessary to make session saving/reloading
5580 really work: ideally after saving/exiting/reloading a session,
5579 really work: ideally after saving/exiting/reloading a session,
5581 *everythin* should look the same, including the output of @who. I
5580 *everything* should look the same, including the output of @who. I
5582 was only able to make this work with this double namespace
5581 was only able to make this work with this double namespace
5583 trick.
5582 trick.
5584
5583
5585 - added a header to the logfile which allows (almost) full
5584 - added a header to the logfile which allows (almost) full
5586 session restoring.
5585 session restoring.
5587
5586
5588 - prepend lines beginning with @ or !, with a and log
5587 - prepend lines beginning with @ or !, with a and log
5589 them. Why? !lines: may be useful to know what you did @lines:
5588 them. Why? !lines: may be useful to know what you did @lines:
5590 they may affect session state. So when restoring a session, at
5589 they may affect session state. So when restoring a session, at
5591 least inform the user of their presence. I couldn't quite get
5590 least inform the user of their presence. I couldn't quite get
5592 them to properly re-execute, but at least the user is warned.
5591 them to properly re-execute, but at least the user is warned.
5593
5592
5594 * Started ChangeLog.
5593 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now