##// END OF EJS Templates
forgot changelog commit
fperez -
Show More
@@ -1,5454 +1,5457 b''
1 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
4 so that it doesn't break tkinter apps.
5
3 * IPython/iplib.py (_prefilter): fix bug where aliases would
6 * IPython/iplib.py (_prefilter): fix bug where aliases would
4 shadow variables when autocall was fully off. Reported by SAGE
7 shadow variables when autocall was fully off. Reported by SAGE
5 author William Stein.
8 author William Stein.
6
9
7 * IPython/OInspect.py (Inspector.__init__): add a flag to control
10 * IPython/OInspect.py (Inspector.__init__): add a flag to control
8 at what detail level strings are computed when foo? is requested.
11 at what detail level strings are computed when foo? is requested.
9 This allows users to ask for example that the string form of an
12 This allows users to ask for example that the string form of an
10 object is only computed when foo?? is called, or even never, by
13 object is only computed when foo?? is called, or even never, by
11 setting the object_info_string_level >= 2 in the configuration
14 setting the object_info_string_level >= 2 in the configuration
12 file. This new option has been added and documented. After a
15 file. This new option has been added and documented. After a
13 request by SAGE to be able to control the printing of very large
16 request by SAGE to be able to control the printing of very large
14 objects more easily.
17 objects more easily.
15
18
16 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
19 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
17
20
18 * IPython/ipmaker.py (make_IPython): remove the ipython call path
21 * IPython/ipmaker.py (make_IPython): remove the ipython call path
19 from sys.argv, to be 100% consistent with how Python itself works
22 from sys.argv, to be 100% consistent with how Python itself works
20 (as seen for example with python -i file.py). After a bug report
23 (as seen for example with python -i file.py). After a bug report
21 by Jeffrey Collins.
24 by Jeffrey Collins.
22
25
23 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
26 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
24 nasty bug which was preventing custom namespaces with -pylab,
27 nasty bug which was preventing custom namespaces with -pylab,
25 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
28 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
26 compatibility (long gone from mpl).
29 compatibility (long gone from mpl).
27
30
28 * IPython/ipapi.py (make_session): name change: create->make. We
31 * IPython/ipapi.py (make_session): name change: create->make. We
29 use make in other places (ipmaker,...), it's shorter and easier to
32 use make in other places (ipmaker,...), it's shorter and easier to
30 type and say, etc. I'm trying to clean things before 0.7.2 so
33 type and say, etc. I'm trying to clean things before 0.7.2 so
31 that I can keep things stable wrt to ipapi in the chainsaw branch.
34 that I can keep things stable wrt to ipapi in the chainsaw branch.
32
35
33 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
36 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
34 python-mode recognizes our debugger mode. Add support for
37 python-mode recognizes our debugger mode. Add support for
35 autoindent inside (X)emacs. After a patch sent in by Jin Liu
38 autoindent inside (X)emacs. After a patch sent in by Jin Liu
36 <m.liu.jin-AT-gmail.com> originally written by
39 <m.liu.jin-AT-gmail.com> originally written by
37 doxgen-AT-newsmth.net (with minor modifications for xemacs
40 doxgen-AT-newsmth.net (with minor modifications for xemacs
38 compatibility)
41 compatibility)
39
42
40 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
43 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
41 tracebacks when walking the stack so that the stack tracking system
44 tracebacks when walking the stack so that the stack tracking system
42 in emacs' python-mode can identify the frames correctly.
45 in emacs' python-mode can identify the frames correctly.
43
46
44 * IPython/ipmaker.py (make_IPython): make the internal (and
47 * IPython/ipmaker.py (make_IPython): make the internal (and
45 default config) autoedit_syntax value false by default. Too many
48 default config) autoedit_syntax value false by default. Too many
46 users have complained to me (both on and off-list) about problems
49 users have complained to me (both on and off-list) about problems
47 with this option being on by default, so I'm making it default to
50 with this option being on by default, so I'm making it default to
48 off. It can still be enabled by anyone via the usual mechanisms.
51 off. It can still be enabled by anyone via the usual mechanisms.
49
52
50 * IPython/completer.py (Completer.attr_matches): add support for
53 * IPython/completer.py (Completer.attr_matches): add support for
51 PyCrust-style _getAttributeNames magic method. Patch contributed
54 PyCrust-style _getAttributeNames magic method. Patch contributed
52 by <mscott-AT-goldenspud.com>. Closes #50.
55 by <mscott-AT-goldenspud.com>. Closes #50.
53
56
54 * IPython/iplib.py (InteractiveShell.__init__): remove the
57 * IPython/iplib.py (InteractiveShell.__init__): remove the
55 deletion of exit/quit from __builtin__, which can break
58 deletion of exit/quit from __builtin__, which can break
56 third-party tools like the Zope debugging console. The
59 third-party tools like the Zope debugging console. The
57 %exit/%quit magics remain. In general, it's probably a good idea
60 %exit/%quit magics remain. In general, it's probably a good idea
58 not to delete anything from __builtin__, since we never know what
61 not to delete anything from __builtin__, since we never know what
59 that will break. In any case, python now (for 2.5) will support
62 that will break. In any case, python now (for 2.5) will support
60 'real' exit/quit, so this issue is moot. Closes #55.
63 'real' exit/quit, so this issue is moot. Closes #55.
61
64
62 * IPython/genutils.py (with_obj): rename the 'with' function to
65 * IPython/genutils.py (with_obj): rename the 'with' function to
63 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
66 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
64 becomes a language keyword. Closes #53.
67 becomes a language keyword. Closes #53.
65
68
66 * IPython/FakeModule.py (FakeModule.__init__): add a proper
69 * IPython/FakeModule.py (FakeModule.__init__): add a proper
67 __file__ attribute to this so it fools more things into thinking
70 __file__ attribute to this so it fools more things into thinking
68 it is a real module. Closes #59.
71 it is a real module. Closes #59.
69
72
70 * IPython/Magic.py (magic_edit): add -n option to open the editor
73 * IPython/Magic.py (magic_edit): add -n option to open the editor
71 at a specific line number. After a patch by Stefan van der Walt.
74 at a specific line number. After a patch by Stefan van der Walt.
72
75
73 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
76 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
74
77
75 * IPython/iplib.py (edit_syntax_error): fix crash when for some
78 * IPython/iplib.py (edit_syntax_error): fix crash when for some
76 reason the file could not be opened. After automatic crash
79 reason the file could not be opened. After automatic crash
77 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
80 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
78 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
81 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
79 (_should_recompile): Don't fire editor if using %bg, since there
82 (_should_recompile): Don't fire editor if using %bg, since there
80 is no file in the first place. From the same report as above.
83 is no file in the first place. From the same report as above.
81 (raw_input): protect against faulty third-party prefilters. After
84 (raw_input): protect against faulty third-party prefilters. After
82 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
85 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
83 while running under SAGE.
86 while running under SAGE.
84
87
85 2006-05-23 Ville Vainio <vivainio@gmail.com>
88 2006-05-23 Ville Vainio <vivainio@gmail.com>
86
89
87 * ipapi.py: Stripped down ip.to_user_ns() to work only as
90 * ipapi.py: Stripped down ip.to_user_ns() to work only as
88 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
91 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
89 now returns None (again), unless dummy is specifically allowed by
92 now returns None (again), unless dummy is specifically allowed by
90 ipapi.get(allow_dummy=True).
93 ipapi.get(allow_dummy=True).
91
94
92 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
95 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
93
96
94 * IPython: remove all 2.2-compatibility objects and hacks from
97 * IPython: remove all 2.2-compatibility objects and hacks from
95 everywhere, since we only support 2.3 at this point. Docs
98 everywhere, since we only support 2.3 at this point. Docs
96 updated.
99 updated.
97
100
98 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
101 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
99 Anything requiring extra validation can be turned into a Python
102 Anything requiring extra validation can be turned into a Python
100 property in the future. I used a property for the db one b/c
103 property in the future. I used a property for the db one b/c
101 there was a nasty circularity problem with the initialization
104 there was a nasty circularity problem with the initialization
102 order, which right now I don't have time to clean up.
105 order, which right now I don't have time to clean up.
103
106
104 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
107 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
105 another locking bug reported by Jorgen. I'm not 100% sure though,
108 another locking bug reported by Jorgen. I'm not 100% sure though,
106 so more testing is needed...
109 so more testing is needed...
107
110
108 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
111 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
109
112
110 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
113 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
111 local variables from any routine in user code (typically executed
114 local variables from any routine in user code (typically executed
112 with %run) directly into the interactive namespace. Very useful
115 with %run) directly into the interactive namespace. Very useful
113 when doing complex debugging.
116 when doing complex debugging.
114 (IPythonNotRunning): Changed the default None object to a dummy
117 (IPythonNotRunning): Changed the default None object to a dummy
115 whose attributes can be queried as well as called without
118 whose attributes can be queried as well as called without
116 exploding, to ease writing code which works transparently both in
119 exploding, to ease writing code which works transparently both in
117 and out of ipython and uses some of this API.
120 and out of ipython and uses some of this API.
118
121
119 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
122 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
120
123
121 * IPython/hooks.py (result_display): Fix the fact that our display
124 * IPython/hooks.py (result_display): Fix the fact that our display
122 hook was using str() instead of repr(), as the default python
125 hook was using str() instead of repr(), as the default python
123 console does. This had gone unnoticed b/c it only happened if
126 console does. This had gone unnoticed b/c it only happened if
124 %Pprint was off, but the inconsistency was there.
127 %Pprint was off, but the inconsistency was there.
125
128
126 2006-05-15 Ville Vainio <vivainio@gmail.com>
129 2006-05-15 Ville Vainio <vivainio@gmail.com>
127
130
128 * Oinspect.py: Only show docstring for nonexisting/binary files
131 * Oinspect.py: Only show docstring for nonexisting/binary files
129 when doing object??, closing ticket #62
132 when doing object??, closing ticket #62
130
133
131 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
134 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
132
135
133 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
136 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
134 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
137 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
135 was being released in a routine which hadn't checked if it had
138 was being released in a routine which hadn't checked if it had
136 been the one to acquire it.
139 been the one to acquire it.
137
140
138 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
141 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
139
142
140 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
143 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
141
144
142 2006-04-11 Ville Vainio <vivainio@gmail.com>
145 2006-04-11 Ville Vainio <vivainio@gmail.com>
143
146
144 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
147 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
145 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
148 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
146 prefilters, allowing stuff like magics and aliases in the file.
149 prefilters, allowing stuff like magics and aliases in the file.
147
150
148 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
151 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
149 added. Supported now are "%clear in" and "%clear out" (clear input and
152 added. Supported now are "%clear in" and "%clear out" (clear input and
150 output history, respectively). Also fixed CachedOutput.flush to
153 output history, respectively). Also fixed CachedOutput.flush to
151 properly flush the output cache.
154 properly flush the output cache.
152
155
153 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
156 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
154 half-success (and fail explicitly).
157 half-success (and fail explicitly).
155
158
156 2006-03-28 Ville Vainio <vivainio@gmail.com>
159 2006-03-28 Ville Vainio <vivainio@gmail.com>
157
160
158 * iplib.py: Fix quoting of aliases so that only argless ones
161 * iplib.py: Fix quoting of aliases so that only argless ones
159 are quoted
162 are quoted
160
163
161 2006-03-28 Ville Vainio <vivainio@gmail.com>
164 2006-03-28 Ville Vainio <vivainio@gmail.com>
162
165
163 * iplib.py: Quote aliases with spaces in the name.
166 * iplib.py: Quote aliases with spaces in the name.
164 "c:\program files\blah\bin" is now legal alias target.
167 "c:\program files\blah\bin" is now legal alias target.
165
168
166 * ext_rehashdir.py: Space no longer allowed as arg
169 * ext_rehashdir.py: Space no longer allowed as arg
167 separator, since space is legal in path names.
170 separator, since space is legal in path names.
168
171
169 2006-03-16 Ville Vainio <vivainio@gmail.com>
172 2006-03-16 Ville Vainio <vivainio@gmail.com>
170
173
171 * upgrade_dir.py: Take path.py from Extensions, correcting
174 * upgrade_dir.py: Take path.py from Extensions, correcting
172 %upgrade magic
175 %upgrade magic
173
176
174 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
177 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
175
178
176 * hooks.py: Only enclose editor binary in quotes if legal and
179 * hooks.py: Only enclose editor binary in quotes if legal and
177 necessary (space in the name, and is an existing file). Fixes a bug
180 necessary (space in the name, and is an existing file). Fixes a bug
178 reported by Zachary Pincus.
181 reported by Zachary Pincus.
179
182
180 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
183 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
181
184
182 * Manual: thanks to a tip on proper color handling for Emacs, by
185 * Manual: thanks to a tip on proper color handling for Emacs, by
183 Eric J Haywiser <ejh1-AT-MIT.EDU>.
186 Eric J Haywiser <ejh1-AT-MIT.EDU>.
184
187
185 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
188 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
186 by applying the provided patch. Thanks to Liu Jin
189 by applying the provided patch. Thanks to Liu Jin
187 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
190 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
188 XEmacs/Linux, I'm trusting the submitter that it actually helps
191 XEmacs/Linux, I'm trusting the submitter that it actually helps
189 under win32/GNU Emacs. Will revisit if any problems are reported.
192 under win32/GNU Emacs. Will revisit if any problems are reported.
190
193
191 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
194 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
192
195
193 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
196 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
194 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
197 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
195
198
196 2006-03-12 Ville Vainio <vivainio@gmail.com>
199 2006-03-12 Ville Vainio <vivainio@gmail.com>
197
200
198 * Magic.py (magic_timeit): Added %timeit magic, contributed by
201 * Magic.py (magic_timeit): Added %timeit magic, contributed by
199 Torsten Marek.
202 Torsten Marek.
200
203
201 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
204 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
202
205
203 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
206 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
204 line ranges works again.
207 line ranges works again.
205
208
206 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
209 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
207
210
208 * IPython/iplib.py (showtraceback): add back sys.last_traceback
211 * IPython/iplib.py (showtraceback): add back sys.last_traceback
209 and friends, after a discussion with Zach Pincus on ipython-user.
212 and friends, after a discussion with Zach Pincus on ipython-user.
210 I'm not 100% sure, but after thinking aobut it quite a bit, it may
213 I'm not 100% sure, but after thinking aobut it quite a bit, it may
211 be OK. Testing with the multithreaded shells didn't reveal any
214 be OK. Testing with the multithreaded shells didn't reveal any
212 problems, but let's keep an eye out.
215 problems, but let's keep an eye out.
213
216
214 In the process, I fixed a few things which were calling
217 In the process, I fixed a few things which were calling
215 self.InteractiveTB() directly (like safe_execfile), which is a
218 self.InteractiveTB() directly (like safe_execfile), which is a
216 mistake: ALL exception reporting should be done by calling
219 mistake: ALL exception reporting should be done by calling
217 self.showtraceback(), which handles state and tab-completion and
220 self.showtraceback(), which handles state and tab-completion and
218 more.
221 more.
219
222
220 2006-03-01 Ville Vainio <vivainio@gmail.com>
223 2006-03-01 Ville Vainio <vivainio@gmail.com>
221
224
222 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
225 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
223 To use, do "from ipipe import *".
226 To use, do "from ipipe import *".
224
227
225 2006-02-24 Ville Vainio <vivainio@gmail.com>
228 2006-02-24 Ville Vainio <vivainio@gmail.com>
226
229
227 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
230 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
228 "cleanly" and safely than the older upgrade mechanism.
231 "cleanly" and safely than the older upgrade mechanism.
229
232
230 2006-02-21 Ville Vainio <vivainio@gmail.com>
233 2006-02-21 Ville Vainio <vivainio@gmail.com>
231
234
232 * Magic.py: %save works again.
235 * Magic.py: %save works again.
233
236
234 2006-02-15 Ville Vainio <vivainio@gmail.com>
237 2006-02-15 Ville Vainio <vivainio@gmail.com>
235
238
236 * Magic.py: %Pprint works again
239 * Magic.py: %Pprint works again
237
240
238 * Extensions/ipy_sane_defaults.py: Provide everything provided
241 * Extensions/ipy_sane_defaults.py: Provide everything provided
239 in default ipythonrc, to make it possible to have a completely empty
242 in default ipythonrc, to make it possible to have a completely empty
240 ipythonrc (and thus completely rc-file free configuration)
243 ipythonrc (and thus completely rc-file free configuration)
241
244
242
245
243 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
246 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
244
247
245 * IPython/hooks.py (editor): quote the call to the editor command,
248 * IPython/hooks.py (editor): quote the call to the editor command,
246 to allow commands with spaces in them. Problem noted by watching
249 to allow commands with spaces in them. Problem noted by watching
247 Ian Oswald's video about textpad under win32 at
250 Ian Oswald's video about textpad under win32 at
248 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
251 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
249
252
250 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
253 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
251 describing magics (we haven't used @ for a loong time).
254 describing magics (we haven't used @ for a loong time).
252
255
253 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
256 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
254 contributed by marienz to close
257 contributed by marienz to close
255 http://www.scipy.net/roundup/ipython/issue53.
258 http://www.scipy.net/roundup/ipython/issue53.
256
259
257 2006-02-10 Ville Vainio <vivainio@gmail.com>
260 2006-02-10 Ville Vainio <vivainio@gmail.com>
258
261
259 * genutils.py: getoutput now works in win32 too
262 * genutils.py: getoutput now works in win32 too
260
263
261 * completer.py: alias and magic completion only invoked
264 * completer.py: alias and magic completion only invoked
262 at the first "item" in the line, to avoid "cd %store"
265 at the first "item" in the line, to avoid "cd %store"
263 nonsense.
266 nonsense.
264
267
265 2006-02-09 Ville Vainio <vivainio@gmail.com>
268 2006-02-09 Ville Vainio <vivainio@gmail.com>
266
269
267 * test/*: Added a unit testing framework (finally).
270 * test/*: Added a unit testing framework (finally).
268 '%run runtests.py' to run test_*.
271 '%run runtests.py' to run test_*.
269
272
270 * ipapi.py: Exposed runlines and set_custom_exc
273 * ipapi.py: Exposed runlines and set_custom_exc
271
274
272 2006-02-07 Ville Vainio <vivainio@gmail.com>
275 2006-02-07 Ville Vainio <vivainio@gmail.com>
273
276
274 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
277 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
275 instead use "f(1 2)" as before.
278 instead use "f(1 2)" as before.
276
279
277 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
280 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
278
281
279 * IPython/demo.py (IPythonDemo): Add new classes to the demo
282 * IPython/demo.py (IPythonDemo): Add new classes to the demo
280 facilities, for demos processed by the IPython input filter
283 facilities, for demos processed by the IPython input filter
281 (IPythonDemo), and for running a script one-line-at-a-time as a
284 (IPythonDemo), and for running a script one-line-at-a-time as a
282 demo, both for pure Python (LineDemo) and for IPython-processed
285 demo, both for pure Python (LineDemo) and for IPython-processed
283 input (IPythonLineDemo). After a request by Dave Kohel, from the
286 input (IPythonLineDemo). After a request by Dave Kohel, from the
284 SAGE team.
287 SAGE team.
285 (Demo.edit): added and edit() method to the demo objects, to edit
288 (Demo.edit): added and edit() method to the demo objects, to edit
286 the in-memory copy of the last executed block.
289 the in-memory copy of the last executed block.
287
290
288 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
291 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
289 processing to %edit, %macro and %save. These commands can now be
292 processing to %edit, %macro and %save. These commands can now be
290 invoked on the unprocessed input as it was typed by the user
293 invoked on the unprocessed input as it was typed by the user
291 (without any prefilters applied). After requests by the SAGE team
294 (without any prefilters applied). After requests by the SAGE team
292 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
295 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
293
296
294 2006-02-01 Ville Vainio <vivainio@gmail.com>
297 2006-02-01 Ville Vainio <vivainio@gmail.com>
295
298
296 * setup.py, eggsetup.py: easy_install ipython==dev works
299 * setup.py, eggsetup.py: easy_install ipython==dev works
297 correctly now (on Linux)
300 correctly now (on Linux)
298
301
299 * ipy_user_conf,ipmaker: user config changes, removed spurious
302 * ipy_user_conf,ipmaker: user config changes, removed spurious
300 warnings
303 warnings
301
304
302 * iplib: if rc.banner is string, use it as is.
305 * iplib: if rc.banner is string, use it as is.
303
306
304 * Magic: %pycat accepts a string argument and pages it's contents.
307 * Magic: %pycat accepts a string argument and pages it's contents.
305
308
306
309
307 2006-01-30 Ville Vainio <vivainio@gmail.com>
310 2006-01-30 Ville Vainio <vivainio@gmail.com>
308
311
309 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
312 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
310 Now %store and bookmarks work through PickleShare, meaning that
313 Now %store and bookmarks work through PickleShare, meaning that
311 concurrent access is possible and all ipython sessions see the
314 concurrent access is possible and all ipython sessions see the
312 same database situation all the time, instead of snapshot of
315 same database situation all the time, instead of snapshot of
313 the situation when the session was started. Hence, %bookmark
316 the situation when the session was started. Hence, %bookmark
314 results are immediately accessible from othes sessions. The database
317 results are immediately accessible from othes sessions. The database
315 is also available for use by user extensions. See:
318 is also available for use by user extensions. See:
316 http://www.python.org/pypi/pickleshare
319 http://www.python.org/pypi/pickleshare
317
320
318 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
321 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
319
322
320 * aliases can now be %store'd
323 * aliases can now be %store'd
321
324
322 * path.py move to Extensions so that pickleshare does not need
325 * path.py move to Extensions so that pickleshare does not need
323 IPython-specific import. Extensions added to pythonpath right
326 IPython-specific import. Extensions added to pythonpath right
324 at __init__.
327 at __init__.
325
328
326 * iplib.py: ipalias deprecated/redundant; aliases are converted and
329 * iplib.py: ipalias deprecated/redundant; aliases are converted and
327 called with _ip.system and the pre-transformed command string.
330 called with _ip.system and the pre-transformed command string.
328
331
329 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
332 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
330
333
331 * IPython/iplib.py (interact): Fix that we were not catching
334 * IPython/iplib.py (interact): Fix that we were not catching
332 KeyboardInterrupt exceptions properly. I'm not quite sure why the
335 KeyboardInterrupt exceptions properly. I'm not quite sure why the
333 logic here had to change, but it's fixed now.
336 logic here had to change, but it's fixed now.
334
337
335 2006-01-29 Ville Vainio <vivainio@gmail.com>
338 2006-01-29 Ville Vainio <vivainio@gmail.com>
336
339
337 * iplib.py: Try to import pyreadline on Windows.
340 * iplib.py: Try to import pyreadline on Windows.
338
341
339 2006-01-27 Ville Vainio <vivainio@gmail.com>
342 2006-01-27 Ville Vainio <vivainio@gmail.com>
340
343
341 * iplib.py: Expose ipapi as _ip in builtin namespace.
344 * iplib.py: Expose ipapi as _ip in builtin namespace.
342 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
345 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
343 and ip_set_hook (-> _ip.set_hook) redundant. % and !
346 and ip_set_hook (-> _ip.set_hook) redundant. % and !
344 syntax now produce _ip.* variant of the commands.
347 syntax now produce _ip.* variant of the commands.
345
348
346 * "_ip.options().autoedit_syntax = 2" automatically throws
349 * "_ip.options().autoedit_syntax = 2" automatically throws
347 user to editor for syntax error correction without prompting.
350 user to editor for syntax error correction without prompting.
348
351
349 2006-01-27 Ville Vainio <vivainio@gmail.com>
352 2006-01-27 Ville Vainio <vivainio@gmail.com>
350
353
351 * ipmaker.py: Give "realistic" sys.argv for scripts (without
354 * ipmaker.py: Give "realistic" sys.argv for scripts (without
352 'ipython' at argv[0]) executed through command line.
355 'ipython' at argv[0]) executed through command line.
353 NOTE: this DEPRECATES calling ipython with multiple scripts
356 NOTE: this DEPRECATES calling ipython with multiple scripts
354 ("ipython a.py b.py c.py")
357 ("ipython a.py b.py c.py")
355
358
356 * iplib.py, hooks.py: Added configurable input prefilter,
359 * iplib.py, hooks.py: Added configurable input prefilter,
357 named 'input_prefilter'. See ext_rescapture.py for example
360 named 'input_prefilter'. See ext_rescapture.py for example
358 usage.
361 usage.
359
362
360 * ext_rescapture.py, Magic.py: Better system command output capture
363 * ext_rescapture.py, Magic.py: Better system command output capture
361 through 'var = !ls' (deprecates user-visible %sc). Same notation
364 through 'var = !ls' (deprecates user-visible %sc). Same notation
362 applies for magics, 'var = %alias' assigns alias list to var.
365 applies for magics, 'var = %alias' assigns alias list to var.
363
366
364 * ipapi.py: added meta() for accessing extension-usable data store.
367 * ipapi.py: added meta() for accessing extension-usable data store.
365
368
366 * iplib.py: added InteractiveShell.getapi(). New magics should be
369 * iplib.py: added InteractiveShell.getapi(). New magics should be
367 written doing self.getapi() instead of using the shell directly.
370 written doing self.getapi() instead of using the shell directly.
368
371
369 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
372 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
370 %store foo >> ~/myfoo.txt to store variables to files (in clean
373 %store foo >> ~/myfoo.txt to store variables to files (in clean
371 textual form, not a restorable pickle).
374 textual form, not a restorable pickle).
372
375
373 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
376 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
374
377
375 * usage.py, Magic.py: added %quickref
378 * usage.py, Magic.py: added %quickref
376
379
377 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
380 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
378
381
379 * GetoptErrors when invoking magics etc. with wrong args
382 * GetoptErrors when invoking magics etc. with wrong args
380 are now more helpful:
383 are now more helpful:
381 GetoptError: option -l not recognized (allowed: "qb" )
384 GetoptError: option -l not recognized (allowed: "qb" )
382
385
383 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
386 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
384
387
385 * IPython/demo.py (Demo.show): Flush stdout after each block, so
388 * IPython/demo.py (Demo.show): Flush stdout after each block, so
386 computationally intensive blocks don't appear to stall the demo.
389 computationally intensive blocks don't appear to stall the demo.
387
390
388 2006-01-24 Ville Vainio <vivainio@gmail.com>
391 2006-01-24 Ville Vainio <vivainio@gmail.com>
389
392
390 * iplib.py, hooks.py: 'result_display' hook can return a non-None
393 * iplib.py, hooks.py: 'result_display' hook can return a non-None
391 value to manipulate resulting history entry.
394 value to manipulate resulting history entry.
392
395
393 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
396 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
394 to instance methods of IPApi class, to make extending an embedded
397 to instance methods of IPApi class, to make extending an embedded
395 IPython feasible. See ext_rehashdir.py for example usage.
398 IPython feasible. See ext_rehashdir.py for example usage.
396
399
397 * Merged 1071-1076 from banches/0.7.1
400 * Merged 1071-1076 from banches/0.7.1
398
401
399
402
400 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
403 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
401
404
402 * tools/release (daystamp): Fix build tools to use the new
405 * tools/release (daystamp): Fix build tools to use the new
403 eggsetup.py script to build lightweight eggs.
406 eggsetup.py script to build lightweight eggs.
404
407
405 * Applied changesets 1062 and 1064 before 0.7.1 release.
408 * Applied changesets 1062 and 1064 before 0.7.1 release.
406
409
407 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
410 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
408 see the raw input history (without conversions like %ls ->
411 see the raw input history (without conversions like %ls ->
409 ipmagic("ls")). After a request from W. Stein, SAGE
412 ipmagic("ls")). After a request from W. Stein, SAGE
410 (http://modular.ucsd.edu/sage) developer. This information is
413 (http://modular.ucsd.edu/sage) developer. This information is
411 stored in the input_hist_raw attribute of the IPython instance, so
414 stored in the input_hist_raw attribute of the IPython instance, so
412 developers can access it if needed (it's an InputList instance).
415 developers can access it if needed (it's an InputList instance).
413
416
414 * Versionstring = 0.7.2.svn
417 * Versionstring = 0.7.2.svn
415
418
416 * eggsetup.py: A separate script for constructing eggs, creates
419 * eggsetup.py: A separate script for constructing eggs, creates
417 proper launch scripts even on Windows (an .exe file in
420 proper launch scripts even on Windows (an .exe file in
418 \python24\scripts).
421 \python24\scripts).
419
422
420 * ipapi.py: launch_new_instance, launch entry point needed for the
423 * ipapi.py: launch_new_instance, launch entry point needed for the
421 egg.
424 egg.
422
425
423 2006-01-23 Ville Vainio <vivainio@gmail.com>
426 2006-01-23 Ville Vainio <vivainio@gmail.com>
424
427
425 * Added %cpaste magic for pasting python code
428 * Added %cpaste magic for pasting python code
426
429
427 2006-01-22 Ville Vainio <vivainio@gmail.com>
430 2006-01-22 Ville Vainio <vivainio@gmail.com>
428
431
429 * Merge from branches/0.7.1 into trunk, revs 1052-1057
432 * Merge from branches/0.7.1 into trunk, revs 1052-1057
430
433
431 * Versionstring = 0.7.2.svn
434 * Versionstring = 0.7.2.svn
432
435
433 * eggsetup.py: A separate script for constructing eggs, creates
436 * eggsetup.py: A separate script for constructing eggs, creates
434 proper launch scripts even on Windows (an .exe file in
437 proper launch scripts even on Windows (an .exe file in
435 \python24\scripts).
438 \python24\scripts).
436
439
437 * ipapi.py: launch_new_instance, launch entry point needed for the
440 * ipapi.py: launch_new_instance, launch entry point needed for the
438 egg.
441 egg.
439
442
440 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
443 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
441
444
442 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
445 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
443 %pfile foo would print the file for foo even if it was a binary.
446 %pfile foo would print the file for foo even if it was a binary.
444 Now, extensions '.so' and '.dll' are skipped.
447 Now, extensions '.so' and '.dll' are skipped.
445
448
446 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
449 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
447 bug, where macros would fail in all threaded modes. I'm not 100%
450 bug, where macros would fail in all threaded modes. I'm not 100%
448 sure, so I'm going to put out an rc instead of making a release
451 sure, so I'm going to put out an rc instead of making a release
449 today, and wait for feedback for at least a few days.
452 today, and wait for feedback for at least a few days.
450
453
451 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
454 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
452 it...) the handling of pasting external code with autoindent on.
455 it...) the handling of pasting external code with autoindent on.
453 To get out of a multiline input, the rule will appear for most
456 To get out of a multiline input, the rule will appear for most
454 users unchanged: two blank lines or change the indent level
457 users unchanged: two blank lines or change the indent level
455 proposed by IPython. But there is a twist now: you can
458 proposed by IPython. But there is a twist now: you can
456 add/subtract only *one or two spaces*. If you add/subtract three
459 add/subtract only *one or two spaces*. If you add/subtract three
457 or more (unless you completely delete the line), IPython will
460 or more (unless you completely delete the line), IPython will
458 accept that line, and you'll need to enter a second one of pure
461 accept that line, and you'll need to enter a second one of pure
459 whitespace. I know it sounds complicated, but I can't find a
462 whitespace. I know it sounds complicated, but I can't find a
460 different solution that covers all the cases, with the right
463 different solution that covers all the cases, with the right
461 heuristics. Hopefully in actual use, nobody will really notice
464 heuristics. Hopefully in actual use, nobody will really notice
462 all these strange rules and things will 'just work'.
465 all these strange rules and things will 'just work'.
463
466
464 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
467 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
465
468
466 * IPython/iplib.py (interact): catch exceptions which can be
469 * IPython/iplib.py (interact): catch exceptions which can be
467 triggered asynchronously by signal handlers. Thanks to an
470 triggered asynchronously by signal handlers. Thanks to an
468 automatic crash report, submitted by Colin Kingsley
471 automatic crash report, submitted by Colin Kingsley
469 <tercel-AT-gentoo.org>.
472 <tercel-AT-gentoo.org>.
470
473
471 2006-01-20 Ville Vainio <vivainio@gmail.com>
474 2006-01-20 Ville Vainio <vivainio@gmail.com>
472
475
473 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
476 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
474 (%rehashdir, very useful, try it out) of how to extend ipython
477 (%rehashdir, very useful, try it out) of how to extend ipython
475 with new magics. Also added Extensions dir to pythonpath to make
478 with new magics. Also added Extensions dir to pythonpath to make
476 importing extensions easy.
479 importing extensions easy.
477
480
478 * %store now complains when trying to store interactively declared
481 * %store now complains when trying to store interactively declared
479 classes / instances of those classes.
482 classes / instances of those classes.
480
483
481 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
484 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
482 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
485 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
483 if they exist, and ipy_user_conf.py with some defaults is created for
486 if they exist, and ipy_user_conf.py with some defaults is created for
484 the user.
487 the user.
485
488
486 * Startup rehashing done by the config file, not InterpreterExec.
489 * Startup rehashing done by the config file, not InterpreterExec.
487 This means system commands are available even without selecting the
490 This means system commands are available even without selecting the
488 pysh profile. It's the sensible default after all.
491 pysh profile. It's the sensible default after all.
489
492
490 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
493 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
491
494
492 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
495 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
493 multiline code with autoindent on working. But I am really not
496 multiline code with autoindent on working. But I am really not
494 sure, so this needs more testing. Will commit a debug-enabled
497 sure, so this needs more testing. Will commit a debug-enabled
495 version for now, while I test it some more, so that Ville and
498 version for now, while I test it some more, so that Ville and
496 others may also catch any problems. Also made
499 others may also catch any problems. Also made
497 self.indent_current_str() a method, to ensure that there's no
500 self.indent_current_str() a method, to ensure that there's no
498 chance of the indent space count and the corresponding string
501 chance of the indent space count and the corresponding string
499 falling out of sync. All code needing the string should just call
502 falling out of sync. All code needing the string should just call
500 the method.
503 the method.
501
504
502 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
505 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
503
506
504 * IPython/Magic.py (magic_edit): fix check for when users don't
507 * IPython/Magic.py (magic_edit): fix check for when users don't
505 save their output files, the try/except was in the wrong section.
508 save their output files, the try/except was in the wrong section.
506
509
507 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
510 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
508
511
509 * IPython/Magic.py (magic_run): fix __file__ global missing from
512 * IPython/Magic.py (magic_run): fix __file__ global missing from
510 script's namespace when executed via %run. After a report by
513 script's namespace when executed via %run. After a report by
511 Vivian.
514 Vivian.
512
515
513 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
516 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
514 when using python 2.4. The parent constructor changed in 2.4, and
517 when using python 2.4. The parent constructor changed in 2.4, and
515 we need to track it directly (we can't call it, as it messes up
518 we need to track it directly (we can't call it, as it messes up
516 readline and tab-completion inside our pdb would stop working).
519 readline and tab-completion inside our pdb would stop working).
517 After a bug report by R. Bernstein <rocky-AT-panix.com>.
520 After a bug report by R. Bernstein <rocky-AT-panix.com>.
518
521
519 2006-01-16 Ville Vainio <vivainio@gmail.com>
522 2006-01-16 Ville Vainio <vivainio@gmail.com>
520
523
521 * Ipython/magic.py:Reverted back to old %edit functionality
524 * Ipython/magic.py:Reverted back to old %edit functionality
522 that returns file contents on exit.
525 that returns file contents on exit.
523
526
524 * IPython/path.py: Added Jason Orendorff's "path" module to
527 * IPython/path.py: Added Jason Orendorff's "path" module to
525 IPython tree, http://www.jorendorff.com/articles/python/path/.
528 IPython tree, http://www.jorendorff.com/articles/python/path/.
526 You can get path objects conveniently through %sc, and !!, e.g.:
529 You can get path objects conveniently through %sc, and !!, e.g.:
527 sc files=ls
530 sc files=ls
528 for p in files.paths: # or files.p
531 for p in files.paths: # or files.p
529 print p,p.mtime
532 print p,p.mtime
530
533
531 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
534 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
532 now work again without considering the exclusion regexp -
535 now work again without considering the exclusion regexp -
533 hence, things like ',foo my/path' turn to 'foo("my/path")'
536 hence, things like ',foo my/path' turn to 'foo("my/path")'
534 instead of syntax error.
537 instead of syntax error.
535
538
536
539
537 2006-01-14 Ville Vainio <vivainio@gmail.com>
540 2006-01-14 Ville Vainio <vivainio@gmail.com>
538
541
539 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
542 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
540 ipapi decorators for python 2.4 users, options() provides access to rc
543 ipapi decorators for python 2.4 users, options() provides access to rc
541 data.
544 data.
542
545
543 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
546 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
544 as path separators (even on Linux ;-). Space character after
547 as path separators (even on Linux ;-). Space character after
545 backslash (as yielded by tab completer) is still space;
548 backslash (as yielded by tab completer) is still space;
546 "%cd long\ name" works as expected.
549 "%cd long\ name" works as expected.
547
550
548 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
551 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
549 as "chain of command", with priority. API stays the same,
552 as "chain of command", with priority. API stays the same,
550 TryNext exception raised by a hook function signals that
553 TryNext exception raised by a hook function signals that
551 current hook failed and next hook should try handling it, as
554 current hook failed and next hook should try handling it, as
552 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
555 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
553 requested configurable display hook, which is now implemented.
556 requested configurable display hook, which is now implemented.
554
557
555 2006-01-13 Ville Vainio <vivainio@gmail.com>
558 2006-01-13 Ville Vainio <vivainio@gmail.com>
556
559
557 * IPython/platutils*.py: platform specific utility functions,
560 * IPython/platutils*.py: platform specific utility functions,
558 so far only set_term_title is implemented (change terminal
561 so far only set_term_title is implemented (change terminal
559 label in windowing systems). %cd now changes the title to
562 label in windowing systems). %cd now changes the title to
560 current dir.
563 current dir.
561
564
562 * IPython/Release.py: Added myself to "authors" list,
565 * IPython/Release.py: Added myself to "authors" list,
563 had to create new files.
566 had to create new files.
564
567
565 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
568 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
566 shell escape; not a known bug but had potential to be one in the
569 shell escape; not a known bug but had potential to be one in the
567 future.
570 future.
568
571
569 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
572 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
570 extension API for IPython! See the module for usage example. Fix
573 extension API for IPython! See the module for usage example. Fix
571 OInspect for docstring-less magic functions.
574 OInspect for docstring-less magic functions.
572
575
573
576
574 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
577 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
575
578
576 * IPython/iplib.py (raw_input): temporarily deactivate all
579 * IPython/iplib.py (raw_input): temporarily deactivate all
577 attempts at allowing pasting of code with autoindent on. It
580 attempts at allowing pasting of code with autoindent on. It
578 introduced bugs (reported by Prabhu) and I can't seem to find a
581 introduced bugs (reported by Prabhu) and I can't seem to find a
579 robust combination which works in all cases. Will have to revisit
582 robust combination which works in all cases. Will have to revisit
580 later.
583 later.
581
584
582 * IPython/genutils.py: remove isspace() function. We've dropped
585 * IPython/genutils.py: remove isspace() function. We've dropped
583 2.2 compatibility, so it's OK to use the string method.
586 2.2 compatibility, so it's OK to use the string method.
584
587
585 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
588 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
586
589
587 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
590 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
588 matching what NOT to autocall on, to include all python binary
591 matching what NOT to autocall on, to include all python binary
589 operators (including things like 'and', 'or', 'is' and 'in').
592 operators (including things like 'and', 'or', 'is' and 'in').
590 Prompted by a bug report on 'foo & bar', but I realized we had
593 Prompted by a bug report on 'foo & bar', but I realized we had
591 many more potential bug cases with other operators. The regexp is
594 many more potential bug cases with other operators. The regexp is
592 self.re_exclude_auto, it's fairly commented.
595 self.re_exclude_auto, it's fairly commented.
593
596
594 2006-01-12 Ville Vainio <vivainio@gmail.com>
597 2006-01-12 Ville Vainio <vivainio@gmail.com>
595
598
596 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
599 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
597 Prettified and hardened string/backslash quoting with ipsystem(),
600 Prettified and hardened string/backslash quoting with ipsystem(),
598 ipalias() and ipmagic(). Now even \ characters are passed to
601 ipalias() and ipmagic(). Now even \ characters are passed to
599 %magics, !shell escapes and aliases exactly as they are in the
602 %magics, !shell escapes and aliases exactly as they are in the
600 ipython command line. Should improve backslash experience,
603 ipython command line. Should improve backslash experience,
601 particularly in Windows (path delimiter for some commands that
604 particularly in Windows (path delimiter for some commands that
602 won't understand '/'), but Unix benefits as well (regexps). %cd
605 won't understand '/'), but Unix benefits as well (regexps). %cd
603 magic still doesn't support backslash path delimiters, though. Also
606 magic still doesn't support backslash path delimiters, though. Also
604 deleted all pretense of supporting multiline command strings in
607 deleted all pretense of supporting multiline command strings in
605 !system or %magic commands. Thanks to Jerry McRae for suggestions.
608 !system or %magic commands. Thanks to Jerry McRae for suggestions.
606
609
607 * doc/build_doc_instructions.txt added. Documentation on how to
610 * doc/build_doc_instructions.txt added. Documentation on how to
608 use doc/update_manual.py, added yesterday. Both files contributed
611 use doc/update_manual.py, added yesterday. Both files contributed
609 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
612 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
610 doc/*.sh for deprecation at a later date.
613 doc/*.sh for deprecation at a later date.
611
614
612 * /ipython.py Added ipython.py to root directory for
615 * /ipython.py Added ipython.py to root directory for
613 zero-installation (tar xzvf ipython.tgz; cd ipython; python
616 zero-installation (tar xzvf ipython.tgz; cd ipython; python
614 ipython.py) and development convenience (no need to kee doing
617 ipython.py) and development convenience (no need to kee doing
615 "setup.py install" between changes).
618 "setup.py install" between changes).
616
619
617 * Made ! and !! shell escapes work (again) in multiline expressions:
620 * Made ! and !! shell escapes work (again) in multiline expressions:
618 if 1:
621 if 1:
619 !ls
622 !ls
620 !!ls
623 !!ls
621
624
622 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
625 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
623
626
624 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
627 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
625 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
628 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
626 module in case-insensitive installation. Was causing crashes
629 module in case-insensitive installation. Was causing crashes
627 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
630 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
628
631
629 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
632 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
630 <marienz-AT-gentoo.org>, closes
633 <marienz-AT-gentoo.org>, closes
631 http://www.scipy.net/roundup/ipython/issue51.
634 http://www.scipy.net/roundup/ipython/issue51.
632
635
633 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
636 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
634
637
635 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
638 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
636 problem of excessive CPU usage under *nix and keyboard lag under
639 problem of excessive CPU usage under *nix and keyboard lag under
637 win32.
640 win32.
638
641
639 2006-01-10 *** Released version 0.7.0
642 2006-01-10 *** Released version 0.7.0
640
643
641 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
644 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
642
645
643 * IPython/Release.py (revision): tag version number to 0.7.0,
646 * IPython/Release.py (revision): tag version number to 0.7.0,
644 ready for release.
647 ready for release.
645
648
646 * IPython/Magic.py (magic_edit): Add print statement to %edit so
649 * IPython/Magic.py (magic_edit): Add print statement to %edit so
647 it informs the user of the name of the temp. file used. This can
650 it informs the user of the name of the temp. file used. This can
648 help if you decide later to reuse that same file, so you know
651 help if you decide later to reuse that same file, so you know
649 where to copy the info from.
652 where to copy the info from.
650
653
651 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
654 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
652
655
653 * setup_bdist_egg.py: little script to build an egg. Added
656 * setup_bdist_egg.py: little script to build an egg. Added
654 support in the release tools as well.
657 support in the release tools as well.
655
658
656 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
659 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
657
660
658 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
661 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
659 version selection (new -wxversion command line and ipythonrc
662 version selection (new -wxversion command line and ipythonrc
660 parameter). Patch contributed by Arnd Baecker
663 parameter). Patch contributed by Arnd Baecker
661 <arnd.baecker-AT-web.de>.
664 <arnd.baecker-AT-web.de>.
662
665
663 * IPython/iplib.py (embed_mainloop): fix tab-completion in
666 * IPython/iplib.py (embed_mainloop): fix tab-completion in
664 embedded instances, for variables defined at the interactive
667 embedded instances, for variables defined at the interactive
665 prompt of the embedded ipython. Reported by Arnd.
668 prompt of the embedded ipython. Reported by Arnd.
666
669
667 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
670 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
668 it can be used as a (stateful) toggle, or with a direct parameter.
671 it can be used as a (stateful) toggle, or with a direct parameter.
669
672
670 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
673 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
671 could be triggered in certain cases and cause the traceback
674 could be triggered in certain cases and cause the traceback
672 printer not to work.
675 printer not to work.
673
676
674 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
677 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
675
678
676 * IPython/iplib.py (_should_recompile): Small fix, closes
679 * IPython/iplib.py (_should_recompile): Small fix, closes
677 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
680 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
678
681
679 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
682 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
680
683
681 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
684 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
682 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
685 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
683 Moad for help with tracking it down.
686 Moad for help with tracking it down.
684
687
685 * IPython/iplib.py (handle_auto): fix autocall handling for
688 * IPython/iplib.py (handle_auto): fix autocall handling for
686 objects which support BOTH __getitem__ and __call__ (so that f [x]
689 objects which support BOTH __getitem__ and __call__ (so that f [x]
687 is left alone, instead of becoming f([x]) automatically).
690 is left alone, instead of becoming f([x]) automatically).
688
691
689 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
692 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
690 Ville's patch.
693 Ville's patch.
691
694
692 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
695 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
693
696
694 * IPython/iplib.py (handle_auto): changed autocall semantics to
697 * IPython/iplib.py (handle_auto): changed autocall semantics to
695 include 'smart' mode, where the autocall transformation is NOT
698 include 'smart' mode, where the autocall transformation is NOT
696 applied if there are no arguments on the line. This allows you to
699 applied if there are no arguments on the line. This allows you to
697 just type 'foo' if foo is a callable to see its internal form,
700 just type 'foo' if foo is a callable to see its internal form,
698 instead of having it called with no arguments (typically a
701 instead of having it called with no arguments (typically a
699 mistake). The old 'full' autocall still exists: for that, you
702 mistake). The old 'full' autocall still exists: for that, you
700 need to set the 'autocall' parameter to 2 in your ipythonrc file.
703 need to set the 'autocall' parameter to 2 in your ipythonrc file.
701
704
702 * IPython/completer.py (Completer.attr_matches): add
705 * IPython/completer.py (Completer.attr_matches): add
703 tab-completion support for Enthoughts' traits. After a report by
706 tab-completion support for Enthoughts' traits. After a report by
704 Arnd and a patch by Prabhu.
707 Arnd and a patch by Prabhu.
705
708
706 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
709 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
707
710
708 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
711 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
709 Schmolck's patch to fix inspect.getinnerframes().
712 Schmolck's patch to fix inspect.getinnerframes().
710
713
711 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
714 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
712 for embedded instances, regarding handling of namespaces and items
715 for embedded instances, regarding handling of namespaces and items
713 added to the __builtin__ one. Multiple embedded instances and
716 added to the __builtin__ one. Multiple embedded instances and
714 recursive embeddings should work better now (though I'm not sure
717 recursive embeddings should work better now (though I'm not sure
715 I've got all the corner cases fixed, that code is a bit of a brain
718 I've got all the corner cases fixed, that code is a bit of a brain
716 twister).
719 twister).
717
720
718 * IPython/Magic.py (magic_edit): added support to edit in-memory
721 * IPython/Magic.py (magic_edit): added support to edit in-memory
719 macros (automatically creates the necessary temp files). %edit
722 macros (automatically creates the necessary temp files). %edit
720 also doesn't return the file contents anymore, it's just noise.
723 also doesn't return the file contents anymore, it's just noise.
721
724
722 * IPython/completer.py (Completer.attr_matches): revert change to
725 * IPython/completer.py (Completer.attr_matches): revert change to
723 complete only on attributes listed in __all__. I realized it
726 complete only on attributes listed in __all__. I realized it
724 cripples the tab-completion system as a tool for exploring the
727 cripples the tab-completion system as a tool for exploring the
725 internals of unknown libraries (it renders any non-__all__
728 internals of unknown libraries (it renders any non-__all__
726 attribute off-limits). I got bit by this when trying to see
729 attribute off-limits). I got bit by this when trying to see
727 something inside the dis module.
730 something inside the dis module.
728
731
729 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
732 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
730
733
731 * IPython/iplib.py (InteractiveShell.__init__): add .meta
734 * IPython/iplib.py (InteractiveShell.__init__): add .meta
732 namespace for users and extension writers to hold data in. This
735 namespace for users and extension writers to hold data in. This
733 follows the discussion in
736 follows the discussion in
734 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
737 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
735
738
736 * IPython/completer.py (IPCompleter.complete): small patch to help
739 * IPython/completer.py (IPCompleter.complete): small patch to help
737 tab-completion under Emacs, after a suggestion by John Barnard
740 tab-completion under Emacs, after a suggestion by John Barnard
738 <barnarj-AT-ccf.org>.
741 <barnarj-AT-ccf.org>.
739
742
740 * IPython/Magic.py (Magic.extract_input_slices): added support for
743 * IPython/Magic.py (Magic.extract_input_slices): added support for
741 the slice notation in magics to use N-M to represent numbers N...M
744 the slice notation in magics to use N-M to represent numbers N...M
742 (closed endpoints). This is used by %macro and %save.
745 (closed endpoints). This is used by %macro and %save.
743
746
744 * IPython/completer.py (Completer.attr_matches): for modules which
747 * IPython/completer.py (Completer.attr_matches): for modules which
745 define __all__, complete only on those. After a patch by Jeffrey
748 define __all__, complete only on those. After a patch by Jeffrey
746 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
749 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
747 speed up this routine.
750 speed up this routine.
748
751
749 * IPython/Logger.py (Logger.log): fix a history handling bug. I
752 * IPython/Logger.py (Logger.log): fix a history handling bug. I
750 don't know if this is the end of it, but the behavior now is
753 don't know if this is the end of it, but the behavior now is
751 certainly much more correct. Note that coupled with macros,
754 certainly much more correct. Note that coupled with macros,
752 slightly surprising (at first) behavior may occur: a macro will in
755 slightly surprising (at first) behavior may occur: a macro will in
753 general expand to multiple lines of input, so upon exiting, the
756 general expand to multiple lines of input, so upon exiting, the
754 in/out counters will both be bumped by the corresponding amount
757 in/out counters will both be bumped by the corresponding amount
755 (as if the macro's contents had been typed interactively). Typing
758 (as if the macro's contents had been typed interactively). Typing
756 %hist will reveal the intermediate (silently processed) lines.
759 %hist will reveal the intermediate (silently processed) lines.
757
760
758 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
761 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
759 pickle to fail (%run was overwriting __main__ and not restoring
762 pickle to fail (%run was overwriting __main__ and not restoring
760 it, but pickle relies on __main__ to operate).
763 it, but pickle relies on __main__ to operate).
761
764
762 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
765 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
763 using properties, but forgot to make the main InteractiveShell
766 using properties, but forgot to make the main InteractiveShell
764 class a new-style class. Properties fail silently, and
767 class a new-style class. Properties fail silently, and
765 misteriously, with old-style class (getters work, but
768 misteriously, with old-style class (getters work, but
766 setters don't do anything).
769 setters don't do anything).
767
770
768 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
771 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
769
772
770 * IPython/Magic.py (magic_history): fix history reporting bug (I
773 * IPython/Magic.py (magic_history): fix history reporting bug (I
771 know some nasties are still there, I just can't seem to find a
774 know some nasties are still there, I just can't seem to find a
772 reproducible test case to track them down; the input history is
775 reproducible test case to track them down; the input history is
773 falling out of sync...)
776 falling out of sync...)
774
777
775 * IPython/iplib.py (handle_shell_escape): fix bug where both
778 * IPython/iplib.py (handle_shell_escape): fix bug where both
776 aliases and system accesses where broken for indented code (such
779 aliases and system accesses where broken for indented code (such
777 as loops).
780 as loops).
778
781
779 * IPython/genutils.py (shell): fix small but critical bug for
782 * IPython/genutils.py (shell): fix small but critical bug for
780 win32 system access.
783 win32 system access.
781
784
782 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
785 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
783
786
784 * IPython/iplib.py (showtraceback): remove use of the
787 * IPython/iplib.py (showtraceback): remove use of the
785 sys.last_{type/value/traceback} structures, which are non
788 sys.last_{type/value/traceback} structures, which are non
786 thread-safe.
789 thread-safe.
787 (_prefilter): change control flow to ensure that we NEVER
790 (_prefilter): change control flow to ensure that we NEVER
788 introspect objects when autocall is off. This will guarantee that
791 introspect objects when autocall is off. This will guarantee that
789 having an input line of the form 'x.y', where access to attribute
792 having an input line of the form 'x.y', where access to attribute
790 'y' has side effects, doesn't trigger the side effect TWICE. It
793 'y' has side effects, doesn't trigger the side effect TWICE. It
791 is important to note that, with autocall on, these side effects
794 is important to note that, with autocall on, these side effects
792 can still happen.
795 can still happen.
793 (ipsystem): new builtin, to complete the ip{magic/alias/system}
796 (ipsystem): new builtin, to complete the ip{magic/alias/system}
794 trio. IPython offers these three kinds of special calls which are
797 trio. IPython offers these three kinds of special calls which are
795 not python code, and it's a good thing to have their call method
798 not python code, and it's a good thing to have their call method
796 be accessible as pure python functions (not just special syntax at
799 be accessible as pure python functions (not just special syntax at
797 the command line). It gives us a better internal implementation
800 the command line). It gives us a better internal implementation
798 structure, as well as exposing these for user scripting more
801 structure, as well as exposing these for user scripting more
799 cleanly.
802 cleanly.
800
803
801 * IPython/macro.py (Macro.__init__): moved macros to a standalone
804 * IPython/macro.py (Macro.__init__): moved macros to a standalone
802 file. Now that they'll be more likely to be used with the
805 file. Now that they'll be more likely to be used with the
803 persistance system (%store), I want to make sure their module path
806 persistance system (%store), I want to make sure their module path
804 doesn't change in the future, so that we don't break things for
807 doesn't change in the future, so that we don't break things for
805 users' persisted data.
808 users' persisted data.
806
809
807 * IPython/iplib.py (autoindent_update): move indentation
810 * IPython/iplib.py (autoindent_update): move indentation
808 management into the _text_ processing loop, not the keyboard
811 management into the _text_ processing loop, not the keyboard
809 interactive one. This is necessary to correctly process non-typed
812 interactive one. This is necessary to correctly process non-typed
810 multiline input (such as macros).
813 multiline input (such as macros).
811
814
812 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
815 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
813 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
816 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
814 which was producing problems in the resulting manual.
817 which was producing problems in the resulting manual.
815 (magic_whos): improve reporting of instances (show their class,
818 (magic_whos): improve reporting of instances (show their class,
816 instead of simply printing 'instance' which isn't terribly
819 instead of simply printing 'instance' which isn't terribly
817 informative).
820 informative).
818
821
819 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
822 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
820 (minor mods) to support network shares under win32.
823 (minor mods) to support network shares under win32.
821
824
822 * IPython/winconsole.py (get_console_size): add new winconsole
825 * IPython/winconsole.py (get_console_size): add new winconsole
823 module and fixes to page_dumb() to improve its behavior under
826 module and fixes to page_dumb() to improve its behavior under
824 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
827 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
825
828
826 * IPython/Magic.py (Macro): simplified Macro class to just
829 * IPython/Magic.py (Macro): simplified Macro class to just
827 subclass list. We've had only 2.2 compatibility for a very long
830 subclass list. We've had only 2.2 compatibility for a very long
828 time, yet I was still avoiding subclassing the builtin types. No
831 time, yet I was still avoiding subclassing the builtin types. No
829 more (I'm also starting to use properties, though I won't shift to
832 more (I'm also starting to use properties, though I won't shift to
830 2.3-specific features quite yet).
833 2.3-specific features quite yet).
831 (magic_store): added Ville's patch for lightweight variable
834 (magic_store): added Ville's patch for lightweight variable
832 persistence, after a request on the user list by Matt Wilkie
835 persistence, after a request on the user list by Matt Wilkie
833 <maphew-AT-gmail.com>. The new %store magic's docstring has full
836 <maphew-AT-gmail.com>. The new %store magic's docstring has full
834 details.
837 details.
835
838
836 * IPython/iplib.py (InteractiveShell.post_config_initialization):
839 * IPython/iplib.py (InteractiveShell.post_config_initialization):
837 changed the default logfile name from 'ipython.log' to
840 changed the default logfile name from 'ipython.log' to
838 'ipython_log.py'. These logs are real python files, and now that
841 'ipython_log.py'. These logs are real python files, and now that
839 we have much better multiline support, people are more likely to
842 we have much better multiline support, people are more likely to
840 want to use them as such. Might as well name them correctly.
843 want to use them as such. Might as well name them correctly.
841
844
842 * IPython/Magic.py: substantial cleanup. While we can't stop
845 * IPython/Magic.py: substantial cleanup. While we can't stop
843 using magics as mixins, due to the existing customizations 'out
846 using magics as mixins, due to the existing customizations 'out
844 there' which rely on the mixin naming conventions, at least I
847 there' which rely on the mixin naming conventions, at least I
845 cleaned out all cross-class name usage. So once we are OK with
848 cleaned out all cross-class name usage. So once we are OK with
846 breaking compatibility, the two systems can be separated.
849 breaking compatibility, the two systems can be separated.
847
850
848 * IPython/Logger.py: major cleanup. This one is NOT a mixin
851 * IPython/Logger.py: major cleanup. This one is NOT a mixin
849 anymore, and the class is a fair bit less hideous as well. New
852 anymore, and the class is a fair bit less hideous as well. New
850 features were also introduced: timestamping of input, and logging
853 features were also introduced: timestamping of input, and logging
851 of output results. These are user-visible with the -t and -o
854 of output results. These are user-visible with the -t and -o
852 options to %logstart. Closes
855 options to %logstart. Closes
853 http://www.scipy.net/roundup/ipython/issue11 and a request by
856 http://www.scipy.net/roundup/ipython/issue11 and a request by
854 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
857 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
855
858
856 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
859 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
857
860
858 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
861 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
859 better hadnle backslashes in paths. See the thread 'More Windows
862 better hadnle backslashes in paths. See the thread 'More Windows
860 questions part 2 - \/ characters revisited' on the iypthon user
863 questions part 2 - \/ characters revisited' on the iypthon user
861 list:
864 list:
862 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
865 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
863
866
864 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
867 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
865
868
866 (InteractiveShell.__init__): change threaded shells to not use the
869 (InteractiveShell.__init__): change threaded shells to not use the
867 ipython crash handler. This was causing more problems than not,
870 ipython crash handler. This was causing more problems than not,
868 as exceptions in the main thread (GUI code, typically) would
871 as exceptions in the main thread (GUI code, typically) would
869 always show up as a 'crash', when they really weren't.
872 always show up as a 'crash', when they really weren't.
870
873
871 The colors and exception mode commands (%colors/%xmode) have been
874 The colors and exception mode commands (%colors/%xmode) have been
872 synchronized to also take this into account, so users can get
875 synchronized to also take this into account, so users can get
873 verbose exceptions for their threaded code as well. I also added
876 verbose exceptions for their threaded code as well. I also added
874 support for activating pdb inside this exception handler as well,
877 support for activating pdb inside this exception handler as well,
875 so now GUI authors can use IPython's enhanced pdb at runtime.
878 so now GUI authors can use IPython's enhanced pdb at runtime.
876
879
877 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
880 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
878 true by default, and add it to the shipped ipythonrc file. Since
881 true by default, and add it to the shipped ipythonrc file. Since
879 this asks the user before proceeding, I think it's OK to make it
882 this asks the user before proceeding, I think it's OK to make it
880 true by default.
883 true by default.
881
884
882 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
885 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
883 of the previous special-casing of input in the eval loop. I think
886 of the previous special-casing of input in the eval loop. I think
884 this is cleaner, as they really are commands and shouldn't have
887 this is cleaner, as they really are commands and shouldn't have
885 a special role in the middle of the core code.
888 a special role in the middle of the core code.
886
889
887 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
890 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
888
891
889 * IPython/iplib.py (edit_syntax_error): added support for
892 * IPython/iplib.py (edit_syntax_error): added support for
890 automatically reopening the editor if the file had a syntax error
893 automatically reopening the editor if the file had a syntax error
891 in it. Thanks to scottt who provided the patch at:
894 in it. Thanks to scottt who provided the patch at:
892 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
895 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
893 version committed).
896 version committed).
894
897
895 * IPython/iplib.py (handle_normal): add suport for multi-line
898 * IPython/iplib.py (handle_normal): add suport for multi-line
896 input with emtpy lines. This fixes
899 input with emtpy lines. This fixes
897 http://www.scipy.net/roundup/ipython/issue43 and a similar
900 http://www.scipy.net/roundup/ipython/issue43 and a similar
898 discussion on the user list.
901 discussion on the user list.
899
902
900 WARNING: a behavior change is necessarily introduced to support
903 WARNING: a behavior change is necessarily introduced to support
901 blank lines: now a single blank line with whitespace does NOT
904 blank lines: now a single blank line with whitespace does NOT
902 break the input loop, which means that when autoindent is on, by
905 break the input loop, which means that when autoindent is on, by
903 default hitting return on the next (indented) line does NOT exit.
906 default hitting return on the next (indented) line does NOT exit.
904
907
905 Instead, to exit a multiline input you can either have:
908 Instead, to exit a multiline input you can either have:
906
909
907 - TWO whitespace lines (just hit return again), or
910 - TWO whitespace lines (just hit return again), or
908 - a single whitespace line of a different length than provided
911 - a single whitespace line of a different length than provided
909 by the autoindent (add or remove a space).
912 by the autoindent (add or remove a space).
910
913
911 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
914 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
912 module to better organize all readline-related functionality.
915 module to better organize all readline-related functionality.
913 I've deleted FlexCompleter and put all completion clases here.
916 I've deleted FlexCompleter and put all completion clases here.
914
917
915 * IPython/iplib.py (raw_input): improve indentation management.
918 * IPython/iplib.py (raw_input): improve indentation management.
916 It is now possible to paste indented code with autoindent on, and
919 It is now possible to paste indented code with autoindent on, and
917 the code is interpreted correctly (though it still looks bad on
920 the code is interpreted correctly (though it still looks bad on
918 screen, due to the line-oriented nature of ipython).
921 screen, due to the line-oriented nature of ipython).
919 (MagicCompleter.complete): change behavior so that a TAB key on an
922 (MagicCompleter.complete): change behavior so that a TAB key on an
920 otherwise empty line actually inserts a tab, instead of completing
923 otherwise empty line actually inserts a tab, instead of completing
921 on the entire global namespace. This makes it easier to use the
924 on the entire global namespace. This makes it easier to use the
922 TAB key for indentation. After a request by Hans Meine
925 TAB key for indentation. After a request by Hans Meine
923 <hans_meine-AT-gmx.net>
926 <hans_meine-AT-gmx.net>
924 (_prefilter): add support so that typing plain 'exit' or 'quit'
927 (_prefilter): add support so that typing plain 'exit' or 'quit'
925 does a sensible thing. Originally I tried to deviate as little as
928 does a sensible thing. Originally I tried to deviate as little as
926 possible from the default python behavior, but even that one may
929 possible from the default python behavior, but even that one may
927 change in this direction (thread on python-dev to that effect).
930 change in this direction (thread on python-dev to that effect).
928 Regardless, ipython should do the right thing even if CPython's
931 Regardless, ipython should do the right thing even if CPython's
929 '>>>' prompt doesn't.
932 '>>>' prompt doesn't.
930 (InteractiveShell): removed subclassing code.InteractiveConsole
933 (InteractiveShell): removed subclassing code.InteractiveConsole
931 class. By now we'd overridden just about all of its methods: I've
934 class. By now we'd overridden just about all of its methods: I've
932 copied the remaining two over, and now ipython is a standalone
935 copied the remaining two over, and now ipython is a standalone
933 class. This will provide a clearer picture for the chainsaw
936 class. This will provide a clearer picture for the chainsaw
934 branch refactoring.
937 branch refactoring.
935
938
936 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
939 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
937
940
938 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
941 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
939 failures for objects which break when dir() is called on them.
942 failures for objects which break when dir() is called on them.
940
943
941 * IPython/FlexCompleter.py (Completer.__init__): Added support for
944 * IPython/FlexCompleter.py (Completer.__init__): Added support for
942 distinct local and global namespaces in the completer API. This
945 distinct local and global namespaces in the completer API. This
943 change allows us top properly handle completion with distinct
946 change allows us top properly handle completion with distinct
944 scopes, including in embedded instances (this had never really
947 scopes, including in embedded instances (this had never really
945 worked correctly).
948 worked correctly).
946
949
947 Note: this introduces a change in the constructor for
950 Note: this introduces a change in the constructor for
948 MagicCompleter, as a new global_namespace parameter is now the
951 MagicCompleter, as a new global_namespace parameter is now the
949 second argument (the others were bumped one position).
952 second argument (the others were bumped one position).
950
953
951 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
954 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
952
955
953 * IPython/iplib.py (embed_mainloop): fix tab-completion in
956 * IPython/iplib.py (embed_mainloop): fix tab-completion in
954 embedded instances (which can be done now thanks to Vivian's
957 embedded instances (which can be done now thanks to Vivian's
955 frame-handling fixes for pdb).
958 frame-handling fixes for pdb).
956 (InteractiveShell.__init__): Fix namespace handling problem in
959 (InteractiveShell.__init__): Fix namespace handling problem in
957 embedded instances. We were overwriting __main__ unconditionally,
960 embedded instances. We were overwriting __main__ unconditionally,
958 and this should only be done for 'full' (non-embedded) IPython;
961 and this should only be done for 'full' (non-embedded) IPython;
959 embedded instances must respect the caller's __main__. Thanks to
962 embedded instances must respect the caller's __main__. Thanks to
960 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
963 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
961
964
962 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
965 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
963
966
964 * setup.py: added download_url to setup(). This registers the
967 * setup.py: added download_url to setup(). This registers the
965 download address at PyPI, which is not only useful to humans
968 download address at PyPI, which is not only useful to humans
966 browsing the site, but is also picked up by setuptools (the Eggs
969 browsing the site, but is also picked up by setuptools (the Eggs
967 machinery). Thanks to Ville and R. Kern for the info/discussion
970 machinery). Thanks to Ville and R. Kern for the info/discussion
968 on this.
971 on this.
969
972
970 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
973 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
971
974
972 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
975 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
973 This brings a lot of nice functionality to the pdb mode, which now
976 This brings a lot of nice functionality to the pdb mode, which now
974 has tab-completion, syntax highlighting, and better stack handling
977 has tab-completion, syntax highlighting, and better stack handling
975 than before. Many thanks to Vivian De Smedt
978 than before. Many thanks to Vivian De Smedt
976 <vivian-AT-vdesmedt.com> for the original patches.
979 <vivian-AT-vdesmedt.com> for the original patches.
977
980
978 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
981 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
979
982
980 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
983 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
981 sequence to consistently accept the banner argument. The
984 sequence to consistently accept the banner argument. The
982 inconsistency was tripping SAGE, thanks to Gary Zablackis
985 inconsistency was tripping SAGE, thanks to Gary Zablackis
983 <gzabl-AT-yahoo.com> for the report.
986 <gzabl-AT-yahoo.com> for the report.
984
987
985 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
988 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
986
989
987 * IPython/iplib.py (InteractiveShell.post_config_initialization):
990 * IPython/iplib.py (InteractiveShell.post_config_initialization):
988 Fix bug where a naked 'alias' call in the ipythonrc file would
991 Fix bug where a naked 'alias' call in the ipythonrc file would
989 cause a crash. Bug reported by Jorgen Stenarson.
992 cause a crash. Bug reported by Jorgen Stenarson.
990
993
991 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
994 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
992
995
993 * IPython/ipmaker.py (make_IPython): cleanups which should improve
996 * IPython/ipmaker.py (make_IPython): cleanups which should improve
994 startup time.
997 startup time.
995
998
996 * IPython/iplib.py (runcode): my globals 'fix' for embedded
999 * IPython/iplib.py (runcode): my globals 'fix' for embedded
997 instances had introduced a bug with globals in normal code. Now
1000 instances had introduced a bug with globals in normal code. Now
998 it's working in all cases.
1001 it's working in all cases.
999
1002
1000 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1003 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1001 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1004 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1002 has been introduced to set the default case sensitivity of the
1005 has been introduced to set the default case sensitivity of the
1003 searches. Users can still select either mode at runtime on a
1006 searches. Users can still select either mode at runtime on a
1004 per-search basis.
1007 per-search basis.
1005
1008
1006 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1009 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1007
1010
1008 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1011 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1009 attributes in wildcard searches for subclasses. Modified version
1012 attributes in wildcard searches for subclasses. Modified version
1010 of a patch by Jorgen.
1013 of a patch by Jorgen.
1011
1014
1012 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1015 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1013
1016
1014 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1017 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1015 embedded instances. I added a user_global_ns attribute to the
1018 embedded instances. I added a user_global_ns attribute to the
1016 InteractiveShell class to handle this.
1019 InteractiveShell class to handle this.
1017
1020
1018 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1021 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1019
1022
1020 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1023 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1021 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1024 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1022 (reported under win32, but may happen also in other platforms).
1025 (reported under win32, but may happen also in other platforms).
1023 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1026 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1024
1027
1025 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1028 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1026
1029
1027 * IPython/Magic.py (magic_psearch): new support for wildcard
1030 * IPython/Magic.py (magic_psearch): new support for wildcard
1028 patterns. Now, typing ?a*b will list all names which begin with a
1031 patterns. Now, typing ?a*b will list all names which begin with a
1029 and end in b, for example. The %psearch magic has full
1032 and end in b, for example. The %psearch magic has full
1030 docstrings. Many thanks to JΓΆrgen Stenarson
1033 docstrings. Many thanks to JΓΆrgen Stenarson
1031 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1034 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1032 implementing this functionality.
1035 implementing this functionality.
1033
1036
1034 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1037 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1035
1038
1036 * Manual: fixed long-standing annoyance of double-dashes (as in
1039 * Manual: fixed long-standing annoyance of double-dashes (as in
1037 --prefix=~, for example) being stripped in the HTML version. This
1040 --prefix=~, for example) being stripped in the HTML version. This
1038 is a latex2html bug, but a workaround was provided. Many thanks
1041 is a latex2html bug, but a workaround was provided. Many thanks
1039 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1042 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1040 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1043 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1041 rolling. This seemingly small issue had tripped a number of users
1044 rolling. This seemingly small issue had tripped a number of users
1042 when first installing, so I'm glad to see it gone.
1045 when first installing, so I'm glad to see it gone.
1043
1046
1044 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1047 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1045
1048
1046 * IPython/Extensions/numeric_formats.py: fix missing import,
1049 * IPython/Extensions/numeric_formats.py: fix missing import,
1047 reported by Stephen Walton.
1050 reported by Stephen Walton.
1048
1051
1049 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1052 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1050
1053
1051 * IPython/demo.py: finish demo module, fully documented now.
1054 * IPython/demo.py: finish demo module, fully documented now.
1052
1055
1053 * IPython/genutils.py (file_read): simple little utility to read a
1056 * IPython/genutils.py (file_read): simple little utility to read a
1054 file and ensure it's closed afterwards.
1057 file and ensure it's closed afterwards.
1055
1058
1056 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1059 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1057
1060
1058 * IPython/demo.py (Demo.__init__): added support for individually
1061 * IPython/demo.py (Demo.__init__): added support for individually
1059 tagging blocks for automatic execution.
1062 tagging blocks for automatic execution.
1060
1063
1061 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1064 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1062 syntax-highlighted python sources, requested by John.
1065 syntax-highlighted python sources, requested by John.
1063
1066
1064 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1067 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1065
1068
1066 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1069 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1067 finishing.
1070 finishing.
1068
1071
1069 * IPython/genutils.py (shlex_split): moved from Magic to here,
1072 * IPython/genutils.py (shlex_split): moved from Magic to here,
1070 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1073 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1071
1074
1072 * IPython/demo.py (Demo.__init__): added support for silent
1075 * IPython/demo.py (Demo.__init__): added support for silent
1073 blocks, improved marks as regexps, docstrings written.
1076 blocks, improved marks as regexps, docstrings written.
1074 (Demo.__init__): better docstring, added support for sys.argv.
1077 (Demo.__init__): better docstring, added support for sys.argv.
1075
1078
1076 * IPython/genutils.py (marquee): little utility used by the demo
1079 * IPython/genutils.py (marquee): little utility used by the demo
1077 code, handy in general.
1080 code, handy in general.
1078
1081
1079 * IPython/demo.py (Demo.__init__): new class for interactive
1082 * IPython/demo.py (Demo.__init__): new class for interactive
1080 demos. Not documented yet, I just wrote it in a hurry for
1083 demos. Not documented yet, I just wrote it in a hurry for
1081 scipy'05. Will docstring later.
1084 scipy'05. Will docstring later.
1082
1085
1083 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1086 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1084
1087
1085 * IPython/Shell.py (sigint_handler): Drastic simplification which
1088 * IPython/Shell.py (sigint_handler): Drastic simplification which
1086 also seems to make Ctrl-C work correctly across threads! This is
1089 also seems to make Ctrl-C work correctly across threads! This is
1087 so simple, that I can't beleive I'd missed it before. Needs more
1090 so simple, that I can't beleive I'd missed it before. Needs more
1088 testing, though.
1091 testing, though.
1089 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1092 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1090 like this before...
1093 like this before...
1091
1094
1092 * IPython/genutils.py (get_home_dir): add protection against
1095 * IPython/genutils.py (get_home_dir): add protection against
1093 non-dirs in win32 registry.
1096 non-dirs in win32 registry.
1094
1097
1095 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1098 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1096 bug where dict was mutated while iterating (pysh crash).
1099 bug where dict was mutated while iterating (pysh crash).
1097
1100
1098 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1101 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1099
1102
1100 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1103 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1101 spurious newlines added by this routine. After a report by
1104 spurious newlines added by this routine. After a report by
1102 F. Mantegazza.
1105 F. Mantegazza.
1103
1106
1104 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1107 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1105
1108
1106 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1109 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1107 calls. These were a leftover from the GTK 1.x days, and can cause
1110 calls. These were a leftover from the GTK 1.x days, and can cause
1108 problems in certain cases (after a report by John Hunter).
1111 problems in certain cases (after a report by John Hunter).
1109
1112
1110 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1113 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1111 os.getcwd() fails at init time. Thanks to patch from David Remahl
1114 os.getcwd() fails at init time. Thanks to patch from David Remahl
1112 <chmod007-AT-mac.com>.
1115 <chmod007-AT-mac.com>.
1113 (InteractiveShell.__init__): prevent certain special magics from
1116 (InteractiveShell.__init__): prevent certain special magics from
1114 being shadowed by aliases. Closes
1117 being shadowed by aliases. Closes
1115 http://www.scipy.net/roundup/ipython/issue41.
1118 http://www.scipy.net/roundup/ipython/issue41.
1116
1119
1117 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1120 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1118
1121
1119 * IPython/iplib.py (InteractiveShell.complete): Added new
1122 * IPython/iplib.py (InteractiveShell.complete): Added new
1120 top-level completion method to expose the completion mechanism
1123 top-level completion method to expose the completion mechanism
1121 beyond readline-based environments.
1124 beyond readline-based environments.
1122
1125
1123 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1126 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1124
1127
1125 * tools/ipsvnc (svnversion): fix svnversion capture.
1128 * tools/ipsvnc (svnversion): fix svnversion capture.
1126
1129
1127 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1130 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1128 attribute to self, which was missing. Before, it was set by a
1131 attribute to self, which was missing. Before, it was set by a
1129 routine which in certain cases wasn't being called, so the
1132 routine which in certain cases wasn't being called, so the
1130 instance could end up missing the attribute. This caused a crash.
1133 instance could end up missing the attribute. This caused a crash.
1131 Closes http://www.scipy.net/roundup/ipython/issue40.
1134 Closes http://www.scipy.net/roundup/ipython/issue40.
1132
1135
1133 2005-08-16 Fernando Perez <fperez@colorado.edu>
1136 2005-08-16 Fernando Perez <fperez@colorado.edu>
1134
1137
1135 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1138 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1136 contains non-string attribute. Closes
1139 contains non-string attribute. Closes
1137 http://www.scipy.net/roundup/ipython/issue38.
1140 http://www.scipy.net/roundup/ipython/issue38.
1138
1141
1139 2005-08-14 Fernando Perez <fperez@colorado.edu>
1142 2005-08-14 Fernando Perez <fperez@colorado.edu>
1140
1143
1141 * tools/ipsvnc: Minor improvements, to add changeset info.
1144 * tools/ipsvnc: Minor improvements, to add changeset info.
1142
1145
1143 2005-08-12 Fernando Perez <fperez@colorado.edu>
1146 2005-08-12 Fernando Perez <fperez@colorado.edu>
1144
1147
1145 * IPython/iplib.py (runsource): remove self.code_to_run_src
1148 * IPython/iplib.py (runsource): remove self.code_to_run_src
1146 attribute. I realized this is nothing more than
1149 attribute. I realized this is nothing more than
1147 '\n'.join(self.buffer), and having the same data in two different
1150 '\n'.join(self.buffer), and having the same data in two different
1148 places is just asking for synchronization bugs. This may impact
1151 places is just asking for synchronization bugs. This may impact
1149 people who have custom exception handlers, so I need to warn
1152 people who have custom exception handlers, so I need to warn
1150 ipython-dev about it (F. Mantegazza may use them).
1153 ipython-dev about it (F. Mantegazza may use them).
1151
1154
1152 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1155 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1153
1156
1154 * IPython/genutils.py: fix 2.2 compatibility (generators)
1157 * IPython/genutils.py: fix 2.2 compatibility (generators)
1155
1158
1156 2005-07-18 Fernando Perez <fperez@colorado.edu>
1159 2005-07-18 Fernando Perez <fperez@colorado.edu>
1157
1160
1158 * IPython/genutils.py (get_home_dir): fix to help users with
1161 * IPython/genutils.py (get_home_dir): fix to help users with
1159 invalid $HOME under win32.
1162 invalid $HOME under win32.
1160
1163
1161 2005-07-17 Fernando Perez <fperez@colorado.edu>
1164 2005-07-17 Fernando Perez <fperez@colorado.edu>
1162
1165
1163 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1166 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1164 some old hacks and clean up a bit other routines; code should be
1167 some old hacks and clean up a bit other routines; code should be
1165 simpler and a bit faster.
1168 simpler and a bit faster.
1166
1169
1167 * IPython/iplib.py (interact): removed some last-resort attempts
1170 * IPython/iplib.py (interact): removed some last-resort attempts
1168 to survive broken stdout/stderr. That code was only making it
1171 to survive broken stdout/stderr. That code was only making it
1169 harder to abstract out the i/o (necessary for gui integration),
1172 harder to abstract out the i/o (necessary for gui integration),
1170 and the crashes it could prevent were extremely rare in practice
1173 and the crashes it could prevent were extremely rare in practice
1171 (besides being fully user-induced in a pretty violent manner).
1174 (besides being fully user-induced in a pretty violent manner).
1172
1175
1173 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1176 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1174 Nothing major yet, but the code is simpler to read; this should
1177 Nothing major yet, but the code is simpler to read; this should
1175 make it easier to do more serious modifications in the future.
1178 make it easier to do more serious modifications in the future.
1176
1179
1177 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1180 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1178 which broke in .15 (thanks to a report by Ville).
1181 which broke in .15 (thanks to a report by Ville).
1179
1182
1180 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1183 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1181 be quite correct, I know next to nothing about unicode). This
1184 be quite correct, I know next to nothing about unicode). This
1182 will allow unicode strings to be used in prompts, amongst other
1185 will allow unicode strings to be used in prompts, amongst other
1183 cases. It also will prevent ipython from crashing when unicode
1186 cases. It also will prevent ipython from crashing when unicode
1184 shows up unexpectedly in many places. If ascii encoding fails, we
1187 shows up unexpectedly in many places. If ascii encoding fails, we
1185 assume utf_8. Currently the encoding is not a user-visible
1188 assume utf_8. Currently the encoding is not a user-visible
1186 setting, though it could be made so if there is demand for it.
1189 setting, though it could be made so if there is demand for it.
1187
1190
1188 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1191 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1189
1192
1190 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1193 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1191
1194
1192 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1195 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1193
1196
1194 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1197 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1195 code can work transparently for 2.2/2.3.
1198 code can work transparently for 2.2/2.3.
1196
1199
1197 2005-07-16 Fernando Perez <fperez@colorado.edu>
1200 2005-07-16 Fernando Perez <fperez@colorado.edu>
1198
1201
1199 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1202 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1200 out of the color scheme table used for coloring exception
1203 out of the color scheme table used for coloring exception
1201 tracebacks. This allows user code to add new schemes at runtime.
1204 tracebacks. This allows user code to add new schemes at runtime.
1202 This is a minimally modified version of the patch at
1205 This is a minimally modified version of the patch at
1203 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1206 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1204 for the contribution.
1207 for the contribution.
1205
1208
1206 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1209 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1207 slightly modified version of the patch in
1210 slightly modified version of the patch in
1208 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1211 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1209 to remove the previous try/except solution (which was costlier).
1212 to remove the previous try/except solution (which was costlier).
1210 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1213 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1211
1214
1212 2005-06-08 Fernando Perez <fperez@colorado.edu>
1215 2005-06-08 Fernando Perez <fperez@colorado.edu>
1213
1216
1214 * IPython/iplib.py (write/write_err): Add methods to abstract all
1217 * IPython/iplib.py (write/write_err): Add methods to abstract all
1215 I/O a bit more.
1218 I/O a bit more.
1216
1219
1217 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1220 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1218 warning, reported by Aric Hagberg, fix by JD Hunter.
1221 warning, reported by Aric Hagberg, fix by JD Hunter.
1219
1222
1220 2005-06-02 *** Released version 0.6.15
1223 2005-06-02 *** Released version 0.6.15
1221
1224
1222 2005-06-01 Fernando Perez <fperez@colorado.edu>
1225 2005-06-01 Fernando Perez <fperez@colorado.edu>
1223
1226
1224 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1227 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1225 tab-completion of filenames within open-quoted strings. Note that
1228 tab-completion of filenames within open-quoted strings. Note that
1226 this requires that in ~/.ipython/ipythonrc, users change the
1229 this requires that in ~/.ipython/ipythonrc, users change the
1227 readline delimiters configuration to read:
1230 readline delimiters configuration to read:
1228
1231
1229 readline_remove_delims -/~
1232 readline_remove_delims -/~
1230
1233
1231
1234
1232 2005-05-31 *** Released version 0.6.14
1235 2005-05-31 *** Released version 0.6.14
1233
1236
1234 2005-05-29 Fernando Perez <fperez@colorado.edu>
1237 2005-05-29 Fernando Perez <fperez@colorado.edu>
1235
1238
1236 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1239 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1237 with files not on the filesystem. Reported by Eliyahu Sandler
1240 with files not on the filesystem. Reported by Eliyahu Sandler
1238 <eli@gondolin.net>
1241 <eli@gondolin.net>
1239
1242
1240 2005-05-22 Fernando Perez <fperez@colorado.edu>
1243 2005-05-22 Fernando Perez <fperez@colorado.edu>
1241
1244
1242 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1245 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1243 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1246 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1244
1247
1245 2005-05-19 Fernando Perez <fperez@colorado.edu>
1248 2005-05-19 Fernando Perez <fperez@colorado.edu>
1246
1249
1247 * IPython/iplib.py (safe_execfile): close a file which could be
1250 * IPython/iplib.py (safe_execfile): close a file which could be
1248 left open (causing problems in win32, which locks open files).
1251 left open (causing problems in win32, which locks open files).
1249 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1252 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1250
1253
1251 2005-05-18 Fernando Perez <fperez@colorado.edu>
1254 2005-05-18 Fernando Perez <fperez@colorado.edu>
1252
1255
1253 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1256 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1254 keyword arguments correctly to safe_execfile().
1257 keyword arguments correctly to safe_execfile().
1255
1258
1256 2005-05-13 Fernando Perez <fperez@colorado.edu>
1259 2005-05-13 Fernando Perez <fperez@colorado.edu>
1257
1260
1258 * ipython.1: Added info about Qt to manpage, and threads warning
1261 * ipython.1: Added info about Qt to manpage, and threads warning
1259 to usage page (invoked with --help).
1262 to usage page (invoked with --help).
1260
1263
1261 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1264 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1262 new matcher (it goes at the end of the priority list) to do
1265 new matcher (it goes at the end of the priority list) to do
1263 tab-completion on named function arguments. Submitted by George
1266 tab-completion on named function arguments. Submitted by George
1264 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1267 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1265 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1268 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1266 for more details.
1269 for more details.
1267
1270
1268 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1271 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1269 SystemExit exceptions in the script being run. Thanks to a report
1272 SystemExit exceptions in the script being run. Thanks to a report
1270 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1273 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1271 producing very annoying behavior when running unit tests.
1274 producing very annoying behavior when running unit tests.
1272
1275
1273 2005-05-12 Fernando Perez <fperez@colorado.edu>
1276 2005-05-12 Fernando Perez <fperez@colorado.edu>
1274
1277
1275 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1278 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1276 which I'd broken (again) due to a changed regexp. In the process,
1279 which I'd broken (again) due to a changed regexp. In the process,
1277 added ';' as an escape to auto-quote the whole line without
1280 added ';' as an escape to auto-quote the whole line without
1278 splitting its arguments. Thanks to a report by Jerry McRae
1281 splitting its arguments. Thanks to a report by Jerry McRae
1279 <qrs0xyc02-AT-sneakemail.com>.
1282 <qrs0xyc02-AT-sneakemail.com>.
1280
1283
1281 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1284 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1282 possible crashes caused by a TokenError. Reported by Ed Schofield
1285 possible crashes caused by a TokenError. Reported by Ed Schofield
1283 <schofield-AT-ftw.at>.
1286 <schofield-AT-ftw.at>.
1284
1287
1285 2005-05-06 Fernando Perez <fperez@colorado.edu>
1288 2005-05-06 Fernando Perez <fperez@colorado.edu>
1286
1289
1287 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1290 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1288
1291
1289 2005-04-29 Fernando Perez <fperez@colorado.edu>
1292 2005-04-29 Fernando Perez <fperez@colorado.edu>
1290
1293
1291 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1294 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1292 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1295 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1293 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1296 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1294 which provides support for Qt interactive usage (similar to the
1297 which provides support for Qt interactive usage (similar to the
1295 existing one for WX and GTK). This had been often requested.
1298 existing one for WX and GTK). This had been often requested.
1296
1299
1297 2005-04-14 *** Released version 0.6.13
1300 2005-04-14 *** Released version 0.6.13
1298
1301
1299 2005-04-08 Fernando Perez <fperez@colorado.edu>
1302 2005-04-08 Fernando Perez <fperez@colorado.edu>
1300
1303
1301 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1304 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1302 from _ofind, which gets called on almost every input line. Now,
1305 from _ofind, which gets called on almost every input line. Now,
1303 we only try to get docstrings if they are actually going to be
1306 we only try to get docstrings if they are actually going to be
1304 used (the overhead of fetching unnecessary docstrings can be
1307 used (the overhead of fetching unnecessary docstrings can be
1305 noticeable for certain objects, such as Pyro proxies).
1308 noticeable for certain objects, such as Pyro proxies).
1306
1309
1307 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1310 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1308 for completers. For some reason I had been passing them the state
1311 for completers. For some reason I had been passing them the state
1309 variable, which completers never actually need, and was in
1312 variable, which completers never actually need, and was in
1310 conflict with the rlcompleter API. Custom completers ONLY need to
1313 conflict with the rlcompleter API. Custom completers ONLY need to
1311 take the text parameter.
1314 take the text parameter.
1312
1315
1313 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1316 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1314 work correctly in pysh. I've also moved all the logic which used
1317 work correctly in pysh. I've also moved all the logic which used
1315 to be in pysh.py here, which will prevent problems with future
1318 to be in pysh.py here, which will prevent problems with future
1316 upgrades. However, this time I must warn users to update their
1319 upgrades. However, this time I must warn users to update their
1317 pysh profile to include the line
1320 pysh profile to include the line
1318
1321
1319 import_all IPython.Extensions.InterpreterExec
1322 import_all IPython.Extensions.InterpreterExec
1320
1323
1321 because otherwise things won't work for them. They MUST also
1324 because otherwise things won't work for them. They MUST also
1322 delete pysh.py and the line
1325 delete pysh.py and the line
1323
1326
1324 execfile pysh.py
1327 execfile pysh.py
1325
1328
1326 from their ipythonrc-pysh.
1329 from their ipythonrc-pysh.
1327
1330
1328 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1331 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1329 robust in the face of objects whose dir() returns non-strings
1332 robust in the face of objects whose dir() returns non-strings
1330 (which it shouldn't, but some broken libs like ITK do). Thanks to
1333 (which it shouldn't, but some broken libs like ITK do). Thanks to
1331 a patch by John Hunter (implemented differently, though). Also
1334 a patch by John Hunter (implemented differently, though). Also
1332 minor improvements by using .extend instead of + on lists.
1335 minor improvements by using .extend instead of + on lists.
1333
1336
1334 * pysh.py:
1337 * pysh.py:
1335
1338
1336 2005-04-06 Fernando Perez <fperez@colorado.edu>
1339 2005-04-06 Fernando Perez <fperez@colorado.edu>
1337
1340
1338 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1341 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1339 by default, so that all users benefit from it. Those who don't
1342 by default, so that all users benefit from it. Those who don't
1340 want it can still turn it off.
1343 want it can still turn it off.
1341
1344
1342 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1345 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1343 config file, I'd forgotten about this, so users were getting it
1346 config file, I'd forgotten about this, so users were getting it
1344 off by default.
1347 off by default.
1345
1348
1346 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1349 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1347 consistency. Now magics can be called in multiline statements,
1350 consistency. Now magics can be called in multiline statements,
1348 and python variables can be expanded in magic calls via $var.
1351 and python variables can be expanded in magic calls via $var.
1349 This makes the magic system behave just like aliases or !system
1352 This makes the magic system behave just like aliases or !system
1350 calls.
1353 calls.
1351
1354
1352 2005-03-28 Fernando Perez <fperez@colorado.edu>
1355 2005-03-28 Fernando Perez <fperez@colorado.edu>
1353
1356
1354 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1357 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1355 expensive string additions for building command. Add support for
1358 expensive string additions for building command. Add support for
1356 trailing ';' when autocall is used.
1359 trailing ';' when autocall is used.
1357
1360
1358 2005-03-26 Fernando Perez <fperez@colorado.edu>
1361 2005-03-26 Fernando Perez <fperez@colorado.edu>
1359
1362
1360 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1363 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1361 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1364 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1362 ipython.el robust against prompts with any number of spaces
1365 ipython.el robust against prompts with any number of spaces
1363 (including 0) after the ':' character.
1366 (including 0) after the ':' character.
1364
1367
1365 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1368 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1366 continuation prompt, which misled users to think the line was
1369 continuation prompt, which misled users to think the line was
1367 already indented. Closes debian Bug#300847, reported to me by
1370 already indented. Closes debian Bug#300847, reported to me by
1368 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1371 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1369
1372
1370 2005-03-23 Fernando Perez <fperez@colorado.edu>
1373 2005-03-23 Fernando Perez <fperez@colorado.edu>
1371
1374
1372 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1375 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1373 properly aligned if they have embedded newlines.
1376 properly aligned if they have embedded newlines.
1374
1377
1375 * IPython/iplib.py (runlines): Add a public method to expose
1378 * IPython/iplib.py (runlines): Add a public method to expose
1376 IPython's code execution machinery, so that users can run strings
1379 IPython's code execution machinery, so that users can run strings
1377 as if they had been typed at the prompt interactively.
1380 as if they had been typed at the prompt interactively.
1378 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1381 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1379 methods which can call the system shell, but with python variable
1382 methods which can call the system shell, but with python variable
1380 expansion. The three such methods are: __IPYTHON__.system,
1383 expansion. The three such methods are: __IPYTHON__.system,
1381 .getoutput and .getoutputerror. These need to be documented in a
1384 .getoutput and .getoutputerror. These need to be documented in a
1382 'public API' section (to be written) of the manual.
1385 'public API' section (to be written) of the manual.
1383
1386
1384 2005-03-20 Fernando Perez <fperez@colorado.edu>
1387 2005-03-20 Fernando Perez <fperez@colorado.edu>
1385
1388
1386 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1389 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1387 for custom exception handling. This is quite powerful, and it
1390 for custom exception handling. This is quite powerful, and it
1388 allows for user-installable exception handlers which can trap
1391 allows for user-installable exception handlers which can trap
1389 custom exceptions at runtime and treat them separately from
1392 custom exceptions at runtime and treat them separately from
1390 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1393 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1391 Mantegazza <mantegazza-AT-ill.fr>.
1394 Mantegazza <mantegazza-AT-ill.fr>.
1392 (InteractiveShell.set_custom_completer): public API function to
1395 (InteractiveShell.set_custom_completer): public API function to
1393 add new completers at runtime.
1396 add new completers at runtime.
1394
1397
1395 2005-03-19 Fernando Perez <fperez@colorado.edu>
1398 2005-03-19 Fernando Perez <fperez@colorado.edu>
1396
1399
1397 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1400 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1398 allow objects which provide their docstrings via non-standard
1401 allow objects which provide their docstrings via non-standard
1399 mechanisms (like Pyro proxies) to still be inspected by ipython's
1402 mechanisms (like Pyro proxies) to still be inspected by ipython's
1400 ? system.
1403 ? system.
1401
1404
1402 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1405 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1403 automatic capture system. I tried quite hard to make it work
1406 automatic capture system. I tried quite hard to make it work
1404 reliably, and simply failed. I tried many combinations with the
1407 reliably, and simply failed. I tried many combinations with the
1405 subprocess module, but eventually nothing worked in all needed
1408 subprocess module, but eventually nothing worked in all needed
1406 cases (not blocking stdin for the child, duplicating stdout
1409 cases (not blocking stdin for the child, duplicating stdout
1407 without blocking, etc). The new %sc/%sx still do capture to these
1410 without blocking, etc). The new %sc/%sx still do capture to these
1408 magical list/string objects which make shell use much more
1411 magical list/string objects which make shell use much more
1409 conveninent, so not all is lost.
1412 conveninent, so not all is lost.
1410
1413
1411 XXX - FIX MANUAL for the change above!
1414 XXX - FIX MANUAL for the change above!
1412
1415
1413 (runsource): I copied code.py's runsource() into ipython to modify
1416 (runsource): I copied code.py's runsource() into ipython to modify
1414 it a bit. Now the code object and source to be executed are
1417 it a bit. Now the code object and source to be executed are
1415 stored in ipython. This makes this info accessible to third-party
1418 stored in ipython. This makes this info accessible to third-party
1416 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1419 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1417 Mantegazza <mantegazza-AT-ill.fr>.
1420 Mantegazza <mantegazza-AT-ill.fr>.
1418
1421
1419 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1422 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1420 history-search via readline (like C-p/C-n). I'd wanted this for a
1423 history-search via readline (like C-p/C-n). I'd wanted this for a
1421 long time, but only recently found out how to do it. For users
1424 long time, but only recently found out how to do it. For users
1422 who already have their ipythonrc files made and want this, just
1425 who already have their ipythonrc files made and want this, just
1423 add:
1426 add:
1424
1427
1425 readline_parse_and_bind "\e[A": history-search-backward
1428 readline_parse_and_bind "\e[A": history-search-backward
1426 readline_parse_and_bind "\e[B": history-search-forward
1429 readline_parse_and_bind "\e[B": history-search-forward
1427
1430
1428 2005-03-18 Fernando Perez <fperez@colorado.edu>
1431 2005-03-18 Fernando Perez <fperez@colorado.edu>
1429
1432
1430 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1433 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1431 LSString and SList classes which allow transparent conversions
1434 LSString and SList classes which allow transparent conversions
1432 between list mode and whitespace-separated string.
1435 between list mode and whitespace-separated string.
1433 (magic_r): Fix recursion problem in %r.
1436 (magic_r): Fix recursion problem in %r.
1434
1437
1435 * IPython/genutils.py (LSString): New class to be used for
1438 * IPython/genutils.py (LSString): New class to be used for
1436 automatic storage of the results of all alias/system calls in _o
1439 automatic storage of the results of all alias/system calls in _o
1437 and _e (stdout/err). These provide a .l/.list attribute which
1440 and _e (stdout/err). These provide a .l/.list attribute which
1438 does automatic splitting on newlines. This means that for most
1441 does automatic splitting on newlines. This means that for most
1439 uses, you'll never need to do capturing of output with %sc/%sx
1442 uses, you'll never need to do capturing of output with %sc/%sx
1440 anymore, since ipython keeps this always done for you. Note that
1443 anymore, since ipython keeps this always done for you. Note that
1441 only the LAST results are stored, the _o/e variables are
1444 only the LAST results are stored, the _o/e variables are
1442 overwritten on each call. If you need to save their contents
1445 overwritten on each call. If you need to save their contents
1443 further, simply bind them to any other name.
1446 further, simply bind them to any other name.
1444
1447
1445 2005-03-17 Fernando Perez <fperez@colorado.edu>
1448 2005-03-17 Fernando Perez <fperez@colorado.edu>
1446
1449
1447 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1450 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1448 prompt namespace handling.
1451 prompt namespace handling.
1449
1452
1450 2005-03-16 Fernando Perez <fperez@colorado.edu>
1453 2005-03-16 Fernando Perez <fperez@colorado.edu>
1451
1454
1452 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1455 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1453 classic prompts to be '>>> ' (final space was missing, and it
1456 classic prompts to be '>>> ' (final space was missing, and it
1454 trips the emacs python mode).
1457 trips the emacs python mode).
1455 (BasePrompt.__str__): Added safe support for dynamic prompt
1458 (BasePrompt.__str__): Added safe support for dynamic prompt
1456 strings. Now you can set your prompt string to be '$x', and the
1459 strings. Now you can set your prompt string to be '$x', and the
1457 value of x will be printed from your interactive namespace. The
1460 value of x will be printed from your interactive namespace. The
1458 interpolation syntax includes the full Itpl support, so
1461 interpolation syntax includes the full Itpl support, so
1459 ${foo()+x+bar()} is a valid prompt string now, and the function
1462 ${foo()+x+bar()} is a valid prompt string now, and the function
1460 calls will be made at runtime.
1463 calls will be made at runtime.
1461
1464
1462 2005-03-15 Fernando Perez <fperez@colorado.edu>
1465 2005-03-15 Fernando Perez <fperez@colorado.edu>
1463
1466
1464 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1467 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1465 avoid name clashes in pylab. %hist still works, it just forwards
1468 avoid name clashes in pylab. %hist still works, it just forwards
1466 the call to %history.
1469 the call to %history.
1467
1470
1468 2005-03-02 *** Released version 0.6.12
1471 2005-03-02 *** Released version 0.6.12
1469
1472
1470 2005-03-02 Fernando Perez <fperez@colorado.edu>
1473 2005-03-02 Fernando Perez <fperez@colorado.edu>
1471
1474
1472 * IPython/iplib.py (handle_magic): log magic calls properly as
1475 * IPython/iplib.py (handle_magic): log magic calls properly as
1473 ipmagic() function calls.
1476 ipmagic() function calls.
1474
1477
1475 * IPython/Magic.py (magic_time): Improved %time to support
1478 * IPython/Magic.py (magic_time): Improved %time to support
1476 statements and provide wall-clock as well as CPU time.
1479 statements and provide wall-clock as well as CPU time.
1477
1480
1478 2005-02-27 Fernando Perez <fperez@colorado.edu>
1481 2005-02-27 Fernando Perez <fperez@colorado.edu>
1479
1482
1480 * IPython/hooks.py: New hooks module, to expose user-modifiable
1483 * IPython/hooks.py: New hooks module, to expose user-modifiable
1481 IPython functionality in a clean manner. For now only the editor
1484 IPython functionality in a clean manner. For now only the editor
1482 hook is actually written, and other thigns which I intend to turn
1485 hook is actually written, and other thigns which I intend to turn
1483 into proper hooks aren't yet there. The display and prefilter
1486 into proper hooks aren't yet there. The display and prefilter
1484 stuff, for example, should be hooks. But at least now the
1487 stuff, for example, should be hooks. But at least now the
1485 framework is in place, and the rest can be moved here with more
1488 framework is in place, and the rest can be moved here with more
1486 time later. IPython had had a .hooks variable for a long time for
1489 time later. IPython had had a .hooks variable for a long time for
1487 this purpose, but I'd never actually used it for anything.
1490 this purpose, but I'd never actually used it for anything.
1488
1491
1489 2005-02-26 Fernando Perez <fperez@colorado.edu>
1492 2005-02-26 Fernando Perez <fperez@colorado.edu>
1490
1493
1491 * IPython/ipmaker.py (make_IPython): make the default ipython
1494 * IPython/ipmaker.py (make_IPython): make the default ipython
1492 directory be called _ipython under win32, to follow more the
1495 directory be called _ipython under win32, to follow more the
1493 naming peculiarities of that platform (where buggy software like
1496 naming peculiarities of that platform (where buggy software like
1494 Visual Sourcesafe breaks with .named directories). Reported by
1497 Visual Sourcesafe breaks with .named directories). Reported by
1495 Ville Vainio.
1498 Ville Vainio.
1496
1499
1497 2005-02-23 Fernando Perez <fperez@colorado.edu>
1500 2005-02-23 Fernando Perez <fperez@colorado.edu>
1498
1501
1499 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1502 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1500 auto_aliases for win32 which were causing problems. Users can
1503 auto_aliases for win32 which were causing problems. Users can
1501 define the ones they personally like.
1504 define the ones they personally like.
1502
1505
1503 2005-02-21 Fernando Perez <fperez@colorado.edu>
1506 2005-02-21 Fernando Perez <fperez@colorado.edu>
1504
1507
1505 * IPython/Magic.py (magic_time): new magic to time execution of
1508 * IPython/Magic.py (magic_time): new magic to time execution of
1506 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1509 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1507
1510
1508 2005-02-19 Fernando Perez <fperez@colorado.edu>
1511 2005-02-19 Fernando Perez <fperez@colorado.edu>
1509
1512
1510 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1513 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1511 into keys (for prompts, for example).
1514 into keys (for prompts, for example).
1512
1515
1513 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1516 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1514 prompts in case users want them. This introduces a small behavior
1517 prompts in case users want them. This introduces a small behavior
1515 change: ipython does not automatically add a space to all prompts
1518 change: ipython does not automatically add a space to all prompts
1516 anymore. To get the old prompts with a space, users should add it
1519 anymore. To get the old prompts with a space, users should add it
1517 manually to their ipythonrc file, so for example prompt_in1 should
1520 manually to their ipythonrc file, so for example prompt_in1 should
1518 now read 'In [\#]: ' instead of 'In [\#]:'.
1521 now read 'In [\#]: ' instead of 'In [\#]:'.
1519 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1522 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1520 file) to control left-padding of secondary prompts.
1523 file) to control left-padding of secondary prompts.
1521
1524
1522 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1525 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1523 the profiler can't be imported. Fix for Debian, which removed
1526 the profiler can't be imported. Fix for Debian, which removed
1524 profile.py because of License issues. I applied a slightly
1527 profile.py because of License issues. I applied a slightly
1525 modified version of the original Debian patch at
1528 modified version of the original Debian patch at
1526 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1529 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1527
1530
1528 2005-02-17 Fernando Perez <fperez@colorado.edu>
1531 2005-02-17 Fernando Perez <fperez@colorado.edu>
1529
1532
1530 * IPython/genutils.py (native_line_ends): Fix bug which would
1533 * IPython/genutils.py (native_line_ends): Fix bug which would
1531 cause improper line-ends under win32 b/c I was not opening files
1534 cause improper line-ends under win32 b/c I was not opening files
1532 in binary mode. Bug report and fix thanks to Ville.
1535 in binary mode. Bug report and fix thanks to Ville.
1533
1536
1534 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1537 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1535 trying to catch spurious foo[1] autocalls. My fix actually broke
1538 trying to catch spurious foo[1] autocalls. My fix actually broke
1536 ',/' autoquote/call with explicit escape (bad regexp).
1539 ',/' autoquote/call with explicit escape (bad regexp).
1537
1540
1538 2005-02-15 *** Released version 0.6.11
1541 2005-02-15 *** Released version 0.6.11
1539
1542
1540 2005-02-14 Fernando Perez <fperez@colorado.edu>
1543 2005-02-14 Fernando Perez <fperez@colorado.edu>
1541
1544
1542 * IPython/background_jobs.py: New background job management
1545 * IPython/background_jobs.py: New background job management
1543 subsystem. This is implemented via a new set of classes, and
1546 subsystem. This is implemented via a new set of classes, and
1544 IPython now provides a builtin 'jobs' object for background job
1547 IPython now provides a builtin 'jobs' object for background job
1545 execution. A convenience %bg magic serves as a lightweight
1548 execution. A convenience %bg magic serves as a lightweight
1546 frontend for starting the more common type of calls. This was
1549 frontend for starting the more common type of calls. This was
1547 inspired by discussions with B. Granger and the BackgroundCommand
1550 inspired by discussions with B. Granger and the BackgroundCommand
1548 class described in the book Python Scripting for Computational
1551 class described in the book Python Scripting for Computational
1549 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1552 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1550 (although ultimately no code from this text was used, as IPython's
1553 (although ultimately no code from this text was used, as IPython's
1551 system is a separate implementation).
1554 system is a separate implementation).
1552
1555
1553 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1556 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1554 to control the completion of single/double underscore names
1557 to control the completion of single/double underscore names
1555 separately. As documented in the example ipytonrc file, the
1558 separately. As documented in the example ipytonrc file, the
1556 readline_omit__names variable can now be set to 2, to omit even
1559 readline_omit__names variable can now be set to 2, to omit even
1557 single underscore names. Thanks to a patch by Brian Wong
1560 single underscore names. Thanks to a patch by Brian Wong
1558 <BrianWong-AT-AirgoNetworks.Com>.
1561 <BrianWong-AT-AirgoNetworks.Com>.
1559 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1562 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1560 be autocalled as foo([1]) if foo were callable. A problem for
1563 be autocalled as foo([1]) if foo were callable. A problem for
1561 things which are both callable and implement __getitem__.
1564 things which are both callable and implement __getitem__.
1562 (init_readline): Fix autoindentation for win32. Thanks to a patch
1565 (init_readline): Fix autoindentation for win32. Thanks to a patch
1563 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1566 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1564
1567
1565 2005-02-12 Fernando Perez <fperez@colorado.edu>
1568 2005-02-12 Fernando Perez <fperez@colorado.edu>
1566
1569
1567 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1570 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1568 which I had written long ago to sort out user error messages which
1571 which I had written long ago to sort out user error messages which
1569 may occur during startup. This seemed like a good idea initially,
1572 may occur during startup. This seemed like a good idea initially,
1570 but it has proven a disaster in retrospect. I don't want to
1573 but it has proven a disaster in retrospect. I don't want to
1571 change much code for now, so my fix is to set the internal 'debug'
1574 change much code for now, so my fix is to set the internal 'debug'
1572 flag to true everywhere, whose only job was precisely to control
1575 flag to true everywhere, whose only job was precisely to control
1573 this subsystem. This closes issue 28 (as well as avoiding all
1576 this subsystem. This closes issue 28 (as well as avoiding all
1574 sorts of strange hangups which occur from time to time).
1577 sorts of strange hangups which occur from time to time).
1575
1578
1576 2005-02-07 Fernando Perez <fperez@colorado.edu>
1579 2005-02-07 Fernando Perez <fperez@colorado.edu>
1577
1580
1578 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1581 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1579 previous call produced a syntax error.
1582 previous call produced a syntax error.
1580
1583
1581 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1584 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1582 classes without constructor.
1585 classes without constructor.
1583
1586
1584 2005-02-06 Fernando Perez <fperez@colorado.edu>
1587 2005-02-06 Fernando Perez <fperez@colorado.edu>
1585
1588
1586 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1589 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1587 completions with the results of each matcher, so we return results
1590 completions with the results of each matcher, so we return results
1588 to the user from all namespaces. This breaks with ipython
1591 to the user from all namespaces. This breaks with ipython
1589 tradition, but I think it's a nicer behavior. Now you get all
1592 tradition, but I think it's a nicer behavior. Now you get all
1590 possible completions listed, from all possible namespaces (python,
1593 possible completions listed, from all possible namespaces (python,
1591 filesystem, magics...) After a request by John Hunter
1594 filesystem, magics...) After a request by John Hunter
1592 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1595 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1593
1596
1594 2005-02-05 Fernando Perez <fperez@colorado.edu>
1597 2005-02-05 Fernando Perez <fperez@colorado.edu>
1595
1598
1596 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1599 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1597 the call had quote characters in it (the quotes were stripped).
1600 the call had quote characters in it (the quotes were stripped).
1598
1601
1599 2005-01-31 Fernando Perez <fperez@colorado.edu>
1602 2005-01-31 Fernando Perez <fperez@colorado.edu>
1600
1603
1601 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1604 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1602 Itpl.itpl() to make the code more robust against psyco
1605 Itpl.itpl() to make the code more robust against psyco
1603 optimizations.
1606 optimizations.
1604
1607
1605 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1608 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1606 of causing an exception. Quicker, cleaner.
1609 of causing an exception. Quicker, cleaner.
1607
1610
1608 2005-01-28 Fernando Perez <fperez@colorado.edu>
1611 2005-01-28 Fernando Perez <fperez@colorado.edu>
1609
1612
1610 * scripts/ipython_win_post_install.py (install): hardcode
1613 * scripts/ipython_win_post_install.py (install): hardcode
1611 sys.prefix+'python.exe' as the executable path. It turns out that
1614 sys.prefix+'python.exe' as the executable path. It turns out that
1612 during the post-installation run, sys.executable resolves to the
1615 during the post-installation run, sys.executable resolves to the
1613 name of the binary installer! I should report this as a distutils
1616 name of the binary installer! I should report this as a distutils
1614 bug, I think. I updated the .10 release with this tiny fix, to
1617 bug, I think. I updated the .10 release with this tiny fix, to
1615 avoid annoying the lists further.
1618 avoid annoying the lists further.
1616
1619
1617 2005-01-27 *** Released version 0.6.10
1620 2005-01-27 *** Released version 0.6.10
1618
1621
1619 2005-01-27 Fernando Perez <fperez@colorado.edu>
1622 2005-01-27 Fernando Perez <fperez@colorado.edu>
1620
1623
1621 * IPython/numutils.py (norm): Added 'inf' as optional name for
1624 * IPython/numutils.py (norm): Added 'inf' as optional name for
1622 L-infinity norm, included references to mathworld.com for vector
1625 L-infinity norm, included references to mathworld.com for vector
1623 norm definitions.
1626 norm definitions.
1624 (amin/amax): added amin/amax for array min/max. Similar to what
1627 (amin/amax): added amin/amax for array min/max. Similar to what
1625 pylab ships with after the recent reorganization of names.
1628 pylab ships with after the recent reorganization of names.
1626 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1629 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1627
1630
1628 * ipython.el: committed Alex's recent fixes and improvements.
1631 * ipython.el: committed Alex's recent fixes and improvements.
1629 Tested with python-mode from CVS, and it looks excellent. Since
1632 Tested with python-mode from CVS, and it looks excellent. Since
1630 python-mode hasn't released anything in a while, I'm temporarily
1633 python-mode hasn't released anything in a while, I'm temporarily
1631 putting a copy of today's CVS (v 4.70) of python-mode in:
1634 putting a copy of today's CVS (v 4.70) of python-mode in:
1632 http://ipython.scipy.org/tmp/python-mode.el
1635 http://ipython.scipy.org/tmp/python-mode.el
1633
1636
1634 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1637 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1635 sys.executable for the executable name, instead of assuming it's
1638 sys.executable for the executable name, instead of assuming it's
1636 called 'python.exe' (the post-installer would have produced broken
1639 called 'python.exe' (the post-installer would have produced broken
1637 setups on systems with a differently named python binary).
1640 setups on systems with a differently named python binary).
1638
1641
1639 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1642 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1640 references to os.linesep, to make the code more
1643 references to os.linesep, to make the code more
1641 platform-independent. This is also part of the win32 coloring
1644 platform-independent. This is also part of the win32 coloring
1642 fixes.
1645 fixes.
1643
1646
1644 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1647 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1645 lines, which actually cause coloring bugs because the length of
1648 lines, which actually cause coloring bugs because the length of
1646 the line is very difficult to correctly compute with embedded
1649 the line is very difficult to correctly compute with embedded
1647 escapes. This was the source of all the coloring problems under
1650 escapes. This was the source of all the coloring problems under
1648 Win32. I think that _finally_, Win32 users have a properly
1651 Win32. I think that _finally_, Win32 users have a properly
1649 working ipython in all respects. This would never have happened
1652 working ipython in all respects. This would never have happened
1650 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1653 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1651
1654
1652 2005-01-26 *** Released version 0.6.9
1655 2005-01-26 *** Released version 0.6.9
1653
1656
1654 2005-01-25 Fernando Perez <fperez@colorado.edu>
1657 2005-01-25 Fernando Perez <fperez@colorado.edu>
1655
1658
1656 * setup.py: finally, we have a true Windows installer, thanks to
1659 * setup.py: finally, we have a true Windows installer, thanks to
1657 the excellent work of Viktor Ransmayr
1660 the excellent work of Viktor Ransmayr
1658 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1661 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1659 Windows users. The setup routine is quite a bit cleaner thanks to
1662 Windows users. The setup routine is quite a bit cleaner thanks to
1660 this, and the post-install script uses the proper functions to
1663 this, and the post-install script uses the proper functions to
1661 allow a clean de-installation using the standard Windows Control
1664 allow a clean de-installation using the standard Windows Control
1662 Panel.
1665 Panel.
1663
1666
1664 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1667 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1665 environment variable under all OSes (including win32) if
1668 environment variable under all OSes (including win32) if
1666 available. This will give consistency to win32 users who have set
1669 available. This will give consistency to win32 users who have set
1667 this variable for any reason. If os.environ['HOME'] fails, the
1670 this variable for any reason. If os.environ['HOME'] fails, the
1668 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1671 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1669
1672
1670 2005-01-24 Fernando Perez <fperez@colorado.edu>
1673 2005-01-24 Fernando Perez <fperez@colorado.edu>
1671
1674
1672 * IPython/numutils.py (empty_like): add empty_like(), similar to
1675 * IPython/numutils.py (empty_like): add empty_like(), similar to
1673 zeros_like() but taking advantage of the new empty() Numeric routine.
1676 zeros_like() but taking advantage of the new empty() Numeric routine.
1674
1677
1675 2005-01-23 *** Released version 0.6.8
1678 2005-01-23 *** Released version 0.6.8
1676
1679
1677 2005-01-22 Fernando Perez <fperez@colorado.edu>
1680 2005-01-22 Fernando Perez <fperez@colorado.edu>
1678
1681
1679 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1682 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1680 automatic show() calls. After discussing things with JDH, it
1683 automatic show() calls. After discussing things with JDH, it
1681 turns out there are too many corner cases where this can go wrong.
1684 turns out there are too many corner cases where this can go wrong.
1682 It's best not to try to be 'too smart', and simply have ipython
1685 It's best not to try to be 'too smart', and simply have ipython
1683 reproduce as much as possible the default behavior of a normal
1686 reproduce as much as possible the default behavior of a normal
1684 python shell.
1687 python shell.
1685
1688
1686 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1689 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1687 line-splitting regexp and _prefilter() to avoid calling getattr()
1690 line-splitting regexp and _prefilter() to avoid calling getattr()
1688 on assignments. This closes
1691 on assignments. This closes
1689 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1692 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1690 readline uses getattr(), so a simple <TAB> keypress is still
1693 readline uses getattr(), so a simple <TAB> keypress is still
1691 enough to trigger getattr() calls on an object.
1694 enough to trigger getattr() calls on an object.
1692
1695
1693 2005-01-21 Fernando Perez <fperez@colorado.edu>
1696 2005-01-21 Fernando Perez <fperez@colorado.edu>
1694
1697
1695 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1698 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1696 docstring under pylab so it doesn't mask the original.
1699 docstring under pylab so it doesn't mask the original.
1697
1700
1698 2005-01-21 *** Released version 0.6.7
1701 2005-01-21 *** Released version 0.6.7
1699
1702
1700 2005-01-21 Fernando Perez <fperez@colorado.edu>
1703 2005-01-21 Fernando Perez <fperez@colorado.edu>
1701
1704
1702 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1705 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1703 signal handling for win32 users in multithreaded mode.
1706 signal handling for win32 users in multithreaded mode.
1704
1707
1705 2005-01-17 Fernando Perez <fperez@colorado.edu>
1708 2005-01-17 Fernando Perez <fperez@colorado.edu>
1706
1709
1707 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1710 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1708 instances with no __init__. After a crash report by Norbert Nemec
1711 instances with no __init__. After a crash report by Norbert Nemec
1709 <Norbert-AT-nemec-online.de>.
1712 <Norbert-AT-nemec-online.de>.
1710
1713
1711 2005-01-14 Fernando Perez <fperez@colorado.edu>
1714 2005-01-14 Fernando Perez <fperez@colorado.edu>
1712
1715
1713 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1716 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1714 names for verbose exceptions, when multiple dotted names and the
1717 names for verbose exceptions, when multiple dotted names and the
1715 'parent' object were present on the same line.
1718 'parent' object were present on the same line.
1716
1719
1717 2005-01-11 Fernando Perez <fperez@colorado.edu>
1720 2005-01-11 Fernando Perez <fperez@colorado.edu>
1718
1721
1719 * IPython/genutils.py (flag_calls): new utility to trap and flag
1722 * IPython/genutils.py (flag_calls): new utility to trap and flag
1720 calls in functions. I need it to clean up matplotlib support.
1723 calls in functions. I need it to clean up matplotlib support.
1721 Also removed some deprecated code in genutils.
1724 Also removed some deprecated code in genutils.
1722
1725
1723 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1726 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1724 that matplotlib scripts called with %run, which don't call show()
1727 that matplotlib scripts called with %run, which don't call show()
1725 themselves, still have their plotting windows open.
1728 themselves, still have their plotting windows open.
1726
1729
1727 2005-01-05 Fernando Perez <fperez@colorado.edu>
1730 2005-01-05 Fernando Perez <fperez@colorado.edu>
1728
1731
1729 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1732 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1730 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1733 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1731
1734
1732 2004-12-19 Fernando Perez <fperez@colorado.edu>
1735 2004-12-19 Fernando Perez <fperez@colorado.edu>
1733
1736
1734 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1737 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1735 parent_runcode, which was an eyesore. The same result can be
1738 parent_runcode, which was an eyesore. The same result can be
1736 obtained with Python's regular superclass mechanisms.
1739 obtained with Python's regular superclass mechanisms.
1737
1740
1738 2004-12-17 Fernando Perez <fperez@colorado.edu>
1741 2004-12-17 Fernando Perez <fperez@colorado.edu>
1739
1742
1740 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1743 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1741 reported by Prabhu.
1744 reported by Prabhu.
1742 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1745 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1743 sys.stderr) instead of explicitly calling sys.stderr. This helps
1746 sys.stderr) instead of explicitly calling sys.stderr. This helps
1744 maintain our I/O abstractions clean, for future GUI embeddings.
1747 maintain our I/O abstractions clean, for future GUI embeddings.
1745
1748
1746 * IPython/genutils.py (info): added new utility for sys.stderr
1749 * IPython/genutils.py (info): added new utility for sys.stderr
1747 unified info message handling (thin wrapper around warn()).
1750 unified info message handling (thin wrapper around warn()).
1748
1751
1749 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1752 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1750 composite (dotted) names on verbose exceptions.
1753 composite (dotted) names on verbose exceptions.
1751 (VerboseTB.nullrepr): harden against another kind of errors which
1754 (VerboseTB.nullrepr): harden against another kind of errors which
1752 Python's inspect module can trigger, and which were crashing
1755 Python's inspect module can trigger, and which were crashing
1753 IPython. Thanks to a report by Marco Lombardi
1756 IPython. Thanks to a report by Marco Lombardi
1754 <mlombard-AT-ma010192.hq.eso.org>.
1757 <mlombard-AT-ma010192.hq.eso.org>.
1755
1758
1756 2004-12-13 *** Released version 0.6.6
1759 2004-12-13 *** Released version 0.6.6
1757
1760
1758 2004-12-12 Fernando Perez <fperez@colorado.edu>
1761 2004-12-12 Fernando Perez <fperez@colorado.edu>
1759
1762
1760 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1763 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1761 generated by pygtk upon initialization if it was built without
1764 generated by pygtk upon initialization if it was built without
1762 threads (for matplotlib users). After a crash reported by
1765 threads (for matplotlib users). After a crash reported by
1763 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1766 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1764
1767
1765 * IPython/ipmaker.py (make_IPython): fix small bug in the
1768 * IPython/ipmaker.py (make_IPython): fix small bug in the
1766 import_some parameter for multiple imports.
1769 import_some parameter for multiple imports.
1767
1770
1768 * IPython/iplib.py (ipmagic): simplified the interface of
1771 * IPython/iplib.py (ipmagic): simplified the interface of
1769 ipmagic() to take a single string argument, just as it would be
1772 ipmagic() to take a single string argument, just as it would be
1770 typed at the IPython cmd line.
1773 typed at the IPython cmd line.
1771 (ipalias): Added new ipalias() with an interface identical to
1774 (ipalias): Added new ipalias() with an interface identical to
1772 ipmagic(). This completes exposing a pure python interface to the
1775 ipmagic(). This completes exposing a pure python interface to the
1773 alias and magic system, which can be used in loops or more complex
1776 alias and magic system, which can be used in loops or more complex
1774 code where IPython's automatic line mangling is not active.
1777 code where IPython's automatic line mangling is not active.
1775
1778
1776 * IPython/genutils.py (timing): changed interface of timing to
1779 * IPython/genutils.py (timing): changed interface of timing to
1777 simply run code once, which is the most common case. timings()
1780 simply run code once, which is the most common case. timings()
1778 remains unchanged, for the cases where you want multiple runs.
1781 remains unchanged, for the cases where you want multiple runs.
1779
1782
1780 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1783 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1781 bug where Python2.2 crashes with exec'ing code which does not end
1784 bug where Python2.2 crashes with exec'ing code which does not end
1782 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1785 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1783 before.
1786 before.
1784
1787
1785 2004-12-10 Fernando Perez <fperez@colorado.edu>
1788 2004-12-10 Fernando Perez <fperez@colorado.edu>
1786
1789
1787 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1790 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1788 -t to -T, to accomodate the new -t flag in %run (the %run and
1791 -t to -T, to accomodate the new -t flag in %run (the %run and
1789 %prun options are kind of intermixed, and it's not easy to change
1792 %prun options are kind of intermixed, and it's not easy to change
1790 this with the limitations of python's getopt).
1793 this with the limitations of python's getopt).
1791
1794
1792 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1795 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1793 the execution of scripts. It's not as fine-tuned as timeit.py,
1796 the execution of scripts. It's not as fine-tuned as timeit.py,
1794 but it works from inside ipython (and under 2.2, which lacks
1797 but it works from inside ipython (and under 2.2, which lacks
1795 timeit.py). Optionally a number of runs > 1 can be given for
1798 timeit.py). Optionally a number of runs > 1 can be given for
1796 timing very short-running code.
1799 timing very short-running code.
1797
1800
1798 * IPython/genutils.py (uniq_stable): new routine which returns a
1801 * IPython/genutils.py (uniq_stable): new routine which returns a
1799 list of unique elements in any iterable, but in stable order of
1802 list of unique elements in any iterable, but in stable order of
1800 appearance. I needed this for the ultraTB fixes, and it's a handy
1803 appearance. I needed this for the ultraTB fixes, and it's a handy
1801 utility.
1804 utility.
1802
1805
1803 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1806 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1804 dotted names in Verbose exceptions. This had been broken since
1807 dotted names in Verbose exceptions. This had been broken since
1805 the very start, now x.y will properly be printed in a Verbose
1808 the very start, now x.y will properly be printed in a Verbose
1806 traceback, instead of x being shown and y appearing always as an
1809 traceback, instead of x being shown and y appearing always as an
1807 'undefined global'. Getting this to work was a bit tricky,
1810 'undefined global'. Getting this to work was a bit tricky,
1808 because by default python tokenizers are stateless. Saved by
1811 because by default python tokenizers are stateless. Saved by
1809 python's ability to easily add a bit of state to an arbitrary
1812 python's ability to easily add a bit of state to an arbitrary
1810 function (without needing to build a full-blown callable object).
1813 function (without needing to build a full-blown callable object).
1811
1814
1812 Also big cleanup of this code, which had horrendous runtime
1815 Also big cleanup of this code, which had horrendous runtime
1813 lookups of zillions of attributes for colorization. Moved all
1816 lookups of zillions of attributes for colorization. Moved all
1814 this code into a few templates, which make it cleaner and quicker.
1817 this code into a few templates, which make it cleaner and quicker.
1815
1818
1816 Printout quality was also improved for Verbose exceptions: one
1819 Printout quality was also improved for Verbose exceptions: one
1817 variable per line, and memory addresses are printed (this can be
1820 variable per line, and memory addresses are printed (this can be
1818 quite handy in nasty debugging situations, which is what Verbose
1821 quite handy in nasty debugging situations, which is what Verbose
1819 is for).
1822 is for).
1820
1823
1821 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1824 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1822 the command line as scripts to be loaded by embedded instances.
1825 the command line as scripts to be loaded by embedded instances.
1823 Doing so has the potential for an infinite recursion if there are
1826 Doing so has the potential for an infinite recursion if there are
1824 exceptions thrown in the process. This fixes a strange crash
1827 exceptions thrown in the process. This fixes a strange crash
1825 reported by Philippe MULLER <muller-AT-irit.fr>.
1828 reported by Philippe MULLER <muller-AT-irit.fr>.
1826
1829
1827 2004-12-09 Fernando Perez <fperez@colorado.edu>
1830 2004-12-09 Fernando Perez <fperez@colorado.edu>
1828
1831
1829 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1832 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1830 to reflect new names in matplotlib, which now expose the
1833 to reflect new names in matplotlib, which now expose the
1831 matlab-compatible interface via a pylab module instead of the
1834 matlab-compatible interface via a pylab module instead of the
1832 'matlab' name. The new code is backwards compatible, so users of
1835 'matlab' name. The new code is backwards compatible, so users of
1833 all matplotlib versions are OK. Patch by J. Hunter.
1836 all matplotlib versions are OK. Patch by J. Hunter.
1834
1837
1835 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1838 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1836 of __init__ docstrings for instances (class docstrings are already
1839 of __init__ docstrings for instances (class docstrings are already
1837 automatically printed). Instances with customized docstrings
1840 automatically printed). Instances with customized docstrings
1838 (indep. of the class) are also recognized and all 3 separate
1841 (indep. of the class) are also recognized and all 3 separate
1839 docstrings are printed (instance, class, constructor). After some
1842 docstrings are printed (instance, class, constructor). After some
1840 comments/suggestions by J. Hunter.
1843 comments/suggestions by J. Hunter.
1841
1844
1842 2004-12-05 Fernando Perez <fperez@colorado.edu>
1845 2004-12-05 Fernando Perez <fperez@colorado.edu>
1843
1846
1844 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1847 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1845 warnings when tab-completion fails and triggers an exception.
1848 warnings when tab-completion fails and triggers an exception.
1846
1849
1847 2004-12-03 Fernando Perez <fperez@colorado.edu>
1850 2004-12-03 Fernando Perez <fperez@colorado.edu>
1848
1851
1849 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1852 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1850 be triggered when using 'run -p'. An incorrect option flag was
1853 be triggered when using 'run -p'. An incorrect option flag was
1851 being set ('d' instead of 'D').
1854 being set ('d' instead of 'D').
1852 (manpage): fix missing escaped \- sign.
1855 (manpage): fix missing escaped \- sign.
1853
1856
1854 2004-11-30 *** Released version 0.6.5
1857 2004-11-30 *** Released version 0.6.5
1855
1858
1856 2004-11-30 Fernando Perez <fperez@colorado.edu>
1859 2004-11-30 Fernando Perez <fperez@colorado.edu>
1857
1860
1858 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1861 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1859 setting with -d option.
1862 setting with -d option.
1860
1863
1861 * setup.py (docfiles): Fix problem where the doc glob I was using
1864 * setup.py (docfiles): Fix problem where the doc glob I was using
1862 was COMPLETELY BROKEN. It was giving the right files by pure
1865 was COMPLETELY BROKEN. It was giving the right files by pure
1863 accident, but failed once I tried to include ipython.el. Note:
1866 accident, but failed once I tried to include ipython.el. Note:
1864 glob() does NOT allow you to do exclusion on multiple endings!
1867 glob() does NOT allow you to do exclusion on multiple endings!
1865
1868
1866 2004-11-29 Fernando Perez <fperez@colorado.edu>
1869 2004-11-29 Fernando Perez <fperez@colorado.edu>
1867
1870
1868 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1871 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1869 the manpage as the source. Better formatting & consistency.
1872 the manpage as the source. Better formatting & consistency.
1870
1873
1871 * IPython/Magic.py (magic_run): Added new -d option, to run
1874 * IPython/Magic.py (magic_run): Added new -d option, to run
1872 scripts under the control of the python pdb debugger. Note that
1875 scripts under the control of the python pdb debugger. Note that
1873 this required changing the %prun option -d to -D, to avoid a clash
1876 this required changing the %prun option -d to -D, to avoid a clash
1874 (since %run must pass options to %prun, and getopt is too dumb to
1877 (since %run must pass options to %prun, and getopt is too dumb to
1875 handle options with string values with embedded spaces). Thanks
1878 handle options with string values with embedded spaces). Thanks
1876 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1879 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1877 (magic_who_ls): added type matching to %who and %whos, so that one
1880 (magic_who_ls): added type matching to %who and %whos, so that one
1878 can filter their output to only include variables of certain
1881 can filter their output to only include variables of certain
1879 types. Another suggestion by Matthew.
1882 types. Another suggestion by Matthew.
1880 (magic_whos): Added memory summaries in kb and Mb for arrays.
1883 (magic_whos): Added memory summaries in kb and Mb for arrays.
1881 (magic_who): Improve formatting (break lines every 9 vars).
1884 (magic_who): Improve formatting (break lines every 9 vars).
1882
1885
1883 2004-11-28 Fernando Perez <fperez@colorado.edu>
1886 2004-11-28 Fernando Perez <fperez@colorado.edu>
1884
1887
1885 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1888 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1886 cache when empty lines were present.
1889 cache when empty lines were present.
1887
1890
1888 2004-11-24 Fernando Perez <fperez@colorado.edu>
1891 2004-11-24 Fernando Perez <fperez@colorado.edu>
1889
1892
1890 * IPython/usage.py (__doc__): document the re-activated threading
1893 * IPython/usage.py (__doc__): document the re-activated threading
1891 options for WX and GTK.
1894 options for WX and GTK.
1892
1895
1893 2004-11-23 Fernando Perez <fperez@colorado.edu>
1896 2004-11-23 Fernando Perez <fperez@colorado.edu>
1894
1897
1895 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1898 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1896 the -wthread and -gthread options, along with a new -tk one to try
1899 the -wthread and -gthread options, along with a new -tk one to try
1897 and coordinate Tk threading with wx/gtk. The tk support is very
1900 and coordinate Tk threading with wx/gtk. The tk support is very
1898 platform dependent, since it seems to require Tcl and Tk to be
1901 platform dependent, since it seems to require Tcl and Tk to be
1899 built with threads (Fedora1/2 appears NOT to have it, but in
1902 built with threads (Fedora1/2 appears NOT to have it, but in
1900 Prabhu's Debian boxes it works OK). But even with some Tk
1903 Prabhu's Debian boxes it works OK). But even with some Tk
1901 limitations, this is a great improvement.
1904 limitations, this is a great improvement.
1902
1905
1903 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1906 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1904 info in user prompts. Patch by Prabhu.
1907 info in user prompts. Patch by Prabhu.
1905
1908
1906 2004-11-18 Fernando Perez <fperez@colorado.edu>
1909 2004-11-18 Fernando Perez <fperez@colorado.edu>
1907
1910
1908 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1911 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1909 EOFErrors and bail, to avoid infinite loops if a non-terminating
1912 EOFErrors and bail, to avoid infinite loops if a non-terminating
1910 file is fed into ipython. Patch submitted in issue 19 by user,
1913 file is fed into ipython. Patch submitted in issue 19 by user,
1911 many thanks.
1914 many thanks.
1912
1915
1913 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1916 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1914 autoquote/parens in continuation prompts, which can cause lots of
1917 autoquote/parens in continuation prompts, which can cause lots of
1915 problems. Closes roundup issue 20.
1918 problems. Closes roundup issue 20.
1916
1919
1917 2004-11-17 Fernando Perez <fperez@colorado.edu>
1920 2004-11-17 Fernando Perez <fperez@colorado.edu>
1918
1921
1919 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1922 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1920 reported as debian bug #280505. I'm not sure my local changelog
1923 reported as debian bug #280505. I'm not sure my local changelog
1921 entry has the proper debian format (Jack?).
1924 entry has the proper debian format (Jack?).
1922
1925
1923 2004-11-08 *** Released version 0.6.4
1926 2004-11-08 *** Released version 0.6.4
1924
1927
1925 2004-11-08 Fernando Perez <fperez@colorado.edu>
1928 2004-11-08 Fernando Perez <fperez@colorado.edu>
1926
1929
1927 * IPython/iplib.py (init_readline): Fix exit message for Windows
1930 * IPython/iplib.py (init_readline): Fix exit message for Windows
1928 when readline is active. Thanks to a report by Eric Jones
1931 when readline is active. Thanks to a report by Eric Jones
1929 <eric-AT-enthought.com>.
1932 <eric-AT-enthought.com>.
1930
1933
1931 2004-11-07 Fernando Perez <fperez@colorado.edu>
1934 2004-11-07 Fernando Perez <fperez@colorado.edu>
1932
1935
1933 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1936 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1934 sometimes seen by win2k/cygwin users.
1937 sometimes seen by win2k/cygwin users.
1935
1938
1936 2004-11-06 Fernando Perez <fperez@colorado.edu>
1939 2004-11-06 Fernando Perez <fperez@colorado.edu>
1937
1940
1938 * IPython/iplib.py (interact): Change the handling of %Exit from
1941 * IPython/iplib.py (interact): Change the handling of %Exit from
1939 trying to propagate a SystemExit to an internal ipython flag.
1942 trying to propagate a SystemExit to an internal ipython flag.
1940 This is less elegant than using Python's exception mechanism, but
1943 This is less elegant than using Python's exception mechanism, but
1941 I can't get that to work reliably with threads, so under -pylab
1944 I can't get that to work reliably with threads, so under -pylab
1942 %Exit was hanging IPython. Cross-thread exception handling is
1945 %Exit was hanging IPython. Cross-thread exception handling is
1943 really a bitch. Thaks to a bug report by Stephen Walton
1946 really a bitch. Thaks to a bug report by Stephen Walton
1944 <stephen.walton-AT-csun.edu>.
1947 <stephen.walton-AT-csun.edu>.
1945
1948
1946 2004-11-04 Fernando Perez <fperez@colorado.edu>
1949 2004-11-04 Fernando Perez <fperez@colorado.edu>
1947
1950
1948 * IPython/iplib.py (raw_input_original): store a pointer to the
1951 * IPython/iplib.py (raw_input_original): store a pointer to the
1949 true raw_input to harden against code which can modify it
1952 true raw_input to harden against code which can modify it
1950 (wx.py.PyShell does this and would otherwise crash ipython).
1953 (wx.py.PyShell does this and would otherwise crash ipython).
1951 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1954 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1952
1955
1953 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1956 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1954 Ctrl-C problem, which does not mess up the input line.
1957 Ctrl-C problem, which does not mess up the input line.
1955
1958
1956 2004-11-03 Fernando Perez <fperez@colorado.edu>
1959 2004-11-03 Fernando Perez <fperez@colorado.edu>
1957
1960
1958 * IPython/Release.py: Changed licensing to BSD, in all files.
1961 * IPython/Release.py: Changed licensing to BSD, in all files.
1959 (name): lowercase name for tarball/RPM release.
1962 (name): lowercase name for tarball/RPM release.
1960
1963
1961 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1964 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1962 use throughout ipython.
1965 use throughout ipython.
1963
1966
1964 * IPython/Magic.py (Magic._ofind): Switch to using the new
1967 * IPython/Magic.py (Magic._ofind): Switch to using the new
1965 OInspect.getdoc() function.
1968 OInspect.getdoc() function.
1966
1969
1967 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1970 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1968 of the line currently being canceled via Ctrl-C. It's extremely
1971 of the line currently being canceled via Ctrl-C. It's extremely
1969 ugly, but I don't know how to do it better (the problem is one of
1972 ugly, but I don't know how to do it better (the problem is one of
1970 handling cross-thread exceptions).
1973 handling cross-thread exceptions).
1971
1974
1972 2004-10-28 Fernando Perez <fperez@colorado.edu>
1975 2004-10-28 Fernando Perez <fperez@colorado.edu>
1973
1976
1974 * IPython/Shell.py (signal_handler): add signal handlers to trap
1977 * IPython/Shell.py (signal_handler): add signal handlers to trap
1975 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1978 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1976 report by Francesc Alted.
1979 report by Francesc Alted.
1977
1980
1978 2004-10-21 Fernando Perez <fperez@colorado.edu>
1981 2004-10-21 Fernando Perez <fperez@colorado.edu>
1979
1982
1980 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1983 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1981 to % for pysh syntax extensions.
1984 to % for pysh syntax extensions.
1982
1985
1983 2004-10-09 Fernando Perez <fperez@colorado.edu>
1986 2004-10-09 Fernando Perez <fperez@colorado.edu>
1984
1987
1985 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1988 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1986 arrays to print a more useful summary, without calling str(arr).
1989 arrays to print a more useful summary, without calling str(arr).
1987 This avoids the problem of extremely lengthy computations which
1990 This avoids the problem of extremely lengthy computations which
1988 occur if arr is large, and appear to the user as a system lockup
1991 occur if arr is large, and appear to the user as a system lockup
1989 with 100% cpu activity. After a suggestion by Kristian Sandberg
1992 with 100% cpu activity. After a suggestion by Kristian Sandberg
1990 <Kristian.Sandberg@colorado.edu>.
1993 <Kristian.Sandberg@colorado.edu>.
1991 (Magic.__init__): fix bug in global magic escapes not being
1994 (Magic.__init__): fix bug in global magic escapes not being
1992 correctly set.
1995 correctly set.
1993
1996
1994 2004-10-08 Fernando Perez <fperez@colorado.edu>
1997 2004-10-08 Fernando Perez <fperez@colorado.edu>
1995
1998
1996 * IPython/Magic.py (__license__): change to absolute imports of
1999 * IPython/Magic.py (__license__): change to absolute imports of
1997 ipython's own internal packages, to start adapting to the absolute
2000 ipython's own internal packages, to start adapting to the absolute
1998 import requirement of PEP-328.
2001 import requirement of PEP-328.
1999
2002
2000 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2003 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2001 files, and standardize author/license marks through the Release
2004 files, and standardize author/license marks through the Release
2002 module instead of having per/file stuff (except for files with
2005 module instead of having per/file stuff (except for files with
2003 particular licenses, like the MIT/PSF-licensed codes).
2006 particular licenses, like the MIT/PSF-licensed codes).
2004
2007
2005 * IPython/Debugger.py: remove dead code for python 2.1
2008 * IPython/Debugger.py: remove dead code for python 2.1
2006
2009
2007 2004-10-04 Fernando Perez <fperez@colorado.edu>
2010 2004-10-04 Fernando Perez <fperez@colorado.edu>
2008
2011
2009 * IPython/iplib.py (ipmagic): New function for accessing magics
2012 * IPython/iplib.py (ipmagic): New function for accessing magics
2010 via a normal python function call.
2013 via a normal python function call.
2011
2014
2012 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2015 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2013 from '@' to '%', to accomodate the new @decorator syntax of python
2016 from '@' to '%', to accomodate the new @decorator syntax of python
2014 2.4.
2017 2.4.
2015
2018
2016 2004-09-29 Fernando Perez <fperez@colorado.edu>
2019 2004-09-29 Fernando Perez <fperez@colorado.edu>
2017
2020
2018 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2021 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2019 matplotlib.use to prevent running scripts which try to switch
2022 matplotlib.use to prevent running scripts which try to switch
2020 interactive backends from within ipython. This will just crash
2023 interactive backends from within ipython. This will just crash
2021 the python interpreter, so we can't allow it (but a detailed error
2024 the python interpreter, so we can't allow it (but a detailed error
2022 is given to the user).
2025 is given to the user).
2023
2026
2024 2004-09-28 Fernando Perez <fperez@colorado.edu>
2027 2004-09-28 Fernando Perez <fperez@colorado.edu>
2025
2028
2026 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2029 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2027 matplotlib-related fixes so that using @run with non-matplotlib
2030 matplotlib-related fixes so that using @run with non-matplotlib
2028 scripts doesn't pop up spurious plot windows. This requires
2031 scripts doesn't pop up spurious plot windows. This requires
2029 matplotlib >= 0.63, where I had to make some changes as well.
2032 matplotlib >= 0.63, where I had to make some changes as well.
2030
2033
2031 * IPython/ipmaker.py (make_IPython): update version requirement to
2034 * IPython/ipmaker.py (make_IPython): update version requirement to
2032 python 2.2.
2035 python 2.2.
2033
2036
2034 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2037 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2035 banner arg for embedded customization.
2038 banner arg for embedded customization.
2036
2039
2037 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2040 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2038 explicit uses of __IP as the IPython's instance name. Now things
2041 explicit uses of __IP as the IPython's instance name. Now things
2039 are properly handled via the shell.name value. The actual code
2042 are properly handled via the shell.name value. The actual code
2040 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2043 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2041 is much better than before. I'll clean things completely when the
2044 is much better than before. I'll clean things completely when the
2042 magic stuff gets a real overhaul.
2045 magic stuff gets a real overhaul.
2043
2046
2044 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2047 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2045 minor changes to debian dir.
2048 minor changes to debian dir.
2046
2049
2047 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2050 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2048 pointer to the shell itself in the interactive namespace even when
2051 pointer to the shell itself in the interactive namespace even when
2049 a user-supplied dict is provided. This is needed for embedding
2052 a user-supplied dict is provided. This is needed for embedding
2050 purposes (found by tests with Michel Sanner).
2053 purposes (found by tests with Michel Sanner).
2051
2054
2052 2004-09-27 Fernando Perez <fperez@colorado.edu>
2055 2004-09-27 Fernando Perez <fperez@colorado.edu>
2053
2056
2054 * IPython/UserConfig/ipythonrc: remove []{} from
2057 * IPython/UserConfig/ipythonrc: remove []{} from
2055 readline_remove_delims, so that things like [modname.<TAB> do
2058 readline_remove_delims, so that things like [modname.<TAB> do
2056 proper completion. This disables [].TAB, but that's a less common
2059 proper completion. This disables [].TAB, but that's a less common
2057 case than module names in list comprehensions, for example.
2060 case than module names in list comprehensions, for example.
2058 Thanks to a report by Andrea Riciputi.
2061 Thanks to a report by Andrea Riciputi.
2059
2062
2060 2004-09-09 Fernando Perez <fperez@colorado.edu>
2063 2004-09-09 Fernando Perez <fperez@colorado.edu>
2061
2064
2062 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2065 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2063 blocking problems in win32 and osx. Fix by John.
2066 blocking problems in win32 and osx. Fix by John.
2064
2067
2065 2004-09-08 Fernando Perez <fperez@colorado.edu>
2068 2004-09-08 Fernando Perez <fperez@colorado.edu>
2066
2069
2067 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2070 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2068 for Win32 and OSX. Fix by John Hunter.
2071 for Win32 and OSX. Fix by John Hunter.
2069
2072
2070 2004-08-30 *** Released version 0.6.3
2073 2004-08-30 *** Released version 0.6.3
2071
2074
2072 2004-08-30 Fernando Perez <fperez@colorado.edu>
2075 2004-08-30 Fernando Perez <fperez@colorado.edu>
2073
2076
2074 * setup.py (isfile): Add manpages to list of dependent files to be
2077 * setup.py (isfile): Add manpages to list of dependent files to be
2075 updated.
2078 updated.
2076
2079
2077 2004-08-27 Fernando Perez <fperez@colorado.edu>
2080 2004-08-27 Fernando Perez <fperez@colorado.edu>
2078
2081
2079 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2082 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2080 for now. They don't really work with standalone WX/GTK code
2083 for now. They don't really work with standalone WX/GTK code
2081 (though matplotlib IS working fine with both of those backends).
2084 (though matplotlib IS working fine with both of those backends).
2082 This will neeed much more testing. I disabled most things with
2085 This will neeed much more testing. I disabled most things with
2083 comments, so turning it back on later should be pretty easy.
2086 comments, so turning it back on later should be pretty easy.
2084
2087
2085 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2088 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2086 autocalling of expressions like r'foo', by modifying the line
2089 autocalling of expressions like r'foo', by modifying the line
2087 split regexp. Closes
2090 split regexp. Closes
2088 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2091 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2089 Riley <ipythonbugs-AT-sabi.net>.
2092 Riley <ipythonbugs-AT-sabi.net>.
2090 (InteractiveShell.mainloop): honor --nobanner with banner
2093 (InteractiveShell.mainloop): honor --nobanner with banner
2091 extensions.
2094 extensions.
2092
2095
2093 * IPython/Shell.py: Significant refactoring of all classes, so
2096 * IPython/Shell.py: Significant refactoring of all classes, so
2094 that we can really support ALL matplotlib backends and threading
2097 that we can really support ALL matplotlib backends and threading
2095 models (John spotted a bug with Tk which required this). Now we
2098 models (John spotted a bug with Tk which required this). Now we
2096 should support single-threaded, WX-threads and GTK-threads, both
2099 should support single-threaded, WX-threads and GTK-threads, both
2097 for generic code and for matplotlib.
2100 for generic code and for matplotlib.
2098
2101
2099 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2102 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2100 -pylab, to simplify things for users. Will also remove the pylab
2103 -pylab, to simplify things for users. Will also remove the pylab
2101 profile, since now all of matplotlib configuration is directly
2104 profile, since now all of matplotlib configuration is directly
2102 handled here. This also reduces startup time.
2105 handled here. This also reduces startup time.
2103
2106
2104 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2107 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2105 shell wasn't being correctly called. Also in IPShellWX.
2108 shell wasn't being correctly called. Also in IPShellWX.
2106
2109
2107 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2110 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2108 fine-tune banner.
2111 fine-tune banner.
2109
2112
2110 * IPython/numutils.py (spike): Deprecate these spike functions,
2113 * IPython/numutils.py (spike): Deprecate these spike functions,
2111 delete (long deprecated) gnuplot_exec handler.
2114 delete (long deprecated) gnuplot_exec handler.
2112
2115
2113 2004-08-26 Fernando Perez <fperez@colorado.edu>
2116 2004-08-26 Fernando Perez <fperez@colorado.edu>
2114
2117
2115 * ipython.1: Update for threading options, plus some others which
2118 * ipython.1: Update for threading options, plus some others which
2116 were missing.
2119 were missing.
2117
2120
2118 * IPython/ipmaker.py (__call__): Added -wthread option for
2121 * IPython/ipmaker.py (__call__): Added -wthread option for
2119 wxpython thread handling. Make sure threading options are only
2122 wxpython thread handling. Make sure threading options are only
2120 valid at the command line.
2123 valid at the command line.
2121
2124
2122 * scripts/ipython: moved shell selection into a factory function
2125 * scripts/ipython: moved shell selection into a factory function
2123 in Shell.py, to keep the starter script to a minimum.
2126 in Shell.py, to keep the starter script to a minimum.
2124
2127
2125 2004-08-25 Fernando Perez <fperez@colorado.edu>
2128 2004-08-25 Fernando Perez <fperez@colorado.edu>
2126
2129
2127 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2130 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2128 John. Along with some recent changes he made to matplotlib, the
2131 John. Along with some recent changes he made to matplotlib, the
2129 next versions of both systems should work very well together.
2132 next versions of both systems should work very well together.
2130
2133
2131 2004-08-24 Fernando Perez <fperez@colorado.edu>
2134 2004-08-24 Fernando Perez <fperez@colorado.edu>
2132
2135
2133 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2136 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2134 tried to switch the profiling to using hotshot, but I'm getting
2137 tried to switch the profiling to using hotshot, but I'm getting
2135 strange errors from prof.runctx() there. I may be misreading the
2138 strange errors from prof.runctx() there. I may be misreading the
2136 docs, but it looks weird. For now the profiling code will
2139 docs, but it looks weird. For now the profiling code will
2137 continue to use the standard profiler.
2140 continue to use the standard profiler.
2138
2141
2139 2004-08-23 Fernando Perez <fperez@colorado.edu>
2142 2004-08-23 Fernando Perez <fperez@colorado.edu>
2140
2143
2141 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2144 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2142 threaded shell, by John Hunter. It's not quite ready yet, but
2145 threaded shell, by John Hunter. It's not quite ready yet, but
2143 close.
2146 close.
2144
2147
2145 2004-08-22 Fernando Perez <fperez@colorado.edu>
2148 2004-08-22 Fernando Perez <fperez@colorado.edu>
2146
2149
2147 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2150 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2148 in Magic and ultraTB.
2151 in Magic and ultraTB.
2149
2152
2150 * ipython.1: document threading options in manpage.
2153 * ipython.1: document threading options in manpage.
2151
2154
2152 * scripts/ipython: Changed name of -thread option to -gthread,
2155 * scripts/ipython: Changed name of -thread option to -gthread,
2153 since this is GTK specific. I want to leave the door open for a
2156 since this is GTK specific. I want to leave the door open for a
2154 -wthread option for WX, which will most likely be necessary. This
2157 -wthread option for WX, which will most likely be necessary. This
2155 change affects usage and ipmaker as well.
2158 change affects usage and ipmaker as well.
2156
2159
2157 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2160 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2158 handle the matplotlib shell issues. Code by John Hunter
2161 handle the matplotlib shell issues. Code by John Hunter
2159 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2162 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2160 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2163 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2161 broken (and disabled for end users) for now, but it puts the
2164 broken (and disabled for end users) for now, but it puts the
2162 infrastructure in place.
2165 infrastructure in place.
2163
2166
2164 2004-08-21 Fernando Perez <fperez@colorado.edu>
2167 2004-08-21 Fernando Perez <fperez@colorado.edu>
2165
2168
2166 * ipythonrc-pylab: Add matplotlib support.
2169 * ipythonrc-pylab: Add matplotlib support.
2167
2170
2168 * matplotlib_config.py: new files for matplotlib support, part of
2171 * matplotlib_config.py: new files for matplotlib support, part of
2169 the pylab profile.
2172 the pylab profile.
2170
2173
2171 * IPython/usage.py (__doc__): documented the threading options.
2174 * IPython/usage.py (__doc__): documented the threading options.
2172
2175
2173 2004-08-20 Fernando Perez <fperez@colorado.edu>
2176 2004-08-20 Fernando Perez <fperez@colorado.edu>
2174
2177
2175 * ipython: Modified the main calling routine to handle the -thread
2178 * ipython: Modified the main calling routine to handle the -thread
2176 and -mpthread options. This needs to be done as a top-level hack,
2179 and -mpthread options. This needs to be done as a top-level hack,
2177 because it determines which class to instantiate for IPython
2180 because it determines which class to instantiate for IPython
2178 itself.
2181 itself.
2179
2182
2180 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2183 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2181 classes to support multithreaded GTK operation without blocking,
2184 classes to support multithreaded GTK operation without blocking,
2182 and matplotlib with all backends. This is a lot of still very
2185 and matplotlib with all backends. This is a lot of still very
2183 experimental code, and threads are tricky. So it may still have a
2186 experimental code, and threads are tricky. So it may still have a
2184 few rough edges... This code owes a lot to
2187 few rough edges... This code owes a lot to
2185 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2188 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2186 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2189 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2187 to John Hunter for all the matplotlib work.
2190 to John Hunter for all the matplotlib work.
2188
2191
2189 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2192 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2190 options for gtk thread and matplotlib support.
2193 options for gtk thread and matplotlib support.
2191
2194
2192 2004-08-16 Fernando Perez <fperez@colorado.edu>
2195 2004-08-16 Fernando Perez <fperez@colorado.edu>
2193
2196
2194 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2197 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2195 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2198 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2196 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2199 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2197
2200
2198 2004-08-11 Fernando Perez <fperez@colorado.edu>
2201 2004-08-11 Fernando Perez <fperez@colorado.edu>
2199
2202
2200 * setup.py (isfile): Fix build so documentation gets updated for
2203 * setup.py (isfile): Fix build so documentation gets updated for
2201 rpms (it was only done for .tgz builds).
2204 rpms (it was only done for .tgz builds).
2202
2205
2203 2004-08-10 Fernando Perez <fperez@colorado.edu>
2206 2004-08-10 Fernando Perez <fperez@colorado.edu>
2204
2207
2205 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2208 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2206
2209
2207 * iplib.py : Silence syntax error exceptions in tab-completion.
2210 * iplib.py : Silence syntax error exceptions in tab-completion.
2208
2211
2209 2004-08-05 Fernando Perez <fperez@colorado.edu>
2212 2004-08-05 Fernando Perez <fperez@colorado.edu>
2210
2213
2211 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2214 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2212 'color off' mark for continuation prompts. This was causing long
2215 'color off' mark for continuation prompts. This was causing long
2213 continuation lines to mis-wrap.
2216 continuation lines to mis-wrap.
2214
2217
2215 2004-08-01 Fernando Perez <fperez@colorado.edu>
2218 2004-08-01 Fernando Perez <fperez@colorado.edu>
2216
2219
2217 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2220 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2218 for building ipython to be a parameter. All this is necessary
2221 for building ipython to be a parameter. All this is necessary
2219 right now to have a multithreaded version, but this insane
2222 right now to have a multithreaded version, but this insane
2220 non-design will be cleaned up soon. For now, it's a hack that
2223 non-design will be cleaned up soon. For now, it's a hack that
2221 works.
2224 works.
2222
2225
2223 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2226 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2224 args in various places. No bugs so far, but it's a dangerous
2227 args in various places. No bugs so far, but it's a dangerous
2225 practice.
2228 practice.
2226
2229
2227 2004-07-31 Fernando Perez <fperez@colorado.edu>
2230 2004-07-31 Fernando Perez <fperez@colorado.edu>
2228
2231
2229 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2232 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2230 fix completion of files with dots in their names under most
2233 fix completion of files with dots in their names under most
2231 profiles (pysh was OK because the completion order is different).
2234 profiles (pysh was OK because the completion order is different).
2232
2235
2233 2004-07-27 Fernando Perez <fperez@colorado.edu>
2236 2004-07-27 Fernando Perez <fperez@colorado.edu>
2234
2237
2235 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2238 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2236 keywords manually, b/c the one in keyword.py was removed in python
2239 keywords manually, b/c the one in keyword.py was removed in python
2237 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2240 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2238 This is NOT a bug under python 2.3 and earlier.
2241 This is NOT a bug under python 2.3 and earlier.
2239
2242
2240 2004-07-26 Fernando Perez <fperez@colorado.edu>
2243 2004-07-26 Fernando Perez <fperez@colorado.edu>
2241
2244
2242 * IPython/ultraTB.py (VerboseTB.text): Add another
2245 * IPython/ultraTB.py (VerboseTB.text): Add another
2243 linecache.checkcache() call to try to prevent inspect.py from
2246 linecache.checkcache() call to try to prevent inspect.py from
2244 crashing under python 2.3. I think this fixes
2247 crashing under python 2.3. I think this fixes
2245 http://www.scipy.net/roundup/ipython/issue17.
2248 http://www.scipy.net/roundup/ipython/issue17.
2246
2249
2247 2004-07-26 *** Released version 0.6.2
2250 2004-07-26 *** Released version 0.6.2
2248
2251
2249 2004-07-26 Fernando Perez <fperez@colorado.edu>
2252 2004-07-26 Fernando Perez <fperez@colorado.edu>
2250
2253
2251 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2254 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2252 fail for any number.
2255 fail for any number.
2253 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2256 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2254 empty bookmarks.
2257 empty bookmarks.
2255
2258
2256 2004-07-26 *** Released version 0.6.1
2259 2004-07-26 *** Released version 0.6.1
2257
2260
2258 2004-07-26 Fernando Perez <fperez@colorado.edu>
2261 2004-07-26 Fernando Perez <fperez@colorado.edu>
2259
2262
2260 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2263 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2261
2264
2262 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2265 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2263 escaping '()[]{}' in filenames.
2266 escaping '()[]{}' in filenames.
2264
2267
2265 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2268 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2266 Python 2.2 users who lack a proper shlex.split.
2269 Python 2.2 users who lack a proper shlex.split.
2267
2270
2268 2004-07-19 Fernando Perez <fperez@colorado.edu>
2271 2004-07-19 Fernando Perez <fperez@colorado.edu>
2269
2272
2270 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2273 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2271 for reading readline's init file. I follow the normal chain:
2274 for reading readline's init file. I follow the normal chain:
2272 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2275 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2273 report by Mike Heeter. This closes
2276 report by Mike Heeter. This closes
2274 http://www.scipy.net/roundup/ipython/issue16.
2277 http://www.scipy.net/roundup/ipython/issue16.
2275
2278
2276 2004-07-18 Fernando Perez <fperez@colorado.edu>
2279 2004-07-18 Fernando Perez <fperez@colorado.edu>
2277
2280
2278 * IPython/iplib.py (__init__): Add better handling of '\' under
2281 * IPython/iplib.py (__init__): Add better handling of '\' under
2279 Win32 for filenames. After a patch by Ville.
2282 Win32 for filenames. After a patch by Ville.
2280
2283
2281 2004-07-17 Fernando Perez <fperez@colorado.edu>
2284 2004-07-17 Fernando Perez <fperez@colorado.edu>
2282
2285
2283 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2286 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2284 autocalling would be triggered for 'foo is bar' if foo is
2287 autocalling would be triggered for 'foo is bar' if foo is
2285 callable. I also cleaned up the autocall detection code to use a
2288 callable. I also cleaned up the autocall detection code to use a
2286 regexp, which is faster. Bug reported by Alexander Schmolck.
2289 regexp, which is faster. Bug reported by Alexander Schmolck.
2287
2290
2288 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2291 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2289 '?' in them would confuse the help system. Reported by Alex
2292 '?' in them would confuse the help system. Reported by Alex
2290 Schmolck.
2293 Schmolck.
2291
2294
2292 2004-07-16 Fernando Perez <fperez@colorado.edu>
2295 2004-07-16 Fernando Perez <fperez@colorado.edu>
2293
2296
2294 * IPython/GnuplotInteractive.py (__all__): added plot2.
2297 * IPython/GnuplotInteractive.py (__all__): added plot2.
2295
2298
2296 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2299 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2297 plotting dictionaries, lists or tuples of 1d arrays.
2300 plotting dictionaries, lists or tuples of 1d arrays.
2298
2301
2299 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2302 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2300 optimizations.
2303 optimizations.
2301
2304
2302 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2305 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2303 the information which was there from Janko's original IPP code:
2306 the information which was there from Janko's original IPP code:
2304
2307
2305 03.05.99 20:53 porto.ifm.uni-kiel.de
2308 03.05.99 20:53 porto.ifm.uni-kiel.de
2306 --Started changelog.
2309 --Started changelog.
2307 --make clear do what it say it does
2310 --make clear do what it say it does
2308 --added pretty output of lines from inputcache
2311 --added pretty output of lines from inputcache
2309 --Made Logger a mixin class, simplifies handling of switches
2312 --Made Logger a mixin class, simplifies handling of switches
2310 --Added own completer class. .string<TAB> expands to last history
2313 --Added own completer class. .string<TAB> expands to last history
2311 line which starts with string. The new expansion is also present
2314 line which starts with string. The new expansion is also present
2312 with Ctrl-r from the readline library. But this shows, who this
2315 with Ctrl-r from the readline library. But this shows, who this
2313 can be done for other cases.
2316 can be done for other cases.
2314 --Added convention that all shell functions should accept a
2317 --Added convention that all shell functions should accept a
2315 parameter_string This opens the door for different behaviour for
2318 parameter_string This opens the door for different behaviour for
2316 each function. @cd is a good example of this.
2319 each function. @cd is a good example of this.
2317
2320
2318 04.05.99 12:12 porto.ifm.uni-kiel.de
2321 04.05.99 12:12 porto.ifm.uni-kiel.de
2319 --added logfile rotation
2322 --added logfile rotation
2320 --added new mainloop method which freezes first the namespace
2323 --added new mainloop method which freezes first the namespace
2321
2324
2322 07.05.99 21:24 porto.ifm.uni-kiel.de
2325 07.05.99 21:24 porto.ifm.uni-kiel.de
2323 --added the docreader classes. Now there is a help system.
2326 --added the docreader classes. Now there is a help system.
2324 -This is only a first try. Currently it's not easy to put new
2327 -This is only a first try. Currently it's not easy to put new
2325 stuff in the indices. But this is the way to go. Info would be
2328 stuff in the indices. But this is the way to go. Info would be
2326 better, but HTML is every where and not everybody has an info
2329 better, but HTML is every where and not everybody has an info
2327 system installed and it's not so easy to change html-docs to info.
2330 system installed and it's not so easy to change html-docs to info.
2328 --added global logfile option
2331 --added global logfile option
2329 --there is now a hook for object inspection method pinfo needs to
2332 --there is now a hook for object inspection method pinfo needs to
2330 be provided for this. Can be reached by two '??'.
2333 be provided for this. Can be reached by two '??'.
2331
2334
2332 08.05.99 20:51 porto.ifm.uni-kiel.de
2335 08.05.99 20:51 porto.ifm.uni-kiel.de
2333 --added a README
2336 --added a README
2334 --bug in rc file. Something has changed so functions in the rc
2337 --bug in rc file. Something has changed so functions in the rc
2335 file need to reference the shell and not self. Not clear if it's a
2338 file need to reference the shell and not self. Not clear if it's a
2336 bug or feature.
2339 bug or feature.
2337 --changed rc file for new behavior
2340 --changed rc file for new behavior
2338
2341
2339 2004-07-15 Fernando Perez <fperez@colorado.edu>
2342 2004-07-15 Fernando Perez <fperez@colorado.edu>
2340
2343
2341 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2344 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2342 cache was falling out of sync in bizarre manners when multi-line
2345 cache was falling out of sync in bizarre manners when multi-line
2343 input was present. Minor optimizations and cleanup.
2346 input was present. Minor optimizations and cleanup.
2344
2347
2345 (Logger): Remove old Changelog info for cleanup. This is the
2348 (Logger): Remove old Changelog info for cleanup. This is the
2346 information which was there from Janko's original code:
2349 information which was there from Janko's original code:
2347
2350
2348 Changes to Logger: - made the default log filename a parameter
2351 Changes to Logger: - made the default log filename a parameter
2349
2352
2350 - put a check for lines beginning with !@? in log(). Needed
2353 - put a check for lines beginning with !@? in log(). Needed
2351 (even if the handlers properly log their lines) for mid-session
2354 (even if the handlers properly log their lines) for mid-session
2352 logging activation to work properly. Without this, lines logged
2355 logging activation to work properly. Without this, lines logged
2353 in mid session, which get read from the cache, would end up
2356 in mid session, which get read from the cache, would end up
2354 'bare' (with !@? in the open) in the log. Now they are caught
2357 'bare' (with !@? in the open) in the log. Now they are caught
2355 and prepended with a #.
2358 and prepended with a #.
2356
2359
2357 * IPython/iplib.py (InteractiveShell.init_readline): added check
2360 * IPython/iplib.py (InteractiveShell.init_readline): added check
2358 in case MagicCompleter fails to be defined, so we don't crash.
2361 in case MagicCompleter fails to be defined, so we don't crash.
2359
2362
2360 2004-07-13 Fernando Perez <fperez@colorado.edu>
2363 2004-07-13 Fernando Perez <fperez@colorado.edu>
2361
2364
2362 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2365 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2363 of EPS if the requested filename ends in '.eps'.
2366 of EPS if the requested filename ends in '.eps'.
2364
2367
2365 2004-07-04 Fernando Perez <fperez@colorado.edu>
2368 2004-07-04 Fernando Perez <fperez@colorado.edu>
2366
2369
2367 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2370 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2368 escaping of quotes when calling the shell.
2371 escaping of quotes when calling the shell.
2369
2372
2370 2004-07-02 Fernando Perez <fperez@colorado.edu>
2373 2004-07-02 Fernando Perez <fperez@colorado.edu>
2371
2374
2372 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2375 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2373 gettext not working because we were clobbering '_'. Fixes
2376 gettext not working because we were clobbering '_'. Fixes
2374 http://www.scipy.net/roundup/ipython/issue6.
2377 http://www.scipy.net/roundup/ipython/issue6.
2375
2378
2376 2004-07-01 Fernando Perez <fperez@colorado.edu>
2379 2004-07-01 Fernando Perez <fperez@colorado.edu>
2377
2380
2378 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2381 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2379 into @cd. Patch by Ville.
2382 into @cd. Patch by Ville.
2380
2383
2381 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2384 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2382 new function to store things after ipmaker runs. Patch by Ville.
2385 new function to store things after ipmaker runs. Patch by Ville.
2383 Eventually this will go away once ipmaker is removed and the class
2386 Eventually this will go away once ipmaker is removed and the class
2384 gets cleaned up, but for now it's ok. Key functionality here is
2387 gets cleaned up, but for now it's ok. Key functionality here is
2385 the addition of the persistent storage mechanism, a dict for
2388 the addition of the persistent storage mechanism, a dict for
2386 keeping data across sessions (for now just bookmarks, but more can
2389 keeping data across sessions (for now just bookmarks, but more can
2387 be implemented later).
2390 be implemented later).
2388
2391
2389 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2392 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2390 persistent across sections. Patch by Ville, I modified it
2393 persistent across sections. Patch by Ville, I modified it
2391 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2394 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2392 added a '-l' option to list all bookmarks.
2395 added a '-l' option to list all bookmarks.
2393
2396
2394 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2397 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2395 center for cleanup. Registered with atexit.register(). I moved
2398 center for cleanup. Registered with atexit.register(). I moved
2396 here the old exit_cleanup(). After a patch by Ville.
2399 here the old exit_cleanup(). After a patch by Ville.
2397
2400
2398 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2401 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2399 characters in the hacked shlex_split for python 2.2.
2402 characters in the hacked shlex_split for python 2.2.
2400
2403
2401 * IPython/iplib.py (file_matches): more fixes to filenames with
2404 * IPython/iplib.py (file_matches): more fixes to filenames with
2402 whitespace in them. It's not perfect, but limitations in python's
2405 whitespace in them. It's not perfect, but limitations in python's
2403 readline make it impossible to go further.
2406 readline make it impossible to go further.
2404
2407
2405 2004-06-29 Fernando Perez <fperez@colorado.edu>
2408 2004-06-29 Fernando Perez <fperez@colorado.edu>
2406
2409
2407 * IPython/iplib.py (file_matches): escape whitespace correctly in
2410 * IPython/iplib.py (file_matches): escape whitespace correctly in
2408 filename completions. Bug reported by Ville.
2411 filename completions. Bug reported by Ville.
2409
2412
2410 2004-06-28 Fernando Perez <fperez@colorado.edu>
2413 2004-06-28 Fernando Perez <fperez@colorado.edu>
2411
2414
2412 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2415 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2413 the history file will be called 'history-PROFNAME' (or just
2416 the history file will be called 'history-PROFNAME' (or just
2414 'history' if no profile is loaded). I was getting annoyed at
2417 'history' if no profile is loaded). I was getting annoyed at
2415 getting my Numerical work history clobbered by pysh sessions.
2418 getting my Numerical work history clobbered by pysh sessions.
2416
2419
2417 * IPython/iplib.py (InteractiveShell.__init__): Internal
2420 * IPython/iplib.py (InteractiveShell.__init__): Internal
2418 getoutputerror() function so that we can honor the system_verbose
2421 getoutputerror() function so that we can honor the system_verbose
2419 flag for _all_ system calls. I also added escaping of #
2422 flag for _all_ system calls. I also added escaping of #
2420 characters here to avoid confusing Itpl.
2423 characters here to avoid confusing Itpl.
2421
2424
2422 * IPython/Magic.py (shlex_split): removed call to shell in
2425 * IPython/Magic.py (shlex_split): removed call to shell in
2423 parse_options and replaced it with shlex.split(). The annoying
2426 parse_options and replaced it with shlex.split(). The annoying
2424 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2427 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2425 to backport it from 2.3, with several frail hacks (the shlex
2428 to backport it from 2.3, with several frail hacks (the shlex
2426 module is rather limited in 2.2). Thanks to a suggestion by Ville
2429 module is rather limited in 2.2). Thanks to a suggestion by Ville
2427 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2430 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2428 problem.
2431 problem.
2429
2432
2430 (Magic.magic_system_verbose): new toggle to print the actual
2433 (Magic.magic_system_verbose): new toggle to print the actual
2431 system calls made by ipython. Mainly for debugging purposes.
2434 system calls made by ipython. Mainly for debugging purposes.
2432
2435
2433 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2436 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2434 doesn't support persistence. Reported (and fix suggested) by
2437 doesn't support persistence. Reported (and fix suggested) by
2435 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2438 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2436
2439
2437 2004-06-26 Fernando Perez <fperez@colorado.edu>
2440 2004-06-26 Fernando Perez <fperez@colorado.edu>
2438
2441
2439 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2442 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2440 continue prompts.
2443 continue prompts.
2441
2444
2442 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2445 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2443 function (basically a big docstring) and a few more things here to
2446 function (basically a big docstring) and a few more things here to
2444 speedup startup. pysh.py is now very lightweight. We want because
2447 speedup startup. pysh.py is now very lightweight. We want because
2445 it gets execfile'd, while InterpreterExec gets imported, so
2448 it gets execfile'd, while InterpreterExec gets imported, so
2446 byte-compilation saves time.
2449 byte-compilation saves time.
2447
2450
2448 2004-06-25 Fernando Perez <fperez@colorado.edu>
2451 2004-06-25 Fernando Perez <fperez@colorado.edu>
2449
2452
2450 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2453 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2451 -NUM', which was recently broken.
2454 -NUM', which was recently broken.
2452
2455
2453 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2456 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2454 in multi-line input (but not !!, which doesn't make sense there).
2457 in multi-line input (but not !!, which doesn't make sense there).
2455
2458
2456 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2459 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2457 It's just too useful, and people can turn it off in the less
2460 It's just too useful, and people can turn it off in the less
2458 common cases where it's a problem.
2461 common cases where it's a problem.
2459
2462
2460 2004-06-24 Fernando Perez <fperez@colorado.edu>
2463 2004-06-24 Fernando Perez <fperez@colorado.edu>
2461
2464
2462 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2465 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2463 special syntaxes (like alias calling) is now allied in multi-line
2466 special syntaxes (like alias calling) is now allied in multi-line
2464 input. This is still _very_ experimental, but it's necessary for
2467 input. This is still _very_ experimental, but it's necessary for
2465 efficient shell usage combining python looping syntax with system
2468 efficient shell usage combining python looping syntax with system
2466 calls. For now it's restricted to aliases, I don't think it
2469 calls. For now it's restricted to aliases, I don't think it
2467 really even makes sense to have this for magics.
2470 really even makes sense to have this for magics.
2468
2471
2469 2004-06-23 Fernando Perez <fperez@colorado.edu>
2472 2004-06-23 Fernando Perez <fperez@colorado.edu>
2470
2473
2471 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2474 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2472 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2475 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2473
2476
2474 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2477 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2475 extensions under Windows (after code sent by Gary Bishop). The
2478 extensions under Windows (after code sent by Gary Bishop). The
2476 extensions considered 'executable' are stored in IPython's rc
2479 extensions considered 'executable' are stored in IPython's rc
2477 structure as win_exec_ext.
2480 structure as win_exec_ext.
2478
2481
2479 * IPython/genutils.py (shell): new function, like system() but
2482 * IPython/genutils.py (shell): new function, like system() but
2480 without return value. Very useful for interactive shell work.
2483 without return value. Very useful for interactive shell work.
2481
2484
2482 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2485 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2483 delete aliases.
2486 delete aliases.
2484
2487
2485 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2488 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2486 sure that the alias table doesn't contain python keywords.
2489 sure that the alias table doesn't contain python keywords.
2487
2490
2488 2004-06-21 Fernando Perez <fperez@colorado.edu>
2491 2004-06-21 Fernando Perez <fperez@colorado.edu>
2489
2492
2490 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2493 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2491 non-existent items are found in $PATH. Reported by Thorsten.
2494 non-existent items are found in $PATH. Reported by Thorsten.
2492
2495
2493 2004-06-20 Fernando Perez <fperez@colorado.edu>
2496 2004-06-20 Fernando Perez <fperez@colorado.edu>
2494
2497
2495 * IPython/iplib.py (complete): modified the completer so that the
2498 * IPython/iplib.py (complete): modified the completer so that the
2496 order of priorities can be easily changed at runtime.
2499 order of priorities can be easily changed at runtime.
2497
2500
2498 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2501 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2499 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2502 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2500
2503
2501 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2504 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2502 expand Python variables prepended with $ in all system calls. The
2505 expand Python variables prepended with $ in all system calls. The
2503 same was done to InteractiveShell.handle_shell_escape. Now all
2506 same was done to InteractiveShell.handle_shell_escape. Now all
2504 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2507 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2505 expansion of python variables and expressions according to the
2508 expansion of python variables and expressions according to the
2506 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2509 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2507
2510
2508 Though PEP-215 has been rejected, a similar (but simpler) one
2511 Though PEP-215 has been rejected, a similar (but simpler) one
2509 seems like it will go into Python 2.4, PEP-292 -
2512 seems like it will go into Python 2.4, PEP-292 -
2510 http://www.python.org/peps/pep-0292.html.
2513 http://www.python.org/peps/pep-0292.html.
2511
2514
2512 I'll keep the full syntax of PEP-215, since IPython has since the
2515 I'll keep the full syntax of PEP-215, since IPython has since the
2513 start used Ka-Ping Yee's reference implementation discussed there
2516 start used Ka-Ping Yee's reference implementation discussed there
2514 (Itpl), and I actually like the powerful semantics it offers.
2517 (Itpl), and I actually like the powerful semantics it offers.
2515
2518
2516 In order to access normal shell variables, the $ has to be escaped
2519 In order to access normal shell variables, the $ has to be escaped
2517 via an extra $. For example:
2520 via an extra $. For example:
2518
2521
2519 In [7]: PATH='a python variable'
2522 In [7]: PATH='a python variable'
2520
2523
2521 In [8]: !echo $PATH
2524 In [8]: !echo $PATH
2522 a python variable
2525 a python variable
2523
2526
2524 In [9]: !echo $$PATH
2527 In [9]: !echo $$PATH
2525 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2528 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2526
2529
2527 (Magic.parse_options): escape $ so the shell doesn't evaluate
2530 (Magic.parse_options): escape $ so the shell doesn't evaluate
2528 things prematurely.
2531 things prematurely.
2529
2532
2530 * IPython/iplib.py (InteractiveShell.call_alias): added the
2533 * IPython/iplib.py (InteractiveShell.call_alias): added the
2531 ability for aliases to expand python variables via $.
2534 ability for aliases to expand python variables via $.
2532
2535
2533 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2536 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2534 system, now there's a @rehash/@rehashx pair of magics. These work
2537 system, now there's a @rehash/@rehashx pair of magics. These work
2535 like the csh rehash command, and can be invoked at any time. They
2538 like the csh rehash command, and can be invoked at any time. They
2536 build a table of aliases to everything in the user's $PATH
2539 build a table of aliases to everything in the user's $PATH
2537 (@rehash uses everything, @rehashx is slower but only adds
2540 (@rehash uses everything, @rehashx is slower but only adds
2538 executable files). With this, the pysh.py-based shell profile can
2541 executable files). With this, the pysh.py-based shell profile can
2539 now simply call rehash upon startup, and full access to all
2542 now simply call rehash upon startup, and full access to all
2540 programs in the user's path is obtained.
2543 programs in the user's path is obtained.
2541
2544
2542 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2545 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2543 functionality is now fully in place. I removed the old dynamic
2546 functionality is now fully in place. I removed the old dynamic
2544 code generation based approach, in favor of a much lighter one
2547 code generation based approach, in favor of a much lighter one
2545 based on a simple dict. The advantage is that this allows me to
2548 based on a simple dict. The advantage is that this allows me to
2546 now have thousands of aliases with negligible cost (unthinkable
2549 now have thousands of aliases with negligible cost (unthinkable
2547 with the old system).
2550 with the old system).
2548
2551
2549 2004-06-19 Fernando Perez <fperez@colorado.edu>
2552 2004-06-19 Fernando Perez <fperez@colorado.edu>
2550
2553
2551 * IPython/iplib.py (__init__): extended MagicCompleter class to
2554 * IPython/iplib.py (__init__): extended MagicCompleter class to
2552 also complete (last in priority) on user aliases.
2555 also complete (last in priority) on user aliases.
2553
2556
2554 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2557 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2555 call to eval.
2558 call to eval.
2556 (ItplNS.__init__): Added a new class which functions like Itpl,
2559 (ItplNS.__init__): Added a new class which functions like Itpl,
2557 but allows configuring the namespace for the evaluation to occur
2560 but allows configuring the namespace for the evaluation to occur
2558 in.
2561 in.
2559
2562
2560 2004-06-18 Fernando Perez <fperez@colorado.edu>
2563 2004-06-18 Fernando Perez <fperez@colorado.edu>
2561
2564
2562 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2565 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2563 better message when 'exit' or 'quit' are typed (a common newbie
2566 better message when 'exit' or 'quit' are typed (a common newbie
2564 confusion).
2567 confusion).
2565
2568
2566 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2569 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2567 check for Windows users.
2570 check for Windows users.
2568
2571
2569 * IPython/iplib.py (InteractiveShell.user_setup): removed
2572 * IPython/iplib.py (InteractiveShell.user_setup): removed
2570 disabling of colors for Windows. I'll test at runtime and issue a
2573 disabling of colors for Windows. I'll test at runtime and issue a
2571 warning if Gary's readline isn't found, as to nudge users to
2574 warning if Gary's readline isn't found, as to nudge users to
2572 download it.
2575 download it.
2573
2576
2574 2004-06-16 Fernando Perez <fperez@colorado.edu>
2577 2004-06-16 Fernando Perez <fperez@colorado.edu>
2575
2578
2576 * IPython/genutils.py (Stream.__init__): changed to print errors
2579 * IPython/genutils.py (Stream.__init__): changed to print errors
2577 to sys.stderr. I had a circular dependency here. Now it's
2580 to sys.stderr. I had a circular dependency here. Now it's
2578 possible to run ipython as IDLE's shell (consider this pre-alpha,
2581 possible to run ipython as IDLE's shell (consider this pre-alpha,
2579 since true stdout things end up in the starting terminal instead
2582 since true stdout things end up in the starting terminal instead
2580 of IDLE's out).
2583 of IDLE's out).
2581
2584
2582 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2585 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2583 users who haven't # updated their prompt_in2 definitions. Remove
2586 users who haven't # updated their prompt_in2 definitions. Remove
2584 eventually.
2587 eventually.
2585 (multiple_replace): added credit to original ASPN recipe.
2588 (multiple_replace): added credit to original ASPN recipe.
2586
2589
2587 2004-06-15 Fernando Perez <fperez@colorado.edu>
2590 2004-06-15 Fernando Perez <fperez@colorado.edu>
2588
2591
2589 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2592 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2590 list of auto-defined aliases.
2593 list of auto-defined aliases.
2591
2594
2592 2004-06-13 Fernando Perez <fperez@colorado.edu>
2595 2004-06-13 Fernando Perez <fperez@colorado.edu>
2593
2596
2594 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2597 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2595 install was really requested (so setup.py can be used for other
2598 install was really requested (so setup.py can be used for other
2596 things under Windows).
2599 things under Windows).
2597
2600
2598 2004-06-10 Fernando Perez <fperez@colorado.edu>
2601 2004-06-10 Fernando Perez <fperez@colorado.edu>
2599
2602
2600 * IPython/Logger.py (Logger.create_log): Manually remove any old
2603 * IPython/Logger.py (Logger.create_log): Manually remove any old
2601 backup, since os.remove may fail under Windows. Fixes bug
2604 backup, since os.remove may fail under Windows. Fixes bug
2602 reported by Thorsten.
2605 reported by Thorsten.
2603
2606
2604 2004-06-09 Fernando Perez <fperez@colorado.edu>
2607 2004-06-09 Fernando Perez <fperez@colorado.edu>
2605
2608
2606 * examples/example-embed.py: fixed all references to %n (replaced
2609 * examples/example-embed.py: fixed all references to %n (replaced
2607 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2610 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2608 for all examples and the manual as well.
2611 for all examples and the manual as well.
2609
2612
2610 2004-06-08 Fernando Perez <fperez@colorado.edu>
2613 2004-06-08 Fernando Perez <fperez@colorado.edu>
2611
2614
2612 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2615 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2613 alignment and color management. All 3 prompt subsystems now
2616 alignment and color management. All 3 prompt subsystems now
2614 inherit from BasePrompt.
2617 inherit from BasePrompt.
2615
2618
2616 * tools/release: updates for windows installer build and tag rpms
2619 * tools/release: updates for windows installer build and tag rpms
2617 with python version (since paths are fixed).
2620 with python version (since paths are fixed).
2618
2621
2619 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2622 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2620 which will become eventually obsolete. Also fixed the default
2623 which will become eventually obsolete. Also fixed the default
2621 prompt_in2 to use \D, so at least new users start with the correct
2624 prompt_in2 to use \D, so at least new users start with the correct
2622 defaults.
2625 defaults.
2623 WARNING: Users with existing ipythonrc files will need to apply
2626 WARNING: Users with existing ipythonrc files will need to apply
2624 this fix manually!
2627 this fix manually!
2625
2628
2626 * setup.py: make windows installer (.exe). This is finally the
2629 * setup.py: make windows installer (.exe). This is finally the
2627 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2630 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2628 which I hadn't included because it required Python 2.3 (or recent
2631 which I hadn't included because it required Python 2.3 (or recent
2629 distutils).
2632 distutils).
2630
2633
2631 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2634 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2632 usage of new '\D' escape.
2635 usage of new '\D' escape.
2633
2636
2634 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2637 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2635 lacks os.getuid())
2638 lacks os.getuid())
2636 (CachedOutput.set_colors): Added the ability to turn coloring
2639 (CachedOutput.set_colors): Added the ability to turn coloring
2637 on/off with @colors even for manually defined prompt colors. It
2640 on/off with @colors even for manually defined prompt colors. It
2638 uses a nasty global, but it works safely and via the generic color
2641 uses a nasty global, but it works safely and via the generic color
2639 handling mechanism.
2642 handling mechanism.
2640 (Prompt2.__init__): Introduced new escape '\D' for continuation
2643 (Prompt2.__init__): Introduced new escape '\D' for continuation
2641 prompts. It represents the counter ('\#') as dots.
2644 prompts. It represents the counter ('\#') as dots.
2642 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2645 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2643 need to update their ipythonrc files and replace '%n' with '\D' in
2646 need to update their ipythonrc files and replace '%n' with '\D' in
2644 their prompt_in2 settings everywhere. Sorry, but there's
2647 their prompt_in2 settings everywhere. Sorry, but there's
2645 otherwise no clean way to get all prompts to properly align. The
2648 otherwise no clean way to get all prompts to properly align. The
2646 ipythonrc shipped with IPython has been updated.
2649 ipythonrc shipped with IPython has been updated.
2647
2650
2648 2004-06-07 Fernando Perez <fperez@colorado.edu>
2651 2004-06-07 Fernando Perez <fperez@colorado.edu>
2649
2652
2650 * setup.py (isfile): Pass local_icons option to latex2html, so the
2653 * setup.py (isfile): Pass local_icons option to latex2html, so the
2651 resulting HTML file is self-contained. Thanks to
2654 resulting HTML file is self-contained. Thanks to
2652 dryice-AT-liu.com.cn for the tip.
2655 dryice-AT-liu.com.cn for the tip.
2653
2656
2654 * pysh.py: I created a new profile 'shell', which implements a
2657 * pysh.py: I created a new profile 'shell', which implements a
2655 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2658 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2656 system shell, nor will it become one anytime soon. It's mainly
2659 system shell, nor will it become one anytime soon. It's mainly
2657 meant to illustrate the use of the new flexible bash-like prompts.
2660 meant to illustrate the use of the new flexible bash-like prompts.
2658 I guess it could be used by hardy souls for true shell management,
2661 I guess it could be used by hardy souls for true shell management,
2659 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2662 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2660 profile. This uses the InterpreterExec extension provided by
2663 profile. This uses the InterpreterExec extension provided by
2661 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2664 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2662
2665
2663 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2666 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2664 auto-align itself with the length of the previous input prompt
2667 auto-align itself with the length of the previous input prompt
2665 (taking into account the invisible color escapes).
2668 (taking into account the invisible color escapes).
2666 (CachedOutput.__init__): Large restructuring of this class. Now
2669 (CachedOutput.__init__): Large restructuring of this class. Now
2667 all three prompts (primary1, primary2, output) are proper objects,
2670 all three prompts (primary1, primary2, output) are proper objects,
2668 managed by the 'parent' CachedOutput class. The code is still a
2671 managed by the 'parent' CachedOutput class. The code is still a
2669 bit hackish (all prompts share state via a pointer to the cache),
2672 bit hackish (all prompts share state via a pointer to the cache),
2670 but it's overall far cleaner than before.
2673 but it's overall far cleaner than before.
2671
2674
2672 * IPython/genutils.py (getoutputerror): modified to add verbose,
2675 * IPython/genutils.py (getoutputerror): modified to add verbose,
2673 debug and header options. This makes the interface of all getout*
2676 debug and header options. This makes the interface of all getout*
2674 functions uniform.
2677 functions uniform.
2675 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2678 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2676
2679
2677 * IPython/Magic.py (Magic.default_option): added a function to
2680 * IPython/Magic.py (Magic.default_option): added a function to
2678 allow registering default options for any magic command. This
2681 allow registering default options for any magic command. This
2679 makes it easy to have profiles which customize the magics globally
2682 makes it easy to have profiles which customize the magics globally
2680 for a certain use. The values set through this function are
2683 for a certain use. The values set through this function are
2681 picked up by the parse_options() method, which all magics should
2684 picked up by the parse_options() method, which all magics should
2682 use to parse their options.
2685 use to parse their options.
2683
2686
2684 * IPython/genutils.py (warn): modified the warnings framework to
2687 * IPython/genutils.py (warn): modified the warnings framework to
2685 use the Term I/O class. I'm trying to slowly unify all of
2688 use the Term I/O class. I'm trying to slowly unify all of
2686 IPython's I/O operations to pass through Term.
2689 IPython's I/O operations to pass through Term.
2687
2690
2688 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2691 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2689 the secondary prompt to correctly match the length of the primary
2692 the secondary prompt to correctly match the length of the primary
2690 one for any prompt. Now multi-line code will properly line up
2693 one for any prompt. Now multi-line code will properly line up
2691 even for path dependent prompts, such as the new ones available
2694 even for path dependent prompts, such as the new ones available
2692 via the prompt_specials.
2695 via the prompt_specials.
2693
2696
2694 2004-06-06 Fernando Perez <fperez@colorado.edu>
2697 2004-06-06 Fernando Perez <fperez@colorado.edu>
2695
2698
2696 * IPython/Prompts.py (prompt_specials): Added the ability to have
2699 * IPython/Prompts.py (prompt_specials): Added the ability to have
2697 bash-like special sequences in the prompts, which get
2700 bash-like special sequences in the prompts, which get
2698 automatically expanded. Things like hostname, current working
2701 automatically expanded. Things like hostname, current working
2699 directory and username are implemented already, but it's easy to
2702 directory and username are implemented already, but it's easy to
2700 add more in the future. Thanks to a patch by W.J. van der Laan
2703 add more in the future. Thanks to a patch by W.J. van der Laan
2701 <gnufnork-AT-hetdigitalegat.nl>
2704 <gnufnork-AT-hetdigitalegat.nl>
2702 (prompt_specials): Added color support for prompt strings, so
2705 (prompt_specials): Added color support for prompt strings, so
2703 users can define arbitrary color setups for their prompts.
2706 users can define arbitrary color setups for their prompts.
2704
2707
2705 2004-06-05 Fernando Perez <fperez@colorado.edu>
2708 2004-06-05 Fernando Perez <fperez@colorado.edu>
2706
2709
2707 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2710 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2708 code to load Gary Bishop's readline and configure it
2711 code to load Gary Bishop's readline and configure it
2709 automatically. Thanks to Gary for help on this.
2712 automatically. Thanks to Gary for help on this.
2710
2713
2711 2004-06-01 Fernando Perez <fperez@colorado.edu>
2714 2004-06-01 Fernando Perez <fperez@colorado.edu>
2712
2715
2713 * IPython/Logger.py (Logger.create_log): fix bug for logging
2716 * IPython/Logger.py (Logger.create_log): fix bug for logging
2714 with no filename (previous fix was incomplete).
2717 with no filename (previous fix was incomplete).
2715
2718
2716 2004-05-25 Fernando Perez <fperez@colorado.edu>
2719 2004-05-25 Fernando Perez <fperez@colorado.edu>
2717
2720
2718 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2721 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2719 parens would get passed to the shell.
2722 parens would get passed to the shell.
2720
2723
2721 2004-05-20 Fernando Perez <fperez@colorado.edu>
2724 2004-05-20 Fernando Perez <fperez@colorado.edu>
2722
2725
2723 * IPython/Magic.py (Magic.magic_prun): changed default profile
2726 * IPython/Magic.py (Magic.magic_prun): changed default profile
2724 sort order to 'time' (the more common profiling need).
2727 sort order to 'time' (the more common profiling need).
2725
2728
2726 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2729 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2727 so that source code shown is guaranteed in sync with the file on
2730 so that source code shown is guaranteed in sync with the file on
2728 disk (also changed in psource). Similar fix to the one for
2731 disk (also changed in psource). Similar fix to the one for
2729 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2732 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2730 <yann.ledu-AT-noos.fr>.
2733 <yann.ledu-AT-noos.fr>.
2731
2734
2732 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2735 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2733 with a single option would not be correctly parsed. Closes
2736 with a single option would not be correctly parsed. Closes
2734 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2737 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2735 introduced in 0.6.0 (on 2004-05-06).
2738 introduced in 0.6.0 (on 2004-05-06).
2736
2739
2737 2004-05-13 *** Released version 0.6.0
2740 2004-05-13 *** Released version 0.6.0
2738
2741
2739 2004-05-13 Fernando Perez <fperez@colorado.edu>
2742 2004-05-13 Fernando Perez <fperez@colorado.edu>
2740
2743
2741 * debian/: Added debian/ directory to CVS, so that debian support
2744 * debian/: Added debian/ directory to CVS, so that debian support
2742 is publicly accessible. The debian package is maintained by Jack
2745 is publicly accessible. The debian package is maintained by Jack
2743 Moffit <jack-AT-xiph.org>.
2746 Moffit <jack-AT-xiph.org>.
2744
2747
2745 * Documentation: included the notes about an ipython-based system
2748 * Documentation: included the notes about an ipython-based system
2746 shell (the hypothetical 'pysh') into the new_design.pdf document,
2749 shell (the hypothetical 'pysh') into the new_design.pdf document,
2747 so that these ideas get distributed to users along with the
2750 so that these ideas get distributed to users along with the
2748 official documentation.
2751 official documentation.
2749
2752
2750 2004-05-10 Fernando Perez <fperez@colorado.edu>
2753 2004-05-10 Fernando Perez <fperez@colorado.edu>
2751
2754
2752 * IPython/Logger.py (Logger.create_log): fix recently introduced
2755 * IPython/Logger.py (Logger.create_log): fix recently introduced
2753 bug (misindented line) where logstart would fail when not given an
2756 bug (misindented line) where logstart would fail when not given an
2754 explicit filename.
2757 explicit filename.
2755
2758
2756 2004-05-09 Fernando Perez <fperez@colorado.edu>
2759 2004-05-09 Fernando Perez <fperez@colorado.edu>
2757
2760
2758 * IPython/Magic.py (Magic.parse_options): skip system call when
2761 * IPython/Magic.py (Magic.parse_options): skip system call when
2759 there are no options to look for. Faster, cleaner for the common
2762 there are no options to look for. Faster, cleaner for the common
2760 case.
2763 case.
2761
2764
2762 * Documentation: many updates to the manual: describing Windows
2765 * Documentation: many updates to the manual: describing Windows
2763 support better, Gnuplot updates, credits, misc small stuff. Also
2766 support better, Gnuplot updates, credits, misc small stuff. Also
2764 updated the new_design doc a bit.
2767 updated the new_design doc a bit.
2765
2768
2766 2004-05-06 *** Released version 0.6.0.rc1
2769 2004-05-06 *** Released version 0.6.0.rc1
2767
2770
2768 2004-05-06 Fernando Perez <fperez@colorado.edu>
2771 2004-05-06 Fernando Perez <fperez@colorado.edu>
2769
2772
2770 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2773 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2771 operations to use the vastly more efficient list/''.join() method.
2774 operations to use the vastly more efficient list/''.join() method.
2772 (FormattedTB.text): Fix
2775 (FormattedTB.text): Fix
2773 http://www.scipy.net/roundup/ipython/issue12 - exception source
2776 http://www.scipy.net/roundup/ipython/issue12 - exception source
2774 extract not updated after reload. Thanks to Mike Salib
2777 extract not updated after reload. Thanks to Mike Salib
2775 <msalib-AT-mit.edu> for pinning the source of the problem.
2778 <msalib-AT-mit.edu> for pinning the source of the problem.
2776 Fortunately, the solution works inside ipython and doesn't require
2779 Fortunately, the solution works inside ipython and doesn't require
2777 any changes to python proper.
2780 any changes to python proper.
2778
2781
2779 * IPython/Magic.py (Magic.parse_options): Improved to process the
2782 * IPython/Magic.py (Magic.parse_options): Improved to process the
2780 argument list as a true shell would (by actually using the
2783 argument list as a true shell would (by actually using the
2781 underlying system shell). This way, all @magics automatically get
2784 underlying system shell). This way, all @magics automatically get
2782 shell expansion for variables. Thanks to a comment by Alex
2785 shell expansion for variables. Thanks to a comment by Alex
2783 Schmolck.
2786 Schmolck.
2784
2787
2785 2004-04-04 Fernando Perez <fperez@colorado.edu>
2788 2004-04-04 Fernando Perez <fperez@colorado.edu>
2786
2789
2787 * IPython/iplib.py (InteractiveShell.interact): Added a special
2790 * IPython/iplib.py (InteractiveShell.interact): Added a special
2788 trap for a debugger quit exception, which is basically impossible
2791 trap for a debugger quit exception, which is basically impossible
2789 to handle by normal mechanisms, given what pdb does to the stack.
2792 to handle by normal mechanisms, given what pdb does to the stack.
2790 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2793 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2791
2794
2792 2004-04-03 Fernando Perez <fperez@colorado.edu>
2795 2004-04-03 Fernando Perez <fperez@colorado.edu>
2793
2796
2794 * IPython/genutils.py (Term): Standardized the names of the Term
2797 * IPython/genutils.py (Term): Standardized the names of the Term
2795 class streams to cin/cout/cerr, following C++ naming conventions
2798 class streams to cin/cout/cerr, following C++ naming conventions
2796 (I can't use in/out/err because 'in' is not a valid attribute
2799 (I can't use in/out/err because 'in' is not a valid attribute
2797 name).
2800 name).
2798
2801
2799 * IPython/iplib.py (InteractiveShell.interact): don't increment
2802 * IPython/iplib.py (InteractiveShell.interact): don't increment
2800 the prompt if there's no user input. By Daniel 'Dang' Griffith
2803 the prompt if there's no user input. By Daniel 'Dang' Griffith
2801 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2804 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2802 Francois Pinard.
2805 Francois Pinard.
2803
2806
2804 2004-04-02 Fernando Perez <fperez@colorado.edu>
2807 2004-04-02 Fernando Perez <fperez@colorado.edu>
2805
2808
2806 * IPython/genutils.py (Stream.__init__): Modified to survive at
2809 * IPython/genutils.py (Stream.__init__): Modified to survive at
2807 least importing in contexts where stdin/out/err aren't true file
2810 least importing in contexts where stdin/out/err aren't true file
2808 objects, such as PyCrust (they lack fileno() and mode). However,
2811 objects, such as PyCrust (they lack fileno() and mode). However,
2809 the recovery facilities which rely on these things existing will
2812 the recovery facilities which rely on these things existing will
2810 not work.
2813 not work.
2811
2814
2812 2004-04-01 Fernando Perez <fperez@colorado.edu>
2815 2004-04-01 Fernando Perez <fperez@colorado.edu>
2813
2816
2814 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2817 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2815 use the new getoutputerror() function, so it properly
2818 use the new getoutputerror() function, so it properly
2816 distinguishes stdout/err.
2819 distinguishes stdout/err.
2817
2820
2818 * IPython/genutils.py (getoutputerror): added a function to
2821 * IPython/genutils.py (getoutputerror): added a function to
2819 capture separately the standard output and error of a command.
2822 capture separately the standard output and error of a command.
2820 After a comment from dang on the mailing lists. This code is
2823 After a comment from dang on the mailing lists. This code is
2821 basically a modified version of commands.getstatusoutput(), from
2824 basically a modified version of commands.getstatusoutput(), from
2822 the standard library.
2825 the standard library.
2823
2826
2824 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2827 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2825 '!!' as a special syntax (shorthand) to access @sx.
2828 '!!' as a special syntax (shorthand) to access @sx.
2826
2829
2827 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2830 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2828 command and return its output as a list split on '\n'.
2831 command and return its output as a list split on '\n'.
2829
2832
2830 2004-03-31 Fernando Perez <fperez@colorado.edu>
2833 2004-03-31 Fernando Perez <fperez@colorado.edu>
2831
2834
2832 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2835 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2833 method to dictionaries used as FakeModule instances if they lack
2836 method to dictionaries used as FakeModule instances if they lack
2834 it. At least pydoc in python2.3 breaks for runtime-defined
2837 it. At least pydoc in python2.3 breaks for runtime-defined
2835 functions without this hack. At some point I need to _really_
2838 functions without this hack. At some point I need to _really_
2836 understand what FakeModule is doing, because it's a gross hack.
2839 understand what FakeModule is doing, because it's a gross hack.
2837 But it solves Arnd's problem for now...
2840 But it solves Arnd's problem for now...
2838
2841
2839 2004-02-27 Fernando Perez <fperez@colorado.edu>
2842 2004-02-27 Fernando Perez <fperez@colorado.edu>
2840
2843
2841 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2844 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2842 mode would behave erratically. Also increased the number of
2845 mode would behave erratically. Also increased the number of
2843 possible logs in rotate mod to 999. Thanks to Rod Holland
2846 possible logs in rotate mod to 999. Thanks to Rod Holland
2844 <rhh@StructureLABS.com> for the report and fixes.
2847 <rhh@StructureLABS.com> for the report and fixes.
2845
2848
2846 2004-02-26 Fernando Perez <fperez@colorado.edu>
2849 2004-02-26 Fernando Perez <fperez@colorado.edu>
2847
2850
2848 * IPython/genutils.py (page): Check that the curses module really
2851 * IPython/genutils.py (page): Check that the curses module really
2849 has the initscr attribute before trying to use it. For some
2852 has the initscr attribute before trying to use it. For some
2850 reason, the Solaris curses module is missing this. I think this
2853 reason, the Solaris curses module is missing this. I think this
2851 should be considered a Solaris python bug, but I'm not sure.
2854 should be considered a Solaris python bug, but I'm not sure.
2852
2855
2853 2004-01-17 Fernando Perez <fperez@colorado.edu>
2856 2004-01-17 Fernando Perez <fperez@colorado.edu>
2854
2857
2855 * IPython/genutils.py (Stream.__init__): Changes to try to make
2858 * IPython/genutils.py (Stream.__init__): Changes to try to make
2856 ipython robust against stdin/out/err being closed by the user.
2859 ipython robust against stdin/out/err being closed by the user.
2857 This is 'user error' (and blocks a normal python session, at least
2860 This is 'user error' (and blocks a normal python session, at least
2858 the stdout case). However, Ipython should be able to survive such
2861 the stdout case). However, Ipython should be able to survive such
2859 instances of abuse as gracefully as possible. To simplify the
2862 instances of abuse as gracefully as possible. To simplify the
2860 coding and maintain compatibility with Gary Bishop's Term
2863 coding and maintain compatibility with Gary Bishop's Term
2861 contributions, I've made use of classmethods for this. I think
2864 contributions, I've made use of classmethods for this. I think
2862 this introduces a dependency on python 2.2.
2865 this introduces a dependency on python 2.2.
2863
2866
2864 2004-01-13 Fernando Perez <fperez@colorado.edu>
2867 2004-01-13 Fernando Perez <fperez@colorado.edu>
2865
2868
2866 * IPython/numutils.py (exp_safe): simplified the code a bit and
2869 * IPython/numutils.py (exp_safe): simplified the code a bit and
2867 removed the need for importing the kinds module altogether.
2870 removed the need for importing the kinds module altogether.
2868
2871
2869 2004-01-06 Fernando Perez <fperez@colorado.edu>
2872 2004-01-06 Fernando Perez <fperez@colorado.edu>
2870
2873
2871 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2874 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2872 a magic function instead, after some community feedback. No
2875 a magic function instead, after some community feedback. No
2873 special syntax will exist for it, but its name is deliberately
2876 special syntax will exist for it, but its name is deliberately
2874 very short.
2877 very short.
2875
2878
2876 2003-12-20 Fernando Perez <fperez@colorado.edu>
2879 2003-12-20 Fernando Perez <fperez@colorado.edu>
2877
2880
2878 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2881 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2879 new functionality, to automagically assign the result of a shell
2882 new functionality, to automagically assign the result of a shell
2880 command to a variable. I'll solicit some community feedback on
2883 command to a variable. I'll solicit some community feedback on
2881 this before making it permanent.
2884 this before making it permanent.
2882
2885
2883 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2886 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2884 requested about callables for which inspect couldn't obtain a
2887 requested about callables for which inspect couldn't obtain a
2885 proper argspec. Thanks to a crash report sent by Etienne
2888 proper argspec. Thanks to a crash report sent by Etienne
2886 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2889 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2887
2890
2888 2003-12-09 Fernando Perez <fperez@colorado.edu>
2891 2003-12-09 Fernando Perez <fperez@colorado.edu>
2889
2892
2890 * IPython/genutils.py (page): patch for the pager to work across
2893 * IPython/genutils.py (page): patch for the pager to work across
2891 various versions of Windows. By Gary Bishop.
2894 various versions of Windows. By Gary Bishop.
2892
2895
2893 2003-12-04 Fernando Perez <fperez@colorado.edu>
2896 2003-12-04 Fernando Perez <fperez@colorado.edu>
2894
2897
2895 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2898 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2896 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2899 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2897 While I tested this and it looks ok, there may still be corner
2900 While I tested this and it looks ok, there may still be corner
2898 cases I've missed.
2901 cases I've missed.
2899
2902
2900 2003-12-01 Fernando Perez <fperez@colorado.edu>
2903 2003-12-01 Fernando Perez <fperez@colorado.edu>
2901
2904
2902 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2905 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2903 where a line like 'p,q=1,2' would fail because the automagic
2906 where a line like 'p,q=1,2' would fail because the automagic
2904 system would be triggered for @p.
2907 system would be triggered for @p.
2905
2908
2906 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2909 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2907 cleanups, code unmodified.
2910 cleanups, code unmodified.
2908
2911
2909 * IPython/genutils.py (Term): added a class for IPython to handle
2912 * IPython/genutils.py (Term): added a class for IPython to handle
2910 output. In most cases it will just be a proxy for stdout/err, but
2913 output. In most cases it will just be a proxy for stdout/err, but
2911 having this allows modifications to be made for some platforms,
2914 having this allows modifications to be made for some platforms,
2912 such as handling color escapes under Windows. All of this code
2915 such as handling color escapes under Windows. All of this code
2913 was contributed by Gary Bishop, with minor modifications by me.
2916 was contributed by Gary Bishop, with minor modifications by me.
2914 The actual changes affect many files.
2917 The actual changes affect many files.
2915
2918
2916 2003-11-30 Fernando Perez <fperez@colorado.edu>
2919 2003-11-30 Fernando Perez <fperez@colorado.edu>
2917
2920
2918 * IPython/iplib.py (file_matches): new completion code, courtesy
2921 * IPython/iplib.py (file_matches): new completion code, courtesy
2919 of Jeff Collins. This enables filename completion again under
2922 of Jeff Collins. This enables filename completion again under
2920 python 2.3, which disabled it at the C level.
2923 python 2.3, which disabled it at the C level.
2921
2924
2922 2003-11-11 Fernando Perez <fperez@colorado.edu>
2925 2003-11-11 Fernando Perez <fperez@colorado.edu>
2923
2926
2924 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2927 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2925 for Numeric.array(map(...)), but often convenient.
2928 for Numeric.array(map(...)), but often convenient.
2926
2929
2927 2003-11-05 Fernando Perez <fperez@colorado.edu>
2930 2003-11-05 Fernando Perez <fperez@colorado.edu>
2928
2931
2929 * IPython/numutils.py (frange): Changed a call from int() to
2932 * IPython/numutils.py (frange): Changed a call from int() to
2930 int(round()) to prevent a problem reported with arange() in the
2933 int(round()) to prevent a problem reported with arange() in the
2931 numpy list.
2934 numpy list.
2932
2935
2933 2003-10-06 Fernando Perez <fperez@colorado.edu>
2936 2003-10-06 Fernando Perez <fperez@colorado.edu>
2934
2937
2935 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2938 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2936 prevent crashes if sys lacks an argv attribute (it happens with
2939 prevent crashes if sys lacks an argv attribute (it happens with
2937 embedded interpreters which build a bare-bones sys module).
2940 embedded interpreters which build a bare-bones sys module).
2938 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2941 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2939
2942
2940 2003-09-24 Fernando Perez <fperez@colorado.edu>
2943 2003-09-24 Fernando Perez <fperez@colorado.edu>
2941
2944
2942 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2945 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2943 to protect against poorly written user objects where __getattr__
2946 to protect against poorly written user objects where __getattr__
2944 raises exceptions other than AttributeError. Thanks to a bug
2947 raises exceptions other than AttributeError. Thanks to a bug
2945 report by Oliver Sander <osander-AT-gmx.de>.
2948 report by Oliver Sander <osander-AT-gmx.de>.
2946
2949
2947 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2950 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2948 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2951 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2949
2952
2950 2003-09-09 Fernando Perez <fperez@colorado.edu>
2953 2003-09-09 Fernando Perez <fperez@colorado.edu>
2951
2954
2952 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2955 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2953 unpacking a list whith a callable as first element would
2956 unpacking a list whith a callable as first element would
2954 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2957 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2955 Collins.
2958 Collins.
2956
2959
2957 2003-08-25 *** Released version 0.5.0
2960 2003-08-25 *** Released version 0.5.0
2958
2961
2959 2003-08-22 Fernando Perez <fperez@colorado.edu>
2962 2003-08-22 Fernando Perez <fperez@colorado.edu>
2960
2963
2961 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2964 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2962 improperly defined user exceptions. Thanks to feedback from Mark
2965 improperly defined user exceptions. Thanks to feedback from Mark
2963 Russell <mrussell-AT-verio.net>.
2966 Russell <mrussell-AT-verio.net>.
2964
2967
2965 2003-08-20 Fernando Perez <fperez@colorado.edu>
2968 2003-08-20 Fernando Perez <fperez@colorado.edu>
2966
2969
2967 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2970 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2968 printing so that it would print multi-line string forms starting
2971 printing so that it would print multi-line string forms starting
2969 with a new line. This way the formatting is better respected for
2972 with a new line. This way the formatting is better respected for
2970 objects which work hard to make nice string forms.
2973 objects which work hard to make nice string forms.
2971
2974
2972 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2975 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2973 autocall would overtake data access for objects with both
2976 autocall would overtake data access for objects with both
2974 __getitem__ and __call__.
2977 __getitem__ and __call__.
2975
2978
2976 2003-08-19 *** Released version 0.5.0-rc1
2979 2003-08-19 *** Released version 0.5.0-rc1
2977
2980
2978 2003-08-19 Fernando Perez <fperez@colorado.edu>
2981 2003-08-19 Fernando Perez <fperez@colorado.edu>
2979
2982
2980 * IPython/deep_reload.py (load_tail): single tiny change here
2983 * IPython/deep_reload.py (load_tail): single tiny change here
2981 seems to fix the long-standing bug of dreload() failing to work
2984 seems to fix the long-standing bug of dreload() failing to work
2982 for dotted names. But this module is pretty tricky, so I may have
2985 for dotted names. But this module is pretty tricky, so I may have
2983 missed some subtlety. Needs more testing!.
2986 missed some subtlety. Needs more testing!.
2984
2987
2985 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2988 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2986 exceptions which have badly implemented __str__ methods.
2989 exceptions which have badly implemented __str__ methods.
2987 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2990 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2988 which I've been getting reports about from Python 2.3 users. I
2991 which I've been getting reports about from Python 2.3 users. I
2989 wish I had a simple test case to reproduce the problem, so I could
2992 wish I had a simple test case to reproduce the problem, so I could
2990 either write a cleaner workaround or file a bug report if
2993 either write a cleaner workaround or file a bug report if
2991 necessary.
2994 necessary.
2992
2995
2993 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2996 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2994 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2997 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2995 a bug report by Tjabo Kloppenburg.
2998 a bug report by Tjabo Kloppenburg.
2996
2999
2997 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3000 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2998 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3001 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2999 seems rather unstable. Thanks to a bug report by Tjabo
3002 seems rather unstable. Thanks to a bug report by Tjabo
3000 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3003 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3001
3004
3002 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3005 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3003 this out soon because of the critical fixes in the inner loop for
3006 this out soon because of the critical fixes in the inner loop for
3004 generators.
3007 generators.
3005
3008
3006 * IPython/Magic.py (Magic.getargspec): removed. This (and
3009 * IPython/Magic.py (Magic.getargspec): removed. This (and
3007 _get_def) have been obsoleted by OInspect for a long time, I
3010 _get_def) have been obsoleted by OInspect for a long time, I
3008 hadn't noticed that they were dead code.
3011 hadn't noticed that they were dead code.
3009 (Magic._ofind): restored _ofind functionality for a few literals
3012 (Magic._ofind): restored _ofind functionality for a few literals
3010 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3013 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3011 for things like "hello".capitalize?, since that would require a
3014 for things like "hello".capitalize?, since that would require a
3012 potentially dangerous eval() again.
3015 potentially dangerous eval() again.
3013
3016
3014 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3017 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3015 logic a bit more to clean up the escapes handling and minimize the
3018 logic a bit more to clean up the escapes handling and minimize the
3016 use of _ofind to only necessary cases. The interactive 'feel' of
3019 use of _ofind to only necessary cases. The interactive 'feel' of
3017 IPython should have improved quite a bit with the changes in
3020 IPython should have improved quite a bit with the changes in
3018 _prefilter and _ofind (besides being far safer than before).
3021 _prefilter and _ofind (besides being far safer than before).
3019
3022
3020 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3023 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3021 obscure, never reported). Edit would fail to find the object to
3024 obscure, never reported). Edit would fail to find the object to
3022 edit under some circumstances.
3025 edit under some circumstances.
3023 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3026 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3024 which were causing double-calling of generators. Those eval calls
3027 which were causing double-calling of generators. Those eval calls
3025 were _very_ dangerous, since code with side effects could be
3028 were _very_ dangerous, since code with side effects could be
3026 triggered. As they say, 'eval is evil'... These were the
3029 triggered. As they say, 'eval is evil'... These were the
3027 nastiest evals in IPython. Besides, _ofind is now far simpler,
3030 nastiest evals in IPython. Besides, _ofind is now far simpler,
3028 and it should also be quite a bit faster. Its use of inspect is
3031 and it should also be quite a bit faster. Its use of inspect is
3029 also safer, so perhaps some of the inspect-related crashes I've
3032 also safer, so perhaps some of the inspect-related crashes I've
3030 seen lately with Python 2.3 might be taken care of. That will
3033 seen lately with Python 2.3 might be taken care of. That will
3031 need more testing.
3034 need more testing.
3032
3035
3033 2003-08-17 Fernando Perez <fperez@colorado.edu>
3036 2003-08-17 Fernando Perez <fperez@colorado.edu>
3034
3037
3035 * IPython/iplib.py (InteractiveShell._prefilter): significant
3038 * IPython/iplib.py (InteractiveShell._prefilter): significant
3036 simplifications to the logic for handling user escapes. Faster
3039 simplifications to the logic for handling user escapes. Faster
3037 and simpler code.
3040 and simpler code.
3038
3041
3039 2003-08-14 Fernando Perez <fperez@colorado.edu>
3042 2003-08-14 Fernando Perez <fperez@colorado.edu>
3040
3043
3041 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3044 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3042 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3045 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3043 but it should be quite a bit faster. And the recursive version
3046 but it should be quite a bit faster. And the recursive version
3044 generated O(log N) intermediate storage for all rank>1 arrays,
3047 generated O(log N) intermediate storage for all rank>1 arrays,
3045 even if they were contiguous.
3048 even if they were contiguous.
3046 (l1norm): Added this function.
3049 (l1norm): Added this function.
3047 (norm): Added this function for arbitrary norms (including
3050 (norm): Added this function for arbitrary norms (including
3048 l-infinity). l1 and l2 are still special cases for convenience
3051 l-infinity). l1 and l2 are still special cases for convenience
3049 and speed.
3052 and speed.
3050
3053
3051 2003-08-03 Fernando Perez <fperez@colorado.edu>
3054 2003-08-03 Fernando Perez <fperez@colorado.edu>
3052
3055
3053 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3056 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3054 exceptions, which now raise PendingDeprecationWarnings in Python
3057 exceptions, which now raise PendingDeprecationWarnings in Python
3055 2.3. There were some in Magic and some in Gnuplot2.
3058 2.3. There were some in Magic and some in Gnuplot2.
3056
3059
3057 2003-06-30 Fernando Perez <fperez@colorado.edu>
3060 2003-06-30 Fernando Perez <fperez@colorado.edu>
3058
3061
3059 * IPython/genutils.py (page): modified to call curses only for
3062 * IPython/genutils.py (page): modified to call curses only for
3060 terminals where TERM=='xterm'. After problems under many other
3063 terminals where TERM=='xterm'. After problems under many other
3061 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3064 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3062
3065
3063 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3066 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3064 would be triggered when readline was absent. This was just an old
3067 would be triggered when readline was absent. This was just an old
3065 debugging statement I'd forgotten to take out.
3068 debugging statement I'd forgotten to take out.
3066
3069
3067 2003-06-20 Fernando Perez <fperez@colorado.edu>
3070 2003-06-20 Fernando Perez <fperez@colorado.edu>
3068
3071
3069 * IPython/genutils.py (clock): modified to return only user time
3072 * IPython/genutils.py (clock): modified to return only user time
3070 (not counting system time), after a discussion on scipy. While
3073 (not counting system time), after a discussion on scipy. While
3071 system time may be a useful quantity occasionally, it may much
3074 system time may be a useful quantity occasionally, it may much
3072 more easily be skewed by occasional swapping or other similar
3075 more easily be skewed by occasional swapping or other similar
3073 activity.
3076 activity.
3074
3077
3075 2003-06-05 Fernando Perez <fperez@colorado.edu>
3078 2003-06-05 Fernando Perez <fperez@colorado.edu>
3076
3079
3077 * IPython/numutils.py (identity): new function, for building
3080 * IPython/numutils.py (identity): new function, for building
3078 arbitrary rank Kronecker deltas (mostly backwards compatible with
3081 arbitrary rank Kronecker deltas (mostly backwards compatible with
3079 Numeric.identity)
3082 Numeric.identity)
3080
3083
3081 2003-06-03 Fernando Perez <fperez@colorado.edu>
3084 2003-06-03 Fernando Perez <fperez@colorado.edu>
3082
3085
3083 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3086 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3084 arguments passed to magics with spaces, to allow trailing '\' to
3087 arguments passed to magics with spaces, to allow trailing '\' to
3085 work normally (mainly for Windows users).
3088 work normally (mainly for Windows users).
3086
3089
3087 2003-05-29 Fernando Perez <fperez@colorado.edu>
3090 2003-05-29 Fernando Perez <fperez@colorado.edu>
3088
3091
3089 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3092 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3090 instead of pydoc.help. This fixes a bizarre behavior where
3093 instead of pydoc.help. This fixes a bizarre behavior where
3091 printing '%s' % locals() would trigger the help system. Now
3094 printing '%s' % locals() would trigger the help system. Now
3092 ipython behaves like normal python does.
3095 ipython behaves like normal python does.
3093
3096
3094 Note that if one does 'from pydoc import help', the bizarre
3097 Note that if one does 'from pydoc import help', the bizarre
3095 behavior returns, but this will also happen in normal python, so
3098 behavior returns, but this will also happen in normal python, so
3096 it's not an ipython bug anymore (it has to do with how pydoc.help
3099 it's not an ipython bug anymore (it has to do with how pydoc.help
3097 is implemented).
3100 is implemented).
3098
3101
3099 2003-05-22 Fernando Perez <fperez@colorado.edu>
3102 2003-05-22 Fernando Perez <fperez@colorado.edu>
3100
3103
3101 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3104 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3102 return [] instead of None when nothing matches, also match to end
3105 return [] instead of None when nothing matches, also match to end
3103 of line. Patch by Gary Bishop.
3106 of line. Patch by Gary Bishop.
3104
3107
3105 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3108 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3106 protection as before, for files passed on the command line. This
3109 protection as before, for files passed on the command line. This
3107 prevents the CrashHandler from kicking in if user files call into
3110 prevents the CrashHandler from kicking in if user files call into
3108 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3111 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3109 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3112 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3110
3113
3111 2003-05-20 *** Released version 0.4.0
3114 2003-05-20 *** Released version 0.4.0
3112
3115
3113 2003-05-20 Fernando Perez <fperez@colorado.edu>
3116 2003-05-20 Fernando Perez <fperez@colorado.edu>
3114
3117
3115 * setup.py: added support for manpages. It's a bit hackish b/c of
3118 * setup.py: added support for manpages. It's a bit hackish b/c of
3116 a bug in the way the bdist_rpm distutils target handles gzipped
3119 a bug in the way the bdist_rpm distutils target handles gzipped
3117 manpages, but it works. After a patch by Jack.
3120 manpages, but it works. After a patch by Jack.
3118
3121
3119 2003-05-19 Fernando Perez <fperez@colorado.edu>
3122 2003-05-19 Fernando Perez <fperez@colorado.edu>
3120
3123
3121 * IPython/numutils.py: added a mockup of the kinds module, since
3124 * IPython/numutils.py: added a mockup of the kinds module, since
3122 it was recently removed from Numeric. This way, numutils will
3125 it was recently removed from Numeric. This way, numutils will
3123 work for all users even if they are missing kinds.
3126 work for all users even if they are missing kinds.
3124
3127
3125 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3128 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3126 failure, which can occur with SWIG-wrapped extensions. After a
3129 failure, which can occur with SWIG-wrapped extensions. After a
3127 crash report from Prabhu.
3130 crash report from Prabhu.
3128
3131
3129 2003-05-16 Fernando Perez <fperez@colorado.edu>
3132 2003-05-16 Fernando Perez <fperez@colorado.edu>
3130
3133
3131 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3134 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3132 protect ipython from user code which may call directly
3135 protect ipython from user code which may call directly
3133 sys.excepthook (this looks like an ipython crash to the user, even
3136 sys.excepthook (this looks like an ipython crash to the user, even
3134 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3137 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3135 This is especially important to help users of WxWindows, but may
3138 This is especially important to help users of WxWindows, but may
3136 also be useful in other cases.
3139 also be useful in other cases.
3137
3140
3138 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3141 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3139 an optional tb_offset to be specified, and to preserve exception
3142 an optional tb_offset to be specified, and to preserve exception
3140 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3143 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3141
3144
3142 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3145 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3143
3146
3144 2003-05-15 Fernando Perez <fperez@colorado.edu>
3147 2003-05-15 Fernando Perez <fperez@colorado.edu>
3145
3148
3146 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3149 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3147 installing for a new user under Windows.
3150 installing for a new user under Windows.
3148
3151
3149 2003-05-12 Fernando Perez <fperez@colorado.edu>
3152 2003-05-12 Fernando Perez <fperez@colorado.edu>
3150
3153
3151 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3154 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3152 handler for Emacs comint-based lines. Currently it doesn't do
3155 handler for Emacs comint-based lines. Currently it doesn't do
3153 much (but importantly, it doesn't update the history cache). In
3156 much (but importantly, it doesn't update the history cache). In
3154 the future it may be expanded if Alex needs more functionality
3157 the future it may be expanded if Alex needs more functionality
3155 there.
3158 there.
3156
3159
3157 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3160 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3158 info to crash reports.
3161 info to crash reports.
3159
3162
3160 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3163 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3161 just like Python's -c. Also fixed crash with invalid -color
3164 just like Python's -c. Also fixed crash with invalid -color
3162 option value at startup. Thanks to Will French
3165 option value at startup. Thanks to Will French
3163 <wfrench-AT-bestweb.net> for the bug report.
3166 <wfrench-AT-bestweb.net> for the bug report.
3164
3167
3165 2003-05-09 Fernando Perez <fperez@colorado.edu>
3168 2003-05-09 Fernando Perez <fperez@colorado.edu>
3166
3169
3167 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3170 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3168 to EvalDict (it's a mapping, after all) and simplified its code
3171 to EvalDict (it's a mapping, after all) and simplified its code
3169 quite a bit, after a nice discussion on c.l.py where Gustavo
3172 quite a bit, after a nice discussion on c.l.py where Gustavo
3170 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3173 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3171
3174
3172 2003-04-30 Fernando Perez <fperez@colorado.edu>
3175 2003-04-30 Fernando Perez <fperez@colorado.edu>
3173
3176
3174 * IPython/genutils.py (timings_out): modified it to reduce its
3177 * IPython/genutils.py (timings_out): modified it to reduce its
3175 overhead in the common reps==1 case.
3178 overhead in the common reps==1 case.
3176
3179
3177 2003-04-29 Fernando Perez <fperez@colorado.edu>
3180 2003-04-29 Fernando Perez <fperez@colorado.edu>
3178
3181
3179 * IPython/genutils.py (timings_out): Modified to use the resource
3182 * IPython/genutils.py (timings_out): Modified to use the resource
3180 module, which avoids the wraparound problems of time.clock().
3183 module, which avoids the wraparound problems of time.clock().
3181
3184
3182 2003-04-17 *** Released version 0.2.15pre4
3185 2003-04-17 *** Released version 0.2.15pre4
3183
3186
3184 2003-04-17 Fernando Perez <fperez@colorado.edu>
3187 2003-04-17 Fernando Perez <fperez@colorado.edu>
3185
3188
3186 * setup.py (scriptfiles): Split windows-specific stuff over to a
3189 * setup.py (scriptfiles): Split windows-specific stuff over to a
3187 separate file, in an attempt to have a Windows GUI installer.
3190 separate file, in an attempt to have a Windows GUI installer.
3188 That didn't work, but part of the groundwork is done.
3191 That didn't work, but part of the groundwork is done.
3189
3192
3190 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3193 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3191 indent/unindent with 4 spaces. Particularly useful in combination
3194 indent/unindent with 4 spaces. Particularly useful in combination
3192 with the new auto-indent option.
3195 with the new auto-indent option.
3193
3196
3194 2003-04-16 Fernando Perez <fperez@colorado.edu>
3197 2003-04-16 Fernando Perez <fperez@colorado.edu>
3195
3198
3196 * IPython/Magic.py: various replacements of self.rc for
3199 * IPython/Magic.py: various replacements of self.rc for
3197 self.shell.rc. A lot more remains to be done to fully disentangle
3200 self.shell.rc. A lot more remains to be done to fully disentangle
3198 this class from the main Shell class.
3201 this class from the main Shell class.
3199
3202
3200 * IPython/GnuplotRuntime.py: added checks for mouse support so
3203 * IPython/GnuplotRuntime.py: added checks for mouse support so
3201 that we don't try to enable it if the current gnuplot doesn't
3204 that we don't try to enable it if the current gnuplot doesn't
3202 really support it. Also added checks so that we don't try to
3205 really support it. Also added checks so that we don't try to
3203 enable persist under Windows (where Gnuplot doesn't recognize the
3206 enable persist under Windows (where Gnuplot doesn't recognize the
3204 option).
3207 option).
3205
3208
3206 * IPython/iplib.py (InteractiveShell.interact): Added optional
3209 * IPython/iplib.py (InteractiveShell.interact): Added optional
3207 auto-indenting code, after a patch by King C. Shu
3210 auto-indenting code, after a patch by King C. Shu
3208 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3211 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3209 get along well with pasting indented code. If I ever figure out
3212 get along well with pasting indented code. If I ever figure out
3210 how to make that part go well, it will become on by default.
3213 how to make that part go well, it will become on by default.
3211
3214
3212 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3215 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3213 crash ipython if there was an unmatched '%' in the user's prompt
3216 crash ipython if there was an unmatched '%' in the user's prompt
3214 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3217 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3215
3218
3216 * IPython/iplib.py (InteractiveShell.interact): removed the
3219 * IPython/iplib.py (InteractiveShell.interact): removed the
3217 ability to ask the user whether he wants to crash or not at the
3220 ability to ask the user whether he wants to crash or not at the
3218 'last line' exception handler. Calling functions at that point
3221 'last line' exception handler. Calling functions at that point
3219 changes the stack, and the error reports would have incorrect
3222 changes the stack, and the error reports would have incorrect
3220 tracebacks.
3223 tracebacks.
3221
3224
3222 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3225 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3223 pass through a peger a pretty-printed form of any object. After a
3226 pass through a peger a pretty-printed form of any object. After a
3224 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3227 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3225
3228
3226 2003-04-14 Fernando Perez <fperez@colorado.edu>
3229 2003-04-14 Fernando Perez <fperez@colorado.edu>
3227
3230
3228 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3231 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3229 all files in ~ would be modified at first install (instead of
3232 all files in ~ would be modified at first install (instead of
3230 ~/.ipython). This could be potentially disastrous, as the
3233 ~/.ipython). This could be potentially disastrous, as the
3231 modification (make line-endings native) could damage binary files.
3234 modification (make line-endings native) could damage binary files.
3232
3235
3233 2003-04-10 Fernando Perez <fperez@colorado.edu>
3236 2003-04-10 Fernando Perez <fperez@colorado.edu>
3234
3237
3235 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3238 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3236 handle only lines which are invalid python. This now means that
3239 handle only lines which are invalid python. This now means that
3237 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3240 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3238 for the bug report.
3241 for the bug report.
3239
3242
3240 2003-04-01 Fernando Perez <fperez@colorado.edu>
3243 2003-04-01 Fernando Perez <fperez@colorado.edu>
3241
3244
3242 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3245 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3243 where failing to set sys.last_traceback would crash pdb.pm().
3246 where failing to set sys.last_traceback would crash pdb.pm().
3244 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3247 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3245 report.
3248 report.
3246
3249
3247 2003-03-25 Fernando Perez <fperez@colorado.edu>
3250 2003-03-25 Fernando Perez <fperez@colorado.edu>
3248
3251
3249 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3252 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3250 before printing it (it had a lot of spurious blank lines at the
3253 before printing it (it had a lot of spurious blank lines at the
3251 end).
3254 end).
3252
3255
3253 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3256 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3254 output would be sent 21 times! Obviously people don't use this
3257 output would be sent 21 times! Obviously people don't use this
3255 too often, or I would have heard about it.
3258 too often, or I would have heard about it.
3256
3259
3257 2003-03-24 Fernando Perez <fperez@colorado.edu>
3260 2003-03-24 Fernando Perez <fperez@colorado.edu>
3258
3261
3259 * setup.py (scriptfiles): renamed the data_files parameter from
3262 * setup.py (scriptfiles): renamed the data_files parameter from
3260 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3263 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3261 for the patch.
3264 for the patch.
3262
3265
3263 2003-03-20 Fernando Perez <fperez@colorado.edu>
3266 2003-03-20 Fernando Perez <fperez@colorado.edu>
3264
3267
3265 * IPython/genutils.py (error): added error() and fatal()
3268 * IPython/genutils.py (error): added error() and fatal()
3266 functions.
3269 functions.
3267
3270
3268 2003-03-18 *** Released version 0.2.15pre3
3271 2003-03-18 *** Released version 0.2.15pre3
3269
3272
3270 2003-03-18 Fernando Perez <fperez@colorado.edu>
3273 2003-03-18 Fernando Perez <fperez@colorado.edu>
3271
3274
3272 * setupext/install_data_ext.py
3275 * setupext/install_data_ext.py
3273 (install_data_ext.initialize_options): Class contributed by Jack
3276 (install_data_ext.initialize_options): Class contributed by Jack
3274 Moffit for fixing the old distutils hack. He is sending this to
3277 Moffit for fixing the old distutils hack. He is sending this to
3275 the distutils folks so in the future we may not need it as a
3278 the distutils folks so in the future we may not need it as a
3276 private fix.
3279 private fix.
3277
3280
3278 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3281 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3279 changes for Debian packaging. See his patch for full details.
3282 changes for Debian packaging. See his patch for full details.
3280 The old distutils hack of making the ipythonrc* files carry a
3283 The old distutils hack of making the ipythonrc* files carry a
3281 bogus .py extension is gone, at last. Examples were moved to a
3284 bogus .py extension is gone, at last. Examples were moved to a
3282 separate subdir under doc/, and the separate executable scripts
3285 separate subdir under doc/, and the separate executable scripts
3283 now live in their own directory. Overall a great cleanup. The
3286 now live in their own directory. Overall a great cleanup. The
3284 manual was updated to use the new files, and setup.py has been
3287 manual was updated to use the new files, and setup.py has been
3285 fixed for this setup.
3288 fixed for this setup.
3286
3289
3287 * IPython/PyColorize.py (Parser.usage): made non-executable and
3290 * IPython/PyColorize.py (Parser.usage): made non-executable and
3288 created a pycolor wrapper around it to be included as a script.
3291 created a pycolor wrapper around it to be included as a script.
3289
3292
3290 2003-03-12 *** Released version 0.2.15pre2
3293 2003-03-12 *** Released version 0.2.15pre2
3291
3294
3292 2003-03-12 Fernando Perez <fperez@colorado.edu>
3295 2003-03-12 Fernando Perez <fperez@colorado.edu>
3293
3296
3294 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3297 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3295 long-standing problem with garbage characters in some terminals.
3298 long-standing problem with garbage characters in some terminals.
3296 The issue was really that the \001 and \002 escapes must _only_ be
3299 The issue was really that the \001 and \002 escapes must _only_ be
3297 passed to input prompts (which call readline), but _never_ to
3300 passed to input prompts (which call readline), but _never_ to
3298 normal text to be printed on screen. I changed ColorANSI to have
3301 normal text to be printed on screen. I changed ColorANSI to have
3299 two classes: TermColors and InputTermColors, each with the
3302 two classes: TermColors and InputTermColors, each with the
3300 appropriate escapes for input prompts or normal text. The code in
3303 appropriate escapes for input prompts or normal text. The code in
3301 Prompts.py got slightly more complicated, but this very old and
3304 Prompts.py got slightly more complicated, but this very old and
3302 annoying bug is finally fixed.
3305 annoying bug is finally fixed.
3303
3306
3304 All the credit for nailing down the real origin of this problem
3307 All the credit for nailing down the real origin of this problem
3305 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3308 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3306 *Many* thanks to him for spending quite a bit of effort on this.
3309 *Many* thanks to him for spending quite a bit of effort on this.
3307
3310
3308 2003-03-05 *** Released version 0.2.15pre1
3311 2003-03-05 *** Released version 0.2.15pre1
3309
3312
3310 2003-03-03 Fernando Perez <fperez@colorado.edu>
3313 2003-03-03 Fernando Perez <fperez@colorado.edu>
3311
3314
3312 * IPython/FakeModule.py: Moved the former _FakeModule to a
3315 * IPython/FakeModule.py: Moved the former _FakeModule to a
3313 separate file, because it's also needed by Magic (to fix a similar
3316 separate file, because it's also needed by Magic (to fix a similar
3314 pickle-related issue in @run).
3317 pickle-related issue in @run).
3315
3318
3316 2003-03-02 Fernando Perez <fperez@colorado.edu>
3319 2003-03-02 Fernando Perez <fperez@colorado.edu>
3317
3320
3318 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3321 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3319 the autocall option at runtime.
3322 the autocall option at runtime.
3320 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3323 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3321 across Magic.py to start separating Magic from InteractiveShell.
3324 across Magic.py to start separating Magic from InteractiveShell.
3322 (Magic._ofind): Fixed to return proper namespace for dotted
3325 (Magic._ofind): Fixed to return proper namespace for dotted
3323 names. Before, a dotted name would always return 'not currently
3326 names. Before, a dotted name would always return 'not currently
3324 defined', because it would find the 'parent'. s.x would be found,
3327 defined', because it would find the 'parent'. s.x would be found,
3325 but since 'x' isn't defined by itself, it would get confused.
3328 but since 'x' isn't defined by itself, it would get confused.
3326 (Magic.magic_run): Fixed pickling problems reported by Ralf
3329 (Magic.magic_run): Fixed pickling problems reported by Ralf
3327 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3330 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3328 that I'd used when Mike Heeter reported similar issues at the
3331 that I'd used when Mike Heeter reported similar issues at the
3329 top-level, but now for @run. It boils down to injecting the
3332 top-level, but now for @run. It boils down to injecting the
3330 namespace where code is being executed with something that looks
3333 namespace where code is being executed with something that looks
3331 enough like a module to fool pickle.dump(). Since a pickle stores
3334 enough like a module to fool pickle.dump(). Since a pickle stores
3332 a named reference to the importing module, we need this for
3335 a named reference to the importing module, we need this for
3333 pickles to save something sensible.
3336 pickles to save something sensible.
3334
3337
3335 * IPython/ipmaker.py (make_IPython): added an autocall option.
3338 * IPython/ipmaker.py (make_IPython): added an autocall option.
3336
3339
3337 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3340 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3338 the auto-eval code. Now autocalling is an option, and the code is
3341 the auto-eval code. Now autocalling is an option, and the code is
3339 also vastly safer. There is no more eval() involved at all.
3342 also vastly safer. There is no more eval() involved at all.
3340
3343
3341 2003-03-01 Fernando Perez <fperez@colorado.edu>
3344 2003-03-01 Fernando Perez <fperez@colorado.edu>
3342
3345
3343 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3346 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3344 dict with named keys instead of a tuple.
3347 dict with named keys instead of a tuple.
3345
3348
3346 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3349 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3347
3350
3348 * setup.py (make_shortcut): Fixed message about directories
3351 * setup.py (make_shortcut): Fixed message about directories
3349 created during Windows installation (the directories were ok, just
3352 created during Windows installation (the directories were ok, just
3350 the printed message was misleading). Thanks to Chris Liechti
3353 the printed message was misleading). Thanks to Chris Liechti
3351 <cliechti-AT-gmx.net> for the heads up.
3354 <cliechti-AT-gmx.net> for the heads up.
3352
3355
3353 2003-02-21 Fernando Perez <fperez@colorado.edu>
3356 2003-02-21 Fernando Perez <fperez@colorado.edu>
3354
3357
3355 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3358 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3356 of ValueError exception when checking for auto-execution. This
3359 of ValueError exception when checking for auto-execution. This
3357 one is raised by things like Numeric arrays arr.flat when the
3360 one is raised by things like Numeric arrays arr.flat when the
3358 array is non-contiguous.
3361 array is non-contiguous.
3359
3362
3360 2003-01-31 Fernando Perez <fperez@colorado.edu>
3363 2003-01-31 Fernando Perez <fperez@colorado.edu>
3361
3364
3362 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3365 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3363 not return any value at all (even though the command would get
3366 not return any value at all (even though the command would get
3364 executed).
3367 executed).
3365 (xsys): Flush stdout right after printing the command to ensure
3368 (xsys): Flush stdout right after printing the command to ensure
3366 proper ordering of commands and command output in the total
3369 proper ordering of commands and command output in the total
3367 output.
3370 output.
3368 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3371 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3369 system/getoutput as defaults. The old ones are kept for
3372 system/getoutput as defaults. The old ones are kept for
3370 compatibility reasons, so no code which uses this library needs
3373 compatibility reasons, so no code which uses this library needs
3371 changing.
3374 changing.
3372
3375
3373 2003-01-27 *** Released version 0.2.14
3376 2003-01-27 *** Released version 0.2.14
3374
3377
3375 2003-01-25 Fernando Perez <fperez@colorado.edu>
3378 2003-01-25 Fernando Perez <fperez@colorado.edu>
3376
3379
3377 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3380 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3378 functions defined in previous edit sessions could not be re-edited
3381 functions defined in previous edit sessions could not be re-edited
3379 (because the temp files were immediately removed). Now temp files
3382 (because the temp files were immediately removed). Now temp files
3380 are removed only at IPython's exit.
3383 are removed only at IPython's exit.
3381 (Magic.magic_run): Improved @run to perform shell-like expansions
3384 (Magic.magic_run): Improved @run to perform shell-like expansions
3382 on its arguments (~users and $VARS). With this, @run becomes more
3385 on its arguments (~users and $VARS). With this, @run becomes more
3383 like a normal command-line.
3386 like a normal command-line.
3384
3387
3385 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3388 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3386 bugs related to embedding and cleaned up that code. A fairly
3389 bugs related to embedding and cleaned up that code. A fairly
3387 important one was the impossibility to access the global namespace
3390 important one was the impossibility to access the global namespace
3388 through the embedded IPython (only local variables were visible).
3391 through the embedded IPython (only local variables were visible).
3389
3392
3390 2003-01-14 Fernando Perez <fperez@colorado.edu>
3393 2003-01-14 Fernando Perez <fperez@colorado.edu>
3391
3394
3392 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3395 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3393 auto-calling to be a bit more conservative. Now it doesn't get
3396 auto-calling to be a bit more conservative. Now it doesn't get
3394 triggered if any of '!=()<>' are in the rest of the input line, to
3397 triggered if any of '!=()<>' are in the rest of the input line, to
3395 allow comparing callables. Thanks to Alex for the heads up.
3398 allow comparing callables. Thanks to Alex for the heads up.
3396
3399
3397 2003-01-07 Fernando Perez <fperez@colorado.edu>
3400 2003-01-07 Fernando Perez <fperez@colorado.edu>
3398
3401
3399 * IPython/genutils.py (page): fixed estimation of the number of
3402 * IPython/genutils.py (page): fixed estimation of the number of
3400 lines in a string to be paged to simply count newlines. This
3403 lines in a string to be paged to simply count newlines. This
3401 prevents over-guessing due to embedded escape sequences. A better
3404 prevents over-guessing due to embedded escape sequences. A better
3402 long-term solution would involve stripping out the control chars
3405 long-term solution would involve stripping out the control chars
3403 for the count, but it's potentially so expensive I just don't
3406 for the count, but it's potentially so expensive I just don't
3404 think it's worth doing.
3407 think it's worth doing.
3405
3408
3406 2002-12-19 *** Released version 0.2.14pre50
3409 2002-12-19 *** Released version 0.2.14pre50
3407
3410
3408 2002-12-19 Fernando Perez <fperez@colorado.edu>
3411 2002-12-19 Fernando Perez <fperez@colorado.edu>
3409
3412
3410 * tools/release (version): Changed release scripts to inform
3413 * tools/release (version): Changed release scripts to inform
3411 Andrea and build a NEWS file with a list of recent changes.
3414 Andrea and build a NEWS file with a list of recent changes.
3412
3415
3413 * IPython/ColorANSI.py (__all__): changed terminal detection
3416 * IPython/ColorANSI.py (__all__): changed terminal detection
3414 code. Seems to work better for xterms without breaking
3417 code. Seems to work better for xterms without breaking
3415 konsole. Will need more testing to determine if WinXP and Mac OSX
3418 konsole. Will need more testing to determine if WinXP and Mac OSX
3416 also work ok.
3419 also work ok.
3417
3420
3418 2002-12-18 *** Released version 0.2.14pre49
3421 2002-12-18 *** Released version 0.2.14pre49
3419
3422
3420 2002-12-18 Fernando Perez <fperez@colorado.edu>
3423 2002-12-18 Fernando Perez <fperez@colorado.edu>
3421
3424
3422 * Docs: added new info about Mac OSX, from Andrea.
3425 * Docs: added new info about Mac OSX, from Andrea.
3423
3426
3424 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3427 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3425 allow direct plotting of python strings whose format is the same
3428 allow direct plotting of python strings whose format is the same
3426 of gnuplot data files.
3429 of gnuplot data files.
3427
3430
3428 2002-12-16 Fernando Perez <fperez@colorado.edu>
3431 2002-12-16 Fernando Perez <fperez@colorado.edu>
3429
3432
3430 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3433 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3431 value of exit question to be acknowledged.
3434 value of exit question to be acknowledged.
3432
3435
3433 2002-12-03 Fernando Perez <fperez@colorado.edu>
3436 2002-12-03 Fernando Perez <fperez@colorado.edu>
3434
3437
3435 * IPython/ipmaker.py: removed generators, which had been added
3438 * IPython/ipmaker.py: removed generators, which had been added
3436 by mistake in an earlier debugging run. This was causing trouble
3439 by mistake in an earlier debugging run. This was causing trouble
3437 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3440 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3438 for pointing this out.
3441 for pointing this out.
3439
3442
3440 2002-11-17 Fernando Perez <fperez@colorado.edu>
3443 2002-11-17 Fernando Perez <fperez@colorado.edu>
3441
3444
3442 * Manual: updated the Gnuplot section.
3445 * Manual: updated the Gnuplot section.
3443
3446
3444 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3447 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3445 a much better split of what goes in Runtime and what goes in
3448 a much better split of what goes in Runtime and what goes in
3446 Interactive.
3449 Interactive.
3447
3450
3448 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3451 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3449 being imported from iplib.
3452 being imported from iplib.
3450
3453
3451 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3454 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3452 for command-passing. Now the global Gnuplot instance is called
3455 for command-passing. Now the global Gnuplot instance is called
3453 'gp' instead of 'g', which was really a far too fragile and
3456 'gp' instead of 'g', which was really a far too fragile and
3454 common name.
3457 common name.
3455
3458
3456 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3459 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3457 bounding boxes generated by Gnuplot for square plots.
3460 bounding boxes generated by Gnuplot for square plots.
3458
3461
3459 * IPython/genutils.py (popkey): new function added. I should
3462 * IPython/genutils.py (popkey): new function added. I should
3460 suggest this on c.l.py as a dict method, it seems useful.
3463 suggest this on c.l.py as a dict method, it seems useful.
3461
3464
3462 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3465 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3463 to transparently handle PostScript generation. MUCH better than
3466 to transparently handle PostScript generation. MUCH better than
3464 the previous plot_eps/replot_eps (which I removed now). The code
3467 the previous plot_eps/replot_eps (which I removed now). The code
3465 is also fairly clean and well documented now (including
3468 is also fairly clean and well documented now (including
3466 docstrings).
3469 docstrings).
3467
3470
3468 2002-11-13 Fernando Perez <fperez@colorado.edu>
3471 2002-11-13 Fernando Perez <fperez@colorado.edu>
3469
3472
3470 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3473 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3471 (inconsistent with options).
3474 (inconsistent with options).
3472
3475
3473 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3476 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3474 manually disabled, I don't know why. Fixed it.
3477 manually disabled, I don't know why. Fixed it.
3475 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3478 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3476 eps output.
3479 eps output.
3477
3480
3478 2002-11-12 Fernando Perez <fperez@colorado.edu>
3481 2002-11-12 Fernando Perez <fperez@colorado.edu>
3479
3482
3480 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3483 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3481 don't propagate up to caller. Fixes crash reported by François
3484 don't propagate up to caller. Fixes crash reported by François
3482 Pinard.
3485 Pinard.
3483
3486
3484 2002-11-09 Fernando Perez <fperez@colorado.edu>
3487 2002-11-09 Fernando Perez <fperez@colorado.edu>
3485
3488
3486 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3489 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3487 history file for new users.
3490 history file for new users.
3488 (make_IPython): fixed bug where initial install would leave the
3491 (make_IPython): fixed bug where initial install would leave the
3489 user running in the .ipython dir.
3492 user running in the .ipython dir.
3490 (make_IPython): fixed bug where config dir .ipython would be
3493 (make_IPython): fixed bug where config dir .ipython would be
3491 created regardless of the given -ipythondir option. Thanks to Cory
3494 created regardless of the given -ipythondir option. Thanks to Cory
3492 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3495 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3493
3496
3494 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3497 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3495 type confirmations. Will need to use it in all of IPython's code
3498 type confirmations. Will need to use it in all of IPython's code
3496 consistently.
3499 consistently.
3497
3500
3498 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3501 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3499 context to print 31 lines instead of the default 5. This will make
3502 context to print 31 lines instead of the default 5. This will make
3500 the crash reports extremely detailed in case the problem is in
3503 the crash reports extremely detailed in case the problem is in
3501 libraries I don't have access to.
3504 libraries I don't have access to.
3502
3505
3503 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3506 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3504 line of defense' code to still crash, but giving users fair
3507 line of defense' code to still crash, but giving users fair
3505 warning. I don't want internal errors to go unreported: if there's
3508 warning. I don't want internal errors to go unreported: if there's
3506 an internal problem, IPython should crash and generate a full
3509 an internal problem, IPython should crash and generate a full
3507 report.
3510 report.
3508
3511
3509 2002-11-08 Fernando Perez <fperez@colorado.edu>
3512 2002-11-08 Fernando Perez <fperez@colorado.edu>
3510
3513
3511 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3514 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3512 otherwise uncaught exceptions which can appear if people set
3515 otherwise uncaught exceptions which can appear if people set
3513 sys.stdout to something badly broken. Thanks to a crash report
3516 sys.stdout to something badly broken. Thanks to a crash report
3514 from henni-AT-mail.brainbot.com.
3517 from henni-AT-mail.brainbot.com.
3515
3518
3516 2002-11-04 Fernando Perez <fperez@colorado.edu>
3519 2002-11-04 Fernando Perez <fperez@colorado.edu>
3517
3520
3518 * IPython/iplib.py (InteractiveShell.interact): added
3521 * IPython/iplib.py (InteractiveShell.interact): added
3519 __IPYTHON__active to the builtins. It's a flag which goes on when
3522 __IPYTHON__active to the builtins. It's a flag which goes on when
3520 the interaction starts and goes off again when it stops. This
3523 the interaction starts and goes off again when it stops. This
3521 allows embedding code to detect being inside IPython. Before this
3524 allows embedding code to detect being inside IPython. Before this
3522 was done via __IPYTHON__, but that only shows that an IPython
3525 was done via __IPYTHON__, but that only shows that an IPython
3523 instance has been created.
3526 instance has been created.
3524
3527
3525 * IPython/Magic.py (Magic.magic_env): I realized that in a
3528 * IPython/Magic.py (Magic.magic_env): I realized that in a
3526 UserDict, instance.data holds the data as a normal dict. So I
3529 UserDict, instance.data holds the data as a normal dict. So I
3527 modified @env to return os.environ.data instead of rebuilding a
3530 modified @env to return os.environ.data instead of rebuilding a
3528 dict by hand.
3531 dict by hand.
3529
3532
3530 2002-11-02 Fernando Perez <fperez@colorado.edu>
3533 2002-11-02 Fernando Perez <fperez@colorado.edu>
3531
3534
3532 * IPython/genutils.py (warn): changed so that level 1 prints no
3535 * IPython/genutils.py (warn): changed so that level 1 prints no
3533 header. Level 2 is now the default (with 'WARNING' header, as
3536 header. Level 2 is now the default (with 'WARNING' header, as
3534 before). I think I tracked all places where changes were needed in
3537 before). I think I tracked all places where changes were needed in
3535 IPython, but outside code using the old level numbering may have
3538 IPython, but outside code using the old level numbering may have
3536 broken.
3539 broken.
3537
3540
3538 * IPython/iplib.py (InteractiveShell.runcode): added this to
3541 * IPython/iplib.py (InteractiveShell.runcode): added this to
3539 handle the tracebacks in SystemExit traps correctly. The previous
3542 handle the tracebacks in SystemExit traps correctly. The previous
3540 code (through interact) was printing more of the stack than
3543 code (through interact) was printing more of the stack than
3541 necessary, showing IPython internal code to the user.
3544 necessary, showing IPython internal code to the user.
3542
3545
3543 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3546 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3544 default. Now that the default at the confirmation prompt is yes,
3547 default. Now that the default at the confirmation prompt is yes,
3545 it's not so intrusive. François' argument that ipython sessions
3548 it's not so intrusive. François' argument that ipython sessions
3546 tend to be complex enough not to lose them from an accidental C-d,
3549 tend to be complex enough not to lose them from an accidental C-d,
3547 is a valid one.
3550 is a valid one.
3548
3551
3549 * IPython/iplib.py (InteractiveShell.interact): added a
3552 * IPython/iplib.py (InteractiveShell.interact): added a
3550 showtraceback() call to the SystemExit trap, and modified the exit
3553 showtraceback() call to the SystemExit trap, and modified the exit
3551 confirmation to have yes as the default.
3554 confirmation to have yes as the default.
3552
3555
3553 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3556 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3554 this file. It's been gone from the code for a long time, this was
3557 this file. It's been gone from the code for a long time, this was
3555 simply leftover junk.
3558 simply leftover junk.
3556
3559
3557 2002-11-01 Fernando Perez <fperez@colorado.edu>
3560 2002-11-01 Fernando Perez <fperez@colorado.edu>
3558
3561
3559 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3562 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3560 added. If set, IPython now traps EOF and asks for
3563 added. If set, IPython now traps EOF and asks for
3561 confirmation. After a request by François Pinard.
3564 confirmation. After a request by François Pinard.
3562
3565
3563 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3566 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3564 of @abort, and with a new (better) mechanism for handling the
3567 of @abort, and with a new (better) mechanism for handling the
3565 exceptions.
3568 exceptions.
3566
3569
3567 2002-10-27 Fernando Perez <fperez@colorado.edu>
3570 2002-10-27 Fernando Perez <fperez@colorado.edu>
3568
3571
3569 * IPython/usage.py (__doc__): updated the --help information and
3572 * IPython/usage.py (__doc__): updated the --help information and
3570 the ipythonrc file to indicate that -log generates
3573 the ipythonrc file to indicate that -log generates
3571 ./ipython.log. Also fixed the corresponding info in @logstart.
3574 ./ipython.log. Also fixed the corresponding info in @logstart.
3572 This and several other fixes in the manuals thanks to reports by
3575 This and several other fixes in the manuals thanks to reports by
3573 François Pinard <pinard-AT-iro.umontreal.ca>.
3576 François Pinard <pinard-AT-iro.umontreal.ca>.
3574
3577
3575 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3578 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3576 refer to @logstart (instead of @log, which doesn't exist).
3579 refer to @logstart (instead of @log, which doesn't exist).
3577
3580
3578 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3581 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3579 AttributeError crash. Thanks to Christopher Armstrong
3582 AttributeError crash. Thanks to Christopher Armstrong
3580 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3583 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3581 introduced recently (in 0.2.14pre37) with the fix to the eval
3584 introduced recently (in 0.2.14pre37) with the fix to the eval
3582 problem mentioned below.
3585 problem mentioned below.
3583
3586
3584 2002-10-17 Fernando Perez <fperez@colorado.edu>
3587 2002-10-17 Fernando Perez <fperez@colorado.edu>
3585
3588
3586 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3589 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3587 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3590 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3588
3591
3589 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3592 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3590 this function to fix a problem reported by Alex Schmolck. He saw
3593 this function to fix a problem reported by Alex Schmolck. He saw
3591 it with list comprehensions and generators, which were getting
3594 it with list comprehensions and generators, which were getting
3592 called twice. The real problem was an 'eval' call in testing for
3595 called twice. The real problem was an 'eval' call in testing for
3593 automagic which was evaluating the input line silently.
3596 automagic which was evaluating the input line silently.
3594
3597
3595 This is a potentially very nasty bug, if the input has side
3598 This is a potentially very nasty bug, if the input has side
3596 effects which must not be repeated. The code is much cleaner now,
3599 effects which must not be repeated. The code is much cleaner now,
3597 without any blanket 'except' left and with a regexp test for
3600 without any blanket 'except' left and with a regexp test for
3598 actual function names.
3601 actual function names.
3599
3602
3600 But an eval remains, which I'm not fully comfortable with. I just
3603 But an eval remains, which I'm not fully comfortable with. I just
3601 don't know how to find out if an expression could be a callable in
3604 don't know how to find out if an expression could be a callable in
3602 the user's namespace without doing an eval on the string. However
3605 the user's namespace without doing an eval on the string. However
3603 that string is now much more strictly checked so that no code
3606 that string is now much more strictly checked so that no code
3604 slips by, so the eval should only happen for things that can
3607 slips by, so the eval should only happen for things that can
3605 really be only function/method names.
3608 really be only function/method names.
3606
3609
3607 2002-10-15 Fernando Perez <fperez@colorado.edu>
3610 2002-10-15 Fernando Perez <fperez@colorado.edu>
3608
3611
3609 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3612 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3610 OSX information to main manual, removed README_Mac_OSX file from
3613 OSX information to main manual, removed README_Mac_OSX file from
3611 distribution. Also updated credits for recent additions.
3614 distribution. Also updated credits for recent additions.
3612
3615
3613 2002-10-10 Fernando Perez <fperez@colorado.edu>
3616 2002-10-10 Fernando Perez <fperez@colorado.edu>
3614
3617
3615 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3618 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3616 terminal-related issues. Many thanks to Andrea Riciputi
3619 terminal-related issues. Many thanks to Andrea Riciputi
3617 <andrea.riciputi-AT-libero.it> for writing it.
3620 <andrea.riciputi-AT-libero.it> for writing it.
3618
3621
3619 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3622 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3620 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3623 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3621
3624
3622 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3625 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3623 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3626 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3624 <syver-en-AT-online.no> who both submitted patches for this problem.
3627 <syver-en-AT-online.no> who both submitted patches for this problem.
3625
3628
3626 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3629 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3627 global embedding to make sure that things don't overwrite user
3630 global embedding to make sure that things don't overwrite user
3628 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3631 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3629
3632
3630 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3633 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3631 compatibility. Thanks to Hayden Callow
3634 compatibility. Thanks to Hayden Callow
3632 <h.callow-AT-elec.canterbury.ac.nz>
3635 <h.callow-AT-elec.canterbury.ac.nz>
3633
3636
3634 2002-10-04 Fernando Perez <fperez@colorado.edu>
3637 2002-10-04 Fernando Perez <fperez@colorado.edu>
3635
3638
3636 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3639 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3637 Gnuplot.File objects.
3640 Gnuplot.File objects.
3638
3641
3639 2002-07-23 Fernando Perez <fperez@colorado.edu>
3642 2002-07-23 Fernando Perez <fperez@colorado.edu>
3640
3643
3641 * IPython/genutils.py (timing): Added timings() and timing() for
3644 * IPython/genutils.py (timing): Added timings() and timing() for
3642 quick access to the most commonly needed data, the execution
3645 quick access to the most commonly needed data, the execution
3643 times. Old timing() renamed to timings_out().
3646 times. Old timing() renamed to timings_out().
3644
3647
3645 2002-07-18 Fernando Perez <fperez@colorado.edu>
3648 2002-07-18 Fernando Perez <fperez@colorado.edu>
3646
3649
3647 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3650 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3648 bug with nested instances disrupting the parent's tab completion.
3651 bug with nested instances disrupting the parent's tab completion.
3649
3652
3650 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3653 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3651 all_completions code to begin the emacs integration.
3654 all_completions code to begin the emacs integration.
3652
3655
3653 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3656 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3654 argument to allow titling individual arrays when plotting.
3657 argument to allow titling individual arrays when plotting.
3655
3658
3656 2002-07-15 Fernando Perez <fperez@colorado.edu>
3659 2002-07-15 Fernando Perez <fperez@colorado.edu>
3657
3660
3658 * setup.py (make_shortcut): changed to retrieve the value of
3661 * setup.py (make_shortcut): changed to retrieve the value of
3659 'Program Files' directory from the registry (this value changes in
3662 'Program Files' directory from the registry (this value changes in
3660 non-english versions of Windows). Thanks to Thomas Fanslau
3663 non-english versions of Windows). Thanks to Thomas Fanslau
3661 <tfanslau-AT-gmx.de> for the report.
3664 <tfanslau-AT-gmx.de> for the report.
3662
3665
3663 2002-07-10 Fernando Perez <fperez@colorado.edu>
3666 2002-07-10 Fernando Perez <fperez@colorado.edu>
3664
3667
3665 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3668 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3666 a bug in pdb, which crashes if a line with only whitespace is
3669 a bug in pdb, which crashes if a line with only whitespace is
3667 entered. Bug report submitted to sourceforge.
3670 entered. Bug report submitted to sourceforge.
3668
3671
3669 2002-07-09 Fernando Perez <fperez@colorado.edu>
3672 2002-07-09 Fernando Perez <fperez@colorado.edu>
3670
3673
3671 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3674 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3672 reporting exceptions (it's a bug in inspect.py, I just set a
3675 reporting exceptions (it's a bug in inspect.py, I just set a
3673 workaround).
3676 workaround).
3674
3677
3675 2002-07-08 Fernando Perez <fperez@colorado.edu>
3678 2002-07-08 Fernando Perez <fperez@colorado.edu>
3676
3679
3677 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3680 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3678 __IPYTHON__ in __builtins__ to show up in user_ns.
3681 __IPYTHON__ in __builtins__ to show up in user_ns.
3679
3682
3680 2002-07-03 Fernando Perez <fperez@colorado.edu>
3683 2002-07-03 Fernando Perez <fperez@colorado.edu>
3681
3684
3682 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3685 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3683 name from @gp_set_instance to @gp_set_default.
3686 name from @gp_set_instance to @gp_set_default.
3684
3687
3685 * IPython/ipmaker.py (make_IPython): default editor value set to
3688 * IPython/ipmaker.py (make_IPython): default editor value set to
3686 '0' (a string), to match the rc file. Otherwise will crash when
3689 '0' (a string), to match the rc file. Otherwise will crash when
3687 .strip() is called on it.
3690 .strip() is called on it.
3688
3691
3689
3692
3690 2002-06-28 Fernando Perez <fperez@colorado.edu>
3693 2002-06-28 Fernando Perez <fperez@colorado.edu>
3691
3694
3692 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3695 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3693 of files in current directory when a file is executed via
3696 of files in current directory when a file is executed via
3694 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3697 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3695
3698
3696 * setup.py (manfiles): fix for rpm builds, submitted by RA
3699 * setup.py (manfiles): fix for rpm builds, submitted by RA
3697 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3700 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3698
3701
3699 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3702 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3700 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3703 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3701 string!). A. Schmolck caught this one.
3704 string!). A. Schmolck caught this one.
3702
3705
3703 2002-06-27 Fernando Perez <fperez@colorado.edu>
3706 2002-06-27 Fernando Perez <fperez@colorado.edu>
3704
3707
3705 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3708 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3706 defined files at the cmd line. __name__ wasn't being set to
3709 defined files at the cmd line. __name__ wasn't being set to
3707 __main__.
3710 __main__.
3708
3711
3709 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3712 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3710 regular lists and tuples besides Numeric arrays.
3713 regular lists and tuples besides Numeric arrays.
3711
3714
3712 * IPython/Prompts.py (CachedOutput.__call__): Added output
3715 * IPython/Prompts.py (CachedOutput.__call__): Added output
3713 supression for input ending with ';'. Similar to Mathematica and
3716 supression for input ending with ';'. Similar to Mathematica and
3714 Matlab. The _* vars and Out[] list are still updated, just like
3717 Matlab. The _* vars and Out[] list are still updated, just like
3715 Mathematica behaves.
3718 Mathematica behaves.
3716
3719
3717 2002-06-25 Fernando Perez <fperez@colorado.edu>
3720 2002-06-25 Fernando Perez <fperez@colorado.edu>
3718
3721
3719 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3722 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3720 .ini extensions for profiels under Windows.
3723 .ini extensions for profiels under Windows.
3721
3724
3722 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3725 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3723 string form. Fix contributed by Alexander Schmolck
3726 string form. Fix contributed by Alexander Schmolck
3724 <a.schmolck-AT-gmx.net>
3727 <a.schmolck-AT-gmx.net>
3725
3728
3726 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3729 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3727 pre-configured Gnuplot instance.
3730 pre-configured Gnuplot instance.
3728
3731
3729 2002-06-21 Fernando Perez <fperez@colorado.edu>
3732 2002-06-21 Fernando Perez <fperez@colorado.edu>
3730
3733
3731 * IPython/numutils.py (exp_safe): new function, works around the
3734 * IPython/numutils.py (exp_safe): new function, works around the
3732 underflow problems in Numeric.
3735 underflow problems in Numeric.
3733 (log2): New fn. Safe log in base 2: returns exact integer answer
3736 (log2): New fn. Safe log in base 2: returns exact integer answer
3734 for exact integer powers of 2.
3737 for exact integer powers of 2.
3735
3738
3736 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3739 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3737 properly.
3740 properly.
3738
3741
3739 2002-06-20 Fernando Perez <fperez@colorado.edu>
3742 2002-06-20 Fernando Perez <fperez@colorado.edu>
3740
3743
3741 * IPython/genutils.py (timing): new function like
3744 * IPython/genutils.py (timing): new function like
3742 Mathematica's. Similar to time_test, but returns more info.
3745 Mathematica's. Similar to time_test, but returns more info.
3743
3746
3744 2002-06-18 Fernando Perez <fperez@colorado.edu>
3747 2002-06-18 Fernando Perez <fperez@colorado.edu>
3745
3748
3746 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3749 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3747 according to Mike Heeter's suggestions.
3750 according to Mike Heeter's suggestions.
3748
3751
3749 2002-06-16 Fernando Perez <fperez@colorado.edu>
3752 2002-06-16 Fernando Perez <fperez@colorado.edu>
3750
3753
3751 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3754 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3752 system. GnuplotMagic is gone as a user-directory option. New files
3755 system. GnuplotMagic is gone as a user-directory option. New files
3753 make it easier to use all the gnuplot stuff both from external
3756 make it easier to use all the gnuplot stuff both from external
3754 programs as well as from IPython. Had to rewrite part of
3757 programs as well as from IPython. Had to rewrite part of
3755 hardcopy() b/c of a strange bug: often the ps files simply don't
3758 hardcopy() b/c of a strange bug: often the ps files simply don't
3756 get created, and require a repeat of the command (often several
3759 get created, and require a repeat of the command (often several
3757 times).
3760 times).
3758
3761
3759 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3762 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3760 resolve output channel at call time, so that if sys.stderr has
3763 resolve output channel at call time, so that if sys.stderr has
3761 been redirected by user this gets honored.
3764 been redirected by user this gets honored.
3762
3765
3763 2002-06-13 Fernando Perez <fperez@colorado.edu>
3766 2002-06-13 Fernando Perez <fperez@colorado.edu>
3764
3767
3765 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3768 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3766 IPShell. Kept a copy with the old names to avoid breaking people's
3769 IPShell. Kept a copy with the old names to avoid breaking people's
3767 embedded code.
3770 embedded code.
3768
3771
3769 * IPython/ipython: simplified it to the bare minimum after
3772 * IPython/ipython: simplified it to the bare minimum after
3770 Holger's suggestions. Added info about how to use it in
3773 Holger's suggestions. Added info about how to use it in
3771 PYTHONSTARTUP.
3774 PYTHONSTARTUP.
3772
3775
3773 * IPython/Shell.py (IPythonShell): changed the options passing
3776 * IPython/Shell.py (IPythonShell): changed the options passing
3774 from a string with funky %s replacements to a straight list. Maybe
3777 from a string with funky %s replacements to a straight list. Maybe
3775 a bit more typing, but it follows sys.argv conventions, so there's
3778 a bit more typing, but it follows sys.argv conventions, so there's
3776 less special-casing to remember.
3779 less special-casing to remember.
3777
3780
3778 2002-06-12 Fernando Perez <fperez@colorado.edu>
3781 2002-06-12 Fernando Perez <fperez@colorado.edu>
3779
3782
3780 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3783 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3781 command. Thanks to a suggestion by Mike Heeter.
3784 command. Thanks to a suggestion by Mike Heeter.
3782 (Magic.magic_pfile): added behavior to look at filenames if given
3785 (Magic.magic_pfile): added behavior to look at filenames if given
3783 arg is not a defined object.
3786 arg is not a defined object.
3784 (Magic.magic_save): New @save function to save code snippets. Also
3787 (Magic.magic_save): New @save function to save code snippets. Also
3785 a Mike Heeter idea.
3788 a Mike Heeter idea.
3786
3789
3787 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3790 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3788 plot() and replot(). Much more convenient now, especially for
3791 plot() and replot(). Much more convenient now, especially for
3789 interactive use.
3792 interactive use.
3790
3793
3791 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3794 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3792 filenames.
3795 filenames.
3793
3796
3794 2002-06-02 Fernando Perez <fperez@colorado.edu>
3797 2002-06-02 Fernando Perez <fperez@colorado.edu>
3795
3798
3796 * IPython/Struct.py (Struct.__init__): modified to admit
3799 * IPython/Struct.py (Struct.__init__): modified to admit
3797 initialization via another struct.
3800 initialization via another struct.
3798
3801
3799 * IPython/genutils.py (SystemExec.__init__): New stateful
3802 * IPython/genutils.py (SystemExec.__init__): New stateful
3800 interface to xsys and bq. Useful for writing system scripts.
3803 interface to xsys and bq. Useful for writing system scripts.
3801
3804
3802 2002-05-30 Fernando Perez <fperez@colorado.edu>
3805 2002-05-30 Fernando Perez <fperez@colorado.edu>
3803
3806
3804 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3807 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3805 documents. This will make the user download smaller (it's getting
3808 documents. This will make the user download smaller (it's getting
3806 too big).
3809 too big).
3807
3810
3808 2002-05-29 Fernando Perez <fperez@colorado.edu>
3811 2002-05-29 Fernando Perez <fperez@colorado.edu>
3809
3812
3810 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3813 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3811 fix problems with shelve and pickle. Seems to work, but I don't
3814 fix problems with shelve and pickle. Seems to work, but I don't
3812 know if corner cases break it. Thanks to Mike Heeter
3815 know if corner cases break it. Thanks to Mike Heeter
3813 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3816 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3814
3817
3815 2002-05-24 Fernando Perez <fperez@colorado.edu>
3818 2002-05-24 Fernando Perez <fperez@colorado.edu>
3816
3819
3817 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3820 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3818 macros having broken.
3821 macros having broken.
3819
3822
3820 2002-05-21 Fernando Perez <fperez@colorado.edu>
3823 2002-05-21 Fernando Perez <fperez@colorado.edu>
3821
3824
3822 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3825 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3823 introduced logging bug: all history before logging started was
3826 introduced logging bug: all history before logging started was
3824 being written one character per line! This came from the redesign
3827 being written one character per line! This came from the redesign
3825 of the input history as a special list which slices to strings,
3828 of the input history as a special list which slices to strings,
3826 not to lists.
3829 not to lists.
3827
3830
3828 2002-05-20 Fernando Perez <fperez@colorado.edu>
3831 2002-05-20 Fernando Perez <fperez@colorado.edu>
3829
3832
3830 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3833 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3831 be an attribute of all classes in this module. The design of these
3834 be an attribute of all classes in this module. The design of these
3832 classes needs some serious overhauling.
3835 classes needs some serious overhauling.
3833
3836
3834 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3837 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3835 which was ignoring '_' in option names.
3838 which was ignoring '_' in option names.
3836
3839
3837 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3840 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3838 'Verbose_novars' to 'Context' and made it the new default. It's a
3841 'Verbose_novars' to 'Context' and made it the new default. It's a
3839 bit more readable and also safer than verbose.
3842 bit more readable and also safer than verbose.
3840
3843
3841 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3844 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3842 triple-quoted strings.
3845 triple-quoted strings.
3843
3846
3844 * IPython/OInspect.py (__all__): new module exposing the object
3847 * IPython/OInspect.py (__all__): new module exposing the object
3845 introspection facilities. Now the corresponding magics are dummy
3848 introspection facilities. Now the corresponding magics are dummy
3846 wrappers around this. Having this module will make it much easier
3849 wrappers around this. Having this module will make it much easier
3847 to put these functions into our modified pdb.
3850 to put these functions into our modified pdb.
3848 This new object inspector system uses the new colorizing module,
3851 This new object inspector system uses the new colorizing module,
3849 so source code and other things are nicely syntax highlighted.
3852 so source code and other things are nicely syntax highlighted.
3850
3853
3851 2002-05-18 Fernando Perez <fperez@colorado.edu>
3854 2002-05-18 Fernando Perez <fperez@colorado.edu>
3852
3855
3853 * IPython/ColorANSI.py: Split the coloring tools into a separate
3856 * IPython/ColorANSI.py: Split the coloring tools into a separate
3854 module so I can use them in other code easier (they were part of
3857 module so I can use them in other code easier (they were part of
3855 ultraTB).
3858 ultraTB).
3856
3859
3857 2002-05-17 Fernando Perez <fperez@colorado.edu>
3860 2002-05-17 Fernando Perez <fperez@colorado.edu>
3858
3861
3859 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3862 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3860 fixed it to set the global 'g' also to the called instance, as
3863 fixed it to set the global 'g' also to the called instance, as
3861 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3864 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3862 user's 'g' variables).
3865 user's 'g' variables).
3863
3866
3864 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3867 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3865 global variables (aliases to _ih,_oh) so that users which expect
3868 global variables (aliases to _ih,_oh) so that users which expect
3866 In[5] or Out[7] to work aren't unpleasantly surprised.
3869 In[5] or Out[7] to work aren't unpleasantly surprised.
3867 (InputList.__getslice__): new class to allow executing slices of
3870 (InputList.__getslice__): new class to allow executing slices of
3868 input history directly. Very simple class, complements the use of
3871 input history directly. Very simple class, complements the use of
3869 macros.
3872 macros.
3870
3873
3871 2002-05-16 Fernando Perez <fperez@colorado.edu>
3874 2002-05-16 Fernando Perez <fperez@colorado.edu>
3872
3875
3873 * setup.py (docdirbase): make doc directory be just doc/IPython
3876 * setup.py (docdirbase): make doc directory be just doc/IPython
3874 without version numbers, it will reduce clutter for users.
3877 without version numbers, it will reduce clutter for users.
3875
3878
3876 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3879 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3877 execfile call to prevent possible memory leak. See for details:
3880 execfile call to prevent possible memory leak. See for details:
3878 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3881 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3879
3882
3880 2002-05-15 Fernando Perez <fperez@colorado.edu>
3883 2002-05-15 Fernando Perez <fperez@colorado.edu>
3881
3884
3882 * IPython/Magic.py (Magic.magic_psource): made the object
3885 * IPython/Magic.py (Magic.magic_psource): made the object
3883 introspection names be more standard: pdoc, pdef, pfile and
3886 introspection names be more standard: pdoc, pdef, pfile and
3884 psource. They all print/page their output, and it makes
3887 psource. They all print/page their output, and it makes
3885 remembering them easier. Kept old names for compatibility as
3888 remembering them easier. Kept old names for compatibility as
3886 aliases.
3889 aliases.
3887
3890
3888 2002-05-14 Fernando Perez <fperez@colorado.edu>
3891 2002-05-14 Fernando Perez <fperez@colorado.edu>
3889
3892
3890 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3893 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3891 what the mouse problem was. The trick is to use gnuplot with temp
3894 what the mouse problem was. The trick is to use gnuplot with temp
3892 files and NOT with pipes (for data communication), because having
3895 files and NOT with pipes (for data communication), because having
3893 both pipes and the mouse on is bad news.
3896 both pipes and the mouse on is bad news.
3894
3897
3895 2002-05-13 Fernando Perez <fperez@colorado.edu>
3898 2002-05-13 Fernando Perez <fperez@colorado.edu>
3896
3899
3897 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3900 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3898 bug. Information would be reported about builtins even when
3901 bug. Information would be reported about builtins even when
3899 user-defined functions overrode them.
3902 user-defined functions overrode them.
3900
3903
3901 2002-05-11 Fernando Perez <fperez@colorado.edu>
3904 2002-05-11 Fernando Perez <fperez@colorado.edu>
3902
3905
3903 * IPython/__init__.py (__all__): removed FlexCompleter from
3906 * IPython/__init__.py (__all__): removed FlexCompleter from
3904 __all__ so that things don't fail in platforms without readline.
3907 __all__ so that things don't fail in platforms without readline.
3905
3908
3906 2002-05-10 Fernando Perez <fperez@colorado.edu>
3909 2002-05-10 Fernando Perez <fperez@colorado.edu>
3907
3910
3908 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3911 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3909 it requires Numeric, effectively making Numeric a dependency for
3912 it requires Numeric, effectively making Numeric a dependency for
3910 IPython.
3913 IPython.
3911
3914
3912 * Released 0.2.13
3915 * Released 0.2.13
3913
3916
3914 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3917 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3915 profiler interface. Now all the major options from the profiler
3918 profiler interface. Now all the major options from the profiler
3916 module are directly supported in IPython, both for single
3919 module are directly supported in IPython, both for single
3917 expressions (@prun) and for full programs (@run -p).
3920 expressions (@prun) and for full programs (@run -p).
3918
3921
3919 2002-05-09 Fernando Perez <fperez@colorado.edu>
3922 2002-05-09 Fernando Perez <fperez@colorado.edu>
3920
3923
3921 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3924 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3922 magic properly formatted for screen.
3925 magic properly formatted for screen.
3923
3926
3924 * setup.py (make_shortcut): Changed things to put pdf version in
3927 * setup.py (make_shortcut): Changed things to put pdf version in
3925 doc/ instead of doc/manual (had to change lyxport a bit).
3928 doc/ instead of doc/manual (had to change lyxport a bit).
3926
3929
3927 * IPython/Magic.py (Profile.string_stats): made profile runs go
3930 * IPython/Magic.py (Profile.string_stats): made profile runs go
3928 through pager (they are long and a pager allows searching, saving,
3931 through pager (they are long and a pager allows searching, saving,
3929 etc.)
3932 etc.)
3930
3933
3931 2002-05-08 Fernando Perez <fperez@colorado.edu>
3934 2002-05-08 Fernando Perez <fperez@colorado.edu>
3932
3935
3933 * Released 0.2.12
3936 * Released 0.2.12
3934
3937
3935 2002-05-06 Fernando Perez <fperez@colorado.edu>
3938 2002-05-06 Fernando Perez <fperez@colorado.edu>
3936
3939
3937 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3940 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3938 introduced); 'hist n1 n2' was broken.
3941 introduced); 'hist n1 n2' was broken.
3939 (Magic.magic_pdb): added optional on/off arguments to @pdb
3942 (Magic.magic_pdb): added optional on/off arguments to @pdb
3940 (Magic.magic_run): added option -i to @run, which executes code in
3943 (Magic.magic_run): added option -i to @run, which executes code in
3941 the IPython namespace instead of a clean one. Also added @irun as
3944 the IPython namespace instead of a clean one. Also added @irun as
3942 an alias to @run -i.
3945 an alias to @run -i.
3943
3946
3944 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3947 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3945 fixed (it didn't really do anything, the namespaces were wrong).
3948 fixed (it didn't really do anything, the namespaces were wrong).
3946
3949
3947 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3950 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3948
3951
3949 * IPython/__init__.py (__all__): Fixed package namespace, now
3952 * IPython/__init__.py (__all__): Fixed package namespace, now
3950 'import IPython' does give access to IPython.<all> as
3953 'import IPython' does give access to IPython.<all> as
3951 expected. Also renamed __release__ to Release.
3954 expected. Also renamed __release__ to Release.
3952
3955
3953 * IPython/Debugger.py (__license__): created new Pdb class which
3956 * IPython/Debugger.py (__license__): created new Pdb class which
3954 functions like a drop-in for the normal pdb.Pdb but does NOT
3957 functions like a drop-in for the normal pdb.Pdb but does NOT
3955 import readline by default. This way it doesn't muck up IPython's
3958 import readline by default. This way it doesn't muck up IPython's
3956 readline handling, and now tab-completion finally works in the
3959 readline handling, and now tab-completion finally works in the
3957 debugger -- sort of. It completes things globally visible, but the
3960 debugger -- sort of. It completes things globally visible, but the
3958 completer doesn't track the stack as pdb walks it. That's a bit
3961 completer doesn't track the stack as pdb walks it. That's a bit
3959 tricky, and I'll have to implement it later.
3962 tricky, and I'll have to implement it later.
3960
3963
3961 2002-05-05 Fernando Perez <fperez@colorado.edu>
3964 2002-05-05 Fernando Perez <fperez@colorado.edu>
3962
3965
3963 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3966 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3964 magic docstrings when printed via ? (explicit \'s were being
3967 magic docstrings when printed via ? (explicit \'s were being
3965 printed).
3968 printed).
3966
3969
3967 * IPython/ipmaker.py (make_IPython): fixed namespace
3970 * IPython/ipmaker.py (make_IPython): fixed namespace
3968 identification bug. Now variables loaded via logs or command-line
3971 identification bug. Now variables loaded via logs or command-line
3969 files are recognized in the interactive namespace by @who.
3972 files are recognized in the interactive namespace by @who.
3970
3973
3971 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3974 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3972 log replay system stemming from the string form of Structs.
3975 log replay system stemming from the string form of Structs.
3973
3976
3974 * IPython/Magic.py (Macro.__init__): improved macros to properly
3977 * IPython/Magic.py (Macro.__init__): improved macros to properly
3975 handle magic commands in them.
3978 handle magic commands in them.
3976 (Magic.magic_logstart): usernames are now expanded so 'logstart
3979 (Magic.magic_logstart): usernames are now expanded so 'logstart
3977 ~/mylog' now works.
3980 ~/mylog' now works.
3978
3981
3979 * IPython/iplib.py (complete): fixed bug where paths starting with
3982 * IPython/iplib.py (complete): fixed bug where paths starting with
3980 '/' would be completed as magic names.
3983 '/' would be completed as magic names.
3981
3984
3982 2002-05-04 Fernando Perez <fperez@colorado.edu>
3985 2002-05-04 Fernando Perez <fperez@colorado.edu>
3983
3986
3984 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3987 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3985 allow running full programs under the profiler's control.
3988 allow running full programs under the profiler's control.
3986
3989
3987 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3990 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3988 mode to report exceptions verbosely but without formatting
3991 mode to report exceptions verbosely but without formatting
3989 variables. This addresses the issue of ipython 'freezing' (it's
3992 variables. This addresses the issue of ipython 'freezing' (it's
3990 not frozen, but caught in an expensive formatting loop) when huge
3993 not frozen, but caught in an expensive formatting loop) when huge
3991 variables are in the context of an exception.
3994 variables are in the context of an exception.
3992 (VerboseTB.text): Added '--->' markers at line where exception was
3995 (VerboseTB.text): Added '--->' markers at line where exception was
3993 triggered. Much clearer to read, especially in NoColor modes.
3996 triggered. Much clearer to read, especially in NoColor modes.
3994
3997
3995 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3998 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3996 implemented in reverse when changing to the new parse_options().
3999 implemented in reverse when changing to the new parse_options().
3997
4000
3998 2002-05-03 Fernando Perez <fperez@colorado.edu>
4001 2002-05-03 Fernando Perez <fperez@colorado.edu>
3999
4002
4000 * IPython/Magic.py (Magic.parse_options): new function so that
4003 * IPython/Magic.py (Magic.parse_options): new function so that
4001 magics can parse options easier.
4004 magics can parse options easier.
4002 (Magic.magic_prun): new function similar to profile.run(),
4005 (Magic.magic_prun): new function similar to profile.run(),
4003 suggested by Chris Hart.
4006 suggested by Chris Hart.
4004 (Magic.magic_cd): fixed behavior so that it only changes if
4007 (Magic.magic_cd): fixed behavior so that it only changes if
4005 directory actually is in history.
4008 directory actually is in history.
4006
4009
4007 * IPython/usage.py (__doc__): added information about potential
4010 * IPython/usage.py (__doc__): added information about potential
4008 slowness of Verbose exception mode when there are huge data
4011 slowness of Verbose exception mode when there are huge data
4009 structures to be formatted (thanks to Archie Paulson).
4012 structures to be formatted (thanks to Archie Paulson).
4010
4013
4011 * IPython/ipmaker.py (make_IPython): Changed default logging
4014 * IPython/ipmaker.py (make_IPython): Changed default logging
4012 (when simply called with -log) to use curr_dir/ipython.log in
4015 (when simply called with -log) to use curr_dir/ipython.log in
4013 rotate mode. Fixed crash which was occuring with -log before
4016 rotate mode. Fixed crash which was occuring with -log before
4014 (thanks to Jim Boyle).
4017 (thanks to Jim Boyle).
4015
4018
4016 2002-05-01 Fernando Perez <fperez@colorado.edu>
4019 2002-05-01 Fernando Perez <fperez@colorado.edu>
4017
4020
4018 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4021 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4019 was nasty -- though somewhat of a corner case).
4022 was nasty -- though somewhat of a corner case).
4020
4023
4021 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4024 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4022 text (was a bug).
4025 text (was a bug).
4023
4026
4024 2002-04-30 Fernando Perez <fperez@colorado.edu>
4027 2002-04-30 Fernando Perez <fperez@colorado.edu>
4025
4028
4026 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4029 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4027 a print after ^D or ^C from the user so that the In[] prompt
4030 a print after ^D or ^C from the user so that the In[] prompt
4028 doesn't over-run the gnuplot one.
4031 doesn't over-run the gnuplot one.
4029
4032
4030 2002-04-29 Fernando Perez <fperez@colorado.edu>
4033 2002-04-29 Fernando Perez <fperez@colorado.edu>
4031
4034
4032 * Released 0.2.10
4035 * Released 0.2.10
4033
4036
4034 * IPython/__release__.py (version): get date dynamically.
4037 * IPython/__release__.py (version): get date dynamically.
4035
4038
4036 * Misc. documentation updates thanks to Arnd's comments. Also ran
4039 * Misc. documentation updates thanks to Arnd's comments. Also ran
4037 a full spellcheck on the manual (hadn't been done in a while).
4040 a full spellcheck on the manual (hadn't been done in a while).
4038
4041
4039 2002-04-27 Fernando Perez <fperez@colorado.edu>
4042 2002-04-27 Fernando Perez <fperez@colorado.edu>
4040
4043
4041 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4044 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4042 starting a log in mid-session would reset the input history list.
4045 starting a log in mid-session would reset the input history list.
4043
4046
4044 2002-04-26 Fernando Perez <fperez@colorado.edu>
4047 2002-04-26 Fernando Perez <fperez@colorado.edu>
4045
4048
4046 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4049 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4047 all files were being included in an update. Now anything in
4050 all files were being included in an update. Now anything in
4048 UserConfig that matches [A-Za-z]*.py will go (this excludes
4051 UserConfig that matches [A-Za-z]*.py will go (this excludes
4049 __init__.py)
4052 __init__.py)
4050
4053
4051 2002-04-25 Fernando Perez <fperez@colorado.edu>
4054 2002-04-25 Fernando Perez <fperez@colorado.edu>
4052
4055
4053 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4056 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4054 to __builtins__ so that any form of embedded or imported code can
4057 to __builtins__ so that any form of embedded or imported code can
4055 test for being inside IPython.
4058 test for being inside IPython.
4056
4059
4057 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4060 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4058 changed to GnuplotMagic because it's now an importable module,
4061 changed to GnuplotMagic because it's now an importable module,
4059 this makes the name follow that of the standard Gnuplot module.
4062 this makes the name follow that of the standard Gnuplot module.
4060 GnuplotMagic can now be loaded at any time in mid-session.
4063 GnuplotMagic can now be loaded at any time in mid-session.
4061
4064
4062 2002-04-24 Fernando Perez <fperez@colorado.edu>
4065 2002-04-24 Fernando Perez <fperez@colorado.edu>
4063
4066
4064 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4067 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4065 the globals (IPython has its own namespace) and the
4068 the globals (IPython has its own namespace) and the
4066 PhysicalQuantity stuff is much better anyway.
4069 PhysicalQuantity stuff is much better anyway.
4067
4070
4068 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4071 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4069 embedding example to standard user directory for
4072 embedding example to standard user directory for
4070 distribution. Also put it in the manual.
4073 distribution. Also put it in the manual.
4071
4074
4072 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4075 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4073 instance as first argument (so it doesn't rely on some obscure
4076 instance as first argument (so it doesn't rely on some obscure
4074 hidden global).
4077 hidden global).
4075
4078
4076 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4079 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4077 delimiters. While it prevents ().TAB from working, it allows
4080 delimiters. While it prevents ().TAB from working, it allows
4078 completions in open (... expressions. This is by far a more common
4081 completions in open (... expressions. This is by far a more common
4079 case.
4082 case.
4080
4083
4081 2002-04-23 Fernando Perez <fperez@colorado.edu>
4084 2002-04-23 Fernando Perez <fperez@colorado.edu>
4082
4085
4083 * IPython/Extensions/InterpreterPasteInput.py: new
4086 * IPython/Extensions/InterpreterPasteInput.py: new
4084 syntax-processing module for pasting lines with >>> or ... at the
4087 syntax-processing module for pasting lines with >>> or ... at the
4085 start.
4088 start.
4086
4089
4087 * IPython/Extensions/PhysicalQ_Interactive.py
4090 * IPython/Extensions/PhysicalQ_Interactive.py
4088 (PhysicalQuantityInteractive.__int__): fixed to work with either
4091 (PhysicalQuantityInteractive.__int__): fixed to work with either
4089 Numeric or math.
4092 Numeric or math.
4090
4093
4091 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4094 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4092 provided profiles. Now we have:
4095 provided profiles. Now we have:
4093 -math -> math module as * and cmath with its own namespace.
4096 -math -> math module as * and cmath with its own namespace.
4094 -numeric -> Numeric as *, plus gnuplot & grace
4097 -numeric -> Numeric as *, plus gnuplot & grace
4095 -physics -> same as before
4098 -physics -> same as before
4096
4099
4097 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4100 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4098 user-defined magics wouldn't be found by @magic if they were
4101 user-defined magics wouldn't be found by @magic if they were
4099 defined as class methods. Also cleaned up the namespace search
4102 defined as class methods. Also cleaned up the namespace search
4100 logic and the string building (to use %s instead of many repeated
4103 logic and the string building (to use %s instead of many repeated
4101 string adds).
4104 string adds).
4102
4105
4103 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4106 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4104 of user-defined magics to operate with class methods (cleaner, in
4107 of user-defined magics to operate with class methods (cleaner, in
4105 line with the gnuplot code).
4108 line with the gnuplot code).
4106
4109
4107 2002-04-22 Fernando Perez <fperez@colorado.edu>
4110 2002-04-22 Fernando Perez <fperez@colorado.edu>
4108
4111
4109 * setup.py: updated dependency list so that manual is updated when
4112 * setup.py: updated dependency list so that manual is updated when
4110 all included files change.
4113 all included files change.
4111
4114
4112 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4115 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4113 the delimiter removal option (the fix is ugly right now).
4116 the delimiter removal option (the fix is ugly right now).
4114
4117
4115 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4118 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4116 all of the math profile (quicker loading, no conflict between
4119 all of the math profile (quicker loading, no conflict between
4117 g-9.8 and g-gnuplot).
4120 g-9.8 and g-gnuplot).
4118
4121
4119 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4122 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4120 name of post-mortem files to IPython_crash_report.txt.
4123 name of post-mortem files to IPython_crash_report.txt.
4121
4124
4122 * Cleanup/update of the docs. Added all the new readline info and
4125 * Cleanup/update of the docs. Added all the new readline info and
4123 formatted all lists as 'real lists'.
4126 formatted all lists as 'real lists'.
4124
4127
4125 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4128 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4126 tab-completion options, since the full readline parse_and_bind is
4129 tab-completion options, since the full readline parse_and_bind is
4127 now accessible.
4130 now accessible.
4128
4131
4129 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4132 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4130 handling of readline options. Now users can specify any string to
4133 handling of readline options. Now users can specify any string to
4131 be passed to parse_and_bind(), as well as the delimiters to be
4134 be passed to parse_and_bind(), as well as the delimiters to be
4132 removed.
4135 removed.
4133 (InteractiveShell.__init__): Added __name__ to the global
4136 (InteractiveShell.__init__): Added __name__ to the global
4134 namespace so that things like Itpl which rely on its existence
4137 namespace so that things like Itpl which rely on its existence
4135 don't crash.
4138 don't crash.
4136 (InteractiveShell._prefilter): Defined the default with a _ so
4139 (InteractiveShell._prefilter): Defined the default with a _ so
4137 that prefilter() is easier to override, while the default one
4140 that prefilter() is easier to override, while the default one
4138 remains available.
4141 remains available.
4139
4142
4140 2002-04-18 Fernando Perez <fperez@colorado.edu>
4143 2002-04-18 Fernando Perez <fperez@colorado.edu>
4141
4144
4142 * Added information about pdb in the docs.
4145 * Added information about pdb in the docs.
4143
4146
4144 2002-04-17 Fernando Perez <fperez@colorado.edu>
4147 2002-04-17 Fernando Perez <fperez@colorado.edu>
4145
4148
4146 * IPython/ipmaker.py (make_IPython): added rc_override option to
4149 * IPython/ipmaker.py (make_IPython): added rc_override option to
4147 allow passing config options at creation time which may override
4150 allow passing config options at creation time which may override
4148 anything set in the config files or command line. This is
4151 anything set in the config files or command line. This is
4149 particularly useful for configuring embedded instances.
4152 particularly useful for configuring embedded instances.
4150
4153
4151 2002-04-15 Fernando Perez <fperez@colorado.edu>
4154 2002-04-15 Fernando Perez <fperez@colorado.edu>
4152
4155
4153 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4156 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4154 crash embedded instances because of the input cache falling out of
4157 crash embedded instances because of the input cache falling out of
4155 sync with the output counter.
4158 sync with the output counter.
4156
4159
4157 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4160 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4158 mode which calls pdb after an uncaught exception in IPython itself.
4161 mode which calls pdb after an uncaught exception in IPython itself.
4159
4162
4160 2002-04-14 Fernando Perez <fperez@colorado.edu>
4163 2002-04-14 Fernando Perez <fperez@colorado.edu>
4161
4164
4162 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4165 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4163 readline, fix it back after each call.
4166 readline, fix it back after each call.
4164
4167
4165 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4168 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4166 method to force all access via __call__(), which guarantees that
4169 method to force all access via __call__(), which guarantees that
4167 traceback references are properly deleted.
4170 traceback references are properly deleted.
4168
4171
4169 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4172 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4170 improve printing when pprint is in use.
4173 improve printing when pprint is in use.
4171
4174
4172 2002-04-13 Fernando Perez <fperez@colorado.edu>
4175 2002-04-13 Fernando Perez <fperez@colorado.edu>
4173
4176
4174 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4177 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4175 exceptions aren't caught anymore. If the user triggers one, he
4178 exceptions aren't caught anymore. If the user triggers one, he
4176 should know why he's doing it and it should go all the way up,
4179 should know why he's doing it and it should go all the way up,
4177 just like any other exception. So now @abort will fully kill the
4180 just like any other exception. So now @abort will fully kill the
4178 embedded interpreter and the embedding code (unless that happens
4181 embedded interpreter and the embedding code (unless that happens
4179 to catch SystemExit).
4182 to catch SystemExit).
4180
4183
4181 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4184 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4182 and a debugger() method to invoke the interactive pdb debugger
4185 and a debugger() method to invoke the interactive pdb debugger
4183 after printing exception information. Also added the corresponding
4186 after printing exception information. Also added the corresponding
4184 -pdb option and @pdb magic to control this feature, and updated
4187 -pdb option and @pdb magic to control this feature, and updated
4185 the docs. After a suggestion from Christopher Hart
4188 the docs. After a suggestion from Christopher Hart
4186 (hart-AT-caltech.edu).
4189 (hart-AT-caltech.edu).
4187
4190
4188 2002-04-12 Fernando Perez <fperez@colorado.edu>
4191 2002-04-12 Fernando Perez <fperez@colorado.edu>
4189
4192
4190 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4193 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4191 the exception handlers defined by the user (not the CrashHandler)
4194 the exception handlers defined by the user (not the CrashHandler)
4192 so that user exceptions don't trigger an ipython bug report.
4195 so that user exceptions don't trigger an ipython bug report.
4193
4196
4194 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4197 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4195 configurable (it should have always been so).
4198 configurable (it should have always been so).
4196
4199
4197 2002-03-26 Fernando Perez <fperez@colorado.edu>
4200 2002-03-26 Fernando Perez <fperez@colorado.edu>
4198
4201
4199 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4202 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4200 and there to fix embedding namespace issues. This should all be
4203 and there to fix embedding namespace issues. This should all be
4201 done in a more elegant way.
4204 done in a more elegant way.
4202
4205
4203 2002-03-25 Fernando Perez <fperez@colorado.edu>
4206 2002-03-25 Fernando Perez <fperez@colorado.edu>
4204
4207
4205 * IPython/genutils.py (get_home_dir): Try to make it work under
4208 * IPython/genutils.py (get_home_dir): Try to make it work under
4206 win9x also.
4209 win9x also.
4207
4210
4208 2002-03-20 Fernando Perez <fperez@colorado.edu>
4211 2002-03-20 Fernando Perez <fperez@colorado.edu>
4209
4212
4210 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4213 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4211 sys.displayhook untouched upon __init__.
4214 sys.displayhook untouched upon __init__.
4212
4215
4213 2002-03-19 Fernando Perez <fperez@colorado.edu>
4216 2002-03-19 Fernando Perez <fperez@colorado.edu>
4214
4217
4215 * Released 0.2.9 (for embedding bug, basically).
4218 * Released 0.2.9 (for embedding bug, basically).
4216
4219
4217 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4220 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4218 exceptions so that enclosing shell's state can be restored.
4221 exceptions so that enclosing shell's state can be restored.
4219
4222
4220 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4223 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4221 naming conventions in the .ipython/ dir.
4224 naming conventions in the .ipython/ dir.
4222
4225
4223 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4226 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4224 from delimiters list so filenames with - in them get expanded.
4227 from delimiters list so filenames with - in them get expanded.
4225
4228
4226 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4229 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4227 sys.displayhook not being properly restored after an embedded call.
4230 sys.displayhook not being properly restored after an embedded call.
4228
4231
4229 2002-03-18 Fernando Perez <fperez@colorado.edu>
4232 2002-03-18 Fernando Perez <fperez@colorado.edu>
4230
4233
4231 * Released 0.2.8
4234 * Released 0.2.8
4232
4235
4233 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4236 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4234 some files weren't being included in a -upgrade.
4237 some files weren't being included in a -upgrade.
4235 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4238 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4236 on' so that the first tab completes.
4239 on' so that the first tab completes.
4237 (InteractiveShell.handle_magic): fixed bug with spaces around
4240 (InteractiveShell.handle_magic): fixed bug with spaces around
4238 quotes breaking many magic commands.
4241 quotes breaking many magic commands.
4239
4242
4240 * setup.py: added note about ignoring the syntax error messages at
4243 * setup.py: added note about ignoring the syntax error messages at
4241 installation.
4244 installation.
4242
4245
4243 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4246 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4244 streamlining the gnuplot interface, now there's only one magic @gp.
4247 streamlining the gnuplot interface, now there's only one magic @gp.
4245
4248
4246 2002-03-17 Fernando Perez <fperez@colorado.edu>
4249 2002-03-17 Fernando Perez <fperez@colorado.edu>
4247
4250
4248 * IPython/UserConfig/magic_gnuplot.py: new name for the
4251 * IPython/UserConfig/magic_gnuplot.py: new name for the
4249 example-magic_pm.py file. Much enhanced system, now with a shell
4252 example-magic_pm.py file. Much enhanced system, now with a shell
4250 for communicating directly with gnuplot, one command at a time.
4253 for communicating directly with gnuplot, one command at a time.
4251
4254
4252 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4255 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4253 setting __name__=='__main__'.
4256 setting __name__=='__main__'.
4254
4257
4255 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4258 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4256 mini-shell for accessing gnuplot from inside ipython. Should
4259 mini-shell for accessing gnuplot from inside ipython. Should
4257 extend it later for grace access too. Inspired by Arnd's
4260 extend it later for grace access too. Inspired by Arnd's
4258 suggestion.
4261 suggestion.
4259
4262
4260 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4263 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4261 calling magic functions with () in their arguments. Thanks to Arnd
4264 calling magic functions with () in their arguments. Thanks to Arnd
4262 Baecker for pointing this to me.
4265 Baecker for pointing this to me.
4263
4266
4264 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4267 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4265 infinitely for integer or complex arrays (only worked with floats).
4268 infinitely for integer or complex arrays (only worked with floats).
4266
4269
4267 2002-03-16 Fernando Perez <fperez@colorado.edu>
4270 2002-03-16 Fernando Perez <fperez@colorado.edu>
4268
4271
4269 * setup.py: Merged setup and setup_windows into a single script
4272 * setup.py: Merged setup and setup_windows into a single script
4270 which properly handles things for windows users.
4273 which properly handles things for windows users.
4271
4274
4272 2002-03-15 Fernando Perez <fperez@colorado.edu>
4275 2002-03-15 Fernando Perez <fperez@colorado.edu>
4273
4276
4274 * Big change to the manual: now the magics are all automatically
4277 * Big change to the manual: now the magics are all automatically
4275 documented. This information is generated from their docstrings
4278 documented. This information is generated from their docstrings
4276 and put in a latex file included by the manual lyx file. This way
4279 and put in a latex file included by the manual lyx file. This way
4277 we get always up to date information for the magics. The manual
4280 we get always up to date information for the magics. The manual
4278 now also has proper version information, also auto-synced.
4281 now also has proper version information, also auto-synced.
4279
4282
4280 For this to work, an undocumented --magic_docstrings option was added.
4283 For this to work, an undocumented --magic_docstrings option was added.
4281
4284
4282 2002-03-13 Fernando Perez <fperez@colorado.edu>
4285 2002-03-13 Fernando Perez <fperez@colorado.edu>
4283
4286
4284 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4287 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4285 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4288 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4286
4289
4287 2002-03-12 Fernando Perez <fperez@colorado.edu>
4290 2002-03-12 Fernando Perez <fperez@colorado.edu>
4288
4291
4289 * IPython/ultraTB.py (TermColors): changed color escapes again to
4292 * IPython/ultraTB.py (TermColors): changed color escapes again to
4290 fix the (old, reintroduced) line-wrapping bug. Basically, if
4293 fix the (old, reintroduced) line-wrapping bug. Basically, if
4291 \001..\002 aren't given in the color escapes, lines get wrapped
4294 \001..\002 aren't given in the color escapes, lines get wrapped
4292 weirdly. But giving those screws up old xterms and emacs terms. So
4295 weirdly. But giving those screws up old xterms and emacs terms. So
4293 I added some logic for emacs terms to be ok, but I can't identify old
4296 I added some logic for emacs terms to be ok, but I can't identify old
4294 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4297 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4295
4298
4296 2002-03-10 Fernando Perez <fperez@colorado.edu>
4299 2002-03-10 Fernando Perez <fperez@colorado.edu>
4297
4300
4298 * IPython/usage.py (__doc__): Various documentation cleanups and
4301 * IPython/usage.py (__doc__): Various documentation cleanups and
4299 updates, both in usage docstrings and in the manual.
4302 updates, both in usage docstrings and in the manual.
4300
4303
4301 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4304 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4302 handling of caching. Set minimum acceptabe value for having a
4305 handling of caching. Set minimum acceptabe value for having a
4303 cache at 20 values.
4306 cache at 20 values.
4304
4307
4305 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4308 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4306 install_first_time function to a method, renamed it and added an
4309 install_first_time function to a method, renamed it and added an
4307 'upgrade' mode. Now people can update their config directory with
4310 'upgrade' mode. Now people can update their config directory with
4308 a simple command line switch (-upgrade, also new).
4311 a simple command line switch (-upgrade, also new).
4309
4312
4310 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4313 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4311 @file (convenient for automagic users under Python >= 2.2).
4314 @file (convenient for automagic users under Python >= 2.2).
4312 Removed @files (it seemed more like a plural than an abbrev. of
4315 Removed @files (it seemed more like a plural than an abbrev. of
4313 'file show').
4316 'file show').
4314
4317
4315 * IPython/iplib.py (install_first_time): Fixed crash if there were
4318 * IPython/iplib.py (install_first_time): Fixed crash if there were
4316 backup files ('~') in .ipython/ install directory.
4319 backup files ('~') in .ipython/ install directory.
4317
4320
4318 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4321 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4319 system. Things look fine, but these changes are fairly
4322 system. Things look fine, but these changes are fairly
4320 intrusive. Test them for a few days.
4323 intrusive. Test them for a few days.
4321
4324
4322 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4325 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4323 the prompts system. Now all in/out prompt strings are user
4326 the prompts system. Now all in/out prompt strings are user
4324 controllable. This is particularly useful for embedding, as one
4327 controllable. This is particularly useful for embedding, as one
4325 can tag embedded instances with particular prompts.
4328 can tag embedded instances with particular prompts.
4326
4329
4327 Also removed global use of sys.ps1/2, which now allows nested
4330 Also removed global use of sys.ps1/2, which now allows nested
4328 embeddings without any problems. Added command-line options for
4331 embeddings without any problems. Added command-line options for
4329 the prompt strings.
4332 the prompt strings.
4330
4333
4331 2002-03-08 Fernando Perez <fperez@colorado.edu>
4334 2002-03-08 Fernando Perez <fperez@colorado.edu>
4332
4335
4333 * IPython/UserConfig/example-embed-short.py (ipshell): added
4336 * IPython/UserConfig/example-embed-short.py (ipshell): added
4334 example file with the bare minimum code for embedding.
4337 example file with the bare minimum code for embedding.
4335
4338
4336 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4339 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4337 functionality for the embeddable shell to be activated/deactivated
4340 functionality for the embeddable shell to be activated/deactivated
4338 either globally or at each call.
4341 either globally or at each call.
4339
4342
4340 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4343 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4341 rewriting the prompt with '--->' for auto-inputs with proper
4344 rewriting the prompt with '--->' for auto-inputs with proper
4342 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4345 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4343 this is handled by the prompts class itself, as it should.
4346 this is handled by the prompts class itself, as it should.
4344
4347
4345 2002-03-05 Fernando Perez <fperez@colorado.edu>
4348 2002-03-05 Fernando Perez <fperez@colorado.edu>
4346
4349
4347 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4350 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4348 @logstart to avoid name clashes with the math log function.
4351 @logstart to avoid name clashes with the math log function.
4349
4352
4350 * Big updates to X/Emacs section of the manual.
4353 * Big updates to X/Emacs section of the manual.
4351
4354
4352 * Removed ipython_emacs. Milan explained to me how to pass
4355 * Removed ipython_emacs. Milan explained to me how to pass
4353 arguments to ipython through Emacs. Some day I'm going to end up
4356 arguments to ipython through Emacs. Some day I'm going to end up
4354 learning some lisp...
4357 learning some lisp...
4355
4358
4356 2002-03-04 Fernando Perez <fperez@colorado.edu>
4359 2002-03-04 Fernando Perez <fperez@colorado.edu>
4357
4360
4358 * IPython/ipython_emacs: Created script to be used as the
4361 * IPython/ipython_emacs: Created script to be used as the
4359 py-python-command Emacs variable so we can pass IPython
4362 py-python-command Emacs variable so we can pass IPython
4360 parameters. I can't figure out how to tell Emacs directly to pass
4363 parameters. I can't figure out how to tell Emacs directly to pass
4361 parameters to IPython, so a dummy shell script will do it.
4364 parameters to IPython, so a dummy shell script will do it.
4362
4365
4363 Other enhancements made for things to work better under Emacs'
4366 Other enhancements made for things to work better under Emacs'
4364 various types of terminals. Many thanks to Milan Zamazal
4367 various types of terminals. Many thanks to Milan Zamazal
4365 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4368 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4366
4369
4367 2002-03-01 Fernando Perez <fperez@colorado.edu>
4370 2002-03-01 Fernando Perez <fperez@colorado.edu>
4368
4371
4369 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4372 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4370 that loading of readline is now optional. This gives better
4373 that loading of readline is now optional. This gives better
4371 control to emacs users.
4374 control to emacs users.
4372
4375
4373 * IPython/ultraTB.py (__date__): Modified color escape sequences
4376 * IPython/ultraTB.py (__date__): Modified color escape sequences
4374 and now things work fine under xterm and in Emacs' term buffers
4377 and now things work fine under xterm and in Emacs' term buffers
4375 (though not shell ones). Well, in emacs you get colors, but all
4378 (though not shell ones). Well, in emacs you get colors, but all
4376 seem to be 'light' colors (no difference between dark and light
4379 seem to be 'light' colors (no difference between dark and light
4377 ones). But the garbage chars are gone, and also in xterms. It
4380 ones). But the garbage chars are gone, and also in xterms. It
4378 seems that now I'm using 'cleaner' ansi sequences.
4381 seems that now I'm using 'cleaner' ansi sequences.
4379
4382
4380 2002-02-21 Fernando Perez <fperez@colorado.edu>
4383 2002-02-21 Fernando Perez <fperez@colorado.edu>
4381
4384
4382 * Released 0.2.7 (mainly to publish the scoping fix).
4385 * Released 0.2.7 (mainly to publish the scoping fix).
4383
4386
4384 * IPython/Logger.py (Logger.logstate): added. A corresponding
4387 * IPython/Logger.py (Logger.logstate): added. A corresponding
4385 @logstate magic was created.
4388 @logstate magic was created.
4386
4389
4387 * IPython/Magic.py: fixed nested scoping problem under Python
4390 * IPython/Magic.py: fixed nested scoping problem under Python
4388 2.1.x (automagic wasn't working).
4391 2.1.x (automagic wasn't working).
4389
4392
4390 2002-02-20 Fernando Perez <fperez@colorado.edu>
4393 2002-02-20 Fernando Perez <fperez@colorado.edu>
4391
4394
4392 * Released 0.2.6.
4395 * Released 0.2.6.
4393
4396
4394 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4397 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4395 option so that logs can come out without any headers at all.
4398 option so that logs can come out without any headers at all.
4396
4399
4397 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4400 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4398 SciPy.
4401 SciPy.
4399
4402
4400 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4403 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4401 that embedded IPython calls don't require vars() to be explicitly
4404 that embedded IPython calls don't require vars() to be explicitly
4402 passed. Now they are extracted from the caller's frame (code
4405 passed. Now they are extracted from the caller's frame (code
4403 snatched from Eric Jones' weave). Added better documentation to
4406 snatched from Eric Jones' weave). Added better documentation to
4404 the section on embedding and the example file.
4407 the section on embedding and the example file.
4405
4408
4406 * IPython/genutils.py (page): Changed so that under emacs, it just
4409 * IPython/genutils.py (page): Changed so that under emacs, it just
4407 prints the string. You can then page up and down in the emacs
4410 prints the string. You can then page up and down in the emacs
4408 buffer itself. This is how the builtin help() works.
4411 buffer itself. This is how the builtin help() works.
4409
4412
4410 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4413 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4411 macro scoping: macros need to be executed in the user's namespace
4414 macro scoping: macros need to be executed in the user's namespace
4412 to work as if they had been typed by the user.
4415 to work as if they had been typed by the user.
4413
4416
4414 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4417 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4415 execute automatically (no need to type 'exec...'). They then
4418 execute automatically (no need to type 'exec...'). They then
4416 behave like 'true macros'. The printing system was also modified
4419 behave like 'true macros'. The printing system was also modified
4417 for this to work.
4420 for this to work.
4418
4421
4419 2002-02-19 Fernando Perez <fperez@colorado.edu>
4422 2002-02-19 Fernando Perez <fperez@colorado.edu>
4420
4423
4421 * IPython/genutils.py (page_file): new function for paging files
4424 * IPython/genutils.py (page_file): new function for paging files
4422 in an OS-independent way. Also necessary for file viewing to work
4425 in an OS-independent way. Also necessary for file viewing to work
4423 well inside Emacs buffers.
4426 well inside Emacs buffers.
4424 (page): Added checks for being in an emacs buffer.
4427 (page): Added checks for being in an emacs buffer.
4425 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4428 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4426 same bug in iplib.
4429 same bug in iplib.
4427
4430
4428 2002-02-18 Fernando Perez <fperez@colorado.edu>
4431 2002-02-18 Fernando Perez <fperez@colorado.edu>
4429
4432
4430 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4433 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4431 of readline so that IPython can work inside an Emacs buffer.
4434 of readline so that IPython can work inside an Emacs buffer.
4432
4435
4433 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4436 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4434 method signatures (they weren't really bugs, but it looks cleaner
4437 method signatures (they weren't really bugs, but it looks cleaner
4435 and keeps PyChecker happy).
4438 and keeps PyChecker happy).
4436
4439
4437 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4440 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4438 for implementing various user-defined hooks. Currently only
4441 for implementing various user-defined hooks. Currently only
4439 display is done.
4442 display is done.
4440
4443
4441 * IPython/Prompts.py (CachedOutput._display): changed display
4444 * IPython/Prompts.py (CachedOutput._display): changed display
4442 functions so that they can be dynamically changed by users easily.
4445 functions so that they can be dynamically changed by users easily.
4443
4446
4444 * IPython/Extensions/numeric_formats.py (num_display): added an
4447 * IPython/Extensions/numeric_formats.py (num_display): added an
4445 extension for printing NumPy arrays in flexible manners. It
4448 extension for printing NumPy arrays in flexible manners. It
4446 doesn't do anything yet, but all the structure is in
4449 doesn't do anything yet, but all the structure is in
4447 place. Ultimately the plan is to implement output format control
4450 place. Ultimately the plan is to implement output format control
4448 like in Octave.
4451 like in Octave.
4449
4452
4450 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4453 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4451 methods are found at run-time by all the automatic machinery.
4454 methods are found at run-time by all the automatic machinery.
4452
4455
4453 2002-02-17 Fernando Perez <fperez@colorado.edu>
4456 2002-02-17 Fernando Perez <fperez@colorado.edu>
4454
4457
4455 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4458 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4456 whole file a little.
4459 whole file a little.
4457
4460
4458 * ToDo: closed this document. Now there's a new_design.lyx
4461 * ToDo: closed this document. Now there's a new_design.lyx
4459 document for all new ideas. Added making a pdf of it for the
4462 document for all new ideas. Added making a pdf of it for the
4460 end-user distro.
4463 end-user distro.
4461
4464
4462 * IPython/Logger.py (Logger.switch_log): Created this to replace
4465 * IPython/Logger.py (Logger.switch_log): Created this to replace
4463 logon() and logoff(). It also fixes a nasty crash reported by
4466 logon() and logoff(). It also fixes a nasty crash reported by
4464 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4467 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4465
4468
4466 * IPython/iplib.py (complete): got auto-completion to work with
4469 * IPython/iplib.py (complete): got auto-completion to work with
4467 automagic (I had wanted this for a long time).
4470 automagic (I had wanted this for a long time).
4468
4471
4469 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4472 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4470 to @file, since file() is now a builtin and clashes with automagic
4473 to @file, since file() is now a builtin and clashes with automagic
4471 for @file.
4474 for @file.
4472
4475
4473 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4476 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4474 of this was previously in iplib, which had grown to more than 2000
4477 of this was previously in iplib, which had grown to more than 2000
4475 lines, way too long. No new functionality, but it makes managing
4478 lines, way too long. No new functionality, but it makes managing
4476 the code a bit easier.
4479 the code a bit easier.
4477
4480
4478 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4481 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4479 information to crash reports.
4482 information to crash reports.
4480
4483
4481 2002-02-12 Fernando Perez <fperez@colorado.edu>
4484 2002-02-12 Fernando Perez <fperez@colorado.edu>
4482
4485
4483 * Released 0.2.5.
4486 * Released 0.2.5.
4484
4487
4485 2002-02-11 Fernando Perez <fperez@colorado.edu>
4488 2002-02-11 Fernando Perez <fperez@colorado.edu>
4486
4489
4487 * Wrote a relatively complete Windows installer. It puts
4490 * Wrote a relatively complete Windows installer. It puts
4488 everything in place, creates Start Menu entries and fixes the
4491 everything in place, creates Start Menu entries and fixes the
4489 color issues. Nothing fancy, but it works.
4492 color issues. Nothing fancy, but it works.
4490
4493
4491 2002-02-10 Fernando Perez <fperez@colorado.edu>
4494 2002-02-10 Fernando Perez <fperez@colorado.edu>
4492
4495
4493 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4496 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4494 os.path.expanduser() call so that we can type @run ~/myfile.py and
4497 os.path.expanduser() call so that we can type @run ~/myfile.py and
4495 have thigs work as expected.
4498 have thigs work as expected.
4496
4499
4497 * IPython/genutils.py (page): fixed exception handling so things
4500 * IPython/genutils.py (page): fixed exception handling so things
4498 work both in Unix and Windows correctly. Quitting a pager triggers
4501 work both in Unix and Windows correctly. Quitting a pager triggers
4499 an IOError/broken pipe in Unix, and in windows not finding a pager
4502 an IOError/broken pipe in Unix, and in windows not finding a pager
4500 is also an IOError, so I had to actually look at the return value
4503 is also an IOError, so I had to actually look at the return value
4501 of the exception, not just the exception itself. Should be ok now.
4504 of the exception, not just the exception itself. Should be ok now.
4502
4505
4503 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4506 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4504 modified to allow case-insensitive color scheme changes.
4507 modified to allow case-insensitive color scheme changes.
4505
4508
4506 2002-02-09 Fernando Perez <fperez@colorado.edu>
4509 2002-02-09 Fernando Perez <fperez@colorado.edu>
4507
4510
4508 * IPython/genutils.py (native_line_ends): new function to leave
4511 * IPython/genutils.py (native_line_ends): new function to leave
4509 user config files with os-native line-endings.
4512 user config files with os-native line-endings.
4510
4513
4511 * README and manual updates.
4514 * README and manual updates.
4512
4515
4513 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4516 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4514 instead of StringType to catch Unicode strings.
4517 instead of StringType to catch Unicode strings.
4515
4518
4516 * IPython/genutils.py (filefind): fixed bug for paths with
4519 * IPython/genutils.py (filefind): fixed bug for paths with
4517 embedded spaces (very common in Windows).
4520 embedded spaces (very common in Windows).
4518
4521
4519 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4522 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4520 files under Windows, so that they get automatically associated
4523 files under Windows, so that they get automatically associated
4521 with a text editor. Windows makes it a pain to handle
4524 with a text editor. Windows makes it a pain to handle
4522 extension-less files.
4525 extension-less files.
4523
4526
4524 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4527 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4525 warning about readline only occur for Posix. In Windows there's no
4528 warning about readline only occur for Posix. In Windows there's no
4526 way to get readline, so why bother with the warning.
4529 way to get readline, so why bother with the warning.
4527
4530
4528 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4531 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4529 for __str__ instead of dir(self), since dir() changed in 2.2.
4532 for __str__ instead of dir(self), since dir() changed in 2.2.
4530
4533
4531 * Ported to Windows! Tested on XP, I suspect it should work fine
4534 * Ported to Windows! Tested on XP, I suspect it should work fine
4532 on NT/2000, but I don't think it will work on 98 et al. That
4535 on NT/2000, but I don't think it will work on 98 et al. That
4533 series of Windows is such a piece of junk anyway that I won't try
4536 series of Windows is such a piece of junk anyway that I won't try
4534 porting it there. The XP port was straightforward, showed a few
4537 porting it there. The XP port was straightforward, showed a few
4535 bugs here and there (fixed all), in particular some string
4538 bugs here and there (fixed all), in particular some string
4536 handling stuff which required considering Unicode strings (which
4539 handling stuff which required considering Unicode strings (which
4537 Windows uses). This is good, but hasn't been too tested :) No
4540 Windows uses). This is good, but hasn't been too tested :) No
4538 fancy installer yet, I'll put a note in the manual so people at
4541 fancy installer yet, I'll put a note in the manual so people at
4539 least make manually a shortcut.
4542 least make manually a shortcut.
4540
4543
4541 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4544 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4542 into a single one, "colors". This now controls both prompt and
4545 into a single one, "colors". This now controls both prompt and
4543 exception color schemes, and can be changed both at startup
4546 exception color schemes, and can be changed both at startup
4544 (either via command-line switches or via ipythonrc files) and at
4547 (either via command-line switches or via ipythonrc files) and at
4545 runtime, with @colors.
4548 runtime, with @colors.
4546 (Magic.magic_run): renamed @prun to @run and removed the old
4549 (Magic.magic_run): renamed @prun to @run and removed the old
4547 @run. The two were too similar to warrant keeping both.
4550 @run. The two were too similar to warrant keeping both.
4548
4551
4549 2002-02-03 Fernando Perez <fperez@colorado.edu>
4552 2002-02-03 Fernando Perez <fperez@colorado.edu>
4550
4553
4551 * IPython/iplib.py (install_first_time): Added comment on how to
4554 * IPython/iplib.py (install_first_time): Added comment on how to
4552 configure the color options for first-time users. Put a <return>
4555 configure the color options for first-time users. Put a <return>
4553 request at the end so that small-terminal users get a chance to
4556 request at the end so that small-terminal users get a chance to
4554 read the startup info.
4557 read the startup info.
4555
4558
4556 2002-01-23 Fernando Perez <fperez@colorado.edu>
4559 2002-01-23 Fernando Perez <fperez@colorado.edu>
4557
4560
4558 * IPython/iplib.py (CachedOutput.update): Changed output memory
4561 * IPython/iplib.py (CachedOutput.update): Changed output memory
4559 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4562 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4560 input history we still use _i. Did this b/c these variable are
4563 input history we still use _i. Did this b/c these variable are
4561 very commonly used in interactive work, so the less we need to
4564 very commonly used in interactive work, so the less we need to
4562 type the better off we are.
4565 type the better off we are.
4563 (Magic.magic_prun): updated @prun to better handle the namespaces
4566 (Magic.magic_prun): updated @prun to better handle the namespaces
4564 the file will run in, including a fix for __name__ not being set
4567 the file will run in, including a fix for __name__ not being set
4565 before.
4568 before.
4566
4569
4567 2002-01-20 Fernando Perez <fperez@colorado.edu>
4570 2002-01-20 Fernando Perez <fperez@colorado.edu>
4568
4571
4569 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4572 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4570 extra garbage for Python 2.2. Need to look more carefully into
4573 extra garbage for Python 2.2. Need to look more carefully into
4571 this later.
4574 this later.
4572
4575
4573 2002-01-19 Fernando Perez <fperez@colorado.edu>
4576 2002-01-19 Fernando Perez <fperez@colorado.edu>
4574
4577
4575 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4578 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4576 display SyntaxError exceptions properly formatted when they occur
4579 display SyntaxError exceptions properly formatted when they occur
4577 (they can be triggered by imported code).
4580 (they can be triggered by imported code).
4578
4581
4579 2002-01-18 Fernando Perez <fperez@colorado.edu>
4582 2002-01-18 Fernando Perez <fperez@colorado.edu>
4580
4583
4581 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4584 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4582 SyntaxError exceptions are reported nicely formatted, instead of
4585 SyntaxError exceptions are reported nicely formatted, instead of
4583 spitting out only offset information as before.
4586 spitting out only offset information as before.
4584 (Magic.magic_prun): Added the @prun function for executing
4587 (Magic.magic_prun): Added the @prun function for executing
4585 programs with command line args inside IPython.
4588 programs with command line args inside IPython.
4586
4589
4587 2002-01-16 Fernando Perez <fperez@colorado.edu>
4590 2002-01-16 Fernando Perez <fperez@colorado.edu>
4588
4591
4589 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4592 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4590 to *not* include the last item given in a range. This brings their
4593 to *not* include the last item given in a range. This brings their
4591 behavior in line with Python's slicing:
4594 behavior in line with Python's slicing:
4592 a[n1:n2] -> a[n1]...a[n2-1]
4595 a[n1:n2] -> a[n1]...a[n2-1]
4593 It may be a bit less convenient, but I prefer to stick to Python's
4596 It may be a bit less convenient, but I prefer to stick to Python's
4594 conventions *everywhere*, so users never have to wonder.
4597 conventions *everywhere*, so users never have to wonder.
4595 (Magic.magic_macro): Added @macro function to ease the creation of
4598 (Magic.magic_macro): Added @macro function to ease the creation of
4596 macros.
4599 macros.
4597
4600
4598 2002-01-05 Fernando Perez <fperez@colorado.edu>
4601 2002-01-05 Fernando Perez <fperez@colorado.edu>
4599
4602
4600 * Released 0.2.4.
4603 * Released 0.2.4.
4601
4604
4602 * IPython/iplib.py (Magic.magic_pdef):
4605 * IPython/iplib.py (Magic.magic_pdef):
4603 (InteractiveShell.safe_execfile): report magic lines and error
4606 (InteractiveShell.safe_execfile): report magic lines and error
4604 lines without line numbers so one can easily copy/paste them for
4607 lines without line numbers so one can easily copy/paste them for
4605 re-execution.
4608 re-execution.
4606
4609
4607 * Updated manual with recent changes.
4610 * Updated manual with recent changes.
4608
4611
4609 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4612 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4610 docstring printing when class? is called. Very handy for knowing
4613 docstring printing when class? is called. Very handy for knowing
4611 how to create class instances (as long as __init__ is well
4614 how to create class instances (as long as __init__ is well
4612 documented, of course :)
4615 documented, of course :)
4613 (Magic.magic_doc): print both class and constructor docstrings.
4616 (Magic.magic_doc): print both class and constructor docstrings.
4614 (Magic.magic_pdef): give constructor info if passed a class and
4617 (Magic.magic_pdef): give constructor info if passed a class and
4615 __call__ info for callable object instances.
4618 __call__ info for callable object instances.
4616
4619
4617 2002-01-04 Fernando Perez <fperez@colorado.edu>
4620 2002-01-04 Fernando Perez <fperez@colorado.edu>
4618
4621
4619 * Made deep_reload() off by default. It doesn't always work
4622 * Made deep_reload() off by default. It doesn't always work
4620 exactly as intended, so it's probably safer to have it off. It's
4623 exactly as intended, so it's probably safer to have it off. It's
4621 still available as dreload() anyway, so nothing is lost.
4624 still available as dreload() anyway, so nothing is lost.
4622
4625
4623 2002-01-02 Fernando Perez <fperez@colorado.edu>
4626 2002-01-02 Fernando Perez <fperez@colorado.edu>
4624
4627
4625 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4628 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4626 so I wanted an updated release).
4629 so I wanted an updated release).
4627
4630
4628 2001-12-27 Fernando Perez <fperez@colorado.edu>
4631 2001-12-27 Fernando Perez <fperez@colorado.edu>
4629
4632
4630 * IPython/iplib.py (InteractiveShell.interact): Added the original
4633 * IPython/iplib.py (InteractiveShell.interact): Added the original
4631 code from 'code.py' for this module in order to change the
4634 code from 'code.py' for this module in order to change the
4632 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4635 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4633 the history cache would break when the user hit Ctrl-C, and
4636 the history cache would break when the user hit Ctrl-C, and
4634 interact() offers no way to add any hooks to it.
4637 interact() offers no way to add any hooks to it.
4635
4638
4636 2001-12-23 Fernando Perez <fperez@colorado.edu>
4639 2001-12-23 Fernando Perez <fperez@colorado.edu>
4637
4640
4638 * setup.py: added check for 'MANIFEST' before trying to remove
4641 * setup.py: added check for 'MANIFEST' before trying to remove
4639 it. Thanks to Sean Reifschneider.
4642 it. Thanks to Sean Reifschneider.
4640
4643
4641 2001-12-22 Fernando Perez <fperez@colorado.edu>
4644 2001-12-22 Fernando Perez <fperez@colorado.edu>
4642
4645
4643 * Released 0.2.2.
4646 * Released 0.2.2.
4644
4647
4645 * Finished (reasonably) writing the manual. Later will add the
4648 * Finished (reasonably) writing the manual. Later will add the
4646 python-standard navigation stylesheets, but for the time being
4649 python-standard navigation stylesheets, but for the time being
4647 it's fairly complete. Distribution will include html and pdf
4650 it's fairly complete. Distribution will include html and pdf
4648 versions.
4651 versions.
4649
4652
4650 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4653 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4651 (MayaVi author).
4654 (MayaVi author).
4652
4655
4653 2001-12-21 Fernando Perez <fperez@colorado.edu>
4656 2001-12-21 Fernando Perez <fperez@colorado.edu>
4654
4657
4655 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4658 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4656 good public release, I think (with the manual and the distutils
4659 good public release, I think (with the manual and the distutils
4657 installer). The manual can use some work, but that can go
4660 installer). The manual can use some work, but that can go
4658 slowly. Otherwise I think it's quite nice for end users. Next
4661 slowly. Otherwise I think it's quite nice for end users. Next
4659 summer, rewrite the guts of it...
4662 summer, rewrite the guts of it...
4660
4663
4661 * Changed format of ipythonrc files to use whitespace as the
4664 * Changed format of ipythonrc files to use whitespace as the
4662 separator instead of an explicit '='. Cleaner.
4665 separator instead of an explicit '='. Cleaner.
4663
4666
4664 2001-12-20 Fernando Perez <fperez@colorado.edu>
4667 2001-12-20 Fernando Perez <fperez@colorado.edu>
4665
4668
4666 * Started a manual in LyX. For now it's just a quick merge of the
4669 * Started a manual in LyX. For now it's just a quick merge of the
4667 various internal docstrings and READMEs. Later it may grow into a
4670 various internal docstrings and READMEs. Later it may grow into a
4668 nice, full-blown manual.
4671 nice, full-blown manual.
4669
4672
4670 * Set up a distutils based installer. Installation should now be
4673 * Set up a distutils based installer. Installation should now be
4671 trivially simple for end-users.
4674 trivially simple for end-users.
4672
4675
4673 2001-12-11 Fernando Perez <fperez@colorado.edu>
4676 2001-12-11 Fernando Perez <fperez@colorado.edu>
4674
4677
4675 * Released 0.2.0. First public release, announced it at
4678 * Released 0.2.0. First public release, announced it at
4676 comp.lang.python. From now on, just bugfixes...
4679 comp.lang.python. From now on, just bugfixes...
4677
4680
4678 * Went through all the files, set copyright/license notices and
4681 * Went through all the files, set copyright/license notices and
4679 cleaned up things. Ready for release.
4682 cleaned up things. Ready for release.
4680
4683
4681 2001-12-10 Fernando Perez <fperez@colorado.edu>
4684 2001-12-10 Fernando Perez <fperez@colorado.edu>
4682
4685
4683 * Changed the first-time installer not to use tarfiles. It's more
4686 * Changed the first-time installer not to use tarfiles. It's more
4684 robust now and less unix-dependent. Also makes it easier for
4687 robust now and less unix-dependent. Also makes it easier for
4685 people to later upgrade versions.
4688 people to later upgrade versions.
4686
4689
4687 * Changed @exit to @abort to reflect the fact that it's pretty
4690 * Changed @exit to @abort to reflect the fact that it's pretty
4688 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4691 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4689 becomes significant only when IPyhton is embedded: in that case,
4692 becomes significant only when IPyhton is embedded: in that case,
4690 C-D closes IPython only, but @abort kills the enclosing program
4693 C-D closes IPython only, but @abort kills the enclosing program
4691 too (unless it had called IPython inside a try catching
4694 too (unless it had called IPython inside a try catching
4692 SystemExit).
4695 SystemExit).
4693
4696
4694 * Created Shell module which exposes the actuall IPython Shell
4697 * Created Shell module which exposes the actuall IPython Shell
4695 classes, currently the normal and the embeddable one. This at
4698 classes, currently the normal and the embeddable one. This at
4696 least offers a stable interface we won't need to change when
4699 least offers a stable interface we won't need to change when
4697 (later) the internals are rewritten. That rewrite will be confined
4700 (later) the internals are rewritten. That rewrite will be confined
4698 to iplib and ipmaker, but the Shell interface should remain as is.
4701 to iplib and ipmaker, but the Shell interface should remain as is.
4699
4702
4700 * Added embed module which offers an embeddable IPShell object,
4703 * Added embed module which offers an embeddable IPShell object,
4701 useful to fire up IPython *inside* a running program. Great for
4704 useful to fire up IPython *inside* a running program. Great for
4702 debugging or dynamical data analysis.
4705 debugging or dynamical data analysis.
4703
4706
4704 2001-12-08 Fernando Perez <fperez@colorado.edu>
4707 2001-12-08 Fernando Perez <fperez@colorado.edu>
4705
4708
4706 * Fixed small bug preventing seeing info from methods of defined
4709 * Fixed small bug preventing seeing info from methods of defined
4707 objects (incorrect namespace in _ofind()).
4710 objects (incorrect namespace in _ofind()).
4708
4711
4709 * Documentation cleanup. Moved the main usage docstrings to a
4712 * Documentation cleanup. Moved the main usage docstrings to a
4710 separate file, usage.py (cleaner to maintain, and hopefully in the
4713 separate file, usage.py (cleaner to maintain, and hopefully in the
4711 future some perlpod-like way of producing interactive, man and
4714 future some perlpod-like way of producing interactive, man and
4712 html docs out of it will be found).
4715 html docs out of it will be found).
4713
4716
4714 * Added @profile to see your profile at any time.
4717 * Added @profile to see your profile at any time.
4715
4718
4716 * Added @p as an alias for 'print'. It's especially convenient if
4719 * Added @p as an alias for 'print'. It's especially convenient if
4717 using automagic ('p x' prints x).
4720 using automagic ('p x' prints x).
4718
4721
4719 * Small cleanups and fixes after a pychecker run.
4722 * Small cleanups and fixes after a pychecker run.
4720
4723
4721 * Changed the @cd command to handle @cd - and @cd -<n> for
4724 * Changed the @cd command to handle @cd - and @cd -<n> for
4722 visiting any directory in _dh.
4725 visiting any directory in _dh.
4723
4726
4724 * Introduced _dh, a history of visited directories. @dhist prints
4727 * Introduced _dh, a history of visited directories. @dhist prints
4725 it out with numbers.
4728 it out with numbers.
4726
4729
4727 2001-12-07 Fernando Perez <fperez@colorado.edu>
4730 2001-12-07 Fernando Perez <fperez@colorado.edu>
4728
4731
4729 * Released 0.1.22
4732 * Released 0.1.22
4730
4733
4731 * Made initialization a bit more robust against invalid color
4734 * Made initialization a bit more robust against invalid color
4732 options in user input (exit, not traceback-crash).
4735 options in user input (exit, not traceback-crash).
4733
4736
4734 * Changed the bug crash reporter to write the report only in the
4737 * Changed the bug crash reporter to write the report only in the
4735 user's .ipython directory. That way IPython won't litter people's
4738 user's .ipython directory. That way IPython won't litter people's
4736 hard disks with crash files all over the place. Also print on
4739 hard disks with crash files all over the place. Also print on
4737 screen the necessary mail command.
4740 screen the necessary mail command.
4738
4741
4739 * With the new ultraTB, implemented LightBG color scheme for light
4742 * With the new ultraTB, implemented LightBG color scheme for light
4740 background terminals. A lot of people like white backgrounds, so I
4743 background terminals. A lot of people like white backgrounds, so I
4741 guess we should at least give them something readable.
4744 guess we should at least give them something readable.
4742
4745
4743 2001-12-06 Fernando Perez <fperez@colorado.edu>
4746 2001-12-06 Fernando Perez <fperez@colorado.edu>
4744
4747
4745 * Modified the structure of ultraTB. Now there's a proper class
4748 * Modified the structure of ultraTB. Now there's a proper class
4746 for tables of color schemes which allow adding schemes easily and
4749 for tables of color schemes which allow adding schemes easily and
4747 switching the active scheme without creating a new instance every
4750 switching the active scheme without creating a new instance every
4748 time (which was ridiculous). The syntax for creating new schemes
4751 time (which was ridiculous). The syntax for creating new schemes
4749 is also cleaner. I think ultraTB is finally done, with a clean
4752 is also cleaner. I think ultraTB is finally done, with a clean
4750 class structure. Names are also much cleaner (now there's proper
4753 class structure. Names are also much cleaner (now there's proper
4751 color tables, no need for every variable to also have 'color' in
4754 color tables, no need for every variable to also have 'color' in
4752 its name).
4755 its name).
4753
4756
4754 * Broke down genutils into separate files. Now genutils only
4757 * Broke down genutils into separate files. Now genutils only
4755 contains utility functions, and classes have been moved to their
4758 contains utility functions, and classes have been moved to their
4756 own files (they had enough independent functionality to warrant
4759 own files (they had enough independent functionality to warrant
4757 it): ConfigLoader, OutputTrap, Struct.
4760 it): ConfigLoader, OutputTrap, Struct.
4758
4761
4759 2001-12-05 Fernando Perez <fperez@colorado.edu>
4762 2001-12-05 Fernando Perez <fperez@colorado.edu>
4760
4763
4761 * IPython turns 21! Released version 0.1.21, as a candidate for
4764 * IPython turns 21! Released version 0.1.21, as a candidate for
4762 public consumption. If all goes well, release in a few days.
4765 public consumption. If all goes well, release in a few days.
4763
4766
4764 * Fixed path bug (files in Extensions/ directory wouldn't be found
4767 * Fixed path bug (files in Extensions/ directory wouldn't be found
4765 unless IPython/ was explicitly in sys.path).
4768 unless IPython/ was explicitly in sys.path).
4766
4769
4767 * Extended the FlexCompleter class as MagicCompleter to allow
4770 * Extended the FlexCompleter class as MagicCompleter to allow
4768 completion of @-starting lines.
4771 completion of @-starting lines.
4769
4772
4770 * Created __release__.py file as a central repository for release
4773 * Created __release__.py file as a central repository for release
4771 info that other files can read from.
4774 info that other files can read from.
4772
4775
4773 * Fixed small bug in logging: when logging was turned on in
4776 * Fixed small bug in logging: when logging was turned on in
4774 mid-session, old lines with special meanings (!@?) were being
4777 mid-session, old lines with special meanings (!@?) were being
4775 logged without the prepended comment, which is necessary since
4778 logged without the prepended comment, which is necessary since
4776 they are not truly valid python syntax. This should make session
4779 they are not truly valid python syntax. This should make session
4777 restores produce less errors.
4780 restores produce less errors.
4778
4781
4779 * The namespace cleanup forced me to make a FlexCompleter class
4782 * The namespace cleanup forced me to make a FlexCompleter class
4780 which is nothing but a ripoff of rlcompleter, but with selectable
4783 which is nothing but a ripoff of rlcompleter, but with selectable
4781 namespace (rlcompleter only works in __main__.__dict__). I'll try
4784 namespace (rlcompleter only works in __main__.__dict__). I'll try
4782 to submit a note to the authors to see if this change can be
4785 to submit a note to the authors to see if this change can be
4783 incorporated in future rlcompleter releases (Dec.6: done)
4786 incorporated in future rlcompleter releases (Dec.6: done)
4784
4787
4785 * More fixes to namespace handling. It was a mess! Now all
4788 * More fixes to namespace handling. It was a mess! Now all
4786 explicit references to __main__.__dict__ are gone (except when
4789 explicit references to __main__.__dict__ are gone (except when
4787 really needed) and everything is handled through the namespace
4790 really needed) and everything is handled through the namespace
4788 dicts in the IPython instance. We seem to be getting somewhere
4791 dicts in the IPython instance. We seem to be getting somewhere
4789 with this, finally...
4792 with this, finally...
4790
4793
4791 * Small documentation updates.
4794 * Small documentation updates.
4792
4795
4793 * Created the Extensions directory under IPython (with an
4796 * Created the Extensions directory under IPython (with an
4794 __init__.py). Put the PhysicalQ stuff there. This directory should
4797 __init__.py). Put the PhysicalQ stuff there. This directory should
4795 be used for all special-purpose extensions.
4798 be used for all special-purpose extensions.
4796
4799
4797 * File renaming:
4800 * File renaming:
4798 ipythonlib --> ipmaker
4801 ipythonlib --> ipmaker
4799 ipplib --> iplib
4802 ipplib --> iplib
4800 This makes a bit more sense in terms of what these files actually do.
4803 This makes a bit more sense in terms of what these files actually do.
4801
4804
4802 * Moved all the classes and functions in ipythonlib to ipplib, so
4805 * Moved all the classes and functions in ipythonlib to ipplib, so
4803 now ipythonlib only has make_IPython(). This will ease up its
4806 now ipythonlib only has make_IPython(). This will ease up its
4804 splitting in smaller functional chunks later.
4807 splitting in smaller functional chunks later.
4805
4808
4806 * Cleaned up (done, I think) output of @whos. Better column
4809 * Cleaned up (done, I think) output of @whos. Better column
4807 formatting, and now shows str(var) for as much as it can, which is
4810 formatting, and now shows str(var) for as much as it can, which is
4808 typically what one gets with a 'print var'.
4811 typically what one gets with a 'print var'.
4809
4812
4810 2001-12-04 Fernando Perez <fperez@colorado.edu>
4813 2001-12-04 Fernando Perez <fperez@colorado.edu>
4811
4814
4812 * Fixed namespace problems. Now builtin/IPyhton/user names get
4815 * Fixed namespace problems. Now builtin/IPyhton/user names get
4813 properly reported in their namespace. Internal namespace handling
4816 properly reported in their namespace. Internal namespace handling
4814 is finally getting decent (not perfect yet, but much better than
4817 is finally getting decent (not perfect yet, but much better than
4815 the ad-hoc mess we had).
4818 the ad-hoc mess we had).
4816
4819
4817 * Removed -exit option. If people just want to run a python
4820 * Removed -exit option. If people just want to run a python
4818 script, that's what the normal interpreter is for. Less
4821 script, that's what the normal interpreter is for. Less
4819 unnecessary options, less chances for bugs.
4822 unnecessary options, less chances for bugs.
4820
4823
4821 * Added a crash handler which generates a complete post-mortem if
4824 * Added a crash handler which generates a complete post-mortem if
4822 IPython crashes. This will help a lot in tracking bugs down the
4825 IPython crashes. This will help a lot in tracking bugs down the
4823 road.
4826 road.
4824
4827
4825 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4828 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4826 which were boud to functions being reassigned would bypass the
4829 which were boud to functions being reassigned would bypass the
4827 logger, breaking the sync of _il with the prompt counter. This
4830 logger, breaking the sync of _il with the prompt counter. This
4828 would then crash IPython later when a new line was logged.
4831 would then crash IPython later when a new line was logged.
4829
4832
4830 2001-12-02 Fernando Perez <fperez@colorado.edu>
4833 2001-12-02 Fernando Perez <fperez@colorado.edu>
4831
4834
4832 * Made IPython a package. This means people don't have to clutter
4835 * Made IPython a package. This means people don't have to clutter
4833 their sys.path with yet another directory. Changed the INSTALL
4836 their sys.path with yet another directory. Changed the INSTALL
4834 file accordingly.
4837 file accordingly.
4835
4838
4836 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4839 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4837 sorts its output (so @who shows it sorted) and @whos formats the
4840 sorts its output (so @who shows it sorted) and @whos formats the
4838 table according to the width of the first column. Nicer, easier to
4841 table according to the width of the first column. Nicer, easier to
4839 read. Todo: write a generic table_format() which takes a list of
4842 read. Todo: write a generic table_format() which takes a list of
4840 lists and prints it nicely formatted, with optional row/column
4843 lists and prints it nicely formatted, with optional row/column
4841 separators and proper padding and justification.
4844 separators and proper padding and justification.
4842
4845
4843 * Released 0.1.20
4846 * Released 0.1.20
4844
4847
4845 * Fixed bug in @log which would reverse the inputcache list (a
4848 * Fixed bug in @log which would reverse the inputcache list (a
4846 copy operation was missing).
4849 copy operation was missing).
4847
4850
4848 * Code cleanup. @config was changed to use page(). Better, since
4851 * Code cleanup. @config was changed to use page(). Better, since
4849 its output is always quite long.
4852 its output is always quite long.
4850
4853
4851 * Itpl is back as a dependency. I was having too many problems
4854 * Itpl is back as a dependency. I was having too many problems
4852 getting the parametric aliases to work reliably, and it's just
4855 getting the parametric aliases to work reliably, and it's just
4853 easier to code weird string operations with it than playing %()s
4856 easier to code weird string operations with it than playing %()s
4854 games. It's only ~6k, so I don't think it's too big a deal.
4857 games. It's only ~6k, so I don't think it's too big a deal.
4855
4858
4856 * Found (and fixed) a very nasty bug with history. !lines weren't
4859 * Found (and fixed) a very nasty bug with history. !lines weren't
4857 getting cached, and the out of sync caches would crash
4860 getting cached, and the out of sync caches would crash
4858 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4861 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4859 division of labor a bit better. Bug fixed, cleaner structure.
4862 division of labor a bit better. Bug fixed, cleaner structure.
4860
4863
4861 2001-12-01 Fernando Perez <fperez@colorado.edu>
4864 2001-12-01 Fernando Perez <fperez@colorado.edu>
4862
4865
4863 * Released 0.1.19
4866 * Released 0.1.19
4864
4867
4865 * Added option -n to @hist to prevent line number printing. Much
4868 * Added option -n to @hist to prevent line number printing. Much
4866 easier to copy/paste code this way.
4869 easier to copy/paste code this way.
4867
4870
4868 * Created global _il to hold the input list. Allows easy
4871 * Created global _il to hold the input list. Allows easy
4869 re-execution of blocks of code by slicing it (inspired by Janko's
4872 re-execution of blocks of code by slicing it (inspired by Janko's
4870 comment on 'macros').
4873 comment on 'macros').
4871
4874
4872 * Small fixes and doc updates.
4875 * Small fixes and doc updates.
4873
4876
4874 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4877 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4875 much too fragile with automagic. Handles properly multi-line
4878 much too fragile with automagic. Handles properly multi-line
4876 statements and takes parameters.
4879 statements and takes parameters.
4877
4880
4878 2001-11-30 Fernando Perez <fperez@colorado.edu>
4881 2001-11-30 Fernando Perez <fperez@colorado.edu>
4879
4882
4880 * Version 0.1.18 released.
4883 * Version 0.1.18 released.
4881
4884
4882 * Fixed nasty namespace bug in initial module imports.
4885 * Fixed nasty namespace bug in initial module imports.
4883
4886
4884 * Added copyright/license notes to all code files (except
4887 * Added copyright/license notes to all code files (except
4885 DPyGetOpt). For the time being, LGPL. That could change.
4888 DPyGetOpt). For the time being, LGPL. That could change.
4886
4889
4887 * Rewrote a much nicer README, updated INSTALL, cleaned up
4890 * Rewrote a much nicer README, updated INSTALL, cleaned up
4888 ipythonrc-* samples.
4891 ipythonrc-* samples.
4889
4892
4890 * Overall code/documentation cleanup. Basically ready for
4893 * Overall code/documentation cleanup. Basically ready for
4891 release. Only remaining thing: licence decision (LGPL?).
4894 release. Only remaining thing: licence decision (LGPL?).
4892
4895
4893 * Converted load_config to a class, ConfigLoader. Now recursion
4896 * Converted load_config to a class, ConfigLoader. Now recursion
4894 control is better organized. Doesn't include the same file twice.
4897 control is better organized. Doesn't include the same file twice.
4895
4898
4896 2001-11-29 Fernando Perez <fperez@colorado.edu>
4899 2001-11-29 Fernando Perez <fperez@colorado.edu>
4897
4900
4898 * Got input history working. Changed output history variables from
4901 * Got input history working. Changed output history variables from
4899 _p to _o so that _i is for input and _o for output. Just cleaner
4902 _p to _o so that _i is for input and _o for output. Just cleaner
4900 convention.
4903 convention.
4901
4904
4902 * Implemented parametric aliases. This pretty much allows the
4905 * Implemented parametric aliases. This pretty much allows the
4903 alias system to offer full-blown shell convenience, I think.
4906 alias system to offer full-blown shell convenience, I think.
4904
4907
4905 * Version 0.1.17 released, 0.1.18 opened.
4908 * Version 0.1.17 released, 0.1.18 opened.
4906
4909
4907 * dot_ipython/ipythonrc (alias): added documentation.
4910 * dot_ipython/ipythonrc (alias): added documentation.
4908 (xcolor): Fixed small bug (xcolors -> xcolor)
4911 (xcolor): Fixed small bug (xcolors -> xcolor)
4909
4912
4910 * Changed the alias system. Now alias is a magic command to define
4913 * Changed the alias system. Now alias is a magic command to define
4911 aliases just like the shell. Rationale: the builtin magics should
4914 aliases just like the shell. Rationale: the builtin magics should
4912 be there for things deeply connected to IPython's
4915 be there for things deeply connected to IPython's
4913 architecture. And this is a much lighter system for what I think
4916 architecture. And this is a much lighter system for what I think
4914 is the really important feature: allowing users to define quickly
4917 is the really important feature: allowing users to define quickly
4915 magics that will do shell things for them, so they can customize
4918 magics that will do shell things for them, so they can customize
4916 IPython easily to match their work habits. If someone is really
4919 IPython easily to match their work habits. If someone is really
4917 desperate to have another name for a builtin alias, they can
4920 desperate to have another name for a builtin alias, they can
4918 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4921 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4919 works.
4922 works.
4920
4923
4921 2001-11-28 Fernando Perez <fperez@colorado.edu>
4924 2001-11-28 Fernando Perez <fperez@colorado.edu>
4922
4925
4923 * Changed @file so that it opens the source file at the proper
4926 * Changed @file so that it opens the source file at the proper
4924 line. Since it uses less, if your EDITOR environment is
4927 line. Since it uses less, if your EDITOR environment is
4925 configured, typing v will immediately open your editor of choice
4928 configured, typing v will immediately open your editor of choice
4926 right at the line where the object is defined. Not as quick as
4929 right at the line where the object is defined. Not as quick as
4927 having a direct @edit command, but for all intents and purposes it
4930 having a direct @edit command, but for all intents and purposes it
4928 works. And I don't have to worry about writing @edit to deal with
4931 works. And I don't have to worry about writing @edit to deal with
4929 all the editors, less does that.
4932 all the editors, less does that.
4930
4933
4931 * Version 0.1.16 released, 0.1.17 opened.
4934 * Version 0.1.16 released, 0.1.17 opened.
4932
4935
4933 * Fixed some nasty bugs in the page/page_dumb combo that could
4936 * Fixed some nasty bugs in the page/page_dumb combo that could
4934 crash IPython.
4937 crash IPython.
4935
4938
4936 2001-11-27 Fernando Perez <fperez@colorado.edu>
4939 2001-11-27 Fernando Perez <fperez@colorado.edu>
4937
4940
4938 * Version 0.1.15 released, 0.1.16 opened.
4941 * Version 0.1.15 released, 0.1.16 opened.
4939
4942
4940 * Finally got ? and ?? to work for undefined things: now it's
4943 * Finally got ? and ?? to work for undefined things: now it's
4941 possible to type {}.get? and get information about the get method
4944 possible to type {}.get? and get information about the get method
4942 of dicts, or os.path? even if only os is defined (so technically
4945 of dicts, or os.path? even if only os is defined (so technically
4943 os.path isn't). Works at any level. For example, after import os,
4946 os.path isn't). Works at any level. For example, after import os,
4944 os?, os.path?, os.path.abspath? all work. This is great, took some
4947 os?, os.path?, os.path.abspath? all work. This is great, took some
4945 work in _ofind.
4948 work in _ofind.
4946
4949
4947 * Fixed more bugs with logging. The sanest way to do it was to add
4950 * Fixed more bugs with logging. The sanest way to do it was to add
4948 to @log a 'mode' parameter. Killed two in one shot (this mode
4951 to @log a 'mode' parameter. Killed two in one shot (this mode
4949 option was a request of Janko's). I think it's finally clean
4952 option was a request of Janko's). I think it's finally clean
4950 (famous last words).
4953 (famous last words).
4951
4954
4952 * Added a page_dumb() pager which does a decent job of paging on
4955 * Added a page_dumb() pager which does a decent job of paging on
4953 screen, if better things (like less) aren't available. One less
4956 screen, if better things (like less) aren't available. One less
4954 unix dependency (someday maybe somebody will port this to
4957 unix dependency (someday maybe somebody will port this to
4955 windows).
4958 windows).
4956
4959
4957 * Fixed problem in magic_log: would lock of logging out if log
4960 * Fixed problem in magic_log: would lock of logging out if log
4958 creation failed (because it would still think it had succeeded).
4961 creation failed (because it would still think it had succeeded).
4959
4962
4960 * Improved the page() function using curses to auto-detect screen
4963 * Improved the page() function using curses to auto-detect screen
4961 size. Now it can make a much better decision on whether to print
4964 size. Now it can make a much better decision on whether to print
4962 or page a string. Option screen_length was modified: a value 0
4965 or page a string. Option screen_length was modified: a value 0
4963 means auto-detect, and that's the default now.
4966 means auto-detect, and that's the default now.
4964
4967
4965 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4968 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4966 go out. I'll test it for a few days, then talk to Janko about
4969 go out. I'll test it for a few days, then talk to Janko about
4967 licences and announce it.
4970 licences and announce it.
4968
4971
4969 * Fixed the length of the auto-generated ---> prompt which appears
4972 * Fixed the length of the auto-generated ---> prompt which appears
4970 for auto-parens and auto-quotes. Getting this right isn't trivial,
4973 for auto-parens and auto-quotes. Getting this right isn't trivial,
4971 with all the color escapes, different prompt types and optional
4974 with all the color escapes, different prompt types and optional
4972 separators. But it seems to be working in all the combinations.
4975 separators. But it seems to be working in all the combinations.
4973
4976
4974 2001-11-26 Fernando Perez <fperez@colorado.edu>
4977 2001-11-26 Fernando Perez <fperez@colorado.edu>
4975
4978
4976 * Wrote a regexp filter to get option types from the option names
4979 * Wrote a regexp filter to get option types from the option names
4977 string. This eliminates the need to manually keep two duplicate
4980 string. This eliminates the need to manually keep two duplicate
4978 lists.
4981 lists.
4979
4982
4980 * Removed the unneeded check_option_names. Now options are handled
4983 * Removed the unneeded check_option_names. Now options are handled
4981 in a much saner manner and it's easy to visually check that things
4984 in a much saner manner and it's easy to visually check that things
4982 are ok.
4985 are ok.
4983
4986
4984 * Updated version numbers on all files I modified to carry a
4987 * Updated version numbers on all files I modified to carry a
4985 notice so Janko and Nathan have clear version markers.
4988 notice so Janko and Nathan have clear version markers.
4986
4989
4987 * Updated docstring for ultraTB with my changes. I should send
4990 * Updated docstring for ultraTB with my changes. I should send
4988 this to Nathan.
4991 this to Nathan.
4989
4992
4990 * Lots of small fixes. Ran everything through pychecker again.
4993 * Lots of small fixes. Ran everything through pychecker again.
4991
4994
4992 * Made loading of deep_reload an cmd line option. If it's not too
4995 * Made loading of deep_reload an cmd line option. If it's not too
4993 kosher, now people can just disable it. With -nodeep_reload it's
4996 kosher, now people can just disable it. With -nodeep_reload it's
4994 still available as dreload(), it just won't overwrite reload().
4997 still available as dreload(), it just won't overwrite reload().
4995
4998
4996 * Moved many options to the no| form (-opt and -noopt
4999 * Moved many options to the no| form (-opt and -noopt
4997 accepted). Cleaner.
5000 accepted). Cleaner.
4998
5001
4999 * Changed magic_log so that if called with no parameters, it uses
5002 * Changed magic_log so that if called with no parameters, it uses
5000 'rotate' mode. That way auto-generated logs aren't automatically
5003 'rotate' mode. That way auto-generated logs aren't automatically
5001 over-written. For normal logs, now a backup is made if it exists
5004 over-written. For normal logs, now a backup is made if it exists
5002 (only 1 level of backups). A new 'backup' mode was added to the
5005 (only 1 level of backups). A new 'backup' mode was added to the
5003 Logger class to support this. This was a request by Janko.
5006 Logger class to support this. This was a request by Janko.
5004
5007
5005 * Added @logoff/@logon to stop/restart an active log.
5008 * Added @logoff/@logon to stop/restart an active log.
5006
5009
5007 * Fixed a lot of bugs in log saving/replay. It was pretty
5010 * Fixed a lot of bugs in log saving/replay. It was pretty
5008 broken. Now special lines (!@,/) appear properly in the command
5011 broken. Now special lines (!@,/) appear properly in the command
5009 history after a log replay.
5012 history after a log replay.
5010
5013
5011 * Tried and failed to implement full session saving via pickle. My
5014 * Tried and failed to implement full session saving via pickle. My
5012 idea was to pickle __main__.__dict__, but modules can't be
5015 idea was to pickle __main__.__dict__, but modules can't be
5013 pickled. This would be a better alternative to replaying logs, but
5016 pickled. This would be a better alternative to replaying logs, but
5014 seems quite tricky to get to work. Changed -session to be called
5017 seems quite tricky to get to work. Changed -session to be called
5015 -logplay, which more accurately reflects what it does. And if we
5018 -logplay, which more accurately reflects what it does. And if we
5016 ever get real session saving working, -session is now available.
5019 ever get real session saving working, -session is now available.
5017
5020
5018 * Implemented color schemes for prompts also. As for tracebacks,
5021 * Implemented color schemes for prompts also. As for tracebacks,
5019 currently only NoColor and Linux are supported. But now the
5022 currently only NoColor and Linux are supported. But now the
5020 infrastructure is in place, based on a generic ColorScheme
5023 infrastructure is in place, based on a generic ColorScheme
5021 class. So writing and activating new schemes both for the prompts
5024 class. So writing and activating new schemes both for the prompts
5022 and the tracebacks should be straightforward.
5025 and the tracebacks should be straightforward.
5023
5026
5024 * Version 0.1.13 released, 0.1.14 opened.
5027 * Version 0.1.13 released, 0.1.14 opened.
5025
5028
5026 * Changed handling of options for output cache. Now counter is
5029 * Changed handling of options for output cache. Now counter is
5027 hardwired starting at 1 and one specifies the maximum number of
5030 hardwired starting at 1 and one specifies the maximum number of
5028 entries *in the outcache* (not the max prompt counter). This is
5031 entries *in the outcache* (not the max prompt counter). This is
5029 much better, since many statements won't increase the cache
5032 much better, since many statements won't increase the cache
5030 count. It also eliminated some confusing options, now there's only
5033 count. It also eliminated some confusing options, now there's only
5031 one: cache_size.
5034 one: cache_size.
5032
5035
5033 * Added 'alias' magic function and magic_alias option in the
5036 * Added 'alias' magic function and magic_alias option in the
5034 ipythonrc file. Now the user can easily define whatever names he
5037 ipythonrc file. Now the user can easily define whatever names he
5035 wants for the magic functions without having to play weird
5038 wants for the magic functions without having to play weird
5036 namespace games. This gives IPython a real shell-like feel.
5039 namespace games. This gives IPython a real shell-like feel.
5037
5040
5038 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5041 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5039 @ or not).
5042 @ or not).
5040
5043
5041 This was one of the last remaining 'visible' bugs (that I know
5044 This was one of the last remaining 'visible' bugs (that I know
5042 of). I think if I can clean up the session loading so it works
5045 of). I think if I can clean up the session loading so it works
5043 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5046 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5044 about licensing).
5047 about licensing).
5045
5048
5046 2001-11-25 Fernando Perez <fperez@colorado.edu>
5049 2001-11-25 Fernando Perez <fperez@colorado.edu>
5047
5050
5048 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5051 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5049 there's a cleaner distinction between what ? and ?? show.
5052 there's a cleaner distinction between what ? and ?? show.
5050
5053
5051 * Added screen_length option. Now the user can define his own
5054 * Added screen_length option. Now the user can define his own
5052 screen size for page() operations.
5055 screen size for page() operations.
5053
5056
5054 * Implemented magic shell-like functions with automatic code
5057 * Implemented magic shell-like functions with automatic code
5055 generation. Now adding another function is just a matter of adding
5058 generation. Now adding another function is just a matter of adding
5056 an entry to a dict, and the function is dynamically generated at
5059 an entry to a dict, and the function is dynamically generated at
5057 run-time. Python has some really cool features!
5060 run-time. Python has some really cool features!
5058
5061
5059 * Renamed many options to cleanup conventions a little. Now all
5062 * Renamed many options to cleanup conventions a little. Now all
5060 are lowercase, and only underscores where needed. Also in the code
5063 are lowercase, and only underscores where needed. Also in the code
5061 option name tables are clearer.
5064 option name tables are clearer.
5062
5065
5063 * Changed prompts a little. Now input is 'In [n]:' instead of
5066 * Changed prompts a little. Now input is 'In [n]:' instead of
5064 'In[n]:='. This allows it the numbers to be aligned with the
5067 'In[n]:='. This allows it the numbers to be aligned with the
5065 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5068 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5066 Python (it was a Mathematica thing). The '...' continuation prompt
5069 Python (it was a Mathematica thing). The '...' continuation prompt
5067 was also changed a little to align better.
5070 was also changed a little to align better.
5068
5071
5069 * Fixed bug when flushing output cache. Not all _p<n> variables
5072 * Fixed bug when flushing output cache. Not all _p<n> variables
5070 exist, so their deletion needs to be wrapped in a try:
5073 exist, so their deletion needs to be wrapped in a try:
5071
5074
5072 * Figured out how to properly use inspect.formatargspec() (it
5075 * Figured out how to properly use inspect.formatargspec() (it
5073 requires the args preceded by *). So I removed all the code from
5076 requires the args preceded by *). So I removed all the code from
5074 _get_pdef in Magic, which was just replicating that.
5077 _get_pdef in Magic, which was just replicating that.
5075
5078
5076 * Added test to prefilter to allow redefining magic function names
5079 * Added test to prefilter to allow redefining magic function names
5077 as variables. This is ok, since the @ form is always available,
5080 as variables. This is ok, since the @ form is always available,
5078 but whe should allow the user to define a variable called 'ls' if
5081 but whe should allow the user to define a variable called 'ls' if
5079 he needs it.
5082 he needs it.
5080
5083
5081 * Moved the ToDo information from README into a separate ToDo.
5084 * Moved the ToDo information from README into a separate ToDo.
5082
5085
5083 * General code cleanup and small bugfixes. I think it's close to a
5086 * General code cleanup and small bugfixes. I think it's close to a
5084 state where it can be released, obviously with a big 'beta'
5087 state where it can be released, obviously with a big 'beta'
5085 warning on it.
5088 warning on it.
5086
5089
5087 * Got the magic function split to work. Now all magics are defined
5090 * Got the magic function split to work. Now all magics are defined
5088 in a separate class. It just organizes things a bit, and now
5091 in a separate class. It just organizes things a bit, and now
5089 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5092 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5090 was too long).
5093 was too long).
5091
5094
5092 * Changed @clear to @reset to avoid potential confusions with
5095 * Changed @clear to @reset to avoid potential confusions with
5093 the shell command clear. Also renamed @cl to @clear, which does
5096 the shell command clear. Also renamed @cl to @clear, which does
5094 exactly what people expect it to from their shell experience.
5097 exactly what people expect it to from their shell experience.
5095
5098
5096 Added a check to the @reset command (since it's so
5099 Added a check to the @reset command (since it's so
5097 destructive, it's probably a good idea to ask for confirmation).
5100 destructive, it's probably a good idea to ask for confirmation).
5098 But now reset only works for full namespace resetting. Since the
5101 But now reset only works for full namespace resetting. Since the
5099 del keyword is already there for deleting a few specific
5102 del keyword is already there for deleting a few specific
5100 variables, I don't see the point of having a redundant magic
5103 variables, I don't see the point of having a redundant magic
5101 function for the same task.
5104 function for the same task.
5102
5105
5103 2001-11-24 Fernando Perez <fperez@colorado.edu>
5106 2001-11-24 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * Updated the builtin docs (esp. the ? ones).
5108 * Updated the builtin docs (esp. the ? ones).
5106
5109
5107 * Ran all the code through pychecker. Not terribly impressed with
5110 * Ran all the code through pychecker. Not terribly impressed with
5108 it: lots of spurious warnings and didn't really find anything of
5111 it: lots of spurious warnings and didn't really find anything of
5109 substance (just a few modules being imported and not used).
5112 substance (just a few modules being imported and not used).
5110
5113
5111 * Implemented the new ultraTB functionality into IPython. New
5114 * Implemented the new ultraTB functionality into IPython. New
5112 option: xcolors. This chooses color scheme. xmode now only selects
5115 option: xcolors. This chooses color scheme. xmode now only selects
5113 between Plain and Verbose. Better orthogonality.
5116 between Plain and Verbose. Better orthogonality.
5114
5117
5115 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5118 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5116 mode and color scheme for the exception handlers. Now it's
5119 mode and color scheme for the exception handlers. Now it's
5117 possible to have the verbose traceback with no coloring.
5120 possible to have the verbose traceback with no coloring.
5118
5121
5119 2001-11-23 Fernando Perez <fperez@colorado.edu>
5122 2001-11-23 Fernando Perez <fperez@colorado.edu>
5120
5123
5121 * Version 0.1.12 released, 0.1.13 opened.
5124 * Version 0.1.12 released, 0.1.13 opened.
5122
5125
5123 * Removed option to set auto-quote and auto-paren escapes by
5126 * Removed option to set auto-quote and auto-paren escapes by
5124 user. The chances of breaking valid syntax are just too high. If
5127 user. The chances of breaking valid syntax are just too high. If
5125 someone *really* wants, they can always dig into the code.
5128 someone *really* wants, they can always dig into the code.
5126
5129
5127 * Made prompt separators configurable.
5130 * Made prompt separators configurable.
5128
5131
5129 2001-11-22 Fernando Perez <fperez@colorado.edu>
5132 2001-11-22 Fernando Perez <fperez@colorado.edu>
5130
5133
5131 * Small bugfixes in many places.
5134 * Small bugfixes in many places.
5132
5135
5133 * Removed the MyCompleter class from ipplib. It seemed redundant
5136 * Removed the MyCompleter class from ipplib. It seemed redundant
5134 with the C-p,C-n history search functionality. Less code to
5137 with the C-p,C-n history search functionality. Less code to
5135 maintain.
5138 maintain.
5136
5139
5137 * Moved all the original ipython.py code into ipythonlib.py. Right
5140 * Moved all the original ipython.py code into ipythonlib.py. Right
5138 now it's just one big dump into a function called make_IPython, so
5141 now it's just one big dump into a function called make_IPython, so
5139 no real modularity has been gained. But at least it makes the
5142 no real modularity has been gained. But at least it makes the
5140 wrapper script tiny, and since ipythonlib is a module, it gets
5143 wrapper script tiny, and since ipythonlib is a module, it gets
5141 compiled and startup is much faster.
5144 compiled and startup is much faster.
5142
5145
5143 This is a reasobably 'deep' change, so we should test it for a
5146 This is a reasobably 'deep' change, so we should test it for a
5144 while without messing too much more with the code.
5147 while without messing too much more with the code.
5145
5148
5146 2001-11-21 Fernando Perez <fperez@colorado.edu>
5149 2001-11-21 Fernando Perez <fperez@colorado.edu>
5147
5150
5148 * Version 0.1.11 released, 0.1.12 opened for further work.
5151 * Version 0.1.11 released, 0.1.12 opened for further work.
5149
5152
5150 * Removed dependency on Itpl. It was only needed in one place. It
5153 * Removed dependency on Itpl. It was only needed in one place. It
5151 would be nice if this became part of python, though. It makes life
5154 would be nice if this became part of python, though. It makes life
5152 *a lot* easier in some cases.
5155 *a lot* easier in some cases.
5153
5156
5154 * Simplified the prefilter code a bit. Now all handlers are
5157 * Simplified the prefilter code a bit. Now all handlers are
5155 expected to explicitly return a value (at least a blank string).
5158 expected to explicitly return a value (at least a blank string).
5156
5159
5157 * Heavy edits in ipplib. Removed the help system altogether. Now
5160 * Heavy edits in ipplib. Removed the help system altogether. Now
5158 obj?/?? is used for inspecting objects, a magic @doc prints
5161 obj?/?? is used for inspecting objects, a magic @doc prints
5159 docstrings, and full-blown Python help is accessed via the 'help'
5162 docstrings, and full-blown Python help is accessed via the 'help'
5160 keyword. This cleans up a lot of code (less to maintain) and does
5163 keyword. This cleans up a lot of code (less to maintain) and does
5161 the job. Since 'help' is now a standard Python component, might as
5164 the job. Since 'help' is now a standard Python component, might as
5162 well use it and remove duplicate functionality.
5165 well use it and remove duplicate functionality.
5163
5166
5164 Also removed the option to use ipplib as a standalone program. By
5167 Also removed the option to use ipplib as a standalone program. By
5165 now it's too dependent on other parts of IPython to function alone.
5168 now it's too dependent on other parts of IPython to function alone.
5166
5169
5167 * Fixed bug in genutils.pager. It would crash if the pager was
5170 * Fixed bug in genutils.pager. It would crash if the pager was
5168 exited immediately after opening (broken pipe).
5171 exited immediately after opening (broken pipe).
5169
5172
5170 * Trimmed down the VerboseTB reporting a little. The header is
5173 * Trimmed down the VerboseTB reporting a little. The header is
5171 much shorter now and the repeated exception arguments at the end
5174 much shorter now and the repeated exception arguments at the end
5172 have been removed. For interactive use the old header seemed a bit
5175 have been removed. For interactive use the old header seemed a bit
5173 excessive.
5176 excessive.
5174
5177
5175 * Fixed small bug in output of @whos for variables with multi-word
5178 * Fixed small bug in output of @whos for variables with multi-word
5176 types (only first word was displayed).
5179 types (only first word was displayed).
5177
5180
5178 2001-11-17 Fernando Perez <fperez@colorado.edu>
5181 2001-11-17 Fernando Perez <fperez@colorado.edu>
5179
5182
5180 * Version 0.1.10 released, 0.1.11 opened for further work.
5183 * Version 0.1.10 released, 0.1.11 opened for further work.
5181
5184
5182 * Modified dirs and friends. dirs now *returns* the stack (not
5185 * Modified dirs and friends. dirs now *returns* the stack (not
5183 prints), so one can manipulate it as a variable. Convenient to
5186 prints), so one can manipulate it as a variable. Convenient to
5184 travel along many directories.
5187 travel along many directories.
5185
5188
5186 * Fixed bug in magic_pdef: would only work with functions with
5189 * Fixed bug in magic_pdef: would only work with functions with
5187 arguments with default values.
5190 arguments with default values.
5188
5191
5189 2001-11-14 Fernando Perez <fperez@colorado.edu>
5192 2001-11-14 Fernando Perez <fperez@colorado.edu>
5190
5193
5191 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5194 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5192 example with IPython. Various other minor fixes and cleanups.
5195 example with IPython. Various other minor fixes and cleanups.
5193
5196
5194 * Version 0.1.9 released, 0.1.10 opened for further work.
5197 * Version 0.1.9 released, 0.1.10 opened for further work.
5195
5198
5196 * Added sys.path to the list of directories searched in the
5199 * Added sys.path to the list of directories searched in the
5197 execfile= option. It used to be the current directory and the
5200 execfile= option. It used to be the current directory and the
5198 user's IPYTHONDIR only.
5201 user's IPYTHONDIR only.
5199
5202
5200 2001-11-13 Fernando Perez <fperez@colorado.edu>
5203 2001-11-13 Fernando Perez <fperez@colorado.edu>
5201
5204
5202 * Reinstated the raw_input/prefilter separation that Janko had
5205 * Reinstated the raw_input/prefilter separation that Janko had
5203 initially. This gives a more convenient setup for extending the
5206 initially. This gives a more convenient setup for extending the
5204 pre-processor from the outside: raw_input always gets a string,
5207 pre-processor from the outside: raw_input always gets a string,
5205 and prefilter has to process it. We can then redefine prefilter
5208 and prefilter has to process it. We can then redefine prefilter
5206 from the outside and implement extensions for special
5209 from the outside and implement extensions for special
5207 purposes.
5210 purposes.
5208
5211
5209 Today I got one for inputting PhysicalQuantity objects
5212 Today I got one for inputting PhysicalQuantity objects
5210 (from Scientific) without needing any function calls at
5213 (from Scientific) without needing any function calls at
5211 all. Extremely convenient, and it's all done as a user-level
5214 all. Extremely convenient, and it's all done as a user-level
5212 extension (no IPython code was touched). Now instead of:
5215 extension (no IPython code was touched). Now instead of:
5213 a = PhysicalQuantity(4.2,'m/s**2')
5216 a = PhysicalQuantity(4.2,'m/s**2')
5214 one can simply say
5217 one can simply say
5215 a = 4.2 m/s**2
5218 a = 4.2 m/s**2
5216 or even
5219 or even
5217 a = 4.2 m/s^2
5220 a = 4.2 m/s^2
5218
5221
5219 I use this, but it's also a proof of concept: IPython really is
5222 I use this, but it's also a proof of concept: IPython really is
5220 fully user-extensible, even at the level of the parsing of the
5223 fully user-extensible, even at the level of the parsing of the
5221 command line. It's not trivial, but it's perfectly doable.
5224 command line. It's not trivial, but it's perfectly doable.
5222
5225
5223 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5226 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5224 the problem of modules being loaded in the inverse order in which
5227 the problem of modules being loaded in the inverse order in which
5225 they were defined in
5228 they were defined in
5226
5229
5227 * Version 0.1.8 released, 0.1.9 opened for further work.
5230 * Version 0.1.8 released, 0.1.9 opened for further work.
5228
5231
5229 * Added magics pdef, source and file. They respectively show the
5232 * Added magics pdef, source and file. They respectively show the
5230 definition line ('prototype' in C), source code and full python
5233 definition line ('prototype' in C), source code and full python
5231 file for any callable object. The object inspector oinfo uses
5234 file for any callable object. The object inspector oinfo uses
5232 these to show the same information.
5235 these to show the same information.
5233
5236
5234 * Version 0.1.7 released, 0.1.8 opened for further work.
5237 * Version 0.1.7 released, 0.1.8 opened for further work.
5235
5238
5236 * Separated all the magic functions into a class called Magic. The
5239 * Separated all the magic functions into a class called Magic. The
5237 InteractiveShell class was becoming too big for Xemacs to handle
5240 InteractiveShell class was becoming too big for Xemacs to handle
5238 (de-indenting a line would lock it up for 10 seconds while it
5241 (de-indenting a line would lock it up for 10 seconds while it
5239 backtracked on the whole class!)
5242 backtracked on the whole class!)
5240
5243
5241 FIXME: didn't work. It can be done, but right now namespaces are
5244 FIXME: didn't work. It can be done, but right now namespaces are
5242 all messed up. Do it later (reverted it for now, so at least
5245 all messed up. Do it later (reverted it for now, so at least
5243 everything works as before).
5246 everything works as before).
5244
5247
5245 * Got the object introspection system (magic_oinfo) working! I
5248 * Got the object introspection system (magic_oinfo) working! I
5246 think this is pretty much ready for release to Janko, so he can
5249 think this is pretty much ready for release to Janko, so he can
5247 test it for a while and then announce it. Pretty much 100% of what
5250 test it for a while and then announce it. Pretty much 100% of what
5248 I wanted for the 'phase 1' release is ready. Happy, tired.
5251 I wanted for the 'phase 1' release is ready. Happy, tired.
5249
5252
5250 2001-11-12 Fernando Perez <fperez@colorado.edu>
5253 2001-11-12 Fernando Perez <fperez@colorado.edu>
5251
5254
5252 * Version 0.1.6 released, 0.1.7 opened for further work.
5255 * Version 0.1.6 released, 0.1.7 opened for further work.
5253
5256
5254 * Fixed bug in printing: it used to test for truth before
5257 * Fixed bug in printing: it used to test for truth before
5255 printing, so 0 wouldn't print. Now checks for None.
5258 printing, so 0 wouldn't print. Now checks for None.
5256
5259
5257 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5260 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5258 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5261 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5259 reaches by hand into the outputcache. Think of a better way to do
5262 reaches by hand into the outputcache. Think of a better way to do
5260 this later.
5263 this later.
5261
5264
5262 * Various small fixes thanks to Nathan's comments.
5265 * Various small fixes thanks to Nathan's comments.
5263
5266
5264 * Changed magic_pprint to magic_Pprint. This way it doesn't
5267 * Changed magic_pprint to magic_Pprint. This way it doesn't
5265 collide with pprint() and the name is consistent with the command
5268 collide with pprint() and the name is consistent with the command
5266 line option.
5269 line option.
5267
5270
5268 * Changed prompt counter behavior to be fully like
5271 * Changed prompt counter behavior to be fully like
5269 Mathematica's. That is, even input that doesn't return a result
5272 Mathematica's. That is, even input that doesn't return a result
5270 raises the prompt counter. The old behavior was kind of confusing
5273 raises the prompt counter. The old behavior was kind of confusing
5271 (getting the same prompt number several times if the operation
5274 (getting the same prompt number several times if the operation
5272 didn't return a result).
5275 didn't return a result).
5273
5276
5274 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5277 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5275
5278
5276 * Fixed -Classic mode (wasn't working anymore).
5279 * Fixed -Classic mode (wasn't working anymore).
5277
5280
5278 * Added colored prompts using Nathan's new code. Colors are
5281 * Added colored prompts using Nathan's new code. Colors are
5279 currently hardwired, they can be user-configurable. For
5282 currently hardwired, they can be user-configurable. For
5280 developers, they can be chosen in file ipythonlib.py, at the
5283 developers, they can be chosen in file ipythonlib.py, at the
5281 beginning of the CachedOutput class def.
5284 beginning of the CachedOutput class def.
5282
5285
5283 2001-11-11 Fernando Perez <fperez@colorado.edu>
5286 2001-11-11 Fernando Perez <fperez@colorado.edu>
5284
5287
5285 * Version 0.1.5 released, 0.1.6 opened for further work.
5288 * Version 0.1.5 released, 0.1.6 opened for further work.
5286
5289
5287 * Changed magic_env to *return* the environment as a dict (not to
5290 * Changed magic_env to *return* the environment as a dict (not to
5288 print it). This way it prints, but it can also be processed.
5291 print it). This way it prints, but it can also be processed.
5289
5292
5290 * Added Verbose exception reporting to interactive
5293 * Added Verbose exception reporting to interactive
5291 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5294 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5292 traceback. Had to make some changes to the ultraTB file. This is
5295 traceback. Had to make some changes to the ultraTB file. This is
5293 probably the last 'big' thing in my mental todo list. This ties
5296 probably the last 'big' thing in my mental todo list. This ties
5294 in with the next entry:
5297 in with the next entry:
5295
5298
5296 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5299 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5297 has to specify is Plain, Color or Verbose for all exception
5300 has to specify is Plain, Color or Verbose for all exception
5298 handling.
5301 handling.
5299
5302
5300 * Removed ShellServices option. All this can really be done via
5303 * Removed ShellServices option. All this can really be done via
5301 the magic system. It's easier to extend, cleaner and has automatic
5304 the magic system. It's easier to extend, cleaner and has automatic
5302 namespace protection and documentation.
5305 namespace protection and documentation.
5303
5306
5304 2001-11-09 Fernando Perez <fperez@colorado.edu>
5307 2001-11-09 Fernando Perez <fperez@colorado.edu>
5305
5308
5306 * Fixed bug in output cache flushing (missing parameter to
5309 * Fixed bug in output cache flushing (missing parameter to
5307 __init__). Other small bugs fixed (found using pychecker).
5310 __init__). Other small bugs fixed (found using pychecker).
5308
5311
5309 * Version 0.1.4 opened for bugfixing.
5312 * Version 0.1.4 opened for bugfixing.
5310
5313
5311 2001-11-07 Fernando Perez <fperez@colorado.edu>
5314 2001-11-07 Fernando Perez <fperez@colorado.edu>
5312
5315
5313 * Version 0.1.3 released, mainly because of the raw_input bug.
5316 * Version 0.1.3 released, mainly because of the raw_input bug.
5314
5317
5315 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5318 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5316 and when testing for whether things were callable, a call could
5319 and when testing for whether things were callable, a call could
5317 actually be made to certain functions. They would get called again
5320 actually be made to certain functions. They would get called again
5318 once 'really' executed, with a resulting double call. A disaster
5321 once 'really' executed, with a resulting double call. A disaster
5319 in many cases (list.reverse() would never work!).
5322 in many cases (list.reverse() would never work!).
5320
5323
5321 * Removed prefilter() function, moved its code to raw_input (which
5324 * Removed prefilter() function, moved its code to raw_input (which
5322 after all was just a near-empty caller for prefilter). This saves
5325 after all was just a near-empty caller for prefilter). This saves
5323 a function call on every prompt, and simplifies the class a tiny bit.
5326 a function call on every prompt, and simplifies the class a tiny bit.
5324
5327
5325 * Fix _ip to __ip name in magic example file.
5328 * Fix _ip to __ip name in magic example file.
5326
5329
5327 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5330 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5328 work with non-gnu versions of tar.
5331 work with non-gnu versions of tar.
5329
5332
5330 2001-11-06 Fernando Perez <fperez@colorado.edu>
5333 2001-11-06 Fernando Perez <fperez@colorado.edu>
5331
5334
5332 * Version 0.1.2. Just to keep track of the recent changes.
5335 * Version 0.1.2. Just to keep track of the recent changes.
5333
5336
5334 * Fixed nasty bug in output prompt routine. It used to check 'if
5337 * Fixed nasty bug in output prompt routine. It used to check 'if
5335 arg != None...'. Problem is, this fails if arg implements a
5338 arg != None...'. Problem is, this fails if arg implements a
5336 special comparison (__cmp__) which disallows comparing to
5339 special comparison (__cmp__) which disallows comparing to
5337 None. Found it when trying to use the PhysicalQuantity module from
5340 None. Found it when trying to use the PhysicalQuantity module from
5338 ScientificPython.
5341 ScientificPython.
5339
5342
5340 2001-11-05 Fernando Perez <fperez@colorado.edu>
5343 2001-11-05 Fernando Perez <fperez@colorado.edu>
5341
5344
5342 * Also added dirs. Now the pushd/popd/dirs family functions
5345 * Also added dirs. Now the pushd/popd/dirs family functions
5343 basically like the shell, with the added convenience of going home
5346 basically like the shell, with the added convenience of going home
5344 when called with no args.
5347 when called with no args.
5345
5348
5346 * pushd/popd slightly modified to mimic shell behavior more
5349 * pushd/popd slightly modified to mimic shell behavior more
5347 closely.
5350 closely.
5348
5351
5349 * Added env,pushd,popd from ShellServices as magic functions. I
5352 * Added env,pushd,popd from ShellServices as magic functions. I
5350 think the cleanest will be to port all desired functions from
5353 think the cleanest will be to port all desired functions from
5351 ShellServices as magics and remove ShellServices altogether. This
5354 ShellServices as magics and remove ShellServices altogether. This
5352 will provide a single, clean way of adding functionality
5355 will provide a single, clean way of adding functionality
5353 (shell-type or otherwise) to IP.
5356 (shell-type or otherwise) to IP.
5354
5357
5355 2001-11-04 Fernando Perez <fperez@colorado.edu>
5358 2001-11-04 Fernando Perez <fperez@colorado.edu>
5356
5359
5357 * Added .ipython/ directory to sys.path. This way users can keep
5360 * Added .ipython/ directory to sys.path. This way users can keep
5358 customizations there and access them via import.
5361 customizations there and access them via import.
5359
5362
5360 2001-11-03 Fernando Perez <fperez@colorado.edu>
5363 2001-11-03 Fernando Perez <fperez@colorado.edu>
5361
5364
5362 * Opened version 0.1.1 for new changes.
5365 * Opened version 0.1.1 for new changes.
5363
5366
5364 * Changed version number to 0.1.0: first 'public' release, sent to
5367 * Changed version number to 0.1.0: first 'public' release, sent to
5365 Nathan and Janko.
5368 Nathan and Janko.
5366
5369
5367 * Lots of small fixes and tweaks.
5370 * Lots of small fixes and tweaks.
5368
5371
5369 * Minor changes to whos format. Now strings are shown, snipped if
5372 * Minor changes to whos format. Now strings are shown, snipped if
5370 too long.
5373 too long.
5371
5374
5372 * Changed ShellServices to work on __main__ so they show up in @who
5375 * Changed ShellServices to work on __main__ so they show up in @who
5373
5376
5374 * Help also works with ? at the end of a line:
5377 * Help also works with ? at the end of a line:
5375 ?sin and sin?
5378 ?sin and sin?
5376 both produce the same effect. This is nice, as often I use the
5379 both produce the same effect. This is nice, as often I use the
5377 tab-complete to find the name of a method, but I used to then have
5380 tab-complete to find the name of a method, but I used to then have
5378 to go to the beginning of the line to put a ? if I wanted more
5381 to go to the beginning of the line to put a ? if I wanted more
5379 info. Now I can just add the ? and hit return. Convenient.
5382 info. Now I can just add the ? and hit return. Convenient.
5380
5383
5381 2001-11-02 Fernando Perez <fperez@colorado.edu>
5384 2001-11-02 Fernando Perez <fperez@colorado.edu>
5382
5385
5383 * Python version check (>=2.1) added.
5386 * Python version check (>=2.1) added.
5384
5387
5385 * Added LazyPython documentation. At this point the docs are quite
5388 * Added LazyPython documentation. At this point the docs are quite
5386 a mess. A cleanup is in order.
5389 a mess. A cleanup is in order.
5387
5390
5388 * Auto-installer created. For some bizarre reason, the zipfiles
5391 * Auto-installer created. For some bizarre reason, the zipfiles
5389 module isn't working on my system. So I made a tar version
5392 module isn't working on my system. So I made a tar version
5390 (hopefully the command line options in various systems won't kill
5393 (hopefully the command line options in various systems won't kill
5391 me).
5394 me).
5392
5395
5393 * Fixes to Struct in genutils. Now all dictionary-like methods are
5396 * Fixes to Struct in genutils. Now all dictionary-like methods are
5394 protected (reasonably).
5397 protected (reasonably).
5395
5398
5396 * Added pager function to genutils and changed ? to print usage
5399 * Added pager function to genutils and changed ? to print usage
5397 note through it (it was too long).
5400 note through it (it was too long).
5398
5401
5399 * Added the LazyPython functionality. Works great! I changed the
5402 * Added the LazyPython functionality. Works great! I changed the
5400 auto-quote escape to ';', it's on home row and next to '. But
5403 auto-quote escape to ';', it's on home row and next to '. But
5401 both auto-quote and auto-paren (still /) escapes are command-line
5404 both auto-quote and auto-paren (still /) escapes are command-line
5402 parameters.
5405 parameters.
5403
5406
5404
5407
5405 2001-11-01 Fernando Perez <fperez@colorado.edu>
5408 2001-11-01 Fernando Perez <fperez@colorado.edu>
5406
5409
5407 * Version changed to 0.0.7. Fairly large change: configuration now
5410 * Version changed to 0.0.7. Fairly large change: configuration now
5408 is all stored in a directory, by default .ipython. There, all
5411 is all stored in a directory, by default .ipython. There, all
5409 config files have normal looking names (not .names)
5412 config files have normal looking names (not .names)
5410
5413
5411 * Version 0.0.6 Released first to Lucas and Archie as a test
5414 * Version 0.0.6 Released first to Lucas and Archie as a test
5412 run. Since it's the first 'semi-public' release, change version to
5415 run. Since it's the first 'semi-public' release, change version to
5413 > 0.0.6 for any changes now.
5416 > 0.0.6 for any changes now.
5414
5417
5415 * Stuff I had put in the ipplib.py changelog:
5418 * Stuff I had put in the ipplib.py changelog:
5416
5419
5417 Changes to InteractiveShell:
5420 Changes to InteractiveShell:
5418
5421
5419 - Made the usage message a parameter.
5422 - Made the usage message a parameter.
5420
5423
5421 - Require the name of the shell variable to be given. It's a bit
5424 - Require the name of the shell variable to be given. It's a bit
5422 of a hack, but allows the name 'shell' not to be hardwire in the
5425 of a hack, but allows the name 'shell' not to be hardwire in the
5423 magic (@) handler, which is problematic b/c it requires
5426 magic (@) handler, which is problematic b/c it requires
5424 polluting the global namespace with 'shell'. This in turn is
5427 polluting the global namespace with 'shell'. This in turn is
5425 fragile: if a user redefines a variable called shell, things
5428 fragile: if a user redefines a variable called shell, things
5426 break.
5429 break.
5427
5430
5428 - magic @: all functions available through @ need to be defined
5431 - magic @: all functions available through @ need to be defined
5429 as magic_<name>, even though they can be called simply as
5432 as magic_<name>, even though they can be called simply as
5430 @<name>. This allows the special command @magic to gather
5433 @<name>. This allows the special command @magic to gather
5431 information automatically about all existing magic functions,
5434 information automatically about all existing magic functions,
5432 even if they are run-time user extensions, by parsing the shell
5435 even if they are run-time user extensions, by parsing the shell
5433 instance __dict__ looking for special magic_ names.
5436 instance __dict__ looking for special magic_ names.
5434
5437
5435 - mainloop: added *two* local namespace parameters. This allows
5438 - mainloop: added *two* local namespace parameters. This allows
5436 the class to differentiate between parameters which were there
5439 the class to differentiate between parameters which were there
5437 before and after command line initialization was processed. This
5440 before and after command line initialization was processed. This
5438 way, later @who can show things loaded at startup by the
5441 way, later @who can show things loaded at startup by the
5439 user. This trick was necessary to make session saving/reloading
5442 user. This trick was necessary to make session saving/reloading
5440 really work: ideally after saving/exiting/reloading a session,
5443 really work: ideally after saving/exiting/reloading a session,
5441 *everythin* should look the same, including the output of @who. I
5444 *everythin* should look the same, including the output of @who. I
5442 was only able to make this work with this double namespace
5445 was only able to make this work with this double namespace
5443 trick.
5446 trick.
5444
5447
5445 - added a header to the logfile which allows (almost) full
5448 - added a header to the logfile which allows (almost) full
5446 session restoring.
5449 session restoring.
5447
5450
5448 - prepend lines beginning with @ or !, with a and log
5451 - prepend lines beginning with @ or !, with a and log
5449 them. Why? !lines: may be useful to know what you did @lines:
5452 them. Why? !lines: may be useful to know what you did @lines:
5450 they may affect session state. So when restoring a session, at
5453 they may affect session state. So when restoring a session, at
5451 least inform the user of their presence. I couldn't quite get
5454 least inform the user of their presence. I couldn't quite get
5452 them to properly re-execute, but at least the user is warned.
5455 them to properly re-execute, but at least the user is warned.
5453
5456
5454 * Started ChangeLog.
5457 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now