##// END OF EJS Templates
Release 0.7.2.
fperez -
Show More
@@ -1,5520 +1,5525 b''
1 2006-06-05 Ville Vainio <vivainio@gmail.com>
1 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/Release.py (version): Made 0.7.2 final for release.
4 Repo tagged and release cut.
5
6 2006-06-05 Ville Vainio <vivainio@gmail.com>
2
7
3 * Magic.py (magic_rehashx): Honor no_alias list earlier in
8 * Magic.py (magic_rehashx): Honor no_alias list earlier in
4 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
9 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
5
10
6 * upgrade_dir.py: try import 'path' module a bit harder
11 * upgrade_dir.py: try import 'path' module a bit harder
7 (for %upgrade)A
12 (for %upgrade)A
8
13
9 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
14 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
10
15
11 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
16 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
12 instead of looping 20 times.
17 instead of looping 20 times.
13
18
14 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
19 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
15 correctly at initialization time. Bug reported by Krishna Mohan
20 correctly at initialization time. Bug reported by Krishna Mohan
16 Gundu <gkmohan-AT-gmail.com> on the user list.
21 Gundu <gkmohan-AT-gmail.com> on the user list.
17
22
18 * IPython/Release.py (version): Mark 0.7.2 version to start
23 * IPython/Release.py (version): Mark 0.7.2 version to start
19 testing for release on 06/06.
24 testing for release on 06/06.
20
25
21 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
26 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
22
27
23 * scripts/irunner: thin script interface so users don't have to
28 * scripts/irunner: thin script interface so users don't have to
24 find the module and call it as an executable, since modules rarely
29 find the module and call it as an executable, since modules rarely
25 live in people's PATH.
30 live in people's PATH.
26
31
27 * IPython/irunner.py (InteractiveRunner.__init__): added
32 * IPython/irunner.py (InteractiveRunner.__init__): added
28 delaybeforesend attribute to control delays with newer versions of
33 delaybeforesend attribute to control delays with newer versions of
29 pexpect. Thanks to detailed help from pexpect's author, Noah
34 pexpect. Thanks to detailed help from pexpect's author, Noah
30 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
35 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
31 correctly (it works in NoColor mode).
36 correctly (it works in NoColor mode).
32
37
33 * IPython/iplib.py (handle_normal): fix nasty crash reported on
38 * IPython/iplib.py (handle_normal): fix nasty crash reported on
34 SAGE list, from improper log() calls.
39 SAGE list, from improper log() calls.
35
40
36 2006-05-31 Ville Vainio <vivainio@gmail.com>
41 2006-05-31 Ville Vainio <vivainio@gmail.com>
37
42
38 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
43 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
39 with args in parens to work correctly with dirs that have spaces.
44 with args in parens to work correctly with dirs that have spaces.
40
45
41 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
46 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
42
47
43 * IPython/Logger.py (Logger.logstart): add option to log raw input
48 * IPython/Logger.py (Logger.logstart): add option to log raw input
44 instead of the processed one. A -r flag was added to the
49 instead of the processed one. A -r flag was added to the
45 %logstart magic used for controlling logging.
50 %logstart magic used for controlling logging.
46
51
47 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
52 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
48
53
49 * IPython/iplib.py (InteractiveShell.__init__): add check for the
54 * IPython/iplib.py (InteractiveShell.__init__): add check for the
50 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
55 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
51 recognize the option. After a bug report by Will Maier. This
56 recognize the option. After a bug report by Will Maier. This
52 closes #64 (will do it after confirmation from W. Maier).
57 closes #64 (will do it after confirmation from W. Maier).
53
58
54 * IPython/irunner.py: New module to run scripts as if manually
59 * IPython/irunner.py: New module to run scripts as if manually
55 typed into an interactive environment, based on pexpect. After a
60 typed into an interactive environment, based on pexpect. After a
56 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
61 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
57 ipython-user list. Simple unittests in the tests/ directory.
62 ipython-user list. Simple unittests in the tests/ directory.
58
63
59 * tools/release: add Will Maier, OpenBSD port maintainer, to
64 * tools/release: add Will Maier, OpenBSD port maintainer, to
60 recepients list. We are now officially part of the OpenBSD ports:
65 recepients list. We are now officially part of the OpenBSD ports:
61 http://www.openbsd.org/ports.html ! Many thanks to Will for the
66 http://www.openbsd.org/ports.html ! Many thanks to Will for the
62 work.
67 work.
63
68
64 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
69 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
65
70
66 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
71 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
67 so that it doesn't break tkinter apps.
72 so that it doesn't break tkinter apps.
68
73
69 * IPython/iplib.py (_prefilter): fix bug where aliases would
74 * IPython/iplib.py (_prefilter): fix bug where aliases would
70 shadow variables when autocall was fully off. Reported by SAGE
75 shadow variables when autocall was fully off. Reported by SAGE
71 author William Stein.
76 author William Stein.
72
77
73 * IPython/OInspect.py (Inspector.__init__): add a flag to control
78 * IPython/OInspect.py (Inspector.__init__): add a flag to control
74 at what detail level strings are computed when foo? is requested.
79 at what detail level strings are computed when foo? is requested.
75 This allows users to ask for example that the string form of an
80 This allows users to ask for example that the string form of an
76 object is only computed when foo?? is called, or even never, by
81 object is only computed when foo?? is called, or even never, by
77 setting the object_info_string_level >= 2 in the configuration
82 setting the object_info_string_level >= 2 in the configuration
78 file. This new option has been added and documented. After a
83 file. This new option has been added and documented. After a
79 request by SAGE to be able to control the printing of very large
84 request by SAGE to be able to control the printing of very large
80 objects more easily.
85 objects more easily.
81
86
82 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
87 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
83
88
84 * IPython/ipmaker.py (make_IPython): remove the ipython call path
89 * IPython/ipmaker.py (make_IPython): remove the ipython call path
85 from sys.argv, to be 100% consistent with how Python itself works
90 from sys.argv, to be 100% consistent with how Python itself works
86 (as seen for example with python -i file.py). After a bug report
91 (as seen for example with python -i file.py). After a bug report
87 by Jeffrey Collins.
92 by Jeffrey Collins.
88
93
89 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
94 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
90 nasty bug which was preventing custom namespaces with -pylab,
95 nasty bug which was preventing custom namespaces with -pylab,
91 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
96 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
92 compatibility (long gone from mpl).
97 compatibility (long gone from mpl).
93
98
94 * IPython/ipapi.py (make_session): name change: create->make. We
99 * IPython/ipapi.py (make_session): name change: create->make. We
95 use make in other places (ipmaker,...), it's shorter and easier to
100 use make in other places (ipmaker,...), it's shorter and easier to
96 type and say, etc. I'm trying to clean things before 0.7.2 so
101 type and say, etc. I'm trying to clean things before 0.7.2 so
97 that I can keep things stable wrt to ipapi in the chainsaw branch.
102 that I can keep things stable wrt to ipapi in the chainsaw branch.
98
103
99 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
104 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
100 python-mode recognizes our debugger mode. Add support for
105 python-mode recognizes our debugger mode. Add support for
101 autoindent inside (X)emacs. After a patch sent in by Jin Liu
106 autoindent inside (X)emacs. After a patch sent in by Jin Liu
102 <m.liu.jin-AT-gmail.com> originally written by
107 <m.liu.jin-AT-gmail.com> originally written by
103 doxgen-AT-newsmth.net (with minor modifications for xemacs
108 doxgen-AT-newsmth.net (with minor modifications for xemacs
104 compatibility)
109 compatibility)
105
110
106 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
111 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
107 tracebacks when walking the stack so that the stack tracking system
112 tracebacks when walking the stack so that the stack tracking system
108 in emacs' python-mode can identify the frames correctly.
113 in emacs' python-mode can identify the frames correctly.
109
114
110 * IPython/ipmaker.py (make_IPython): make the internal (and
115 * IPython/ipmaker.py (make_IPython): make the internal (and
111 default config) autoedit_syntax value false by default. Too many
116 default config) autoedit_syntax value false by default. Too many
112 users have complained to me (both on and off-list) about problems
117 users have complained to me (both on and off-list) about problems
113 with this option being on by default, so I'm making it default to
118 with this option being on by default, so I'm making it default to
114 off. It can still be enabled by anyone via the usual mechanisms.
119 off. It can still be enabled by anyone via the usual mechanisms.
115
120
116 * IPython/completer.py (Completer.attr_matches): add support for
121 * IPython/completer.py (Completer.attr_matches): add support for
117 PyCrust-style _getAttributeNames magic method. Patch contributed
122 PyCrust-style _getAttributeNames magic method. Patch contributed
118 by <mscott-AT-goldenspud.com>. Closes #50.
123 by <mscott-AT-goldenspud.com>. Closes #50.
119
124
120 * IPython/iplib.py (InteractiveShell.__init__): remove the
125 * IPython/iplib.py (InteractiveShell.__init__): remove the
121 deletion of exit/quit from __builtin__, which can break
126 deletion of exit/quit from __builtin__, which can break
122 third-party tools like the Zope debugging console. The
127 third-party tools like the Zope debugging console. The
123 %exit/%quit magics remain. In general, it's probably a good idea
128 %exit/%quit magics remain. In general, it's probably a good idea
124 not to delete anything from __builtin__, since we never know what
129 not to delete anything from __builtin__, since we never know what
125 that will break. In any case, python now (for 2.5) will support
130 that will break. In any case, python now (for 2.5) will support
126 'real' exit/quit, so this issue is moot. Closes #55.
131 'real' exit/quit, so this issue is moot. Closes #55.
127
132
128 * IPython/genutils.py (with_obj): rename the 'with' function to
133 * IPython/genutils.py (with_obj): rename the 'with' function to
129 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
134 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
130 becomes a language keyword. Closes #53.
135 becomes a language keyword. Closes #53.
131
136
132 * IPython/FakeModule.py (FakeModule.__init__): add a proper
137 * IPython/FakeModule.py (FakeModule.__init__): add a proper
133 __file__ attribute to this so it fools more things into thinking
138 __file__ attribute to this so it fools more things into thinking
134 it is a real module. Closes #59.
139 it is a real module. Closes #59.
135
140
136 * IPython/Magic.py (magic_edit): add -n option to open the editor
141 * IPython/Magic.py (magic_edit): add -n option to open the editor
137 at a specific line number. After a patch by Stefan van der Walt.
142 at a specific line number. After a patch by Stefan van der Walt.
138
143
139 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
144 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
140
145
141 * IPython/iplib.py (edit_syntax_error): fix crash when for some
146 * IPython/iplib.py (edit_syntax_error): fix crash when for some
142 reason the file could not be opened. After automatic crash
147 reason the file could not be opened. After automatic crash
143 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
148 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
144 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
149 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
145 (_should_recompile): Don't fire editor if using %bg, since there
150 (_should_recompile): Don't fire editor if using %bg, since there
146 is no file in the first place. From the same report as above.
151 is no file in the first place. From the same report as above.
147 (raw_input): protect against faulty third-party prefilters. After
152 (raw_input): protect against faulty third-party prefilters. After
148 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
153 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
149 while running under SAGE.
154 while running under SAGE.
150
155
151 2006-05-23 Ville Vainio <vivainio@gmail.com>
156 2006-05-23 Ville Vainio <vivainio@gmail.com>
152
157
153 * ipapi.py: Stripped down ip.to_user_ns() to work only as
158 * ipapi.py: Stripped down ip.to_user_ns() to work only as
154 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
159 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
155 now returns None (again), unless dummy is specifically allowed by
160 now returns None (again), unless dummy is specifically allowed by
156 ipapi.get(allow_dummy=True).
161 ipapi.get(allow_dummy=True).
157
162
158 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
163 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
159
164
160 * IPython: remove all 2.2-compatibility objects and hacks from
165 * IPython: remove all 2.2-compatibility objects and hacks from
161 everywhere, since we only support 2.3 at this point. Docs
166 everywhere, since we only support 2.3 at this point. Docs
162 updated.
167 updated.
163
168
164 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
169 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
165 Anything requiring extra validation can be turned into a Python
170 Anything requiring extra validation can be turned into a Python
166 property in the future. I used a property for the db one b/c
171 property in the future. I used a property for the db one b/c
167 there was a nasty circularity problem with the initialization
172 there was a nasty circularity problem with the initialization
168 order, which right now I don't have time to clean up.
173 order, which right now I don't have time to clean up.
169
174
170 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
175 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
171 another locking bug reported by Jorgen. I'm not 100% sure though,
176 another locking bug reported by Jorgen. I'm not 100% sure though,
172 so more testing is needed...
177 so more testing is needed...
173
178
174 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
179 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
175
180
176 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
181 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
177 local variables from any routine in user code (typically executed
182 local variables from any routine in user code (typically executed
178 with %run) directly into the interactive namespace. Very useful
183 with %run) directly into the interactive namespace. Very useful
179 when doing complex debugging.
184 when doing complex debugging.
180 (IPythonNotRunning): Changed the default None object to a dummy
185 (IPythonNotRunning): Changed the default None object to a dummy
181 whose attributes can be queried as well as called without
186 whose attributes can be queried as well as called without
182 exploding, to ease writing code which works transparently both in
187 exploding, to ease writing code which works transparently both in
183 and out of ipython and uses some of this API.
188 and out of ipython and uses some of this API.
184
189
185 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
190 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
186
191
187 * IPython/hooks.py (result_display): Fix the fact that our display
192 * IPython/hooks.py (result_display): Fix the fact that our display
188 hook was using str() instead of repr(), as the default python
193 hook was using str() instead of repr(), as the default python
189 console does. This had gone unnoticed b/c it only happened if
194 console does. This had gone unnoticed b/c it only happened if
190 %Pprint was off, but the inconsistency was there.
195 %Pprint was off, but the inconsistency was there.
191
196
192 2006-05-15 Ville Vainio <vivainio@gmail.com>
197 2006-05-15 Ville Vainio <vivainio@gmail.com>
193
198
194 * Oinspect.py: Only show docstring for nonexisting/binary files
199 * Oinspect.py: Only show docstring for nonexisting/binary files
195 when doing object??, closing ticket #62
200 when doing object??, closing ticket #62
196
201
197 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
202 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
198
203
199 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
204 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
200 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
205 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
201 was being released in a routine which hadn't checked if it had
206 was being released in a routine which hadn't checked if it had
202 been the one to acquire it.
207 been the one to acquire it.
203
208
204 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
209 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
205
210
206 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
211 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
207
212
208 2006-04-11 Ville Vainio <vivainio@gmail.com>
213 2006-04-11 Ville Vainio <vivainio@gmail.com>
209
214
210 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
215 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
211 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
216 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
212 prefilters, allowing stuff like magics and aliases in the file.
217 prefilters, allowing stuff like magics and aliases in the file.
213
218
214 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
219 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
215 added. Supported now are "%clear in" and "%clear out" (clear input and
220 added. Supported now are "%clear in" and "%clear out" (clear input and
216 output history, respectively). Also fixed CachedOutput.flush to
221 output history, respectively). Also fixed CachedOutput.flush to
217 properly flush the output cache.
222 properly flush the output cache.
218
223
219 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
224 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
220 half-success (and fail explicitly).
225 half-success (and fail explicitly).
221
226
222 2006-03-28 Ville Vainio <vivainio@gmail.com>
227 2006-03-28 Ville Vainio <vivainio@gmail.com>
223
228
224 * iplib.py: Fix quoting of aliases so that only argless ones
229 * iplib.py: Fix quoting of aliases so that only argless ones
225 are quoted
230 are quoted
226
231
227 2006-03-28 Ville Vainio <vivainio@gmail.com>
232 2006-03-28 Ville Vainio <vivainio@gmail.com>
228
233
229 * iplib.py: Quote aliases with spaces in the name.
234 * iplib.py: Quote aliases with spaces in the name.
230 "c:\program files\blah\bin" is now legal alias target.
235 "c:\program files\blah\bin" is now legal alias target.
231
236
232 * ext_rehashdir.py: Space no longer allowed as arg
237 * ext_rehashdir.py: Space no longer allowed as arg
233 separator, since space is legal in path names.
238 separator, since space is legal in path names.
234
239
235 2006-03-16 Ville Vainio <vivainio@gmail.com>
240 2006-03-16 Ville Vainio <vivainio@gmail.com>
236
241
237 * upgrade_dir.py: Take path.py from Extensions, correcting
242 * upgrade_dir.py: Take path.py from Extensions, correcting
238 %upgrade magic
243 %upgrade magic
239
244
240 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
245 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
241
246
242 * hooks.py: Only enclose editor binary in quotes if legal and
247 * hooks.py: Only enclose editor binary in quotes if legal and
243 necessary (space in the name, and is an existing file). Fixes a bug
248 necessary (space in the name, and is an existing file). Fixes a bug
244 reported by Zachary Pincus.
249 reported by Zachary Pincus.
245
250
246 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
251 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
247
252
248 * Manual: thanks to a tip on proper color handling for Emacs, by
253 * Manual: thanks to a tip on proper color handling for Emacs, by
249 Eric J Haywiser <ejh1-AT-MIT.EDU>.
254 Eric J Haywiser <ejh1-AT-MIT.EDU>.
250
255
251 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
256 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
252 by applying the provided patch. Thanks to Liu Jin
257 by applying the provided patch. Thanks to Liu Jin
253 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
258 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
254 XEmacs/Linux, I'm trusting the submitter that it actually helps
259 XEmacs/Linux, I'm trusting the submitter that it actually helps
255 under win32/GNU Emacs. Will revisit if any problems are reported.
260 under win32/GNU Emacs. Will revisit if any problems are reported.
256
261
257 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
262 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
258
263
259 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
264 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
260 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
265 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
261
266
262 2006-03-12 Ville Vainio <vivainio@gmail.com>
267 2006-03-12 Ville Vainio <vivainio@gmail.com>
263
268
264 * Magic.py (magic_timeit): Added %timeit magic, contributed by
269 * Magic.py (magic_timeit): Added %timeit magic, contributed by
265 Torsten Marek.
270 Torsten Marek.
266
271
267 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
272 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
268
273
269 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
274 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
270 line ranges works again.
275 line ranges works again.
271
276
272 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
277 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
273
278
274 * IPython/iplib.py (showtraceback): add back sys.last_traceback
279 * IPython/iplib.py (showtraceback): add back sys.last_traceback
275 and friends, after a discussion with Zach Pincus on ipython-user.
280 and friends, after a discussion with Zach Pincus on ipython-user.
276 I'm not 100% sure, but after thinking aobut it quite a bit, it may
281 I'm not 100% sure, but after thinking aobut it quite a bit, it may
277 be OK. Testing with the multithreaded shells didn't reveal any
282 be OK. Testing with the multithreaded shells didn't reveal any
278 problems, but let's keep an eye out.
283 problems, but let's keep an eye out.
279
284
280 In the process, I fixed a few things which were calling
285 In the process, I fixed a few things which were calling
281 self.InteractiveTB() directly (like safe_execfile), which is a
286 self.InteractiveTB() directly (like safe_execfile), which is a
282 mistake: ALL exception reporting should be done by calling
287 mistake: ALL exception reporting should be done by calling
283 self.showtraceback(), which handles state and tab-completion and
288 self.showtraceback(), which handles state and tab-completion and
284 more.
289 more.
285
290
286 2006-03-01 Ville Vainio <vivainio@gmail.com>
291 2006-03-01 Ville Vainio <vivainio@gmail.com>
287
292
288 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
293 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
289 To use, do "from ipipe import *".
294 To use, do "from ipipe import *".
290
295
291 2006-02-24 Ville Vainio <vivainio@gmail.com>
296 2006-02-24 Ville Vainio <vivainio@gmail.com>
292
297
293 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
298 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
294 "cleanly" and safely than the older upgrade mechanism.
299 "cleanly" and safely than the older upgrade mechanism.
295
300
296 2006-02-21 Ville Vainio <vivainio@gmail.com>
301 2006-02-21 Ville Vainio <vivainio@gmail.com>
297
302
298 * Magic.py: %save works again.
303 * Magic.py: %save works again.
299
304
300 2006-02-15 Ville Vainio <vivainio@gmail.com>
305 2006-02-15 Ville Vainio <vivainio@gmail.com>
301
306
302 * Magic.py: %Pprint works again
307 * Magic.py: %Pprint works again
303
308
304 * Extensions/ipy_sane_defaults.py: Provide everything provided
309 * Extensions/ipy_sane_defaults.py: Provide everything provided
305 in default ipythonrc, to make it possible to have a completely empty
310 in default ipythonrc, to make it possible to have a completely empty
306 ipythonrc (and thus completely rc-file free configuration)
311 ipythonrc (and thus completely rc-file free configuration)
307
312
308
313
309 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
314 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
310
315
311 * IPython/hooks.py (editor): quote the call to the editor command,
316 * IPython/hooks.py (editor): quote the call to the editor command,
312 to allow commands with spaces in them. Problem noted by watching
317 to allow commands with spaces in them. Problem noted by watching
313 Ian Oswald's video about textpad under win32 at
318 Ian Oswald's video about textpad under win32 at
314 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
319 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
315
320
316 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
321 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
317 describing magics (we haven't used @ for a loong time).
322 describing magics (we haven't used @ for a loong time).
318
323
319 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
324 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
320 contributed by marienz to close
325 contributed by marienz to close
321 http://www.scipy.net/roundup/ipython/issue53.
326 http://www.scipy.net/roundup/ipython/issue53.
322
327
323 2006-02-10 Ville Vainio <vivainio@gmail.com>
328 2006-02-10 Ville Vainio <vivainio@gmail.com>
324
329
325 * genutils.py: getoutput now works in win32 too
330 * genutils.py: getoutput now works in win32 too
326
331
327 * completer.py: alias and magic completion only invoked
332 * completer.py: alias and magic completion only invoked
328 at the first "item" in the line, to avoid "cd %store"
333 at the first "item" in the line, to avoid "cd %store"
329 nonsense.
334 nonsense.
330
335
331 2006-02-09 Ville Vainio <vivainio@gmail.com>
336 2006-02-09 Ville Vainio <vivainio@gmail.com>
332
337
333 * test/*: Added a unit testing framework (finally).
338 * test/*: Added a unit testing framework (finally).
334 '%run runtests.py' to run test_*.
339 '%run runtests.py' to run test_*.
335
340
336 * ipapi.py: Exposed runlines and set_custom_exc
341 * ipapi.py: Exposed runlines and set_custom_exc
337
342
338 2006-02-07 Ville Vainio <vivainio@gmail.com>
343 2006-02-07 Ville Vainio <vivainio@gmail.com>
339
344
340 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
345 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
341 instead use "f(1 2)" as before.
346 instead use "f(1 2)" as before.
342
347
343 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
348 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
344
349
345 * IPython/demo.py (IPythonDemo): Add new classes to the demo
350 * IPython/demo.py (IPythonDemo): Add new classes to the demo
346 facilities, for demos processed by the IPython input filter
351 facilities, for demos processed by the IPython input filter
347 (IPythonDemo), and for running a script one-line-at-a-time as a
352 (IPythonDemo), and for running a script one-line-at-a-time as a
348 demo, both for pure Python (LineDemo) and for IPython-processed
353 demo, both for pure Python (LineDemo) and for IPython-processed
349 input (IPythonLineDemo). After a request by Dave Kohel, from the
354 input (IPythonLineDemo). After a request by Dave Kohel, from the
350 SAGE team.
355 SAGE team.
351 (Demo.edit): added and edit() method to the demo objects, to edit
356 (Demo.edit): added and edit() method to the demo objects, to edit
352 the in-memory copy of the last executed block.
357 the in-memory copy of the last executed block.
353
358
354 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
359 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
355 processing to %edit, %macro and %save. These commands can now be
360 processing to %edit, %macro and %save. These commands can now be
356 invoked on the unprocessed input as it was typed by the user
361 invoked on the unprocessed input as it was typed by the user
357 (without any prefilters applied). After requests by the SAGE team
362 (without any prefilters applied). After requests by the SAGE team
358 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
363 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
359
364
360 2006-02-01 Ville Vainio <vivainio@gmail.com>
365 2006-02-01 Ville Vainio <vivainio@gmail.com>
361
366
362 * setup.py, eggsetup.py: easy_install ipython==dev works
367 * setup.py, eggsetup.py: easy_install ipython==dev works
363 correctly now (on Linux)
368 correctly now (on Linux)
364
369
365 * ipy_user_conf,ipmaker: user config changes, removed spurious
370 * ipy_user_conf,ipmaker: user config changes, removed spurious
366 warnings
371 warnings
367
372
368 * iplib: if rc.banner is string, use it as is.
373 * iplib: if rc.banner is string, use it as is.
369
374
370 * Magic: %pycat accepts a string argument and pages it's contents.
375 * Magic: %pycat accepts a string argument and pages it's contents.
371
376
372
377
373 2006-01-30 Ville Vainio <vivainio@gmail.com>
378 2006-01-30 Ville Vainio <vivainio@gmail.com>
374
379
375 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
380 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
376 Now %store and bookmarks work through PickleShare, meaning that
381 Now %store and bookmarks work through PickleShare, meaning that
377 concurrent access is possible and all ipython sessions see the
382 concurrent access is possible and all ipython sessions see the
378 same database situation all the time, instead of snapshot of
383 same database situation all the time, instead of snapshot of
379 the situation when the session was started. Hence, %bookmark
384 the situation when the session was started. Hence, %bookmark
380 results are immediately accessible from othes sessions. The database
385 results are immediately accessible from othes sessions. The database
381 is also available for use by user extensions. See:
386 is also available for use by user extensions. See:
382 http://www.python.org/pypi/pickleshare
387 http://www.python.org/pypi/pickleshare
383
388
384 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
389 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
385
390
386 * aliases can now be %store'd
391 * aliases can now be %store'd
387
392
388 * path.py move to Extensions so that pickleshare does not need
393 * path.py move to Extensions so that pickleshare does not need
389 IPython-specific import. Extensions added to pythonpath right
394 IPython-specific import. Extensions added to pythonpath right
390 at __init__.
395 at __init__.
391
396
392 * iplib.py: ipalias deprecated/redundant; aliases are converted and
397 * iplib.py: ipalias deprecated/redundant; aliases are converted and
393 called with _ip.system and the pre-transformed command string.
398 called with _ip.system and the pre-transformed command string.
394
399
395 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
400 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
396
401
397 * IPython/iplib.py (interact): Fix that we were not catching
402 * IPython/iplib.py (interact): Fix that we were not catching
398 KeyboardInterrupt exceptions properly. I'm not quite sure why the
403 KeyboardInterrupt exceptions properly. I'm not quite sure why the
399 logic here had to change, but it's fixed now.
404 logic here had to change, but it's fixed now.
400
405
401 2006-01-29 Ville Vainio <vivainio@gmail.com>
406 2006-01-29 Ville Vainio <vivainio@gmail.com>
402
407
403 * iplib.py: Try to import pyreadline on Windows.
408 * iplib.py: Try to import pyreadline on Windows.
404
409
405 2006-01-27 Ville Vainio <vivainio@gmail.com>
410 2006-01-27 Ville Vainio <vivainio@gmail.com>
406
411
407 * iplib.py: Expose ipapi as _ip in builtin namespace.
412 * iplib.py: Expose ipapi as _ip in builtin namespace.
408 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
413 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
409 and ip_set_hook (-> _ip.set_hook) redundant. % and !
414 and ip_set_hook (-> _ip.set_hook) redundant. % and !
410 syntax now produce _ip.* variant of the commands.
415 syntax now produce _ip.* variant of the commands.
411
416
412 * "_ip.options().autoedit_syntax = 2" automatically throws
417 * "_ip.options().autoedit_syntax = 2" automatically throws
413 user to editor for syntax error correction without prompting.
418 user to editor for syntax error correction without prompting.
414
419
415 2006-01-27 Ville Vainio <vivainio@gmail.com>
420 2006-01-27 Ville Vainio <vivainio@gmail.com>
416
421
417 * ipmaker.py: Give "realistic" sys.argv for scripts (without
422 * ipmaker.py: Give "realistic" sys.argv for scripts (without
418 'ipython' at argv[0]) executed through command line.
423 'ipython' at argv[0]) executed through command line.
419 NOTE: this DEPRECATES calling ipython with multiple scripts
424 NOTE: this DEPRECATES calling ipython with multiple scripts
420 ("ipython a.py b.py c.py")
425 ("ipython a.py b.py c.py")
421
426
422 * iplib.py, hooks.py: Added configurable input prefilter,
427 * iplib.py, hooks.py: Added configurable input prefilter,
423 named 'input_prefilter'. See ext_rescapture.py for example
428 named 'input_prefilter'. See ext_rescapture.py for example
424 usage.
429 usage.
425
430
426 * ext_rescapture.py, Magic.py: Better system command output capture
431 * ext_rescapture.py, Magic.py: Better system command output capture
427 through 'var = !ls' (deprecates user-visible %sc). Same notation
432 through 'var = !ls' (deprecates user-visible %sc). Same notation
428 applies for magics, 'var = %alias' assigns alias list to var.
433 applies for magics, 'var = %alias' assigns alias list to var.
429
434
430 * ipapi.py: added meta() for accessing extension-usable data store.
435 * ipapi.py: added meta() for accessing extension-usable data store.
431
436
432 * iplib.py: added InteractiveShell.getapi(). New magics should be
437 * iplib.py: added InteractiveShell.getapi(). New magics should be
433 written doing self.getapi() instead of using the shell directly.
438 written doing self.getapi() instead of using the shell directly.
434
439
435 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
440 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
436 %store foo >> ~/myfoo.txt to store variables to files (in clean
441 %store foo >> ~/myfoo.txt to store variables to files (in clean
437 textual form, not a restorable pickle).
442 textual form, not a restorable pickle).
438
443
439 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
444 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
440
445
441 * usage.py, Magic.py: added %quickref
446 * usage.py, Magic.py: added %quickref
442
447
443 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
448 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
444
449
445 * GetoptErrors when invoking magics etc. with wrong args
450 * GetoptErrors when invoking magics etc. with wrong args
446 are now more helpful:
451 are now more helpful:
447 GetoptError: option -l not recognized (allowed: "qb" )
452 GetoptError: option -l not recognized (allowed: "qb" )
448
453
449 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
454 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
450
455
451 * IPython/demo.py (Demo.show): Flush stdout after each block, so
456 * IPython/demo.py (Demo.show): Flush stdout after each block, so
452 computationally intensive blocks don't appear to stall the demo.
457 computationally intensive blocks don't appear to stall the demo.
453
458
454 2006-01-24 Ville Vainio <vivainio@gmail.com>
459 2006-01-24 Ville Vainio <vivainio@gmail.com>
455
460
456 * iplib.py, hooks.py: 'result_display' hook can return a non-None
461 * iplib.py, hooks.py: 'result_display' hook can return a non-None
457 value to manipulate resulting history entry.
462 value to manipulate resulting history entry.
458
463
459 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
464 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
460 to instance methods of IPApi class, to make extending an embedded
465 to instance methods of IPApi class, to make extending an embedded
461 IPython feasible. See ext_rehashdir.py for example usage.
466 IPython feasible. See ext_rehashdir.py for example usage.
462
467
463 * Merged 1071-1076 from banches/0.7.1
468 * Merged 1071-1076 from banches/0.7.1
464
469
465
470
466 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
471 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
467
472
468 * tools/release (daystamp): Fix build tools to use the new
473 * tools/release (daystamp): Fix build tools to use the new
469 eggsetup.py script to build lightweight eggs.
474 eggsetup.py script to build lightweight eggs.
470
475
471 * Applied changesets 1062 and 1064 before 0.7.1 release.
476 * Applied changesets 1062 and 1064 before 0.7.1 release.
472
477
473 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
478 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
474 see the raw input history (without conversions like %ls ->
479 see the raw input history (without conversions like %ls ->
475 ipmagic("ls")). After a request from W. Stein, SAGE
480 ipmagic("ls")). After a request from W. Stein, SAGE
476 (http://modular.ucsd.edu/sage) developer. This information is
481 (http://modular.ucsd.edu/sage) developer. This information is
477 stored in the input_hist_raw attribute of the IPython instance, so
482 stored in the input_hist_raw attribute of the IPython instance, so
478 developers can access it if needed (it's an InputList instance).
483 developers can access it if needed (it's an InputList instance).
479
484
480 * Versionstring = 0.7.2.svn
485 * Versionstring = 0.7.2.svn
481
486
482 * eggsetup.py: A separate script for constructing eggs, creates
487 * eggsetup.py: A separate script for constructing eggs, creates
483 proper launch scripts even on Windows (an .exe file in
488 proper launch scripts even on Windows (an .exe file in
484 \python24\scripts).
489 \python24\scripts).
485
490
486 * ipapi.py: launch_new_instance, launch entry point needed for the
491 * ipapi.py: launch_new_instance, launch entry point needed for the
487 egg.
492 egg.
488
493
489 2006-01-23 Ville Vainio <vivainio@gmail.com>
494 2006-01-23 Ville Vainio <vivainio@gmail.com>
490
495
491 * Added %cpaste magic for pasting python code
496 * Added %cpaste magic for pasting python code
492
497
493 2006-01-22 Ville Vainio <vivainio@gmail.com>
498 2006-01-22 Ville Vainio <vivainio@gmail.com>
494
499
495 * Merge from branches/0.7.1 into trunk, revs 1052-1057
500 * Merge from branches/0.7.1 into trunk, revs 1052-1057
496
501
497 * Versionstring = 0.7.2.svn
502 * Versionstring = 0.7.2.svn
498
503
499 * eggsetup.py: A separate script for constructing eggs, creates
504 * eggsetup.py: A separate script for constructing eggs, creates
500 proper launch scripts even on Windows (an .exe file in
505 proper launch scripts even on Windows (an .exe file in
501 \python24\scripts).
506 \python24\scripts).
502
507
503 * ipapi.py: launch_new_instance, launch entry point needed for the
508 * ipapi.py: launch_new_instance, launch entry point needed for the
504 egg.
509 egg.
505
510
506 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
511 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
507
512
508 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
513 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
509 %pfile foo would print the file for foo even if it was a binary.
514 %pfile foo would print the file for foo even if it was a binary.
510 Now, extensions '.so' and '.dll' are skipped.
515 Now, extensions '.so' and '.dll' are skipped.
511
516
512 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
517 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
513 bug, where macros would fail in all threaded modes. I'm not 100%
518 bug, where macros would fail in all threaded modes. I'm not 100%
514 sure, so I'm going to put out an rc instead of making a release
519 sure, so I'm going to put out an rc instead of making a release
515 today, and wait for feedback for at least a few days.
520 today, and wait for feedback for at least a few days.
516
521
517 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
522 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
518 it...) the handling of pasting external code with autoindent on.
523 it...) the handling of pasting external code with autoindent on.
519 To get out of a multiline input, the rule will appear for most
524 To get out of a multiline input, the rule will appear for most
520 users unchanged: two blank lines or change the indent level
525 users unchanged: two blank lines or change the indent level
521 proposed by IPython. But there is a twist now: you can
526 proposed by IPython. But there is a twist now: you can
522 add/subtract only *one or two spaces*. If you add/subtract three
527 add/subtract only *one or two spaces*. If you add/subtract three
523 or more (unless you completely delete the line), IPython will
528 or more (unless you completely delete the line), IPython will
524 accept that line, and you'll need to enter a second one of pure
529 accept that line, and you'll need to enter a second one of pure
525 whitespace. I know it sounds complicated, but I can't find a
530 whitespace. I know it sounds complicated, but I can't find a
526 different solution that covers all the cases, with the right
531 different solution that covers all the cases, with the right
527 heuristics. Hopefully in actual use, nobody will really notice
532 heuristics. Hopefully in actual use, nobody will really notice
528 all these strange rules and things will 'just work'.
533 all these strange rules and things will 'just work'.
529
534
530 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
535 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
531
536
532 * IPython/iplib.py (interact): catch exceptions which can be
537 * IPython/iplib.py (interact): catch exceptions which can be
533 triggered asynchronously by signal handlers. Thanks to an
538 triggered asynchronously by signal handlers. Thanks to an
534 automatic crash report, submitted by Colin Kingsley
539 automatic crash report, submitted by Colin Kingsley
535 <tercel-AT-gentoo.org>.
540 <tercel-AT-gentoo.org>.
536
541
537 2006-01-20 Ville Vainio <vivainio@gmail.com>
542 2006-01-20 Ville Vainio <vivainio@gmail.com>
538
543
539 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
544 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
540 (%rehashdir, very useful, try it out) of how to extend ipython
545 (%rehashdir, very useful, try it out) of how to extend ipython
541 with new magics. Also added Extensions dir to pythonpath to make
546 with new magics. Also added Extensions dir to pythonpath to make
542 importing extensions easy.
547 importing extensions easy.
543
548
544 * %store now complains when trying to store interactively declared
549 * %store now complains when trying to store interactively declared
545 classes / instances of those classes.
550 classes / instances of those classes.
546
551
547 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
552 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
548 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
553 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
549 if they exist, and ipy_user_conf.py with some defaults is created for
554 if they exist, and ipy_user_conf.py with some defaults is created for
550 the user.
555 the user.
551
556
552 * Startup rehashing done by the config file, not InterpreterExec.
557 * Startup rehashing done by the config file, not InterpreterExec.
553 This means system commands are available even without selecting the
558 This means system commands are available even without selecting the
554 pysh profile. It's the sensible default after all.
559 pysh profile. It's the sensible default after all.
555
560
556 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
561 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
557
562
558 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
563 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
559 multiline code with autoindent on working. But I am really not
564 multiline code with autoindent on working. But I am really not
560 sure, so this needs more testing. Will commit a debug-enabled
565 sure, so this needs more testing. Will commit a debug-enabled
561 version for now, while I test it some more, so that Ville and
566 version for now, while I test it some more, so that Ville and
562 others may also catch any problems. Also made
567 others may also catch any problems. Also made
563 self.indent_current_str() a method, to ensure that there's no
568 self.indent_current_str() a method, to ensure that there's no
564 chance of the indent space count and the corresponding string
569 chance of the indent space count and the corresponding string
565 falling out of sync. All code needing the string should just call
570 falling out of sync. All code needing the string should just call
566 the method.
571 the method.
567
572
568 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
573 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
569
574
570 * IPython/Magic.py (magic_edit): fix check for when users don't
575 * IPython/Magic.py (magic_edit): fix check for when users don't
571 save their output files, the try/except was in the wrong section.
576 save their output files, the try/except was in the wrong section.
572
577
573 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
578 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
574
579
575 * IPython/Magic.py (magic_run): fix __file__ global missing from
580 * IPython/Magic.py (magic_run): fix __file__ global missing from
576 script's namespace when executed via %run. After a report by
581 script's namespace when executed via %run. After a report by
577 Vivian.
582 Vivian.
578
583
579 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
584 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
580 when using python 2.4. The parent constructor changed in 2.4, and
585 when using python 2.4. The parent constructor changed in 2.4, and
581 we need to track it directly (we can't call it, as it messes up
586 we need to track it directly (we can't call it, as it messes up
582 readline and tab-completion inside our pdb would stop working).
587 readline and tab-completion inside our pdb would stop working).
583 After a bug report by R. Bernstein <rocky-AT-panix.com>.
588 After a bug report by R. Bernstein <rocky-AT-panix.com>.
584
589
585 2006-01-16 Ville Vainio <vivainio@gmail.com>
590 2006-01-16 Ville Vainio <vivainio@gmail.com>
586
591
587 * Ipython/magic.py:Reverted back to old %edit functionality
592 * Ipython/magic.py:Reverted back to old %edit functionality
588 that returns file contents on exit.
593 that returns file contents on exit.
589
594
590 * IPython/path.py: Added Jason Orendorff's "path" module to
595 * IPython/path.py: Added Jason Orendorff's "path" module to
591 IPython tree, http://www.jorendorff.com/articles/python/path/.
596 IPython tree, http://www.jorendorff.com/articles/python/path/.
592 You can get path objects conveniently through %sc, and !!, e.g.:
597 You can get path objects conveniently through %sc, and !!, e.g.:
593 sc files=ls
598 sc files=ls
594 for p in files.paths: # or files.p
599 for p in files.paths: # or files.p
595 print p,p.mtime
600 print p,p.mtime
596
601
597 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
602 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
598 now work again without considering the exclusion regexp -
603 now work again without considering the exclusion regexp -
599 hence, things like ',foo my/path' turn to 'foo("my/path")'
604 hence, things like ',foo my/path' turn to 'foo("my/path")'
600 instead of syntax error.
605 instead of syntax error.
601
606
602
607
603 2006-01-14 Ville Vainio <vivainio@gmail.com>
608 2006-01-14 Ville Vainio <vivainio@gmail.com>
604
609
605 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
610 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
606 ipapi decorators for python 2.4 users, options() provides access to rc
611 ipapi decorators for python 2.4 users, options() provides access to rc
607 data.
612 data.
608
613
609 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
614 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
610 as path separators (even on Linux ;-). Space character after
615 as path separators (even on Linux ;-). Space character after
611 backslash (as yielded by tab completer) is still space;
616 backslash (as yielded by tab completer) is still space;
612 "%cd long\ name" works as expected.
617 "%cd long\ name" works as expected.
613
618
614 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
619 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
615 as "chain of command", with priority. API stays the same,
620 as "chain of command", with priority. API stays the same,
616 TryNext exception raised by a hook function signals that
621 TryNext exception raised by a hook function signals that
617 current hook failed and next hook should try handling it, as
622 current hook failed and next hook should try handling it, as
618 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
623 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
619 requested configurable display hook, which is now implemented.
624 requested configurable display hook, which is now implemented.
620
625
621 2006-01-13 Ville Vainio <vivainio@gmail.com>
626 2006-01-13 Ville Vainio <vivainio@gmail.com>
622
627
623 * IPython/platutils*.py: platform specific utility functions,
628 * IPython/platutils*.py: platform specific utility functions,
624 so far only set_term_title is implemented (change terminal
629 so far only set_term_title is implemented (change terminal
625 label in windowing systems). %cd now changes the title to
630 label in windowing systems). %cd now changes the title to
626 current dir.
631 current dir.
627
632
628 * IPython/Release.py: Added myself to "authors" list,
633 * IPython/Release.py: Added myself to "authors" list,
629 had to create new files.
634 had to create new files.
630
635
631 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
636 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
632 shell escape; not a known bug but had potential to be one in the
637 shell escape; not a known bug but had potential to be one in the
633 future.
638 future.
634
639
635 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
640 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
636 extension API for IPython! See the module for usage example. Fix
641 extension API for IPython! See the module for usage example. Fix
637 OInspect for docstring-less magic functions.
642 OInspect for docstring-less magic functions.
638
643
639
644
640 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
645 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
641
646
642 * IPython/iplib.py (raw_input): temporarily deactivate all
647 * IPython/iplib.py (raw_input): temporarily deactivate all
643 attempts at allowing pasting of code with autoindent on. It
648 attempts at allowing pasting of code with autoindent on. It
644 introduced bugs (reported by Prabhu) and I can't seem to find a
649 introduced bugs (reported by Prabhu) and I can't seem to find a
645 robust combination which works in all cases. Will have to revisit
650 robust combination which works in all cases. Will have to revisit
646 later.
651 later.
647
652
648 * IPython/genutils.py: remove isspace() function. We've dropped
653 * IPython/genutils.py: remove isspace() function. We've dropped
649 2.2 compatibility, so it's OK to use the string method.
654 2.2 compatibility, so it's OK to use the string method.
650
655
651 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
656 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
652
657
653 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
658 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
654 matching what NOT to autocall on, to include all python binary
659 matching what NOT to autocall on, to include all python binary
655 operators (including things like 'and', 'or', 'is' and 'in').
660 operators (including things like 'and', 'or', 'is' and 'in').
656 Prompted by a bug report on 'foo & bar', but I realized we had
661 Prompted by a bug report on 'foo & bar', but I realized we had
657 many more potential bug cases with other operators. The regexp is
662 many more potential bug cases with other operators. The regexp is
658 self.re_exclude_auto, it's fairly commented.
663 self.re_exclude_auto, it's fairly commented.
659
664
660 2006-01-12 Ville Vainio <vivainio@gmail.com>
665 2006-01-12 Ville Vainio <vivainio@gmail.com>
661
666
662 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
667 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
663 Prettified and hardened string/backslash quoting with ipsystem(),
668 Prettified and hardened string/backslash quoting with ipsystem(),
664 ipalias() and ipmagic(). Now even \ characters are passed to
669 ipalias() and ipmagic(). Now even \ characters are passed to
665 %magics, !shell escapes and aliases exactly as they are in the
670 %magics, !shell escapes and aliases exactly as they are in the
666 ipython command line. Should improve backslash experience,
671 ipython command line. Should improve backslash experience,
667 particularly in Windows (path delimiter for some commands that
672 particularly in Windows (path delimiter for some commands that
668 won't understand '/'), but Unix benefits as well (regexps). %cd
673 won't understand '/'), but Unix benefits as well (regexps). %cd
669 magic still doesn't support backslash path delimiters, though. Also
674 magic still doesn't support backslash path delimiters, though. Also
670 deleted all pretense of supporting multiline command strings in
675 deleted all pretense of supporting multiline command strings in
671 !system or %magic commands. Thanks to Jerry McRae for suggestions.
676 !system or %magic commands. Thanks to Jerry McRae for suggestions.
672
677
673 * doc/build_doc_instructions.txt added. Documentation on how to
678 * doc/build_doc_instructions.txt added. Documentation on how to
674 use doc/update_manual.py, added yesterday. Both files contributed
679 use doc/update_manual.py, added yesterday. Both files contributed
675 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
680 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
676 doc/*.sh for deprecation at a later date.
681 doc/*.sh for deprecation at a later date.
677
682
678 * /ipython.py Added ipython.py to root directory for
683 * /ipython.py Added ipython.py to root directory for
679 zero-installation (tar xzvf ipython.tgz; cd ipython; python
684 zero-installation (tar xzvf ipython.tgz; cd ipython; python
680 ipython.py) and development convenience (no need to kee doing
685 ipython.py) and development convenience (no need to kee doing
681 "setup.py install" between changes).
686 "setup.py install" between changes).
682
687
683 * Made ! and !! shell escapes work (again) in multiline expressions:
688 * Made ! and !! shell escapes work (again) in multiline expressions:
684 if 1:
689 if 1:
685 !ls
690 !ls
686 !!ls
691 !!ls
687
692
688 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
693 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
689
694
690 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
695 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
691 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
696 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
692 module in case-insensitive installation. Was causing crashes
697 module in case-insensitive installation. Was causing crashes
693 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
698 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
694
699
695 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
700 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
696 <marienz-AT-gentoo.org>, closes
701 <marienz-AT-gentoo.org>, closes
697 http://www.scipy.net/roundup/ipython/issue51.
702 http://www.scipy.net/roundup/ipython/issue51.
698
703
699 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
704 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
700
705
701 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
706 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
702 problem of excessive CPU usage under *nix and keyboard lag under
707 problem of excessive CPU usage under *nix and keyboard lag under
703 win32.
708 win32.
704
709
705 2006-01-10 *** Released version 0.7.0
710 2006-01-10 *** Released version 0.7.0
706
711
707 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
712 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
708
713
709 * IPython/Release.py (revision): tag version number to 0.7.0,
714 * IPython/Release.py (revision): tag version number to 0.7.0,
710 ready for release.
715 ready for release.
711
716
712 * IPython/Magic.py (magic_edit): Add print statement to %edit so
717 * IPython/Magic.py (magic_edit): Add print statement to %edit so
713 it informs the user of the name of the temp. file used. This can
718 it informs the user of the name of the temp. file used. This can
714 help if you decide later to reuse that same file, so you know
719 help if you decide later to reuse that same file, so you know
715 where to copy the info from.
720 where to copy the info from.
716
721
717 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
722 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
718
723
719 * setup_bdist_egg.py: little script to build an egg. Added
724 * setup_bdist_egg.py: little script to build an egg. Added
720 support in the release tools as well.
725 support in the release tools as well.
721
726
722 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
727 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
723
728
724 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
729 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
725 version selection (new -wxversion command line and ipythonrc
730 version selection (new -wxversion command line and ipythonrc
726 parameter). Patch contributed by Arnd Baecker
731 parameter). Patch contributed by Arnd Baecker
727 <arnd.baecker-AT-web.de>.
732 <arnd.baecker-AT-web.de>.
728
733
729 * IPython/iplib.py (embed_mainloop): fix tab-completion in
734 * IPython/iplib.py (embed_mainloop): fix tab-completion in
730 embedded instances, for variables defined at the interactive
735 embedded instances, for variables defined at the interactive
731 prompt of the embedded ipython. Reported by Arnd.
736 prompt of the embedded ipython. Reported by Arnd.
732
737
733 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
738 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
734 it can be used as a (stateful) toggle, or with a direct parameter.
739 it can be used as a (stateful) toggle, or with a direct parameter.
735
740
736 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
741 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
737 could be triggered in certain cases and cause the traceback
742 could be triggered in certain cases and cause the traceback
738 printer not to work.
743 printer not to work.
739
744
740 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
745 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
741
746
742 * IPython/iplib.py (_should_recompile): Small fix, closes
747 * IPython/iplib.py (_should_recompile): Small fix, closes
743 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
748 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
744
749
745 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
750 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
746
751
747 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
752 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
748 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
753 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
749 Moad for help with tracking it down.
754 Moad for help with tracking it down.
750
755
751 * IPython/iplib.py (handle_auto): fix autocall handling for
756 * IPython/iplib.py (handle_auto): fix autocall handling for
752 objects which support BOTH __getitem__ and __call__ (so that f [x]
757 objects which support BOTH __getitem__ and __call__ (so that f [x]
753 is left alone, instead of becoming f([x]) automatically).
758 is left alone, instead of becoming f([x]) automatically).
754
759
755 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
760 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
756 Ville's patch.
761 Ville's patch.
757
762
758 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
763 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
759
764
760 * IPython/iplib.py (handle_auto): changed autocall semantics to
765 * IPython/iplib.py (handle_auto): changed autocall semantics to
761 include 'smart' mode, where the autocall transformation is NOT
766 include 'smart' mode, where the autocall transformation is NOT
762 applied if there are no arguments on the line. This allows you to
767 applied if there are no arguments on the line. This allows you to
763 just type 'foo' if foo is a callable to see its internal form,
768 just type 'foo' if foo is a callable to see its internal form,
764 instead of having it called with no arguments (typically a
769 instead of having it called with no arguments (typically a
765 mistake). The old 'full' autocall still exists: for that, you
770 mistake). The old 'full' autocall still exists: for that, you
766 need to set the 'autocall' parameter to 2 in your ipythonrc file.
771 need to set the 'autocall' parameter to 2 in your ipythonrc file.
767
772
768 * IPython/completer.py (Completer.attr_matches): add
773 * IPython/completer.py (Completer.attr_matches): add
769 tab-completion support for Enthoughts' traits. After a report by
774 tab-completion support for Enthoughts' traits. After a report by
770 Arnd and a patch by Prabhu.
775 Arnd and a patch by Prabhu.
771
776
772 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
777 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
773
778
774 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
779 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
775 Schmolck's patch to fix inspect.getinnerframes().
780 Schmolck's patch to fix inspect.getinnerframes().
776
781
777 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
782 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
778 for embedded instances, regarding handling of namespaces and items
783 for embedded instances, regarding handling of namespaces and items
779 added to the __builtin__ one. Multiple embedded instances and
784 added to the __builtin__ one. Multiple embedded instances and
780 recursive embeddings should work better now (though I'm not sure
785 recursive embeddings should work better now (though I'm not sure
781 I've got all the corner cases fixed, that code is a bit of a brain
786 I've got all the corner cases fixed, that code is a bit of a brain
782 twister).
787 twister).
783
788
784 * IPython/Magic.py (magic_edit): added support to edit in-memory
789 * IPython/Magic.py (magic_edit): added support to edit in-memory
785 macros (automatically creates the necessary temp files). %edit
790 macros (automatically creates the necessary temp files). %edit
786 also doesn't return the file contents anymore, it's just noise.
791 also doesn't return the file contents anymore, it's just noise.
787
792
788 * IPython/completer.py (Completer.attr_matches): revert change to
793 * IPython/completer.py (Completer.attr_matches): revert change to
789 complete only on attributes listed in __all__. I realized it
794 complete only on attributes listed in __all__. I realized it
790 cripples the tab-completion system as a tool for exploring the
795 cripples the tab-completion system as a tool for exploring the
791 internals of unknown libraries (it renders any non-__all__
796 internals of unknown libraries (it renders any non-__all__
792 attribute off-limits). I got bit by this when trying to see
797 attribute off-limits). I got bit by this when trying to see
793 something inside the dis module.
798 something inside the dis module.
794
799
795 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
800 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
796
801
797 * IPython/iplib.py (InteractiveShell.__init__): add .meta
802 * IPython/iplib.py (InteractiveShell.__init__): add .meta
798 namespace for users and extension writers to hold data in. This
803 namespace for users and extension writers to hold data in. This
799 follows the discussion in
804 follows the discussion in
800 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
805 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
801
806
802 * IPython/completer.py (IPCompleter.complete): small patch to help
807 * IPython/completer.py (IPCompleter.complete): small patch to help
803 tab-completion under Emacs, after a suggestion by John Barnard
808 tab-completion under Emacs, after a suggestion by John Barnard
804 <barnarj-AT-ccf.org>.
809 <barnarj-AT-ccf.org>.
805
810
806 * IPython/Magic.py (Magic.extract_input_slices): added support for
811 * IPython/Magic.py (Magic.extract_input_slices): added support for
807 the slice notation in magics to use N-M to represent numbers N...M
812 the slice notation in magics to use N-M to represent numbers N...M
808 (closed endpoints). This is used by %macro and %save.
813 (closed endpoints). This is used by %macro and %save.
809
814
810 * IPython/completer.py (Completer.attr_matches): for modules which
815 * IPython/completer.py (Completer.attr_matches): for modules which
811 define __all__, complete only on those. After a patch by Jeffrey
816 define __all__, complete only on those. After a patch by Jeffrey
812 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
817 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
813 speed up this routine.
818 speed up this routine.
814
819
815 * IPython/Logger.py (Logger.log): fix a history handling bug. I
820 * IPython/Logger.py (Logger.log): fix a history handling bug. I
816 don't know if this is the end of it, but the behavior now is
821 don't know if this is the end of it, but the behavior now is
817 certainly much more correct. Note that coupled with macros,
822 certainly much more correct. Note that coupled with macros,
818 slightly surprising (at first) behavior may occur: a macro will in
823 slightly surprising (at first) behavior may occur: a macro will in
819 general expand to multiple lines of input, so upon exiting, the
824 general expand to multiple lines of input, so upon exiting, the
820 in/out counters will both be bumped by the corresponding amount
825 in/out counters will both be bumped by the corresponding amount
821 (as if the macro's contents had been typed interactively). Typing
826 (as if the macro's contents had been typed interactively). Typing
822 %hist will reveal the intermediate (silently processed) lines.
827 %hist will reveal the intermediate (silently processed) lines.
823
828
824 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
829 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
825 pickle to fail (%run was overwriting __main__ and not restoring
830 pickle to fail (%run was overwriting __main__ and not restoring
826 it, but pickle relies on __main__ to operate).
831 it, but pickle relies on __main__ to operate).
827
832
828 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
833 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
829 using properties, but forgot to make the main InteractiveShell
834 using properties, but forgot to make the main InteractiveShell
830 class a new-style class. Properties fail silently, and
835 class a new-style class. Properties fail silently, and
831 misteriously, with old-style class (getters work, but
836 misteriously, with old-style class (getters work, but
832 setters don't do anything).
837 setters don't do anything).
833
838
834 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
839 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
835
840
836 * IPython/Magic.py (magic_history): fix history reporting bug (I
841 * IPython/Magic.py (magic_history): fix history reporting bug (I
837 know some nasties are still there, I just can't seem to find a
842 know some nasties are still there, I just can't seem to find a
838 reproducible test case to track them down; the input history is
843 reproducible test case to track them down; the input history is
839 falling out of sync...)
844 falling out of sync...)
840
845
841 * IPython/iplib.py (handle_shell_escape): fix bug where both
846 * IPython/iplib.py (handle_shell_escape): fix bug where both
842 aliases and system accesses where broken for indented code (such
847 aliases and system accesses where broken for indented code (such
843 as loops).
848 as loops).
844
849
845 * IPython/genutils.py (shell): fix small but critical bug for
850 * IPython/genutils.py (shell): fix small but critical bug for
846 win32 system access.
851 win32 system access.
847
852
848 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
853 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
849
854
850 * IPython/iplib.py (showtraceback): remove use of the
855 * IPython/iplib.py (showtraceback): remove use of the
851 sys.last_{type/value/traceback} structures, which are non
856 sys.last_{type/value/traceback} structures, which are non
852 thread-safe.
857 thread-safe.
853 (_prefilter): change control flow to ensure that we NEVER
858 (_prefilter): change control flow to ensure that we NEVER
854 introspect objects when autocall is off. This will guarantee that
859 introspect objects when autocall is off. This will guarantee that
855 having an input line of the form 'x.y', where access to attribute
860 having an input line of the form 'x.y', where access to attribute
856 'y' has side effects, doesn't trigger the side effect TWICE. It
861 'y' has side effects, doesn't trigger the side effect TWICE. It
857 is important to note that, with autocall on, these side effects
862 is important to note that, with autocall on, these side effects
858 can still happen.
863 can still happen.
859 (ipsystem): new builtin, to complete the ip{magic/alias/system}
864 (ipsystem): new builtin, to complete the ip{magic/alias/system}
860 trio. IPython offers these three kinds of special calls which are
865 trio. IPython offers these three kinds of special calls which are
861 not python code, and it's a good thing to have their call method
866 not python code, and it's a good thing to have their call method
862 be accessible as pure python functions (not just special syntax at
867 be accessible as pure python functions (not just special syntax at
863 the command line). It gives us a better internal implementation
868 the command line). It gives us a better internal implementation
864 structure, as well as exposing these for user scripting more
869 structure, as well as exposing these for user scripting more
865 cleanly.
870 cleanly.
866
871
867 * IPython/macro.py (Macro.__init__): moved macros to a standalone
872 * IPython/macro.py (Macro.__init__): moved macros to a standalone
868 file. Now that they'll be more likely to be used with the
873 file. Now that they'll be more likely to be used with the
869 persistance system (%store), I want to make sure their module path
874 persistance system (%store), I want to make sure their module path
870 doesn't change in the future, so that we don't break things for
875 doesn't change in the future, so that we don't break things for
871 users' persisted data.
876 users' persisted data.
872
877
873 * IPython/iplib.py (autoindent_update): move indentation
878 * IPython/iplib.py (autoindent_update): move indentation
874 management into the _text_ processing loop, not the keyboard
879 management into the _text_ processing loop, not the keyboard
875 interactive one. This is necessary to correctly process non-typed
880 interactive one. This is necessary to correctly process non-typed
876 multiline input (such as macros).
881 multiline input (such as macros).
877
882
878 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
883 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
879 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
884 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
880 which was producing problems in the resulting manual.
885 which was producing problems in the resulting manual.
881 (magic_whos): improve reporting of instances (show their class,
886 (magic_whos): improve reporting of instances (show their class,
882 instead of simply printing 'instance' which isn't terribly
887 instead of simply printing 'instance' which isn't terribly
883 informative).
888 informative).
884
889
885 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
890 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
886 (minor mods) to support network shares under win32.
891 (minor mods) to support network shares under win32.
887
892
888 * IPython/winconsole.py (get_console_size): add new winconsole
893 * IPython/winconsole.py (get_console_size): add new winconsole
889 module and fixes to page_dumb() to improve its behavior under
894 module and fixes to page_dumb() to improve its behavior under
890 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
895 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
891
896
892 * IPython/Magic.py (Macro): simplified Macro class to just
897 * IPython/Magic.py (Macro): simplified Macro class to just
893 subclass list. We've had only 2.2 compatibility for a very long
898 subclass list. We've had only 2.2 compatibility for a very long
894 time, yet I was still avoiding subclassing the builtin types. No
899 time, yet I was still avoiding subclassing the builtin types. No
895 more (I'm also starting to use properties, though I won't shift to
900 more (I'm also starting to use properties, though I won't shift to
896 2.3-specific features quite yet).
901 2.3-specific features quite yet).
897 (magic_store): added Ville's patch for lightweight variable
902 (magic_store): added Ville's patch for lightweight variable
898 persistence, after a request on the user list by Matt Wilkie
903 persistence, after a request on the user list by Matt Wilkie
899 <maphew-AT-gmail.com>. The new %store magic's docstring has full
904 <maphew-AT-gmail.com>. The new %store magic's docstring has full
900 details.
905 details.
901
906
902 * IPython/iplib.py (InteractiveShell.post_config_initialization):
907 * IPython/iplib.py (InteractiveShell.post_config_initialization):
903 changed the default logfile name from 'ipython.log' to
908 changed the default logfile name from 'ipython.log' to
904 'ipython_log.py'. These logs are real python files, and now that
909 'ipython_log.py'. These logs are real python files, and now that
905 we have much better multiline support, people are more likely to
910 we have much better multiline support, people are more likely to
906 want to use them as such. Might as well name them correctly.
911 want to use them as such. Might as well name them correctly.
907
912
908 * IPython/Magic.py: substantial cleanup. While we can't stop
913 * IPython/Magic.py: substantial cleanup. While we can't stop
909 using magics as mixins, due to the existing customizations 'out
914 using magics as mixins, due to the existing customizations 'out
910 there' which rely on the mixin naming conventions, at least I
915 there' which rely on the mixin naming conventions, at least I
911 cleaned out all cross-class name usage. So once we are OK with
916 cleaned out all cross-class name usage. So once we are OK with
912 breaking compatibility, the two systems can be separated.
917 breaking compatibility, the two systems can be separated.
913
918
914 * IPython/Logger.py: major cleanup. This one is NOT a mixin
919 * IPython/Logger.py: major cleanup. This one is NOT a mixin
915 anymore, and the class is a fair bit less hideous as well. New
920 anymore, and the class is a fair bit less hideous as well. New
916 features were also introduced: timestamping of input, and logging
921 features were also introduced: timestamping of input, and logging
917 of output results. These are user-visible with the -t and -o
922 of output results. These are user-visible with the -t and -o
918 options to %logstart. Closes
923 options to %logstart. Closes
919 http://www.scipy.net/roundup/ipython/issue11 and a request by
924 http://www.scipy.net/roundup/ipython/issue11 and a request by
920 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
925 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
921
926
922 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
927 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
923
928
924 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
929 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
925 better hadnle backslashes in paths. See the thread 'More Windows
930 better hadnle backslashes in paths. See the thread 'More Windows
926 questions part 2 - \/ characters revisited' on the iypthon user
931 questions part 2 - \/ characters revisited' on the iypthon user
927 list:
932 list:
928 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
933 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
929
934
930 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
935 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
931
936
932 (InteractiveShell.__init__): change threaded shells to not use the
937 (InteractiveShell.__init__): change threaded shells to not use the
933 ipython crash handler. This was causing more problems than not,
938 ipython crash handler. This was causing more problems than not,
934 as exceptions in the main thread (GUI code, typically) would
939 as exceptions in the main thread (GUI code, typically) would
935 always show up as a 'crash', when they really weren't.
940 always show up as a 'crash', when they really weren't.
936
941
937 The colors and exception mode commands (%colors/%xmode) have been
942 The colors and exception mode commands (%colors/%xmode) have been
938 synchronized to also take this into account, so users can get
943 synchronized to also take this into account, so users can get
939 verbose exceptions for their threaded code as well. I also added
944 verbose exceptions for their threaded code as well. I also added
940 support for activating pdb inside this exception handler as well,
945 support for activating pdb inside this exception handler as well,
941 so now GUI authors can use IPython's enhanced pdb at runtime.
946 so now GUI authors can use IPython's enhanced pdb at runtime.
942
947
943 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
948 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
944 true by default, and add it to the shipped ipythonrc file. Since
949 true by default, and add it to the shipped ipythonrc file. Since
945 this asks the user before proceeding, I think it's OK to make it
950 this asks the user before proceeding, I think it's OK to make it
946 true by default.
951 true by default.
947
952
948 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
953 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
949 of the previous special-casing of input in the eval loop. I think
954 of the previous special-casing of input in the eval loop. I think
950 this is cleaner, as they really are commands and shouldn't have
955 this is cleaner, as they really are commands and shouldn't have
951 a special role in the middle of the core code.
956 a special role in the middle of the core code.
952
957
953 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
958 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
954
959
955 * IPython/iplib.py (edit_syntax_error): added support for
960 * IPython/iplib.py (edit_syntax_error): added support for
956 automatically reopening the editor if the file had a syntax error
961 automatically reopening the editor if the file had a syntax error
957 in it. Thanks to scottt who provided the patch at:
962 in it. Thanks to scottt who provided the patch at:
958 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
963 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
959 version committed).
964 version committed).
960
965
961 * IPython/iplib.py (handle_normal): add suport for multi-line
966 * IPython/iplib.py (handle_normal): add suport for multi-line
962 input with emtpy lines. This fixes
967 input with emtpy lines. This fixes
963 http://www.scipy.net/roundup/ipython/issue43 and a similar
968 http://www.scipy.net/roundup/ipython/issue43 and a similar
964 discussion on the user list.
969 discussion on the user list.
965
970
966 WARNING: a behavior change is necessarily introduced to support
971 WARNING: a behavior change is necessarily introduced to support
967 blank lines: now a single blank line with whitespace does NOT
972 blank lines: now a single blank line with whitespace does NOT
968 break the input loop, which means that when autoindent is on, by
973 break the input loop, which means that when autoindent is on, by
969 default hitting return on the next (indented) line does NOT exit.
974 default hitting return on the next (indented) line does NOT exit.
970
975
971 Instead, to exit a multiline input you can either have:
976 Instead, to exit a multiline input you can either have:
972
977
973 - TWO whitespace lines (just hit return again), or
978 - TWO whitespace lines (just hit return again), or
974 - a single whitespace line of a different length than provided
979 - a single whitespace line of a different length than provided
975 by the autoindent (add or remove a space).
980 by the autoindent (add or remove a space).
976
981
977 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
982 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
978 module to better organize all readline-related functionality.
983 module to better organize all readline-related functionality.
979 I've deleted FlexCompleter and put all completion clases here.
984 I've deleted FlexCompleter and put all completion clases here.
980
985
981 * IPython/iplib.py (raw_input): improve indentation management.
986 * IPython/iplib.py (raw_input): improve indentation management.
982 It is now possible to paste indented code with autoindent on, and
987 It is now possible to paste indented code with autoindent on, and
983 the code is interpreted correctly (though it still looks bad on
988 the code is interpreted correctly (though it still looks bad on
984 screen, due to the line-oriented nature of ipython).
989 screen, due to the line-oriented nature of ipython).
985 (MagicCompleter.complete): change behavior so that a TAB key on an
990 (MagicCompleter.complete): change behavior so that a TAB key on an
986 otherwise empty line actually inserts a tab, instead of completing
991 otherwise empty line actually inserts a tab, instead of completing
987 on the entire global namespace. This makes it easier to use the
992 on the entire global namespace. This makes it easier to use the
988 TAB key for indentation. After a request by Hans Meine
993 TAB key for indentation. After a request by Hans Meine
989 <hans_meine-AT-gmx.net>
994 <hans_meine-AT-gmx.net>
990 (_prefilter): add support so that typing plain 'exit' or 'quit'
995 (_prefilter): add support so that typing plain 'exit' or 'quit'
991 does a sensible thing. Originally I tried to deviate as little as
996 does a sensible thing. Originally I tried to deviate as little as
992 possible from the default python behavior, but even that one may
997 possible from the default python behavior, but even that one may
993 change in this direction (thread on python-dev to that effect).
998 change in this direction (thread on python-dev to that effect).
994 Regardless, ipython should do the right thing even if CPython's
999 Regardless, ipython should do the right thing even if CPython's
995 '>>>' prompt doesn't.
1000 '>>>' prompt doesn't.
996 (InteractiveShell): removed subclassing code.InteractiveConsole
1001 (InteractiveShell): removed subclassing code.InteractiveConsole
997 class. By now we'd overridden just about all of its methods: I've
1002 class. By now we'd overridden just about all of its methods: I've
998 copied the remaining two over, and now ipython is a standalone
1003 copied the remaining two over, and now ipython is a standalone
999 class. This will provide a clearer picture for the chainsaw
1004 class. This will provide a clearer picture for the chainsaw
1000 branch refactoring.
1005 branch refactoring.
1001
1006
1002 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1007 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1003
1008
1004 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1009 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1005 failures for objects which break when dir() is called on them.
1010 failures for objects which break when dir() is called on them.
1006
1011
1007 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1012 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1008 distinct local and global namespaces in the completer API. This
1013 distinct local and global namespaces in the completer API. This
1009 change allows us top properly handle completion with distinct
1014 change allows us top properly handle completion with distinct
1010 scopes, including in embedded instances (this had never really
1015 scopes, including in embedded instances (this had never really
1011 worked correctly).
1016 worked correctly).
1012
1017
1013 Note: this introduces a change in the constructor for
1018 Note: this introduces a change in the constructor for
1014 MagicCompleter, as a new global_namespace parameter is now the
1019 MagicCompleter, as a new global_namespace parameter is now the
1015 second argument (the others were bumped one position).
1020 second argument (the others were bumped one position).
1016
1021
1017 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1022 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1018
1023
1019 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1024 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1020 embedded instances (which can be done now thanks to Vivian's
1025 embedded instances (which can be done now thanks to Vivian's
1021 frame-handling fixes for pdb).
1026 frame-handling fixes for pdb).
1022 (InteractiveShell.__init__): Fix namespace handling problem in
1027 (InteractiveShell.__init__): Fix namespace handling problem in
1023 embedded instances. We were overwriting __main__ unconditionally,
1028 embedded instances. We were overwriting __main__ unconditionally,
1024 and this should only be done for 'full' (non-embedded) IPython;
1029 and this should only be done for 'full' (non-embedded) IPython;
1025 embedded instances must respect the caller's __main__. Thanks to
1030 embedded instances must respect the caller's __main__. Thanks to
1026 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1031 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1027
1032
1028 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1029
1034
1030 * setup.py: added download_url to setup(). This registers the
1035 * setup.py: added download_url to setup(). This registers the
1031 download address at PyPI, which is not only useful to humans
1036 download address at PyPI, which is not only useful to humans
1032 browsing the site, but is also picked up by setuptools (the Eggs
1037 browsing the site, but is also picked up by setuptools (the Eggs
1033 machinery). Thanks to Ville and R. Kern for the info/discussion
1038 machinery). Thanks to Ville and R. Kern for the info/discussion
1034 on this.
1039 on this.
1035
1040
1036 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1041 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1037
1042
1038 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1043 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1039 This brings a lot of nice functionality to the pdb mode, which now
1044 This brings a lot of nice functionality to the pdb mode, which now
1040 has tab-completion, syntax highlighting, and better stack handling
1045 has tab-completion, syntax highlighting, and better stack handling
1041 than before. Many thanks to Vivian De Smedt
1046 than before. Many thanks to Vivian De Smedt
1042 <vivian-AT-vdesmedt.com> for the original patches.
1047 <vivian-AT-vdesmedt.com> for the original patches.
1043
1048
1044 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1049 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1045
1050
1046 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1051 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1047 sequence to consistently accept the banner argument. The
1052 sequence to consistently accept the banner argument. The
1048 inconsistency was tripping SAGE, thanks to Gary Zablackis
1053 inconsistency was tripping SAGE, thanks to Gary Zablackis
1049 <gzabl-AT-yahoo.com> for the report.
1054 <gzabl-AT-yahoo.com> for the report.
1050
1055
1051 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1056 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1052
1057
1053 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1058 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1054 Fix bug where a naked 'alias' call in the ipythonrc file would
1059 Fix bug where a naked 'alias' call in the ipythonrc file would
1055 cause a crash. Bug reported by Jorgen Stenarson.
1060 cause a crash. Bug reported by Jorgen Stenarson.
1056
1061
1057 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1062 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1058
1063
1059 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1064 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1060 startup time.
1065 startup time.
1061
1066
1062 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1067 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1063 instances had introduced a bug with globals in normal code. Now
1068 instances had introduced a bug with globals in normal code. Now
1064 it's working in all cases.
1069 it's working in all cases.
1065
1070
1066 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1071 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1067 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1072 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1068 has been introduced to set the default case sensitivity of the
1073 has been introduced to set the default case sensitivity of the
1069 searches. Users can still select either mode at runtime on a
1074 searches. Users can still select either mode at runtime on a
1070 per-search basis.
1075 per-search basis.
1071
1076
1072 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1077 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1073
1078
1074 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1079 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1075 attributes in wildcard searches for subclasses. Modified version
1080 attributes in wildcard searches for subclasses. Modified version
1076 of a patch by Jorgen.
1081 of a patch by Jorgen.
1077
1082
1078 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1083 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1079
1084
1080 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1085 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1081 embedded instances. I added a user_global_ns attribute to the
1086 embedded instances. I added a user_global_ns attribute to the
1082 InteractiveShell class to handle this.
1087 InteractiveShell class to handle this.
1083
1088
1084 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1089 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1090
1086 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1091 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1087 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1092 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1088 (reported under win32, but may happen also in other platforms).
1093 (reported under win32, but may happen also in other platforms).
1089 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1094 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1090
1095
1091 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1096 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1097
1093 * IPython/Magic.py (magic_psearch): new support for wildcard
1098 * IPython/Magic.py (magic_psearch): new support for wildcard
1094 patterns. Now, typing ?a*b will list all names which begin with a
1099 patterns. Now, typing ?a*b will list all names which begin with a
1095 and end in b, for example. The %psearch magic has full
1100 and end in b, for example. The %psearch magic has full
1096 docstrings. Many thanks to Jörgen Stenarson
1101 docstrings. Many thanks to Jörgen Stenarson
1097 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1102 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1098 implementing this functionality.
1103 implementing this functionality.
1099
1104
1100 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1105 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1101
1106
1102 * Manual: fixed long-standing annoyance of double-dashes (as in
1107 * Manual: fixed long-standing annoyance of double-dashes (as in
1103 --prefix=~, for example) being stripped in the HTML version. This
1108 --prefix=~, for example) being stripped in the HTML version. This
1104 is a latex2html bug, but a workaround was provided. Many thanks
1109 is a latex2html bug, but a workaround was provided. Many thanks
1105 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1110 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1106 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1111 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1107 rolling. This seemingly small issue had tripped a number of users
1112 rolling. This seemingly small issue had tripped a number of users
1108 when first installing, so I'm glad to see it gone.
1113 when first installing, so I'm glad to see it gone.
1109
1114
1110 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1115 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1116
1112 * IPython/Extensions/numeric_formats.py: fix missing import,
1117 * IPython/Extensions/numeric_formats.py: fix missing import,
1113 reported by Stephen Walton.
1118 reported by Stephen Walton.
1114
1119
1115 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1120 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1116
1121
1117 * IPython/demo.py: finish demo module, fully documented now.
1122 * IPython/demo.py: finish demo module, fully documented now.
1118
1123
1119 * IPython/genutils.py (file_read): simple little utility to read a
1124 * IPython/genutils.py (file_read): simple little utility to read a
1120 file and ensure it's closed afterwards.
1125 file and ensure it's closed afterwards.
1121
1126
1122 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1127 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1123
1128
1124 * IPython/demo.py (Demo.__init__): added support for individually
1129 * IPython/demo.py (Demo.__init__): added support for individually
1125 tagging blocks for automatic execution.
1130 tagging blocks for automatic execution.
1126
1131
1127 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1132 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1128 syntax-highlighted python sources, requested by John.
1133 syntax-highlighted python sources, requested by John.
1129
1134
1130 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1135 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1136
1132 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1137 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1133 finishing.
1138 finishing.
1134
1139
1135 * IPython/genutils.py (shlex_split): moved from Magic to here,
1140 * IPython/genutils.py (shlex_split): moved from Magic to here,
1136 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1141 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1137
1142
1138 * IPython/demo.py (Demo.__init__): added support for silent
1143 * IPython/demo.py (Demo.__init__): added support for silent
1139 blocks, improved marks as regexps, docstrings written.
1144 blocks, improved marks as regexps, docstrings written.
1140 (Demo.__init__): better docstring, added support for sys.argv.
1145 (Demo.__init__): better docstring, added support for sys.argv.
1141
1146
1142 * IPython/genutils.py (marquee): little utility used by the demo
1147 * IPython/genutils.py (marquee): little utility used by the demo
1143 code, handy in general.
1148 code, handy in general.
1144
1149
1145 * IPython/demo.py (Demo.__init__): new class for interactive
1150 * IPython/demo.py (Demo.__init__): new class for interactive
1146 demos. Not documented yet, I just wrote it in a hurry for
1151 demos. Not documented yet, I just wrote it in a hurry for
1147 scipy'05. Will docstring later.
1152 scipy'05. Will docstring later.
1148
1153
1149 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1154 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1150
1155
1151 * IPython/Shell.py (sigint_handler): Drastic simplification which
1156 * IPython/Shell.py (sigint_handler): Drastic simplification which
1152 also seems to make Ctrl-C work correctly across threads! This is
1157 also seems to make Ctrl-C work correctly across threads! This is
1153 so simple, that I can't beleive I'd missed it before. Needs more
1158 so simple, that I can't beleive I'd missed it before. Needs more
1154 testing, though.
1159 testing, though.
1155 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1160 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1156 like this before...
1161 like this before...
1157
1162
1158 * IPython/genutils.py (get_home_dir): add protection against
1163 * IPython/genutils.py (get_home_dir): add protection against
1159 non-dirs in win32 registry.
1164 non-dirs in win32 registry.
1160
1165
1161 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1166 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1162 bug where dict was mutated while iterating (pysh crash).
1167 bug where dict was mutated while iterating (pysh crash).
1163
1168
1164 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1169 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1165
1170
1166 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1171 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1167 spurious newlines added by this routine. After a report by
1172 spurious newlines added by this routine. After a report by
1168 F. Mantegazza.
1173 F. Mantegazza.
1169
1174
1170 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1175 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1171
1176
1172 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1177 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1173 calls. These were a leftover from the GTK 1.x days, and can cause
1178 calls. These were a leftover from the GTK 1.x days, and can cause
1174 problems in certain cases (after a report by John Hunter).
1179 problems in certain cases (after a report by John Hunter).
1175
1180
1176 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1181 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1177 os.getcwd() fails at init time. Thanks to patch from David Remahl
1182 os.getcwd() fails at init time. Thanks to patch from David Remahl
1178 <chmod007-AT-mac.com>.
1183 <chmod007-AT-mac.com>.
1179 (InteractiveShell.__init__): prevent certain special magics from
1184 (InteractiveShell.__init__): prevent certain special magics from
1180 being shadowed by aliases. Closes
1185 being shadowed by aliases. Closes
1181 http://www.scipy.net/roundup/ipython/issue41.
1186 http://www.scipy.net/roundup/ipython/issue41.
1182
1187
1183 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1188 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1184
1189
1185 * IPython/iplib.py (InteractiveShell.complete): Added new
1190 * IPython/iplib.py (InteractiveShell.complete): Added new
1186 top-level completion method to expose the completion mechanism
1191 top-level completion method to expose the completion mechanism
1187 beyond readline-based environments.
1192 beyond readline-based environments.
1188
1193
1189 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1194 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1190
1195
1191 * tools/ipsvnc (svnversion): fix svnversion capture.
1196 * tools/ipsvnc (svnversion): fix svnversion capture.
1192
1197
1193 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1198 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1194 attribute to self, which was missing. Before, it was set by a
1199 attribute to self, which was missing. Before, it was set by a
1195 routine which in certain cases wasn't being called, so the
1200 routine which in certain cases wasn't being called, so the
1196 instance could end up missing the attribute. This caused a crash.
1201 instance could end up missing the attribute. This caused a crash.
1197 Closes http://www.scipy.net/roundup/ipython/issue40.
1202 Closes http://www.scipy.net/roundup/ipython/issue40.
1198
1203
1199 2005-08-16 Fernando Perez <fperez@colorado.edu>
1204 2005-08-16 Fernando Perez <fperez@colorado.edu>
1200
1205
1201 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1206 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1202 contains non-string attribute. Closes
1207 contains non-string attribute. Closes
1203 http://www.scipy.net/roundup/ipython/issue38.
1208 http://www.scipy.net/roundup/ipython/issue38.
1204
1209
1205 2005-08-14 Fernando Perez <fperez@colorado.edu>
1210 2005-08-14 Fernando Perez <fperez@colorado.edu>
1206
1211
1207 * tools/ipsvnc: Minor improvements, to add changeset info.
1212 * tools/ipsvnc: Minor improvements, to add changeset info.
1208
1213
1209 2005-08-12 Fernando Perez <fperez@colorado.edu>
1214 2005-08-12 Fernando Perez <fperez@colorado.edu>
1210
1215
1211 * IPython/iplib.py (runsource): remove self.code_to_run_src
1216 * IPython/iplib.py (runsource): remove self.code_to_run_src
1212 attribute. I realized this is nothing more than
1217 attribute. I realized this is nothing more than
1213 '\n'.join(self.buffer), and having the same data in two different
1218 '\n'.join(self.buffer), and having the same data in two different
1214 places is just asking for synchronization bugs. This may impact
1219 places is just asking for synchronization bugs. This may impact
1215 people who have custom exception handlers, so I need to warn
1220 people who have custom exception handlers, so I need to warn
1216 ipython-dev about it (F. Mantegazza may use them).
1221 ipython-dev about it (F. Mantegazza may use them).
1217
1222
1218 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1223 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1219
1224
1220 * IPython/genutils.py: fix 2.2 compatibility (generators)
1225 * IPython/genutils.py: fix 2.2 compatibility (generators)
1221
1226
1222 2005-07-18 Fernando Perez <fperez@colorado.edu>
1227 2005-07-18 Fernando Perez <fperez@colorado.edu>
1223
1228
1224 * IPython/genutils.py (get_home_dir): fix to help users with
1229 * IPython/genutils.py (get_home_dir): fix to help users with
1225 invalid $HOME under win32.
1230 invalid $HOME under win32.
1226
1231
1227 2005-07-17 Fernando Perez <fperez@colorado.edu>
1232 2005-07-17 Fernando Perez <fperez@colorado.edu>
1228
1233
1229 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1234 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1230 some old hacks and clean up a bit other routines; code should be
1235 some old hacks and clean up a bit other routines; code should be
1231 simpler and a bit faster.
1236 simpler and a bit faster.
1232
1237
1233 * IPython/iplib.py (interact): removed some last-resort attempts
1238 * IPython/iplib.py (interact): removed some last-resort attempts
1234 to survive broken stdout/stderr. That code was only making it
1239 to survive broken stdout/stderr. That code was only making it
1235 harder to abstract out the i/o (necessary for gui integration),
1240 harder to abstract out the i/o (necessary for gui integration),
1236 and the crashes it could prevent were extremely rare in practice
1241 and the crashes it could prevent were extremely rare in practice
1237 (besides being fully user-induced in a pretty violent manner).
1242 (besides being fully user-induced in a pretty violent manner).
1238
1243
1239 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1244 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1240 Nothing major yet, but the code is simpler to read; this should
1245 Nothing major yet, but the code is simpler to read; this should
1241 make it easier to do more serious modifications in the future.
1246 make it easier to do more serious modifications in the future.
1242
1247
1243 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1248 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1244 which broke in .15 (thanks to a report by Ville).
1249 which broke in .15 (thanks to a report by Ville).
1245
1250
1246 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1251 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1247 be quite correct, I know next to nothing about unicode). This
1252 be quite correct, I know next to nothing about unicode). This
1248 will allow unicode strings to be used in prompts, amongst other
1253 will allow unicode strings to be used in prompts, amongst other
1249 cases. It also will prevent ipython from crashing when unicode
1254 cases. It also will prevent ipython from crashing when unicode
1250 shows up unexpectedly in many places. If ascii encoding fails, we
1255 shows up unexpectedly in many places. If ascii encoding fails, we
1251 assume utf_8. Currently the encoding is not a user-visible
1256 assume utf_8. Currently the encoding is not a user-visible
1252 setting, though it could be made so if there is demand for it.
1257 setting, though it could be made so if there is demand for it.
1253
1258
1254 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1259 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1255
1260
1256 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1261 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1257
1262
1258 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1263 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1259
1264
1260 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1265 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1261 code can work transparently for 2.2/2.3.
1266 code can work transparently for 2.2/2.3.
1262
1267
1263 2005-07-16 Fernando Perez <fperez@colorado.edu>
1268 2005-07-16 Fernando Perez <fperez@colorado.edu>
1264
1269
1265 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1270 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1266 out of the color scheme table used for coloring exception
1271 out of the color scheme table used for coloring exception
1267 tracebacks. This allows user code to add new schemes at runtime.
1272 tracebacks. This allows user code to add new schemes at runtime.
1268 This is a minimally modified version of the patch at
1273 This is a minimally modified version of the patch at
1269 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1274 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1270 for the contribution.
1275 for the contribution.
1271
1276
1272 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1277 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1273 slightly modified version of the patch in
1278 slightly modified version of the patch in
1274 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1279 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1275 to remove the previous try/except solution (which was costlier).
1280 to remove the previous try/except solution (which was costlier).
1276 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1281 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1277
1282
1278 2005-06-08 Fernando Perez <fperez@colorado.edu>
1283 2005-06-08 Fernando Perez <fperez@colorado.edu>
1279
1284
1280 * IPython/iplib.py (write/write_err): Add methods to abstract all
1285 * IPython/iplib.py (write/write_err): Add methods to abstract all
1281 I/O a bit more.
1286 I/O a bit more.
1282
1287
1283 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1288 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1284 warning, reported by Aric Hagberg, fix by JD Hunter.
1289 warning, reported by Aric Hagberg, fix by JD Hunter.
1285
1290
1286 2005-06-02 *** Released version 0.6.15
1291 2005-06-02 *** Released version 0.6.15
1287
1292
1288 2005-06-01 Fernando Perez <fperez@colorado.edu>
1293 2005-06-01 Fernando Perez <fperez@colorado.edu>
1289
1294
1290 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1295 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1291 tab-completion of filenames within open-quoted strings. Note that
1296 tab-completion of filenames within open-quoted strings. Note that
1292 this requires that in ~/.ipython/ipythonrc, users change the
1297 this requires that in ~/.ipython/ipythonrc, users change the
1293 readline delimiters configuration to read:
1298 readline delimiters configuration to read:
1294
1299
1295 readline_remove_delims -/~
1300 readline_remove_delims -/~
1296
1301
1297
1302
1298 2005-05-31 *** Released version 0.6.14
1303 2005-05-31 *** Released version 0.6.14
1299
1304
1300 2005-05-29 Fernando Perez <fperez@colorado.edu>
1305 2005-05-29 Fernando Perez <fperez@colorado.edu>
1301
1306
1302 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1307 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1303 with files not on the filesystem. Reported by Eliyahu Sandler
1308 with files not on the filesystem. Reported by Eliyahu Sandler
1304 <eli@gondolin.net>
1309 <eli@gondolin.net>
1305
1310
1306 2005-05-22 Fernando Perez <fperez@colorado.edu>
1311 2005-05-22 Fernando Perez <fperez@colorado.edu>
1307
1312
1308 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1313 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1309 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1314 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1310
1315
1311 2005-05-19 Fernando Perez <fperez@colorado.edu>
1316 2005-05-19 Fernando Perez <fperez@colorado.edu>
1312
1317
1313 * IPython/iplib.py (safe_execfile): close a file which could be
1318 * IPython/iplib.py (safe_execfile): close a file which could be
1314 left open (causing problems in win32, which locks open files).
1319 left open (causing problems in win32, which locks open files).
1315 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1320 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1316
1321
1317 2005-05-18 Fernando Perez <fperez@colorado.edu>
1322 2005-05-18 Fernando Perez <fperez@colorado.edu>
1318
1323
1319 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1324 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1320 keyword arguments correctly to safe_execfile().
1325 keyword arguments correctly to safe_execfile().
1321
1326
1322 2005-05-13 Fernando Perez <fperez@colorado.edu>
1327 2005-05-13 Fernando Perez <fperez@colorado.edu>
1323
1328
1324 * ipython.1: Added info about Qt to manpage, and threads warning
1329 * ipython.1: Added info about Qt to manpage, and threads warning
1325 to usage page (invoked with --help).
1330 to usage page (invoked with --help).
1326
1331
1327 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1332 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1328 new matcher (it goes at the end of the priority list) to do
1333 new matcher (it goes at the end of the priority list) to do
1329 tab-completion on named function arguments. Submitted by George
1334 tab-completion on named function arguments. Submitted by George
1330 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1335 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1331 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1336 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1332 for more details.
1337 for more details.
1333
1338
1334 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1339 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1335 SystemExit exceptions in the script being run. Thanks to a report
1340 SystemExit exceptions in the script being run. Thanks to a report
1336 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1341 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1337 producing very annoying behavior when running unit tests.
1342 producing very annoying behavior when running unit tests.
1338
1343
1339 2005-05-12 Fernando Perez <fperez@colorado.edu>
1344 2005-05-12 Fernando Perez <fperez@colorado.edu>
1340
1345
1341 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1346 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1342 which I'd broken (again) due to a changed regexp. In the process,
1347 which I'd broken (again) due to a changed regexp. In the process,
1343 added ';' as an escape to auto-quote the whole line without
1348 added ';' as an escape to auto-quote the whole line without
1344 splitting its arguments. Thanks to a report by Jerry McRae
1349 splitting its arguments. Thanks to a report by Jerry McRae
1345 <qrs0xyc02-AT-sneakemail.com>.
1350 <qrs0xyc02-AT-sneakemail.com>.
1346
1351
1347 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1352 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1348 possible crashes caused by a TokenError. Reported by Ed Schofield
1353 possible crashes caused by a TokenError. Reported by Ed Schofield
1349 <schofield-AT-ftw.at>.
1354 <schofield-AT-ftw.at>.
1350
1355
1351 2005-05-06 Fernando Perez <fperez@colorado.edu>
1356 2005-05-06 Fernando Perez <fperez@colorado.edu>
1352
1357
1353 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1358 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1354
1359
1355 2005-04-29 Fernando Perez <fperez@colorado.edu>
1360 2005-04-29 Fernando Perez <fperez@colorado.edu>
1356
1361
1357 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1362 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1358 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1363 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1359 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1364 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1360 which provides support for Qt interactive usage (similar to the
1365 which provides support for Qt interactive usage (similar to the
1361 existing one for WX and GTK). This had been often requested.
1366 existing one for WX and GTK). This had been often requested.
1362
1367
1363 2005-04-14 *** Released version 0.6.13
1368 2005-04-14 *** Released version 0.6.13
1364
1369
1365 2005-04-08 Fernando Perez <fperez@colorado.edu>
1370 2005-04-08 Fernando Perez <fperez@colorado.edu>
1366
1371
1367 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1372 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1368 from _ofind, which gets called on almost every input line. Now,
1373 from _ofind, which gets called on almost every input line. Now,
1369 we only try to get docstrings if they are actually going to be
1374 we only try to get docstrings if they are actually going to be
1370 used (the overhead of fetching unnecessary docstrings can be
1375 used (the overhead of fetching unnecessary docstrings can be
1371 noticeable for certain objects, such as Pyro proxies).
1376 noticeable for certain objects, such as Pyro proxies).
1372
1377
1373 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1378 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1374 for completers. For some reason I had been passing them the state
1379 for completers. For some reason I had been passing them the state
1375 variable, which completers never actually need, and was in
1380 variable, which completers never actually need, and was in
1376 conflict with the rlcompleter API. Custom completers ONLY need to
1381 conflict with the rlcompleter API. Custom completers ONLY need to
1377 take the text parameter.
1382 take the text parameter.
1378
1383
1379 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1384 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1380 work correctly in pysh. I've also moved all the logic which used
1385 work correctly in pysh. I've also moved all the logic which used
1381 to be in pysh.py here, which will prevent problems with future
1386 to be in pysh.py here, which will prevent problems with future
1382 upgrades. However, this time I must warn users to update their
1387 upgrades. However, this time I must warn users to update their
1383 pysh profile to include the line
1388 pysh profile to include the line
1384
1389
1385 import_all IPython.Extensions.InterpreterExec
1390 import_all IPython.Extensions.InterpreterExec
1386
1391
1387 because otherwise things won't work for them. They MUST also
1392 because otherwise things won't work for them. They MUST also
1388 delete pysh.py and the line
1393 delete pysh.py and the line
1389
1394
1390 execfile pysh.py
1395 execfile pysh.py
1391
1396
1392 from their ipythonrc-pysh.
1397 from their ipythonrc-pysh.
1393
1398
1394 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1399 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1395 robust in the face of objects whose dir() returns non-strings
1400 robust in the face of objects whose dir() returns non-strings
1396 (which it shouldn't, but some broken libs like ITK do). Thanks to
1401 (which it shouldn't, but some broken libs like ITK do). Thanks to
1397 a patch by John Hunter (implemented differently, though). Also
1402 a patch by John Hunter (implemented differently, though). Also
1398 minor improvements by using .extend instead of + on lists.
1403 minor improvements by using .extend instead of + on lists.
1399
1404
1400 * pysh.py:
1405 * pysh.py:
1401
1406
1402 2005-04-06 Fernando Perez <fperez@colorado.edu>
1407 2005-04-06 Fernando Perez <fperez@colorado.edu>
1403
1408
1404 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1409 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1405 by default, so that all users benefit from it. Those who don't
1410 by default, so that all users benefit from it. Those who don't
1406 want it can still turn it off.
1411 want it can still turn it off.
1407
1412
1408 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1413 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1409 config file, I'd forgotten about this, so users were getting it
1414 config file, I'd forgotten about this, so users were getting it
1410 off by default.
1415 off by default.
1411
1416
1412 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1417 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1413 consistency. Now magics can be called in multiline statements,
1418 consistency. Now magics can be called in multiline statements,
1414 and python variables can be expanded in magic calls via $var.
1419 and python variables can be expanded in magic calls via $var.
1415 This makes the magic system behave just like aliases or !system
1420 This makes the magic system behave just like aliases or !system
1416 calls.
1421 calls.
1417
1422
1418 2005-03-28 Fernando Perez <fperez@colorado.edu>
1423 2005-03-28 Fernando Perez <fperez@colorado.edu>
1419
1424
1420 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1425 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1421 expensive string additions for building command. Add support for
1426 expensive string additions for building command. Add support for
1422 trailing ';' when autocall is used.
1427 trailing ';' when autocall is used.
1423
1428
1424 2005-03-26 Fernando Perez <fperez@colorado.edu>
1429 2005-03-26 Fernando Perez <fperez@colorado.edu>
1425
1430
1426 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1431 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1427 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1432 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1428 ipython.el robust against prompts with any number of spaces
1433 ipython.el robust against prompts with any number of spaces
1429 (including 0) after the ':' character.
1434 (including 0) after the ':' character.
1430
1435
1431 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1436 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1432 continuation prompt, which misled users to think the line was
1437 continuation prompt, which misled users to think the line was
1433 already indented. Closes debian Bug#300847, reported to me by
1438 already indented. Closes debian Bug#300847, reported to me by
1434 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1439 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1435
1440
1436 2005-03-23 Fernando Perez <fperez@colorado.edu>
1441 2005-03-23 Fernando Perez <fperez@colorado.edu>
1437
1442
1438 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1443 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1439 properly aligned if they have embedded newlines.
1444 properly aligned if they have embedded newlines.
1440
1445
1441 * IPython/iplib.py (runlines): Add a public method to expose
1446 * IPython/iplib.py (runlines): Add a public method to expose
1442 IPython's code execution machinery, so that users can run strings
1447 IPython's code execution machinery, so that users can run strings
1443 as if they had been typed at the prompt interactively.
1448 as if they had been typed at the prompt interactively.
1444 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1449 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1445 methods which can call the system shell, but with python variable
1450 methods which can call the system shell, but with python variable
1446 expansion. The three such methods are: __IPYTHON__.system,
1451 expansion. The three such methods are: __IPYTHON__.system,
1447 .getoutput and .getoutputerror. These need to be documented in a
1452 .getoutput and .getoutputerror. These need to be documented in a
1448 'public API' section (to be written) of the manual.
1453 'public API' section (to be written) of the manual.
1449
1454
1450 2005-03-20 Fernando Perez <fperez@colorado.edu>
1455 2005-03-20 Fernando Perez <fperez@colorado.edu>
1451
1456
1452 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1457 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1453 for custom exception handling. This is quite powerful, and it
1458 for custom exception handling. This is quite powerful, and it
1454 allows for user-installable exception handlers which can trap
1459 allows for user-installable exception handlers which can trap
1455 custom exceptions at runtime and treat them separately from
1460 custom exceptions at runtime and treat them separately from
1456 IPython's default mechanisms. At the request of Frédéric
1461 IPython's default mechanisms. At the request of Frédéric
1457 Mantegazza <mantegazza-AT-ill.fr>.
1462 Mantegazza <mantegazza-AT-ill.fr>.
1458 (InteractiveShell.set_custom_completer): public API function to
1463 (InteractiveShell.set_custom_completer): public API function to
1459 add new completers at runtime.
1464 add new completers at runtime.
1460
1465
1461 2005-03-19 Fernando Perez <fperez@colorado.edu>
1466 2005-03-19 Fernando Perez <fperez@colorado.edu>
1462
1467
1463 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1468 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1464 allow objects which provide their docstrings via non-standard
1469 allow objects which provide their docstrings via non-standard
1465 mechanisms (like Pyro proxies) to still be inspected by ipython's
1470 mechanisms (like Pyro proxies) to still be inspected by ipython's
1466 ? system.
1471 ? system.
1467
1472
1468 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1473 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1469 automatic capture system. I tried quite hard to make it work
1474 automatic capture system. I tried quite hard to make it work
1470 reliably, and simply failed. I tried many combinations with the
1475 reliably, and simply failed. I tried many combinations with the
1471 subprocess module, but eventually nothing worked in all needed
1476 subprocess module, but eventually nothing worked in all needed
1472 cases (not blocking stdin for the child, duplicating stdout
1477 cases (not blocking stdin for the child, duplicating stdout
1473 without blocking, etc). The new %sc/%sx still do capture to these
1478 without blocking, etc). The new %sc/%sx still do capture to these
1474 magical list/string objects which make shell use much more
1479 magical list/string objects which make shell use much more
1475 conveninent, so not all is lost.
1480 conveninent, so not all is lost.
1476
1481
1477 XXX - FIX MANUAL for the change above!
1482 XXX - FIX MANUAL for the change above!
1478
1483
1479 (runsource): I copied code.py's runsource() into ipython to modify
1484 (runsource): I copied code.py's runsource() into ipython to modify
1480 it a bit. Now the code object and source to be executed are
1485 it a bit. Now the code object and source to be executed are
1481 stored in ipython. This makes this info accessible to third-party
1486 stored in ipython. This makes this info accessible to third-party
1482 tools, like custom exception handlers. After a request by Frédéric
1487 tools, like custom exception handlers. After a request by Frédéric
1483 Mantegazza <mantegazza-AT-ill.fr>.
1488 Mantegazza <mantegazza-AT-ill.fr>.
1484
1489
1485 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1490 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1486 history-search via readline (like C-p/C-n). I'd wanted this for a
1491 history-search via readline (like C-p/C-n). I'd wanted this for a
1487 long time, but only recently found out how to do it. For users
1492 long time, but only recently found out how to do it. For users
1488 who already have their ipythonrc files made and want this, just
1493 who already have their ipythonrc files made and want this, just
1489 add:
1494 add:
1490
1495
1491 readline_parse_and_bind "\e[A": history-search-backward
1496 readline_parse_and_bind "\e[A": history-search-backward
1492 readline_parse_and_bind "\e[B": history-search-forward
1497 readline_parse_and_bind "\e[B": history-search-forward
1493
1498
1494 2005-03-18 Fernando Perez <fperez@colorado.edu>
1499 2005-03-18 Fernando Perez <fperez@colorado.edu>
1495
1500
1496 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1501 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1497 LSString and SList classes which allow transparent conversions
1502 LSString and SList classes which allow transparent conversions
1498 between list mode and whitespace-separated string.
1503 between list mode and whitespace-separated string.
1499 (magic_r): Fix recursion problem in %r.
1504 (magic_r): Fix recursion problem in %r.
1500
1505
1501 * IPython/genutils.py (LSString): New class to be used for
1506 * IPython/genutils.py (LSString): New class to be used for
1502 automatic storage of the results of all alias/system calls in _o
1507 automatic storage of the results of all alias/system calls in _o
1503 and _e (stdout/err). These provide a .l/.list attribute which
1508 and _e (stdout/err). These provide a .l/.list attribute which
1504 does automatic splitting on newlines. This means that for most
1509 does automatic splitting on newlines. This means that for most
1505 uses, you'll never need to do capturing of output with %sc/%sx
1510 uses, you'll never need to do capturing of output with %sc/%sx
1506 anymore, since ipython keeps this always done for you. Note that
1511 anymore, since ipython keeps this always done for you. Note that
1507 only the LAST results are stored, the _o/e variables are
1512 only the LAST results are stored, the _o/e variables are
1508 overwritten on each call. If you need to save their contents
1513 overwritten on each call. If you need to save their contents
1509 further, simply bind them to any other name.
1514 further, simply bind them to any other name.
1510
1515
1511 2005-03-17 Fernando Perez <fperez@colorado.edu>
1516 2005-03-17 Fernando Perez <fperez@colorado.edu>
1512
1517
1513 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1518 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1514 prompt namespace handling.
1519 prompt namespace handling.
1515
1520
1516 2005-03-16 Fernando Perez <fperez@colorado.edu>
1521 2005-03-16 Fernando Perez <fperez@colorado.edu>
1517
1522
1518 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1523 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1519 classic prompts to be '>>> ' (final space was missing, and it
1524 classic prompts to be '>>> ' (final space was missing, and it
1520 trips the emacs python mode).
1525 trips the emacs python mode).
1521 (BasePrompt.__str__): Added safe support for dynamic prompt
1526 (BasePrompt.__str__): Added safe support for dynamic prompt
1522 strings. Now you can set your prompt string to be '$x', and the
1527 strings. Now you can set your prompt string to be '$x', and the
1523 value of x will be printed from your interactive namespace. The
1528 value of x will be printed from your interactive namespace. The
1524 interpolation syntax includes the full Itpl support, so
1529 interpolation syntax includes the full Itpl support, so
1525 ${foo()+x+bar()} is a valid prompt string now, and the function
1530 ${foo()+x+bar()} is a valid prompt string now, and the function
1526 calls will be made at runtime.
1531 calls will be made at runtime.
1527
1532
1528 2005-03-15 Fernando Perez <fperez@colorado.edu>
1533 2005-03-15 Fernando Perez <fperez@colorado.edu>
1529
1534
1530 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1535 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1531 avoid name clashes in pylab. %hist still works, it just forwards
1536 avoid name clashes in pylab. %hist still works, it just forwards
1532 the call to %history.
1537 the call to %history.
1533
1538
1534 2005-03-02 *** Released version 0.6.12
1539 2005-03-02 *** Released version 0.6.12
1535
1540
1536 2005-03-02 Fernando Perez <fperez@colorado.edu>
1541 2005-03-02 Fernando Perez <fperez@colorado.edu>
1537
1542
1538 * IPython/iplib.py (handle_magic): log magic calls properly as
1543 * IPython/iplib.py (handle_magic): log magic calls properly as
1539 ipmagic() function calls.
1544 ipmagic() function calls.
1540
1545
1541 * IPython/Magic.py (magic_time): Improved %time to support
1546 * IPython/Magic.py (magic_time): Improved %time to support
1542 statements and provide wall-clock as well as CPU time.
1547 statements and provide wall-clock as well as CPU time.
1543
1548
1544 2005-02-27 Fernando Perez <fperez@colorado.edu>
1549 2005-02-27 Fernando Perez <fperez@colorado.edu>
1545
1550
1546 * IPython/hooks.py: New hooks module, to expose user-modifiable
1551 * IPython/hooks.py: New hooks module, to expose user-modifiable
1547 IPython functionality in a clean manner. For now only the editor
1552 IPython functionality in a clean manner. For now only the editor
1548 hook is actually written, and other thigns which I intend to turn
1553 hook is actually written, and other thigns which I intend to turn
1549 into proper hooks aren't yet there. The display and prefilter
1554 into proper hooks aren't yet there. The display and prefilter
1550 stuff, for example, should be hooks. But at least now the
1555 stuff, for example, should be hooks. But at least now the
1551 framework is in place, and the rest can be moved here with more
1556 framework is in place, and the rest can be moved here with more
1552 time later. IPython had had a .hooks variable for a long time for
1557 time later. IPython had had a .hooks variable for a long time for
1553 this purpose, but I'd never actually used it for anything.
1558 this purpose, but I'd never actually used it for anything.
1554
1559
1555 2005-02-26 Fernando Perez <fperez@colorado.edu>
1560 2005-02-26 Fernando Perez <fperez@colorado.edu>
1556
1561
1557 * IPython/ipmaker.py (make_IPython): make the default ipython
1562 * IPython/ipmaker.py (make_IPython): make the default ipython
1558 directory be called _ipython under win32, to follow more the
1563 directory be called _ipython under win32, to follow more the
1559 naming peculiarities of that platform (where buggy software like
1564 naming peculiarities of that platform (where buggy software like
1560 Visual Sourcesafe breaks with .named directories). Reported by
1565 Visual Sourcesafe breaks with .named directories). Reported by
1561 Ville Vainio.
1566 Ville Vainio.
1562
1567
1563 2005-02-23 Fernando Perez <fperez@colorado.edu>
1568 2005-02-23 Fernando Perez <fperez@colorado.edu>
1564
1569
1565 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1570 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1566 auto_aliases for win32 which were causing problems. Users can
1571 auto_aliases for win32 which were causing problems. Users can
1567 define the ones they personally like.
1572 define the ones they personally like.
1568
1573
1569 2005-02-21 Fernando Perez <fperez@colorado.edu>
1574 2005-02-21 Fernando Perez <fperez@colorado.edu>
1570
1575
1571 * IPython/Magic.py (magic_time): new magic to time execution of
1576 * IPython/Magic.py (magic_time): new magic to time execution of
1572 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1577 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1573
1578
1574 2005-02-19 Fernando Perez <fperez@colorado.edu>
1579 2005-02-19 Fernando Perez <fperez@colorado.edu>
1575
1580
1576 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1581 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1577 into keys (for prompts, for example).
1582 into keys (for prompts, for example).
1578
1583
1579 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1584 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1580 prompts in case users want them. This introduces a small behavior
1585 prompts in case users want them. This introduces a small behavior
1581 change: ipython does not automatically add a space to all prompts
1586 change: ipython does not automatically add a space to all prompts
1582 anymore. To get the old prompts with a space, users should add it
1587 anymore. To get the old prompts with a space, users should add it
1583 manually to their ipythonrc file, so for example prompt_in1 should
1588 manually to their ipythonrc file, so for example prompt_in1 should
1584 now read 'In [\#]: ' instead of 'In [\#]:'.
1589 now read 'In [\#]: ' instead of 'In [\#]:'.
1585 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1590 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1586 file) to control left-padding of secondary prompts.
1591 file) to control left-padding of secondary prompts.
1587
1592
1588 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1593 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1589 the profiler can't be imported. Fix for Debian, which removed
1594 the profiler can't be imported. Fix for Debian, which removed
1590 profile.py because of License issues. I applied a slightly
1595 profile.py because of License issues. I applied a slightly
1591 modified version of the original Debian patch at
1596 modified version of the original Debian patch at
1592 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1597 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1593
1598
1594 2005-02-17 Fernando Perez <fperez@colorado.edu>
1599 2005-02-17 Fernando Perez <fperez@colorado.edu>
1595
1600
1596 * IPython/genutils.py (native_line_ends): Fix bug which would
1601 * IPython/genutils.py (native_line_ends): Fix bug which would
1597 cause improper line-ends under win32 b/c I was not opening files
1602 cause improper line-ends under win32 b/c I was not opening files
1598 in binary mode. Bug report and fix thanks to Ville.
1603 in binary mode. Bug report and fix thanks to Ville.
1599
1604
1600 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1605 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1601 trying to catch spurious foo[1] autocalls. My fix actually broke
1606 trying to catch spurious foo[1] autocalls. My fix actually broke
1602 ',/' autoquote/call with explicit escape (bad regexp).
1607 ',/' autoquote/call with explicit escape (bad regexp).
1603
1608
1604 2005-02-15 *** Released version 0.6.11
1609 2005-02-15 *** Released version 0.6.11
1605
1610
1606 2005-02-14 Fernando Perez <fperez@colorado.edu>
1611 2005-02-14 Fernando Perez <fperez@colorado.edu>
1607
1612
1608 * IPython/background_jobs.py: New background job management
1613 * IPython/background_jobs.py: New background job management
1609 subsystem. This is implemented via a new set of classes, and
1614 subsystem. This is implemented via a new set of classes, and
1610 IPython now provides a builtin 'jobs' object for background job
1615 IPython now provides a builtin 'jobs' object for background job
1611 execution. A convenience %bg magic serves as a lightweight
1616 execution. A convenience %bg magic serves as a lightweight
1612 frontend for starting the more common type of calls. This was
1617 frontend for starting the more common type of calls. This was
1613 inspired by discussions with B. Granger and the BackgroundCommand
1618 inspired by discussions with B. Granger and the BackgroundCommand
1614 class described in the book Python Scripting for Computational
1619 class described in the book Python Scripting for Computational
1615 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1620 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1616 (although ultimately no code from this text was used, as IPython's
1621 (although ultimately no code from this text was used, as IPython's
1617 system is a separate implementation).
1622 system is a separate implementation).
1618
1623
1619 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1624 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1620 to control the completion of single/double underscore names
1625 to control the completion of single/double underscore names
1621 separately. As documented in the example ipytonrc file, the
1626 separately. As documented in the example ipytonrc file, the
1622 readline_omit__names variable can now be set to 2, to omit even
1627 readline_omit__names variable can now be set to 2, to omit even
1623 single underscore names. Thanks to a patch by Brian Wong
1628 single underscore names. Thanks to a patch by Brian Wong
1624 <BrianWong-AT-AirgoNetworks.Com>.
1629 <BrianWong-AT-AirgoNetworks.Com>.
1625 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1630 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1626 be autocalled as foo([1]) if foo were callable. A problem for
1631 be autocalled as foo([1]) if foo were callable. A problem for
1627 things which are both callable and implement __getitem__.
1632 things which are both callable and implement __getitem__.
1628 (init_readline): Fix autoindentation for win32. Thanks to a patch
1633 (init_readline): Fix autoindentation for win32. Thanks to a patch
1629 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1634 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1630
1635
1631 2005-02-12 Fernando Perez <fperez@colorado.edu>
1636 2005-02-12 Fernando Perez <fperez@colorado.edu>
1632
1637
1633 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1638 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1634 which I had written long ago to sort out user error messages which
1639 which I had written long ago to sort out user error messages which
1635 may occur during startup. This seemed like a good idea initially,
1640 may occur during startup. This seemed like a good idea initially,
1636 but it has proven a disaster in retrospect. I don't want to
1641 but it has proven a disaster in retrospect. I don't want to
1637 change much code for now, so my fix is to set the internal 'debug'
1642 change much code for now, so my fix is to set the internal 'debug'
1638 flag to true everywhere, whose only job was precisely to control
1643 flag to true everywhere, whose only job was precisely to control
1639 this subsystem. This closes issue 28 (as well as avoiding all
1644 this subsystem. This closes issue 28 (as well as avoiding all
1640 sorts of strange hangups which occur from time to time).
1645 sorts of strange hangups which occur from time to time).
1641
1646
1642 2005-02-07 Fernando Perez <fperez@colorado.edu>
1647 2005-02-07 Fernando Perez <fperez@colorado.edu>
1643
1648
1644 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1649 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1645 previous call produced a syntax error.
1650 previous call produced a syntax error.
1646
1651
1647 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1652 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1648 classes without constructor.
1653 classes without constructor.
1649
1654
1650 2005-02-06 Fernando Perez <fperez@colorado.edu>
1655 2005-02-06 Fernando Perez <fperez@colorado.edu>
1651
1656
1652 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1657 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1653 completions with the results of each matcher, so we return results
1658 completions with the results of each matcher, so we return results
1654 to the user from all namespaces. This breaks with ipython
1659 to the user from all namespaces. This breaks with ipython
1655 tradition, but I think it's a nicer behavior. Now you get all
1660 tradition, but I think it's a nicer behavior. Now you get all
1656 possible completions listed, from all possible namespaces (python,
1661 possible completions listed, from all possible namespaces (python,
1657 filesystem, magics...) After a request by John Hunter
1662 filesystem, magics...) After a request by John Hunter
1658 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1663 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1659
1664
1660 2005-02-05 Fernando Perez <fperez@colorado.edu>
1665 2005-02-05 Fernando Perez <fperez@colorado.edu>
1661
1666
1662 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1667 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1663 the call had quote characters in it (the quotes were stripped).
1668 the call had quote characters in it (the quotes were stripped).
1664
1669
1665 2005-01-31 Fernando Perez <fperez@colorado.edu>
1670 2005-01-31 Fernando Perez <fperez@colorado.edu>
1666
1671
1667 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1672 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1668 Itpl.itpl() to make the code more robust against psyco
1673 Itpl.itpl() to make the code more robust against psyco
1669 optimizations.
1674 optimizations.
1670
1675
1671 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1676 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1672 of causing an exception. Quicker, cleaner.
1677 of causing an exception. Quicker, cleaner.
1673
1678
1674 2005-01-28 Fernando Perez <fperez@colorado.edu>
1679 2005-01-28 Fernando Perez <fperez@colorado.edu>
1675
1680
1676 * scripts/ipython_win_post_install.py (install): hardcode
1681 * scripts/ipython_win_post_install.py (install): hardcode
1677 sys.prefix+'python.exe' as the executable path. It turns out that
1682 sys.prefix+'python.exe' as the executable path. It turns out that
1678 during the post-installation run, sys.executable resolves to the
1683 during the post-installation run, sys.executable resolves to the
1679 name of the binary installer! I should report this as a distutils
1684 name of the binary installer! I should report this as a distutils
1680 bug, I think. I updated the .10 release with this tiny fix, to
1685 bug, I think. I updated the .10 release with this tiny fix, to
1681 avoid annoying the lists further.
1686 avoid annoying the lists further.
1682
1687
1683 2005-01-27 *** Released version 0.6.10
1688 2005-01-27 *** Released version 0.6.10
1684
1689
1685 2005-01-27 Fernando Perez <fperez@colorado.edu>
1690 2005-01-27 Fernando Perez <fperez@colorado.edu>
1686
1691
1687 * IPython/numutils.py (norm): Added 'inf' as optional name for
1692 * IPython/numutils.py (norm): Added 'inf' as optional name for
1688 L-infinity norm, included references to mathworld.com for vector
1693 L-infinity norm, included references to mathworld.com for vector
1689 norm definitions.
1694 norm definitions.
1690 (amin/amax): added amin/amax for array min/max. Similar to what
1695 (amin/amax): added amin/amax for array min/max. Similar to what
1691 pylab ships with after the recent reorganization of names.
1696 pylab ships with after the recent reorganization of names.
1692 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1697 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1693
1698
1694 * ipython.el: committed Alex's recent fixes and improvements.
1699 * ipython.el: committed Alex's recent fixes and improvements.
1695 Tested with python-mode from CVS, and it looks excellent. Since
1700 Tested with python-mode from CVS, and it looks excellent. Since
1696 python-mode hasn't released anything in a while, I'm temporarily
1701 python-mode hasn't released anything in a while, I'm temporarily
1697 putting a copy of today's CVS (v 4.70) of python-mode in:
1702 putting a copy of today's CVS (v 4.70) of python-mode in:
1698 http://ipython.scipy.org/tmp/python-mode.el
1703 http://ipython.scipy.org/tmp/python-mode.el
1699
1704
1700 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1705 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1701 sys.executable for the executable name, instead of assuming it's
1706 sys.executable for the executable name, instead of assuming it's
1702 called 'python.exe' (the post-installer would have produced broken
1707 called 'python.exe' (the post-installer would have produced broken
1703 setups on systems with a differently named python binary).
1708 setups on systems with a differently named python binary).
1704
1709
1705 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1710 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1706 references to os.linesep, to make the code more
1711 references to os.linesep, to make the code more
1707 platform-independent. This is also part of the win32 coloring
1712 platform-independent. This is also part of the win32 coloring
1708 fixes.
1713 fixes.
1709
1714
1710 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1715 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1711 lines, which actually cause coloring bugs because the length of
1716 lines, which actually cause coloring bugs because the length of
1712 the line is very difficult to correctly compute with embedded
1717 the line is very difficult to correctly compute with embedded
1713 escapes. This was the source of all the coloring problems under
1718 escapes. This was the source of all the coloring problems under
1714 Win32. I think that _finally_, Win32 users have a properly
1719 Win32. I think that _finally_, Win32 users have a properly
1715 working ipython in all respects. This would never have happened
1720 working ipython in all respects. This would never have happened
1716 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1721 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1717
1722
1718 2005-01-26 *** Released version 0.6.9
1723 2005-01-26 *** Released version 0.6.9
1719
1724
1720 2005-01-25 Fernando Perez <fperez@colorado.edu>
1725 2005-01-25 Fernando Perez <fperez@colorado.edu>
1721
1726
1722 * setup.py: finally, we have a true Windows installer, thanks to
1727 * setup.py: finally, we have a true Windows installer, thanks to
1723 the excellent work of Viktor Ransmayr
1728 the excellent work of Viktor Ransmayr
1724 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1729 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1725 Windows users. The setup routine is quite a bit cleaner thanks to
1730 Windows users. The setup routine is quite a bit cleaner thanks to
1726 this, and the post-install script uses the proper functions to
1731 this, and the post-install script uses the proper functions to
1727 allow a clean de-installation using the standard Windows Control
1732 allow a clean de-installation using the standard Windows Control
1728 Panel.
1733 Panel.
1729
1734
1730 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1735 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1731 environment variable under all OSes (including win32) if
1736 environment variable under all OSes (including win32) if
1732 available. This will give consistency to win32 users who have set
1737 available. This will give consistency to win32 users who have set
1733 this variable for any reason. If os.environ['HOME'] fails, the
1738 this variable for any reason. If os.environ['HOME'] fails, the
1734 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1739 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1735
1740
1736 2005-01-24 Fernando Perez <fperez@colorado.edu>
1741 2005-01-24 Fernando Perez <fperez@colorado.edu>
1737
1742
1738 * IPython/numutils.py (empty_like): add empty_like(), similar to
1743 * IPython/numutils.py (empty_like): add empty_like(), similar to
1739 zeros_like() but taking advantage of the new empty() Numeric routine.
1744 zeros_like() but taking advantage of the new empty() Numeric routine.
1740
1745
1741 2005-01-23 *** Released version 0.6.8
1746 2005-01-23 *** Released version 0.6.8
1742
1747
1743 2005-01-22 Fernando Perez <fperez@colorado.edu>
1748 2005-01-22 Fernando Perez <fperez@colorado.edu>
1744
1749
1745 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1750 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1746 automatic show() calls. After discussing things with JDH, it
1751 automatic show() calls. After discussing things with JDH, it
1747 turns out there are too many corner cases where this can go wrong.
1752 turns out there are too many corner cases where this can go wrong.
1748 It's best not to try to be 'too smart', and simply have ipython
1753 It's best not to try to be 'too smart', and simply have ipython
1749 reproduce as much as possible the default behavior of a normal
1754 reproduce as much as possible the default behavior of a normal
1750 python shell.
1755 python shell.
1751
1756
1752 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1757 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1753 line-splitting regexp and _prefilter() to avoid calling getattr()
1758 line-splitting regexp and _prefilter() to avoid calling getattr()
1754 on assignments. This closes
1759 on assignments. This closes
1755 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1760 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1756 readline uses getattr(), so a simple <TAB> keypress is still
1761 readline uses getattr(), so a simple <TAB> keypress is still
1757 enough to trigger getattr() calls on an object.
1762 enough to trigger getattr() calls on an object.
1758
1763
1759 2005-01-21 Fernando Perez <fperez@colorado.edu>
1764 2005-01-21 Fernando Perez <fperez@colorado.edu>
1760
1765
1761 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1766 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1762 docstring under pylab so it doesn't mask the original.
1767 docstring under pylab so it doesn't mask the original.
1763
1768
1764 2005-01-21 *** Released version 0.6.7
1769 2005-01-21 *** Released version 0.6.7
1765
1770
1766 2005-01-21 Fernando Perez <fperez@colorado.edu>
1771 2005-01-21 Fernando Perez <fperez@colorado.edu>
1767
1772
1768 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1773 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1769 signal handling for win32 users in multithreaded mode.
1774 signal handling for win32 users in multithreaded mode.
1770
1775
1771 2005-01-17 Fernando Perez <fperez@colorado.edu>
1776 2005-01-17 Fernando Perez <fperez@colorado.edu>
1772
1777
1773 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1778 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1774 instances with no __init__. After a crash report by Norbert Nemec
1779 instances with no __init__. After a crash report by Norbert Nemec
1775 <Norbert-AT-nemec-online.de>.
1780 <Norbert-AT-nemec-online.de>.
1776
1781
1777 2005-01-14 Fernando Perez <fperez@colorado.edu>
1782 2005-01-14 Fernando Perez <fperez@colorado.edu>
1778
1783
1779 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1784 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1780 names for verbose exceptions, when multiple dotted names and the
1785 names for verbose exceptions, when multiple dotted names and the
1781 'parent' object were present on the same line.
1786 'parent' object were present on the same line.
1782
1787
1783 2005-01-11 Fernando Perez <fperez@colorado.edu>
1788 2005-01-11 Fernando Perez <fperez@colorado.edu>
1784
1789
1785 * IPython/genutils.py (flag_calls): new utility to trap and flag
1790 * IPython/genutils.py (flag_calls): new utility to trap and flag
1786 calls in functions. I need it to clean up matplotlib support.
1791 calls in functions. I need it to clean up matplotlib support.
1787 Also removed some deprecated code in genutils.
1792 Also removed some deprecated code in genutils.
1788
1793
1789 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1794 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1790 that matplotlib scripts called with %run, which don't call show()
1795 that matplotlib scripts called with %run, which don't call show()
1791 themselves, still have their plotting windows open.
1796 themselves, still have their plotting windows open.
1792
1797
1793 2005-01-05 Fernando Perez <fperez@colorado.edu>
1798 2005-01-05 Fernando Perez <fperez@colorado.edu>
1794
1799
1795 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1800 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1796 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1801 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1797
1802
1798 2004-12-19 Fernando Perez <fperez@colorado.edu>
1803 2004-12-19 Fernando Perez <fperez@colorado.edu>
1799
1804
1800 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1805 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1801 parent_runcode, which was an eyesore. The same result can be
1806 parent_runcode, which was an eyesore. The same result can be
1802 obtained with Python's regular superclass mechanisms.
1807 obtained with Python's regular superclass mechanisms.
1803
1808
1804 2004-12-17 Fernando Perez <fperez@colorado.edu>
1809 2004-12-17 Fernando Perez <fperez@colorado.edu>
1805
1810
1806 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1811 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1807 reported by Prabhu.
1812 reported by Prabhu.
1808 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1813 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1809 sys.stderr) instead of explicitly calling sys.stderr. This helps
1814 sys.stderr) instead of explicitly calling sys.stderr. This helps
1810 maintain our I/O abstractions clean, for future GUI embeddings.
1815 maintain our I/O abstractions clean, for future GUI embeddings.
1811
1816
1812 * IPython/genutils.py (info): added new utility for sys.stderr
1817 * IPython/genutils.py (info): added new utility for sys.stderr
1813 unified info message handling (thin wrapper around warn()).
1818 unified info message handling (thin wrapper around warn()).
1814
1819
1815 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1820 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1816 composite (dotted) names on verbose exceptions.
1821 composite (dotted) names on verbose exceptions.
1817 (VerboseTB.nullrepr): harden against another kind of errors which
1822 (VerboseTB.nullrepr): harden against another kind of errors which
1818 Python's inspect module can trigger, and which were crashing
1823 Python's inspect module can trigger, and which were crashing
1819 IPython. Thanks to a report by Marco Lombardi
1824 IPython. Thanks to a report by Marco Lombardi
1820 <mlombard-AT-ma010192.hq.eso.org>.
1825 <mlombard-AT-ma010192.hq.eso.org>.
1821
1826
1822 2004-12-13 *** Released version 0.6.6
1827 2004-12-13 *** Released version 0.6.6
1823
1828
1824 2004-12-12 Fernando Perez <fperez@colorado.edu>
1829 2004-12-12 Fernando Perez <fperez@colorado.edu>
1825
1830
1826 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1831 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1827 generated by pygtk upon initialization if it was built without
1832 generated by pygtk upon initialization if it was built without
1828 threads (for matplotlib users). After a crash reported by
1833 threads (for matplotlib users). After a crash reported by
1829 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1834 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1830
1835
1831 * IPython/ipmaker.py (make_IPython): fix small bug in the
1836 * IPython/ipmaker.py (make_IPython): fix small bug in the
1832 import_some parameter for multiple imports.
1837 import_some parameter for multiple imports.
1833
1838
1834 * IPython/iplib.py (ipmagic): simplified the interface of
1839 * IPython/iplib.py (ipmagic): simplified the interface of
1835 ipmagic() to take a single string argument, just as it would be
1840 ipmagic() to take a single string argument, just as it would be
1836 typed at the IPython cmd line.
1841 typed at the IPython cmd line.
1837 (ipalias): Added new ipalias() with an interface identical to
1842 (ipalias): Added new ipalias() with an interface identical to
1838 ipmagic(). This completes exposing a pure python interface to the
1843 ipmagic(). This completes exposing a pure python interface to the
1839 alias and magic system, which can be used in loops or more complex
1844 alias and magic system, which can be used in loops or more complex
1840 code where IPython's automatic line mangling is not active.
1845 code where IPython's automatic line mangling is not active.
1841
1846
1842 * IPython/genutils.py (timing): changed interface of timing to
1847 * IPython/genutils.py (timing): changed interface of timing to
1843 simply run code once, which is the most common case. timings()
1848 simply run code once, which is the most common case. timings()
1844 remains unchanged, for the cases where you want multiple runs.
1849 remains unchanged, for the cases where you want multiple runs.
1845
1850
1846 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1851 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1847 bug where Python2.2 crashes with exec'ing code which does not end
1852 bug where Python2.2 crashes with exec'ing code which does not end
1848 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1853 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1849 before.
1854 before.
1850
1855
1851 2004-12-10 Fernando Perez <fperez@colorado.edu>
1856 2004-12-10 Fernando Perez <fperez@colorado.edu>
1852
1857
1853 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1858 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1854 -t to -T, to accomodate the new -t flag in %run (the %run and
1859 -t to -T, to accomodate the new -t flag in %run (the %run and
1855 %prun options are kind of intermixed, and it's not easy to change
1860 %prun options are kind of intermixed, and it's not easy to change
1856 this with the limitations of python's getopt).
1861 this with the limitations of python's getopt).
1857
1862
1858 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1863 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1859 the execution of scripts. It's not as fine-tuned as timeit.py,
1864 the execution of scripts. It's not as fine-tuned as timeit.py,
1860 but it works from inside ipython (and under 2.2, which lacks
1865 but it works from inside ipython (and under 2.2, which lacks
1861 timeit.py). Optionally a number of runs > 1 can be given for
1866 timeit.py). Optionally a number of runs > 1 can be given for
1862 timing very short-running code.
1867 timing very short-running code.
1863
1868
1864 * IPython/genutils.py (uniq_stable): new routine which returns a
1869 * IPython/genutils.py (uniq_stable): new routine which returns a
1865 list of unique elements in any iterable, but in stable order of
1870 list of unique elements in any iterable, but in stable order of
1866 appearance. I needed this for the ultraTB fixes, and it's a handy
1871 appearance. I needed this for the ultraTB fixes, and it's a handy
1867 utility.
1872 utility.
1868
1873
1869 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1874 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1870 dotted names in Verbose exceptions. This had been broken since
1875 dotted names in Verbose exceptions. This had been broken since
1871 the very start, now x.y will properly be printed in a Verbose
1876 the very start, now x.y will properly be printed in a Verbose
1872 traceback, instead of x being shown and y appearing always as an
1877 traceback, instead of x being shown and y appearing always as an
1873 'undefined global'. Getting this to work was a bit tricky,
1878 'undefined global'. Getting this to work was a bit tricky,
1874 because by default python tokenizers are stateless. Saved by
1879 because by default python tokenizers are stateless. Saved by
1875 python's ability to easily add a bit of state to an arbitrary
1880 python's ability to easily add a bit of state to an arbitrary
1876 function (without needing to build a full-blown callable object).
1881 function (without needing to build a full-blown callable object).
1877
1882
1878 Also big cleanup of this code, which had horrendous runtime
1883 Also big cleanup of this code, which had horrendous runtime
1879 lookups of zillions of attributes for colorization. Moved all
1884 lookups of zillions of attributes for colorization. Moved all
1880 this code into a few templates, which make it cleaner and quicker.
1885 this code into a few templates, which make it cleaner and quicker.
1881
1886
1882 Printout quality was also improved for Verbose exceptions: one
1887 Printout quality was also improved for Verbose exceptions: one
1883 variable per line, and memory addresses are printed (this can be
1888 variable per line, and memory addresses are printed (this can be
1884 quite handy in nasty debugging situations, which is what Verbose
1889 quite handy in nasty debugging situations, which is what Verbose
1885 is for).
1890 is for).
1886
1891
1887 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1892 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1888 the command line as scripts to be loaded by embedded instances.
1893 the command line as scripts to be loaded by embedded instances.
1889 Doing so has the potential for an infinite recursion if there are
1894 Doing so has the potential for an infinite recursion if there are
1890 exceptions thrown in the process. This fixes a strange crash
1895 exceptions thrown in the process. This fixes a strange crash
1891 reported by Philippe MULLER <muller-AT-irit.fr>.
1896 reported by Philippe MULLER <muller-AT-irit.fr>.
1892
1897
1893 2004-12-09 Fernando Perez <fperez@colorado.edu>
1898 2004-12-09 Fernando Perez <fperez@colorado.edu>
1894
1899
1895 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1900 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1896 to reflect new names in matplotlib, which now expose the
1901 to reflect new names in matplotlib, which now expose the
1897 matlab-compatible interface via a pylab module instead of the
1902 matlab-compatible interface via a pylab module instead of the
1898 'matlab' name. The new code is backwards compatible, so users of
1903 'matlab' name. The new code is backwards compatible, so users of
1899 all matplotlib versions are OK. Patch by J. Hunter.
1904 all matplotlib versions are OK. Patch by J. Hunter.
1900
1905
1901 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1906 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1902 of __init__ docstrings for instances (class docstrings are already
1907 of __init__ docstrings for instances (class docstrings are already
1903 automatically printed). Instances with customized docstrings
1908 automatically printed). Instances with customized docstrings
1904 (indep. of the class) are also recognized and all 3 separate
1909 (indep. of the class) are also recognized and all 3 separate
1905 docstrings are printed (instance, class, constructor). After some
1910 docstrings are printed (instance, class, constructor). After some
1906 comments/suggestions by J. Hunter.
1911 comments/suggestions by J. Hunter.
1907
1912
1908 2004-12-05 Fernando Perez <fperez@colorado.edu>
1913 2004-12-05 Fernando Perez <fperez@colorado.edu>
1909
1914
1910 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1915 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1911 warnings when tab-completion fails and triggers an exception.
1916 warnings when tab-completion fails and triggers an exception.
1912
1917
1913 2004-12-03 Fernando Perez <fperez@colorado.edu>
1918 2004-12-03 Fernando Perez <fperez@colorado.edu>
1914
1919
1915 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1920 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1916 be triggered when using 'run -p'. An incorrect option flag was
1921 be triggered when using 'run -p'. An incorrect option flag was
1917 being set ('d' instead of 'D').
1922 being set ('d' instead of 'D').
1918 (manpage): fix missing escaped \- sign.
1923 (manpage): fix missing escaped \- sign.
1919
1924
1920 2004-11-30 *** Released version 0.6.5
1925 2004-11-30 *** Released version 0.6.5
1921
1926
1922 2004-11-30 Fernando Perez <fperez@colorado.edu>
1927 2004-11-30 Fernando Perez <fperez@colorado.edu>
1923
1928
1924 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1929 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1925 setting with -d option.
1930 setting with -d option.
1926
1931
1927 * setup.py (docfiles): Fix problem where the doc glob I was using
1932 * setup.py (docfiles): Fix problem where the doc glob I was using
1928 was COMPLETELY BROKEN. It was giving the right files by pure
1933 was COMPLETELY BROKEN. It was giving the right files by pure
1929 accident, but failed once I tried to include ipython.el. Note:
1934 accident, but failed once I tried to include ipython.el. Note:
1930 glob() does NOT allow you to do exclusion on multiple endings!
1935 glob() does NOT allow you to do exclusion on multiple endings!
1931
1936
1932 2004-11-29 Fernando Perez <fperez@colorado.edu>
1937 2004-11-29 Fernando Perez <fperez@colorado.edu>
1933
1938
1934 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1939 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1935 the manpage as the source. Better formatting & consistency.
1940 the manpage as the source. Better formatting & consistency.
1936
1941
1937 * IPython/Magic.py (magic_run): Added new -d option, to run
1942 * IPython/Magic.py (magic_run): Added new -d option, to run
1938 scripts under the control of the python pdb debugger. Note that
1943 scripts under the control of the python pdb debugger. Note that
1939 this required changing the %prun option -d to -D, to avoid a clash
1944 this required changing the %prun option -d to -D, to avoid a clash
1940 (since %run must pass options to %prun, and getopt is too dumb to
1945 (since %run must pass options to %prun, and getopt is too dumb to
1941 handle options with string values with embedded spaces). Thanks
1946 handle options with string values with embedded spaces). Thanks
1942 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1947 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1943 (magic_who_ls): added type matching to %who and %whos, so that one
1948 (magic_who_ls): added type matching to %who and %whos, so that one
1944 can filter their output to only include variables of certain
1949 can filter their output to only include variables of certain
1945 types. Another suggestion by Matthew.
1950 types. Another suggestion by Matthew.
1946 (magic_whos): Added memory summaries in kb and Mb for arrays.
1951 (magic_whos): Added memory summaries in kb and Mb for arrays.
1947 (magic_who): Improve formatting (break lines every 9 vars).
1952 (magic_who): Improve formatting (break lines every 9 vars).
1948
1953
1949 2004-11-28 Fernando Perez <fperez@colorado.edu>
1954 2004-11-28 Fernando Perez <fperez@colorado.edu>
1950
1955
1951 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1956 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1952 cache when empty lines were present.
1957 cache when empty lines were present.
1953
1958
1954 2004-11-24 Fernando Perez <fperez@colorado.edu>
1959 2004-11-24 Fernando Perez <fperez@colorado.edu>
1955
1960
1956 * IPython/usage.py (__doc__): document the re-activated threading
1961 * IPython/usage.py (__doc__): document the re-activated threading
1957 options for WX and GTK.
1962 options for WX and GTK.
1958
1963
1959 2004-11-23 Fernando Perez <fperez@colorado.edu>
1964 2004-11-23 Fernando Perez <fperez@colorado.edu>
1960
1965
1961 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1966 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1962 the -wthread and -gthread options, along with a new -tk one to try
1967 the -wthread and -gthread options, along with a new -tk one to try
1963 and coordinate Tk threading with wx/gtk. The tk support is very
1968 and coordinate Tk threading with wx/gtk. The tk support is very
1964 platform dependent, since it seems to require Tcl and Tk to be
1969 platform dependent, since it seems to require Tcl and Tk to be
1965 built with threads (Fedora1/2 appears NOT to have it, but in
1970 built with threads (Fedora1/2 appears NOT to have it, but in
1966 Prabhu's Debian boxes it works OK). But even with some Tk
1971 Prabhu's Debian boxes it works OK). But even with some Tk
1967 limitations, this is a great improvement.
1972 limitations, this is a great improvement.
1968
1973
1969 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1974 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1970 info in user prompts. Patch by Prabhu.
1975 info in user prompts. Patch by Prabhu.
1971
1976
1972 2004-11-18 Fernando Perez <fperez@colorado.edu>
1977 2004-11-18 Fernando Perez <fperez@colorado.edu>
1973
1978
1974 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1979 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1975 EOFErrors and bail, to avoid infinite loops if a non-terminating
1980 EOFErrors and bail, to avoid infinite loops if a non-terminating
1976 file is fed into ipython. Patch submitted in issue 19 by user,
1981 file is fed into ipython. Patch submitted in issue 19 by user,
1977 many thanks.
1982 many thanks.
1978
1983
1979 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1984 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1980 autoquote/parens in continuation prompts, which can cause lots of
1985 autoquote/parens in continuation prompts, which can cause lots of
1981 problems. Closes roundup issue 20.
1986 problems. Closes roundup issue 20.
1982
1987
1983 2004-11-17 Fernando Perez <fperez@colorado.edu>
1988 2004-11-17 Fernando Perez <fperez@colorado.edu>
1984
1989
1985 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1990 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1986 reported as debian bug #280505. I'm not sure my local changelog
1991 reported as debian bug #280505. I'm not sure my local changelog
1987 entry has the proper debian format (Jack?).
1992 entry has the proper debian format (Jack?).
1988
1993
1989 2004-11-08 *** Released version 0.6.4
1994 2004-11-08 *** Released version 0.6.4
1990
1995
1991 2004-11-08 Fernando Perez <fperez@colorado.edu>
1996 2004-11-08 Fernando Perez <fperez@colorado.edu>
1992
1997
1993 * IPython/iplib.py (init_readline): Fix exit message for Windows
1998 * IPython/iplib.py (init_readline): Fix exit message for Windows
1994 when readline is active. Thanks to a report by Eric Jones
1999 when readline is active. Thanks to a report by Eric Jones
1995 <eric-AT-enthought.com>.
2000 <eric-AT-enthought.com>.
1996
2001
1997 2004-11-07 Fernando Perez <fperez@colorado.edu>
2002 2004-11-07 Fernando Perez <fperez@colorado.edu>
1998
2003
1999 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2004 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2000 sometimes seen by win2k/cygwin users.
2005 sometimes seen by win2k/cygwin users.
2001
2006
2002 2004-11-06 Fernando Perez <fperez@colorado.edu>
2007 2004-11-06 Fernando Perez <fperez@colorado.edu>
2003
2008
2004 * IPython/iplib.py (interact): Change the handling of %Exit from
2009 * IPython/iplib.py (interact): Change the handling of %Exit from
2005 trying to propagate a SystemExit to an internal ipython flag.
2010 trying to propagate a SystemExit to an internal ipython flag.
2006 This is less elegant than using Python's exception mechanism, but
2011 This is less elegant than using Python's exception mechanism, but
2007 I can't get that to work reliably with threads, so under -pylab
2012 I can't get that to work reliably with threads, so under -pylab
2008 %Exit was hanging IPython. Cross-thread exception handling is
2013 %Exit was hanging IPython. Cross-thread exception handling is
2009 really a bitch. Thaks to a bug report by Stephen Walton
2014 really a bitch. Thaks to a bug report by Stephen Walton
2010 <stephen.walton-AT-csun.edu>.
2015 <stephen.walton-AT-csun.edu>.
2011
2016
2012 2004-11-04 Fernando Perez <fperez@colorado.edu>
2017 2004-11-04 Fernando Perez <fperez@colorado.edu>
2013
2018
2014 * IPython/iplib.py (raw_input_original): store a pointer to the
2019 * IPython/iplib.py (raw_input_original): store a pointer to the
2015 true raw_input to harden against code which can modify it
2020 true raw_input to harden against code which can modify it
2016 (wx.py.PyShell does this and would otherwise crash ipython).
2021 (wx.py.PyShell does this and would otherwise crash ipython).
2017 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2022 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2018
2023
2019 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2024 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2020 Ctrl-C problem, which does not mess up the input line.
2025 Ctrl-C problem, which does not mess up the input line.
2021
2026
2022 2004-11-03 Fernando Perez <fperez@colorado.edu>
2027 2004-11-03 Fernando Perez <fperez@colorado.edu>
2023
2028
2024 * IPython/Release.py: Changed licensing to BSD, in all files.
2029 * IPython/Release.py: Changed licensing to BSD, in all files.
2025 (name): lowercase name for tarball/RPM release.
2030 (name): lowercase name for tarball/RPM release.
2026
2031
2027 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2032 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2028 use throughout ipython.
2033 use throughout ipython.
2029
2034
2030 * IPython/Magic.py (Magic._ofind): Switch to using the new
2035 * IPython/Magic.py (Magic._ofind): Switch to using the new
2031 OInspect.getdoc() function.
2036 OInspect.getdoc() function.
2032
2037
2033 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2038 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2034 of the line currently being canceled via Ctrl-C. It's extremely
2039 of the line currently being canceled via Ctrl-C. It's extremely
2035 ugly, but I don't know how to do it better (the problem is one of
2040 ugly, but I don't know how to do it better (the problem is one of
2036 handling cross-thread exceptions).
2041 handling cross-thread exceptions).
2037
2042
2038 2004-10-28 Fernando Perez <fperez@colorado.edu>
2043 2004-10-28 Fernando Perez <fperez@colorado.edu>
2039
2044
2040 * IPython/Shell.py (signal_handler): add signal handlers to trap
2045 * IPython/Shell.py (signal_handler): add signal handlers to trap
2041 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2046 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2042 report by Francesc Alted.
2047 report by Francesc Alted.
2043
2048
2044 2004-10-21 Fernando Perez <fperez@colorado.edu>
2049 2004-10-21 Fernando Perez <fperez@colorado.edu>
2045
2050
2046 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2051 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2047 to % for pysh syntax extensions.
2052 to % for pysh syntax extensions.
2048
2053
2049 2004-10-09 Fernando Perez <fperez@colorado.edu>
2054 2004-10-09 Fernando Perez <fperez@colorado.edu>
2050
2055
2051 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2056 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2052 arrays to print a more useful summary, without calling str(arr).
2057 arrays to print a more useful summary, without calling str(arr).
2053 This avoids the problem of extremely lengthy computations which
2058 This avoids the problem of extremely lengthy computations which
2054 occur if arr is large, and appear to the user as a system lockup
2059 occur if arr is large, and appear to the user as a system lockup
2055 with 100% cpu activity. After a suggestion by Kristian Sandberg
2060 with 100% cpu activity. After a suggestion by Kristian Sandberg
2056 <Kristian.Sandberg@colorado.edu>.
2061 <Kristian.Sandberg@colorado.edu>.
2057 (Magic.__init__): fix bug in global magic escapes not being
2062 (Magic.__init__): fix bug in global magic escapes not being
2058 correctly set.
2063 correctly set.
2059
2064
2060 2004-10-08 Fernando Perez <fperez@colorado.edu>
2065 2004-10-08 Fernando Perez <fperez@colorado.edu>
2061
2066
2062 * IPython/Magic.py (__license__): change to absolute imports of
2067 * IPython/Magic.py (__license__): change to absolute imports of
2063 ipython's own internal packages, to start adapting to the absolute
2068 ipython's own internal packages, to start adapting to the absolute
2064 import requirement of PEP-328.
2069 import requirement of PEP-328.
2065
2070
2066 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2071 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2067 files, and standardize author/license marks through the Release
2072 files, and standardize author/license marks through the Release
2068 module instead of having per/file stuff (except for files with
2073 module instead of having per/file stuff (except for files with
2069 particular licenses, like the MIT/PSF-licensed codes).
2074 particular licenses, like the MIT/PSF-licensed codes).
2070
2075
2071 * IPython/Debugger.py: remove dead code for python 2.1
2076 * IPython/Debugger.py: remove dead code for python 2.1
2072
2077
2073 2004-10-04 Fernando Perez <fperez@colorado.edu>
2078 2004-10-04 Fernando Perez <fperez@colorado.edu>
2074
2079
2075 * IPython/iplib.py (ipmagic): New function for accessing magics
2080 * IPython/iplib.py (ipmagic): New function for accessing magics
2076 via a normal python function call.
2081 via a normal python function call.
2077
2082
2078 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2083 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2079 from '@' to '%', to accomodate the new @decorator syntax of python
2084 from '@' to '%', to accomodate the new @decorator syntax of python
2080 2.4.
2085 2.4.
2081
2086
2082 2004-09-29 Fernando Perez <fperez@colorado.edu>
2087 2004-09-29 Fernando Perez <fperez@colorado.edu>
2083
2088
2084 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2089 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2085 matplotlib.use to prevent running scripts which try to switch
2090 matplotlib.use to prevent running scripts which try to switch
2086 interactive backends from within ipython. This will just crash
2091 interactive backends from within ipython. This will just crash
2087 the python interpreter, so we can't allow it (but a detailed error
2092 the python interpreter, so we can't allow it (but a detailed error
2088 is given to the user).
2093 is given to the user).
2089
2094
2090 2004-09-28 Fernando Perez <fperez@colorado.edu>
2095 2004-09-28 Fernando Perez <fperez@colorado.edu>
2091
2096
2092 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2097 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2093 matplotlib-related fixes so that using @run with non-matplotlib
2098 matplotlib-related fixes so that using @run with non-matplotlib
2094 scripts doesn't pop up spurious plot windows. This requires
2099 scripts doesn't pop up spurious plot windows. This requires
2095 matplotlib >= 0.63, where I had to make some changes as well.
2100 matplotlib >= 0.63, where I had to make some changes as well.
2096
2101
2097 * IPython/ipmaker.py (make_IPython): update version requirement to
2102 * IPython/ipmaker.py (make_IPython): update version requirement to
2098 python 2.2.
2103 python 2.2.
2099
2104
2100 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2105 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2101 banner arg for embedded customization.
2106 banner arg for embedded customization.
2102
2107
2103 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2108 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2104 explicit uses of __IP as the IPython's instance name. Now things
2109 explicit uses of __IP as the IPython's instance name. Now things
2105 are properly handled via the shell.name value. The actual code
2110 are properly handled via the shell.name value. The actual code
2106 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2111 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2107 is much better than before. I'll clean things completely when the
2112 is much better than before. I'll clean things completely when the
2108 magic stuff gets a real overhaul.
2113 magic stuff gets a real overhaul.
2109
2114
2110 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2115 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2111 minor changes to debian dir.
2116 minor changes to debian dir.
2112
2117
2113 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2118 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2114 pointer to the shell itself in the interactive namespace even when
2119 pointer to the shell itself in the interactive namespace even when
2115 a user-supplied dict is provided. This is needed for embedding
2120 a user-supplied dict is provided. This is needed for embedding
2116 purposes (found by tests with Michel Sanner).
2121 purposes (found by tests with Michel Sanner).
2117
2122
2118 2004-09-27 Fernando Perez <fperez@colorado.edu>
2123 2004-09-27 Fernando Perez <fperez@colorado.edu>
2119
2124
2120 * IPython/UserConfig/ipythonrc: remove []{} from
2125 * IPython/UserConfig/ipythonrc: remove []{} from
2121 readline_remove_delims, so that things like [modname.<TAB> do
2126 readline_remove_delims, so that things like [modname.<TAB> do
2122 proper completion. This disables [].TAB, but that's a less common
2127 proper completion. This disables [].TAB, but that's a less common
2123 case than module names in list comprehensions, for example.
2128 case than module names in list comprehensions, for example.
2124 Thanks to a report by Andrea Riciputi.
2129 Thanks to a report by Andrea Riciputi.
2125
2130
2126 2004-09-09 Fernando Perez <fperez@colorado.edu>
2131 2004-09-09 Fernando Perez <fperez@colorado.edu>
2127
2132
2128 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2133 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2129 blocking problems in win32 and osx. Fix by John.
2134 blocking problems in win32 and osx. Fix by John.
2130
2135
2131 2004-09-08 Fernando Perez <fperez@colorado.edu>
2136 2004-09-08 Fernando Perez <fperez@colorado.edu>
2132
2137
2133 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2138 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2134 for Win32 and OSX. Fix by John Hunter.
2139 for Win32 and OSX. Fix by John Hunter.
2135
2140
2136 2004-08-30 *** Released version 0.6.3
2141 2004-08-30 *** Released version 0.6.3
2137
2142
2138 2004-08-30 Fernando Perez <fperez@colorado.edu>
2143 2004-08-30 Fernando Perez <fperez@colorado.edu>
2139
2144
2140 * setup.py (isfile): Add manpages to list of dependent files to be
2145 * setup.py (isfile): Add manpages to list of dependent files to be
2141 updated.
2146 updated.
2142
2147
2143 2004-08-27 Fernando Perez <fperez@colorado.edu>
2148 2004-08-27 Fernando Perez <fperez@colorado.edu>
2144
2149
2145 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2150 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2146 for now. They don't really work with standalone WX/GTK code
2151 for now. They don't really work with standalone WX/GTK code
2147 (though matplotlib IS working fine with both of those backends).
2152 (though matplotlib IS working fine with both of those backends).
2148 This will neeed much more testing. I disabled most things with
2153 This will neeed much more testing. I disabled most things with
2149 comments, so turning it back on later should be pretty easy.
2154 comments, so turning it back on later should be pretty easy.
2150
2155
2151 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2156 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2152 autocalling of expressions like r'foo', by modifying the line
2157 autocalling of expressions like r'foo', by modifying the line
2153 split regexp. Closes
2158 split regexp. Closes
2154 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2159 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2155 Riley <ipythonbugs-AT-sabi.net>.
2160 Riley <ipythonbugs-AT-sabi.net>.
2156 (InteractiveShell.mainloop): honor --nobanner with banner
2161 (InteractiveShell.mainloop): honor --nobanner with banner
2157 extensions.
2162 extensions.
2158
2163
2159 * IPython/Shell.py: Significant refactoring of all classes, so
2164 * IPython/Shell.py: Significant refactoring of all classes, so
2160 that we can really support ALL matplotlib backends and threading
2165 that we can really support ALL matplotlib backends and threading
2161 models (John spotted a bug with Tk which required this). Now we
2166 models (John spotted a bug with Tk which required this). Now we
2162 should support single-threaded, WX-threads and GTK-threads, both
2167 should support single-threaded, WX-threads and GTK-threads, both
2163 for generic code and for matplotlib.
2168 for generic code and for matplotlib.
2164
2169
2165 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2170 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2166 -pylab, to simplify things for users. Will also remove the pylab
2171 -pylab, to simplify things for users. Will also remove the pylab
2167 profile, since now all of matplotlib configuration is directly
2172 profile, since now all of matplotlib configuration is directly
2168 handled here. This also reduces startup time.
2173 handled here. This also reduces startup time.
2169
2174
2170 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2175 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2171 shell wasn't being correctly called. Also in IPShellWX.
2176 shell wasn't being correctly called. Also in IPShellWX.
2172
2177
2173 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2178 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2174 fine-tune banner.
2179 fine-tune banner.
2175
2180
2176 * IPython/numutils.py (spike): Deprecate these spike functions,
2181 * IPython/numutils.py (spike): Deprecate these spike functions,
2177 delete (long deprecated) gnuplot_exec handler.
2182 delete (long deprecated) gnuplot_exec handler.
2178
2183
2179 2004-08-26 Fernando Perez <fperez@colorado.edu>
2184 2004-08-26 Fernando Perez <fperez@colorado.edu>
2180
2185
2181 * ipython.1: Update for threading options, plus some others which
2186 * ipython.1: Update for threading options, plus some others which
2182 were missing.
2187 were missing.
2183
2188
2184 * IPython/ipmaker.py (__call__): Added -wthread option for
2189 * IPython/ipmaker.py (__call__): Added -wthread option for
2185 wxpython thread handling. Make sure threading options are only
2190 wxpython thread handling. Make sure threading options are only
2186 valid at the command line.
2191 valid at the command line.
2187
2192
2188 * scripts/ipython: moved shell selection into a factory function
2193 * scripts/ipython: moved shell selection into a factory function
2189 in Shell.py, to keep the starter script to a minimum.
2194 in Shell.py, to keep the starter script to a minimum.
2190
2195
2191 2004-08-25 Fernando Perez <fperez@colorado.edu>
2196 2004-08-25 Fernando Perez <fperez@colorado.edu>
2192
2197
2193 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2198 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2194 John. Along with some recent changes he made to matplotlib, the
2199 John. Along with some recent changes he made to matplotlib, the
2195 next versions of both systems should work very well together.
2200 next versions of both systems should work very well together.
2196
2201
2197 2004-08-24 Fernando Perez <fperez@colorado.edu>
2202 2004-08-24 Fernando Perez <fperez@colorado.edu>
2198
2203
2199 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2204 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2200 tried to switch the profiling to using hotshot, but I'm getting
2205 tried to switch the profiling to using hotshot, but I'm getting
2201 strange errors from prof.runctx() there. I may be misreading the
2206 strange errors from prof.runctx() there. I may be misreading the
2202 docs, but it looks weird. For now the profiling code will
2207 docs, but it looks weird. For now the profiling code will
2203 continue to use the standard profiler.
2208 continue to use the standard profiler.
2204
2209
2205 2004-08-23 Fernando Perez <fperez@colorado.edu>
2210 2004-08-23 Fernando Perez <fperez@colorado.edu>
2206
2211
2207 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2212 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2208 threaded shell, by John Hunter. It's not quite ready yet, but
2213 threaded shell, by John Hunter. It's not quite ready yet, but
2209 close.
2214 close.
2210
2215
2211 2004-08-22 Fernando Perez <fperez@colorado.edu>
2216 2004-08-22 Fernando Perez <fperez@colorado.edu>
2212
2217
2213 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2218 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2214 in Magic and ultraTB.
2219 in Magic and ultraTB.
2215
2220
2216 * ipython.1: document threading options in manpage.
2221 * ipython.1: document threading options in manpage.
2217
2222
2218 * scripts/ipython: Changed name of -thread option to -gthread,
2223 * scripts/ipython: Changed name of -thread option to -gthread,
2219 since this is GTK specific. I want to leave the door open for a
2224 since this is GTK specific. I want to leave the door open for a
2220 -wthread option for WX, which will most likely be necessary. This
2225 -wthread option for WX, which will most likely be necessary. This
2221 change affects usage and ipmaker as well.
2226 change affects usage and ipmaker as well.
2222
2227
2223 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2228 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2224 handle the matplotlib shell issues. Code by John Hunter
2229 handle the matplotlib shell issues. Code by John Hunter
2225 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2230 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2226 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2231 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2227 broken (and disabled for end users) for now, but it puts the
2232 broken (and disabled for end users) for now, but it puts the
2228 infrastructure in place.
2233 infrastructure in place.
2229
2234
2230 2004-08-21 Fernando Perez <fperez@colorado.edu>
2235 2004-08-21 Fernando Perez <fperez@colorado.edu>
2231
2236
2232 * ipythonrc-pylab: Add matplotlib support.
2237 * ipythonrc-pylab: Add matplotlib support.
2233
2238
2234 * matplotlib_config.py: new files for matplotlib support, part of
2239 * matplotlib_config.py: new files for matplotlib support, part of
2235 the pylab profile.
2240 the pylab profile.
2236
2241
2237 * IPython/usage.py (__doc__): documented the threading options.
2242 * IPython/usage.py (__doc__): documented the threading options.
2238
2243
2239 2004-08-20 Fernando Perez <fperez@colorado.edu>
2244 2004-08-20 Fernando Perez <fperez@colorado.edu>
2240
2245
2241 * ipython: Modified the main calling routine to handle the -thread
2246 * ipython: Modified the main calling routine to handle the -thread
2242 and -mpthread options. This needs to be done as a top-level hack,
2247 and -mpthread options. This needs to be done as a top-level hack,
2243 because it determines which class to instantiate for IPython
2248 because it determines which class to instantiate for IPython
2244 itself.
2249 itself.
2245
2250
2246 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2251 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2247 classes to support multithreaded GTK operation without blocking,
2252 classes to support multithreaded GTK operation without blocking,
2248 and matplotlib with all backends. This is a lot of still very
2253 and matplotlib with all backends. This is a lot of still very
2249 experimental code, and threads are tricky. So it may still have a
2254 experimental code, and threads are tricky. So it may still have a
2250 few rough edges... This code owes a lot to
2255 few rough edges... This code owes a lot to
2251 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2256 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2252 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2257 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2253 to John Hunter for all the matplotlib work.
2258 to John Hunter for all the matplotlib work.
2254
2259
2255 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2260 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2256 options for gtk thread and matplotlib support.
2261 options for gtk thread and matplotlib support.
2257
2262
2258 2004-08-16 Fernando Perez <fperez@colorado.edu>
2263 2004-08-16 Fernando Perez <fperez@colorado.edu>
2259
2264
2260 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2265 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2261 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2266 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2262 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2267 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2263
2268
2264 2004-08-11 Fernando Perez <fperez@colorado.edu>
2269 2004-08-11 Fernando Perez <fperez@colorado.edu>
2265
2270
2266 * setup.py (isfile): Fix build so documentation gets updated for
2271 * setup.py (isfile): Fix build so documentation gets updated for
2267 rpms (it was only done for .tgz builds).
2272 rpms (it was only done for .tgz builds).
2268
2273
2269 2004-08-10 Fernando Perez <fperez@colorado.edu>
2274 2004-08-10 Fernando Perez <fperez@colorado.edu>
2270
2275
2271 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2276 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2272
2277
2273 * iplib.py : Silence syntax error exceptions in tab-completion.
2278 * iplib.py : Silence syntax error exceptions in tab-completion.
2274
2279
2275 2004-08-05 Fernando Perez <fperez@colorado.edu>
2280 2004-08-05 Fernando Perez <fperez@colorado.edu>
2276
2281
2277 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2282 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2278 'color off' mark for continuation prompts. This was causing long
2283 'color off' mark for continuation prompts. This was causing long
2279 continuation lines to mis-wrap.
2284 continuation lines to mis-wrap.
2280
2285
2281 2004-08-01 Fernando Perez <fperez@colorado.edu>
2286 2004-08-01 Fernando Perez <fperez@colorado.edu>
2282
2287
2283 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2288 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2284 for building ipython to be a parameter. All this is necessary
2289 for building ipython to be a parameter. All this is necessary
2285 right now to have a multithreaded version, but this insane
2290 right now to have a multithreaded version, but this insane
2286 non-design will be cleaned up soon. For now, it's a hack that
2291 non-design will be cleaned up soon. For now, it's a hack that
2287 works.
2292 works.
2288
2293
2289 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2294 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2290 args in various places. No bugs so far, but it's a dangerous
2295 args in various places. No bugs so far, but it's a dangerous
2291 practice.
2296 practice.
2292
2297
2293 2004-07-31 Fernando Perez <fperez@colorado.edu>
2298 2004-07-31 Fernando Perez <fperez@colorado.edu>
2294
2299
2295 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2300 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2296 fix completion of files with dots in their names under most
2301 fix completion of files with dots in their names under most
2297 profiles (pysh was OK because the completion order is different).
2302 profiles (pysh was OK because the completion order is different).
2298
2303
2299 2004-07-27 Fernando Perez <fperez@colorado.edu>
2304 2004-07-27 Fernando Perez <fperez@colorado.edu>
2300
2305
2301 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2306 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2302 keywords manually, b/c the one in keyword.py was removed in python
2307 keywords manually, b/c the one in keyword.py was removed in python
2303 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2308 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2304 This is NOT a bug under python 2.3 and earlier.
2309 This is NOT a bug under python 2.3 and earlier.
2305
2310
2306 2004-07-26 Fernando Perez <fperez@colorado.edu>
2311 2004-07-26 Fernando Perez <fperez@colorado.edu>
2307
2312
2308 * IPython/ultraTB.py (VerboseTB.text): Add another
2313 * IPython/ultraTB.py (VerboseTB.text): Add another
2309 linecache.checkcache() call to try to prevent inspect.py from
2314 linecache.checkcache() call to try to prevent inspect.py from
2310 crashing under python 2.3. I think this fixes
2315 crashing under python 2.3. I think this fixes
2311 http://www.scipy.net/roundup/ipython/issue17.
2316 http://www.scipy.net/roundup/ipython/issue17.
2312
2317
2313 2004-07-26 *** Released version 0.6.2
2318 2004-07-26 *** Released version 0.6.2
2314
2319
2315 2004-07-26 Fernando Perez <fperez@colorado.edu>
2320 2004-07-26 Fernando Perez <fperez@colorado.edu>
2316
2321
2317 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2322 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2318 fail for any number.
2323 fail for any number.
2319 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2324 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2320 empty bookmarks.
2325 empty bookmarks.
2321
2326
2322 2004-07-26 *** Released version 0.6.1
2327 2004-07-26 *** Released version 0.6.1
2323
2328
2324 2004-07-26 Fernando Perez <fperez@colorado.edu>
2329 2004-07-26 Fernando Perez <fperez@colorado.edu>
2325
2330
2326 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2331 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2327
2332
2328 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2333 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2329 escaping '()[]{}' in filenames.
2334 escaping '()[]{}' in filenames.
2330
2335
2331 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2336 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2332 Python 2.2 users who lack a proper shlex.split.
2337 Python 2.2 users who lack a proper shlex.split.
2333
2338
2334 2004-07-19 Fernando Perez <fperez@colorado.edu>
2339 2004-07-19 Fernando Perez <fperez@colorado.edu>
2335
2340
2336 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2341 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2337 for reading readline's init file. I follow the normal chain:
2342 for reading readline's init file. I follow the normal chain:
2338 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2343 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2339 report by Mike Heeter. This closes
2344 report by Mike Heeter. This closes
2340 http://www.scipy.net/roundup/ipython/issue16.
2345 http://www.scipy.net/roundup/ipython/issue16.
2341
2346
2342 2004-07-18 Fernando Perez <fperez@colorado.edu>
2347 2004-07-18 Fernando Perez <fperez@colorado.edu>
2343
2348
2344 * IPython/iplib.py (__init__): Add better handling of '\' under
2349 * IPython/iplib.py (__init__): Add better handling of '\' under
2345 Win32 for filenames. After a patch by Ville.
2350 Win32 for filenames. After a patch by Ville.
2346
2351
2347 2004-07-17 Fernando Perez <fperez@colorado.edu>
2352 2004-07-17 Fernando Perez <fperez@colorado.edu>
2348
2353
2349 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2354 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2350 autocalling would be triggered for 'foo is bar' if foo is
2355 autocalling would be triggered for 'foo is bar' if foo is
2351 callable. I also cleaned up the autocall detection code to use a
2356 callable. I also cleaned up the autocall detection code to use a
2352 regexp, which is faster. Bug reported by Alexander Schmolck.
2357 regexp, which is faster. Bug reported by Alexander Schmolck.
2353
2358
2354 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2359 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2355 '?' in them would confuse the help system. Reported by Alex
2360 '?' in them would confuse the help system. Reported by Alex
2356 Schmolck.
2361 Schmolck.
2357
2362
2358 2004-07-16 Fernando Perez <fperez@colorado.edu>
2363 2004-07-16 Fernando Perez <fperez@colorado.edu>
2359
2364
2360 * IPython/GnuplotInteractive.py (__all__): added plot2.
2365 * IPython/GnuplotInteractive.py (__all__): added plot2.
2361
2366
2362 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2367 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2363 plotting dictionaries, lists or tuples of 1d arrays.
2368 plotting dictionaries, lists or tuples of 1d arrays.
2364
2369
2365 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2370 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2366 optimizations.
2371 optimizations.
2367
2372
2368 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2373 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2369 the information which was there from Janko's original IPP code:
2374 the information which was there from Janko's original IPP code:
2370
2375
2371 03.05.99 20:53 porto.ifm.uni-kiel.de
2376 03.05.99 20:53 porto.ifm.uni-kiel.de
2372 --Started changelog.
2377 --Started changelog.
2373 --make clear do what it say it does
2378 --make clear do what it say it does
2374 --added pretty output of lines from inputcache
2379 --added pretty output of lines from inputcache
2375 --Made Logger a mixin class, simplifies handling of switches
2380 --Made Logger a mixin class, simplifies handling of switches
2376 --Added own completer class. .string<TAB> expands to last history
2381 --Added own completer class. .string<TAB> expands to last history
2377 line which starts with string. The new expansion is also present
2382 line which starts with string. The new expansion is also present
2378 with Ctrl-r from the readline library. But this shows, who this
2383 with Ctrl-r from the readline library. But this shows, who this
2379 can be done for other cases.
2384 can be done for other cases.
2380 --Added convention that all shell functions should accept a
2385 --Added convention that all shell functions should accept a
2381 parameter_string This opens the door for different behaviour for
2386 parameter_string This opens the door for different behaviour for
2382 each function. @cd is a good example of this.
2387 each function. @cd is a good example of this.
2383
2388
2384 04.05.99 12:12 porto.ifm.uni-kiel.de
2389 04.05.99 12:12 porto.ifm.uni-kiel.de
2385 --added logfile rotation
2390 --added logfile rotation
2386 --added new mainloop method which freezes first the namespace
2391 --added new mainloop method which freezes first the namespace
2387
2392
2388 07.05.99 21:24 porto.ifm.uni-kiel.de
2393 07.05.99 21:24 porto.ifm.uni-kiel.de
2389 --added the docreader classes. Now there is a help system.
2394 --added the docreader classes. Now there is a help system.
2390 -This is only a first try. Currently it's not easy to put new
2395 -This is only a first try. Currently it's not easy to put new
2391 stuff in the indices. But this is the way to go. Info would be
2396 stuff in the indices. But this is the way to go. Info would be
2392 better, but HTML is every where and not everybody has an info
2397 better, but HTML is every where and not everybody has an info
2393 system installed and it's not so easy to change html-docs to info.
2398 system installed and it's not so easy to change html-docs to info.
2394 --added global logfile option
2399 --added global logfile option
2395 --there is now a hook for object inspection method pinfo needs to
2400 --there is now a hook for object inspection method pinfo needs to
2396 be provided for this. Can be reached by two '??'.
2401 be provided for this. Can be reached by two '??'.
2397
2402
2398 08.05.99 20:51 porto.ifm.uni-kiel.de
2403 08.05.99 20:51 porto.ifm.uni-kiel.de
2399 --added a README
2404 --added a README
2400 --bug in rc file. Something has changed so functions in the rc
2405 --bug in rc file. Something has changed so functions in the rc
2401 file need to reference the shell and not self. Not clear if it's a
2406 file need to reference the shell and not self. Not clear if it's a
2402 bug or feature.
2407 bug or feature.
2403 --changed rc file for new behavior
2408 --changed rc file for new behavior
2404
2409
2405 2004-07-15 Fernando Perez <fperez@colorado.edu>
2410 2004-07-15 Fernando Perez <fperez@colorado.edu>
2406
2411
2407 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2412 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2408 cache was falling out of sync in bizarre manners when multi-line
2413 cache was falling out of sync in bizarre manners when multi-line
2409 input was present. Minor optimizations and cleanup.
2414 input was present. Minor optimizations and cleanup.
2410
2415
2411 (Logger): Remove old Changelog info for cleanup. This is the
2416 (Logger): Remove old Changelog info for cleanup. This is the
2412 information which was there from Janko's original code:
2417 information which was there from Janko's original code:
2413
2418
2414 Changes to Logger: - made the default log filename a parameter
2419 Changes to Logger: - made the default log filename a parameter
2415
2420
2416 - put a check for lines beginning with !@? in log(). Needed
2421 - put a check for lines beginning with !@? in log(). Needed
2417 (even if the handlers properly log their lines) for mid-session
2422 (even if the handlers properly log their lines) for mid-session
2418 logging activation to work properly. Without this, lines logged
2423 logging activation to work properly. Without this, lines logged
2419 in mid session, which get read from the cache, would end up
2424 in mid session, which get read from the cache, would end up
2420 'bare' (with !@? in the open) in the log. Now they are caught
2425 'bare' (with !@? in the open) in the log. Now they are caught
2421 and prepended with a #.
2426 and prepended with a #.
2422
2427
2423 * IPython/iplib.py (InteractiveShell.init_readline): added check
2428 * IPython/iplib.py (InteractiveShell.init_readline): added check
2424 in case MagicCompleter fails to be defined, so we don't crash.
2429 in case MagicCompleter fails to be defined, so we don't crash.
2425
2430
2426 2004-07-13 Fernando Perez <fperez@colorado.edu>
2431 2004-07-13 Fernando Perez <fperez@colorado.edu>
2427
2432
2428 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2433 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2429 of EPS if the requested filename ends in '.eps'.
2434 of EPS if the requested filename ends in '.eps'.
2430
2435
2431 2004-07-04 Fernando Perez <fperez@colorado.edu>
2436 2004-07-04 Fernando Perez <fperez@colorado.edu>
2432
2437
2433 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2438 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2434 escaping of quotes when calling the shell.
2439 escaping of quotes when calling the shell.
2435
2440
2436 2004-07-02 Fernando Perez <fperez@colorado.edu>
2441 2004-07-02 Fernando Perez <fperez@colorado.edu>
2437
2442
2438 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2443 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2439 gettext not working because we were clobbering '_'. Fixes
2444 gettext not working because we were clobbering '_'. Fixes
2440 http://www.scipy.net/roundup/ipython/issue6.
2445 http://www.scipy.net/roundup/ipython/issue6.
2441
2446
2442 2004-07-01 Fernando Perez <fperez@colorado.edu>
2447 2004-07-01 Fernando Perez <fperez@colorado.edu>
2443
2448
2444 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2449 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2445 into @cd. Patch by Ville.
2450 into @cd. Patch by Ville.
2446
2451
2447 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2452 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2448 new function to store things after ipmaker runs. Patch by Ville.
2453 new function to store things after ipmaker runs. Patch by Ville.
2449 Eventually this will go away once ipmaker is removed and the class
2454 Eventually this will go away once ipmaker is removed and the class
2450 gets cleaned up, but for now it's ok. Key functionality here is
2455 gets cleaned up, but for now it's ok. Key functionality here is
2451 the addition of the persistent storage mechanism, a dict for
2456 the addition of the persistent storage mechanism, a dict for
2452 keeping data across sessions (for now just bookmarks, but more can
2457 keeping data across sessions (for now just bookmarks, but more can
2453 be implemented later).
2458 be implemented later).
2454
2459
2455 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2460 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2456 persistent across sections. Patch by Ville, I modified it
2461 persistent across sections. Patch by Ville, I modified it
2457 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2462 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2458 added a '-l' option to list all bookmarks.
2463 added a '-l' option to list all bookmarks.
2459
2464
2460 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2465 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2461 center for cleanup. Registered with atexit.register(). I moved
2466 center for cleanup. Registered with atexit.register(). I moved
2462 here the old exit_cleanup(). After a patch by Ville.
2467 here the old exit_cleanup(). After a patch by Ville.
2463
2468
2464 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2469 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2465 characters in the hacked shlex_split for python 2.2.
2470 characters in the hacked shlex_split for python 2.2.
2466
2471
2467 * IPython/iplib.py (file_matches): more fixes to filenames with
2472 * IPython/iplib.py (file_matches): more fixes to filenames with
2468 whitespace in them. It's not perfect, but limitations in python's
2473 whitespace in them. It's not perfect, but limitations in python's
2469 readline make it impossible to go further.
2474 readline make it impossible to go further.
2470
2475
2471 2004-06-29 Fernando Perez <fperez@colorado.edu>
2476 2004-06-29 Fernando Perez <fperez@colorado.edu>
2472
2477
2473 * IPython/iplib.py (file_matches): escape whitespace correctly in
2478 * IPython/iplib.py (file_matches): escape whitespace correctly in
2474 filename completions. Bug reported by Ville.
2479 filename completions. Bug reported by Ville.
2475
2480
2476 2004-06-28 Fernando Perez <fperez@colorado.edu>
2481 2004-06-28 Fernando Perez <fperez@colorado.edu>
2477
2482
2478 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2483 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2479 the history file will be called 'history-PROFNAME' (or just
2484 the history file will be called 'history-PROFNAME' (or just
2480 'history' if no profile is loaded). I was getting annoyed at
2485 'history' if no profile is loaded). I was getting annoyed at
2481 getting my Numerical work history clobbered by pysh sessions.
2486 getting my Numerical work history clobbered by pysh sessions.
2482
2487
2483 * IPython/iplib.py (InteractiveShell.__init__): Internal
2488 * IPython/iplib.py (InteractiveShell.__init__): Internal
2484 getoutputerror() function so that we can honor the system_verbose
2489 getoutputerror() function so that we can honor the system_verbose
2485 flag for _all_ system calls. I also added escaping of #
2490 flag for _all_ system calls. I also added escaping of #
2486 characters here to avoid confusing Itpl.
2491 characters here to avoid confusing Itpl.
2487
2492
2488 * IPython/Magic.py (shlex_split): removed call to shell in
2493 * IPython/Magic.py (shlex_split): removed call to shell in
2489 parse_options and replaced it with shlex.split(). The annoying
2494 parse_options and replaced it with shlex.split(). The annoying
2490 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2495 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2491 to backport it from 2.3, with several frail hacks (the shlex
2496 to backport it from 2.3, with several frail hacks (the shlex
2492 module is rather limited in 2.2). Thanks to a suggestion by Ville
2497 module is rather limited in 2.2). Thanks to a suggestion by Ville
2493 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2498 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2494 problem.
2499 problem.
2495
2500
2496 (Magic.magic_system_verbose): new toggle to print the actual
2501 (Magic.magic_system_verbose): new toggle to print the actual
2497 system calls made by ipython. Mainly for debugging purposes.
2502 system calls made by ipython. Mainly for debugging purposes.
2498
2503
2499 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2504 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2500 doesn't support persistence. Reported (and fix suggested) by
2505 doesn't support persistence. Reported (and fix suggested) by
2501 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2506 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2502
2507
2503 2004-06-26 Fernando Perez <fperez@colorado.edu>
2508 2004-06-26 Fernando Perez <fperez@colorado.edu>
2504
2509
2505 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2510 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2506 continue prompts.
2511 continue prompts.
2507
2512
2508 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2513 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2509 function (basically a big docstring) and a few more things here to
2514 function (basically a big docstring) and a few more things here to
2510 speedup startup. pysh.py is now very lightweight. We want because
2515 speedup startup. pysh.py is now very lightweight. We want because
2511 it gets execfile'd, while InterpreterExec gets imported, so
2516 it gets execfile'd, while InterpreterExec gets imported, so
2512 byte-compilation saves time.
2517 byte-compilation saves time.
2513
2518
2514 2004-06-25 Fernando Perez <fperez@colorado.edu>
2519 2004-06-25 Fernando Perez <fperez@colorado.edu>
2515
2520
2516 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2521 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2517 -NUM', which was recently broken.
2522 -NUM', which was recently broken.
2518
2523
2519 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2524 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2520 in multi-line input (but not !!, which doesn't make sense there).
2525 in multi-line input (but not !!, which doesn't make sense there).
2521
2526
2522 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2527 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2523 It's just too useful, and people can turn it off in the less
2528 It's just too useful, and people can turn it off in the less
2524 common cases where it's a problem.
2529 common cases where it's a problem.
2525
2530
2526 2004-06-24 Fernando Perez <fperez@colorado.edu>
2531 2004-06-24 Fernando Perez <fperez@colorado.edu>
2527
2532
2528 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2533 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2529 special syntaxes (like alias calling) is now allied in multi-line
2534 special syntaxes (like alias calling) is now allied in multi-line
2530 input. This is still _very_ experimental, but it's necessary for
2535 input. This is still _very_ experimental, but it's necessary for
2531 efficient shell usage combining python looping syntax with system
2536 efficient shell usage combining python looping syntax with system
2532 calls. For now it's restricted to aliases, I don't think it
2537 calls. For now it's restricted to aliases, I don't think it
2533 really even makes sense to have this for magics.
2538 really even makes sense to have this for magics.
2534
2539
2535 2004-06-23 Fernando Perez <fperez@colorado.edu>
2540 2004-06-23 Fernando Perez <fperez@colorado.edu>
2536
2541
2537 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2542 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2538 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2543 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2539
2544
2540 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2545 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2541 extensions under Windows (after code sent by Gary Bishop). The
2546 extensions under Windows (after code sent by Gary Bishop). The
2542 extensions considered 'executable' are stored in IPython's rc
2547 extensions considered 'executable' are stored in IPython's rc
2543 structure as win_exec_ext.
2548 structure as win_exec_ext.
2544
2549
2545 * IPython/genutils.py (shell): new function, like system() but
2550 * IPython/genutils.py (shell): new function, like system() but
2546 without return value. Very useful for interactive shell work.
2551 without return value. Very useful for interactive shell work.
2547
2552
2548 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2553 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2549 delete aliases.
2554 delete aliases.
2550
2555
2551 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2556 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2552 sure that the alias table doesn't contain python keywords.
2557 sure that the alias table doesn't contain python keywords.
2553
2558
2554 2004-06-21 Fernando Perez <fperez@colorado.edu>
2559 2004-06-21 Fernando Perez <fperez@colorado.edu>
2555
2560
2556 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2561 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2557 non-existent items are found in $PATH. Reported by Thorsten.
2562 non-existent items are found in $PATH. Reported by Thorsten.
2558
2563
2559 2004-06-20 Fernando Perez <fperez@colorado.edu>
2564 2004-06-20 Fernando Perez <fperez@colorado.edu>
2560
2565
2561 * IPython/iplib.py (complete): modified the completer so that the
2566 * IPython/iplib.py (complete): modified the completer so that the
2562 order of priorities can be easily changed at runtime.
2567 order of priorities can be easily changed at runtime.
2563
2568
2564 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2569 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2565 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2570 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2566
2571
2567 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2572 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2568 expand Python variables prepended with $ in all system calls. The
2573 expand Python variables prepended with $ in all system calls. The
2569 same was done to InteractiveShell.handle_shell_escape. Now all
2574 same was done to InteractiveShell.handle_shell_escape. Now all
2570 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2575 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2571 expansion of python variables and expressions according to the
2576 expansion of python variables and expressions according to the
2572 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2577 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2573
2578
2574 Though PEP-215 has been rejected, a similar (but simpler) one
2579 Though PEP-215 has been rejected, a similar (but simpler) one
2575 seems like it will go into Python 2.4, PEP-292 -
2580 seems like it will go into Python 2.4, PEP-292 -
2576 http://www.python.org/peps/pep-0292.html.
2581 http://www.python.org/peps/pep-0292.html.
2577
2582
2578 I'll keep the full syntax of PEP-215, since IPython has since the
2583 I'll keep the full syntax of PEP-215, since IPython has since the
2579 start used Ka-Ping Yee's reference implementation discussed there
2584 start used Ka-Ping Yee's reference implementation discussed there
2580 (Itpl), and I actually like the powerful semantics it offers.
2585 (Itpl), and I actually like the powerful semantics it offers.
2581
2586
2582 In order to access normal shell variables, the $ has to be escaped
2587 In order to access normal shell variables, the $ has to be escaped
2583 via an extra $. For example:
2588 via an extra $. For example:
2584
2589
2585 In [7]: PATH='a python variable'
2590 In [7]: PATH='a python variable'
2586
2591
2587 In [8]: !echo $PATH
2592 In [8]: !echo $PATH
2588 a python variable
2593 a python variable
2589
2594
2590 In [9]: !echo $$PATH
2595 In [9]: !echo $$PATH
2591 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2596 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2592
2597
2593 (Magic.parse_options): escape $ so the shell doesn't evaluate
2598 (Magic.parse_options): escape $ so the shell doesn't evaluate
2594 things prematurely.
2599 things prematurely.
2595
2600
2596 * IPython/iplib.py (InteractiveShell.call_alias): added the
2601 * IPython/iplib.py (InteractiveShell.call_alias): added the
2597 ability for aliases to expand python variables via $.
2602 ability for aliases to expand python variables via $.
2598
2603
2599 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2604 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2600 system, now there's a @rehash/@rehashx pair of magics. These work
2605 system, now there's a @rehash/@rehashx pair of magics. These work
2601 like the csh rehash command, and can be invoked at any time. They
2606 like the csh rehash command, and can be invoked at any time. They
2602 build a table of aliases to everything in the user's $PATH
2607 build a table of aliases to everything in the user's $PATH
2603 (@rehash uses everything, @rehashx is slower but only adds
2608 (@rehash uses everything, @rehashx is slower but only adds
2604 executable files). With this, the pysh.py-based shell profile can
2609 executable files). With this, the pysh.py-based shell profile can
2605 now simply call rehash upon startup, and full access to all
2610 now simply call rehash upon startup, and full access to all
2606 programs in the user's path is obtained.
2611 programs in the user's path is obtained.
2607
2612
2608 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2613 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2609 functionality is now fully in place. I removed the old dynamic
2614 functionality is now fully in place. I removed the old dynamic
2610 code generation based approach, in favor of a much lighter one
2615 code generation based approach, in favor of a much lighter one
2611 based on a simple dict. The advantage is that this allows me to
2616 based on a simple dict. The advantage is that this allows me to
2612 now have thousands of aliases with negligible cost (unthinkable
2617 now have thousands of aliases with negligible cost (unthinkable
2613 with the old system).
2618 with the old system).
2614
2619
2615 2004-06-19 Fernando Perez <fperez@colorado.edu>
2620 2004-06-19 Fernando Perez <fperez@colorado.edu>
2616
2621
2617 * IPython/iplib.py (__init__): extended MagicCompleter class to
2622 * IPython/iplib.py (__init__): extended MagicCompleter class to
2618 also complete (last in priority) on user aliases.
2623 also complete (last in priority) on user aliases.
2619
2624
2620 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2625 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2621 call to eval.
2626 call to eval.
2622 (ItplNS.__init__): Added a new class which functions like Itpl,
2627 (ItplNS.__init__): Added a new class which functions like Itpl,
2623 but allows configuring the namespace for the evaluation to occur
2628 but allows configuring the namespace for the evaluation to occur
2624 in.
2629 in.
2625
2630
2626 2004-06-18 Fernando Perez <fperez@colorado.edu>
2631 2004-06-18 Fernando Perez <fperez@colorado.edu>
2627
2632
2628 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2633 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2629 better message when 'exit' or 'quit' are typed (a common newbie
2634 better message when 'exit' or 'quit' are typed (a common newbie
2630 confusion).
2635 confusion).
2631
2636
2632 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2637 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2633 check for Windows users.
2638 check for Windows users.
2634
2639
2635 * IPython/iplib.py (InteractiveShell.user_setup): removed
2640 * IPython/iplib.py (InteractiveShell.user_setup): removed
2636 disabling of colors for Windows. I'll test at runtime and issue a
2641 disabling of colors for Windows. I'll test at runtime and issue a
2637 warning if Gary's readline isn't found, as to nudge users to
2642 warning if Gary's readline isn't found, as to nudge users to
2638 download it.
2643 download it.
2639
2644
2640 2004-06-16 Fernando Perez <fperez@colorado.edu>
2645 2004-06-16 Fernando Perez <fperez@colorado.edu>
2641
2646
2642 * IPython/genutils.py (Stream.__init__): changed to print errors
2647 * IPython/genutils.py (Stream.__init__): changed to print errors
2643 to sys.stderr. I had a circular dependency here. Now it's
2648 to sys.stderr. I had a circular dependency here. Now it's
2644 possible to run ipython as IDLE's shell (consider this pre-alpha,
2649 possible to run ipython as IDLE's shell (consider this pre-alpha,
2645 since true stdout things end up in the starting terminal instead
2650 since true stdout things end up in the starting terminal instead
2646 of IDLE's out).
2651 of IDLE's out).
2647
2652
2648 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2653 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2649 users who haven't # updated their prompt_in2 definitions. Remove
2654 users who haven't # updated their prompt_in2 definitions. Remove
2650 eventually.
2655 eventually.
2651 (multiple_replace): added credit to original ASPN recipe.
2656 (multiple_replace): added credit to original ASPN recipe.
2652
2657
2653 2004-06-15 Fernando Perez <fperez@colorado.edu>
2658 2004-06-15 Fernando Perez <fperez@colorado.edu>
2654
2659
2655 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2660 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2656 list of auto-defined aliases.
2661 list of auto-defined aliases.
2657
2662
2658 2004-06-13 Fernando Perez <fperez@colorado.edu>
2663 2004-06-13 Fernando Perez <fperez@colorado.edu>
2659
2664
2660 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2665 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2661 install was really requested (so setup.py can be used for other
2666 install was really requested (so setup.py can be used for other
2662 things under Windows).
2667 things under Windows).
2663
2668
2664 2004-06-10 Fernando Perez <fperez@colorado.edu>
2669 2004-06-10 Fernando Perez <fperez@colorado.edu>
2665
2670
2666 * IPython/Logger.py (Logger.create_log): Manually remove any old
2671 * IPython/Logger.py (Logger.create_log): Manually remove any old
2667 backup, since os.remove may fail under Windows. Fixes bug
2672 backup, since os.remove may fail under Windows. Fixes bug
2668 reported by Thorsten.
2673 reported by Thorsten.
2669
2674
2670 2004-06-09 Fernando Perez <fperez@colorado.edu>
2675 2004-06-09 Fernando Perez <fperez@colorado.edu>
2671
2676
2672 * examples/example-embed.py: fixed all references to %n (replaced
2677 * examples/example-embed.py: fixed all references to %n (replaced
2673 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2678 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2674 for all examples and the manual as well.
2679 for all examples and the manual as well.
2675
2680
2676 2004-06-08 Fernando Perez <fperez@colorado.edu>
2681 2004-06-08 Fernando Perez <fperez@colorado.edu>
2677
2682
2678 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2683 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2679 alignment and color management. All 3 prompt subsystems now
2684 alignment and color management. All 3 prompt subsystems now
2680 inherit from BasePrompt.
2685 inherit from BasePrompt.
2681
2686
2682 * tools/release: updates for windows installer build and tag rpms
2687 * tools/release: updates for windows installer build and tag rpms
2683 with python version (since paths are fixed).
2688 with python version (since paths are fixed).
2684
2689
2685 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2690 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2686 which will become eventually obsolete. Also fixed the default
2691 which will become eventually obsolete. Also fixed the default
2687 prompt_in2 to use \D, so at least new users start with the correct
2692 prompt_in2 to use \D, so at least new users start with the correct
2688 defaults.
2693 defaults.
2689 WARNING: Users with existing ipythonrc files will need to apply
2694 WARNING: Users with existing ipythonrc files will need to apply
2690 this fix manually!
2695 this fix manually!
2691
2696
2692 * setup.py: make windows installer (.exe). This is finally the
2697 * setup.py: make windows installer (.exe). This is finally the
2693 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2698 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2694 which I hadn't included because it required Python 2.3 (or recent
2699 which I hadn't included because it required Python 2.3 (or recent
2695 distutils).
2700 distutils).
2696
2701
2697 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2702 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2698 usage of new '\D' escape.
2703 usage of new '\D' escape.
2699
2704
2700 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2705 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2701 lacks os.getuid())
2706 lacks os.getuid())
2702 (CachedOutput.set_colors): Added the ability to turn coloring
2707 (CachedOutput.set_colors): Added the ability to turn coloring
2703 on/off with @colors even for manually defined prompt colors. It
2708 on/off with @colors even for manually defined prompt colors. It
2704 uses a nasty global, but it works safely and via the generic color
2709 uses a nasty global, but it works safely and via the generic color
2705 handling mechanism.
2710 handling mechanism.
2706 (Prompt2.__init__): Introduced new escape '\D' for continuation
2711 (Prompt2.__init__): Introduced new escape '\D' for continuation
2707 prompts. It represents the counter ('\#') as dots.
2712 prompts. It represents the counter ('\#') as dots.
2708 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2713 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2709 need to update their ipythonrc files and replace '%n' with '\D' in
2714 need to update their ipythonrc files and replace '%n' with '\D' in
2710 their prompt_in2 settings everywhere. Sorry, but there's
2715 their prompt_in2 settings everywhere. Sorry, but there's
2711 otherwise no clean way to get all prompts to properly align. The
2716 otherwise no clean way to get all prompts to properly align. The
2712 ipythonrc shipped with IPython has been updated.
2717 ipythonrc shipped with IPython has been updated.
2713
2718
2714 2004-06-07 Fernando Perez <fperez@colorado.edu>
2719 2004-06-07 Fernando Perez <fperez@colorado.edu>
2715
2720
2716 * setup.py (isfile): Pass local_icons option to latex2html, so the
2721 * setup.py (isfile): Pass local_icons option to latex2html, so the
2717 resulting HTML file is self-contained. Thanks to
2722 resulting HTML file is self-contained. Thanks to
2718 dryice-AT-liu.com.cn for the tip.
2723 dryice-AT-liu.com.cn for the tip.
2719
2724
2720 * pysh.py: I created a new profile 'shell', which implements a
2725 * pysh.py: I created a new profile 'shell', which implements a
2721 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2726 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2722 system shell, nor will it become one anytime soon. It's mainly
2727 system shell, nor will it become one anytime soon. It's mainly
2723 meant to illustrate the use of the new flexible bash-like prompts.
2728 meant to illustrate the use of the new flexible bash-like prompts.
2724 I guess it could be used by hardy souls for true shell management,
2729 I guess it could be used by hardy souls for true shell management,
2725 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2730 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2726 profile. This uses the InterpreterExec extension provided by
2731 profile. This uses the InterpreterExec extension provided by
2727 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2732 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2728
2733
2729 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2734 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2730 auto-align itself with the length of the previous input prompt
2735 auto-align itself with the length of the previous input prompt
2731 (taking into account the invisible color escapes).
2736 (taking into account the invisible color escapes).
2732 (CachedOutput.__init__): Large restructuring of this class. Now
2737 (CachedOutput.__init__): Large restructuring of this class. Now
2733 all three prompts (primary1, primary2, output) are proper objects,
2738 all three prompts (primary1, primary2, output) are proper objects,
2734 managed by the 'parent' CachedOutput class. The code is still a
2739 managed by the 'parent' CachedOutput class. The code is still a
2735 bit hackish (all prompts share state via a pointer to the cache),
2740 bit hackish (all prompts share state via a pointer to the cache),
2736 but it's overall far cleaner than before.
2741 but it's overall far cleaner than before.
2737
2742
2738 * IPython/genutils.py (getoutputerror): modified to add verbose,
2743 * IPython/genutils.py (getoutputerror): modified to add verbose,
2739 debug and header options. This makes the interface of all getout*
2744 debug and header options. This makes the interface of all getout*
2740 functions uniform.
2745 functions uniform.
2741 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2746 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2742
2747
2743 * IPython/Magic.py (Magic.default_option): added a function to
2748 * IPython/Magic.py (Magic.default_option): added a function to
2744 allow registering default options for any magic command. This
2749 allow registering default options for any magic command. This
2745 makes it easy to have profiles which customize the magics globally
2750 makes it easy to have profiles which customize the magics globally
2746 for a certain use. The values set through this function are
2751 for a certain use. The values set through this function are
2747 picked up by the parse_options() method, which all magics should
2752 picked up by the parse_options() method, which all magics should
2748 use to parse their options.
2753 use to parse their options.
2749
2754
2750 * IPython/genutils.py (warn): modified the warnings framework to
2755 * IPython/genutils.py (warn): modified the warnings framework to
2751 use the Term I/O class. I'm trying to slowly unify all of
2756 use the Term I/O class. I'm trying to slowly unify all of
2752 IPython's I/O operations to pass through Term.
2757 IPython's I/O operations to pass through Term.
2753
2758
2754 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2759 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2755 the secondary prompt to correctly match the length of the primary
2760 the secondary prompt to correctly match the length of the primary
2756 one for any prompt. Now multi-line code will properly line up
2761 one for any prompt. Now multi-line code will properly line up
2757 even for path dependent prompts, such as the new ones available
2762 even for path dependent prompts, such as the new ones available
2758 via the prompt_specials.
2763 via the prompt_specials.
2759
2764
2760 2004-06-06 Fernando Perez <fperez@colorado.edu>
2765 2004-06-06 Fernando Perez <fperez@colorado.edu>
2761
2766
2762 * IPython/Prompts.py (prompt_specials): Added the ability to have
2767 * IPython/Prompts.py (prompt_specials): Added the ability to have
2763 bash-like special sequences in the prompts, which get
2768 bash-like special sequences in the prompts, which get
2764 automatically expanded. Things like hostname, current working
2769 automatically expanded. Things like hostname, current working
2765 directory and username are implemented already, but it's easy to
2770 directory and username are implemented already, but it's easy to
2766 add more in the future. Thanks to a patch by W.J. van der Laan
2771 add more in the future. Thanks to a patch by W.J. van der Laan
2767 <gnufnork-AT-hetdigitalegat.nl>
2772 <gnufnork-AT-hetdigitalegat.nl>
2768 (prompt_specials): Added color support for prompt strings, so
2773 (prompt_specials): Added color support for prompt strings, so
2769 users can define arbitrary color setups for their prompts.
2774 users can define arbitrary color setups for their prompts.
2770
2775
2771 2004-06-05 Fernando Perez <fperez@colorado.edu>
2776 2004-06-05 Fernando Perez <fperez@colorado.edu>
2772
2777
2773 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2778 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2774 code to load Gary Bishop's readline and configure it
2779 code to load Gary Bishop's readline and configure it
2775 automatically. Thanks to Gary for help on this.
2780 automatically. Thanks to Gary for help on this.
2776
2781
2777 2004-06-01 Fernando Perez <fperez@colorado.edu>
2782 2004-06-01 Fernando Perez <fperez@colorado.edu>
2778
2783
2779 * IPython/Logger.py (Logger.create_log): fix bug for logging
2784 * IPython/Logger.py (Logger.create_log): fix bug for logging
2780 with no filename (previous fix was incomplete).
2785 with no filename (previous fix was incomplete).
2781
2786
2782 2004-05-25 Fernando Perez <fperez@colorado.edu>
2787 2004-05-25 Fernando Perez <fperez@colorado.edu>
2783
2788
2784 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2789 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2785 parens would get passed to the shell.
2790 parens would get passed to the shell.
2786
2791
2787 2004-05-20 Fernando Perez <fperez@colorado.edu>
2792 2004-05-20 Fernando Perez <fperez@colorado.edu>
2788
2793
2789 * IPython/Magic.py (Magic.magic_prun): changed default profile
2794 * IPython/Magic.py (Magic.magic_prun): changed default profile
2790 sort order to 'time' (the more common profiling need).
2795 sort order to 'time' (the more common profiling need).
2791
2796
2792 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2797 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2793 so that source code shown is guaranteed in sync with the file on
2798 so that source code shown is guaranteed in sync with the file on
2794 disk (also changed in psource). Similar fix to the one for
2799 disk (also changed in psource). Similar fix to the one for
2795 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2800 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2796 <yann.ledu-AT-noos.fr>.
2801 <yann.ledu-AT-noos.fr>.
2797
2802
2798 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2803 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2799 with a single option would not be correctly parsed. Closes
2804 with a single option would not be correctly parsed. Closes
2800 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2805 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2801 introduced in 0.6.0 (on 2004-05-06).
2806 introduced in 0.6.0 (on 2004-05-06).
2802
2807
2803 2004-05-13 *** Released version 0.6.0
2808 2004-05-13 *** Released version 0.6.0
2804
2809
2805 2004-05-13 Fernando Perez <fperez@colorado.edu>
2810 2004-05-13 Fernando Perez <fperez@colorado.edu>
2806
2811
2807 * debian/: Added debian/ directory to CVS, so that debian support
2812 * debian/: Added debian/ directory to CVS, so that debian support
2808 is publicly accessible. The debian package is maintained by Jack
2813 is publicly accessible. The debian package is maintained by Jack
2809 Moffit <jack-AT-xiph.org>.
2814 Moffit <jack-AT-xiph.org>.
2810
2815
2811 * Documentation: included the notes about an ipython-based system
2816 * Documentation: included the notes about an ipython-based system
2812 shell (the hypothetical 'pysh') into the new_design.pdf document,
2817 shell (the hypothetical 'pysh') into the new_design.pdf document,
2813 so that these ideas get distributed to users along with the
2818 so that these ideas get distributed to users along with the
2814 official documentation.
2819 official documentation.
2815
2820
2816 2004-05-10 Fernando Perez <fperez@colorado.edu>
2821 2004-05-10 Fernando Perez <fperez@colorado.edu>
2817
2822
2818 * IPython/Logger.py (Logger.create_log): fix recently introduced
2823 * IPython/Logger.py (Logger.create_log): fix recently introduced
2819 bug (misindented line) where logstart would fail when not given an
2824 bug (misindented line) where logstart would fail when not given an
2820 explicit filename.
2825 explicit filename.
2821
2826
2822 2004-05-09 Fernando Perez <fperez@colorado.edu>
2827 2004-05-09 Fernando Perez <fperez@colorado.edu>
2823
2828
2824 * IPython/Magic.py (Magic.parse_options): skip system call when
2829 * IPython/Magic.py (Magic.parse_options): skip system call when
2825 there are no options to look for. Faster, cleaner for the common
2830 there are no options to look for. Faster, cleaner for the common
2826 case.
2831 case.
2827
2832
2828 * Documentation: many updates to the manual: describing Windows
2833 * Documentation: many updates to the manual: describing Windows
2829 support better, Gnuplot updates, credits, misc small stuff. Also
2834 support better, Gnuplot updates, credits, misc small stuff. Also
2830 updated the new_design doc a bit.
2835 updated the new_design doc a bit.
2831
2836
2832 2004-05-06 *** Released version 0.6.0.rc1
2837 2004-05-06 *** Released version 0.6.0.rc1
2833
2838
2834 2004-05-06 Fernando Perez <fperez@colorado.edu>
2839 2004-05-06 Fernando Perez <fperez@colorado.edu>
2835
2840
2836 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2841 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2837 operations to use the vastly more efficient list/''.join() method.
2842 operations to use the vastly more efficient list/''.join() method.
2838 (FormattedTB.text): Fix
2843 (FormattedTB.text): Fix
2839 http://www.scipy.net/roundup/ipython/issue12 - exception source
2844 http://www.scipy.net/roundup/ipython/issue12 - exception source
2840 extract not updated after reload. Thanks to Mike Salib
2845 extract not updated after reload. Thanks to Mike Salib
2841 <msalib-AT-mit.edu> for pinning the source of the problem.
2846 <msalib-AT-mit.edu> for pinning the source of the problem.
2842 Fortunately, the solution works inside ipython and doesn't require
2847 Fortunately, the solution works inside ipython and doesn't require
2843 any changes to python proper.
2848 any changes to python proper.
2844
2849
2845 * IPython/Magic.py (Magic.parse_options): Improved to process the
2850 * IPython/Magic.py (Magic.parse_options): Improved to process the
2846 argument list as a true shell would (by actually using the
2851 argument list as a true shell would (by actually using the
2847 underlying system shell). This way, all @magics automatically get
2852 underlying system shell). This way, all @magics automatically get
2848 shell expansion for variables. Thanks to a comment by Alex
2853 shell expansion for variables. Thanks to a comment by Alex
2849 Schmolck.
2854 Schmolck.
2850
2855
2851 2004-04-04 Fernando Perez <fperez@colorado.edu>
2856 2004-04-04 Fernando Perez <fperez@colorado.edu>
2852
2857
2853 * IPython/iplib.py (InteractiveShell.interact): Added a special
2858 * IPython/iplib.py (InteractiveShell.interact): Added a special
2854 trap for a debugger quit exception, which is basically impossible
2859 trap for a debugger quit exception, which is basically impossible
2855 to handle by normal mechanisms, given what pdb does to the stack.
2860 to handle by normal mechanisms, given what pdb does to the stack.
2856 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2861 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2857
2862
2858 2004-04-03 Fernando Perez <fperez@colorado.edu>
2863 2004-04-03 Fernando Perez <fperez@colorado.edu>
2859
2864
2860 * IPython/genutils.py (Term): Standardized the names of the Term
2865 * IPython/genutils.py (Term): Standardized the names of the Term
2861 class streams to cin/cout/cerr, following C++ naming conventions
2866 class streams to cin/cout/cerr, following C++ naming conventions
2862 (I can't use in/out/err because 'in' is not a valid attribute
2867 (I can't use in/out/err because 'in' is not a valid attribute
2863 name).
2868 name).
2864
2869
2865 * IPython/iplib.py (InteractiveShell.interact): don't increment
2870 * IPython/iplib.py (InteractiveShell.interact): don't increment
2866 the prompt if there's no user input. By Daniel 'Dang' Griffith
2871 the prompt if there's no user input. By Daniel 'Dang' Griffith
2867 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2872 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2868 Francois Pinard.
2873 Francois Pinard.
2869
2874
2870 2004-04-02 Fernando Perez <fperez@colorado.edu>
2875 2004-04-02 Fernando Perez <fperez@colorado.edu>
2871
2876
2872 * IPython/genutils.py (Stream.__init__): Modified to survive at
2877 * IPython/genutils.py (Stream.__init__): Modified to survive at
2873 least importing in contexts where stdin/out/err aren't true file
2878 least importing in contexts where stdin/out/err aren't true file
2874 objects, such as PyCrust (they lack fileno() and mode). However,
2879 objects, such as PyCrust (they lack fileno() and mode). However,
2875 the recovery facilities which rely on these things existing will
2880 the recovery facilities which rely on these things existing will
2876 not work.
2881 not work.
2877
2882
2878 2004-04-01 Fernando Perez <fperez@colorado.edu>
2883 2004-04-01 Fernando Perez <fperez@colorado.edu>
2879
2884
2880 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2885 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2881 use the new getoutputerror() function, so it properly
2886 use the new getoutputerror() function, so it properly
2882 distinguishes stdout/err.
2887 distinguishes stdout/err.
2883
2888
2884 * IPython/genutils.py (getoutputerror): added a function to
2889 * IPython/genutils.py (getoutputerror): added a function to
2885 capture separately the standard output and error of a command.
2890 capture separately the standard output and error of a command.
2886 After a comment from dang on the mailing lists. This code is
2891 After a comment from dang on the mailing lists. This code is
2887 basically a modified version of commands.getstatusoutput(), from
2892 basically a modified version of commands.getstatusoutput(), from
2888 the standard library.
2893 the standard library.
2889
2894
2890 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2895 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2891 '!!' as a special syntax (shorthand) to access @sx.
2896 '!!' as a special syntax (shorthand) to access @sx.
2892
2897
2893 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2898 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2894 command and return its output as a list split on '\n'.
2899 command and return its output as a list split on '\n'.
2895
2900
2896 2004-03-31 Fernando Perez <fperez@colorado.edu>
2901 2004-03-31 Fernando Perez <fperez@colorado.edu>
2897
2902
2898 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2903 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2899 method to dictionaries used as FakeModule instances if they lack
2904 method to dictionaries used as FakeModule instances if they lack
2900 it. At least pydoc in python2.3 breaks for runtime-defined
2905 it. At least pydoc in python2.3 breaks for runtime-defined
2901 functions without this hack. At some point I need to _really_
2906 functions without this hack. At some point I need to _really_
2902 understand what FakeModule is doing, because it's a gross hack.
2907 understand what FakeModule is doing, because it's a gross hack.
2903 But it solves Arnd's problem for now...
2908 But it solves Arnd's problem for now...
2904
2909
2905 2004-02-27 Fernando Perez <fperez@colorado.edu>
2910 2004-02-27 Fernando Perez <fperez@colorado.edu>
2906
2911
2907 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2912 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2908 mode would behave erratically. Also increased the number of
2913 mode would behave erratically. Also increased the number of
2909 possible logs in rotate mod to 999. Thanks to Rod Holland
2914 possible logs in rotate mod to 999. Thanks to Rod Holland
2910 <rhh@StructureLABS.com> for the report and fixes.
2915 <rhh@StructureLABS.com> for the report and fixes.
2911
2916
2912 2004-02-26 Fernando Perez <fperez@colorado.edu>
2917 2004-02-26 Fernando Perez <fperez@colorado.edu>
2913
2918
2914 * IPython/genutils.py (page): Check that the curses module really
2919 * IPython/genutils.py (page): Check that the curses module really
2915 has the initscr attribute before trying to use it. For some
2920 has the initscr attribute before trying to use it. For some
2916 reason, the Solaris curses module is missing this. I think this
2921 reason, the Solaris curses module is missing this. I think this
2917 should be considered a Solaris python bug, but I'm not sure.
2922 should be considered a Solaris python bug, but I'm not sure.
2918
2923
2919 2004-01-17 Fernando Perez <fperez@colorado.edu>
2924 2004-01-17 Fernando Perez <fperez@colorado.edu>
2920
2925
2921 * IPython/genutils.py (Stream.__init__): Changes to try to make
2926 * IPython/genutils.py (Stream.__init__): Changes to try to make
2922 ipython robust against stdin/out/err being closed by the user.
2927 ipython robust against stdin/out/err being closed by the user.
2923 This is 'user error' (and blocks a normal python session, at least
2928 This is 'user error' (and blocks a normal python session, at least
2924 the stdout case). However, Ipython should be able to survive such
2929 the stdout case). However, Ipython should be able to survive such
2925 instances of abuse as gracefully as possible. To simplify the
2930 instances of abuse as gracefully as possible. To simplify the
2926 coding and maintain compatibility with Gary Bishop's Term
2931 coding and maintain compatibility with Gary Bishop's Term
2927 contributions, I've made use of classmethods for this. I think
2932 contributions, I've made use of classmethods for this. I think
2928 this introduces a dependency on python 2.2.
2933 this introduces a dependency on python 2.2.
2929
2934
2930 2004-01-13 Fernando Perez <fperez@colorado.edu>
2935 2004-01-13 Fernando Perez <fperez@colorado.edu>
2931
2936
2932 * IPython/numutils.py (exp_safe): simplified the code a bit and
2937 * IPython/numutils.py (exp_safe): simplified the code a bit and
2933 removed the need for importing the kinds module altogether.
2938 removed the need for importing the kinds module altogether.
2934
2939
2935 2004-01-06 Fernando Perez <fperez@colorado.edu>
2940 2004-01-06 Fernando Perez <fperez@colorado.edu>
2936
2941
2937 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2942 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2938 a magic function instead, after some community feedback. No
2943 a magic function instead, after some community feedback. No
2939 special syntax will exist for it, but its name is deliberately
2944 special syntax will exist for it, but its name is deliberately
2940 very short.
2945 very short.
2941
2946
2942 2003-12-20 Fernando Perez <fperez@colorado.edu>
2947 2003-12-20 Fernando Perez <fperez@colorado.edu>
2943
2948
2944 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2949 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2945 new functionality, to automagically assign the result of a shell
2950 new functionality, to automagically assign the result of a shell
2946 command to a variable. I'll solicit some community feedback on
2951 command to a variable. I'll solicit some community feedback on
2947 this before making it permanent.
2952 this before making it permanent.
2948
2953
2949 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2954 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2950 requested about callables for which inspect couldn't obtain a
2955 requested about callables for which inspect couldn't obtain a
2951 proper argspec. Thanks to a crash report sent by Etienne
2956 proper argspec. Thanks to a crash report sent by Etienne
2952 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2957 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2953
2958
2954 2003-12-09 Fernando Perez <fperez@colorado.edu>
2959 2003-12-09 Fernando Perez <fperez@colorado.edu>
2955
2960
2956 * IPython/genutils.py (page): patch for the pager to work across
2961 * IPython/genutils.py (page): patch for the pager to work across
2957 various versions of Windows. By Gary Bishop.
2962 various versions of Windows. By Gary Bishop.
2958
2963
2959 2003-12-04 Fernando Perez <fperez@colorado.edu>
2964 2003-12-04 Fernando Perez <fperez@colorado.edu>
2960
2965
2961 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2966 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2962 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2967 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2963 While I tested this and it looks ok, there may still be corner
2968 While I tested this and it looks ok, there may still be corner
2964 cases I've missed.
2969 cases I've missed.
2965
2970
2966 2003-12-01 Fernando Perez <fperez@colorado.edu>
2971 2003-12-01 Fernando Perez <fperez@colorado.edu>
2967
2972
2968 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2973 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2969 where a line like 'p,q=1,2' would fail because the automagic
2974 where a line like 'p,q=1,2' would fail because the automagic
2970 system would be triggered for @p.
2975 system would be triggered for @p.
2971
2976
2972 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2977 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2973 cleanups, code unmodified.
2978 cleanups, code unmodified.
2974
2979
2975 * IPython/genutils.py (Term): added a class for IPython to handle
2980 * IPython/genutils.py (Term): added a class for IPython to handle
2976 output. In most cases it will just be a proxy for stdout/err, but
2981 output. In most cases it will just be a proxy for stdout/err, but
2977 having this allows modifications to be made for some platforms,
2982 having this allows modifications to be made for some platforms,
2978 such as handling color escapes under Windows. All of this code
2983 such as handling color escapes under Windows. All of this code
2979 was contributed by Gary Bishop, with minor modifications by me.
2984 was contributed by Gary Bishop, with minor modifications by me.
2980 The actual changes affect many files.
2985 The actual changes affect many files.
2981
2986
2982 2003-11-30 Fernando Perez <fperez@colorado.edu>
2987 2003-11-30 Fernando Perez <fperez@colorado.edu>
2983
2988
2984 * IPython/iplib.py (file_matches): new completion code, courtesy
2989 * IPython/iplib.py (file_matches): new completion code, courtesy
2985 of Jeff Collins. This enables filename completion again under
2990 of Jeff Collins. This enables filename completion again under
2986 python 2.3, which disabled it at the C level.
2991 python 2.3, which disabled it at the C level.
2987
2992
2988 2003-11-11 Fernando Perez <fperez@colorado.edu>
2993 2003-11-11 Fernando Perez <fperez@colorado.edu>
2989
2994
2990 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2995 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2991 for Numeric.array(map(...)), but often convenient.
2996 for Numeric.array(map(...)), but often convenient.
2992
2997
2993 2003-11-05 Fernando Perez <fperez@colorado.edu>
2998 2003-11-05 Fernando Perez <fperez@colorado.edu>
2994
2999
2995 * IPython/numutils.py (frange): Changed a call from int() to
3000 * IPython/numutils.py (frange): Changed a call from int() to
2996 int(round()) to prevent a problem reported with arange() in the
3001 int(round()) to prevent a problem reported with arange() in the
2997 numpy list.
3002 numpy list.
2998
3003
2999 2003-10-06 Fernando Perez <fperez@colorado.edu>
3004 2003-10-06 Fernando Perez <fperez@colorado.edu>
3000
3005
3001 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3006 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3002 prevent crashes if sys lacks an argv attribute (it happens with
3007 prevent crashes if sys lacks an argv attribute (it happens with
3003 embedded interpreters which build a bare-bones sys module).
3008 embedded interpreters which build a bare-bones sys module).
3004 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3009 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3005
3010
3006 2003-09-24 Fernando Perez <fperez@colorado.edu>
3011 2003-09-24 Fernando Perez <fperez@colorado.edu>
3007
3012
3008 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3013 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3009 to protect against poorly written user objects where __getattr__
3014 to protect against poorly written user objects where __getattr__
3010 raises exceptions other than AttributeError. Thanks to a bug
3015 raises exceptions other than AttributeError. Thanks to a bug
3011 report by Oliver Sander <osander-AT-gmx.de>.
3016 report by Oliver Sander <osander-AT-gmx.de>.
3012
3017
3013 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3018 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3014 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3019 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3015
3020
3016 2003-09-09 Fernando Perez <fperez@colorado.edu>
3021 2003-09-09 Fernando Perez <fperez@colorado.edu>
3017
3022
3018 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3023 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3019 unpacking a list whith a callable as first element would
3024 unpacking a list whith a callable as first element would
3020 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3025 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3021 Collins.
3026 Collins.
3022
3027
3023 2003-08-25 *** Released version 0.5.0
3028 2003-08-25 *** Released version 0.5.0
3024
3029
3025 2003-08-22 Fernando Perez <fperez@colorado.edu>
3030 2003-08-22 Fernando Perez <fperez@colorado.edu>
3026
3031
3027 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3032 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3028 improperly defined user exceptions. Thanks to feedback from Mark
3033 improperly defined user exceptions. Thanks to feedback from Mark
3029 Russell <mrussell-AT-verio.net>.
3034 Russell <mrussell-AT-verio.net>.
3030
3035
3031 2003-08-20 Fernando Perez <fperez@colorado.edu>
3036 2003-08-20 Fernando Perez <fperez@colorado.edu>
3032
3037
3033 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3038 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3034 printing so that it would print multi-line string forms starting
3039 printing so that it would print multi-line string forms starting
3035 with a new line. This way the formatting is better respected for
3040 with a new line. This way the formatting is better respected for
3036 objects which work hard to make nice string forms.
3041 objects which work hard to make nice string forms.
3037
3042
3038 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3043 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3039 autocall would overtake data access for objects with both
3044 autocall would overtake data access for objects with both
3040 __getitem__ and __call__.
3045 __getitem__ and __call__.
3041
3046
3042 2003-08-19 *** Released version 0.5.0-rc1
3047 2003-08-19 *** Released version 0.5.0-rc1
3043
3048
3044 2003-08-19 Fernando Perez <fperez@colorado.edu>
3049 2003-08-19 Fernando Perez <fperez@colorado.edu>
3045
3050
3046 * IPython/deep_reload.py (load_tail): single tiny change here
3051 * IPython/deep_reload.py (load_tail): single tiny change here
3047 seems to fix the long-standing bug of dreload() failing to work
3052 seems to fix the long-standing bug of dreload() failing to work
3048 for dotted names. But this module is pretty tricky, so I may have
3053 for dotted names. But this module is pretty tricky, so I may have
3049 missed some subtlety. Needs more testing!.
3054 missed some subtlety. Needs more testing!.
3050
3055
3051 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3056 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3052 exceptions which have badly implemented __str__ methods.
3057 exceptions which have badly implemented __str__ methods.
3053 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3058 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3054 which I've been getting reports about from Python 2.3 users. I
3059 which I've been getting reports about from Python 2.3 users. I
3055 wish I had a simple test case to reproduce the problem, so I could
3060 wish I had a simple test case to reproduce the problem, so I could
3056 either write a cleaner workaround or file a bug report if
3061 either write a cleaner workaround or file a bug report if
3057 necessary.
3062 necessary.
3058
3063
3059 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3064 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3060 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3065 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3061 a bug report by Tjabo Kloppenburg.
3066 a bug report by Tjabo Kloppenburg.
3062
3067
3063 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3068 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3064 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3069 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3065 seems rather unstable. Thanks to a bug report by Tjabo
3070 seems rather unstable. Thanks to a bug report by Tjabo
3066 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3071 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3067
3072
3068 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3073 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3069 this out soon because of the critical fixes in the inner loop for
3074 this out soon because of the critical fixes in the inner loop for
3070 generators.
3075 generators.
3071
3076
3072 * IPython/Magic.py (Magic.getargspec): removed. This (and
3077 * IPython/Magic.py (Magic.getargspec): removed. This (and
3073 _get_def) have been obsoleted by OInspect for a long time, I
3078 _get_def) have been obsoleted by OInspect for a long time, I
3074 hadn't noticed that they were dead code.
3079 hadn't noticed that they were dead code.
3075 (Magic._ofind): restored _ofind functionality for a few literals
3080 (Magic._ofind): restored _ofind functionality for a few literals
3076 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3081 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3077 for things like "hello".capitalize?, since that would require a
3082 for things like "hello".capitalize?, since that would require a
3078 potentially dangerous eval() again.
3083 potentially dangerous eval() again.
3079
3084
3080 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3085 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3081 logic a bit more to clean up the escapes handling and minimize the
3086 logic a bit more to clean up the escapes handling and minimize the
3082 use of _ofind to only necessary cases. The interactive 'feel' of
3087 use of _ofind to only necessary cases. The interactive 'feel' of
3083 IPython should have improved quite a bit with the changes in
3088 IPython should have improved quite a bit with the changes in
3084 _prefilter and _ofind (besides being far safer than before).
3089 _prefilter and _ofind (besides being far safer than before).
3085
3090
3086 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3091 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3087 obscure, never reported). Edit would fail to find the object to
3092 obscure, never reported). Edit would fail to find the object to
3088 edit under some circumstances.
3093 edit under some circumstances.
3089 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3094 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3090 which were causing double-calling of generators. Those eval calls
3095 which were causing double-calling of generators. Those eval calls
3091 were _very_ dangerous, since code with side effects could be
3096 were _very_ dangerous, since code with side effects could be
3092 triggered. As they say, 'eval is evil'... These were the
3097 triggered. As they say, 'eval is evil'... These were the
3093 nastiest evals in IPython. Besides, _ofind is now far simpler,
3098 nastiest evals in IPython. Besides, _ofind is now far simpler,
3094 and it should also be quite a bit faster. Its use of inspect is
3099 and it should also be quite a bit faster. Its use of inspect is
3095 also safer, so perhaps some of the inspect-related crashes I've
3100 also safer, so perhaps some of the inspect-related crashes I've
3096 seen lately with Python 2.3 might be taken care of. That will
3101 seen lately with Python 2.3 might be taken care of. That will
3097 need more testing.
3102 need more testing.
3098
3103
3099 2003-08-17 Fernando Perez <fperez@colorado.edu>
3104 2003-08-17 Fernando Perez <fperez@colorado.edu>
3100
3105
3101 * IPython/iplib.py (InteractiveShell._prefilter): significant
3106 * IPython/iplib.py (InteractiveShell._prefilter): significant
3102 simplifications to the logic for handling user escapes. Faster
3107 simplifications to the logic for handling user escapes. Faster
3103 and simpler code.
3108 and simpler code.
3104
3109
3105 2003-08-14 Fernando Perez <fperez@colorado.edu>
3110 2003-08-14 Fernando Perez <fperez@colorado.edu>
3106
3111
3107 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3112 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3108 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3113 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3109 but it should be quite a bit faster. And the recursive version
3114 but it should be quite a bit faster. And the recursive version
3110 generated O(log N) intermediate storage for all rank>1 arrays,
3115 generated O(log N) intermediate storage for all rank>1 arrays,
3111 even if they were contiguous.
3116 even if they were contiguous.
3112 (l1norm): Added this function.
3117 (l1norm): Added this function.
3113 (norm): Added this function for arbitrary norms (including
3118 (norm): Added this function for arbitrary norms (including
3114 l-infinity). l1 and l2 are still special cases for convenience
3119 l-infinity). l1 and l2 are still special cases for convenience
3115 and speed.
3120 and speed.
3116
3121
3117 2003-08-03 Fernando Perez <fperez@colorado.edu>
3122 2003-08-03 Fernando Perez <fperez@colorado.edu>
3118
3123
3119 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3124 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3120 exceptions, which now raise PendingDeprecationWarnings in Python
3125 exceptions, which now raise PendingDeprecationWarnings in Python
3121 2.3. There were some in Magic and some in Gnuplot2.
3126 2.3. There were some in Magic and some in Gnuplot2.
3122
3127
3123 2003-06-30 Fernando Perez <fperez@colorado.edu>
3128 2003-06-30 Fernando Perez <fperez@colorado.edu>
3124
3129
3125 * IPython/genutils.py (page): modified to call curses only for
3130 * IPython/genutils.py (page): modified to call curses only for
3126 terminals where TERM=='xterm'. After problems under many other
3131 terminals where TERM=='xterm'. After problems under many other
3127 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3132 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3128
3133
3129 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3134 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3130 would be triggered when readline was absent. This was just an old
3135 would be triggered when readline was absent. This was just an old
3131 debugging statement I'd forgotten to take out.
3136 debugging statement I'd forgotten to take out.
3132
3137
3133 2003-06-20 Fernando Perez <fperez@colorado.edu>
3138 2003-06-20 Fernando Perez <fperez@colorado.edu>
3134
3139
3135 * IPython/genutils.py (clock): modified to return only user time
3140 * IPython/genutils.py (clock): modified to return only user time
3136 (not counting system time), after a discussion on scipy. While
3141 (not counting system time), after a discussion on scipy. While
3137 system time may be a useful quantity occasionally, it may much
3142 system time may be a useful quantity occasionally, it may much
3138 more easily be skewed by occasional swapping or other similar
3143 more easily be skewed by occasional swapping or other similar
3139 activity.
3144 activity.
3140
3145
3141 2003-06-05 Fernando Perez <fperez@colorado.edu>
3146 2003-06-05 Fernando Perez <fperez@colorado.edu>
3142
3147
3143 * IPython/numutils.py (identity): new function, for building
3148 * IPython/numutils.py (identity): new function, for building
3144 arbitrary rank Kronecker deltas (mostly backwards compatible with
3149 arbitrary rank Kronecker deltas (mostly backwards compatible with
3145 Numeric.identity)
3150 Numeric.identity)
3146
3151
3147 2003-06-03 Fernando Perez <fperez@colorado.edu>
3152 2003-06-03 Fernando Perez <fperez@colorado.edu>
3148
3153
3149 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3154 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3150 arguments passed to magics with spaces, to allow trailing '\' to
3155 arguments passed to magics with spaces, to allow trailing '\' to
3151 work normally (mainly for Windows users).
3156 work normally (mainly for Windows users).
3152
3157
3153 2003-05-29 Fernando Perez <fperez@colorado.edu>
3158 2003-05-29 Fernando Perez <fperez@colorado.edu>
3154
3159
3155 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3160 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3156 instead of pydoc.help. This fixes a bizarre behavior where
3161 instead of pydoc.help. This fixes a bizarre behavior where
3157 printing '%s' % locals() would trigger the help system. Now
3162 printing '%s' % locals() would trigger the help system. Now
3158 ipython behaves like normal python does.
3163 ipython behaves like normal python does.
3159
3164
3160 Note that if one does 'from pydoc import help', the bizarre
3165 Note that if one does 'from pydoc import help', the bizarre
3161 behavior returns, but this will also happen in normal python, so
3166 behavior returns, but this will also happen in normal python, so
3162 it's not an ipython bug anymore (it has to do with how pydoc.help
3167 it's not an ipython bug anymore (it has to do with how pydoc.help
3163 is implemented).
3168 is implemented).
3164
3169
3165 2003-05-22 Fernando Perez <fperez@colorado.edu>
3170 2003-05-22 Fernando Perez <fperez@colorado.edu>
3166
3171
3167 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3172 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3168 return [] instead of None when nothing matches, also match to end
3173 return [] instead of None when nothing matches, also match to end
3169 of line. Patch by Gary Bishop.
3174 of line. Patch by Gary Bishop.
3170
3175
3171 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3176 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3172 protection as before, for files passed on the command line. This
3177 protection as before, for files passed on the command line. This
3173 prevents the CrashHandler from kicking in if user files call into
3178 prevents the CrashHandler from kicking in if user files call into
3174 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3179 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3175 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3180 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3176
3181
3177 2003-05-20 *** Released version 0.4.0
3182 2003-05-20 *** Released version 0.4.0
3178
3183
3179 2003-05-20 Fernando Perez <fperez@colorado.edu>
3184 2003-05-20 Fernando Perez <fperez@colorado.edu>
3180
3185
3181 * setup.py: added support for manpages. It's a bit hackish b/c of
3186 * setup.py: added support for manpages. It's a bit hackish b/c of
3182 a bug in the way the bdist_rpm distutils target handles gzipped
3187 a bug in the way the bdist_rpm distutils target handles gzipped
3183 manpages, but it works. After a patch by Jack.
3188 manpages, but it works. After a patch by Jack.
3184
3189
3185 2003-05-19 Fernando Perez <fperez@colorado.edu>
3190 2003-05-19 Fernando Perez <fperez@colorado.edu>
3186
3191
3187 * IPython/numutils.py: added a mockup of the kinds module, since
3192 * IPython/numutils.py: added a mockup of the kinds module, since
3188 it was recently removed from Numeric. This way, numutils will
3193 it was recently removed from Numeric. This way, numutils will
3189 work for all users even if they are missing kinds.
3194 work for all users even if they are missing kinds.
3190
3195
3191 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3196 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3192 failure, which can occur with SWIG-wrapped extensions. After a
3197 failure, which can occur with SWIG-wrapped extensions. After a
3193 crash report from Prabhu.
3198 crash report from Prabhu.
3194
3199
3195 2003-05-16 Fernando Perez <fperez@colorado.edu>
3200 2003-05-16 Fernando Perez <fperez@colorado.edu>
3196
3201
3197 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3202 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3198 protect ipython from user code which may call directly
3203 protect ipython from user code which may call directly
3199 sys.excepthook (this looks like an ipython crash to the user, even
3204 sys.excepthook (this looks like an ipython crash to the user, even
3200 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3205 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3201 This is especially important to help users of WxWindows, but may
3206 This is especially important to help users of WxWindows, but may
3202 also be useful in other cases.
3207 also be useful in other cases.
3203
3208
3204 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3209 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3205 an optional tb_offset to be specified, and to preserve exception
3210 an optional tb_offset to be specified, and to preserve exception
3206 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3211 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3207
3212
3208 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3213 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3209
3214
3210 2003-05-15 Fernando Perez <fperez@colorado.edu>
3215 2003-05-15 Fernando Perez <fperez@colorado.edu>
3211
3216
3212 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3217 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3213 installing for a new user under Windows.
3218 installing for a new user under Windows.
3214
3219
3215 2003-05-12 Fernando Perez <fperez@colorado.edu>
3220 2003-05-12 Fernando Perez <fperez@colorado.edu>
3216
3221
3217 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3222 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3218 handler for Emacs comint-based lines. Currently it doesn't do
3223 handler for Emacs comint-based lines. Currently it doesn't do
3219 much (but importantly, it doesn't update the history cache). In
3224 much (but importantly, it doesn't update the history cache). In
3220 the future it may be expanded if Alex needs more functionality
3225 the future it may be expanded if Alex needs more functionality
3221 there.
3226 there.
3222
3227
3223 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3228 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3224 info to crash reports.
3229 info to crash reports.
3225
3230
3226 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3231 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3227 just like Python's -c. Also fixed crash with invalid -color
3232 just like Python's -c. Also fixed crash with invalid -color
3228 option value at startup. Thanks to Will French
3233 option value at startup. Thanks to Will French
3229 <wfrench-AT-bestweb.net> for the bug report.
3234 <wfrench-AT-bestweb.net> for the bug report.
3230
3235
3231 2003-05-09 Fernando Perez <fperez@colorado.edu>
3236 2003-05-09 Fernando Perez <fperez@colorado.edu>
3232
3237
3233 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3238 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3234 to EvalDict (it's a mapping, after all) and simplified its code
3239 to EvalDict (it's a mapping, after all) and simplified its code
3235 quite a bit, after a nice discussion on c.l.py where Gustavo
3240 quite a bit, after a nice discussion on c.l.py where Gustavo
3236 Córdova <gcordova-AT-sismex.com> suggested the new version.
3241 Córdova <gcordova-AT-sismex.com> suggested the new version.
3237
3242
3238 2003-04-30 Fernando Perez <fperez@colorado.edu>
3243 2003-04-30 Fernando Perez <fperez@colorado.edu>
3239
3244
3240 * IPython/genutils.py (timings_out): modified it to reduce its
3245 * IPython/genutils.py (timings_out): modified it to reduce its
3241 overhead in the common reps==1 case.
3246 overhead in the common reps==1 case.
3242
3247
3243 2003-04-29 Fernando Perez <fperez@colorado.edu>
3248 2003-04-29 Fernando Perez <fperez@colorado.edu>
3244
3249
3245 * IPython/genutils.py (timings_out): Modified to use the resource
3250 * IPython/genutils.py (timings_out): Modified to use the resource
3246 module, which avoids the wraparound problems of time.clock().
3251 module, which avoids the wraparound problems of time.clock().
3247
3252
3248 2003-04-17 *** Released version 0.2.15pre4
3253 2003-04-17 *** Released version 0.2.15pre4
3249
3254
3250 2003-04-17 Fernando Perez <fperez@colorado.edu>
3255 2003-04-17 Fernando Perez <fperez@colorado.edu>
3251
3256
3252 * setup.py (scriptfiles): Split windows-specific stuff over to a
3257 * setup.py (scriptfiles): Split windows-specific stuff over to a
3253 separate file, in an attempt to have a Windows GUI installer.
3258 separate file, in an attempt to have a Windows GUI installer.
3254 That didn't work, but part of the groundwork is done.
3259 That didn't work, but part of the groundwork is done.
3255
3260
3256 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3261 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3257 indent/unindent with 4 spaces. Particularly useful in combination
3262 indent/unindent with 4 spaces. Particularly useful in combination
3258 with the new auto-indent option.
3263 with the new auto-indent option.
3259
3264
3260 2003-04-16 Fernando Perez <fperez@colorado.edu>
3265 2003-04-16 Fernando Perez <fperez@colorado.edu>
3261
3266
3262 * IPython/Magic.py: various replacements of self.rc for
3267 * IPython/Magic.py: various replacements of self.rc for
3263 self.shell.rc. A lot more remains to be done to fully disentangle
3268 self.shell.rc. A lot more remains to be done to fully disentangle
3264 this class from the main Shell class.
3269 this class from the main Shell class.
3265
3270
3266 * IPython/GnuplotRuntime.py: added checks for mouse support so
3271 * IPython/GnuplotRuntime.py: added checks for mouse support so
3267 that we don't try to enable it if the current gnuplot doesn't
3272 that we don't try to enable it if the current gnuplot doesn't
3268 really support it. Also added checks so that we don't try to
3273 really support it. Also added checks so that we don't try to
3269 enable persist under Windows (where Gnuplot doesn't recognize the
3274 enable persist under Windows (where Gnuplot doesn't recognize the
3270 option).
3275 option).
3271
3276
3272 * IPython/iplib.py (InteractiveShell.interact): Added optional
3277 * IPython/iplib.py (InteractiveShell.interact): Added optional
3273 auto-indenting code, after a patch by King C. Shu
3278 auto-indenting code, after a patch by King C. Shu
3274 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3279 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3275 get along well with pasting indented code. If I ever figure out
3280 get along well with pasting indented code. If I ever figure out
3276 how to make that part go well, it will become on by default.
3281 how to make that part go well, it will become on by default.
3277
3282
3278 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3283 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3279 crash ipython if there was an unmatched '%' in the user's prompt
3284 crash ipython if there was an unmatched '%' in the user's prompt
3280 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3285 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3281
3286
3282 * IPython/iplib.py (InteractiveShell.interact): removed the
3287 * IPython/iplib.py (InteractiveShell.interact): removed the
3283 ability to ask the user whether he wants to crash or not at the
3288 ability to ask the user whether he wants to crash or not at the
3284 'last line' exception handler. Calling functions at that point
3289 'last line' exception handler. Calling functions at that point
3285 changes the stack, and the error reports would have incorrect
3290 changes the stack, and the error reports would have incorrect
3286 tracebacks.
3291 tracebacks.
3287
3292
3288 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3293 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3289 pass through a peger a pretty-printed form of any object. After a
3294 pass through a peger a pretty-printed form of any object. After a
3290 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3295 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3291
3296
3292 2003-04-14 Fernando Perez <fperez@colorado.edu>
3297 2003-04-14 Fernando Perez <fperez@colorado.edu>
3293
3298
3294 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3299 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3295 all files in ~ would be modified at first install (instead of
3300 all files in ~ would be modified at first install (instead of
3296 ~/.ipython). This could be potentially disastrous, as the
3301 ~/.ipython). This could be potentially disastrous, as the
3297 modification (make line-endings native) could damage binary files.
3302 modification (make line-endings native) could damage binary files.
3298
3303
3299 2003-04-10 Fernando Perez <fperez@colorado.edu>
3304 2003-04-10 Fernando Perez <fperez@colorado.edu>
3300
3305
3301 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3306 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3302 handle only lines which are invalid python. This now means that
3307 handle only lines which are invalid python. This now means that
3303 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3308 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3304 for the bug report.
3309 for the bug report.
3305
3310
3306 2003-04-01 Fernando Perez <fperez@colorado.edu>
3311 2003-04-01 Fernando Perez <fperez@colorado.edu>
3307
3312
3308 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3313 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3309 where failing to set sys.last_traceback would crash pdb.pm().
3314 where failing to set sys.last_traceback would crash pdb.pm().
3310 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3315 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3311 report.
3316 report.
3312
3317
3313 2003-03-25 Fernando Perez <fperez@colorado.edu>
3318 2003-03-25 Fernando Perez <fperez@colorado.edu>
3314
3319
3315 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3320 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3316 before printing it (it had a lot of spurious blank lines at the
3321 before printing it (it had a lot of spurious blank lines at the
3317 end).
3322 end).
3318
3323
3319 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3324 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3320 output would be sent 21 times! Obviously people don't use this
3325 output would be sent 21 times! Obviously people don't use this
3321 too often, or I would have heard about it.
3326 too often, or I would have heard about it.
3322
3327
3323 2003-03-24 Fernando Perez <fperez@colorado.edu>
3328 2003-03-24 Fernando Perez <fperez@colorado.edu>
3324
3329
3325 * setup.py (scriptfiles): renamed the data_files parameter from
3330 * setup.py (scriptfiles): renamed the data_files parameter from
3326 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3331 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3327 for the patch.
3332 for the patch.
3328
3333
3329 2003-03-20 Fernando Perez <fperez@colorado.edu>
3334 2003-03-20 Fernando Perez <fperez@colorado.edu>
3330
3335
3331 * IPython/genutils.py (error): added error() and fatal()
3336 * IPython/genutils.py (error): added error() and fatal()
3332 functions.
3337 functions.
3333
3338
3334 2003-03-18 *** Released version 0.2.15pre3
3339 2003-03-18 *** Released version 0.2.15pre3
3335
3340
3336 2003-03-18 Fernando Perez <fperez@colorado.edu>
3341 2003-03-18 Fernando Perez <fperez@colorado.edu>
3337
3342
3338 * setupext/install_data_ext.py
3343 * setupext/install_data_ext.py
3339 (install_data_ext.initialize_options): Class contributed by Jack
3344 (install_data_ext.initialize_options): Class contributed by Jack
3340 Moffit for fixing the old distutils hack. He is sending this to
3345 Moffit for fixing the old distutils hack. He is sending this to
3341 the distutils folks so in the future we may not need it as a
3346 the distutils folks so in the future we may not need it as a
3342 private fix.
3347 private fix.
3343
3348
3344 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3349 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3345 changes for Debian packaging. See his patch for full details.
3350 changes for Debian packaging. See his patch for full details.
3346 The old distutils hack of making the ipythonrc* files carry a
3351 The old distutils hack of making the ipythonrc* files carry a
3347 bogus .py extension is gone, at last. Examples were moved to a
3352 bogus .py extension is gone, at last. Examples were moved to a
3348 separate subdir under doc/, and the separate executable scripts
3353 separate subdir under doc/, and the separate executable scripts
3349 now live in their own directory. Overall a great cleanup. The
3354 now live in their own directory. Overall a great cleanup. The
3350 manual was updated to use the new files, and setup.py has been
3355 manual was updated to use the new files, and setup.py has been
3351 fixed for this setup.
3356 fixed for this setup.
3352
3357
3353 * IPython/PyColorize.py (Parser.usage): made non-executable and
3358 * IPython/PyColorize.py (Parser.usage): made non-executable and
3354 created a pycolor wrapper around it to be included as a script.
3359 created a pycolor wrapper around it to be included as a script.
3355
3360
3356 2003-03-12 *** Released version 0.2.15pre2
3361 2003-03-12 *** Released version 0.2.15pre2
3357
3362
3358 2003-03-12 Fernando Perez <fperez@colorado.edu>
3363 2003-03-12 Fernando Perez <fperez@colorado.edu>
3359
3364
3360 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3365 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3361 long-standing problem with garbage characters in some terminals.
3366 long-standing problem with garbage characters in some terminals.
3362 The issue was really that the \001 and \002 escapes must _only_ be
3367 The issue was really that the \001 and \002 escapes must _only_ be
3363 passed to input prompts (which call readline), but _never_ to
3368 passed to input prompts (which call readline), but _never_ to
3364 normal text to be printed on screen. I changed ColorANSI to have
3369 normal text to be printed on screen. I changed ColorANSI to have
3365 two classes: TermColors and InputTermColors, each with the
3370 two classes: TermColors and InputTermColors, each with the
3366 appropriate escapes for input prompts or normal text. The code in
3371 appropriate escapes for input prompts or normal text. The code in
3367 Prompts.py got slightly more complicated, but this very old and
3372 Prompts.py got slightly more complicated, but this very old and
3368 annoying bug is finally fixed.
3373 annoying bug is finally fixed.
3369
3374
3370 All the credit for nailing down the real origin of this problem
3375 All the credit for nailing down the real origin of this problem
3371 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3376 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3372 *Many* thanks to him for spending quite a bit of effort on this.
3377 *Many* thanks to him for spending quite a bit of effort on this.
3373
3378
3374 2003-03-05 *** Released version 0.2.15pre1
3379 2003-03-05 *** Released version 0.2.15pre1
3375
3380
3376 2003-03-03 Fernando Perez <fperez@colorado.edu>
3381 2003-03-03 Fernando Perez <fperez@colorado.edu>
3377
3382
3378 * IPython/FakeModule.py: Moved the former _FakeModule to a
3383 * IPython/FakeModule.py: Moved the former _FakeModule to a
3379 separate file, because it's also needed by Magic (to fix a similar
3384 separate file, because it's also needed by Magic (to fix a similar
3380 pickle-related issue in @run).
3385 pickle-related issue in @run).
3381
3386
3382 2003-03-02 Fernando Perez <fperez@colorado.edu>
3387 2003-03-02 Fernando Perez <fperez@colorado.edu>
3383
3388
3384 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3389 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3385 the autocall option at runtime.
3390 the autocall option at runtime.
3386 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3391 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3387 across Magic.py to start separating Magic from InteractiveShell.
3392 across Magic.py to start separating Magic from InteractiveShell.
3388 (Magic._ofind): Fixed to return proper namespace for dotted
3393 (Magic._ofind): Fixed to return proper namespace for dotted
3389 names. Before, a dotted name would always return 'not currently
3394 names. Before, a dotted name would always return 'not currently
3390 defined', because it would find the 'parent'. s.x would be found,
3395 defined', because it would find the 'parent'. s.x would be found,
3391 but since 'x' isn't defined by itself, it would get confused.
3396 but since 'x' isn't defined by itself, it would get confused.
3392 (Magic.magic_run): Fixed pickling problems reported by Ralf
3397 (Magic.magic_run): Fixed pickling problems reported by Ralf
3393 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3398 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3394 that I'd used when Mike Heeter reported similar issues at the
3399 that I'd used when Mike Heeter reported similar issues at the
3395 top-level, but now for @run. It boils down to injecting the
3400 top-level, but now for @run. It boils down to injecting the
3396 namespace where code is being executed with something that looks
3401 namespace where code is being executed with something that looks
3397 enough like a module to fool pickle.dump(). Since a pickle stores
3402 enough like a module to fool pickle.dump(). Since a pickle stores
3398 a named reference to the importing module, we need this for
3403 a named reference to the importing module, we need this for
3399 pickles to save something sensible.
3404 pickles to save something sensible.
3400
3405
3401 * IPython/ipmaker.py (make_IPython): added an autocall option.
3406 * IPython/ipmaker.py (make_IPython): added an autocall option.
3402
3407
3403 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3408 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3404 the auto-eval code. Now autocalling is an option, and the code is
3409 the auto-eval code. Now autocalling is an option, and the code is
3405 also vastly safer. There is no more eval() involved at all.
3410 also vastly safer. There is no more eval() involved at all.
3406
3411
3407 2003-03-01 Fernando Perez <fperez@colorado.edu>
3412 2003-03-01 Fernando Perez <fperez@colorado.edu>
3408
3413
3409 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3414 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3410 dict with named keys instead of a tuple.
3415 dict with named keys instead of a tuple.
3411
3416
3412 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3417 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3413
3418
3414 * setup.py (make_shortcut): Fixed message about directories
3419 * setup.py (make_shortcut): Fixed message about directories
3415 created during Windows installation (the directories were ok, just
3420 created during Windows installation (the directories were ok, just
3416 the printed message was misleading). Thanks to Chris Liechti
3421 the printed message was misleading). Thanks to Chris Liechti
3417 <cliechti-AT-gmx.net> for the heads up.
3422 <cliechti-AT-gmx.net> for the heads up.
3418
3423
3419 2003-02-21 Fernando Perez <fperez@colorado.edu>
3424 2003-02-21 Fernando Perez <fperez@colorado.edu>
3420
3425
3421 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3426 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3422 of ValueError exception when checking for auto-execution. This
3427 of ValueError exception when checking for auto-execution. This
3423 one is raised by things like Numeric arrays arr.flat when the
3428 one is raised by things like Numeric arrays arr.flat when the
3424 array is non-contiguous.
3429 array is non-contiguous.
3425
3430
3426 2003-01-31 Fernando Perez <fperez@colorado.edu>
3431 2003-01-31 Fernando Perez <fperez@colorado.edu>
3427
3432
3428 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3433 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3429 not return any value at all (even though the command would get
3434 not return any value at all (even though the command would get
3430 executed).
3435 executed).
3431 (xsys): Flush stdout right after printing the command to ensure
3436 (xsys): Flush stdout right after printing the command to ensure
3432 proper ordering of commands and command output in the total
3437 proper ordering of commands and command output in the total
3433 output.
3438 output.
3434 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3439 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3435 system/getoutput as defaults. The old ones are kept for
3440 system/getoutput as defaults. The old ones are kept for
3436 compatibility reasons, so no code which uses this library needs
3441 compatibility reasons, so no code which uses this library needs
3437 changing.
3442 changing.
3438
3443
3439 2003-01-27 *** Released version 0.2.14
3444 2003-01-27 *** Released version 0.2.14
3440
3445
3441 2003-01-25 Fernando Perez <fperez@colorado.edu>
3446 2003-01-25 Fernando Perez <fperez@colorado.edu>
3442
3447
3443 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3448 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3444 functions defined in previous edit sessions could not be re-edited
3449 functions defined in previous edit sessions could not be re-edited
3445 (because the temp files were immediately removed). Now temp files
3450 (because the temp files were immediately removed). Now temp files
3446 are removed only at IPython's exit.
3451 are removed only at IPython's exit.
3447 (Magic.magic_run): Improved @run to perform shell-like expansions
3452 (Magic.magic_run): Improved @run to perform shell-like expansions
3448 on its arguments (~users and $VARS). With this, @run becomes more
3453 on its arguments (~users and $VARS). With this, @run becomes more
3449 like a normal command-line.
3454 like a normal command-line.
3450
3455
3451 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3456 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3452 bugs related to embedding and cleaned up that code. A fairly
3457 bugs related to embedding and cleaned up that code. A fairly
3453 important one was the impossibility to access the global namespace
3458 important one was the impossibility to access the global namespace
3454 through the embedded IPython (only local variables were visible).
3459 through the embedded IPython (only local variables were visible).
3455
3460
3456 2003-01-14 Fernando Perez <fperez@colorado.edu>
3461 2003-01-14 Fernando Perez <fperez@colorado.edu>
3457
3462
3458 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3463 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3459 auto-calling to be a bit more conservative. Now it doesn't get
3464 auto-calling to be a bit more conservative. Now it doesn't get
3460 triggered if any of '!=()<>' are in the rest of the input line, to
3465 triggered if any of '!=()<>' are in the rest of the input line, to
3461 allow comparing callables. Thanks to Alex for the heads up.
3466 allow comparing callables. Thanks to Alex for the heads up.
3462
3467
3463 2003-01-07 Fernando Perez <fperez@colorado.edu>
3468 2003-01-07 Fernando Perez <fperez@colorado.edu>
3464
3469
3465 * IPython/genutils.py (page): fixed estimation of the number of
3470 * IPython/genutils.py (page): fixed estimation of the number of
3466 lines in a string to be paged to simply count newlines. This
3471 lines in a string to be paged to simply count newlines. This
3467 prevents over-guessing due to embedded escape sequences. A better
3472 prevents over-guessing due to embedded escape sequences. A better
3468 long-term solution would involve stripping out the control chars
3473 long-term solution would involve stripping out the control chars
3469 for the count, but it's potentially so expensive I just don't
3474 for the count, but it's potentially so expensive I just don't
3470 think it's worth doing.
3475 think it's worth doing.
3471
3476
3472 2002-12-19 *** Released version 0.2.14pre50
3477 2002-12-19 *** Released version 0.2.14pre50
3473
3478
3474 2002-12-19 Fernando Perez <fperez@colorado.edu>
3479 2002-12-19 Fernando Perez <fperez@colorado.edu>
3475
3480
3476 * tools/release (version): Changed release scripts to inform
3481 * tools/release (version): Changed release scripts to inform
3477 Andrea and build a NEWS file with a list of recent changes.
3482 Andrea and build a NEWS file with a list of recent changes.
3478
3483
3479 * IPython/ColorANSI.py (__all__): changed terminal detection
3484 * IPython/ColorANSI.py (__all__): changed terminal detection
3480 code. Seems to work better for xterms without breaking
3485 code. Seems to work better for xterms without breaking
3481 konsole. Will need more testing to determine if WinXP and Mac OSX
3486 konsole. Will need more testing to determine if WinXP and Mac OSX
3482 also work ok.
3487 also work ok.
3483
3488
3484 2002-12-18 *** Released version 0.2.14pre49
3489 2002-12-18 *** Released version 0.2.14pre49
3485
3490
3486 2002-12-18 Fernando Perez <fperez@colorado.edu>
3491 2002-12-18 Fernando Perez <fperez@colorado.edu>
3487
3492
3488 * Docs: added new info about Mac OSX, from Andrea.
3493 * Docs: added new info about Mac OSX, from Andrea.
3489
3494
3490 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3495 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3491 allow direct plotting of python strings whose format is the same
3496 allow direct plotting of python strings whose format is the same
3492 of gnuplot data files.
3497 of gnuplot data files.
3493
3498
3494 2002-12-16 Fernando Perez <fperez@colorado.edu>
3499 2002-12-16 Fernando Perez <fperez@colorado.edu>
3495
3500
3496 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3501 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3497 value of exit question to be acknowledged.
3502 value of exit question to be acknowledged.
3498
3503
3499 2002-12-03 Fernando Perez <fperez@colorado.edu>
3504 2002-12-03 Fernando Perez <fperez@colorado.edu>
3500
3505
3501 * IPython/ipmaker.py: removed generators, which had been added
3506 * IPython/ipmaker.py: removed generators, which had been added
3502 by mistake in an earlier debugging run. This was causing trouble
3507 by mistake in an earlier debugging run. This was causing trouble
3503 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3508 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3504 for pointing this out.
3509 for pointing this out.
3505
3510
3506 2002-11-17 Fernando Perez <fperez@colorado.edu>
3511 2002-11-17 Fernando Perez <fperez@colorado.edu>
3507
3512
3508 * Manual: updated the Gnuplot section.
3513 * Manual: updated the Gnuplot section.
3509
3514
3510 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3515 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3511 a much better split of what goes in Runtime and what goes in
3516 a much better split of what goes in Runtime and what goes in
3512 Interactive.
3517 Interactive.
3513
3518
3514 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3519 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3515 being imported from iplib.
3520 being imported from iplib.
3516
3521
3517 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3522 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3518 for command-passing. Now the global Gnuplot instance is called
3523 for command-passing. Now the global Gnuplot instance is called
3519 'gp' instead of 'g', which was really a far too fragile and
3524 'gp' instead of 'g', which was really a far too fragile and
3520 common name.
3525 common name.
3521
3526
3522 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3527 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3523 bounding boxes generated by Gnuplot for square plots.
3528 bounding boxes generated by Gnuplot for square plots.
3524
3529
3525 * IPython/genutils.py (popkey): new function added. I should
3530 * IPython/genutils.py (popkey): new function added. I should
3526 suggest this on c.l.py as a dict method, it seems useful.
3531 suggest this on c.l.py as a dict method, it seems useful.
3527
3532
3528 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3533 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3529 to transparently handle PostScript generation. MUCH better than
3534 to transparently handle PostScript generation. MUCH better than
3530 the previous plot_eps/replot_eps (which I removed now). The code
3535 the previous plot_eps/replot_eps (which I removed now). The code
3531 is also fairly clean and well documented now (including
3536 is also fairly clean and well documented now (including
3532 docstrings).
3537 docstrings).
3533
3538
3534 2002-11-13 Fernando Perez <fperez@colorado.edu>
3539 2002-11-13 Fernando Perez <fperez@colorado.edu>
3535
3540
3536 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3541 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3537 (inconsistent with options).
3542 (inconsistent with options).
3538
3543
3539 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3544 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3540 manually disabled, I don't know why. Fixed it.
3545 manually disabled, I don't know why. Fixed it.
3541 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3546 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3542 eps output.
3547 eps output.
3543
3548
3544 2002-11-12 Fernando Perez <fperez@colorado.edu>
3549 2002-11-12 Fernando Perez <fperez@colorado.edu>
3545
3550
3546 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3551 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3547 don't propagate up to caller. Fixes crash reported by François
3552 don't propagate up to caller. Fixes crash reported by François
3548 Pinard.
3553 Pinard.
3549
3554
3550 2002-11-09 Fernando Perez <fperez@colorado.edu>
3555 2002-11-09 Fernando Perez <fperez@colorado.edu>
3551
3556
3552 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3557 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3553 history file for new users.
3558 history file for new users.
3554 (make_IPython): fixed bug where initial install would leave the
3559 (make_IPython): fixed bug where initial install would leave the
3555 user running in the .ipython dir.
3560 user running in the .ipython dir.
3556 (make_IPython): fixed bug where config dir .ipython would be
3561 (make_IPython): fixed bug where config dir .ipython would be
3557 created regardless of the given -ipythondir option. Thanks to Cory
3562 created regardless of the given -ipythondir option. Thanks to Cory
3558 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3563 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3559
3564
3560 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3565 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3561 type confirmations. Will need to use it in all of IPython's code
3566 type confirmations. Will need to use it in all of IPython's code
3562 consistently.
3567 consistently.
3563
3568
3564 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3569 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3565 context to print 31 lines instead of the default 5. This will make
3570 context to print 31 lines instead of the default 5. This will make
3566 the crash reports extremely detailed in case the problem is in
3571 the crash reports extremely detailed in case the problem is in
3567 libraries I don't have access to.
3572 libraries I don't have access to.
3568
3573
3569 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3574 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3570 line of defense' code to still crash, but giving users fair
3575 line of defense' code to still crash, but giving users fair
3571 warning. I don't want internal errors to go unreported: if there's
3576 warning. I don't want internal errors to go unreported: if there's
3572 an internal problem, IPython should crash and generate a full
3577 an internal problem, IPython should crash and generate a full
3573 report.
3578 report.
3574
3579
3575 2002-11-08 Fernando Perez <fperez@colorado.edu>
3580 2002-11-08 Fernando Perez <fperez@colorado.edu>
3576
3581
3577 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3582 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3578 otherwise uncaught exceptions which can appear if people set
3583 otherwise uncaught exceptions which can appear if people set
3579 sys.stdout to something badly broken. Thanks to a crash report
3584 sys.stdout to something badly broken. Thanks to a crash report
3580 from henni-AT-mail.brainbot.com.
3585 from henni-AT-mail.brainbot.com.
3581
3586
3582 2002-11-04 Fernando Perez <fperez@colorado.edu>
3587 2002-11-04 Fernando Perez <fperez@colorado.edu>
3583
3588
3584 * IPython/iplib.py (InteractiveShell.interact): added
3589 * IPython/iplib.py (InteractiveShell.interact): added
3585 __IPYTHON__active to the builtins. It's a flag which goes on when
3590 __IPYTHON__active to the builtins. It's a flag which goes on when
3586 the interaction starts and goes off again when it stops. This
3591 the interaction starts and goes off again when it stops. This
3587 allows embedding code to detect being inside IPython. Before this
3592 allows embedding code to detect being inside IPython. Before this
3588 was done via __IPYTHON__, but that only shows that an IPython
3593 was done via __IPYTHON__, but that only shows that an IPython
3589 instance has been created.
3594 instance has been created.
3590
3595
3591 * IPython/Magic.py (Magic.magic_env): I realized that in a
3596 * IPython/Magic.py (Magic.magic_env): I realized that in a
3592 UserDict, instance.data holds the data as a normal dict. So I
3597 UserDict, instance.data holds the data as a normal dict. So I
3593 modified @env to return os.environ.data instead of rebuilding a
3598 modified @env to return os.environ.data instead of rebuilding a
3594 dict by hand.
3599 dict by hand.
3595
3600
3596 2002-11-02 Fernando Perez <fperez@colorado.edu>
3601 2002-11-02 Fernando Perez <fperez@colorado.edu>
3597
3602
3598 * IPython/genutils.py (warn): changed so that level 1 prints no
3603 * IPython/genutils.py (warn): changed so that level 1 prints no
3599 header. Level 2 is now the default (with 'WARNING' header, as
3604 header. Level 2 is now the default (with 'WARNING' header, as
3600 before). I think I tracked all places where changes were needed in
3605 before). I think I tracked all places where changes were needed in
3601 IPython, but outside code using the old level numbering may have
3606 IPython, but outside code using the old level numbering may have
3602 broken.
3607 broken.
3603
3608
3604 * IPython/iplib.py (InteractiveShell.runcode): added this to
3609 * IPython/iplib.py (InteractiveShell.runcode): added this to
3605 handle the tracebacks in SystemExit traps correctly. The previous
3610 handle the tracebacks in SystemExit traps correctly. The previous
3606 code (through interact) was printing more of the stack than
3611 code (through interact) was printing more of the stack than
3607 necessary, showing IPython internal code to the user.
3612 necessary, showing IPython internal code to the user.
3608
3613
3609 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3614 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3610 default. Now that the default at the confirmation prompt is yes,
3615 default. Now that the default at the confirmation prompt is yes,
3611 it's not so intrusive. François' argument that ipython sessions
3616 it's not so intrusive. François' argument that ipython sessions
3612 tend to be complex enough not to lose them from an accidental C-d,
3617 tend to be complex enough not to lose them from an accidental C-d,
3613 is a valid one.
3618 is a valid one.
3614
3619
3615 * IPython/iplib.py (InteractiveShell.interact): added a
3620 * IPython/iplib.py (InteractiveShell.interact): added a
3616 showtraceback() call to the SystemExit trap, and modified the exit
3621 showtraceback() call to the SystemExit trap, and modified the exit
3617 confirmation to have yes as the default.
3622 confirmation to have yes as the default.
3618
3623
3619 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3624 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3620 this file. It's been gone from the code for a long time, this was
3625 this file. It's been gone from the code for a long time, this was
3621 simply leftover junk.
3626 simply leftover junk.
3622
3627
3623 2002-11-01 Fernando Perez <fperez@colorado.edu>
3628 2002-11-01 Fernando Perez <fperez@colorado.edu>
3624
3629
3625 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3630 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3626 added. If set, IPython now traps EOF and asks for
3631 added. If set, IPython now traps EOF and asks for
3627 confirmation. After a request by François Pinard.
3632 confirmation. After a request by François Pinard.
3628
3633
3629 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3634 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3630 of @abort, and with a new (better) mechanism for handling the
3635 of @abort, and with a new (better) mechanism for handling the
3631 exceptions.
3636 exceptions.
3632
3637
3633 2002-10-27 Fernando Perez <fperez@colorado.edu>
3638 2002-10-27 Fernando Perez <fperez@colorado.edu>
3634
3639
3635 * IPython/usage.py (__doc__): updated the --help information and
3640 * IPython/usage.py (__doc__): updated the --help information and
3636 the ipythonrc file to indicate that -log generates
3641 the ipythonrc file to indicate that -log generates
3637 ./ipython.log. Also fixed the corresponding info in @logstart.
3642 ./ipython.log. Also fixed the corresponding info in @logstart.
3638 This and several other fixes in the manuals thanks to reports by
3643 This and several other fixes in the manuals thanks to reports by
3639 François Pinard <pinard-AT-iro.umontreal.ca>.
3644 François Pinard <pinard-AT-iro.umontreal.ca>.
3640
3645
3641 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3646 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3642 refer to @logstart (instead of @log, which doesn't exist).
3647 refer to @logstart (instead of @log, which doesn't exist).
3643
3648
3644 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3649 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3645 AttributeError crash. Thanks to Christopher Armstrong
3650 AttributeError crash. Thanks to Christopher Armstrong
3646 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3651 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3647 introduced recently (in 0.2.14pre37) with the fix to the eval
3652 introduced recently (in 0.2.14pre37) with the fix to the eval
3648 problem mentioned below.
3653 problem mentioned below.
3649
3654
3650 2002-10-17 Fernando Perez <fperez@colorado.edu>
3655 2002-10-17 Fernando Perez <fperez@colorado.edu>
3651
3656
3652 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3657 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3653 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3658 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3654
3659
3655 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3660 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3656 this function to fix a problem reported by Alex Schmolck. He saw
3661 this function to fix a problem reported by Alex Schmolck. He saw
3657 it with list comprehensions and generators, which were getting
3662 it with list comprehensions and generators, which were getting
3658 called twice. The real problem was an 'eval' call in testing for
3663 called twice. The real problem was an 'eval' call in testing for
3659 automagic which was evaluating the input line silently.
3664 automagic which was evaluating the input line silently.
3660
3665
3661 This is a potentially very nasty bug, if the input has side
3666 This is a potentially very nasty bug, if the input has side
3662 effects which must not be repeated. The code is much cleaner now,
3667 effects which must not be repeated. The code is much cleaner now,
3663 without any blanket 'except' left and with a regexp test for
3668 without any blanket 'except' left and with a regexp test for
3664 actual function names.
3669 actual function names.
3665
3670
3666 But an eval remains, which I'm not fully comfortable with. I just
3671 But an eval remains, which I'm not fully comfortable with. I just
3667 don't know how to find out if an expression could be a callable in
3672 don't know how to find out if an expression could be a callable in
3668 the user's namespace without doing an eval on the string. However
3673 the user's namespace without doing an eval on the string. However
3669 that string is now much more strictly checked so that no code
3674 that string is now much more strictly checked so that no code
3670 slips by, so the eval should only happen for things that can
3675 slips by, so the eval should only happen for things that can
3671 really be only function/method names.
3676 really be only function/method names.
3672
3677
3673 2002-10-15 Fernando Perez <fperez@colorado.edu>
3678 2002-10-15 Fernando Perez <fperez@colorado.edu>
3674
3679
3675 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3680 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3676 OSX information to main manual, removed README_Mac_OSX file from
3681 OSX information to main manual, removed README_Mac_OSX file from
3677 distribution. Also updated credits for recent additions.
3682 distribution. Also updated credits for recent additions.
3678
3683
3679 2002-10-10 Fernando Perez <fperez@colorado.edu>
3684 2002-10-10 Fernando Perez <fperez@colorado.edu>
3680
3685
3681 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3686 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3682 terminal-related issues. Many thanks to Andrea Riciputi
3687 terminal-related issues. Many thanks to Andrea Riciputi
3683 <andrea.riciputi-AT-libero.it> for writing it.
3688 <andrea.riciputi-AT-libero.it> for writing it.
3684
3689
3685 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3690 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3686 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3691 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3687
3692
3688 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3693 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3689 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3694 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3690 <syver-en-AT-online.no> who both submitted patches for this problem.
3695 <syver-en-AT-online.no> who both submitted patches for this problem.
3691
3696
3692 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3697 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3693 global embedding to make sure that things don't overwrite user
3698 global embedding to make sure that things don't overwrite user
3694 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3699 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3695
3700
3696 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3701 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3697 compatibility. Thanks to Hayden Callow
3702 compatibility. Thanks to Hayden Callow
3698 <h.callow-AT-elec.canterbury.ac.nz>
3703 <h.callow-AT-elec.canterbury.ac.nz>
3699
3704
3700 2002-10-04 Fernando Perez <fperez@colorado.edu>
3705 2002-10-04 Fernando Perez <fperez@colorado.edu>
3701
3706
3702 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3707 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3703 Gnuplot.File objects.
3708 Gnuplot.File objects.
3704
3709
3705 2002-07-23 Fernando Perez <fperez@colorado.edu>
3710 2002-07-23 Fernando Perez <fperez@colorado.edu>
3706
3711
3707 * IPython/genutils.py (timing): Added timings() and timing() for
3712 * IPython/genutils.py (timing): Added timings() and timing() for
3708 quick access to the most commonly needed data, the execution
3713 quick access to the most commonly needed data, the execution
3709 times. Old timing() renamed to timings_out().
3714 times. Old timing() renamed to timings_out().
3710
3715
3711 2002-07-18 Fernando Perez <fperez@colorado.edu>
3716 2002-07-18 Fernando Perez <fperez@colorado.edu>
3712
3717
3713 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3718 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3714 bug with nested instances disrupting the parent's tab completion.
3719 bug with nested instances disrupting the parent's tab completion.
3715
3720
3716 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3721 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3717 all_completions code to begin the emacs integration.
3722 all_completions code to begin the emacs integration.
3718
3723
3719 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3724 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3720 argument to allow titling individual arrays when plotting.
3725 argument to allow titling individual arrays when plotting.
3721
3726
3722 2002-07-15 Fernando Perez <fperez@colorado.edu>
3727 2002-07-15 Fernando Perez <fperez@colorado.edu>
3723
3728
3724 * setup.py (make_shortcut): changed to retrieve the value of
3729 * setup.py (make_shortcut): changed to retrieve the value of
3725 'Program Files' directory from the registry (this value changes in
3730 'Program Files' directory from the registry (this value changes in
3726 non-english versions of Windows). Thanks to Thomas Fanslau
3731 non-english versions of Windows). Thanks to Thomas Fanslau
3727 <tfanslau-AT-gmx.de> for the report.
3732 <tfanslau-AT-gmx.de> for the report.
3728
3733
3729 2002-07-10 Fernando Perez <fperez@colorado.edu>
3734 2002-07-10 Fernando Perez <fperez@colorado.edu>
3730
3735
3731 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3736 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3732 a bug in pdb, which crashes if a line with only whitespace is
3737 a bug in pdb, which crashes if a line with only whitespace is
3733 entered. Bug report submitted to sourceforge.
3738 entered. Bug report submitted to sourceforge.
3734
3739
3735 2002-07-09 Fernando Perez <fperez@colorado.edu>
3740 2002-07-09 Fernando Perez <fperez@colorado.edu>
3736
3741
3737 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3742 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3738 reporting exceptions (it's a bug in inspect.py, I just set a
3743 reporting exceptions (it's a bug in inspect.py, I just set a
3739 workaround).
3744 workaround).
3740
3745
3741 2002-07-08 Fernando Perez <fperez@colorado.edu>
3746 2002-07-08 Fernando Perez <fperez@colorado.edu>
3742
3747
3743 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3748 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3744 __IPYTHON__ in __builtins__ to show up in user_ns.
3749 __IPYTHON__ in __builtins__ to show up in user_ns.
3745
3750
3746 2002-07-03 Fernando Perez <fperez@colorado.edu>
3751 2002-07-03 Fernando Perez <fperez@colorado.edu>
3747
3752
3748 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3753 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3749 name from @gp_set_instance to @gp_set_default.
3754 name from @gp_set_instance to @gp_set_default.
3750
3755
3751 * IPython/ipmaker.py (make_IPython): default editor value set to
3756 * IPython/ipmaker.py (make_IPython): default editor value set to
3752 '0' (a string), to match the rc file. Otherwise will crash when
3757 '0' (a string), to match the rc file. Otherwise will crash when
3753 .strip() is called on it.
3758 .strip() is called on it.
3754
3759
3755
3760
3756 2002-06-28 Fernando Perez <fperez@colorado.edu>
3761 2002-06-28 Fernando Perez <fperez@colorado.edu>
3757
3762
3758 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3763 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3759 of files in current directory when a file is executed via
3764 of files in current directory when a file is executed via
3760 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3765 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3761
3766
3762 * setup.py (manfiles): fix for rpm builds, submitted by RA
3767 * setup.py (manfiles): fix for rpm builds, submitted by RA
3763 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3768 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3764
3769
3765 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3770 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3766 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3771 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3767 string!). A. Schmolck caught this one.
3772 string!). A. Schmolck caught this one.
3768
3773
3769 2002-06-27 Fernando Perez <fperez@colorado.edu>
3774 2002-06-27 Fernando Perez <fperez@colorado.edu>
3770
3775
3771 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3776 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3772 defined files at the cmd line. __name__ wasn't being set to
3777 defined files at the cmd line. __name__ wasn't being set to
3773 __main__.
3778 __main__.
3774
3779
3775 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3780 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3776 regular lists and tuples besides Numeric arrays.
3781 regular lists and tuples besides Numeric arrays.
3777
3782
3778 * IPython/Prompts.py (CachedOutput.__call__): Added output
3783 * IPython/Prompts.py (CachedOutput.__call__): Added output
3779 supression for input ending with ';'. Similar to Mathematica and
3784 supression for input ending with ';'. Similar to Mathematica and
3780 Matlab. The _* vars and Out[] list are still updated, just like
3785 Matlab. The _* vars and Out[] list are still updated, just like
3781 Mathematica behaves.
3786 Mathematica behaves.
3782
3787
3783 2002-06-25 Fernando Perez <fperez@colorado.edu>
3788 2002-06-25 Fernando Perez <fperez@colorado.edu>
3784
3789
3785 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3790 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3786 .ini extensions for profiels under Windows.
3791 .ini extensions for profiels under Windows.
3787
3792
3788 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3793 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3789 string form. Fix contributed by Alexander Schmolck
3794 string form. Fix contributed by Alexander Schmolck
3790 <a.schmolck-AT-gmx.net>
3795 <a.schmolck-AT-gmx.net>
3791
3796
3792 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3797 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3793 pre-configured Gnuplot instance.
3798 pre-configured Gnuplot instance.
3794
3799
3795 2002-06-21 Fernando Perez <fperez@colorado.edu>
3800 2002-06-21 Fernando Perez <fperez@colorado.edu>
3796
3801
3797 * IPython/numutils.py (exp_safe): new function, works around the
3802 * IPython/numutils.py (exp_safe): new function, works around the
3798 underflow problems in Numeric.
3803 underflow problems in Numeric.
3799 (log2): New fn. Safe log in base 2: returns exact integer answer
3804 (log2): New fn. Safe log in base 2: returns exact integer answer
3800 for exact integer powers of 2.
3805 for exact integer powers of 2.
3801
3806
3802 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3807 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3803 properly.
3808 properly.
3804
3809
3805 2002-06-20 Fernando Perez <fperez@colorado.edu>
3810 2002-06-20 Fernando Perez <fperez@colorado.edu>
3806
3811
3807 * IPython/genutils.py (timing): new function like
3812 * IPython/genutils.py (timing): new function like
3808 Mathematica's. Similar to time_test, but returns more info.
3813 Mathematica's. Similar to time_test, but returns more info.
3809
3814
3810 2002-06-18 Fernando Perez <fperez@colorado.edu>
3815 2002-06-18 Fernando Perez <fperez@colorado.edu>
3811
3816
3812 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3817 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3813 according to Mike Heeter's suggestions.
3818 according to Mike Heeter's suggestions.
3814
3819
3815 2002-06-16 Fernando Perez <fperez@colorado.edu>
3820 2002-06-16 Fernando Perez <fperez@colorado.edu>
3816
3821
3817 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3822 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3818 system. GnuplotMagic is gone as a user-directory option. New files
3823 system. GnuplotMagic is gone as a user-directory option. New files
3819 make it easier to use all the gnuplot stuff both from external
3824 make it easier to use all the gnuplot stuff both from external
3820 programs as well as from IPython. Had to rewrite part of
3825 programs as well as from IPython. Had to rewrite part of
3821 hardcopy() b/c of a strange bug: often the ps files simply don't
3826 hardcopy() b/c of a strange bug: often the ps files simply don't
3822 get created, and require a repeat of the command (often several
3827 get created, and require a repeat of the command (often several
3823 times).
3828 times).
3824
3829
3825 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3830 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3826 resolve output channel at call time, so that if sys.stderr has
3831 resolve output channel at call time, so that if sys.stderr has
3827 been redirected by user this gets honored.
3832 been redirected by user this gets honored.
3828
3833
3829 2002-06-13 Fernando Perez <fperez@colorado.edu>
3834 2002-06-13 Fernando Perez <fperez@colorado.edu>
3830
3835
3831 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3836 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3832 IPShell. Kept a copy with the old names to avoid breaking people's
3837 IPShell. Kept a copy with the old names to avoid breaking people's
3833 embedded code.
3838 embedded code.
3834
3839
3835 * IPython/ipython: simplified it to the bare minimum after
3840 * IPython/ipython: simplified it to the bare minimum after
3836 Holger's suggestions. Added info about how to use it in
3841 Holger's suggestions. Added info about how to use it in
3837 PYTHONSTARTUP.
3842 PYTHONSTARTUP.
3838
3843
3839 * IPython/Shell.py (IPythonShell): changed the options passing
3844 * IPython/Shell.py (IPythonShell): changed the options passing
3840 from a string with funky %s replacements to a straight list. Maybe
3845 from a string with funky %s replacements to a straight list. Maybe
3841 a bit more typing, but it follows sys.argv conventions, so there's
3846 a bit more typing, but it follows sys.argv conventions, so there's
3842 less special-casing to remember.
3847 less special-casing to remember.
3843
3848
3844 2002-06-12 Fernando Perez <fperez@colorado.edu>
3849 2002-06-12 Fernando Perez <fperez@colorado.edu>
3845
3850
3846 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3851 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3847 command. Thanks to a suggestion by Mike Heeter.
3852 command. Thanks to a suggestion by Mike Heeter.
3848 (Magic.magic_pfile): added behavior to look at filenames if given
3853 (Magic.magic_pfile): added behavior to look at filenames if given
3849 arg is not a defined object.
3854 arg is not a defined object.
3850 (Magic.magic_save): New @save function to save code snippets. Also
3855 (Magic.magic_save): New @save function to save code snippets. Also
3851 a Mike Heeter idea.
3856 a Mike Heeter idea.
3852
3857
3853 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3858 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3854 plot() and replot(). Much more convenient now, especially for
3859 plot() and replot(). Much more convenient now, especially for
3855 interactive use.
3860 interactive use.
3856
3861
3857 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3862 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3858 filenames.
3863 filenames.
3859
3864
3860 2002-06-02 Fernando Perez <fperez@colorado.edu>
3865 2002-06-02 Fernando Perez <fperez@colorado.edu>
3861
3866
3862 * IPython/Struct.py (Struct.__init__): modified to admit
3867 * IPython/Struct.py (Struct.__init__): modified to admit
3863 initialization via another struct.
3868 initialization via another struct.
3864
3869
3865 * IPython/genutils.py (SystemExec.__init__): New stateful
3870 * IPython/genutils.py (SystemExec.__init__): New stateful
3866 interface to xsys and bq. Useful for writing system scripts.
3871 interface to xsys and bq. Useful for writing system scripts.
3867
3872
3868 2002-05-30 Fernando Perez <fperez@colorado.edu>
3873 2002-05-30 Fernando Perez <fperez@colorado.edu>
3869
3874
3870 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3875 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3871 documents. This will make the user download smaller (it's getting
3876 documents. This will make the user download smaller (it's getting
3872 too big).
3877 too big).
3873
3878
3874 2002-05-29 Fernando Perez <fperez@colorado.edu>
3879 2002-05-29 Fernando Perez <fperez@colorado.edu>
3875
3880
3876 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3881 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3877 fix problems with shelve and pickle. Seems to work, but I don't
3882 fix problems with shelve and pickle. Seems to work, but I don't
3878 know if corner cases break it. Thanks to Mike Heeter
3883 know if corner cases break it. Thanks to Mike Heeter
3879 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3884 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3880
3885
3881 2002-05-24 Fernando Perez <fperez@colorado.edu>
3886 2002-05-24 Fernando Perez <fperez@colorado.edu>
3882
3887
3883 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3888 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3884 macros having broken.
3889 macros having broken.
3885
3890
3886 2002-05-21 Fernando Perez <fperez@colorado.edu>
3891 2002-05-21 Fernando Perez <fperez@colorado.edu>
3887
3892
3888 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3893 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3889 introduced logging bug: all history before logging started was
3894 introduced logging bug: all history before logging started was
3890 being written one character per line! This came from the redesign
3895 being written one character per line! This came from the redesign
3891 of the input history as a special list which slices to strings,
3896 of the input history as a special list which slices to strings,
3892 not to lists.
3897 not to lists.
3893
3898
3894 2002-05-20 Fernando Perez <fperez@colorado.edu>
3899 2002-05-20 Fernando Perez <fperez@colorado.edu>
3895
3900
3896 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3901 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3897 be an attribute of all classes in this module. The design of these
3902 be an attribute of all classes in this module. The design of these
3898 classes needs some serious overhauling.
3903 classes needs some serious overhauling.
3899
3904
3900 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3905 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3901 which was ignoring '_' in option names.
3906 which was ignoring '_' in option names.
3902
3907
3903 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3908 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3904 'Verbose_novars' to 'Context' and made it the new default. It's a
3909 'Verbose_novars' to 'Context' and made it the new default. It's a
3905 bit more readable and also safer than verbose.
3910 bit more readable and also safer than verbose.
3906
3911
3907 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3912 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3908 triple-quoted strings.
3913 triple-quoted strings.
3909
3914
3910 * IPython/OInspect.py (__all__): new module exposing the object
3915 * IPython/OInspect.py (__all__): new module exposing the object
3911 introspection facilities. Now the corresponding magics are dummy
3916 introspection facilities. Now the corresponding magics are dummy
3912 wrappers around this. Having this module will make it much easier
3917 wrappers around this. Having this module will make it much easier
3913 to put these functions into our modified pdb.
3918 to put these functions into our modified pdb.
3914 This new object inspector system uses the new colorizing module,
3919 This new object inspector system uses the new colorizing module,
3915 so source code and other things are nicely syntax highlighted.
3920 so source code and other things are nicely syntax highlighted.
3916
3921
3917 2002-05-18 Fernando Perez <fperez@colorado.edu>
3922 2002-05-18 Fernando Perez <fperez@colorado.edu>
3918
3923
3919 * IPython/ColorANSI.py: Split the coloring tools into a separate
3924 * IPython/ColorANSI.py: Split the coloring tools into a separate
3920 module so I can use them in other code easier (they were part of
3925 module so I can use them in other code easier (they were part of
3921 ultraTB).
3926 ultraTB).
3922
3927
3923 2002-05-17 Fernando Perez <fperez@colorado.edu>
3928 2002-05-17 Fernando Perez <fperez@colorado.edu>
3924
3929
3925 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3930 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3926 fixed it to set the global 'g' also to the called instance, as
3931 fixed it to set the global 'g' also to the called instance, as
3927 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3932 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3928 user's 'g' variables).
3933 user's 'g' variables).
3929
3934
3930 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3935 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3931 global variables (aliases to _ih,_oh) so that users which expect
3936 global variables (aliases to _ih,_oh) so that users which expect
3932 In[5] or Out[7] to work aren't unpleasantly surprised.
3937 In[5] or Out[7] to work aren't unpleasantly surprised.
3933 (InputList.__getslice__): new class to allow executing slices of
3938 (InputList.__getslice__): new class to allow executing slices of
3934 input history directly. Very simple class, complements the use of
3939 input history directly. Very simple class, complements the use of
3935 macros.
3940 macros.
3936
3941
3937 2002-05-16 Fernando Perez <fperez@colorado.edu>
3942 2002-05-16 Fernando Perez <fperez@colorado.edu>
3938
3943
3939 * setup.py (docdirbase): make doc directory be just doc/IPython
3944 * setup.py (docdirbase): make doc directory be just doc/IPython
3940 without version numbers, it will reduce clutter for users.
3945 without version numbers, it will reduce clutter for users.
3941
3946
3942 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3947 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3943 execfile call to prevent possible memory leak. See for details:
3948 execfile call to prevent possible memory leak. See for details:
3944 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3949 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3945
3950
3946 2002-05-15 Fernando Perez <fperez@colorado.edu>
3951 2002-05-15 Fernando Perez <fperez@colorado.edu>
3947
3952
3948 * IPython/Magic.py (Magic.magic_psource): made the object
3953 * IPython/Magic.py (Magic.magic_psource): made the object
3949 introspection names be more standard: pdoc, pdef, pfile and
3954 introspection names be more standard: pdoc, pdef, pfile and
3950 psource. They all print/page their output, and it makes
3955 psource. They all print/page their output, and it makes
3951 remembering them easier. Kept old names for compatibility as
3956 remembering them easier. Kept old names for compatibility as
3952 aliases.
3957 aliases.
3953
3958
3954 2002-05-14 Fernando Perez <fperez@colorado.edu>
3959 2002-05-14 Fernando Perez <fperez@colorado.edu>
3955
3960
3956 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3961 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3957 what the mouse problem was. The trick is to use gnuplot with temp
3962 what the mouse problem was. The trick is to use gnuplot with temp
3958 files and NOT with pipes (for data communication), because having
3963 files and NOT with pipes (for data communication), because having
3959 both pipes and the mouse on is bad news.
3964 both pipes and the mouse on is bad news.
3960
3965
3961 2002-05-13 Fernando Perez <fperez@colorado.edu>
3966 2002-05-13 Fernando Perez <fperez@colorado.edu>
3962
3967
3963 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3968 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3964 bug. Information would be reported about builtins even when
3969 bug. Information would be reported about builtins even when
3965 user-defined functions overrode them.
3970 user-defined functions overrode them.
3966
3971
3967 2002-05-11 Fernando Perez <fperez@colorado.edu>
3972 2002-05-11 Fernando Perez <fperez@colorado.edu>
3968
3973
3969 * IPython/__init__.py (__all__): removed FlexCompleter from
3974 * IPython/__init__.py (__all__): removed FlexCompleter from
3970 __all__ so that things don't fail in platforms without readline.
3975 __all__ so that things don't fail in platforms without readline.
3971
3976
3972 2002-05-10 Fernando Perez <fperez@colorado.edu>
3977 2002-05-10 Fernando Perez <fperez@colorado.edu>
3973
3978
3974 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3979 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3975 it requires Numeric, effectively making Numeric a dependency for
3980 it requires Numeric, effectively making Numeric a dependency for
3976 IPython.
3981 IPython.
3977
3982
3978 * Released 0.2.13
3983 * Released 0.2.13
3979
3984
3980 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3985 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3981 profiler interface. Now all the major options from the profiler
3986 profiler interface. Now all the major options from the profiler
3982 module are directly supported in IPython, both for single
3987 module are directly supported in IPython, both for single
3983 expressions (@prun) and for full programs (@run -p).
3988 expressions (@prun) and for full programs (@run -p).
3984
3989
3985 2002-05-09 Fernando Perez <fperez@colorado.edu>
3990 2002-05-09 Fernando Perez <fperez@colorado.edu>
3986
3991
3987 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3992 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3988 magic properly formatted for screen.
3993 magic properly formatted for screen.
3989
3994
3990 * setup.py (make_shortcut): Changed things to put pdf version in
3995 * setup.py (make_shortcut): Changed things to put pdf version in
3991 doc/ instead of doc/manual (had to change lyxport a bit).
3996 doc/ instead of doc/manual (had to change lyxport a bit).
3992
3997
3993 * IPython/Magic.py (Profile.string_stats): made profile runs go
3998 * IPython/Magic.py (Profile.string_stats): made profile runs go
3994 through pager (they are long and a pager allows searching, saving,
3999 through pager (they are long and a pager allows searching, saving,
3995 etc.)
4000 etc.)
3996
4001
3997 2002-05-08 Fernando Perez <fperez@colorado.edu>
4002 2002-05-08 Fernando Perez <fperez@colorado.edu>
3998
4003
3999 * Released 0.2.12
4004 * Released 0.2.12
4000
4005
4001 2002-05-06 Fernando Perez <fperez@colorado.edu>
4006 2002-05-06 Fernando Perez <fperez@colorado.edu>
4002
4007
4003 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4008 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4004 introduced); 'hist n1 n2' was broken.
4009 introduced); 'hist n1 n2' was broken.
4005 (Magic.magic_pdb): added optional on/off arguments to @pdb
4010 (Magic.magic_pdb): added optional on/off arguments to @pdb
4006 (Magic.magic_run): added option -i to @run, which executes code in
4011 (Magic.magic_run): added option -i to @run, which executes code in
4007 the IPython namespace instead of a clean one. Also added @irun as
4012 the IPython namespace instead of a clean one. Also added @irun as
4008 an alias to @run -i.
4013 an alias to @run -i.
4009
4014
4010 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4015 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4011 fixed (it didn't really do anything, the namespaces were wrong).
4016 fixed (it didn't really do anything, the namespaces were wrong).
4012
4017
4013 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4018 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4014
4019
4015 * IPython/__init__.py (__all__): Fixed package namespace, now
4020 * IPython/__init__.py (__all__): Fixed package namespace, now
4016 'import IPython' does give access to IPython.<all> as
4021 'import IPython' does give access to IPython.<all> as
4017 expected. Also renamed __release__ to Release.
4022 expected. Also renamed __release__ to Release.
4018
4023
4019 * IPython/Debugger.py (__license__): created new Pdb class which
4024 * IPython/Debugger.py (__license__): created new Pdb class which
4020 functions like a drop-in for the normal pdb.Pdb but does NOT
4025 functions like a drop-in for the normal pdb.Pdb but does NOT
4021 import readline by default. This way it doesn't muck up IPython's
4026 import readline by default. This way it doesn't muck up IPython's
4022 readline handling, and now tab-completion finally works in the
4027 readline handling, and now tab-completion finally works in the
4023 debugger -- sort of. It completes things globally visible, but the
4028 debugger -- sort of. It completes things globally visible, but the
4024 completer doesn't track the stack as pdb walks it. That's a bit
4029 completer doesn't track the stack as pdb walks it. That's a bit
4025 tricky, and I'll have to implement it later.
4030 tricky, and I'll have to implement it later.
4026
4031
4027 2002-05-05 Fernando Perez <fperez@colorado.edu>
4032 2002-05-05 Fernando Perez <fperez@colorado.edu>
4028
4033
4029 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4034 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4030 magic docstrings when printed via ? (explicit \'s were being
4035 magic docstrings when printed via ? (explicit \'s were being
4031 printed).
4036 printed).
4032
4037
4033 * IPython/ipmaker.py (make_IPython): fixed namespace
4038 * IPython/ipmaker.py (make_IPython): fixed namespace
4034 identification bug. Now variables loaded via logs or command-line
4039 identification bug. Now variables loaded via logs or command-line
4035 files are recognized in the interactive namespace by @who.
4040 files are recognized in the interactive namespace by @who.
4036
4041
4037 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4042 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4038 log replay system stemming from the string form of Structs.
4043 log replay system stemming from the string form of Structs.
4039
4044
4040 * IPython/Magic.py (Macro.__init__): improved macros to properly
4045 * IPython/Magic.py (Macro.__init__): improved macros to properly
4041 handle magic commands in them.
4046 handle magic commands in them.
4042 (Magic.magic_logstart): usernames are now expanded so 'logstart
4047 (Magic.magic_logstart): usernames are now expanded so 'logstart
4043 ~/mylog' now works.
4048 ~/mylog' now works.
4044
4049
4045 * IPython/iplib.py (complete): fixed bug where paths starting with
4050 * IPython/iplib.py (complete): fixed bug where paths starting with
4046 '/' would be completed as magic names.
4051 '/' would be completed as magic names.
4047
4052
4048 2002-05-04 Fernando Perez <fperez@colorado.edu>
4053 2002-05-04 Fernando Perez <fperez@colorado.edu>
4049
4054
4050 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4055 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4051 allow running full programs under the profiler's control.
4056 allow running full programs under the profiler's control.
4052
4057
4053 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4058 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4054 mode to report exceptions verbosely but without formatting
4059 mode to report exceptions verbosely but without formatting
4055 variables. This addresses the issue of ipython 'freezing' (it's
4060 variables. This addresses the issue of ipython 'freezing' (it's
4056 not frozen, but caught in an expensive formatting loop) when huge
4061 not frozen, but caught in an expensive formatting loop) when huge
4057 variables are in the context of an exception.
4062 variables are in the context of an exception.
4058 (VerboseTB.text): Added '--->' markers at line where exception was
4063 (VerboseTB.text): Added '--->' markers at line where exception was
4059 triggered. Much clearer to read, especially in NoColor modes.
4064 triggered. Much clearer to read, especially in NoColor modes.
4060
4065
4061 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4066 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4062 implemented in reverse when changing to the new parse_options().
4067 implemented in reverse when changing to the new parse_options().
4063
4068
4064 2002-05-03 Fernando Perez <fperez@colorado.edu>
4069 2002-05-03 Fernando Perez <fperez@colorado.edu>
4065
4070
4066 * IPython/Magic.py (Magic.parse_options): new function so that
4071 * IPython/Magic.py (Magic.parse_options): new function so that
4067 magics can parse options easier.
4072 magics can parse options easier.
4068 (Magic.magic_prun): new function similar to profile.run(),
4073 (Magic.magic_prun): new function similar to profile.run(),
4069 suggested by Chris Hart.
4074 suggested by Chris Hart.
4070 (Magic.magic_cd): fixed behavior so that it only changes if
4075 (Magic.magic_cd): fixed behavior so that it only changes if
4071 directory actually is in history.
4076 directory actually is in history.
4072
4077
4073 * IPython/usage.py (__doc__): added information about potential
4078 * IPython/usage.py (__doc__): added information about potential
4074 slowness of Verbose exception mode when there are huge data
4079 slowness of Verbose exception mode when there are huge data
4075 structures to be formatted (thanks to Archie Paulson).
4080 structures to be formatted (thanks to Archie Paulson).
4076
4081
4077 * IPython/ipmaker.py (make_IPython): Changed default logging
4082 * IPython/ipmaker.py (make_IPython): Changed default logging
4078 (when simply called with -log) to use curr_dir/ipython.log in
4083 (when simply called with -log) to use curr_dir/ipython.log in
4079 rotate mode. Fixed crash which was occuring with -log before
4084 rotate mode. Fixed crash which was occuring with -log before
4080 (thanks to Jim Boyle).
4085 (thanks to Jim Boyle).
4081
4086
4082 2002-05-01 Fernando Perez <fperez@colorado.edu>
4087 2002-05-01 Fernando Perez <fperez@colorado.edu>
4083
4088
4084 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4089 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4085 was nasty -- though somewhat of a corner case).
4090 was nasty -- though somewhat of a corner case).
4086
4091
4087 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4092 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4088 text (was a bug).
4093 text (was a bug).
4089
4094
4090 2002-04-30 Fernando Perez <fperez@colorado.edu>
4095 2002-04-30 Fernando Perez <fperez@colorado.edu>
4091
4096
4092 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4097 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4093 a print after ^D or ^C from the user so that the In[] prompt
4098 a print after ^D or ^C from the user so that the In[] prompt
4094 doesn't over-run the gnuplot one.
4099 doesn't over-run the gnuplot one.
4095
4100
4096 2002-04-29 Fernando Perez <fperez@colorado.edu>
4101 2002-04-29 Fernando Perez <fperez@colorado.edu>
4097
4102
4098 * Released 0.2.10
4103 * Released 0.2.10
4099
4104
4100 * IPython/__release__.py (version): get date dynamically.
4105 * IPython/__release__.py (version): get date dynamically.
4101
4106
4102 * Misc. documentation updates thanks to Arnd's comments. Also ran
4107 * Misc. documentation updates thanks to Arnd's comments. Also ran
4103 a full spellcheck on the manual (hadn't been done in a while).
4108 a full spellcheck on the manual (hadn't been done in a while).
4104
4109
4105 2002-04-27 Fernando Perez <fperez@colorado.edu>
4110 2002-04-27 Fernando Perez <fperez@colorado.edu>
4106
4111
4107 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4112 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4108 starting a log in mid-session would reset the input history list.
4113 starting a log in mid-session would reset the input history list.
4109
4114
4110 2002-04-26 Fernando Perez <fperez@colorado.edu>
4115 2002-04-26 Fernando Perez <fperez@colorado.edu>
4111
4116
4112 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4117 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4113 all files were being included in an update. Now anything in
4118 all files were being included in an update. Now anything in
4114 UserConfig that matches [A-Za-z]*.py will go (this excludes
4119 UserConfig that matches [A-Za-z]*.py will go (this excludes
4115 __init__.py)
4120 __init__.py)
4116
4121
4117 2002-04-25 Fernando Perez <fperez@colorado.edu>
4122 2002-04-25 Fernando Perez <fperez@colorado.edu>
4118
4123
4119 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4124 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4120 to __builtins__ so that any form of embedded or imported code can
4125 to __builtins__ so that any form of embedded or imported code can
4121 test for being inside IPython.
4126 test for being inside IPython.
4122
4127
4123 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4128 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4124 changed to GnuplotMagic because it's now an importable module,
4129 changed to GnuplotMagic because it's now an importable module,
4125 this makes the name follow that of the standard Gnuplot module.
4130 this makes the name follow that of the standard Gnuplot module.
4126 GnuplotMagic can now be loaded at any time in mid-session.
4131 GnuplotMagic can now be loaded at any time in mid-session.
4127
4132
4128 2002-04-24 Fernando Perez <fperez@colorado.edu>
4133 2002-04-24 Fernando Perez <fperez@colorado.edu>
4129
4134
4130 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4135 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4131 the globals (IPython has its own namespace) and the
4136 the globals (IPython has its own namespace) and the
4132 PhysicalQuantity stuff is much better anyway.
4137 PhysicalQuantity stuff is much better anyway.
4133
4138
4134 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4139 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4135 embedding example to standard user directory for
4140 embedding example to standard user directory for
4136 distribution. Also put it in the manual.
4141 distribution. Also put it in the manual.
4137
4142
4138 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4143 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4139 instance as first argument (so it doesn't rely on some obscure
4144 instance as first argument (so it doesn't rely on some obscure
4140 hidden global).
4145 hidden global).
4141
4146
4142 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4147 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4143 delimiters. While it prevents ().TAB from working, it allows
4148 delimiters. While it prevents ().TAB from working, it allows
4144 completions in open (... expressions. This is by far a more common
4149 completions in open (... expressions. This is by far a more common
4145 case.
4150 case.
4146
4151
4147 2002-04-23 Fernando Perez <fperez@colorado.edu>
4152 2002-04-23 Fernando Perez <fperez@colorado.edu>
4148
4153
4149 * IPython/Extensions/InterpreterPasteInput.py: new
4154 * IPython/Extensions/InterpreterPasteInput.py: new
4150 syntax-processing module for pasting lines with >>> or ... at the
4155 syntax-processing module for pasting lines with >>> or ... at the
4151 start.
4156 start.
4152
4157
4153 * IPython/Extensions/PhysicalQ_Interactive.py
4158 * IPython/Extensions/PhysicalQ_Interactive.py
4154 (PhysicalQuantityInteractive.__int__): fixed to work with either
4159 (PhysicalQuantityInteractive.__int__): fixed to work with either
4155 Numeric or math.
4160 Numeric or math.
4156
4161
4157 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4162 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4158 provided profiles. Now we have:
4163 provided profiles. Now we have:
4159 -math -> math module as * and cmath with its own namespace.
4164 -math -> math module as * and cmath with its own namespace.
4160 -numeric -> Numeric as *, plus gnuplot & grace
4165 -numeric -> Numeric as *, plus gnuplot & grace
4161 -physics -> same as before
4166 -physics -> same as before
4162
4167
4163 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4168 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4164 user-defined magics wouldn't be found by @magic if they were
4169 user-defined magics wouldn't be found by @magic if they were
4165 defined as class methods. Also cleaned up the namespace search
4170 defined as class methods. Also cleaned up the namespace search
4166 logic and the string building (to use %s instead of many repeated
4171 logic and the string building (to use %s instead of many repeated
4167 string adds).
4172 string adds).
4168
4173
4169 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4174 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4170 of user-defined magics to operate with class methods (cleaner, in
4175 of user-defined magics to operate with class methods (cleaner, in
4171 line with the gnuplot code).
4176 line with the gnuplot code).
4172
4177
4173 2002-04-22 Fernando Perez <fperez@colorado.edu>
4178 2002-04-22 Fernando Perez <fperez@colorado.edu>
4174
4179
4175 * setup.py: updated dependency list so that manual is updated when
4180 * setup.py: updated dependency list so that manual is updated when
4176 all included files change.
4181 all included files change.
4177
4182
4178 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4183 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4179 the delimiter removal option (the fix is ugly right now).
4184 the delimiter removal option (the fix is ugly right now).
4180
4185
4181 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4186 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4182 all of the math profile (quicker loading, no conflict between
4187 all of the math profile (quicker loading, no conflict between
4183 g-9.8 and g-gnuplot).
4188 g-9.8 and g-gnuplot).
4184
4189
4185 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4190 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4186 name of post-mortem files to IPython_crash_report.txt.
4191 name of post-mortem files to IPython_crash_report.txt.
4187
4192
4188 * Cleanup/update of the docs. Added all the new readline info and
4193 * Cleanup/update of the docs. Added all the new readline info and
4189 formatted all lists as 'real lists'.
4194 formatted all lists as 'real lists'.
4190
4195
4191 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4196 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4192 tab-completion options, since the full readline parse_and_bind is
4197 tab-completion options, since the full readline parse_and_bind is
4193 now accessible.
4198 now accessible.
4194
4199
4195 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4200 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4196 handling of readline options. Now users can specify any string to
4201 handling of readline options. Now users can specify any string to
4197 be passed to parse_and_bind(), as well as the delimiters to be
4202 be passed to parse_and_bind(), as well as the delimiters to be
4198 removed.
4203 removed.
4199 (InteractiveShell.__init__): Added __name__ to the global
4204 (InteractiveShell.__init__): Added __name__ to the global
4200 namespace so that things like Itpl which rely on its existence
4205 namespace so that things like Itpl which rely on its existence
4201 don't crash.
4206 don't crash.
4202 (InteractiveShell._prefilter): Defined the default with a _ so
4207 (InteractiveShell._prefilter): Defined the default with a _ so
4203 that prefilter() is easier to override, while the default one
4208 that prefilter() is easier to override, while the default one
4204 remains available.
4209 remains available.
4205
4210
4206 2002-04-18 Fernando Perez <fperez@colorado.edu>
4211 2002-04-18 Fernando Perez <fperez@colorado.edu>
4207
4212
4208 * Added information about pdb in the docs.
4213 * Added information about pdb in the docs.
4209
4214
4210 2002-04-17 Fernando Perez <fperez@colorado.edu>
4215 2002-04-17 Fernando Perez <fperez@colorado.edu>
4211
4216
4212 * IPython/ipmaker.py (make_IPython): added rc_override option to
4217 * IPython/ipmaker.py (make_IPython): added rc_override option to
4213 allow passing config options at creation time which may override
4218 allow passing config options at creation time which may override
4214 anything set in the config files or command line. This is
4219 anything set in the config files or command line. This is
4215 particularly useful for configuring embedded instances.
4220 particularly useful for configuring embedded instances.
4216
4221
4217 2002-04-15 Fernando Perez <fperez@colorado.edu>
4222 2002-04-15 Fernando Perez <fperez@colorado.edu>
4218
4223
4219 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4224 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4220 crash embedded instances because of the input cache falling out of
4225 crash embedded instances because of the input cache falling out of
4221 sync with the output counter.
4226 sync with the output counter.
4222
4227
4223 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4228 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4224 mode which calls pdb after an uncaught exception in IPython itself.
4229 mode which calls pdb after an uncaught exception in IPython itself.
4225
4230
4226 2002-04-14 Fernando Perez <fperez@colorado.edu>
4231 2002-04-14 Fernando Perez <fperez@colorado.edu>
4227
4232
4228 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4233 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4229 readline, fix it back after each call.
4234 readline, fix it back after each call.
4230
4235
4231 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4236 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4232 method to force all access via __call__(), which guarantees that
4237 method to force all access via __call__(), which guarantees that
4233 traceback references are properly deleted.
4238 traceback references are properly deleted.
4234
4239
4235 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4240 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4236 improve printing when pprint is in use.
4241 improve printing when pprint is in use.
4237
4242
4238 2002-04-13 Fernando Perez <fperez@colorado.edu>
4243 2002-04-13 Fernando Perez <fperez@colorado.edu>
4239
4244
4240 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4245 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4241 exceptions aren't caught anymore. If the user triggers one, he
4246 exceptions aren't caught anymore. If the user triggers one, he
4242 should know why he's doing it and it should go all the way up,
4247 should know why he's doing it and it should go all the way up,
4243 just like any other exception. So now @abort will fully kill the
4248 just like any other exception. So now @abort will fully kill the
4244 embedded interpreter and the embedding code (unless that happens
4249 embedded interpreter and the embedding code (unless that happens
4245 to catch SystemExit).
4250 to catch SystemExit).
4246
4251
4247 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4252 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4248 and a debugger() method to invoke the interactive pdb debugger
4253 and a debugger() method to invoke the interactive pdb debugger
4249 after printing exception information. Also added the corresponding
4254 after printing exception information. Also added the corresponding
4250 -pdb option and @pdb magic to control this feature, and updated
4255 -pdb option and @pdb magic to control this feature, and updated
4251 the docs. After a suggestion from Christopher Hart
4256 the docs. After a suggestion from Christopher Hart
4252 (hart-AT-caltech.edu).
4257 (hart-AT-caltech.edu).
4253
4258
4254 2002-04-12 Fernando Perez <fperez@colorado.edu>
4259 2002-04-12 Fernando Perez <fperez@colorado.edu>
4255
4260
4256 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4261 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4257 the exception handlers defined by the user (not the CrashHandler)
4262 the exception handlers defined by the user (not the CrashHandler)
4258 so that user exceptions don't trigger an ipython bug report.
4263 so that user exceptions don't trigger an ipython bug report.
4259
4264
4260 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4265 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4261 configurable (it should have always been so).
4266 configurable (it should have always been so).
4262
4267
4263 2002-03-26 Fernando Perez <fperez@colorado.edu>
4268 2002-03-26 Fernando Perez <fperez@colorado.edu>
4264
4269
4265 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4270 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4266 and there to fix embedding namespace issues. This should all be
4271 and there to fix embedding namespace issues. This should all be
4267 done in a more elegant way.
4272 done in a more elegant way.
4268
4273
4269 2002-03-25 Fernando Perez <fperez@colorado.edu>
4274 2002-03-25 Fernando Perez <fperez@colorado.edu>
4270
4275
4271 * IPython/genutils.py (get_home_dir): Try to make it work under
4276 * IPython/genutils.py (get_home_dir): Try to make it work under
4272 win9x also.
4277 win9x also.
4273
4278
4274 2002-03-20 Fernando Perez <fperez@colorado.edu>
4279 2002-03-20 Fernando Perez <fperez@colorado.edu>
4275
4280
4276 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4281 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4277 sys.displayhook untouched upon __init__.
4282 sys.displayhook untouched upon __init__.
4278
4283
4279 2002-03-19 Fernando Perez <fperez@colorado.edu>
4284 2002-03-19 Fernando Perez <fperez@colorado.edu>
4280
4285
4281 * Released 0.2.9 (for embedding bug, basically).
4286 * Released 0.2.9 (for embedding bug, basically).
4282
4287
4283 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4288 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4284 exceptions so that enclosing shell's state can be restored.
4289 exceptions so that enclosing shell's state can be restored.
4285
4290
4286 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4291 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4287 naming conventions in the .ipython/ dir.
4292 naming conventions in the .ipython/ dir.
4288
4293
4289 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4294 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4290 from delimiters list so filenames with - in them get expanded.
4295 from delimiters list so filenames with - in them get expanded.
4291
4296
4292 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4297 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4293 sys.displayhook not being properly restored after an embedded call.
4298 sys.displayhook not being properly restored after an embedded call.
4294
4299
4295 2002-03-18 Fernando Perez <fperez@colorado.edu>
4300 2002-03-18 Fernando Perez <fperez@colorado.edu>
4296
4301
4297 * Released 0.2.8
4302 * Released 0.2.8
4298
4303
4299 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4304 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4300 some files weren't being included in a -upgrade.
4305 some files weren't being included in a -upgrade.
4301 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4306 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4302 on' so that the first tab completes.
4307 on' so that the first tab completes.
4303 (InteractiveShell.handle_magic): fixed bug with spaces around
4308 (InteractiveShell.handle_magic): fixed bug with spaces around
4304 quotes breaking many magic commands.
4309 quotes breaking many magic commands.
4305
4310
4306 * setup.py: added note about ignoring the syntax error messages at
4311 * setup.py: added note about ignoring the syntax error messages at
4307 installation.
4312 installation.
4308
4313
4309 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4314 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4310 streamlining the gnuplot interface, now there's only one magic @gp.
4315 streamlining the gnuplot interface, now there's only one magic @gp.
4311
4316
4312 2002-03-17 Fernando Perez <fperez@colorado.edu>
4317 2002-03-17 Fernando Perez <fperez@colorado.edu>
4313
4318
4314 * IPython/UserConfig/magic_gnuplot.py: new name for the
4319 * IPython/UserConfig/magic_gnuplot.py: new name for the
4315 example-magic_pm.py file. Much enhanced system, now with a shell
4320 example-magic_pm.py file. Much enhanced system, now with a shell
4316 for communicating directly with gnuplot, one command at a time.
4321 for communicating directly with gnuplot, one command at a time.
4317
4322
4318 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4323 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4319 setting __name__=='__main__'.
4324 setting __name__=='__main__'.
4320
4325
4321 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4326 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4322 mini-shell for accessing gnuplot from inside ipython. Should
4327 mini-shell for accessing gnuplot from inside ipython. Should
4323 extend it later for grace access too. Inspired by Arnd's
4328 extend it later for grace access too. Inspired by Arnd's
4324 suggestion.
4329 suggestion.
4325
4330
4326 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4331 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4327 calling magic functions with () in their arguments. Thanks to Arnd
4332 calling magic functions with () in their arguments. Thanks to Arnd
4328 Baecker for pointing this to me.
4333 Baecker for pointing this to me.
4329
4334
4330 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4335 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4331 infinitely for integer or complex arrays (only worked with floats).
4336 infinitely for integer or complex arrays (only worked with floats).
4332
4337
4333 2002-03-16 Fernando Perez <fperez@colorado.edu>
4338 2002-03-16 Fernando Perez <fperez@colorado.edu>
4334
4339
4335 * setup.py: Merged setup and setup_windows into a single script
4340 * setup.py: Merged setup and setup_windows into a single script
4336 which properly handles things for windows users.
4341 which properly handles things for windows users.
4337
4342
4338 2002-03-15 Fernando Perez <fperez@colorado.edu>
4343 2002-03-15 Fernando Perez <fperez@colorado.edu>
4339
4344
4340 * Big change to the manual: now the magics are all automatically
4345 * Big change to the manual: now the magics are all automatically
4341 documented. This information is generated from their docstrings
4346 documented. This information is generated from their docstrings
4342 and put in a latex file included by the manual lyx file. This way
4347 and put in a latex file included by the manual lyx file. This way
4343 we get always up to date information for the magics. The manual
4348 we get always up to date information for the magics. The manual
4344 now also has proper version information, also auto-synced.
4349 now also has proper version information, also auto-synced.
4345
4350
4346 For this to work, an undocumented --magic_docstrings option was added.
4351 For this to work, an undocumented --magic_docstrings option was added.
4347
4352
4348 2002-03-13 Fernando Perez <fperez@colorado.edu>
4353 2002-03-13 Fernando Perez <fperez@colorado.edu>
4349
4354
4350 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4355 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4351 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4356 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4352
4357
4353 2002-03-12 Fernando Perez <fperez@colorado.edu>
4358 2002-03-12 Fernando Perez <fperez@colorado.edu>
4354
4359
4355 * IPython/ultraTB.py (TermColors): changed color escapes again to
4360 * IPython/ultraTB.py (TermColors): changed color escapes again to
4356 fix the (old, reintroduced) line-wrapping bug. Basically, if
4361 fix the (old, reintroduced) line-wrapping bug. Basically, if
4357 \001..\002 aren't given in the color escapes, lines get wrapped
4362 \001..\002 aren't given in the color escapes, lines get wrapped
4358 weirdly. But giving those screws up old xterms and emacs terms. So
4363 weirdly. But giving those screws up old xterms and emacs terms. So
4359 I added some logic for emacs terms to be ok, but I can't identify old
4364 I added some logic for emacs terms to be ok, but I can't identify old
4360 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4365 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4361
4366
4362 2002-03-10 Fernando Perez <fperez@colorado.edu>
4367 2002-03-10 Fernando Perez <fperez@colorado.edu>
4363
4368
4364 * IPython/usage.py (__doc__): Various documentation cleanups and
4369 * IPython/usage.py (__doc__): Various documentation cleanups and
4365 updates, both in usage docstrings and in the manual.
4370 updates, both in usage docstrings and in the manual.
4366
4371
4367 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4372 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4368 handling of caching. Set minimum acceptabe value for having a
4373 handling of caching. Set minimum acceptabe value for having a
4369 cache at 20 values.
4374 cache at 20 values.
4370
4375
4371 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4376 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4372 install_first_time function to a method, renamed it and added an
4377 install_first_time function to a method, renamed it and added an
4373 'upgrade' mode. Now people can update their config directory with
4378 'upgrade' mode. Now people can update their config directory with
4374 a simple command line switch (-upgrade, also new).
4379 a simple command line switch (-upgrade, also new).
4375
4380
4376 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4381 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4377 @file (convenient for automagic users under Python >= 2.2).
4382 @file (convenient for automagic users under Python >= 2.2).
4378 Removed @files (it seemed more like a plural than an abbrev. of
4383 Removed @files (it seemed more like a plural than an abbrev. of
4379 'file show').
4384 'file show').
4380
4385
4381 * IPython/iplib.py (install_first_time): Fixed crash if there were
4386 * IPython/iplib.py (install_first_time): Fixed crash if there were
4382 backup files ('~') in .ipython/ install directory.
4387 backup files ('~') in .ipython/ install directory.
4383
4388
4384 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4389 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4385 system. Things look fine, but these changes are fairly
4390 system. Things look fine, but these changes are fairly
4386 intrusive. Test them for a few days.
4391 intrusive. Test them for a few days.
4387
4392
4388 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4393 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4389 the prompts system. Now all in/out prompt strings are user
4394 the prompts system. Now all in/out prompt strings are user
4390 controllable. This is particularly useful for embedding, as one
4395 controllable. This is particularly useful for embedding, as one
4391 can tag embedded instances with particular prompts.
4396 can tag embedded instances with particular prompts.
4392
4397
4393 Also removed global use of sys.ps1/2, which now allows nested
4398 Also removed global use of sys.ps1/2, which now allows nested
4394 embeddings without any problems. Added command-line options for
4399 embeddings without any problems. Added command-line options for
4395 the prompt strings.
4400 the prompt strings.
4396
4401
4397 2002-03-08 Fernando Perez <fperez@colorado.edu>
4402 2002-03-08 Fernando Perez <fperez@colorado.edu>
4398
4403
4399 * IPython/UserConfig/example-embed-short.py (ipshell): added
4404 * IPython/UserConfig/example-embed-short.py (ipshell): added
4400 example file with the bare minimum code for embedding.
4405 example file with the bare minimum code for embedding.
4401
4406
4402 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4407 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4403 functionality for the embeddable shell to be activated/deactivated
4408 functionality for the embeddable shell to be activated/deactivated
4404 either globally or at each call.
4409 either globally or at each call.
4405
4410
4406 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4411 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4407 rewriting the prompt with '--->' for auto-inputs with proper
4412 rewriting the prompt with '--->' for auto-inputs with proper
4408 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4413 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4409 this is handled by the prompts class itself, as it should.
4414 this is handled by the prompts class itself, as it should.
4410
4415
4411 2002-03-05 Fernando Perez <fperez@colorado.edu>
4416 2002-03-05 Fernando Perez <fperez@colorado.edu>
4412
4417
4413 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4418 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4414 @logstart to avoid name clashes with the math log function.
4419 @logstart to avoid name clashes with the math log function.
4415
4420
4416 * Big updates to X/Emacs section of the manual.
4421 * Big updates to X/Emacs section of the manual.
4417
4422
4418 * Removed ipython_emacs. Milan explained to me how to pass
4423 * Removed ipython_emacs. Milan explained to me how to pass
4419 arguments to ipython through Emacs. Some day I'm going to end up
4424 arguments to ipython through Emacs. Some day I'm going to end up
4420 learning some lisp...
4425 learning some lisp...
4421
4426
4422 2002-03-04 Fernando Perez <fperez@colorado.edu>
4427 2002-03-04 Fernando Perez <fperez@colorado.edu>
4423
4428
4424 * IPython/ipython_emacs: Created script to be used as the
4429 * IPython/ipython_emacs: Created script to be used as the
4425 py-python-command Emacs variable so we can pass IPython
4430 py-python-command Emacs variable so we can pass IPython
4426 parameters. I can't figure out how to tell Emacs directly to pass
4431 parameters. I can't figure out how to tell Emacs directly to pass
4427 parameters to IPython, so a dummy shell script will do it.
4432 parameters to IPython, so a dummy shell script will do it.
4428
4433
4429 Other enhancements made for things to work better under Emacs'
4434 Other enhancements made for things to work better under Emacs'
4430 various types of terminals. Many thanks to Milan Zamazal
4435 various types of terminals. Many thanks to Milan Zamazal
4431 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4436 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4432
4437
4433 2002-03-01 Fernando Perez <fperez@colorado.edu>
4438 2002-03-01 Fernando Perez <fperez@colorado.edu>
4434
4439
4435 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4440 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4436 that loading of readline is now optional. This gives better
4441 that loading of readline is now optional. This gives better
4437 control to emacs users.
4442 control to emacs users.
4438
4443
4439 * IPython/ultraTB.py (__date__): Modified color escape sequences
4444 * IPython/ultraTB.py (__date__): Modified color escape sequences
4440 and now things work fine under xterm and in Emacs' term buffers
4445 and now things work fine under xterm and in Emacs' term buffers
4441 (though not shell ones). Well, in emacs you get colors, but all
4446 (though not shell ones). Well, in emacs you get colors, but all
4442 seem to be 'light' colors (no difference between dark and light
4447 seem to be 'light' colors (no difference between dark and light
4443 ones). But the garbage chars are gone, and also in xterms. It
4448 ones). But the garbage chars are gone, and also in xterms. It
4444 seems that now I'm using 'cleaner' ansi sequences.
4449 seems that now I'm using 'cleaner' ansi sequences.
4445
4450
4446 2002-02-21 Fernando Perez <fperez@colorado.edu>
4451 2002-02-21 Fernando Perez <fperez@colorado.edu>
4447
4452
4448 * Released 0.2.7 (mainly to publish the scoping fix).
4453 * Released 0.2.7 (mainly to publish the scoping fix).
4449
4454
4450 * IPython/Logger.py (Logger.logstate): added. A corresponding
4455 * IPython/Logger.py (Logger.logstate): added. A corresponding
4451 @logstate magic was created.
4456 @logstate magic was created.
4452
4457
4453 * IPython/Magic.py: fixed nested scoping problem under Python
4458 * IPython/Magic.py: fixed nested scoping problem under Python
4454 2.1.x (automagic wasn't working).
4459 2.1.x (automagic wasn't working).
4455
4460
4456 2002-02-20 Fernando Perez <fperez@colorado.edu>
4461 2002-02-20 Fernando Perez <fperez@colorado.edu>
4457
4462
4458 * Released 0.2.6.
4463 * Released 0.2.6.
4459
4464
4460 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4465 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4461 option so that logs can come out without any headers at all.
4466 option so that logs can come out without any headers at all.
4462
4467
4463 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4468 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4464 SciPy.
4469 SciPy.
4465
4470
4466 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4471 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4467 that embedded IPython calls don't require vars() to be explicitly
4472 that embedded IPython calls don't require vars() to be explicitly
4468 passed. Now they are extracted from the caller's frame (code
4473 passed. Now they are extracted from the caller's frame (code
4469 snatched from Eric Jones' weave). Added better documentation to
4474 snatched from Eric Jones' weave). Added better documentation to
4470 the section on embedding and the example file.
4475 the section on embedding and the example file.
4471
4476
4472 * IPython/genutils.py (page): Changed so that under emacs, it just
4477 * IPython/genutils.py (page): Changed so that under emacs, it just
4473 prints the string. You can then page up and down in the emacs
4478 prints the string. You can then page up and down in the emacs
4474 buffer itself. This is how the builtin help() works.
4479 buffer itself. This is how the builtin help() works.
4475
4480
4476 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4481 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4477 macro scoping: macros need to be executed in the user's namespace
4482 macro scoping: macros need to be executed in the user's namespace
4478 to work as if they had been typed by the user.
4483 to work as if they had been typed by the user.
4479
4484
4480 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4485 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4481 execute automatically (no need to type 'exec...'). They then
4486 execute automatically (no need to type 'exec...'). They then
4482 behave like 'true macros'. The printing system was also modified
4487 behave like 'true macros'. The printing system was also modified
4483 for this to work.
4488 for this to work.
4484
4489
4485 2002-02-19 Fernando Perez <fperez@colorado.edu>
4490 2002-02-19 Fernando Perez <fperez@colorado.edu>
4486
4491
4487 * IPython/genutils.py (page_file): new function for paging files
4492 * IPython/genutils.py (page_file): new function for paging files
4488 in an OS-independent way. Also necessary for file viewing to work
4493 in an OS-independent way. Also necessary for file viewing to work
4489 well inside Emacs buffers.
4494 well inside Emacs buffers.
4490 (page): Added checks for being in an emacs buffer.
4495 (page): Added checks for being in an emacs buffer.
4491 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4496 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4492 same bug in iplib.
4497 same bug in iplib.
4493
4498
4494 2002-02-18 Fernando Perez <fperez@colorado.edu>
4499 2002-02-18 Fernando Perez <fperez@colorado.edu>
4495
4500
4496 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4501 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4497 of readline so that IPython can work inside an Emacs buffer.
4502 of readline so that IPython can work inside an Emacs buffer.
4498
4503
4499 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4504 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4500 method signatures (they weren't really bugs, but it looks cleaner
4505 method signatures (they weren't really bugs, but it looks cleaner
4501 and keeps PyChecker happy).
4506 and keeps PyChecker happy).
4502
4507
4503 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4508 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4504 for implementing various user-defined hooks. Currently only
4509 for implementing various user-defined hooks. Currently only
4505 display is done.
4510 display is done.
4506
4511
4507 * IPython/Prompts.py (CachedOutput._display): changed display
4512 * IPython/Prompts.py (CachedOutput._display): changed display
4508 functions so that they can be dynamically changed by users easily.
4513 functions so that they can be dynamically changed by users easily.
4509
4514
4510 * IPython/Extensions/numeric_formats.py (num_display): added an
4515 * IPython/Extensions/numeric_formats.py (num_display): added an
4511 extension for printing NumPy arrays in flexible manners. It
4516 extension for printing NumPy arrays in flexible manners. It
4512 doesn't do anything yet, but all the structure is in
4517 doesn't do anything yet, but all the structure is in
4513 place. Ultimately the plan is to implement output format control
4518 place. Ultimately the plan is to implement output format control
4514 like in Octave.
4519 like in Octave.
4515
4520
4516 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4521 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4517 methods are found at run-time by all the automatic machinery.
4522 methods are found at run-time by all the automatic machinery.
4518
4523
4519 2002-02-17 Fernando Perez <fperez@colorado.edu>
4524 2002-02-17 Fernando Perez <fperez@colorado.edu>
4520
4525
4521 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4526 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4522 whole file a little.
4527 whole file a little.
4523
4528
4524 * ToDo: closed this document. Now there's a new_design.lyx
4529 * ToDo: closed this document. Now there's a new_design.lyx
4525 document for all new ideas. Added making a pdf of it for the
4530 document for all new ideas. Added making a pdf of it for the
4526 end-user distro.
4531 end-user distro.
4527
4532
4528 * IPython/Logger.py (Logger.switch_log): Created this to replace
4533 * IPython/Logger.py (Logger.switch_log): Created this to replace
4529 logon() and logoff(). It also fixes a nasty crash reported by
4534 logon() and logoff(). It also fixes a nasty crash reported by
4530 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4535 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4531
4536
4532 * IPython/iplib.py (complete): got auto-completion to work with
4537 * IPython/iplib.py (complete): got auto-completion to work with
4533 automagic (I had wanted this for a long time).
4538 automagic (I had wanted this for a long time).
4534
4539
4535 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4540 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4536 to @file, since file() is now a builtin and clashes with automagic
4541 to @file, since file() is now a builtin and clashes with automagic
4537 for @file.
4542 for @file.
4538
4543
4539 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4544 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4540 of this was previously in iplib, which had grown to more than 2000
4545 of this was previously in iplib, which had grown to more than 2000
4541 lines, way too long. No new functionality, but it makes managing
4546 lines, way too long. No new functionality, but it makes managing
4542 the code a bit easier.
4547 the code a bit easier.
4543
4548
4544 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4549 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4545 information to crash reports.
4550 information to crash reports.
4546
4551
4547 2002-02-12 Fernando Perez <fperez@colorado.edu>
4552 2002-02-12 Fernando Perez <fperez@colorado.edu>
4548
4553
4549 * Released 0.2.5.
4554 * Released 0.2.5.
4550
4555
4551 2002-02-11 Fernando Perez <fperez@colorado.edu>
4556 2002-02-11 Fernando Perez <fperez@colorado.edu>
4552
4557
4553 * Wrote a relatively complete Windows installer. It puts
4558 * Wrote a relatively complete Windows installer. It puts
4554 everything in place, creates Start Menu entries and fixes the
4559 everything in place, creates Start Menu entries and fixes the
4555 color issues. Nothing fancy, but it works.
4560 color issues. Nothing fancy, but it works.
4556
4561
4557 2002-02-10 Fernando Perez <fperez@colorado.edu>
4562 2002-02-10 Fernando Perez <fperez@colorado.edu>
4558
4563
4559 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4564 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4560 os.path.expanduser() call so that we can type @run ~/myfile.py and
4565 os.path.expanduser() call so that we can type @run ~/myfile.py and
4561 have thigs work as expected.
4566 have thigs work as expected.
4562
4567
4563 * IPython/genutils.py (page): fixed exception handling so things
4568 * IPython/genutils.py (page): fixed exception handling so things
4564 work both in Unix and Windows correctly. Quitting a pager triggers
4569 work both in Unix and Windows correctly. Quitting a pager triggers
4565 an IOError/broken pipe in Unix, and in windows not finding a pager
4570 an IOError/broken pipe in Unix, and in windows not finding a pager
4566 is also an IOError, so I had to actually look at the return value
4571 is also an IOError, so I had to actually look at the return value
4567 of the exception, not just the exception itself. Should be ok now.
4572 of the exception, not just the exception itself. Should be ok now.
4568
4573
4569 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4574 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4570 modified to allow case-insensitive color scheme changes.
4575 modified to allow case-insensitive color scheme changes.
4571
4576
4572 2002-02-09 Fernando Perez <fperez@colorado.edu>
4577 2002-02-09 Fernando Perez <fperez@colorado.edu>
4573
4578
4574 * IPython/genutils.py (native_line_ends): new function to leave
4579 * IPython/genutils.py (native_line_ends): new function to leave
4575 user config files with os-native line-endings.
4580 user config files with os-native line-endings.
4576
4581
4577 * README and manual updates.
4582 * README and manual updates.
4578
4583
4579 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4584 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4580 instead of StringType to catch Unicode strings.
4585 instead of StringType to catch Unicode strings.
4581
4586
4582 * IPython/genutils.py (filefind): fixed bug for paths with
4587 * IPython/genutils.py (filefind): fixed bug for paths with
4583 embedded spaces (very common in Windows).
4588 embedded spaces (very common in Windows).
4584
4589
4585 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4590 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4586 files under Windows, so that they get automatically associated
4591 files under Windows, so that they get automatically associated
4587 with a text editor. Windows makes it a pain to handle
4592 with a text editor. Windows makes it a pain to handle
4588 extension-less files.
4593 extension-less files.
4589
4594
4590 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4595 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4591 warning about readline only occur for Posix. In Windows there's no
4596 warning about readline only occur for Posix. In Windows there's no
4592 way to get readline, so why bother with the warning.
4597 way to get readline, so why bother with the warning.
4593
4598
4594 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4599 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4595 for __str__ instead of dir(self), since dir() changed in 2.2.
4600 for __str__ instead of dir(self), since dir() changed in 2.2.
4596
4601
4597 * Ported to Windows! Tested on XP, I suspect it should work fine
4602 * Ported to Windows! Tested on XP, I suspect it should work fine
4598 on NT/2000, but I don't think it will work on 98 et al. That
4603 on NT/2000, but I don't think it will work on 98 et al. That
4599 series of Windows is such a piece of junk anyway that I won't try
4604 series of Windows is such a piece of junk anyway that I won't try
4600 porting it there. The XP port was straightforward, showed a few
4605 porting it there. The XP port was straightforward, showed a few
4601 bugs here and there (fixed all), in particular some string
4606 bugs here and there (fixed all), in particular some string
4602 handling stuff which required considering Unicode strings (which
4607 handling stuff which required considering Unicode strings (which
4603 Windows uses). This is good, but hasn't been too tested :) No
4608 Windows uses). This is good, but hasn't been too tested :) No
4604 fancy installer yet, I'll put a note in the manual so people at
4609 fancy installer yet, I'll put a note in the manual so people at
4605 least make manually a shortcut.
4610 least make manually a shortcut.
4606
4611
4607 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4612 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4608 into a single one, "colors". This now controls both prompt and
4613 into a single one, "colors". This now controls both prompt and
4609 exception color schemes, and can be changed both at startup
4614 exception color schemes, and can be changed both at startup
4610 (either via command-line switches or via ipythonrc files) and at
4615 (either via command-line switches or via ipythonrc files) and at
4611 runtime, with @colors.
4616 runtime, with @colors.
4612 (Magic.magic_run): renamed @prun to @run and removed the old
4617 (Magic.magic_run): renamed @prun to @run and removed the old
4613 @run. The two were too similar to warrant keeping both.
4618 @run. The two were too similar to warrant keeping both.
4614
4619
4615 2002-02-03 Fernando Perez <fperez@colorado.edu>
4620 2002-02-03 Fernando Perez <fperez@colorado.edu>
4616
4621
4617 * IPython/iplib.py (install_first_time): Added comment on how to
4622 * IPython/iplib.py (install_first_time): Added comment on how to
4618 configure the color options for first-time users. Put a <return>
4623 configure the color options for first-time users. Put a <return>
4619 request at the end so that small-terminal users get a chance to
4624 request at the end so that small-terminal users get a chance to
4620 read the startup info.
4625 read the startup info.
4621
4626
4622 2002-01-23 Fernando Perez <fperez@colorado.edu>
4627 2002-01-23 Fernando Perez <fperez@colorado.edu>
4623
4628
4624 * IPython/iplib.py (CachedOutput.update): Changed output memory
4629 * IPython/iplib.py (CachedOutput.update): Changed output memory
4625 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4630 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4626 input history we still use _i. Did this b/c these variable are
4631 input history we still use _i. Did this b/c these variable are
4627 very commonly used in interactive work, so the less we need to
4632 very commonly used in interactive work, so the less we need to
4628 type the better off we are.
4633 type the better off we are.
4629 (Magic.magic_prun): updated @prun to better handle the namespaces
4634 (Magic.magic_prun): updated @prun to better handle the namespaces
4630 the file will run in, including a fix for __name__ not being set
4635 the file will run in, including a fix for __name__ not being set
4631 before.
4636 before.
4632
4637
4633 2002-01-20 Fernando Perez <fperez@colorado.edu>
4638 2002-01-20 Fernando Perez <fperez@colorado.edu>
4634
4639
4635 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4640 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4636 extra garbage for Python 2.2. Need to look more carefully into
4641 extra garbage for Python 2.2. Need to look more carefully into
4637 this later.
4642 this later.
4638
4643
4639 2002-01-19 Fernando Perez <fperez@colorado.edu>
4644 2002-01-19 Fernando Perez <fperez@colorado.edu>
4640
4645
4641 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4646 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4642 display SyntaxError exceptions properly formatted when they occur
4647 display SyntaxError exceptions properly formatted when they occur
4643 (they can be triggered by imported code).
4648 (they can be triggered by imported code).
4644
4649
4645 2002-01-18 Fernando Perez <fperez@colorado.edu>
4650 2002-01-18 Fernando Perez <fperez@colorado.edu>
4646
4651
4647 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4652 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4648 SyntaxError exceptions are reported nicely formatted, instead of
4653 SyntaxError exceptions are reported nicely formatted, instead of
4649 spitting out only offset information as before.
4654 spitting out only offset information as before.
4650 (Magic.magic_prun): Added the @prun function for executing
4655 (Magic.magic_prun): Added the @prun function for executing
4651 programs with command line args inside IPython.
4656 programs with command line args inside IPython.
4652
4657
4653 2002-01-16 Fernando Perez <fperez@colorado.edu>
4658 2002-01-16 Fernando Perez <fperez@colorado.edu>
4654
4659
4655 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4660 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4656 to *not* include the last item given in a range. This brings their
4661 to *not* include the last item given in a range. This brings their
4657 behavior in line with Python's slicing:
4662 behavior in line with Python's slicing:
4658 a[n1:n2] -> a[n1]...a[n2-1]
4663 a[n1:n2] -> a[n1]...a[n2-1]
4659 It may be a bit less convenient, but I prefer to stick to Python's
4664 It may be a bit less convenient, but I prefer to stick to Python's
4660 conventions *everywhere*, so users never have to wonder.
4665 conventions *everywhere*, so users never have to wonder.
4661 (Magic.magic_macro): Added @macro function to ease the creation of
4666 (Magic.magic_macro): Added @macro function to ease the creation of
4662 macros.
4667 macros.
4663
4668
4664 2002-01-05 Fernando Perez <fperez@colorado.edu>
4669 2002-01-05 Fernando Perez <fperez@colorado.edu>
4665
4670
4666 * Released 0.2.4.
4671 * Released 0.2.4.
4667
4672
4668 * IPython/iplib.py (Magic.magic_pdef):
4673 * IPython/iplib.py (Magic.magic_pdef):
4669 (InteractiveShell.safe_execfile): report magic lines and error
4674 (InteractiveShell.safe_execfile): report magic lines and error
4670 lines without line numbers so one can easily copy/paste them for
4675 lines without line numbers so one can easily copy/paste them for
4671 re-execution.
4676 re-execution.
4672
4677
4673 * Updated manual with recent changes.
4678 * Updated manual with recent changes.
4674
4679
4675 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4680 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4676 docstring printing when class? is called. Very handy for knowing
4681 docstring printing when class? is called. Very handy for knowing
4677 how to create class instances (as long as __init__ is well
4682 how to create class instances (as long as __init__ is well
4678 documented, of course :)
4683 documented, of course :)
4679 (Magic.magic_doc): print both class and constructor docstrings.
4684 (Magic.magic_doc): print both class and constructor docstrings.
4680 (Magic.magic_pdef): give constructor info if passed a class and
4685 (Magic.magic_pdef): give constructor info if passed a class and
4681 __call__ info for callable object instances.
4686 __call__ info for callable object instances.
4682
4687
4683 2002-01-04 Fernando Perez <fperez@colorado.edu>
4688 2002-01-04 Fernando Perez <fperez@colorado.edu>
4684
4689
4685 * Made deep_reload() off by default. It doesn't always work
4690 * Made deep_reload() off by default. It doesn't always work
4686 exactly as intended, so it's probably safer to have it off. It's
4691 exactly as intended, so it's probably safer to have it off. It's
4687 still available as dreload() anyway, so nothing is lost.
4692 still available as dreload() anyway, so nothing is lost.
4688
4693
4689 2002-01-02 Fernando Perez <fperez@colorado.edu>
4694 2002-01-02 Fernando Perez <fperez@colorado.edu>
4690
4695
4691 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4696 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4692 so I wanted an updated release).
4697 so I wanted an updated release).
4693
4698
4694 2001-12-27 Fernando Perez <fperez@colorado.edu>
4699 2001-12-27 Fernando Perez <fperez@colorado.edu>
4695
4700
4696 * IPython/iplib.py (InteractiveShell.interact): Added the original
4701 * IPython/iplib.py (InteractiveShell.interact): Added the original
4697 code from 'code.py' for this module in order to change the
4702 code from 'code.py' for this module in order to change the
4698 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4703 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4699 the history cache would break when the user hit Ctrl-C, and
4704 the history cache would break when the user hit Ctrl-C, and
4700 interact() offers no way to add any hooks to it.
4705 interact() offers no way to add any hooks to it.
4701
4706
4702 2001-12-23 Fernando Perez <fperez@colorado.edu>
4707 2001-12-23 Fernando Perez <fperez@colorado.edu>
4703
4708
4704 * setup.py: added check for 'MANIFEST' before trying to remove
4709 * setup.py: added check for 'MANIFEST' before trying to remove
4705 it. Thanks to Sean Reifschneider.
4710 it. Thanks to Sean Reifschneider.
4706
4711
4707 2001-12-22 Fernando Perez <fperez@colorado.edu>
4712 2001-12-22 Fernando Perez <fperez@colorado.edu>
4708
4713
4709 * Released 0.2.2.
4714 * Released 0.2.2.
4710
4715
4711 * Finished (reasonably) writing the manual. Later will add the
4716 * Finished (reasonably) writing the manual. Later will add the
4712 python-standard navigation stylesheets, but for the time being
4717 python-standard navigation stylesheets, but for the time being
4713 it's fairly complete. Distribution will include html and pdf
4718 it's fairly complete. Distribution will include html and pdf
4714 versions.
4719 versions.
4715
4720
4716 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4721 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4717 (MayaVi author).
4722 (MayaVi author).
4718
4723
4719 2001-12-21 Fernando Perez <fperez@colorado.edu>
4724 2001-12-21 Fernando Perez <fperez@colorado.edu>
4720
4725
4721 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4726 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4722 good public release, I think (with the manual and the distutils
4727 good public release, I think (with the manual and the distutils
4723 installer). The manual can use some work, but that can go
4728 installer). The manual can use some work, but that can go
4724 slowly. Otherwise I think it's quite nice for end users. Next
4729 slowly. Otherwise I think it's quite nice for end users. Next
4725 summer, rewrite the guts of it...
4730 summer, rewrite the guts of it...
4726
4731
4727 * Changed format of ipythonrc files to use whitespace as the
4732 * Changed format of ipythonrc files to use whitespace as the
4728 separator instead of an explicit '='. Cleaner.
4733 separator instead of an explicit '='. Cleaner.
4729
4734
4730 2001-12-20 Fernando Perez <fperez@colorado.edu>
4735 2001-12-20 Fernando Perez <fperez@colorado.edu>
4731
4736
4732 * Started a manual in LyX. For now it's just a quick merge of the
4737 * Started a manual in LyX. For now it's just a quick merge of the
4733 various internal docstrings and READMEs. Later it may grow into a
4738 various internal docstrings and READMEs. Later it may grow into a
4734 nice, full-blown manual.
4739 nice, full-blown manual.
4735
4740
4736 * Set up a distutils based installer. Installation should now be
4741 * Set up a distutils based installer. Installation should now be
4737 trivially simple for end-users.
4742 trivially simple for end-users.
4738
4743
4739 2001-12-11 Fernando Perez <fperez@colorado.edu>
4744 2001-12-11 Fernando Perez <fperez@colorado.edu>
4740
4745
4741 * Released 0.2.0. First public release, announced it at
4746 * Released 0.2.0. First public release, announced it at
4742 comp.lang.python. From now on, just bugfixes...
4747 comp.lang.python. From now on, just bugfixes...
4743
4748
4744 * Went through all the files, set copyright/license notices and
4749 * Went through all the files, set copyright/license notices and
4745 cleaned up things. Ready for release.
4750 cleaned up things. Ready for release.
4746
4751
4747 2001-12-10 Fernando Perez <fperez@colorado.edu>
4752 2001-12-10 Fernando Perez <fperez@colorado.edu>
4748
4753
4749 * Changed the first-time installer not to use tarfiles. It's more
4754 * Changed the first-time installer not to use tarfiles. It's more
4750 robust now and less unix-dependent. Also makes it easier for
4755 robust now and less unix-dependent. Also makes it easier for
4751 people to later upgrade versions.
4756 people to later upgrade versions.
4752
4757
4753 * Changed @exit to @abort to reflect the fact that it's pretty
4758 * Changed @exit to @abort to reflect the fact that it's pretty
4754 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4759 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4755 becomes significant only when IPyhton is embedded: in that case,
4760 becomes significant only when IPyhton is embedded: in that case,
4756 C-D closes IPython only, but @abort kills the enclosing program
4761 C-D closes IPython only, but @abort kills the enclosing program
4757 too (unless it had called IPython inside a try catching
4762 too (unless it had called IPython inside a try catching
4758 SystemExit).
4763 SystemExit).
4759
4764
4760 * Created Shell module which exposes the actuall IPython Shell
4765 * Created Shell module which exposes the actuall IPython Shell
4761 classes, currently the normal and the embeddable one. This at
4766 classes, currently the normal and the embeddable one. This at
4762 least offers a stable interface we won't need to change when
4767 least offers a stable interface we won't need to change when
4763 (later) the internals are rewritten. That rewrite will be confined
4768 (later) the internals are rewritten. That rewrite will be confined
4764 to iplib and ipmaker, but the Shell interface should remain as is.
4769 to iplib and ipmaker, but the Shell interface should remain as is.
4765
4770
4766 * Added embed module which offers an embeddable IPShell object,
4771 * Added embed module which offers an embeddable IPShell object,
4767 useful to fire up IPython *inside* a running program. Great for
4772 useful to fire up IPython *inside* a running program. Great for
4768 debugging or dynamical data analysis.
4773 debugging or dynamical data analysis.
4769
4774
4770 2001-12-08 Fernando Perez <fperez@colorado.edu>
4775 2001-12-08 Fernando Perez <fperez@colorado.edu>
4771
4776
4772 * Fixed small bug preventing seeing info from methods of defined
4777 * Fixed small bug preventing seeing info from methods of defined
4773 objects (incorrect namespace in _ofind()).
4778 objects (incorrect namespace in _ofind()).
4774
4779
4775 * Documentation cleanup. Moved the main usage docstrings to a
4780 * Documentation cleanup. Moved the main usage docstrings to a
4776 separate file, usage.py (cleaner to maintain, and hopefully in the
4781 separate file, usage.py (cleaner to maintain, and hopefully in the
4777 future some perlpod-like way of producing interactive, man and
4782 future some perlpod-like way of producing interactive, man and
4778 html docs out of it will be found).
4783 html docs out of it will be found).
4779
4784
4780 * Added @profile to see your profile at any time.
4785 * Added @profile to see your profile at any time.
4781
4786
4782 * Added @p as an alias for 'print'. It's especially convenient if
4787 * Added @p as an alias for 'print'. It's especially convenient if
4783 using automagic ('p x' prints x).
4788 using automagic ('p x' prints x).
4784
4789
4785 * Small cleanups and fixes after a pychecker run.
4790 * Small cleanups and fixes after a pychecker run.
4786
4791
4787 * Changed the @cd command to handle @cd - and @cd -<n> for
4792 * Changed the @cd command to handle @cd - and @cd -<n> for
4788 visiting any directory in _dh.
4793 visiting any directory in _dh.
4789
4794
4790 * Introduced _dh, a history of visited directories. @dhist prints
4795 * Introduced _dh, a history of visited directories. @dhist prints
4791 it out with numbers.
4796 it out with numbers.
4792
4797
4793 2001-12-07 Fernando Perez <fperez@colorado.edu>
4798 2001-12-07 Fernando Perez <fperez@colorado.edu>
4794
4799
4795 * Released 0.1.22
4800 * Released 0.1.22
4796
4801
4797 * Made initialization a bit more robust against invalid color
4802 * Made initialization a bit more robust against invalid color
4798 options in user input (exit, not traceback-crash).
4803 options in user input (exit, not traceback-crash).
4799
4804
4800 * Changed the bug crash reporter to write the report only in the
4805 * Changed the bug crash reporter to write the report only in the
4801 user's .ipython directory. That way IPython won't litter people's
4806 user's .ipython directory. That way IPython won't litter people's
4802 hard disks with crash files all over the place. Also print on
4807 hard disks with crash files all over the place. Also print on
4803 screen the necessary mail command.
4808 screen the necessary mail command.
4804
4809
4805 * With the new ultraTB, implemented LightBG color scheme for light
4810 * With the new ultraTB, implemented LightBG color scheme for light
4806 background terminals. A lot of people like white backgrounds, so I
4811 background terminals. A lot of people like white backgrounds, so I
4807 guess we should at least give them something readable.
4812 guess we should at least give them something readable.
4808
4813
4809 2001-12-06 Fernando Perez <fperez@colorado.edu>
4814 2001-12-06 Fernando Perez <fperez@colorado.edu>
4810
4815
4811 * Modified the structure of ultraTB. Now there's a proper class
4816 * Modified the structure of ultraTB. Now there's a proper class
4812 for tables of color schemes which allow adding schemes easily and
4817 for tables of color schemes which allow adding schemes easily and
4813 switching the active scheme without creating a new instance every
4818 switching the active scheme without creating a new instance every
4814 time (which was ridiculous). The syntax for creating new schemes
4819 time (which was ridiculous). The syntax for creating new schemes
4815 is also cleaner. I think ultraTB is finally done, with a clean
4820 is also cleaner. I think ultraTB is finally done, with a clean
4816 class structure. Names are also much cleaner (now there's proper
4821 class structure. Names are also much cleaner (now there's proper
4817 color tables, no need for every variable to also have 'color' in
4822 color tables, no need for every variable to also have 'color' in
4818 its name).
4823 its name).
4819
4824
4820 * Broke down genutils into separate files. Now genutils only
4825 * Broke down genutils into separate files. Now genutils only
4821 contains utility functions, and classes have been moved to their
4826 contains utility functions, and classes have been moved to their
4822 own files (they had enough independent functionality to warrant
4827 own files (they had enough independent functionality to warrant
4823 it): ConfigLoader, OutputTrap, Struct.
4828 it): ConfigLoader, OutputTrap, Struct.
4824
4829
4825 2001-12-05 Fernando Perez <fperez@colorado.edu>
4830 2001-12-05 Fernando Perez <fperez@colorado.edu>
4826
4831
4827 * IPython turns 21! Released version 0.1.21, as a candidate for
4832 * IPython turns 21! Released version 0.1.21, as a candidate for
4828 public consumption. If all goes well, release in a few days.
4833 public consumption. If all goes well, release in a few days.
4829
4834
4830 * Fixed path bug (files in Extensions/ directory wouldn't be found
4835 * Fixed path bug (files in Extensions/ directory wouldn't be found
4831 unless IPython/ was explicitly in sys.path).
4836 unless IPython/ was explicitly in sys.path).
4832
4837
4833 * Extended the FlexCompleter class as MagicCompleter to allow
4838 * Extended the FlexCompleter class as MagicCompleter to allow
4834 completion of @-starting lines.
4839 completion of @-starting lines.
4835
4840
4836 * Created __release__.py file as a central repository for release
4841 * Created __release__.py file as a central repository for release
4837 info that other files can read from.
4842 info that other files can read from.
4838
4843
4839 * Fixed small bug in logging: when logging was turned on in
4844 * Fixed small bug in logging: when logging was turned on in
4840 mid-session, old lines with special meanings (!@?) were being
4845 mid-session, old lines with special meanings (!@?) were being
4841 logged without the prepended comment, which is necessary since
4846 logged without the prepended comment, which is necessary since
4842 they are not truly valid python syntax. This should make session
4847 they are not truly valid python syntax. This should make session
4843 restores produce less errors.
4848 restores produce less errors.
4844
4849
4845 * The namespace cleanup forced me to make a FlexCompleter class
4850 * The namespace cleanup forced me to make a FlexCompleter class
4846 which is nothing but a ripoff of rlcompleter, but with selectable
4851 which is nothing but a ripoff of rlcompleter, but with selectable
4847 namespace (rlcompleter only works in __main__.__dict__). I'll try
4852 namespace (rlcompleter only works in __main__.__dict__). I'll try
4848 to submit a note to the authors to see if this change can be
4853 to submit a note to the authors to see if this change can be
4849 incorporated in future rlcompleter releases (Dec.6: done)
4854 incorporated in future rlcompleter releases (Dec.6: done)
4850
4855
4851 * More fixes to namespace handling. It was a mess! Now all
4856 * More fixes to namespace handling. It was a mess! Now all
4852 explicit references to __main__.__dict__ are gone (except when
4857 explicit references to __main__.__dict__ are gone (except when
4853 really needed) and everything is handled through the namespace
4858 really needed) and everything is handled through the namespace
4854 dicts in the IPython instance. We seem to be getting somewhere
4859 dicts in the IPython instance. We seem to be getting somewhere
4855 with this, finally...
4860 with this, finally...
4856
4861
4857 * Small documentation updates.
4862 * Small documentation updates.
4858
4863
4859 * Created the Extensions directory under IPython (with an
4864 * Created the Extensions directory under IPython (with an
4860 __init__.py). Put the PhysicalQ stuff there. This directory should
4865 __init__.py). Put the PhysicalQ stuff there. This directory should
4861 be used for all special-purpose extensions.
4866 be used for all special-purpose extensions.
4862
4867
4863 * File renaming:
4868 * File renaming:
4864 ipythonlib --> ipmaker
4869 ipythonlib --> ipmaker
4865 ipplib --> iplib
4870 ipplib --> iplib
4866 This makes a bit more sense in terms of what these files actually do.
4871 This makes a bit more sense in terms of what these files actually do.
4867
4872
4868 * Moved all the classes and functions in ipythonlib to ipplib, so
4873 * Moved all the classes and functions in ipythonlib to ipplib, so
4869 now ipythonlib only has make_IPython(). This will ease up its
4874 now ipythonlib only has make_IPython(). This will ease up its
4870 splitting in smaller functional chunks later.
4875 splitting in smaller functional chunks later.
4871
4876
4872 * Cleaned up (done, I think) output of @whos. Better column
4877 * Cleaned up (done, I think) output of @whos. Better column
4873 formatting, and now shows str(var) for as much as it can, which is
4878 formatting, and now shows str(var) for as much as it can, which is
4874 typically what one gets with a 'print var'.
4879 typically what one gets with a 'print var'.
4875
4880
4876 2001-12-04 Fernando Perez <fperez@colorado.edu>
4881 2001-12-04 Fernando Perez <fperez@colorado.edu>
4877
4882
4878 * Fixed namespace problems. Now builtin/IPyhton/user names get
4883 * Fixed namespace problems. Now builtin/IPyhton/user names get
4879 properly reported in their namespace. Internal namespace handling
4884 properly reported in their namespace. Internal namespace handling
4880 is finally getting decent (not perfect yet, but much better than
4885 is finally getting decent (not perfect yet, but much better than
4881 the ad-hoc mess we had).
4886 the ad-hoc mess we had).
4882
4887
4883 * Removed -exit option. If people just want to run a python
4888 * Removed -exit option. If people just want to run a python
4884 script, that's what the normal interpreter is for. Less
4889 script, that's what the normal interpreter is for. Less
4885 unnecessary options, less chances for bugs.
4890 unnecessary options, less chances for bugs.
4886
4891
4887 * Added a crash handler which generates a complete post-mortem if
4892 * Added a crash handler which generates a complete post-mortem if
4888 IPython crashes. This will help a lot in tracking bugs down the
4893 IPython crashes. This will help a lot in tracking bugs down the
4889 road.
4894 road.
4890
4895
4891 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4896 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4892 which were boud to functions being reassigned would bypass the
4897 which were boud to functions being reassigned would bypass the
4893 logger, breaking the sync of _il with the prompt counter. This
4898 logger, breaking the sync of _il with the prompt counter. This
4894 would then crash IPython later when a new line was logged.
4899 would then crash IPython later when a new line was logged.
4895
4900
4896 2001-12-02 Fernando Perez <fperez@colorado.edu>
4901 2001-12-02 Fernando Perez <fperez@colorado.edu>
4897
4902
4898 * Made IPython a package. This means people don't have to clutter
4903 * Made IPython a package. This means people don't have to clutter
4899 their sys.path with yet another directory. Changed the INSTALL
4904 their sys.path with yet another directory. Changed the INSTALL
4900 file accordingly.
4905 file accordingly.
4901
4906
4902 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4907 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4903 sorts its output (so @who shows it sorted) and @whos formats the
4908 sorts its output (so @who shows it sorted) and @whos formats the
4904 table according to the width of the first column. Nicer, easier to
4909 table according to the width of the first column. Nicer, easier to
4905 read. Todo: write a generic table_format() which takes a list of
4910 read. Todo: write a generic table_format() which takes a list of
4906 lists and prints it nicely formatted, with optional row/column
4911 lists and prints it nicely formatted, with optional row/column
4907 separators and proper padding and justification.
4912 separators and proper padding and justification.
4908
4913
4909 * Released 0.1.20
4914 * Released 0.1.20
4910
4915
4911 * Fixed bug in @log which would reverse the inputcache list (a
4916 * Fixed bug in @log which would reverse the inputcache list (a
4912 copy operation was missing).
4917 copy operation was missing).
4913
4918
4914 * Code cleanup. @config was changed to use page(). Better, since
4919 * Code cleanup. @config was changed to use page(). Better, since
4915 its output is always quite long.
4920 its output is always quite long.
4916
4921
4917 * Itpl is back as a dependency. I was having too many problems
4922 * Itpl is back as a dependency. I was having too many problems
4918 getting the parametric aliases to work reliably, and it's just
4923 getting the parametric aliases to work reliably, and it's just
4919 easier to code weird string operations with it than playing %()s
4924 easier to code weird string operations with it than playing %()s
4920 games. It's only ~6k, so I don't think it's too big a deal.
4925 games. It's only ~6k, so I don't think it's too big a deal.
4921
4926
4922 * Found (and fixed) a very nasty bug with history. !lines weren't
4927 * Found (and fixed) a very nasty bug with history. !lines weren't
4923 getting cached, and the out of sync caches would crash
4928 getting cached, and the out of sync caches would crash
4924 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4929 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4925 division of labor a bit better. Bug fixed, cleaner structure.
4930 division of labor a bit better. Bug fixed, cleaner structure.
4926
4931
4927 2001-12-01 Fernando Perez <fperez@colorado.edu>
4932 2001-12-01 Fernando Perez <fperez@colorado.edu>
4928
4933
4929 * Released 0.1.19
4934 * Released 0.1.19
4930
4935
4931 * Added option -n to @hist to prevent line number printing. Much
4936 * Added option -n to @hist to prevent line number printing. Much
4932 easier to copy/paste code this way.
4937 easier to copy/paste code this way.
4933
4938
4934 * Created global _il to hold the input list. Allows easy
4939 * Created global _il to hold the input list. Allows easy
4935 re-execution of blocks of code by slicing it (inspired by Janko's
4940 re-execution of blocks of code by slicing it (inspired by Janko's
4936 comment on 'macros').
4941 comment on 'macros').
4937
4942
4938 * Small fixes and doc updates.
4943 * Small fixes and doc updates.
4939
4944
4940 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4945 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4941 much too fragile with automagic. Handles properly multi-line
4946 much too fragile with automagic. Handles properly multi-line
4942 statements and takes parameters.
4947 statements and takes parameters.
4943
4948
4944 2001-11-30 Fernando Perez <fperez@colorado.edu>
4949 2001-11-30 Fernando Perez <fperez@colorado.edu>
4945
4950
4946 * Version 0.1.18 released.
4951 * Version 0.1.18 released.
4947
4952
4948 * Fixed nasty namespace bug in initial module imports.
4953 * Fixed nasty namespace bug in initial module imports.
4949
4954
4950 * Added copyright/license notes to all code files (except
4955 * Added copyright/license notes to all code files (except
4951 DPyGetOpt). For the time being, LGPL. That could change.
4956 DPyGetOpt). For the time being, LGPL. That could change.
4952
4957
4953 * Rewrote a much nicer README, updated INSTALL, cleaned up
4958 * Rewrote a much nicer README, updated INSTALL, cleaned up
4954 ipythonrc-* samples.
4959 ipythonrc-* samples.
4955
4960
4956 * Overall code/documentation cleanup. Basically ready for
4961 * Overall code/documentation cleanup. Basically ready for
4957 release. Only remaining thing: licence decision (LGPL?).
4962 release. Only remaining thing: licence decision (LGPL?).
4958
4963
4959 * Converted load_config to a class, ConfigLoader. Now recursion
4964 * Converted load_config to a class, ConfigLoader. Now recursion
4960 control is better organized. Doesn't include the same file twice.
4965 control is better organized. Doesn't include the same file twice.
4961
4966
4962 2001-11-29 Fernando Perez <fperez@colorado.edu>
4967 2001-11-29 Fernando Perez <fperez@colorado.edu>
4963
4968
4964 * Got input history working. Changed output history variables from
4969 * Got input history working. Changed output history variables from
4965 _p to _o so that _i is for input and _o for output. Just cleaner
4970 _p to _o so that _i is for input and _o for output. Just cleaner
4966 convention.
4971 convention.
4967
4972
4968 * Implemented parametric aliases. This pretty much allows the
4973 * Implemented parametric aliases. This pretty much allows the
4969 alias system to offer full-blown shell convenience, I think.
4974 alias system to offer full-blown shell convenience, I think.
4970
4975
4971 * Version 0.1.17 released, 0.1.18 opened.
4976 * Version 0.1.17 released, 0.1.18 opened.
4972
4977
4973 * dot_ipython/ipythonrc (alias): added documentation.
4978 * dot_ipython/ipythonrc (alias): added documentation.
4974 (xcolor): Fixed small bug (xcolors -> xcolor)
4979 (xcolor): Fixed small bug (xcolors -> xcolor)
4975
4980
4976 * Changed the alias system. Now alias is a magic command to define
4981 * Changed the alias system. Now alias is a magic command to define
4977 aliases just like the shell. Rationale: the builtin magics should
4982 aliases just like the shell. Rationale: the builtin magics should
4978 be there for things deeply connected to IPython's
4983 be there for things deeply connected to IPython's
4979 architecture. And this is a much lighter system for what I think
4984 architecture. And this is a much lighter system for what I think
4980 is the really important feature: allowing users to define quickly
4985 is the really important feature: allowing users to define quickly
4981 magics that will do shell things for them, so they can customize
4986 magics that will do shell things for them, so they can customize
4982 IPython easily to match their work habits. If someone is really
4987 IPython easily to match their work habits. If someone is really
4983 desperate to have another name for a builtin alias, they can
4988 desperate to have another name for a builtin alias, they can
4984 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4989 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4985 works.
4990 works.
4986
4991
4987 2001-11-28 Fernando Perez <fperez@colorado.edu>
4992 2001-11-28 Fernando Perez <fperez@colorado.edu>
4988
4993
4989 * Changed @file so that it opens the source file at the proper
4994 * Changed @file so that it opens the source file at the proper
4990 line. Since it uses less, if your EDITOR environment is
4995 line. Since it uses less, if your EDITOR environment is
4991 configured, typing v will immediately open your editor of choice
4996 configured, typing v will immediately open your editor of choice
4992 right at the line where the object is defined. Not as quick as
4997 right at the line where the object is defined. Not as quick as
4993 having a direct @edit command, but for all intents and purposes it
4998 having a direct @edit command, but for all intents and purposes it
4994 works. And I don't have to worry about writing @edit to deal with
4999 works. And I don't have to worry about writing @edit to deal with
4995 all the editors, less does that.
5000 all the editors, less does that.
4996
5001
4997 * Version 0.1.16 released, 0.1.17 opened.
5002 * Version 0.1.16 released, 0.1.17 opened.
4998
5003
4999 * Fixed some nasty bugs in the page/page_dumb combo that could
5004 * Fixed some nasty bugs in the page/page_dumb combo that could
5000 crash IPython.
5005 crash IPython.
5001
5006
5002 2001-11-27 Fernando Perez <fperez@colorado.edu>
5007 2001-11-27 Fernando Perez <fperez@colorado.edu>
5003
5008
5004 * Version 0.1.15 released, 0.1.16 opened.
5009 * Version 0.1.15 released, 0.1.16 opened.
5005
5010
5006 * Finally got ? and ?? to work for undefined things: now it's
5011 * Finally got ? and ?? to work for undefined things: now it's
5007 possible to type {}.get? and get information about the get method
5012 possible to type {}.get? and get information about the get method
5008 of dicts, or os.path? even if only os is defined (so technically
5013 of dicts, or os.path? even if only os is defined (so technically
5009 os.path isn't). Works at any level. For example, after import os,
5014 os.path isn't). Works at any level. For example, after import os,
5010 os?, os.path?, os.path.abspath? all work. This is great, took some
5015 os?, os.path?, os.path.abspath? all work. This is great, took some
5011 work in _ofind.
5016 work in _ofind.
5012
5017
5013 * Fixed more bugs with logging. The sanest way to do it was to add
5018 * Fixed more bugs with logging. The sanest way to do it was to add
5014 to @log a 'mode' parameter. Killed two in one shot (this mode
5019 to @log a 'mode' parameter. Killed two in one shot (this mode
5015 option was a request of Janko's). I think it's finally clean
5020 option was a request of Janko's). I think it's finally clean
5016 (famous last words).
5021 (famous last words).
5017
5022
5018 * Added a page_dumb() pager which does a decent job of paging on
5023 * Added a page_dumb() pager which does a decent job of paging on
5019 screen, if better things (like less) aren't available. One less
5024 screen, if better things (like less) aren't available. One less
5020 unix dependency (someday maybe somebody will port this to
5025 unix dependency (someday maybe somebody will port this to
5021 windows).
5026 windows).
5022
5027
5023 * Fixed problem in magic_log: would lock of logging out if log
5028 * Fixed problem in magic_log: would lock of logging out if log
5024 creation failed (because it would still think it had succeeded).
5029 creation failed (because it would still think it had succeeded).
5025
5030
5026 * Improved the page() function using curses to auto-detect screen
5031 * Improved the page() function using curses to auto-detect screen
5027 size. Now it can make a much better decision on whether to print
5032 size. Now it can make a much better decision on whether to print
5028 or page a string. Option screen_length was modified: a value 0
5033 or page a string. Option screen_length was modified: a value 0
5029 means auto-detect, and that's the default now.
5034 means auto-detect, and that's the default now.
5030
5035
5031 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5036 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5032 go out. I'll test it for a few days, then talk to Janko about
5037 go out. I'll test it for a few days, then talk to Janko about
5033 licences and announce it.
5038 licences and announce it.
5034
5039
5035 * Fixed the length of the auto-generated ---> prompt which appears
5040 * Fixed the length of the auto-generated ---> prompt which appears
5036 for auto-parens and auto-quotes. Getting this right isn't trivial,
5041 for auto-parens and auto-quotes. Getting this right isn't trivial,
5037 with all the color escapes, different prompt types and optional
5042 with all the color escapes, different prompt types and optional
5038 separators. But it seems to be working in all the combinations.
5043 separators. But it seems to be working in all the combinations.
5039
5044
5040 2001-11-26 Fernando Perez <fperez@colorado.edu>
5045 2001-11-26 Fernando Perez <fperez@colorado.edu>
5041
5046
5042 * Wrote a regexp filter to get option types from the option names
5047 * Wrote a regexp filter to get option types from the option names
5043 string. This eliminates the need to manually keep two duplicate
5048 string. This eliminates the need to manually keep two duplicate
5044 lists.
5049 lists.
5045
5050
5046 * Removed the unneeded check_option_names. Now options are handled
5051 * Removed the unneeded check_option_names. Now options are handled
5047 in a much saner manner and it's easy to visually check that things
5052 in a much saner manner and it's easy to visually check that things
5048 are ok.
5053 are ok.
5049
5054
5050 * Updated version numbers on all files I modified to carry a
5055 * Updated version numbers on all files I modified to carry a
5051 notice so Janko and Nathan have clear version markers.
5056 notice so Janko and Nathan have clear version markers.
5052
5057
5053 * Updated docstring for ultraTB with my changes. I should send
5058 * Updated docstring for ultraTB with my changes. I should send
5054 this to Nathan.
5059 this to Nathan.
5055
5060
5056 * Lots of small fixes. Ran everything through pychecker again.
5061 * Lots of small fixes. Ran everything through pychecker again.
5057
5062
5058 * Made loading of deep_reload an cmd line option. If it's not too
5063 * Made loading of deep_reload an cmd line option. If it's not too
5059 kosher, now people can just disable it. With -nodeep_reload it's
5064 kosher, now people can just disable it. With -nodeep_reload it's
5060 still available as dreload(), it just won't overwrite reload().
5065 still available as dreload(), it just won't overwrite reload().
5061
5066
5062 * Moved many options to the no| form (-opt and -noopt
5067 * Moved many options to the no| form (-opt and -noopt
5063 accepted). Cleaner.
5068 accepted). Cleaner.
5064
5069
5065 * Changed magic_log so that if called with no parameters, it uses
5070 * Changed magic_log so that if called with no parameters, it uses
5066 'rotate' mode. That way auto-generated logs aren't automatically
5071 'rotate' mode. That way auto-generated logs aren't automatically
5067 over-written. For normal logs, now a backup is made if it exists
5072 over-written. For normal logs, now a backup is made if it exists
5068 (only 1 level of backups). A new 'backup' mode was added to the
5073 (only 1 level of backups). A new 'backup' mode was added to the
5069 Logger class to support this. This was a request by Janko.
5074 Logger class to support this. This was a request by Janko.
5070
5075
5071 * Added @logoff/@logon to stop/restart an active log.
5076 * Added @logoff/@logon to stop/restart an active log.
5072
5077
5073 * Fixed a lot of bugs in log saving/replay. It was pretty
5078 * Fixed a lot of bugs in log saving/replay. It was pretty
5074 broken. Now special lines (!@,/) appear properly in the command
5079 broken. Now special lines (!@,/) appear properly in the command
5075 history after a log replay.
5080 history after a log replay.
5076
5081
5077 * Tried and failed to implement full session saving via pickle. My
5082 * Tried and failed to implement full session saving via pickle. My
5078 idea was to pickle __main__.__dict__, but modules can't be
5083 idea was to pickle __main__.__dict__, but modules can't be
5079 pickled. This would be a better alternative to replaying logs, but
5084 pickled. This would be a better alternative to replaying logs, but
5080 seems quite tricky to get to work. Changed -session to be called
5085 seems quite tricky to get to work. Changed -session to be called
5081 -logplay, which more accurately reflects what it does. And if we
5086 -logplay, which more accurately reflects what it does. And if we
5082 ever get real session saving working, -session is now available.
5087 ever get real session saving working, -session is now available.
5083
5088
5084 * Implemented color schemes for prompts also. As for tracebacks,
5089 * Implemented color schemes for prompts also. As for tracebacks,
5085 currently only NoColor and Linux are supported. But now the
5090 currently only NoColor and Linux are supported. But now the
5086 infrastructure is in place, based on a generic ColorScheme
5091 infrastructure is in place, based on a generic ColorScheme
5087 class. So writing and activating new schemes both for the prompts
5092 class. So writing and activating new schemes both for the prompts
5088 and the tracebacks should be straightforward.
5093 and the tracebacks should be straightforward.
5089
5094
5090 * Version 0.1.13 released, 0.1.14 opened.
5095 * Version 0.1.13 released, 0.1.14 opened.
5091
5096
5092 * Changed handling of options for output cache. Now counter is
5097 * Changed handling of options for output cache. Now counter is
5093 hardwired starting at 1 and one specifies the maximum number of
5098 hardwired starting at 1 and one specifies the maximum number of
5094 entries *in the outcache* (not the max prompt counter). This is
5099 entries *in the outcache* (not the max prompt counter). This is
5095 much better, since many statements won't increase the cache
5100 much better, since many statements won't increase the cache
5096 count. It also eliminated some confusing options, now there's only
5101 count. It also eliminated some confusing options, now there's only
5097 one: cache_size.
5102 one: cache_size.
5098
5103
5099 * Added 'alias' magic function and magic_alias option in the
5104 * Added 'alias' magic function and magic_alias option in the
5100 ipythonrc file. Now the user can easily define whatever names he
5105 ipythonrc file. Now the user can easily define whatever names he
5101 wants for the magic functions without having to play weird
5106 wants for the magic functions without having to play weird
5102 namespace games. This gives IPython a real shell-like feel.
5107 namespace games. This gives IPython a real shell-like feel.
5103
5108
5104 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5109 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5105 @ or not).
5110 @ or not).
5106
5111
5107 This was one of the last remaining 'visible' bugs (that I know
5112 This was one of the last remaining 'visible' bugs (that I know
5108 of). I think if I can clean up the session loading so it works
5113 of). I think if I can clean up the session loading so it works
5109 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5114 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5110 about licensing).
5115 about licensing).
5111
5116
5112 2001-11-25 Fernando Perez <fperez@colorado.edu>
5117 2001-11-25 Fernando Perez <fperez@colorado.edu>
5113
5118
5114 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5119 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5115 there's a cleaner distinction between what ? and ?? show.
5120 there's a cleaner distinction between what ? and ?? show.
5116
5121
5117 * Added screen_length option. Now the user can define his own
5122 * Added screen_length option. Now the user can define his own
5118 screen size for page() operations.
5123 screen size for page() operations.
5119
5124
5120 * Implemented magic shell-like functions with automatic code
5125 * Implemented magic shell-like functions with automatic code
5121 generation. Now adding another function is just a matter of adding
5126 generation. Now adding another function is just a matter of adding
5122 an entry to a dict, and the function is dynamically generated at
5127 an entry to a dict, and the function is dynamically generated at
5123 run-time. Python has some really cool features!
5128 run-time. Python has some really cool features!
5124
5129
5125 * Renamed many options to cleanup conventions a little. Now all
5130 * Renamed many options to cleanup conventions a little. Now all
5126 are lowercase, and only underscores where needed. Also in the code
5131 are lowercase, and only underscores where needed. Also in the code
5127 option name tables are clearer.
5132 option name tables are clearer.
5128
5133
5129 * Changed prompts a little. Now input is 'In [n]:' instead of
5134 * Changed prompts a little. Now input is 'In [n]:' instead of
5130 'In[n]:='. This allows it the numbers to be aligned with the
5135 'In[n]:='. This allows it the numbers to be aligned with the
5131 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5136 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5132 Python (it was a Mathematica thing). The '...' continuation prompt
5137 Python (it was a Mathematica thing). The '...' continuation prompt
5133 was also changed a little to align better.
5138 was also changed a little to align better.
5134
5139
5135 * Fixed bug when flushing output cache. Not all _p<n> variables
5140 * Fixed bug when flushing output cache. Not all _p<n> variables
5136 exist, so their deletion needs to be wrapped in a try:
5141 exist, so their deletion needs to be wrapped in a try:
5137
5142
5138 * Figured out how to properly use inspect.formatargspec() (it
5143 * Figured out how to properly use inspect.formatargspec() (it
5139 requires the args preceded by *). So I removed all the code from
5144 requires the args preceded by *). So I removed all the code from
5140 _get_pdef in Magic, which was just replicating that.
5145 _get_pdef in Magic, which was just replicating that.
5141
5146
5142 * Added test to prefilter to allow redefining magic function names
5147 * Added test to prefilter to allow redefining magic function names
5143 as variables. This is ok, since the @ form is always available,
5148 as variables. This is ok, since the @ form is always available,
5144 but whe should allow the user to define a variable called 'ls' if
5149 but whe should allow the user to define a variable called 'ls' if
5145 he needs it.
5150 he needs it.
5146
5151
5147 * Moved the ToDo information from README into a separate ToDo.
5152 * Moved the ToDo information from README into a separate ToDo.
5148
5153
5149 * General code cleanup and small bugfixes. I think it's close to a
5154 * General code cleanup and small bugfixes. I think it's close to a
5150 state where it can be released, obviously with a big 'beta'
5155 state where it can be released, obviously with a big 'beta'
5151 warning on it.
5156 warning on it.
5152
5157
5153 * Got the magic function split to work. Now all magics are defined
5158 * Got the magic function split to work. Now all magics are defined
5154 in a separate class. It just organizes things a bit, and now
5159 in a separate class. It just organizes things a bit, and now
5155 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5160 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5156 was too long).
5161 was too long).
5157
5162
5158 * Changed @clear to @reset to avoid potential confusions with
5163 * Changed @clear to @reset to avoid potential confusions with
5159 the shell command clear. Also renamed @cl to @clear, which does
5164 the shell command clear. Also renamed @cl to @clear, which does
5160 exactly what people expect it to from their shell experience.
5165 exactly what people expect it to from their shell experience.
5161
5166
5162 Added a check to the @reset command (since it's so
5167 Added a check to the @reset command (since it's so
5163 destructive, it's probably a good idea to ask for confirmation).
5168 destructive, it's probably a good idea to ask for confirmation).
5164 But now reset only works for full namespace resetting. Since the
5169 But now reset only works for full namespace resetting. Since the
5165 del keyword is already there for deleting a few specific
5170 del keyword is already there for deleting a few specific
5166 variables, I don't see the point of having a redundant magic
5171 variables, I don't see the point of having a redundant magic
5167 function for the same task.
5172 function for the same task.
5168
5173
5169 2001-11-24 Fernando Perez <fperez@colorado.edu>
5174 2001-11-24 Fernando Perez <fperez@colorado.edu>
5170
5175
5171 * Updated the builtin docs (esp. the ? ones).
5176 * Updated the builtin docs (esp. the ? ones).
5172
5177
5173 * Ran all the code through pychecker. Not terribly impressed with
5178 * Ran all the code through pychecker. Not terribly impressed with
5174 it: lots of spurious warnings and didn't really find anything of
5179 it: lots of spurious warnings and didn't really find anything of
5175 substance (just a few modules being imported and not used).
5180 substance (just a few modules being imported and not used).
5176
5181
5177 * Implemented the new ultraTB functionality into IPython. New
5182 * Implemented the new ultraTB functionality into IPython. New
5178 option: xcolors. This chooses color scheme. xmode now only selects
5183 option: xcolors. This chooses color scheme. xmode now only selects
5179 between Plain and Verbose. Better orthogonality.
5184 between Plain and Verbose. Better orthogonality.
5180
5185
5181 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5186 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5182 mode and color scheme for the exception handlers. Now it's
5187 mode and color scheme for the exception handlers. Now it's
5183 possible to have the verbose traceback with no coloring.
5188 possible to have the verbose traceback with no coloring.
5184
5189
5185 2001-11-23 Fernando Perez <fperez@colorado.edu>
5190 2001-11-23 Fernando Perez <fperez@colorado.edu>
5186
5191
5187 * Version 0.1.12 released, 0.1.13 opened.
5192 * Version 0.1.12 released, 0.1.13 opened.
5188
5193
5189 * Removed option to set auto-quote and auto-paren escapes by
5194 * Removed option to set auto-quote and auto-paren escapes by
5190 user. The chances of breaking valid syntax are just too high. If
5195 user. The chances of breaking valid syntax are just too high. If
5191 someone *really* wants, they can always dig into the code.
5196 someone *really* wants, they can always dig into the code.
5192
5197
5193 * Made prompt separators configurable.
5198 * Made prompt separators configurable.
5194
5199
5195 2001-11-22 Fernando Perez <fperez@colorado.edu>
5200 2001-11-22 Fernando Perez <fperez@colorado.edu>
5196
5201
5197 * Small bugfixes in many places.
5202 * Small bugfixes in many places.
5198
5203
5199 * Removed the MyCompleter class from ipplib. It seemed redundant
5204 * Removed the MyCompleter class from ipplib. It seemed redundant
5200 with the C-p,C-n history search functionality. Less code to
5205 with the C-p,C-n history search functionality. Less code to
5201 maintain.
5206 maintain.
5202
5207
5203 * Moved all the original ipython.py code into ipythonlib.py. Right
5208 * Moved all the original ipython.py code into ipythonlib.py. Right
5204 now it's just one big dump into a function called make_IPython, so
5209 now it's just one big dump into a function called make_IPython, so
5205 no real modularity has been gained. But at least it makes the
5210 no real modularity has been gained. But at least it makes the
5206 wrapper script tiny, and since ipythonlib is a module, it gets
5211 wrapper script tiny, and since ipythonlib is a module, it gets
5207 compiled and startup is much faster.
5212 compiled and startup is much faster.
5208
5213
5209 This is a reasobably 'deep' change, so we should test it for a
5214 This is a reasobably 'deep' change, so we should test it for a
5210 while without messing too much more with the code.
5215 while without messing too much more with the code.
5211
5216
5212 2001-11-21 Fernando Perez <fperez@colorado.edu>
5217 2001-11-21 Fernando Perez <fperez@colorado.edu>
5213
5218
5214 * Version 0.1.11 released, 0.1.12 opened for further work.
5219 * Version 0.1.11 released, 0.1.12 opened for further work.
5215
5220
5216 * Removed dependency on Itpl. It was only needed in one place. It
5221 * Removed dependency on Itpl. It was only needed in one place. It
5217 would be nice if this became part of python, though. It makes life
5222 would be nice if this became part of python, though. It makes life
5218 *a lot* easier in some cases.
5223 *a lot* easier in some cases.
5219
5224
5220 * Simplified the prefilter code a bit. Now all handlers are
5225 * Simplified the prefilter code a bit. Now all handlers are
5221 expected to explicitly return a value (at least a blank string).
5226 expected to explicitly return a value (at least a blank string).
5222
5227
5223 * Heavy edits in ipplib. Removed the help system altogether. Now
5228 * Heavy edits in ipplib. Removed the help system altogether. Now
5224 obj?/?? is used for inspecting objects, a magic @doc prints
5229 obj?/?? is used for inspecting objects, a magic @doc prints
5225 docstrings, and full-blown Python help is accessed via the 'help'
5230 docstrings, and full-blown Python help is accessed via the 'help'
5226 keyword. This cleans up a lot of code (less to maintain) and does
5231 keyword. This cleans up a lot of code (less to maintain) and does
5227 the job. Since 'help' is now a standard Python component, might as
5232 the job. Since 'help' is now a standard Python component, might as
5228 well use it and remove duplicate functionality.
5233 well use it and remove duplicate functionality.
5229
5234
5230 Also removed the option to use ipplib as a standalone program. By
5235 Also removed the option to use ipplib as a standalone program. By
5231 now it's too dependent on other parts of IPython to function alone.
5236 now it's too dependent on other parts of IPython to function alone.
5232
5237
5233 * Fixed bug in genutils.pager. It would crash if the pager was
5238 * Fixed bug in genutils.pager. It would crash if the pager was
5234 exited immediately after opening (broken pipe).
5239 exited immediately after opening (broken pipe).
5235
5240
5236 * Trimmed down the VerboseTB reporting a little. The header is
5241 * Trimmed down the VerboseTB reporting a little. The header is
5237 much shorter now and the repeated exception arguments at the end
5242 much shorter now and the repeated exception arguments at the end
5238 have been removed. For interactive use the old header seemed a bit
5243 have been removed. For interactive use the old header seemed a bit
5239 excessive.
5244 excessive.
5240
5245
5241 * Fixed small bug in output of @whos for variables with multi-word
5246 * Fixed small bug in output of @whos for variables with multi-word
5242 types (only first word was displayed).
5247 types (only first word was displayed).
5243
5248
5244 2001-11-17 Fernando Perez <fperez@colorado.edu>
5249 2001-11-17 Fernando Perez <fperez@colorado.edu>
5245
5250
5246 * Version 0.1.10 released, 0.1.11 opened for further work.
5251 * Version 0.1.10 released, 0.1.11 opened for further work.
5247
5252
5248 * Modified dirs and friends. dirs now *returns* the stack (not
5253 * Modified dirs and friends. dirs now *returns* the stack (not
5249 prints), so one can manipulate it as a variable. Convenient to
5254 prints), so one can manipulate it as a variable. Convenient to
5250 travel along many directories.
5255 travel along many directories.
5251
5256
5252 * Fixed bug in magic_pdef: would only work with functions with
5257 * Fixed bug in magic_pdef: would only work with functions with
5253 arguments with default values.
5258 arguments with default values.
5254
5259
5255 2001-11-14 Fernando Perez <fperez@colorado.edu>
5260 2001-11-14 Fernando Perez <fperez@colorado.edu>
5256
5261
5257 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5262 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5258 example with IPython. Various other minor fixes and cleanups.
5263 example with IPython. Various other minor fixes and cleanups.
5259
5264
5260 * Version 0.1.9 released, 0.1.10 opened for further work.
5265 * Version 0.1.9 released, 0.1.10 opened for further work.
5261
5266
5262 * Added sys.path to the list of directories searched in the
5267 * Added sys.path to the list of directories searched in the
5263 execfile= option. It used to be the current directory and the
5268 execfile= option. It used to be the current directory and the
5264 user's IPYTHONDIR only.
5269 user's IPYTHONDIR only.
5265
5270
5266 2001-11-13 Fernando Perez <fperez@colorado.edu>
5271 2001-11-13 Fernando Perez <fperez@colorado.edu>
5267
5272
5268 * Reinstated the raw_input/prefilter separation that Janko had
5273 * Reinstated the raw_input/prefilter separation that Janko had
5269 initially. This gives a more convenient setup for extending the
5274 initially. This gives a more convenient setup for extending the
5270 pre-processor from the outside: raw_input always gets a string,
5275 pre-processor from the outside: raw_input always gets a string,
5271 and prefilter has to process it. We can then redefine prefilter
5276 and prefilter has to process it. We can then redefine prefilter
5272 from the outside and implement extensions for special
5277 from the outside and implement extensions for special
5273 purposes.
5278 purposes.
5274
5279
5275 Today I got one for inputting PhysicalQuantity objects
5280 Today I got one for inputting PhysicalQuantity objects
5276 (from Scientific) without needing any function calls at
5281 (from Scientific) without needing any function calls at
5277 all. Extremely convenient, and it's all done as a user-level
5282 all. Extremely convenient, and it's all done as a user-level
5278 extension (no IPython code was touched). Now instead of:
5283 extension (no IPython code was touched). Now instead of:
5279 a = PhysicalQuantity(4.2,'m/s**2')
5284 a = PhysicalQuantity(4.2,'m/s**2')
5280 one can simply say
5285 one can simply say
5281 a = 4.2 m/s**2
5286 a = 4.2 m/s**2
5282 or even
5287 or even
5283 a = 4.2 m/s^2
5288 a = 4.2 m/s^2
5284
5289
5285 I use this, but it's also a proof of concept: IPython really is
5290 I use this, but it's also a proof of concept: IPython really is
5286 fully user-extensible, even at the level of the parsing of the
5291 fully user-extensible, even at the level of the parsing of the
5287 command line. It's not trivial, but it's perfectly doable.
5292 command line. It's not trivial, but it's perfectly doable.
5288
5293
5289 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5294 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5290 the problem of modules being loaded in the inverse order in which
5295 the problem of modules being loaded in the inverse order in which
5291 they were defined in
5296 they were defined in
5292
5297
5293 * Version 0.1.8 released, 0.1.9 opened for further work.
5298 * Version 0.1.8 released, 0.1.9 opened for further work.
5294
5299
5295 * Added magics pdef, source and file. They respectively show the
5300 * Added magics pdef, source and file. They respectively show the
5296 definition line ('prototype' in C), source code and full python
5301 definition line ('prototype' in C), source code and full python
5297 file for any callable object. The object inspector oinfo uses
5302 file for any callable object. The object inspector oinfo uses
5298 these to show the same information.
5303 these to show the same information.
5299
5304
5300 * Version 0.1.7 released, 0.1.8 opened for further work.
5305 * Version 0.1.7 released, 0.1.8 opened for further work.
5301
5306
5302 * Separated all the magic functions into a class called Magic. The
5307 * Separated all the magic functions into a class called Magic. The
5303 InteractiveShell class was becoming too big for Xemacs to handle
5308 InteractiveShell class was becoming too big for Xemacs to handle
5304 (de-indenting a line would lock it up for 10 seconds while it
5309 (de-indenting a line would lock it up for 10 seconds while it
5305 backtracked on the whole class!)
5310 backtracked on the whole class!)
5306
5311
5307 FIXME: didn't work. It can be done, but right now namespaces are
5312 FIXME: didn't work. It can be done, but right now namespaces are
5308 all messed up. Do it later (reverted it for now, so at least
5313 all messed up. Do it later (reverted it for now, so at least
5309 everything works as before).
5314 everything works as before).
5310
5315
5311 * Got the object introspection system (magic_oinfo) working! I
5316 * Got the object introspection system (magic_oinfo) working! I
5312 think this is pretty much ready for release to Janko, so he can
5317 think this is pretty much ready for release to Janko, so he can
5313 test it for a while and then announce it. Pretty much 100% of what
5318 test it for a while and then announce it. Pretty much 100% of what
5314 I wanted for the 'phase 1' release is ready. Happy, tired.
5319 I wanted for the 'phase 1' release is ready. Happy, tired.
5315
5320
5316 2001-11-12 Fernando Perez <fperez@colorado.edu>
5321 2001-11-12 Fernando Perez <fperez@colorado.edu>
5317
5322
5318 * Version 0.1.6 released, 0.1.7 opened for further work.
5323 * Version 0.1.6 released, 0.1.7 opened for further work.
5319
5324
5320 * Fixed bug in printing: it used to test for truth before
5325 * Fixed bug in printing: it used to test for truth before
5321 printing, so 0 wouldn't print. Now checks for None.
5326 printing, so 0 wouldn't print. Now checks for None.
5322
5327
5323 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5328 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5324 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5329 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5325 reaches by hand into the outputcache. Think of a better way to do
5330 reaches by hand into the outputcache. Think of a better way to do
5326 this later.
5331 this later.
5327
5332
5328 * Various small fixes thanks to Nathan's comments.
5333 * Various small fixes thanks to Nathan's comments.
5329
5334
5330 * Changed magic_pprint to magic_Pprint. This way it doesn't
5335 * Changed magic_pprint to magic_Pprint. This way it doesn't
5331 collide with pprint() and the name is consistent with the command
5336 collide with pprint() and the name is consistent with the command
5332 line option.
5337 line option.
5333
5338
5334 * Changed prompt counter behavior to be fully like
5339 * Changed prompt counter behavior to be fully like
5335 Mathematica's. That is, even input that doesn't return a result
5340 Mathematica's. That is, even input that doesn't return a result
5336 raises the prompt counter. The old behavior was kind of confusing
5341 raises the prompt counter. The old behavior was kind of confusing
5337 (getting the same prompt number several times if the operation
5342 (getting the same prompt number several times if the operation
5338 didn't return a result).
5343 didn't return a result).
5339
5344
5340 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5345 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5341
5346
5342 * Fixed -Classic mode (wasn't working anymore).
5347 * Fixed -Classic mode (wasn't working anymore).
5343
5348
5344 * Added colored prompts using Nathan's new code. Colors are
5349 * Added colored prompts using Nathan's new code. Colors are
5345 currently hardwired, they can be user-configurable. For
5350 currently hardwired, they can be user-configurable. For
5346 developers, they can be chosen in file ipythonlib.py, at the
5351 developers, they can be chosen in file ipythonlib.py, at the
5347 beginning of the CachedOutput class def.
5352 beginning of the CachedOutput class def.
5348
5353
5349 2001-11-11 Fernando Perez <fperez@colorado.edu>
5354 2001-11-11 Fernando Perez <fperez@colorado.edu>
5350
5355
5351 * Version 0.1.5 released, 0.1.6 opened for further work.
5356 * Version 0.1.5 released, 0.1.6 opened for further work.
5352
5357
5353 * Changed magic_env to *return* the environment as a dict (not to
5358 * Changed magic_env to *return* the environment as a dict (not to
5354 print it). This way it prints, but it can also be processed.
5359 print it). This way it prints, but it can also be processed.
5355
5360
5356 * Added Verbose exception reporting to interactive
5361 * Added Verbose exception reporting to interactive
5357 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5362 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5358 traceback. Had to make some changes to the ultraTB file. This is
5363 traceback. Had to make some changes to the ultraTB file. This is
5359 probably the last 'big' thing in my mental todo list. This ties
5364 probably the last 'big' thing in my mental todo list. This ties
5360 in with the next entry:
5365 in with the next entry:
5361
5366
5362 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5367 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5363 has to specify is Plain, Color or Verbose for all exception
5368 has to specify is Plain, Color or Verbose for all exception
5364 handling.
5369 handling.
5365
5370
5366 * Removed ShellServices option. All this can really be done via
5371 * Removed ShellServices option. All this can really be done via
5367 the magic system. It's easier to extend, cleaner and has automatic
5372 the magic system. It's easier to extend, cleaner and has automatic
5368 namespace protection and documentation.
5373 namespace protection and documentation.
5369
5374
5370 2001-11-09 Fernando Perez <fperez@colorado.edu>
5375 2001-11-09 Fernando Perez <fperez@colorado.edu>
5371
5376
5372 * Fixed bug in output cache flushing (missing parameter to
5377 * Fixed bug in output cache flushing (missing parameter to
5373 __init__). Other small bugs fixed (found using pychecker).
5378 __init__). Other small bugs fixed (found using pychecker).
5374
5379
5375 * Version 0.1.4 opened for bugfixing.
5380 * Version 0.1.4 opened for bugfixing.
5376
5381
5377 2001-11-07 Fernando Perez <fperez@colorado.edu>
5382 2001-11-07 Fernando Perez <fperez@colorado.edu>
5378
5383
5379 * Version 0.1.3 released, mainly because of the raw_input bug.
5384 * Version 0.1.3 released, mainly because of the raw_input bug.
5380
5385
5381 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5386 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5382 and when testing for whether things were callable, a call could
5387 and when testing for whether things were callable, a call could
5383 actually be made to certain functions. They would get called again
5388 actually be made to certain functions. They would get called again
5384 once 'really' executed, with a resulting double call. A disaster
5389 once 'really' executed, with a resulting double call. A disaster
5385 in many cases (list.reverse() would never work!).
5390 in many cases (list.reverse() would never work!).
5386
5391
5387 * Removed prefilter() function, moved its code to raw_input (which
5392 * Removed prefilter() function, moved its code to raw_input (which
5388 after all was just a near-empty caller for prefilter). This saves
5393 after all was just a near-empty caller for prefilter). This saves
5389 a function call on every prompt, and simplifies the class a tiny bit.
5394 a function call on every prompt, and simplifies the class a tiny bit.
5390
5395
5391 * Fix _ip to __ip name in magic example file.
5396 * Fix _ip to __ip name in magic example file.
5392
5397
5393 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5398 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5394 work with non-gnu versions of tar.
5399 work with non-gnu versions of tar.
5395
5400
5396 2001-11-06 Fernando Perez <fperez@colorado.edu>
5401 2001-11-06 Fernando Perez <fperez@colorado.edu>
5397
5402
5398 * Version 0.1.2. Just to keep track of the recent changes.
5403 * Version 0.1.2. Just to keep track of the recent changes.
5399
5404
5400 * Fixed nasty bug in output prompt routine. It used to check 'if
5405 * Fixed nasty bug in output prompt routine. It used to check 'if
5401 arg != None...'. Problem is, this fails if arg implements a
5406 arg != None...'. Problem is, this fails if arg implements a
5402 special comparison (__cmp__) which disallows comparing to
5407 special comparison (__cmp__) which disallows comparing to
5403 None. Found it when trying to use the PhysicalQuantity module from
5408 None. Found it when trying to use the PhysicalQuantity module from
5404 ScientificPython.
5409 ScientificPython.
5405
5410
5406 2001-11-05 Fernando Perez <fperez@colorado.edu>
5411 2001-11-05 Fernando Perez <fperez@colorado.edu>
5407
5412
5408 * Also added dirs. Now the pushd/popd/dirs family functions
5413 * Also added dirs. Now the pushd/popd/dirs family functions
5409 basically like the shell, with the added convenience of going home
5414 basically like the shell, with the added convenience of going home
5410 when called with no args.
5415 when called with no args.
5411
5416
5412 * pushd/popd slightly modified to mimic shell behavior more
5417 * pushd/popd slightly modified to mimic shell behavior more
5413 closely.
5418 closely.
5414
5419
5415 * Added env,pushd,popd from ShellServices as magic functions. I
5420 * Added env,pushd,popd from ShellServices as magic functions. I
5416 think the cleanest will be to port all desired functions from
5421 think the cleanest will be to port all desired functions from
5417 ShellServices as magics and remove ShellServices altogether. This
5422 ShellServices as magics and remove ShellServices altogether. This
5418 will provide a single, clean way of adding functionality
5423 will provide a single, clean way of adding functionality
5419 (shell-type or otherwise) to IP.
5424 (shell-type or otherwise) to IP.
5420
5425
5421 2001-11-04 Fernando Perez <fperez@colorado.edu>
5426 2001-11-04 Fernando Perez <fperez@colorado.edu>
5422
5427
5423 * Added .ipython/ directory to sys.path. This way users can keep
5428 * Added .ipython/ directory to sys.path. This way users can keep
5424 customizations there and access them via import.
5429 customizations there and access them via import.
5425
5430
5426 2001-11-03 Fernando Perez <fperez@colorado.edu>
5431 2001-11-03 Fernando Perez <fperez@colorado.edu>
5427
5432
5428 * Opened version 0.1.1 for new changes.
5433 * Opened version 0.1.1 for new changes.
5429
5434
5430 * Changed version number to 0.1.0: first 'public' release, sent to
5435 * Changed version number to 0.1.0: first 'public' release, sent to
5431 Nathan and Janko.
5436 Nathan and Janko.
5432
5437
5433 * Lots of small fixes and tweaks.
5438 * Lots of small fixes and tweaks.
5434
5439
5435 * Minor changes to whos format. Now strings are shown, snipped if
5440 * Minor changes to whos format. Now strings are shown, snipped if
5436 too long.
5441 too long.
5437
5442
5438 * Changed ShellServices to work on __main__ so they show up in @who
5443 * Changed ShellServices to work on __main__ so they show up in @who
5439
5444
5440 * Help also works with ? at the end of a line:
5445 * Help also works with ? at the end of a line:
5441 ?sin and sin?
5446 ?sin and sin?
5442 both produce the same effect. This is nice, as often I use the
5447 both produce the same effect. This is nice, as often I use the
5443 tab-complete to find the name of a method, but I used to then have
5448 tab-complete to find the name of a method, but I used to then have
5444 to go to the beginning of the line to put a ? if I wanted more
5449 to go to the beginning of the line to put a ? if I wanted more
5445 info. Now I can just add the ? and hit return. Convenient.
5450 info. Now I can just add the ? and hit return. Convenient.
5446
5451
5447 2001-11-02 Fernando Perez <fperez@colorado.edu>
5452 2001-11-02 Fernando Perez <fperez@colorado.edu>
5448
5453
5449 * Python version check (>=2.1) added.
5454 * Python version check (>=2.1) added.
5450
5455
5451 * Added LazyPython documentation. At this point the docs are quite
5456 * Added LazyPython documentation. At this point the docs are quite
5452 a mess. A cleanup is in order.
5457 a mess. A cleanup is in order.
5453
5458
5454 * Auto-installer created. For some bizarre reason, the zipfiles
5459 * Auto-installer created. For some bizarre reason, the zipfiles
5455 module isn't working on my system. So I made a tar version
5460 module isn't working on my system. So I made a tar version
5456 (hopefully the command line options in various systems won't kill
5461 (hopefully the command line options in various systems won't kill
5457 me).
5462 me).
5458
5463
5459 * Fixes to Struct in genutils. Now all dictionary-like methods are
5464 * Fixes to Struct in genutils. Now all dictionary-like methods are
5460 protected (reasonably).
5465 protected (reasonably).
5461
5466
5462 * Added pager function to genutils and changed ? to print usage
5467 * Added pager function to genutils and changed ? to print usage
5463 note through it (it was too long).
5468 note through it (it was too long).
5464
5469
5465 * Added the LazyPython functionality. Works great! I changed the
5470 * Added the LazyPython functionality. Works great! I changed the
5466 auto-quote escape to ';', it's on home row and next to '. But
5471 auto-quote escape to ';', it's on home row and next to '. But
5467 both auto-quote and auto-paren (still /) escapes are command-line
5472 both auto-quote and auto-paren (still /) escapes are command-line
5468 parameters.
5473 parameters.
5469
5474
5470
5475
5471 2001-11-01 Fernando Perez <fperez@colorado.edu>
5476 2001-11-01 Fernando Perez <fperez@colorado.edu>
5472
5477
5473 * Version changed to 0.0.7. Fairly large change: configuration now
5478 * Version changed to 0.0.7. Fairly large change: configuration now
5474 is all stored in a directory, by default .ipython. There, all
5479 is all stored in a directory, by default .ipython. There, all
5475 config files have normal looking names (not .names)
5480 config files have normal looking names (not .names)
5476
5481
5477 * Version 0.0.6 Released first to Lucas and Archie as a test
5482 * Version 0.0.6 Released first to Lucas and Archie as a test
5478 run. Since it's the first 'semi-public' release, change version to
5483 run. Since it's the first 'semi-public' release, change version to
5479 > 0.0.6 for any changes now.
5484 > 0.0.6 for any changes now.
5480
5485
5481 * Stuff I had put in the ipplib.py changelog:
5486 * Stuff I had put in the ipplib.py changelog:
5482
5487
5483 Changes to InteractiveShell:
5488 Changes to InteractiveShell:
5484
5489
5485 - Made the usage message a parameter.
5490 - Made the usage message a parameter.
5486
5491
5487 - Require the name of the shell variable to be given. It's a bit
5492 - Require the name of the shell variable to be given. It's a bit
5488 of a hack, but allows the name 'shell' not to be hardwire in the
5493 of a hack, but allows the name 'shell' not to be hardwire in the
5489 magic (@) handler, which is problematic b/c it requires
5494 magic (@) handler, which is problematic b/c it requires
5490 polluting the global namespace with 'shell'. This in turn is
5495 polluting the global namespace with 'shell'. This in turn is
5491 fragile: if a user redefines a variable called shell, things
5496 fragile: if a user redefines a variable called shell, things
5492 break.
5497 break.
5493
5498
5494 - magic @: all functions available through @ need to be defined
5499 - magic @: all functions available through @ need to be defined
5495 as magic_<name>, even though they can be called simply as
5500 as magic_<name>, even though they can be called simply as
5496 @<name>. This allows the special command @magic to gather
5501 @<name>. This allows the special command @magic to gather
5497 information automatically about all existing magic functions,
5502 information automatically about all existing magic functions,
5498 even if they are run-time user extensions, by parsing the shell
5503 even if they are run-time user extensions, by parsing the shell
5499 instance __dict__ looking for special magic_ names.
5504 instance __dict__ looking for special magic_ names.
5500
5505
5501 - mainloop: added *two* local namespace parameters. This allows
5506 - mainloop: added *two* local namespace parameters. This allows
5502 the class to differentiate between parameters which were there
5507 the class to differentiate between parameters which were there
5503 before and after command line initialization was processed. This
5508 before and after command line initialization was processed. This
5504 way, later @who can show things loaded at startup by the
5509 way, later @who can show things loaded at startup by the
5505 user. This trick was necessary to make session saving/reloading
5510 user. This trick was necessary to make session saving/reloading
5506 really work: ideally after saving/exiting/reloading a session,
5511 really work: ideally after saving/exiting/reloading a session,
5507 *everythin* should look the same, including the output of @who. I
5512 *everythin* should look the same, including the output of @who. I
5508 was only able to make this work with this double namespace
5513 was only able to make this work with this double namespace
5509 trick.
5514 trick.
5510
5515
5511 - added a header to the logfile which allows (almost) full
5516 - added a header to the logfile which allows (almost) full
5512 session restoring.
5517 session restoring.
5513
5518
5514 - prepend lines beginning with @ or !, with a and log
5519 - prepend lines beginning with @ or !, with a and log
5515 them. Why? !lines: may be useful to know what you did @lines:
5520 them. Why? !lines: may be useful to know what you did @lines:
5516 they may affect session state. So when restoring a session, at
5521 they may affect session state. So when restoring a session, at
5517 least inform the user of their presence. I couldn't quite get
5522 least inform the user of their presence. I couldn't quite get
5518 them to properly re-execute, but at least the user is warned.
5523 them to properly re-execute, but at least the user is warned.
5519
5524
5520 * Started ChangeLog.
5525 * Started ChangeLog.
@@ -1,95 +1,94 b''
1 #!/bin/sh
1 #!/bin/sh
2 # IPython release script
2 # IPython release script
3
3
4 PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' `
4 PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' `
5 version=`ipython -Version`
5 version=`ipython -Version`
6 ipdir=~/ipython/ipython
6 ipdir=~/ipython/ipython
7
7
8 echo
8 echo
9 echo "Releasing IPython version $version"
9 echo "Releasing IPython version $version"
10 echo "=================================="
10 echo "=================================="
11
11
12 echo "Marking ChangeLog with release information and making NEWS file..."
12 echo "Marking ChangeLog with release information and making NEWS file..."
13
13
14 # Stamp changelog and save a copy of the status at each version, in case later
14 # Stamp changelog and save a copy of the status at each version, in case later
15 # we want the NEWS file to start from a point before the very last release (if
15 # we want the NEWS file to start from a point before the very last release (if
16 # very small interim releases have no significant changes).
16 # very small interim releases have no significant changes).
17
17
18 cd $ipdir/doc
18 cd $ipdir/doc
19 cp ChangeLog ChangeLog.old
19 cp ChangeLog ChangeLog.old
20 cp ChangeLog ChangeLog.$version
20 cp ChangeLog ChangeLog.$version
21 daystamp=`date +%Y-%m-%d`
21 daystamp=`date +%Y-%m-%d`
22 echo $daystamp " ***" Released version $version > ChangeLog
22 echo $daystamp " ***" Released version $version > ChangeLog
23 echo >> ChangeLog
23 echo >> ChangeLog
24 cat ChangeLog.old >> ChangeLog
24 cat ChangeLog.old >> ChangeLog
25 rm ChangeLog.old
25 rm ChangeLog.old
26
26
27 # Build NEWS file
27 # Build NEWS file
28 echo "Changes between the last two releases (major or minor)" > NEWS
28 echo "Changes between the last two releases (major or minor)" > NEWS
29 echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS
29 echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS
30 echo >> NEWS
30 echo >> NEWS
31 diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS
31 diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS
32 cp ChangeLog ChangeLog.previous
32 cp ChangeLog ChangeLog.previous
33
33
34 # Clean up build/dist directories
34 # Clean up build/dist directories
35 rm -rf $ipdir/build/*
35 rm -rf $ipdir/build/*
36 rm -rf $ipdir/dist/*
36 rm -rf $ipdir/dist/*
37
37
38 # Perform local backup
38 # Perform local backup
39 cd $ipdir/tools
39 cd $ipdir/tools
40 ./bkp.sh
40 ./bkp.sh
41
41
42 # Build source and binary distros
42 # Build source and binary distros
43 cd $ipdir
43 cd $ipdir
44 ./setup.py sdist --formats=gztar
44 ./setup.py sdist --formats=gztar
45
45
46 # Build version-specific RPMs, where we must use the --python option to ensure
46 # Build version-specific RPMs, where we must use the --python option to ensure
47 # that the resulting RPM is really built with the requested python version (so
47 # that the resulting RPM is really built with the requested python version (so
48 # things go to lib/python2.X/...)
48 # things go to lib/python2.X/...)
49 python2.3 ./setup.py bdist_rpm --release=py23 --python=/usr/bin/python2.3
49 python2.4 ./setup.py bdist_rpm --binary-only --release=py24 --python=/usr/bin/python2.4
50 python2.4 ./setup.py bdist_rpm --release=py24 --python=/usr/bin/python2.4
51
50
52 # Build egg
51 # Build egg
53 ./eggsetup.py bdist_egg
52 ./eggsetup.py bdist_egg
54
53
55 # Call the windows build separately, so that the extra Windows scripts don't
54 # Call the windows build separately, so that the extra Windows scripts don't
56 # get pulled into Unix builds (setup.py has code which checks for
55 # get pulled into Unix builds (setup.py has code which checks for
57 # bdist_wininst)
56 # bdist_wininst)
58 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
57 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
59
58
60 # Register with the Python Package Index (PyPI)
59 # Register with the Python Package Index (PyPI)
61 echo "Registering with PyPI..."
60 echo "Registering with PyPI..."
62 cd $ipdir
61 cd $ipdir
63 ./setup.py register
62 ./setup.py register
64
63
65 # Upload all files
64 # Upload all files
66 cd $ipdir/dist
65 cd $ipdir/dist
67 echo "Uploading distribution files..."
66 echo "Uploading distribution files..."
68 scp * ipython@ipython.scipy.org:www/dist/
67 scp * ipython@ipython.scipy.org:www/dist/
69
68
70 echo "Uploading backup files..."
69 echo "Uploading backup files..."
71 cd ~/ipython/backup
70 cd ~/ipython/backup
72 scp `ls -1tr | tail -1` ipython@ipython.scipy.org:www/backup/
71 scp `ls -1tr | tail -1` ipython@ipython.scipy.org:www/backup/
73
72
74 echo "Updating webpage..."
73 echo "Updating webpage..."
75 cd $ipdir/doc
74 cd $ipdir/doc
76 www=~/ipython/homepage
75 www=~/ipython/homepage
77 cp ChangeLog NEWS $www
76 cp ChangeLog NEWS $www
78 rm -rf $www/doc/*
77 rm -rf $www/doc/*
79 cp -r manual.pdf manual/ $www/doc
78 cp -r manual.pdf manual/ $www/doc
80 cd $www
79 cd $www
81 ./update
80 ./update
82
81
83 # Alert package maintainers
82 # Alert package maintainers
84 echo "Alerting package maintainers..."
83 echo "Alerting package maintainers..."
85 maintainers='fperez@colorado.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com willmaier@ml1.net'
84 maintainers='fperez@colorado.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com willmaier@ml1.net'
86 #maintainers='fperez@colorado.edu'
85 #maintainers='fperez@colorado.edu'
87
86
88 for email in $maintainers
87 for email in $maintainers
89 do
88 do
90 echo "Emailing $email..."
89 echo "Emailing $email..."
91 mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
90 mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
92 $email < NEWS
91 $email < NEWS
93 done
92 done
94
93
95 echo "Done!"
94 echo "Done!"
@@ -1,30 +1,29 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 # release test
3 # release test
4
4
5 # clean up build/dist directories
5 # clean up build/dist directories
6 rm -rf ~/ipython/ipython/build/*
6 rm -rf ~/ipython/ipython/build/*
7 rm -rf ~/ipython/ipython/dist/*
7 rm -rf ~/ipython/ipython/dist/*
8
8
9 # build source distros
9 # build source distros
10 cd ~/ipython/ipython
10 cd ~/ipython/ipython
11
11
12 ./setup.py sdist --formats=gztar
12 ./setup.py sdist --formats=gztar
13
13
14 # Build rpms
14 # Build rpm
15 python2.3 ./setup.py bdist_rpm --release=py23 --python=/usr/bin/python2.3
15 python2.4 ./setup.py bdist_rpm --binary-only --release=py24 --python=/usr/bin/python2.4
16 python2.4 ./setup.py bdist_rpm --release=py24 --python=/usr/bin/python2.4
17
16
18 # Build eggs
17 # Build eggs
19 ./eggsetup.py bdist_egg
18 ./eggsetup.py bdist_egg
20
19
21 # Call the windows build separately, so that the extra Windows scripts don't
20 # Call the windows build separately, so that the extra Windows scripts don't
22 # get pulled into Unix builds (setup.py has code which checks for
21 # get pulled into Unix builds (setup.py has code which checks for
23 # bdist_wininst)
22 # bdist_wininst)
24
23
25 # For now, make the win32 installer with a hand-built 2.3.5 python, which is
24 # For now, make the win32 installer with a hand-built 2.3.5 python, which is
26 # the only one that fixes a crash in the post-install phase.
25 # the only one that fixes a crash in the post-install phase.
27 #$HOME/tmp/local/bin/python2.3 setup.py bdist_wininst \
26 #$HOME/tmp/local/bin/python2.3 setup.py bdist_wininst \
28 # --install-script=ipython_win_post_install.py
27 # --install-script=ipython_win_post_install.py
29
28
30 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
29 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
General Comments 0
You need to be logged in to leave comments. Login now