##// END OF EJS Templates
changelog
vivainio -
Show More
@@ -1,5619 +1,5625 b''
1 2006-06-27 Ville Vainio <vivainio@gmail.com>
2
3 * Magic.py (_inspect, _ofind) Apply David Huard's
4 patch for displaying the correct docstring for 'property'
5 attributes.
6
1 2006-06-23 Walter Doerwald <walter@livinglogic.de>
7 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2
8
3 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
9 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
4 commands into the methods implementing them.
10 commands into the methods implementing them.
5
11
6 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
12 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
7
13
8 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
14 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
9 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
15 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
10 autoindent support was authored by Jin Liu.
16 autoindent support was authored by Jin Liu.
11
17
12 2006-06-22 Walter Doerwald <walter@livinglogic.de>
18 2006-06-22 Walter Doerwald <walter@livinglogic.de>
13
19
14 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
20 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
15 for keymaps with a custom class that simplifies handling.
21 for keymaps with a custom class that simplifies handling.
16
22
17 2006-06-19 Walter Doerwald <walter@livinglogic.de>
23 2006-06-19 Walter Doerwald <walter@livinglogic.de>
18
24
19 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
25 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
20 resizing. This requires Python 2.5 to work.
26 resizing. This requires Python 2.5 to work.
21
27
22 2006-06-16 Walter Doerwald <walter@livinglogic.de>
28 2006-06-16 Walter Doerwald <walter@livinglogic.de>
23
29
24 * IPython/Extensions/ibrowse.py: Add two new commands to
30 * IPython/Extensions/ibrowse.py: Add two new commands to
25 ibrowse: "hideattr" (mapped to "h") hides the attribute under
31 ibrowse: "hideattr" (mapped to "h") hides the attribute under
26 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
32 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
27 attributes again. Remapped the help command to "?". Display
33 attributes again. Remapped the help command to "?". Display
28 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
34 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
29 as keys for the "home" and "end" commands. Add three new commands
35 as keys for the "home" and "end" commands. Add three new commands
30 to the input mode for "find" and friends: "delend" (CTRL-K)
36 to the input mode for "find" and friends: "delend" (CTRL-K)
31 deletes to the end of line. "incsearchup" searches upwards in the
37 deletes to the end of line. "incsearchup" searches upwards in the
32 command history for an input that starts with the text before the cursor.
38 command history for an input that starts with the text before the cursor.
33 "incsearchdown" does the same downwards. Removed a bogus mapping of
39 "incsearchdown" does the same downwards. Removed a bogus mapping of
34 the x key to "delete".
40 the x key to "delete".
35
41
36 2006-06-15 Ville Vainio <vivainio@gmail.com>
42 2006-06-15 Ville Vainio <vivainio@gmail.com>
37
43
38 * iplib.py, hooks.py: Added new generate_prompt hook that can be
44 * iplib.py, hooks.py: Added new generate_prompt hook that can be
39 used to create prompts dynamically, instead of the "old" way of
45 used to create prompts dynamically, instead of the "old" way of
40 assigning "magic" strings to prompt_in1 and prompt_in2. The old
46 assigning "magic" strings to prompt_in1 and prompt_in2. The old
41 way still works (it's invoked by the default hook), of course.
47 way still works (it's invoked by the default hook), of course.
42
48
43 * Prompts.py: added generate_output_prompt hook for altering output
49 * Prompts.py: added generate_output_prompt hook for altering output
44 prompt
50 prompt
45
51
46 * Release.py: Changed version string to 0.7.3.svn.
52 * Release.py: Changed version string to 0.7.3.svn.
47
53
48 2006-06-15 Walter Doerwald <walter@livinglogic.de>
54 2006-06-15 Walter Doerwald <walter@livinglogic.de>
49
55
50 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
56 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
51 the call to fetch() always tries to fetch enough data for at least one
57 the call to fetch() always tries to fetch enough data for at least one
52 full screen. This makes it possible to simply call moveto(0,0,True) in
58 full screen. This makes it possible to simply call moveto(0,0,True) in
53 the constructor. Fix typos and removed the obsolete goto attribute.
59 the constructor. Fix typos and removed the obsolete goto attribute.
54
60
55 2006-06-12 Ville Vainio <vivainio@gmail.com>
61 2006-06-12 Ville Vainio <vivainio@gmail.com>
56
62
57 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
63 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
58 allowing $variable interpolation within multiline statements,
64 allowing $variable interpolation within multiline statements,
59 though so far only with "sh" profile for a testing period.
65 though so far only with "sh" profile for a testing period.
60 The patch also enables splitting long commands with \ but it
66 The patch also enables splitting long commands with \ but it
61 doesn't work properly yet.
67 doesn't work properly yet.
62
68
63 2006-06-12 Walter Doerwald <walter@livinglogic.de>
69 2006-06-12 Walter Doerwald <walter@livinglogic.de>
64
70
65 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
71 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
66 input history and the position of the cursor in the input history for
72 input history and the position of the cursor in the input history for
67 the find, findbackwards and goto command.
73 the find, findbackwards and goto command.
68
74
69 2006-06-10 Walter Doerwald <walter@livinglogic.de>
75 2006-06-10 Walter Doerwald <walter@livinglogic.de>
70
76
71 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
77 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
72 implements the basic functionality of browser commands that require
78 implements the basic functionality of browser commands that require
73 input. Reimplement the goto, find and findbackwards commands as
79 input. Reimplement the goto, find and findbackwards commands as
74 subclasses of _CommandInput. Add an input history and keymaps to those
80 subclasses of _CommandInput. Add an input history and keymaps to those
75 commands. Add "\r" as a keyboard shortcut for the enterdefault and
81 commands. Add "\r" as a keyboard shortcut for the enterdefault and
76 execute commands.
82 execute commands.
77
83
78 2006-06-07 Ville Vainio <vivainio@gmail.com>
84 2006-06-07 Ville Vainio <vivainio@gmail.com>
79
85
80 * iplib.py: ipython mybatch.ipy exits ipython immediately after
86 * iplib.py: ipython mybatch.ipy exits ipython immediately after
81 running the batch files instead of leaving the session open.
87 running the batch files instead of leaving the session open.
82
88
83 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
89 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
84
90
85 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
91 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
86 the original fix was incomplete. Patch submitted by W. Maier.
92 the original fix was incomplete. Patch submitted by W. Maier.
87
93
88 2006-06-07 Ville Vainio <vivainio@gmail.com>
94 2006-06-07 Ville Vainio <vivainio@gmail.com>
89
95
90 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
96 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
91 Confirmation prompts can be supressed by 'quiet' option.
97 Confirmation prompts can be supressed by 'quiet' option.
92 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
98 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
93
99
94 2006-06-06 *** Released version 0.7.2
100 2006-06-06 *** Released version 0.7.2
95
101
96 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
102 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
97
103
98 * IPython/Release.py (version): Made 0.7.2 final for release.
104 * IPython/Release.py (version): Made 0.7.2 final for release.
99 Repo tagged and release cut.
105 Repo tagged and release cut.
100
106
101 2006-06-05 Ville Vainio <vivainio@gmail.com>
107 2006-06-05 Ville Vainio <vivainio@gmail.com>
102
108
103 * Magic.py (magic_rehashx): Honor no_alias list earlier in
109 * Magic.py (magic_rehashx): Honor no_alias list earlier in
104 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
110 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
105
111
106 * upgrade_dir.py: try import 'path' module a bit harder
112 * upgrade_dir.py: try import 'path' module a bit harder
107 (for %upgrade)
113 (for %upgrade)
108
114
109 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
115 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
110
116
111 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
117 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
112 instead of looping 20 times.
118 instead of looping 20 times.
113
119
114 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
120 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
115 correctly at initialization time. Bug reported by Krishna Mohan
121 correctly at initialization time. Bug reported by Krishna Mohan
116 Gundu <gkmohan-AT-gmail.com> on the user list.
122 Gundu <gkmohan-AT-gmail.com> on the user list.
117
123
118 * IPython/Release.py (version): Mark 0.7.2 version to start
124 * IPython/Release.py (version): Mark 0.7.2 version to start
119 testing for release on 06/06.
125 testing for release on 06/06.
120
126
121 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
127 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
122
128
123 * scripts/irunner: thin script interface so users don't have to
129 * scripts/irunner: thin script interface so users don't have to
124 find the module and call it as an executable, since modules rarely
130 find the module and call it as an executable, since modules rarely
125 live in people's PATH.
131 live in people's PATH.
126
132
127 * IPython/irunner.py (InteractiveRunner.__init__): added
133 * IPython/irunner.py (InteractiveRunner.__init__): added
128 delaybeforesend attribute to control delays with newer versions of
134 delaybeforesend attribute to control delays with newer versions of
129 pexpect. Thanks to detailed help from pexpect's author, Noah
135 pexpect. Thanks to detailed help from pexpect's author, Noah
130 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
136 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
131 correctly (it works in NoColor mode).
137 correctly (it works in NoColor mode).
132
138
133 * IPython/iplib.py (handle_normal): fix nasty crash reported on
139 * IPython/iplib.py (handle_normal): fix nasty crash reported on
134 SAGE list, from improper log() calls.
140 SAGE list, from improper log() calls.
135
141
136 2006-05-31 Ville Vainio <vivainio@gmail.com>
142 2006-05-31 Ville Vainio <vivainio@gmail.com>
137
143
138 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
144 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
139 with args in parens to work correctly with dirs that have spaces.
145 with args in parens to work correctly with dirs that have spaces.
140
146
141 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
147 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
142
148
143 * IPython/Logger.py (Logger.logstart): add option to log raw input
149 * IPython/Logger.py (Logger.logstart): add option to log raw input
144 instead of the processed one. A -r flag was added to the
150 instead of the processed one. A -r flag was added to the
145 %logstart magic used for controlling logging.
151 %logstart magic used for controlling logging.
146
152
147 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
153 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
148
154
149 * IPython/iplib.py (InteractiveShell.__init__): add check for the
155 * IPython/iplib.py (InteractiveShell.__init__): add check for the
150 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
156 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
151 recognize the option. After a bug report by Will Maier. This
157 recognize the option. After a bug report by Will Maier. This
152 closes #64 (will do it after confirmation from W. Maier).
158 closes #64 (will do it after confirmation from W. Maier).
153
159
154 * IPython/irunner.py: New module to run scripts as if manually
160 * IPython/irunner.py: New module to run scripts as if manually
155 typed into an interactive environment, based on pexpect. After a
161 typed into an interactive environment, based on pexpect. After a
156 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
162 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
157 ipython-user list. Simple unittests in the tests/ directory.
163 ipython-user list. Simple unittests in the tests/ directory.
158
164
159 * tools/release: add Will Maier, OpenBSD port maintainer, to
165 * tools/release: add Will Maier, OpenBSD port maintainer, to
160 recepients list. We are now officially part of the OpenBSD ports:
166 recepients list. We are now officially part of the OpenBSD ports:
161 http://www.openbsd.org/ports.html ! Many thanks to Will for the
167 http://www.openbsd.org/ports.html ! Many thanks to Will for the
162 work.
168 work.
163
169
164 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
170 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
165
171
166 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
172 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
167 so that it doesn't break tkinter apps.
173 so that it doesn't break tkinter apps.
168
174
169 * IPython/iplib.py (_prefilter): fix bug where aliases would
175 * IPython/iplib.py (_prefilter): fix bug where aliases would
170 shadow variables when autocall was fully off. Reported by SAGE
176 shadow variables when autocall was fully off. Reported by SAGE
171 author William Stein.
177 author William Stein.
172
178
173 * IPython/OInspect.py (Inspector.__init__): add a flag to control
179 * IPython/OInspect.py (Inspector.__init__): add a flag to control
174 at what detail level strings are computed when foo? is requested.
180 at what detail level strings are computed when foo? is requested.
175 This allows users to ask for example that the string form of an
181 This allows users to ask for example that the string form of an
176 object is only computed when foo?? is called, or even never, by
182 object is only computed when foo?? is called, or even never, by
177 setting the object_info_string_level >= 2 in the configuration
183 setting the object_info_string_level >= 2 in the configuration
178 file. This new option has been added and documented. After a
184 file. This new option has been added and documented. After a
179 request by SAGE to be able to control the printing of very large
185 request by SAGE to be able to control the printing of very large
180 objects more easily.
186 objects more easily.
181
187
182 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
188 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
183
189
184 * IPython/ipmaker.py (make_IPython): remove the ipython call path
190 * IPython/ipmaker.py (make_IPython): remove the ipython call path
185 from sys.argv, to be 100% consistent with how Python itself works
191 from sys.argv, to be 100% consistent with how Python itself works
186 (as seen for example with python -i file.py). After a bug report
192 (as seen for example with python -i file.py). After a bug report
187 by Jeffrey Collins.
193 by Jeffrey Collins.
188
194
189 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
195 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
190 nasty bug which was preventing custom namespaces with -pylab,
196 nasty bug which was preventing custom namespaces with -pylab,
191 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
197 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
192 compatibility (long gone from mpl).
198 compatibility (long gone from mpl).
193
199
194 * IPython/ipapi.py (make_session): name change: create->make. We
200 * IPython/ipapi.py (make_session): name change: create->make. We
195 use make in other places (ipmaker,...), it's shorter and easier to
201 use make in other places (ipmaker,...), it's shorter and easier to
196 type and say, etc. I'm trying to clean things before 0.7.2 so
202 type and say, etc. I'm trying to clean things before 0.7.2 so
197 that I can keep things stable wrt to ipapi in the chainsaw branch.
203 that I can keep things stable wrt to ipapi in the chainsaw branch.
198
204
199 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
205 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
200 python-mode recognizes our debugger mode. Add support for
206 python-mode recognizes our debugger mode. Add support for
201 autoindent inside (X)emacs. After a patch sent in by Jin Liu
207 autoindent inside (X)emacs. After a patch sent in by Jin Liu
202 <m.liu.jin-AT-gmail.com> originally written by
208 <m.liu.jin-AT-gmail.com> originally written by
203 doxgen-AT-newsmth.net (with minor modifications for xemacs
209 doxgen-AT-newsmth.net (with minor modifications for xemacs
204 compatibility)
210 compatibility)
205
211
206 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
212 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
207 tracebacks when walking the stack so that the stack tracking system
213 tracebacks when walking the stack so that the stack tracking system
208 in emacs' python-mode can identify the frames correctly.
214 in emacs' python-mode can identify the frames correctly.
209
215
210 * IPython/ipmaker.py (make_IPython): make the internal (and
216 * IPython/ipmaker.py (make_IPython): make the internal (and
211 default config) autoedit_syntax value false by default. Too many
217 default config) autoedit_syntax value false by default. Too many
212 users have complained to me (both on and off-list) about problems
218 users have complained to me (both on and off-list) about problems
213 with this option being on by default, so I'm making it default to
219 with this option being on by default, so I'm making it default to
214 off. It can still be enabled by anyone via the usual mechanisms.
220 off. It can still be enabled by anyone via the usual mechanisms.
215
221
216 * IPython/completer.py (Completer.attr_matches): add support for
222 * IPython/completer.py (Completer.attr_matches): add support for
217 PyCrust-style _getAttributeNames magic method. Patch contributed
223 PyCrust-style _getAttributeNames magic method. Patch contributed
218 by <mscott-AT-goldenspud.com>. Closes #50.
224 by <mscott-AT-goldenspud.com>. Closes #50.
219
225
220 * IPython/iplib.py (InteractiveShell.__init__): remove the
226 * IPython/iplib.py (InteractiveShell.__init__): remove the
221 deletion of exit/quit from __builtin__, which can break
227 deletion of exit/quit from __builtin__, which can break
222 third-party tools like the Zope debugging console. The
228 third-party tools like the Zope debugging console. The
223 %exit/%quit magics remain. In general, it's probably a good idea
229 %exit/%quit magics remain. In general, it's probably a good idea
224 not to delete anything from __builtin__, since we never know what
230 not to delete anything from __builtin__, since we never know what
225 that will break. In any case, python now (for 2.5) will support
231 that will break. In any case, python now (for 2.5) will support
226 'real' exit/quit, so this issue is moot. Closes #55.
232 'real' exit/quit, so this issue is moot. Closes #55.
227
233
228 * IPython/genutils.py (with_obj): rename the 'with' function to
234 * IPython/genutils.py (with_obj): rename the 'with' function to
229 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
235 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
230 becomes a language keyword. Closes #53.
236 becomes a language keyword. Closes #53.
231
237
232 * IPython/FakeModule.py (FakeModule.__init__): add a proper
238 * IPython/FakeModule.py (FakeModule.__init__): add a proper
233 __file__ attribute to this so it fools more things into thinking
239 __file__ attribute to this so it fools more things into thinking
234 it is a real module. Closes #59.
240 it is a real module. Closes #59.
235
241
236 * IPython/Magic.py (magic_edit): add -n option to open the editor
242 * IPython/Magic.py (magic_edit): add -n option to open the editor
237 at a specific line number. After a patch by Stefan van der Walt.
243 at a specific line number. After a patch by Stefan van der Walt.
238
244
239 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
245 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
240
246
241 * IPython/iplib.py (edit_syntax_error): fix crash when for some
247 * IPython/iplib.py (edit_syntax_error): fix crash when for some
242 reason the file could not be opened. After automatic crash
248 reason the file could not be opened. After automatic crash
243 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
249 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
244 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
250 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
245 (_should_recompile): Don't fire editor if using %bg, since there
251 (_should_recompile): Don't fire editor if using %bg, since there
246 is no file in the first place. From the same report as above.
252 is no file in the first place. From the same report as above.
247 (raw_input): protect against faulty third-party prefilters. After
253 (raw_input): protect against faulty third-party prefilters. After
248 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
254 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
249 while running under SAGE.
255 while running under SAGE.
250
256
251 2006-05-23 Ville Vainio <vivainio@gmail.com>
257 2006-05-23 Ville Vainio <vivainio@gmail.com>
252
258
253 * ipapi.py: Stripped down ip.to_user_ns() to work only as
259 * ipapi.py: Stripped down ip.to_user_ns() to work only as
254 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
260 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
255 now returns None (again), unless dummy is specifically allowed by
261 now returns None (again), unless dummy is specifically allowed by
256 ipapi.get(allow_dummy=True).
262 ipapi.get(allow_dummy=True).
257
263
258 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
264 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
259
265
260 * IPython: remove all 2.2-compatibility objects and hacks from
266 * IPython: remove all 2.2-compatibility objects and hacks from
261 everywhere, since we only support 2.3 at this point. Docs
267 everywhere, since we only support 2.3 at this point. Docs
262 updated.
268 updated.
263
269
264 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
270 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
265 Anything requiring extra validation can be turned into a Python
271 Anything requiring extra validation can be turned into a Python
266 property in the future. I used a property for the db one b/c
272 property in the future. I used a property for the db one b/c
267 there was a nasty circularity problem with the initialization
273 there was a nasty circularity problem with the initialization
268 order, which right now I don't have time to clean up.
274 order, which right now I don't have time to clean up.
269
275
270 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
276 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
271 another locking bug reported by Jorgen. I'm not 100% sure though,
277 another locking bug reported by Jorgen. I'm not 100% sure though,
272 so more testing is needed...
278 so more testing is needed...
273
279
274 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
280 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
275
281
276 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
282 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
277 local variables from any routine in user code (typically executed
283 local variables from any routine in user code (typically executed
278 with %run) directly into the interactive namespace. Very useful
284 with %run) directly into the interactive namespace. Very useful
279 when doing complex debugging.
285 when doing complex debugging.
280 (IPythonNotRunning): Changed the default None object to a dummy
286 (IPythonNotRunning): Changed the default None object to a dummy
281 whose attributes can be queried as well as called without
287 whose attributes can be queried as well as called without
282 exploding, to ease writing code which works transparently both in
288 exploding, to ease writing code which works transparently both in
283 and out of ipython and uses some of this API.
289 and out of ipython and uses some of this API.
284
290
285 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
291 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
286
292
287 * IPython/hooks.py (result_display): Fix the fact that our display
293 * IPython/hooks.py (result_display): Fix the fact that our display
288 hook was using str() instead of repr(), as the default python
294 hook was using str() instead of repr(), as the default python
289 console does. This had gone unnoticed b/c it only happened if
295 console does. This had gone unnoticed b/c it only happened if
290 %Pprint was off, but the inconsistency was there.
296 %Pprint was off, but the inconsistency was there.
291
297
292 2006-05-15 Ville Vainio <vivainio@gmail.com>
298 2006-05-15 Ville Vainio <vivainio@gmail.com>
293
299
294 * Oinspect.py: Only show docstring for nonexisting/binary files
300 * Oinspect.py: Only show docstring for nonexisting/binary files
295 when doing object??, closing ticket #62
301 when doing object??, closing ticket #62
296
302
297 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
303 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
298
304
299 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
305 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
300 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
306 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
301 was being released in a routine which hadn't checked if it had
307 was being released in a routine which hadn't checked if it had
302 been the one to acquire it.
308 been the one to acquire it.
303
309
304 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
310 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
305
311
306 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
312 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
307
313
308 2006-04-11 Ville Vainio <vivainio@gmail.com>
314 2006-04-11 Ville Vainio <vivainio@gmail.com>
309
315
310 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
316 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
311 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
317 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
312 prefilters, allowing stuff like magics and aliases in the file.
318 prefilters, allowing stuff like magics and aliases in the file.
313
319
314 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
320 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
315 added. Supported now are "%clear in" and "%clear out" (clear input and
321 added. Supported now are "%clear in" and "%clear out" (clear input and
316 output history, respectively). Also fixed CachedOutput.flush to
322 output history, respectively). Also fixed CachedOutput.flush to
317 properly flush the output cache.
323 properly flush the output cache.
318
324
319 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
325 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
320 half-success (and fail explicitly).
326 half-success (and fail explicitly).
321
327
322 2006-03-28 Ville Vainio <vivainio@gmail.com>
328 2006-03-28 Ville Vainio <vivainio@gmail.com>
323
329
324 * iplib.py: Fix quoting of aliases so that only argless ones
330 * iplib.py: Fix quoting of aliases so that only argless ones
325 are quoted
331 are quoted
326
332
327 2006-03-28 Ville Vainio <vivainio@gmail.com>
333 2006-03-28 Ville Vainio <vivainio@gmail.com>
328
334
329 * iplib.py: Quote aliases with spaces in the name.
335 * iplib.py: Quote aliases with spaces in the name.
330 "c:\program files\blah\bin" is now legal alias target.
336 "c:\program files\blah\bin" is now legal alias target.
331
337
332 * ext_rehashdir.py: Space no longer allowed as arg
338 * ext_rehashdir.py: Space no longer allowed as arg
333 separator, since space is legal in path names.
339 separator, since space is legal in path names.
334
340
335 2006-03-16 Ville Vainio <vivainio@gmail.com>
341 2006-03-16 Ville Vainio <vivainio@gmail.com>
336
342
337 * upgrade_dir.py: Take path.py from Extensions, correcting
343 * upgrade_dir.py: Take path.py from Extensions, correcting
338 %upgrade magic
344 %upgrade magic
339
345
340 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
346 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
341
347
342 * hooks.py: Only enclose editor binary in quotes if legal and
348 * hooks.py: Only enclose editor binary in quotes if legal and
343 necessary (space in the name, and is an existing file). Fixes a bug
349 necessary (space in the name, and is an existing file). Fixes a bug
344 reported by Zachary Pincus.
350 reported by Zachary Pincus.
345
351
346 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
352 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
347
353
348 * Manual: thanks to a tip on proper color handling for Emacs, by
354 * Manual: thanks to a tip on proper color handling for Emacs, by
349 Eric J Haywiser <ejh1-AT-MIT.EDU>.
355 Eric J Haywiser <ejh1-AT-MIT.EDU>.
350
356
351 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
357 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
352 by applying the provided patch. Thanks to Liu Jin
358 by applying the provided patch. Thanks to Liu Jin
353 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
359 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
354 XEmacs/Linux, I'm trusting the submitter that it actually helps
360 XEmacs/Linux, I'm trusting the submitter that it actually helps
355 under win32/GNU Emacs. Will revisit if any problems are reported.
361 under win32/GNU Emacs. Will revisit if any problems are reported.
356
362
357 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
363 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
358
364
359 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
365 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
360 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
366 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
361
367
362 2006-03-12 Ville Vainio <vivainio@gmail.com>
368 2006-03-12 Ville Vainio <vivainio@gmail.com>
363
369
364 * Magic.py (magic_timeit): Added %timeit magic, contributed by
370 * Magic.py (magic_timeit): Added %timeit magic, contributed by
365 Torsten Marek.
371 Torsten Marek.
366
372
367 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
373 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
368
374
369 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
375 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
370 line ranges works again.
376 line ranges works again.
371
377
372 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
378 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
373
379
374 * IPython/iplib.py (showtraceback): add back sys.last_traceback
380 * IPython/iplib.py (showtraceback): add back sys.last_traceback
375 and friends, after a discussion with Zach Pincus on ipython-user.
381 and friends, after a discussion with Zach Pincus on ipython-user.
376 I'm not 100% sure, but after thinking about it quite a bit, it may
382 I'm not 100% sure, but after thinking about it quite a bit, it may
377 be OK. Testing with the multithreaded shells didn't reveal any
383 be OK. Testing with the multithreaded shells didn't reveal any
378 problems, but let's keep an eye out.
384 problems, but let's keep an eye out.
379
385
380 In the process, I fixed a few things which were calling
386 In the process, I fixed a few things which were calling
381 self.InteractiveTB() directly (like safe_execfile), which is a
387 self.InteractiveTB() directly (like safe_execfile), which is a
382 mistake: ALL exception reporting should be done by calling
388 mistake: ALL exception reporting should be done by calling
383 self.showtraceback(), which handles state and tab-completion and
389 self.showtraceback(), which handles state and tab-completion and
384 more.
390 more.
385
391
386 2006-03-01 Ville Vainio <vivainio@gmail.com>
392 2006-03-01 Ville Vainio <vivainio@gmail.com>
387
393
388 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
394 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
389 To use, do "from ipipe import *".
395 To use, do "from ipipe import *".
390
396
391 2006-02-24 Ville Vainio <vivainio@gmail.com>
397 2006-02-24 Ville Vainio <vivainio@gmail.com>
392
398
393 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
399 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
394 "cleanly" and safely than the older upgrade mechanism.
400 "cleanly" and safely than the older upgrade mechanism.
395
401
396 2006-02-21 Ville Vainio <vivainio@gmail.com>
402 2006-02-21 Ville Vainio <vivainio@gmail.com>
397
403
398 * Magic.py: %save works again.
404 * Magic.py: %save works again.
399
405
400 2006-02-15 Ville Vainio <vivainio@gmail.com>
406 2006-02-15 Ville Vainio <vivainio@gmail.com>
401
407
402 * Magic.py: %Pprint works again
408 * Magic.py: %Pprint works again
403
409
404 * Extensions/ipy_sane_defaults.py: Provide everything provided
410 * Extensions/ipy_sane_defaults.py: Provide everything provided
405 in default ipythonrc, to make it possible to have a completely empty
411 in default ipythonrc, to make it possible to have a completely empty
406 ipythonrc (and thus completely rc-file free configuration)
412 ipythonrc (and thus completely rc-file free configuration)
407
413
408 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
414 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
409
415
410 * IPython/hooks.py (editor): quote the call to the editor command,
416 * IPython/hooks.py (editor): quote the call to the editor command,
411 to allow commands with spaces in them. Problem noted by watching
417 to allow commands with spaces in them. Problem noted by watching
412 Ian Oswald's video about textpad under win32 at
418 Ian Oswald's video about textpad under win32 at
413 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
419 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
414
420
415 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
421 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
416 describing magics (we haven't used @ for a loong time).
422 describing magics (we haven't used @ for a loong time).
417
423
418 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
424 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
419 contributed by marienz to close
425 contributed by marienz to close
420 http://www.scipy.net/roundup/ipython/issue53.
426 http://www.scipy.net/roundup/ipython/issue53.
421
427
422 2006-02-10 Ville Vainio <vivainio@gmail.com>
428 2006-02-10 Ville Vainio <vivainio@gmail.com>
423
429
424 * genutils.py: getoutput now works in win32 too
430 * genutils.py: getoutput now works in win32 too
425
431
426 * completer.py: alias and magic completion only invoked
432 * completer.py: alias and magic completion only invoked
427 at the first "item" in the line, to avoid "cd %store"
433 at the first "item" in the line, to avoid "cd %store"
428 nonsense.
434 nonsense.
429
435
430 2006-02-09 Ville Vainio <vivainio@gmail.com>
436 2006-02-09 Ville Vainio <vivainio@gmail.com>
431
437
432 * test/*: Added a unit testing framework (finally).
438 * test/*: Added a unit testing framework (finally).
433 '%run runtests.py' to run test_*.
439 '%run runtests.py' to run test_*.
434
440
435 * ipapi.py: Exposed runlines and set_custom_exc
441 * ipapi.py: Exposed runlines and set_custom_exc
436
442
437 2006-02-07 Ville Vainio <vivainio@gmail.com>
443 2006-02-07 Ville Vainio <vivainio@gmail.com>
438
444
439 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
445 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
440 instead use "f(1 2)" as before.
446 instead use "f(1 2)" as before.
441
447
442 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
448 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
443
449
444 * IPython/demo.py (IPythonDemo): Add new classes to the demo
450 * IPython/demo.py (IPythonDemo): Add new classes to the demo
445 facilities, for demos processed by the IPython input filter
451 facilities, for demos processed by the IPython input filter
446 (IPythonDemo), and for running a script one-line-at-a-time as a
452 (IPythonDemo), and for running a script one-line-at-a-time as a
447 demo, both for pure Python (LineDemo) and for IPython-processed
453 demo, both for pure Python (LineDemo) and for IPython-processed
448 input (IPythonLineDemo). After a request by Dave Kohel, from the
454 input (IPythonLineDemo). After a request by Dave Kohel, from the
449 SAGE team.
455 SAGE team.
450 (Demo.edit): added an edit() method to the demo objects, to edit
456 (Demo.edit): added an edit() method to the demo objects, to edit
451 the in-memory copy of the last executed block.
457 the in-memory copy of the last executed block.
452
458
453 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
459 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
454 processing to %edit, %macro and %save. These commands can now be
460 processing to %edit, %macro and %save. These commands can now be
455 invoked on the unprocessed input as it was typed by the user
461 invoked on the unprocessed input as it was typed by the user
456 (without any prefilters applied). After requests by the SAGE team
462 (without any prefilters applied). After requests by the SAGE team
457 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
463 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
458
464
459 2006-02-01 Ville Vainio <vivainio@gmail.com>
465 2006-02-01 Ville Vainio <vivainio@gmail.com>
460
466
461 * setup.py, eggsetup.py: easy_install ipython==dev works
467 * setup.py, eggsetup.py: easy_install ipython==dev works
462 correctly now (on Linux)
468 correctly now (on Linux)
463
469
464 * ipy_user_conf,ipmaker: user config changes, removed spurious
470 * ipy_user_conf,ipmaker: user config changes, removed spurious
465 warnings
471 warnings
466
472
467 * iplib: if rc.banner is string, use it as is.
473 * iplib: if rc.banner is string, use it as is.
468
474
469 * Magic: %pycat accepts a string argument and pages it's contents.
475 * Magic: %pycat accepts a string argument and pages it's contents.
470
476
471
477
472 2006-01-30 Ville Vainio <vivainio@gmail.com>
478 2006-01-30 Ville Vainio <vivainio@gmail.com>
473
479
474 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
480 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
475 Now %store and bookmarks work through PickleShare, meaning that
481 Now %store and bookmarks work through PickleShare, meaning that
476 concurrent access is possible and all ipython sessions see the
482 concurrent access is possible and all ipython sessions see the
477 same database situation all the time, instead of snapshot of
483 same database situation all the time, instead of snapshot of
478 the situation when the session was started. Hence, %bookmark
484 the situation when the session was started. Hence, %bookmark
479 results are immediately accessible from othes sessions. The database
485 results are immediately accessible from othes sessions. The database
480 is also available for use by user extensions. See:
486 is also available for use by user extensions. See:
481 http://www.python.org/pypi/pickleshare
487 http://www.python.org/pypi/pickleshare
482
488
483 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
489 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
484
490
485 * aliases can now be %store'd
491 * aliases can now be %store'd
486
492
487 * path.py moved to Extensions so that pickleshare does not need
493 * path.py moved to Extensions so that pickleshare does not need
488 IPython-specific import. Extensions added to pythonpath right
494 IPython-specific import. Extensions added to pythonpath right
489 at __init__.
495 at __init__.
490
496
491 * iplib.py: ipalias deprecated/redundant; aliases are converted and
497 * iplib.py: ipalias deprecated/redundant; aliases are converted and
492 called with _ip.system and the pre-transformed command string.
498 called with _ip.system and the pre-transformed command string.
493
499
494 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
500 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
495
501
496 * IPython/iplib.py (interact): Fix that we were not catching
502 * IPython/iplib.py (interact): Fix that we were not catching
497 KeyboardInterrupt exceptions properly. I'm not quite sure why the
503 KeyboardInterrupt exceptions properly. I'm not quite sure why the
498 logic here had to change, but it's fixed now.
504 logic here had to change, but it's fixed now.
499
505
500 2006-01-29 Ville Vainio <vivainio@gmail.com>
506 2006-01-29 Ville Vainio <vivainio@gmail.com>
501
507
502 * iplib.py: Try to import pyreadline on Windows.
508 * iplib.py: Try to import pyreadline on Windows.
503
509
504 2006-01-27 Ville Vainio <vivainio@gmail.com>
510 2006-01-27 Ville Vainio <vivainio@gmail.com>
505
511
506 * iplib.py: Expose ipapi as _ip in builtin namespace.
512 * iplib.py: Expose ipapi as _ip in builtin namespace.
507 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
513 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
508 and ip_set_hook (-> _ip.set_hook) redundant. % and !
514 and ip_set_hook (-> _ip.set_hook) redundant. % and !
509 syntax now produce _ip.* variant of the commands.
515 syntax now produce _ip.* variant of the commands.
510
516
511 * "_ip.options().autoedit_syntax = 2" automatically throws
517 * "_ip.options().autoedit_syntax = 2" automatically throws
512 user to editor for syntax error correction without prompting.
518 user to editor for syntax error correction without prompting.
513
519
514 2006-01-27 Ville Vainio <vivainio@gmail.com>
520 2006-01-27 Ville Vainio <vivainio@gmail.com>
515
521
516 * ipmaker.py: Give "realistic" sys.argv for scripts (without
522 * ipmaker.py: Give "realistic" sys.argv for scripts (without
517 'ipython' at argv[0]) executed through command line.
523 'ipython' at argv[0]) executed through command line.
518 NOTE: this DEPRECATES calling ipython with multiple scripts
524 NOTE: this DEPRECATES calling ipython with multiple scripts
519 ("ipython a.py b.py c.py")
525 ("ipython a.py b.py c.py")
520
526
521 * iplib.py, hooks.py: Added configurable input prefilter,
527 * iplib.py, hooks.py: Added configurable input prefilter,
522 named 'input_prefilter'. See ext_rescapture.py for example
528 named 'input_prefilter'. See ext_rescapture.py for example
523 usage.
529 usage.
524
530
525 * ext_rescapture.py, Magic.py: Better system command output capture
531 * ext_rescapture.py, Magic.py: Better system command output capture
526 through 'var = !ls' (deprecates user-visible %sc). Same notation
532 through 'var = !ls' (deprecates user-visible %sc). Same notation
527 applies for magics, 'var = %alias' assigns alias list to var.
533 applies for magics, 'var = %alias' assigns alias list to var.
528
534
529 * ipapi.py: added meta() for accessing extension-usable data store.
535 * ipapi.py: added meta() for accessing extension-usable data store.
530
536
531 * iplib.py: added InteractiveShell.getapi(). New magics should be
537 * iplib.py: added InteractiveShell.getapi(). New magics should be
532 written doing self.getapi() instead of using the shell directly.
538 written doing self.getapi() instead of using the shell directly.
533
539
534 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
540 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
535 %store foo >> ~/myfoo.txt to store variables to files (in clean
541 %store foo >> ~/myfoo.txt to store variables to files (in clean
536 textual form, not a restorable pickle).
542 textual form, not a restorable pickle).
537
543
538 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
544 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
539
545
540 * usage.py, Magic.py: added %quickref
546 * usage.py, Magic.py: added %quickref
541
547
542 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
548 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
543
549
544 * GetoptErrors when invoking magics etc. with wrong args
550 * GetoptErrors when invoking magics etc. with wrong args
545 are now more helpful:
551 are now more helpful:
546 GetoptError: option -l not recognized (allowed: "qb" )
552 GetoptError: option -l not recognized (allowed: "qb" )
547
553
548 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
554 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
549
555
550 * IPython/demo.py (Demo.show): Flush stdout after each block, so
556 * IPython/demo.py (Demo.show): Flush stdout after each block, so
551 computationally intensive blocks don't appear to stall the demo.
557 computationally intensive blocks don't appear to stall the demo.
552
558
553 2006-01-24 Ville Vainio <vivainio@gmail.com>
559 2006-01-24 Ville Vainio <vivainio@gmail.com>
554
560
555 * iplib.py, hooks.py: 'result_display' hook can return a non-None
561 * iplib.py, hooks.py: 'result_display' hook can return a non-None
556 value to manipulate resulting history entry.
562 value to manipulate resulting history entry.
557
563
558 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
564 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
559 to instance methods of IPApi class, to make extending an embedded
565 to instance methods of IPApi class, to make extending an embedded
560 IPython feasible. See ext_rehashdir.py for example usage.
566 IPython feasible. See ext_rehashdir.py for example usage.
561
567
562 * Merged 1071-1076 from branches/0.7.1
568 * Merged 1071-1076 from branches/0.7.1
563
569
564
570
565 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
571 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
566
572
567 * tools/release (daystamp): Fix build tools to use the new
573 * tools/release (daystamp): Fix build tools to use the new
568 eggsetup.py script to build lightweight eggs.
574 eggsetup.py script to build lightweight eggs.
569
575
570 * Applied changesets 1062 and 1064 before 0.7.1 release.
576 * Applied changesets 1062 and 1064 before 0.7.1 release.
571
577
572 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
578 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
573 see the raw input history (without conversions like %ls ->
579 see the raw input history (without conversions like %ls ->
574 ipmagic("ls")). After a request from W. Stein, SAGE
580 ipmagic("ls")). After a request from W. Stein, SAGE
575 (http://modular.ucsd.edu/sage) developer. This information is
581 (http://modular.ucsd.edu/sage) developer. This information is
576 stored in the input_hist_raw attribute of the IPython instance, so
582 stored in the input_hist_raw attribute of the IPython instance, so
577 developers can access it if needed (it's an InputList instance).
583 developers can access it if needed (it's an InputList instance).
578
584
579 * Versionstring = 0.7.2.svn
585 * Versionstring = 0.7.2.svn
580
586
581 * eggsetup.py: A separate script for constructing eggs, creates
587 * eggsetup.py: A separate script for constructing eggs, creates
582 proper launch scripts even on Windows (an .exe file in
588 proper launch scripts even on Windows (an .exe file in
583 \python24\scripts).
589 \python24\scripts).
584
590
585 * ipapi.py: launch_new_instance, launch entry point needed for the
591 * ipapi.py: launch_new_instance, launch entry point needed for the
586 egg.
592 egg.
587
593
588 2006-01-23 Ville Vainio <vivainio@gmail.com>
594 2006-01-23 Ville Vainio <vivainio@gmail.com>
589
595
590 * Added %cpaste magic for pasting python code
596 * Added %cpaste magic for pasting python code
591
597
592 2006-01-22 Ville Vainio <vivainio@gmail.com>
598 2006-01-22 Ville Vainio <vivainio@gmail.com>
593
599
594 * Merge from branches/0.7.1 into trunk, revs 1052-1057
600 * Merge from branches/0.7.1 into trunk, revs 1052-1057
595
601
596 * Versionstring = 0.7.2.svn
602 * Versionstring = 0.7.2.svn
597
603
598 * eggsetup.py: A separate script for constructing eggs, creates
604 * eggsetup.py: A separate script for constructing eggs, creates
599 proper launch scripts even on Windows (an .exe file in
605 proper launch scripts even on Windows (an .exe file in
600 \python24\scripts).
606 \python24\scripts).
601
607
602 * ipapi.py: launch_new_instance, launch entry point needed for the
608 * ipapi.py: launch_new_instance, launch entry point needed for the
603 egg.
609 egg.
604
610
605 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
611 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
606
612
607 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
613 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
608 %pfile foo would print the file for foo even if it was a binary.
614 %pfile foo would print the file for foo even if it was a binary.
609 Now, extensions '.so' and '.dll' are skipped.
615 Now, extensions '.so' and '.dll' are skipped.
610
616
611 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
617 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
612 bug, where macros would fail in all threaded modes. I'm not 100%
618 bug, where macros would fail in all threaded modes. I'm not 100%
613 sure, so I'm going to put out an rc instead of making a release
619 sure, so I'm going to put out an rc instead of making a release
614 today, and wait for feedback for at least a few days.
620 today, and wait for feedback for at least a few days.
615
621
616 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
622 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
617 it...) the handling of pasting external code with autoindent on.
623 it...) the handling of pasting external code with autoindent on.
618 To get out of a multiline input, the rule will appear for most
624 To get out of a multiline input, the rule will appear for most
619 users unchanged: two blank lines or change the indent level
625 users unchanged: two blank lines or change the indent level
620 proposed by IPython. But there is a twist now: you can
626 proposed by IPython. But there is a twist now: you can
621 add/subtract only *one or two spaces*. If you add/subtract three
627 add/subtract only *one or two spaces*. If you add/subtract three
622 or more (unless you completely delete the line), IPython will
628 or more (unless you completely delete the line), IPython will
623 accept that line, and you'll need to enter a second one of pure
629 accept that line, and you'll need to enter a second one of pure
624 whitespace. I know it sounds complicated, but I can't find a
630 whitespace. I know it sounds complicated, but I can't find a
625 different solution that covers all the cases, with the right
631 different solution that covers all the cases, with the right
626 heuristics. Hopefully in actual use, nobody will really notice
632 heuristics. Hopefully in actual use, nobody will really notice
627 all these strange rules and things will 'just work'.
633 all these strange rules and things will 'just work'.
628
634
629 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
635 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
630
636
631 * IPython/iplib.py (interact): catch exceptions which can be
637 * IPython/iplib.py (interact): catch exceptions which can be
632 triggered asynchronously by signal handlers. Thanks to an
638 triggered asynchronously by signal handlers. Thanks to an
633 automatic crash report, submitted by Colin Kingsley
639 automatic crash report, submitted by Colin Kingsley
634 <tercel-AT-gentoo.org>.
640 <tercel-AT-gentoo.org>.
635
641
636 2006-01-20 Ville Vainio <vivainio@gmail.com>
642 2006-01-20 Ville Vainio <vivainio@gmail.com>
637
643
638 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
644 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
639 (%rehashdir, very useful, try it out) of how to extend ipython
645 (%rehashdir, very useful, try it out) of how to extend ipython
640 with new magics. Also added Extensions dir to pythonpath to make
646 with new magics. Also added Extensions dir to pythonpath to make
641 importing extensions easy.
647 importing extensions easy.
642
648
643 * %store now complains when trying to store interactively declared
649 * %store now complains when trying to store interactively declared
644 classes / instances of those classes.
650 classes / instances of those classes.
645
651
646 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
652 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
647 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
653 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
648 if they exist, and ipy_user_conf.py with some defaults is created for
654 if they exist, and ipy_user_conf.py with some defaults is created for
649 the user.
655 the user.
650
656
651 * Startup rehashing done by the config file, not InterpreterExec.
657 * Startup rehashing done by the config file, not InterpreterExec.
652 This means system commands are available even without selecting the
658 This means system commands are available even without selecting the
653 pysh profile. It's the sensible default after all.
659 pysh profile. It's the sensible default after all.
654
660
655 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
661 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
656
662
657 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
663 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
658 multiline code with autoindent on working. But I am really not
664 multiline code with autoindent on working. But I am really not
659 sure, so this needs more testing. Will commit a debug-enabled
665 sure, so this needs more testing. Will commit a debug-enabled
660 version for now, while I test it some more, so that Ville and
666 version for now, while I test it some more, so that Ville and
661 others may also catch any problems. Also made
667 others may also catch any problems. Also made
662 self.indent_current_str() a method, to ensure that there's no
668 self.indent_current_str() a method, to ensure that there's no
663 chance of the indent space count and the corresponding string
669 chance of the indent space count and the corresponding string
664 falling out of sync. All code needing the string should just call
670 falling out of sync. All code needing the string should just call
665 the method.
671 the method.
666
672
667 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
673 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
668
674
669 * IPython/Magic.py (magic_edit): fix check for when users don't
675 * IPython/Magic.py (magic_edit): fix check for when users don't
670 save their output files, the try/except was in the wrong section.
676 save their output files, the try/except was in the wrong section.
671
677
672 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
678 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
673
679
674 * IPython/Magic.py (magic_run): fix __file__ global missing from
680 * IPython/Magic.py (magic_run): fix __file__ global missing from
675 script's namespace when executed via %run. After a report by
681 script's namespace when executed via %run. After a report by
676 Vivian.
682 Vivian.
677
683
678 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
684 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
679 when using python 2.4. The parent constructor changed in 2.4, and
685 when using python 2.4. The parent constructor changed in 2.4, and
680 we need to track it directly (we can't call it, as it messes up
686 we need to track it directly (we can't call it, as it messes up
681 readline and tab-completion inside our pdb would stop working).
687 readline and tab-completion inside our pdb would stop working).
682 After a bug report by R. Bernstein <rocky-AT-panix.com>.
688 After a bug report by R. Bernstein <rocky-AT-panix.com>.
683
689
684 2006-01-16 Ville Vainio <vivainio@gmail.com>
690 2006-01-16 Ville Vainio <vivainio@gmail.com>
685
691
686 * Ipython/magic.py: Reverted back to old %edit functionality
692 * Ipython/magic.py: Reverted back to old %edit functionality
687 that returns file contents on exit.
693 that returns file contents on exit.
688
694
689 * IPython/path.py: Added Jason Orendorff's "path" module to
695 * IPython/path.py: Added Jason Orendorff's "path" module to
690 IPython tree, http://www.jorendorff.com/articles/python/path/.
696 IPython tree, http://www.jorendorff.com/articles/python/path/.
691 You can get path objects conveniently through %sc, and !!, e.g.:
697 You can get path objects conveniently through %sc, and !!, e.g.:
692 sc files=ls
698 sc files=ls
693 for p in files.paths: # or files.p
699 for p in files.paths: # or files.p
694 print p,p.mtime
700 print p,p.mtime
695
701
696 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
702 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
697 now work again without considering the exclusion regexp -
703 now work again without considering the exclusion regexp -
698 hence, things like ',foo my/path' turn to 'foo("my/path")'
704 hence, things like ',foo my/path' turn to 'foo("my/path")'
699 instead of syntax error.
705 instead of syntax error.
700
706
701
707
702 2006-01-14 Ville Vainio <vivainio@gmail.com>
708 2006-01-14 Ville Vainio <vivainio@gmail.com>
703
709
704 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
710 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
705 ipapi decorators for python 2.4 users, options() provides access to rc
711 ipapi decorators for python 2.4 users, options() provides access to rc
706 data.
712 data.
707
713
708 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
714 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
709 as path separators (even on Linux ;-). Space character after
715 as path separators (even on Linux ;-). Space character after
710 backslash (as yielded by tab completer) is still space;
716 backslash (as yielded by tab completer) is still space;
711 "%cd long\ name" works as expected.
717 "%cd long\ name" works as expected.
712
718
713 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
719 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
714 as "chain of command", with priority. API stays the same,
720 as "chain of command", with priority. API stays the same,
715 TryNext exception raised by a hook function signals that
721 TryNext exception raised by a hook function signals that
716 current hook failed and next hook should try handling it, as
722 current hook failed and next hook should try handling it, as
717 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
723 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
718 requested configurable display hook, which is now implemented.
724 requested configurable display hook, which is now implemented.
719
725
720 2006-01-13 Ville Vainio <vivainio@gmail.com>
726 2006-01-13 Ville Vainio <vivainio@gmail.com>
721
727
722 * IPython/platutils*.py: platform specific utility functions,
728 * IPython/platutils*.py: platform specific utility functions,
723 so far only set_term_title is implemented (change terminal
729 so far only set_term_title is implemented (change terminal
724 label in windowing systems). %cd now changes the title to
730 label in windowing systems). %cd now changes the title to
725 current dir.
731 current dir.
726
732
727 * IPython/Release.py: Added myself to "authors" list,
733 * IPython/Release.py: Added myself to "authors" list,
728 had to create new files.
734 had to create new files.
729
735
730 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
736 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
731 shell escape; not a known bug but had potential to be one in the
737 shell escape; not a known bug but had potential to be one in the
732 future.
738 future.
733
739
734 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
740 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
735 extension API for IPython! See the module for usage example. Fix
741 extension API for IPython! See the module for usage example. Fix
736 OInspect for docstring-less magic functions.
742 OInspect for docstring-less magic functions.
737
743
738
744
739 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
745 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
740
746
741 * IPython/iplib.py (raw_input): temporarily deactivate all
747 * IPython/iplib.py (raw_input): temporarily deactivate all
742 attempts at allowing pasting of code with autoindent on. It
748 attempts at allowing pasting of code with autoindent on. It
743 introduced bugs (reported by Prabhu) and I can't seem to find a
749 introduced bugs (reported by Prabhu) and I can't seem to find a
744 robust combination which works in all cases. Will have to revisit
750 robust combination which works in all cases. Will have to revisit
745 later.
751 later.
746
752
747 * IPython/genutils.py: remove isspace() function. We've dropped
753 * IPython/genutils.py: remove isspace() function. We've dropped
748 2.2 compatibility, so it's OK to use the string method.
754 2.2 compatibility, so it's OK to use the string method.
749
755
750 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
756 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
751
757
752 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
758 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
753 matching what NOT to autocall on, to include all python binary
759 matching what NOT to autocall on, to include all python binary
754 operators (including things like 'and', 'or', 'is' and 'in').
760 operators (including things like 'and', 'or', 'is' and 'in').
755 Prompted by a bug report on 'foo & bar', but I realized we had
761 Prompted by a bug report on 'foo & bar', but I realized we had
756 many more potential bug cases with other operators. The regexp is
762 many more potential bug cases with other operators. The regexp is
757 self.re_exclude_auto, it's fairly commented.
763 self.re_exclude_auto, it's fairly commented.
758
764
759 2006-01-12 Ville Vainio <vivainio@gmail.com>
765 2006-01-12 Ville Vainio <vivainio@gmail.com>
760
766
761 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
767 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
762 Prettified and hardened string/backslash quoting with ipsystem(),
768 Prettified and hardened string/backslash quoting with ipsystem(),
763 ipalias() and ipmagic(). Now even \ characters are passed to
769 ipalias() and ipmagic(). Now even \ characters are passed to
764 %magics, !shell escapes and aliases exactly as they are in the
770 %magics, !shell escapes and aliases exactly as they are in the
765 ipython command line. Should improve backslash experience,
771 ipython command line. Should improve backslash experience,
766 particularly in Windows (path delimiter for some commands that
772 particularly in Windows (path delimiter for some commands that
767 won't understand '/'), but Unix benefits as well (regexps). %cd
773 won't understand '/'), but Unix benefits as well (regexps). %cd
768 magic still doesn't support backslash path delimiters, though. Also
774 magic still doesn't support backslash path delimiters, though. Also
769 deleted all pretense of supporting multiline command strings in
775 deleted all pretense of supporting multiline command strings in
770 !system or %magic commands. Thanks to Jerry McRae for suggestions.
776 !system or %magic commands. Thanks to Jerry McRae for suggestions.
771
777
772 * doc/build_doc_instructions.txt added. Documentation on how to
778 * doc/build_doc_instructions.txt added. Documentation on how to
773 use doc/update_manual.py, added yesterday. Both files contributed
779 use doc/update_manual.py, added yesterday. Both files contributed
774 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
780 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
775 doc/*.sh for deprecation at a later date.
781 doc/*.sh for deprecation at a later date.
776
782
777 * /ipython.py Added ipython.py to root directory for
783 * /ipython.py Added ipython.py to root directory for
778 zero-installation (tar xzvf ipython.tgz; cd ipython; python
784 zero-installation (tar xzvf ipython.tgz; cd ipython; python
779 ipython.py) and development convenience (no need to keep doing
785 ipython.py) and development convenience (no need to keep doing
780 "setup.py install" between changes).
786 "setup.py install" between changes).
781
787
782 * Made ! and !! shell escapes work (again) in multiline expressions:
788 * Made ! and !! shell escapes work (again) in multiline expressions:
783 if 1:
789 if 1:
784 !ls
790 !ls
785 !!ls
791 !!ls
786
792
787 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
793 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
788
794
789 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
795 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
790 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
796 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
791 module in case-insensitive installation. Was causing crashes
797 module in case-insensitive installation. Was causing crashes
792 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
798 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
793
799
794 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
800 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
795 <marienz-AT-gentoo.org>, closes
801 <marienz-AT-gentoo.org>, closes
796 http://www.scipy.net/roundup/ipython/issue51.
802 http://www.scipy.net/roundup/ipython/issue51.
797
803
798 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
804 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
799
805
800 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
806 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
801 problem of excessive CPU usage under *nix and keyboard lag under
807 problem of excessive CPU usage under *nix and keyboard lag under
802 win32.
808 win32.
803
809
804 2006-01-10 *** Released version 0.7.0
810 2006-01-10 *** Released version 0.7.0
805
811
806 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
812 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
807
813
808 * IPython/Release.py (revision): tag version number to 0.7.0,
814 * IPython/Release.py (revision): tag version number to 0.7.0,
809 ready for release.
815 ready for release.
810
816
811 * IPython/Magic.py (magic_edit): Add print statement to %edit so
817 * IPython/Magic.py (magic_edit): Add print statement to %edit so
812 it informs the user of the name of the temp. file used. This can
818 it informs the user of the name of the temp. file used. This can
813 help if you decide later to reuse that same file, so you know
819 help if you decide later to reuse that same file, so you know
814 where to copy the info from.
820 where to copy the info from.
815
821
816 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
822 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
817
823
818 * setup_bdist_egg.py: little script to build an egg. Added
824 * setup_bdist_egg.py: little script to build an egg. Added
819 support in the release tools as well.
825 support in the release tools as well.
820
826
821 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
827 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
822
828
823 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
829 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
824 version selection (new -wxversion command line and ipythonrc
830 version selection (new -wxversion command line and ipythonrc
825 parameter). Patch contributed by Arnd Baecker
831 parameter). Patch contributed by Arnd Baecker
826 <arnd.baecker-AT-web.de>.
832 <arnd.baecker-AT-web.de>.
827
833
828 * IPython/iplib.py (embed_mainloop): fix tab-completion in
834 * IPython/iplib.py (embed_mainloop): fix tab-completion in
829 embedded instances, for variables defined at the interactive
835 embedded instances, for variables defined at the interactive
830 prompt of the embedded ipython. Reported by Arnd.
836 prompt of the embedded ipython. Reported by Arnd.
831
837
832 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
838 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
833 it can be used as a (stateful) toggle, or with a direct parameter.
839 it can be used as a (stateful) toggle, or with a direct parameter.
834
840
835 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
841 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
836 could be triggered in certain cases and cause the traceback
842 could be triggered in certain cases and cause the traceback
837 printer not to work.
843 printer not to work.
838
844
839 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
845 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
840
846
841 * IPython/iplib.py (_should_recompile): Small fix, closes
847 * IPython/iplib.py (_should_recompile): Small fix, closes
842 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
848 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
843
849
844 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
850 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
845
851
846 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
852 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
847 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
853 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
848 Moad for help with tracking it down.
854 Moad for help with tracking it down.
849
855
850 * IPython/iplib.py (handle_auto): fix autocall handling for
856 * IPython/iplib.py (handle_auto): fix autocall handling for
851 objects which support BOTH __getitem__ and __call__ (so that f [x]
857 objects which support BOTH __getitem__ and __call__ (so that f [x]
852 is left alone, instead of becoming f([x]) automatically).
858 is left alone, instead of becoming f([x]) automatically).
853
859
854 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
860 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
855 Ville's patch.
861 Ville's patch.
856
862
857 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
863 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
858
864
859 * IPython/iplib.py (handle_auto): changed autocall semantics to
865 * IPython/iplib.py (handle_auto): changed autocall semantics to
860 include 'smart' mode, where the autocall transformation is NOT
866 include 'smart' mode, where the autocall transformation is NOT
861 applied if there are no arguments on the line. This allows you to
867 applied if there are no arguments on the line. This allows you to
862 just type 'foo' if foo is a callable to see its internal form,
868 just type 'foo' if foo is a callable to see its internal form,
863 instead of having it called with no arguments (typically a
869 instead of having it called with no arguments (typically a
864 mistake). The old 'full' autocall still exists: for that, you
870 mistake). The old 'full' autocall still exists: for that, you
865 need to set the 'autocall' parameter to 2 in your ipythonrc file.
871 need to set the 'autocall' parameter to 2 in your ipythonrc file.
866
872
867 * IPython/completer.py (Completer.attr_matches): add
873 * IPython/completer.py (Completer.attr_matches): add
868 tab-completion support for Enthoughts' traits. After a report by
874 tab-completion support for Enthoughts' traits. After a report by
869 Arnd and a patch by Prabhu.
875 Arnd and a patch by Prabhu.
870
876
871 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
877 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
872
878
873 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
879 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
874 Schmolck's patch to fix inspect.getinnerframes().
880 Schmolck's patch to fix inspect.getinnerframes().
875
881
876 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
882 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
877 for embedded instances, regarding handling of namespaces and items
883 for embedded instances, regarding handling of namespaces and items
878 added to the __builtin__ one. Multiple embedded instances and
884 added to the __builtin__ one. Multiple embedded instances and
879 recursive embeddings should work better now (though I'm not sure
885 recursive embeddings should work better now (though I'm not sure
880 I've got all the corner cases fixed, that code is a bit of a brain
886 I've got all the corner cases fixed, that code is a bit of a brain
881 twister).
887 twister).
882
888
883 * IPython/Magic.py (magic_edit): added support to edit in-memory
889 * IPython/Magic.py (magic_edit): added support to edit in-memory
884 macros (automatically creates the necessary temp files). %edit
890 macros (automatically creates the necessary temp files). %edit
885 also doesn't return the file contents anymore, it's just noise.
891 also doesn't return the file contents anymore, it's just noise.
886
892
887 * IPython/completer.py (Completer.attr_matches): revert change to
893 * IPython/completer.py (Completer.attr_matches): revert change to
888 complete only on attributes listed in __all__. I realized it
894 complete only on attributes listed in __all__. I realized it
889 cripples the tab-completion system as a tool for exploring the
895 cripples the tab-completion system as a tool for exploring the
890 internals of unknown libraries (it renders any non-__all__
896 internals of unknown libraries (it renders any non-__all__
891 attribute off-limits). I got bit by this when trying to see
897 attribute off-limits). I got bit by this when trying to see
892 something inside the dis module.
898 something inside the dis module.
893
899
894 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
900 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
895
901
896 * IPython/iplib.py (InteractiveShell.__init__): add .meta
902 * IPython/iplib.py (InteractiveShell.__init__): add .meta
897 namespace for users and extension writers to hold data in. This
903 namespace for users and extension writers to hold data in. This
898 follows the discussion in
904 follows the discussion in
899 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
905 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
900
906
901 * IPython/completer.py (IPCompleter.complete): small patch to help
907 * IPython/completer.py (IPCompleter.complete): small patch to help
902 tab-completion under Emacs, after a suggestion by John Barnard
908 tab-completion under Emacs, after a suggestion by John Barnard
903 <barnarj-AT-ccf.org>.
909 <barnarj-AT-ccf.org>.
904
910
905 * IPython/Magic.py (Magic.extract_input_slices): added support for
911 * IPython/Magic.py (Magic.extract_input_slices): added support for
906 the slice notation in magics to use N-M to represent numbers N...M
912 the slice notation in magics to use N-M to represent numbers N...M
907 (closed endpoints). This is used by %macro and %save.
913 (closed endpoints). This is used by %macro and %save.
908
914
909 * IPython/completer.py (Completer.attr_matches): for modules which
915 * IPython/completer.py (Completer.attr_matches): for modules which
910 define __all__, complete only on those. After a patch by Jeffrey
916 define __all__, complete only on those. After a patch by Jeffrey
911 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
917 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
912 speed up this routine.
918 speed up this routine.
913
919
914 * IPython/Logger.py (Logger.log): fix a history handling bug. I
920 * IPython/Logger.py (Logger.log): fix a history handling bug. I
915 don't know if this is the end of it, but the behavior now is
921 don't know if this is the end of it, but the behavior now is
916 certainly much more correct. Note that coupled with macros,
922 certainly much more correct. Note that coupled with macros,
917 slightly surprising (at first) behavior may occur: a macro will in
923 slightly surprising (at first) behavior may occur: a macro will in
918 general expand to multiple lines of input, so upon exiting, the
924 general expand to multiple lines of input, so upon exiting, the
919 in/out counters will both be bumped by the corresponding amount
925 in/out counters will both be bumped by the corresponding amount
920 (as if the macro's contents had been typed interactively). Typing
926 (as if the macro's contents had been typed interactively). Typing
921 %hist will reveal the intermediate (silently processed) lines.
927 %hist will reveal the intermediate (silently processed) lines.
922
928
923 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
929 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
924 pickle to fail (%run was overwriting __main__ and not restoring
930 pickle to fail (%run was overwriting __main__ and not restoring
925 it, but pickle relies on __main__ to operate).
931 it, but pickle relies on __main__ to operate).
926
932
927 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
933 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
928 using properties, but forgot to make the main InteractiveShell
934 using properties, but forgot to make the main InteractiveShell
929 class a new-style class. Properties fail silently, and
935 class a new-style class. Properties fail silently, and
930 mysteriously, with old-style class (getters work, but
936 mysteriously, with old-style class (getters work, but
931 setters don't do anything).
937 setters don't do anything).
932
938
933 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
939 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
934
940
935 * IPython/Magic.py (magic_history): fix history reporting bug (I
941 * IPython/Magic.py (magic_history): fix history reporting bug (I
936 know some nasties are still there, I just can't seem to find a
942 know some nasties are still there, I just can't seem to find a
937 reproducible test case to track them down; the input history is
943 reproducible test case to track them down; the input history is
938 falling out of sync...)
944 falling out of sync...)
939
945
940 * IPython/iplib.py (handle_shell_escape): fix bug where both
946 * IPython/iplib.py (handle_shell_escape): fix bug where both
941 aliases and system accesses where broken for indented code (such
947 aliases and system accesses where broken for indented code (such
942 as loops).
948 as loops).
943
949
944 * IPython/genutils.py (shell): fix small but critical bug for
950 * IPython/genutils.py (shell): fix small but critical bug for
945 win32 system access.
951 win32 system access.
946
952
947 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
953 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
948
954
949 * IPython/iplib.py (showtraceback): remove use of the
955 * IPython/iplib.py (showtraceback): remove use of the
950 sys.last_{type/value/traceback} structures, which are non
956 sys.last_{type/value/traceback} structures, which are non
951 thread-safe.
957 thread-safe.
952 (_prefilter): change control flow to ensure that we NEVER
958 (_prefilter): change control flow to ensure that we NEVER
953 introspect objects when autocall is off. This will guarantee that
959 introspect objects when autocall is off. This will guarantee that
954 having an input line of the form 'x.y', where access to attribute
960 having an input line of the form 'x.y', where access to attribute
955 'y' has side effects, doesn't trigger the side effect TWICE. It
961 'y' has side effects, doesn't trigger the side effect TWICE. It
956 is important to note that, with autocall on, these side effects
962 is important to note that, with autocall on, these side effects
957 can still happen.
963 can still happen.
958 (ipsystem): new builtin, to complete the ip{magic/alias/system}
964 (ipsystem): new builtin, to complete the ip{magic/alias/system}
959 trio. IPython offers these three kinds of special calls which are
965 trio. IPython offers these three kinds of special calls which are
960 not python code, and it's a good thing to have their call method
966 not python code, and it's a good thing to have their call method
961 be accessible as pure python functions (not just special syntax at
967 be accessible as pure python functions (not just special syntax at
962 the command line). It gives us a better internal implementation
968 the command line). It gives us a better internal implementation
963 structure, as well as exposing these for user scripting more
969 structure, as well as exposing these for user scripting more
964 cleanly.
970 cleanly.
965
971
966 * IPython/macro.py (Macro.__init__): moved macros to a standalone
972 * IPython/macro.py (Macro.__init__): moved macros to a standalone
967 file. Now that they'll be more likely to be used with the
973 file. Now that they'll be more likely to be used with the
968 persistance system (%store), I want to make sure their module path
974 persistance system (%store), I want to make sure their module path
969 doesn't change in the future, so that we don't break things for
975 doesn't change in the future, so that we don't break things for
970 users' persisted data.
976 users' persisted data.
971
977
972 * IPython/iplib.py (autoindent_update): move indentation
978 * IPython/iplib.py (autoindent_update): move indentation
973 management into the _text_ processing loop, not the keyboard
979 management into the _text_ processing loop, not the keyboard
974 interactive one. This is necessary to correctly process non-typed
980 interactive one. This is necessary to correctly process non-typed
975 multiline input (such as macros).
981 multiline input (such as macros).
976
982
977 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
983 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
978 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
984 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
979 which was producing problems in the resulting manual.
985 which was producing problems in the resulting manual.
980 (magic_whos): improve reporting of instances (show their class,
986 (magic_whos): improve reporting of instances (show their class,
981 instead of simply printing 'instance' which isn't terribly
987 instead of simply printing 'instance' which isn't terribly
982 informative).
988 informative).
983
989
984 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
990 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
985 (minor mods) to support network shares under win32.
991 (minor mods) to support network shares under win32.
986
992
987 * IPython/winconsole.py (get_console_size): add new winconsole
993 * IPython/winconsole.py (get_console_size): add new winconsole
988 module and fixes to page_dumb() to improve its behavior under
994 module and fixes to page_dumb() to improve its behavior under
989 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
995 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
990
996
991 * IPython/Magic.py (Macro): simplified Macro class to just
997 * IPython/Magic.py (Macro): simplified Macro class to just
992 subclass list. We've had only 2.2 compatibility for a very long
998 subclass list. We've had only 2.2 compatibility for a very long
993 time, yet I was still avoiding subclassing the builtin types. No
999 time, yet I was still avoiding subclassing the builtin types. No
994 more (I'm also starting to use properties, though I won't shift to
1000 more (I'm also starting to use properties, though I won't shift to
995 2.3-specific features quite yet).
1001 2.3-specific features quite yet).
996 (magic_store): added Ville's patch for lightweight variable
1002 (magic_store): added Ville's patch for lightweight variable
997 persistence, after a request on the user list by Matt Wilkie
1003 persistence, after a request on the user list by Matt Wilkie
998 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1004 <maphew-AT-gmail.com>. The new %store magic's docstring has full
999 details.
1005 details.
1000
1006
1001 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1007 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1002 changed the default logfile name from 'ipython.log' to
1008 changed the default logfile name from 'ipython.log' to
1003 'ipython_log.py'. These logs are real python files, and now that
1009 'ipython_log.py'. These logs are real python files, and now that
1004 we have much better multiline support, people are more likely to
1010 we have much better multiline support, people are more likely to
1005 want to use them as such. Might as well name them correctly.
1011 want to use them as such. Might as well name them correctly.
1006
1012
1007 * IPython/Magic.py: substantial cleanup. While we can't stop
1013 * IPython/Magic.py: substantial cleanup. While we can't stop
1008 using magics as mixins, due to the existing customizations 'out
1014 using magics as mixins, due to the existing customizations 'out
1009 there' which rely on the mixin naming conventions, at least I
1015 there' which rely on the mixin naming conventions, at least I
1010 cleaned out all cross-class name usage. So once we are OK with
1016 cleaned out all cross-class name usage. So once we are OK with
1011 breaking compatibility, the two systems can be separated.
1017 breaking compatibility, the two systems can be separated.
1012
1018
1013 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1019 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1014 anymore, and the class is a fair bit less hideous as well. New
1020 anymore, and the class is a fair bit less hideous as well. New
1015 features were also introduced: timestamping of input, and logging
1021 features were also introduced: timestamping of input, and logging
1016 of output results. These are user-visible with the -t and -o
1022 of output results. These are user-visible with the -t and -o
1017 options to %logstart. Closes
1023 options to %logstart. Closes
1018 http://www.scipy.net/roundup/ipython/issue11 and a request by
1024 http://www.scipy.net/roundup/ipython/issue11 and a request by
1019 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1025 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1020
1026
1021 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1027 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1022
1028
1023 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1029 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1024 better handle backslashes in paths. See the thread 'More Windows
1030 better handle backslashes in paths. See the thread 'More Windows
1025 questions part 2 - \/ characters revisited' on the iypthon user
1031 questions part 2 - \/ characters revisited' on the iypthon user
1026 list:
1032 list:
1027 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1033 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1028
1034
1029 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1035 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1030
1036
1031 (InteractiveShell.__init__): change threaded shells to not use the
1037 (InteractiveShell.__init__): change threaded shells to not use the
1032 ipython crash handler. This was causing more problems than not,
1038 ipython crash handler. This was causing more problems than not,
1033 as exceptions in the main thread (GUI code, typically) would
1039 as exceptions in the main thread (GUI code, typically) would
1034 always show up as a 'crash', when they really weren't.
1040 always show up as a 'crash', when they really weren't.
1035
1041
1036 The colors and exception mode commands (%colors/%xmode) have been
1042 The colors and exception mode commands (%colors/%xmode) have been
1037 synchronized to also take this into account, so users can get
1043 synchronized to also take this into account, so users can get
1038 verbose exceptions for their threaded code as well. I also added
1044 verbose exceptions for their threaded code as well. I also added
1039 support for activating pdb inside this exception handler as well,
1045 support for activating pdb inside this exception handler as well,
1040 so now GUI authors can use IPython's enhanced pdb at runtime.
1046 so now GUI authors can use IPython's enhanced pdb at runtime.
1041
1047
1042 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1048 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1043 true by default, and add it to the shipped ipythonrc file. Since
1049 true by default, and add it to the shipped ipythonrc file. Since
1044 this asks the user before proceeding, I think it's OK to make it
1050 this asks the user before proceeding, I think it's OK to make it
1045 true by default.
1051 true by default.
1046
1052
1047 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1053 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1048 of the previous special-casing of input in the eval loop. I think
1054 of the previous special-casing of input in the eval loop. I think
1049 this is cleaner, as they really are commands and shouldn't have
1055 this is cleaner, as they really are commands and shouldn't have
1050 a special role in the middle of the core code.
1056 a special role in the middle of the core code.
1051
1057
1052 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1053
1059
1054 * IPython/iplib.py (edit_syntax_error): added support for
1060 * IPython/iplib.py (edit_syntax_error): added support for
1055 automatically reopening the editor if the file had a syntax error
1061 automatically reopening the editor if the file had a syntax error
1056 in it. Thanks to scottt who provided the patch at:
1062 in it. Thanks to scottt who provided the patch at:
1057 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1063 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1058 version committed).
1064 version committed).
1059
1065
1060 * IPython/iplib.py (handle_normal): add suport for multi-line
1066 * IPython/iplib.py (handle_normal): add suport for multi-line
1061 input with emtpy lines. This fixes
1067 input with emtpy lines. This fixes
1062 http://www.scipy.net/roundup/ipython/issue43 and a similar
1068 http://www.scipy.net/roundup/ipython/issue43 and a similar
1063 discussion on the user list.
1069 discussion on the user list.
1064
1070
1065 WARNING: a behavior change is necessarily introduced to support
1071 WARNING: a behavior change is necessarily introduced to support
1066 blank lines: now a single blank line with whitespace does NOT
1072 blank lines: now a single blank line with whitespace does NOT
1067 break the input loop, which means that when autoindent is on, by
1073 break the input loop, which means that when autoindent is on, by
1068 default hitting return on the next (indented) line does NOT exit.
1074 default hitting return on the next (indented) line does NOT exit.
1069
1075
1070 Instead, to exit a multiline input you can either have:
1076 Instead, to exit a multiline input you can either have:
1071
1077
1072 - TWO whitespace lines (just hit return again), or
1078 - TWO whitespace lines (just hit return again), or
1073 - a single whitespace line of a different length than provided
1079 - a single whitespace line of a different length than provided
1074 by the autoindent (add or remove a space).
1080 by the autoindent (add or remove a space).
1075
1081
1076 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1082 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1077 module to better organize all readline-related functionality.
1083 module to better organize all readline-related functionality.
1078 I've deleted FlexCompleter and put all completion clases here.
1084 I've deleted FlexCompleter and put all completion clases here.
1079
1085
1080 * IPython/iplib.py (raw_input): improve indentation management.
1086 * IPython/iplib.py (raw_input): improve indentation management.
1081 It is now possible to paste indented code with autoindent on, and
1087 It is now possible to paste indented code with autoindent on, and
1082 the code is interpreted correctly (though it still looks bad on
1088 the code is interpreted correctly (though it still looks bad on
1083 screen, due to the line-oriented nature of ipython).
1089 screen, due to the line-oriented nature of ipython).
1084 (MagicCompleter.complete): change behavior so that a TAB key on an
1090 (MagicCompleter.complete): change behavior so that a TAB key on an
1085 otherwise empty line actually inserts a tab, instead of completing
1091 otherwise empty line actually inserts a tab, instead of completing
1086 on the entire global namespace. This makes it easier to use the
1092 on the entire global namespace. This makes it easier to use the
1087 TAB key for indentation. After a request by Hans Meine
1093 TAB key for indentation. After a request by Hans Meine
1088 <hans_meine-AT-gmx.net>
1094 <hans_meine-AT-gmx.net>
1089 (_prefilter): add support so that typing plain 'exit' or 'quit'
1095 (_prefilter): add support so that typing plain 'exit' or 'quit'
1090 does a sensible thing. Originally I tried to deviate as little as
1096 does a sensible thing. Originally I tried to deviate as little as
1091 possible from the default python behavior, but even that one may
1097 possible from the default python behavior, but even that one may
1092 change in this direction (thread on python-dev to that effect).
1098 change in this direction (thread on python-dev to that effect).
1093 Regardless, ipython should do the right thing even if CPython's
1099 Regardless, ipython should do the right thing even if CPython's
1094 '>>>' prompt doesn't.
1100 '>>>' prompt doesn't.
1095 (InteractiveShell): removed subclassing code.InteractiveConsole
1101 (InteractiveShell): removed subclassing code.InteractiveConsole
1096 class. By now we'd overridden just about all of its methods: I've
1102 class. By now we'd overridden just about all of its methods: I've
1097 copied the remaining two over, and now ipython is a standalone
1103 copied the remaining two over, and now ipython is a standalone
1098 class. This will provide a clearer picture for the chainsaw
1104 class. This will provide a clearer picture for the chainsaw
1099 branch refactoring.
1105 branch refactoring.
1100
1106
1101 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1107 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1102
1108
1103 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1109 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1104 failures for objects which break when dir() is called on them.
1110 failures for objects which break when dir() is called on them.
1105
1111
1106 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1112 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1107 distinct local and global namespaces in the completer API. This
1113 distinct local and global namespaces in the completer API. This
1108 change allows us to properly handle completion with distinct
1114 change allows us to properly handle completion with distinct
1109 scopes, including in embedded instances (this had never really
1115 scopes, including in embedded instances (this had never really
1110 worked correctly).
1116 worked correctly).
1111
1117
1112 Note: this introduces a change in the constructor for
1118 Note: this introduces a change in the constructor for
1113 MagicCompleter, as a new global_namespace parameter is now the
1119 MagicCompleter, as a new global_namespace parameter is now the
1114 second argument (the others were bumped one position).
1120 second argument (the others were bumped one position).
1115
1121
1116 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1122 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1117
1123
1118 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1124 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1119 embedded instances (which can be done now thanks to Vivian's
1125 embedded instances (which can be done now thanks to Vivian's
1120 frame-handling fixes for pdb).
1126 frame-handling fixes for pdb).
1121 (InteractiveShell.__init__): Fix namespace handling problem in
1127 (InteractiveShell.__init__): Fix namespace handling problem in
1122 embedded instances. We were overwriting __main__ unconditionally,
1128 embedded instances. We were overwriting __main__ unconditionally,
1123 and this should only be done for 'full' (non-embedded) IPython;
1129 and this should only be done for 'full' (non-embedded) IPython;
1124 embedded instances must respect the caller's __main__. Thanks to
1130 embedded instances must respect the caller's __main__. Thanks to
1125 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1131 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1126
1132
1127 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1133 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1128
1134
1129 * setup.py: added download_url to setup(). This registers the
1135 * setup.py: added download_url to setup(). This registers the
1130 download address at PyPI, which is not only useful to humans
1136 download address at PyPI, which is not only useful to humans
1131 browsing the site, but is also picked up by setuptools (the Eggs
1137 browsing the site, but is also picked up by setuptools (the Eggs
1132 machinery). Thanks to Ville and R. Kern for the info/discussion
1138 machinery). Thanks to Ville and R. Kern for the info/discussion
1133 on this.
1139 on this.
1134
1140
1135 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1141 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1136
1142
1137 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1143 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1138 This brings a lot of nice functionality to the pdb mode, which now
1144 This brings a lot of nice functionality to the pdb mode, which now
1139 has tab-completion, syntax highlighting, and better stack handling
1145 has tab-completion, syntax highlighting, and better stack handling
1140 than before. Many thanks to Vivian De Smedt
1146 than before. Many thanks to Vivian De Smedt
1141 <vivian-AT-vdesmedt.com> for the original patches.
1147 <vivian-AT-vdesmedt.com> for the original patches.
1142
1148
1143 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1149 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1150
1145 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1151 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1146 sequence to consistently accept the banner argument. The
1152 sequence to consistently accept the banner argument. The
1147 inconsistency was tripping SAGE, thanks to Gary Zablackis
1153 inconsistency was tripping SAGE, thanks to Gary Zablackis
1148 <gzabl-AT-yahoo.com> for the report.
1154 <gzabl-AT-yahoo.com> for the report.
1149
1155
1150 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1156 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1151
1157
1152 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1158 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1153 Fix bug where a naked 'alias' call in the ipythonrc file would
1159 Fix bug where a naked 'alias' call in the ipythonrc file would
1154 cause a crash. Bug reported by Jorgen Stenarson.
1160 cause a crash. Bug reported by Jorgen Stenarson.
1155
1161
1156 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1162 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1157
1163
1158 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1164 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1159 startup time.
1165 startup time.
1160
1166
1161 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1167 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1162 instances had introduced a bug with globals in normal code. Now
1168 instances had introduced a bug with globals in normal code. Now
1163 it's working in all cases.
1169 it's working in all cases.
1164
1170
1165 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1171 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1166 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1172 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1167 has been introduced to set the default case sensitivity of the
1173 has been introduced to set the default case sensitivity of the
1168 searches. Users can still select either mode at runtime on a
1174 searches. Users can still select either mode at runtime on a
1169 per-search basis.
1175 per-search basis.
1170
1176
1171 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1172
1178
1173 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1179 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1174 attributes in wildcard searches for subclasses. Modified version
1180 attributes in wildcard searches for subclasses. Modified version
1175 of a patch by Jorgen.
1181 of a patch by Jorgen.
1176
1182
1177 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1183 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1178
1184
1179 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1185 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1180 embedded instances. I added a user_global_ns attribute to the
1186 embedded instances. I added a user_global_ns attribute to the
1181 InteractiveShell class to handle this.
1187 InteractiveShell class to handle this.
1182
1188
1183 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1189 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1184
1190
1185 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1191 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1186 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1192 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1187 (reported under win32, but may happen also in other platforms).
1193 (reported under win32, but may happen also in other platforms).
1188 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1194 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1189
1195
1190 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1196 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1191
1197
1192 * IPython/Magic.py (magic_psearch): new support for wildcard
1198 * IPython/Magic.py (magic_psearch): new support for wildcard
1193 patterns. Now, typing ?a*b will list all names which begin with a
1199 patterns. Now, typing ?a*b will list all names which begin with a
1194 and end in b, for example. The %psearch magic has full
1200 and end in b, for example. The %psearch magic has full
1195 docstrings. Many thanks to JΓΆrgen Stenarson
1201 docstrings. Many thanks to JΓΆrgen Stenarson
1196 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1202 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1197 implementing this functionality.
1203 implementing this functionality.
1198
1204
1199 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1200
1206
1201 * Manual: fixed long-standing annoyance of double-dashes (as in
1207 * Manual: fixed long-standing annoyance of double-dashes (as in
1202 --prefix=~, for example) being stripped in the HTML version. This
1208 --prefix=~, for example) being stripped in the HTML version. This
1203 is a latex2html bug, but a workaround was provided. Many thanks
1209 is a latex2html bug, but a workaround was provided. Many thanks
1204 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1210 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1205 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1211 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1206 rolling. This seemingly small issue had tripped a number of users
1212 rolling. This seemingly small issue had tripped a number of users
1207 when first installing, so I'm glad to see it gone.
1213 when first installing, so I'm glad to see it gone.
1208
1214
1209 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1210
1216
1211 * IPython/Extensions/numeric_formats.py: fix missing import,
1217 * IPython/Extensions/numeric_formats.py: fix missing import,
1212 reported by Stephen Walton.
1218 reported by Stephen Walton.
1213
1219
1214 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1220 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1215
1221
1216 * IPython/demo.py: finish demo module, fully documented now.
1222 * IPython/demo.py: finish demo module, fully documented now.
1217
1223
1218 * IPython/genutils.py (file_read): simple little utility to read a
1224 * IPython/genutils.py (file_read): simple little utility to read a
1219 file and ensure it's closed afterwards.
1225 file and ensure it's closed afterwards.
1220
1226
1221 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1227 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1222
1228
1223 * IPython/demo.py (Demo.__init__): added support for individually
1229 * IPython/demo.py (Demo.__init__): added support for individually
1224 tagging blocks for automatic execution.
1230 tagging blocks for automatic execution.
1225
1231
1226 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1232 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1227 syntax-highlighted python sources, requested by John.
1233 syntax-highlighted python sources, requested by John.
1228
1234
1229 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1235 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1230
1236
1231 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1237 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1232 finishing.
1238 finishing.
1233
1239
1234 * IPython/genutils.py (shlex_split): moved from Magic to here,
1240 * IPython/genutils.py (shlex_split): moved from Magic to here,
1235 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1241 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1236
1242
1237 * IPython/demo.py (Demo.__init__): added support for silent
1243 * IPython/demo.py (Demo.__init__): added support for silent
1238 blocks, improved marks as regexps, docstrings written.
1244 blocks, improved marks as regexps, docstrings written.
1239 (Demo.__init__): better docstring, added support for sys.argv.
1245 (Demo.__init__): better docstring, added support for sys.argv.
1240
1246
1241 * IPython/genutils.py (marquee): little utility used by the demo
1247 * IPython/genutils.py (marquee): little utility used by the demo
1242 code, handy in general.
1248 code, handy in general.
1243
1249
1244 * IPython/demo.py (Demo.__init__): new class for interactive
1250 * IPython/demo.py (Demo.__init__): new class for interactive
1245 demos. Not documented yet, I just wrote it in a hurry for
1251 demos. Not documented yet, I just wrote it in a hurry for
1246 scipy'05. Will docstring later.
1252 scipy'05. Will docstring later.
1247
1253
1248 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1254 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1249
1255
1250 * IPython/Shell.py (sigint_handler): Drastic simplification which
1256 * IPython/Shell.py (sigint_handler): Drastic simplification which
1251 also seems to make Ctrl-C work correctly across threads! This is
1257 also seems to make Ctrl-C work correctly across threads! This is
1252 so simple, that I can't beleive I'd missed it before. Needs more
1258 so simple, that I can't beleive I'd missed it before. Needs more
1253 testing, though.
1259 testing, though.
1254 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1260 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1255 like this before...
1261 like this before...
1256
1262
1257 * IPython/genutils.py (get_home_dir): add protection against
1263 * IPython/genutils.py (get_home_dir): add protection against
1258 non-dirs in win32 registry.
1264 non-dirs in win32 registry.
1259
1265
1260 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1266 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1261 bug where dict was mutated while iterating (pysh crash).
1267 bug where dict was mutated while iterating (pysh crash).
1262
1268
1263 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1269 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1264
1270
1265 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1271 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1266 spurious newlines added by this routine. After a report by
1272 spurious newlines added by this routine. After a report by
1267 F. Mantegazza.
1273 F. Mantegazza.
1268
1274
1269 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1275 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1270
1276
1271 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1277 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1272 calls. These were a leftover from the GTK 1.x days, and can cause
1278 calls. These were a leftover from the GTK 1.x days, and can cause
1273 problems in certain cases (after a report by John Hunter).
1279 problems in certain cases (after a report by John Hunter).
1274
1280
1275 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1281 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1276 os.getcwd() fails at init time. Thanks to patch from David Remahl
1282 os.getcwd() fails at init time. Thanks to patch from David Remahl
1277 <chmod007-AT-mac.com>.
1283 <chmod007-AT-mac.com>.
1278 (InteractiveShell.__init__): prevent certain special magics from
1284 (InteractiveShell.__init__): prevent certain special magics from
1279 being shadowed by aliases. Closes
1285 being shadowed by aliases. Closes
1280 http://www.scipy.net/roundup/ipython/issue41.
1286 http://www.scipy.net/roundup/ipython/issue41.
1281
1287
1282 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1288 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1283
1289
1284 * IPython/iplib.py (InteractiveShell.complete): Added new
1290 * IPython/iplib.py (InteractiveShell.complete): Added new
1285 top-level completion method to expose the completion mechanism
1291 top-level completion method to expose the completion mechanism
1286 beyond readline-based environments.
1292 beyond readline-based environments.
1287
1293
1288 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1289
1295
1290 * tools/ipsvnc (svnversion): fix svnversion capture.
1296 * tools/ipsvnc (svnversion): fix svnversion capture.
1291
1297
1292 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1298 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1293 attribute to self, which was missing. Before, it was set by a
1299 attribute to self, which was missing. Before, it was set by a
1294 routine which in certain cases wasn't being called, so the
1300 routine which in certain cases wasn't being called, so the
1295 instance could end up missing the attribute. This caused a crash.
1301 instance could end up missing the attribute. This caused a crash.
1296 Closes http://www.scipy.net/roundup/ipython/issue40.
1302 Closes http://www.scipy.net/roundup/ipython/issue40.
1297
1303
1298 2005-08-16 Fernando Perez <fperez@colorado.edu>
1304 2005-08-16 Fernando Perez <fperez@colorado.edu>
1299
1305
1300 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1306 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1301 contains non-string attribute. Closes
1307 contains non-string attribute. Closes
1302 http://www.scipy.net/roundup/ipython/issue38.
1308 http://www.scipy.net/roundup/ipython/issue38.
1303
1309
1304 2005-08-14 Fernando Perez <fperez@colorado.edu>
1310 2005-08-14 Fernando Perez <fperez@colorado.edu>
1305
1311
1306 * tools/ipsvnc: Minor improvements, to add changeset info.
1312 * tools/ipsvnc: Minor improvements, to add changeset info.
1307
1313
1308 2005-08-12 Fernando Perez <fperez@colorado.edu>
1314 2005-08-12 Fernando Perez <fperez@colorado.edu>
1309
1315
1310 * IPython/iplib.py (runsource): remove self.code_to_run_src
1316 * IPython/iplib.py (runsource): remove self.code_to_run_src
1311 attribute. I realized this is nothing more than
1317 attribute. I realized this is nothing more than
1312 '\n'.join(self.buffer), and having the same data in two different
1318 '\n'.join(self.buffer), and having the same data in two different
1313 places is just asking for synchronization bugs. This may impact
1319 places is just asking for synchronization bugs. This may impact
1314 people who have custom exception handlers, so I need to warn
1320 people who have custom exception handlers, so I need to warn
1315 ipython-dev about it (F. Mantegazza may use them).
1321 ipython-dev about it (F. Mantegazza may use them).
1316
1322
1317 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1323 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1318
1324
1319 * IPython/genutils.py: fix 2.2 compatibility (generators)
1325 * IPython/genutils.py: fix 2.2 compatibility (generators)
1320
1326
1321 2005-07-18 Fernando Perez <fperez@colorado.edu>
1327 2005-07-18 Fernando Perez <fperez@colorado.edu>
1322
1328
1323 * IPython/genutils.py (get_home_dir): fix to help users with
1329 * IPython/genutils.py (get_home_dir): fix to help users with
1324 invalid $HOME under win32.
1330 invalid $HOME under win32.
1325
1331
1326 2005-07-17 Fernando Perez <fperez@colorado.edu>
1332 2005-07-17 Fernando Perez <fperez@colorado.edu>
1327
1333
1328 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1334 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1329 some old hacks and clean up a bit other routines; code should be
1335 some old hacks and clean up a bit other routines; code should be
1330 simpler and a bit faster.
1336 simpler and a bit faster.
1331
1337
1332 * IPython/iplib.py (interact): removed some last-resort attempts
1338 * IPython/iplib.py (interact): removed some last-resort attempts
1333 to survive broken stdout/stderr. That code was only making it
1339 to survive broken stdout/stderr. That code was only making it
1334 harder to abstract out the i/o (necessary for gui integration),
1340 harder to abstract out the i/o (necessary for gui integration),
1335 and the crashes it could prevent were extremely rare in practice
1341 and the crashes it could prevent were extremely rare in practice
1336 (besides being fully user-induced in a pretty violent manner).
1342 (besides being fully user-induced in a pretty violent manner).
1337
1343
1338 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1344 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1339 Nothing major yet, but the code is simpler to read; this should
1345 Nothing major yet, but the code is simpler to read; this should
1340 make it easier to do more serious modifications in the future.
1346 make it easier to do more serious modifications in the future.
1341
1347
1342 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1348 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1343 which broke in .15 (thanks to a report by Ville).
1349 which broke in .15 (thanks to a report by Ville).
1344
1350
1345 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1351 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1346 be quite correct, I know next to nothing about unicode). This
1352 be quite correct, I know next to nothing about unicode). This
1347 will allow unicode strings to be used in prompts, amongst other
1353 will allow unicode strings to be used in prompts, amongst other
1348 cases. It also will prevent ipython from crashing when unicode
1354 cases. It also will prevent ipython from crashing when unicode
1349 shows up unexpectedly in many places. If ascii encoding fails, we
1355 shows up unexpectedly in many places. If ascii encoding fails, we
1350 assume utf_8. Currently the encoding is not a user-visible
1356 assume utf_8. Currently the encoding is not a user-visible
1351 setting, though it could be made so if there is demand for it.
1357 setting, though it could be made so if there is demand for it.
1352
1358
1353 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1359 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1354
1360
1355 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1361 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1356
1362
1357 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1363 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1358
1364
1359 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1365 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1360 code can work transparently for 2.2/2.3.
1366 code can work transparently for 2.2/2.3.
1361
1367
1362 2005-07-16 Fernando Perez <fperez@colorado.edu>
1368 2005-07-16 Fernando Perez <fperez@colorado.edu>
1363
1369
1364 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1370 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1365 out of the color scheme table used for coloring exception
1371 out of the color scheme table used for coloring exception
1366 tracebacks. This allows user code to add new schemes at runtime.
1372 tracebacks. This allows user code to add new schemes at runtime.
1367 This is a minimally modified version of the patch at
1373 This is a minimally modified version of the patch at
1368 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1374 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1369 for the contribution.
1375 for the contribution.
1370
1376
1371 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1377 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1372 slightly modified version of the patch in
1378 slightly modified version of the patch in
1373 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1379 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1374 to remove the previous try/except solution (which was costlier).
1380 to remove the previous try/except solution (which was costlier).
1375 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1381 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1376
1382
1377 2005-06-08 Fernando Perez <fperez@colorado.edu>
1383 2005-06-08 Fernando Perez <fperez@colorado.edu>
1378
1384
1379 * IPython/iplib.py (write/write_err): Add methods to abstract all
1385 * IPython/iplib.py (write/write_err): Add methods to abstract all
1380 I/O a bit more.
1386 I/O a bit more.
1381
1387
1382 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1388 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1383 warning, reported by Aric Hagberg, fix by JD Hunter.
1389 warning, reported by Aric Hagberg, fix by JD Hunter.
1384
1390
1385 2005-06-02 *** Released version 0.6.15
1391 2005-06-02 *** Released version 0.6.15
1386
1392
1387 2005-06-01 Fernando Perez <fperez@colorado.edu>
1393 2005-06-01 Fernando Perez <fperez@colorado.edu>
1388
1394
1389 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1395 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1390 tab-completion of filenames within open-quoted strings. Note that
1396 tab-completion of filenames within open-quoted strings. Note that
1391 this requires that in ~/.ipython/ipythonrc, users change the
1397 this requires that in ~/.ipython/ipythonrc, users change the
1392 readline delimiters configuration to read:
1398 readline delimiters configuration to read:
1393
1399
1394 readline_remove_delims -/~
1400 readline_remove_delims -/~
1395
1401
1396
1402
1397 2005-05-31 *** Released version 0.6.14
1403 2005-05-31 *** Released version 0.6.14
1398
1404
1399 2005-05-29 Fernando Perez <fperez@colorado.edu>
1405 2005-05-29 Fernando Perez <fperez@colorado.edu>
1400
1406
1401 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1407 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1402 with files not on the filesystem. Reported by Eliyahu Sandler
1408 with files not on the filesystem. Reported by Eliyahu Sandler
1403 <eli@gondolin.net>
1409 <eli@gondolin.net>
1404
1410
1405 2005-05-22 Fernando Perez <fperez@colorado.edu>
1411 2005-05-22 Fernando Perez <fperez@colorado.edu>
1406
1412
1407 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1413 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1408 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1414 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1409
1415
1410 2005-05-19 Fernando Perez <fperez@colorado.edu>
1416 2005-05-19 Fernando Perez <fperez@colorado.edu>
1411
1417
1412 * IPython/iplib.py (safe_execfile): close a file which could be
1418 * IPython/iplib.py (safe_execfile): close a file which could be
1413 left open (causing problems in win32, which locks open files).
1419 left open (causing problems in win32, which locks open files).
1414 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1420 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1415
1421
1416 2005-05-18 Fernando Perez <fperez@colorado.edu>
1422 2005-05-18 Fernando Perez <fperez@colorado.edu>
1417
1423
1418 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1424 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1419 keyword arguments correctly to safe_execfile().
1425 keyword arguments correctly to safe_execfile().
1420
1426
1421 2005-05-13 Fernando Perez <fperez@colorado.edu>
1427 2005-05-13 Fernando Perez <fperez@colorado.edu>
1422
1428
1423 * ipython.1: Added info about Qt to manpage, and threads warning
1429 * ipython.1: Added info about Qt to manpage, and threads warning
1424 to usage page (invoked with --help).
1430 to usage page (invoked with --help).
1425
1431
1426 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1432 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1427 new matcher (it goes at the end of the priority list) to do
1433 new matcher (it goes at the end of the priority list) to do
1428 tab-completion on named function arguments. Submitted by George
1434 tab-completion on named function arguments. Submitted by George
1429 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1435 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1430 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1436 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1431 for more details.
1437 for more details.
1432
1438
1433 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1439 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1434 SystemExit exceptions in the script being run. Thanks to a report
1440 SystemExit exceptions in the script being run. Thanks to a report
1435 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1441 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1436 producing very annoying behavior when running unit tests.
1442 producing very annoying behavior when running unit tests.
1437
1443
1438 2005-05-12 Fernando Perez <fperez@colorado.edu>
1444 2005-05-12 Fernando Perez <fperez@colorado.edu>
1439
1445
1440 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1446 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1441 which I'd broken (again) due to a changed regexp. In the process,
1447 which I'd broken (again) due to a changed regexp. In the process,
1442 added ';' as an escape to auto-quote the whole line without
1448 added ';' as an escape to auto-quote the whole line without
1443 splitting its arguments. Thanks to a report by Jerry McRae
1449 splitting its arguments. Thanks to a report by Jerry McRae
1444 <qrs0xyc02-AT-sneakemail.com>.
1450 <qrs0xyc02-AT-sneakemail.com>.
1445
1451
1446 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1452 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1447 possible crashes caused by a TokenError. Reported by Ed Schofield
1453 possible crashes caused by a TokenError. Reported by Ed Schofield
1448 <schofield-AT-ftw.at>.
1454 <schofield-AT-ftw.at>.
1449
1455
1450 2005-05-06 Fernando Perez <fperez@colorado.edu>
1456 2005-05-06 Fernando Perez <fperez@colorado.edu>
1451
1457
1452 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1458 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1453
1459
1454 2005-04-29 Fernando Perez <fperez@colorado.edu>
1460 2005-04-29 Fernando Perez <fperez@colorado.edu>
1455
1461
1456 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1462 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1457 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1463 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1458 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1464 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1459 which provides support for Qt interactive usage (similar to the
1465 which provides support for Qt interactive usage (similar to the
1460 existing one for WX and GTK). This had been often requested.
1466 existing one for WX and GTK). This had been often requested.
1461
1467
1462 2005-04-14 *** Released version 0.6.13
1468 2005-04-14 *** Released version 0.6.13
1463
1469
1464 2005-04-08 Fernando Perez <fperez@colorado.edu>
1470 2005-04-08 Fernando Perez <fperez@colorado.edu>
1465
1471
1466 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1472 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1467 from _ofind, which gets called on almost every input line. Now,
1473 from _ofind, which gets called on almost every input line. Now,
1468 we only try to get docstrings if they are actually going to be
1474 we only try to get docstrings if they are actually going to be
1469 used (the overhead of fetching unnecessary docstrings can be
1475 used (the overhead of fetching unnecessary docstrings can be
1470 noticeable for certain objects, such as Pyro proxies).
1476 noticeable for certain objects, such as Pyro proxies).
1471
1477
1472 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1478 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1473 for completers. For some reason I had been passing them the state
1479 for completers. For some reason I had been passing them the state
1474 variable, which completers never actually need, and was in
1480 variable, which completers never actually need, and was in
1475 conflict with the rlcompleter API. Custom completers ONLY need to
1481 conflict with the rlcompleter API. Custom completers ONLY need to
1476 take the text parameter.
1482 take the text parameter.
1477
1483
1478 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1484 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1479 work correctly in pysh. I've also moved all the logic which used
1485 work correctly in pysh. I've also moved all the logic which used
1480 to be in pysh.py here, which will prevent problems with future
1486 to be in pysh.py here, which will prevent problems with future
1481 upgrades. However, this time I must warn users to update their
1487 upgrades. However, this time I must warn users to update their
1482 pysh profile to include the line
1488 pysh profile to include the line
1483
1489
1484 import_all IPython.Extensions.InterpreterExec
1490 import_all IPython.Extensions.InterpreterExec
1485
1491
1486 because otherwise things won't work for them. They MUST also
1492 because otherwise things won't work for them. They MUST also
1487 delete pysh.py and the line
1493 delete pysh.py and the line
1488
1494
1489 execfile pysh.py
1495 execfile pysh.py
1490
1496
1491 from their ipythonrc-pysh.
1497 from their ipythonrc-pysh.
1492
1498
1493 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1499 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1494 robust in the face of objects whose dir() returns non-strings
1500 robust in the face of objects whose dir() returns non-strings
1495 (which it shouldn't, but some broken libs like ITK do). Thanks to
1501 (which it shouldn't, but some broken libs like ITK do). Thanks to
1496 a patch by John Hunter (implemented differently, though). Also
1502 a patch by John Hunter (implemented differently, though). Also
1497 minor improvements by using .extend instead of + on lists.
1503 minor improvements by using .extend instead of + on lists.
1498
1504
1499 * pysh.py:
1505 * pysh.py:
1500
1506
1501 2005-04-06 Fernando Perez <fperez@colorado.edu>
1507 2005-04-06 Fernando Perez <fperez@colorado.edu>
1502
1508
1503 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1509 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1504 by default, so that all users benefit from it. Those who don't
1510 by default, so that all users benefit from it. Those who don't
1505 want it can still turn it off.
1511 want it can still turn it off.
1506
1512
1507 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1513 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1508 config file, I'd forgotten about this, so users were getting it
1514 config file, I'd forgotten about this, so users were getting it
1509 off by default.
1515 off by default.
1510
1516
1511 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1517 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1512 consistency. Now magics can be called in multiline statements,
1518 consistency. Now magics can be called in multiline statements,
1513 and python variables can be expanded in magic calls via $var.
1519 and python variables can be expanded in magic calls via $var.
1514 This makes the magic system behave just like aliases or !system
1520 This makes the magic system behave just like aliases or !system
1515 calls.
1521 calls.
1516
1522
1517 2005-03-28 Fernando Perez <fperez@colorado.edu>
1523 2005-03-28 Fernando Perez <fperez@colorado.edu>
1518
1524
1519 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1525 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1520 expensive string additions for building command. Add support for
1526 expensive string additions for building command. Add support for
1521 trailing ';' when autocall is used.
1527 trailing ';' when autocall is used.
1522
1528
1523 2005-03-26 Fernando Perez <fperez@colorado.edu>
1529 2005-03-26 Fernando Perez <fperez@colorado.edu>
1524
1530
1525 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1531 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1526 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1532 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1527 ipython.el robust against prompts with any number of spaces
1533 ipython.el robust against prompts with any number of spaces
1528 (including 0) after the ':' character.
1534 (including 0) after the ':' character.
1529
1535
1530 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1536 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1531 continuation prompt, which misled users to think the line was
1537 continuation prompt, which misled users to think the line was
1532 already indented. Closes debian Bug#300847, reported to me by
1538 already indented. Closes debian Bug#300847, reported to me by
1533 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1539 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1534
1540
1535 2005-03-23 Fernando Perez <fperez@colorado.edu>
1541 2005-03-23 Fernando Perez <fperez@colorado.edu>
1536
1542
1537 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1543 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1538 properly aligned if they have embedded newlines.
1544 properly aligned if they have embedded newlines.
1539
1545
1540 * IPython/iplib.py (runlines): Add a public method to expose
1546 * IPython/iplib.py (runlines): Add a public method to expose
1541 IPython's code execution machinery, so that users can run strings
1547 IPython's code execution machinery, so that users can run strings
1542 as if they had been typed at the prompt interactively.
1548 as if they had been typed at the prompt interactively.
1543 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1549 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1544 methods which can call the system shell, but with python variable
1550 methods which can call the system shell, but with python variable
1545 expansion. The three such methods are: __IPYTHON__.system,
1551 expansion. The three such methods are: __IPYTHON__.system,
1546 .getoutput and .getoutputerror. These need to be documented in a
1552 .getoutput and .getoutputerror. These need to be documented in a
1547 'public API' section (to be written) of the manual.
1553 'public API' section (to be written) of the manual.
1548
1554
1549 2005-03-20 Fernando Perez <fperez@colorado.edu>
1555 2005-03-20 Fernando Perez <fperez@colorado.edu>
1550
1556
1551 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1557 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1552 for custom exception handling. This is quite powerful, and it
1558 for custom exception handling. This is quite powerful, and it
1553 allows for user-installable exception handlers which can trap
1559 allows for user-installable exception handlers which can trap
1554 custom exceptions at runtime and treat them separately from
1560 custom exceptions at runtime and treat them separately from
1555 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1561 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1556 Mantegazza <mantegazza-AT-ill.fr>.
1562 Mantegazza <mantegazza-AT-ill.fr>.
1557 (InteractiveShell.set_custom_completer): public API function to
1563 (InteractiveShell.set_custom_completer): public API function to
1558 add new completers at runtime.
1564 add new completers at runtime.
1559
1565
1560 2005-03-19 Fernando Perez <fperez@colorado.edu>
1566 2005-03-19 Fernando Perez <fperez@colorado.edu>
1561
1567
1562 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1568 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1563 allow objects which provide their docstrings via non-standard
1569 allow objects which provide their docstrings via non-standard
1564 mechanisms (like Pyro proxies) to still be inspected by ipython's
1570 mechanisms (like Pyro proxies) to still be inspected by ipython's
1565 ? system.
1571 ? system.
1566
1572
1567 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1573 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1568 automatic capture system. I tried quite hard to make it work
1574 automatic capture system. I tried quite hard to make it work
1569 reliably, and simply failed. I tried many combinations with the
1575 reliably, and simply failed. I tried many combinations with the
1570 subprocess module, but eventually nothing worked in all needed
1576 subprocess module, but eventually nothing worked in all needed
1571 cases (not blocking stdin for the child, duplicating stdout
1577 cases (not blocking stdin for the child, duplicating stdout
1572 without blocking, etc). The new %sc/%sx still do capture to these
1578 without blocking, etc). The new %sc/%sx still do capture to these
1573 magical list/string objects which make shell use much more
1579 magical list/string objects which make shell use much more
1574 conveninent, so not all is lost.
1580 conveninent, so not all is lost.
1575
1581
1576 XXX - FIX MANUAL for the change above!
1582 XXX - FIX MANUAL for the change above!
1577
1583
1578 (runsource): I copied code.py's runsource() into ipython to modify
1584 (runsource): I copied code.py's runsource() into ipython to modify
1579 it a bit. Now the code object and source to be executed are
1585 it a bit. Now the code object and source to be executed are
1580 stored in ipython. This makes this info accessible to third-party
1586 stored in ipython. This makes this info accessible to third-party
1581 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1587 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1582 Mantegazza <mantegazza-AT-ill.fr>.
1588 Mantegazza <mantegazza-AT-ill.fr>.
1583
1589
1584 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1590 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1585 history-search via readline (like C-p/C-n). I'd wanted this for a
1591 history-search via readline (like C-p/C-n). I'd wanted this for a
1586 long time, but only recently found out how to do it. For users
1592 long time, but only recently found out how to do it. For users
1587 who already have their ipythonrc files made and want this, just
1593 who already have their ipythonrc files made and want this, just
1588 add:
1594 add:
1589
1595
1590 readline_parse_and_bind "\e[A": history-search-backward
1596 readline_parse_and_bind "\e[A": history-search-backward
1591 readline_parse_and_bind "\e[B": history-search-forward
1597 readline_parse_and_bind "\e[B": history-search-forward
1592
1598
1593 2005-03-18 Fernando Perez <fperez@colorado.edu>
1599 2005-03-18 Fernando Perez <fperez@colorado.edu>
1594
1600
1595 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1601 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1596 LSString and SList classes which allow transparent conversions
1602 LSString and SList classes which allow transparent conversions
1597 between list mode and whitespace-separated string.
1603 between list mode and whitespace-separated string.
1598 (magic_r): Fix recursion problem in %r.
1604 (magic_r): Fix recursion problem in %r.
1599
1605
1600 * IPython/genutils.py (LSString): New class to be used for
1606 * IPython/genutils.py (LSString): New class to be used for
1601 automatic storage of the results of all alias/system calls in _o
1607 automatic storage of the results of all alias/system calls in _o
1602 and _e (stdout/err). These provide a .l/.list attribute which
1608 and _e (stdout/err). These provide a .l/.list attribute which
1603 does automatic splitting on newlines. This means that for most
1609 does automatic splitting on newlines. This means that for most
1604 uses, you'll never need to do capturing of output with %sc/%sx
1610 uses, you'll never need to do capturing of output with %sc/%sx
1605 anymore, since ipython keeps this always done for you. Note that
1611 anymore, since ipython keeps this always done for you. Note that
1606 only the LAST results are stored, the _o/e variables are
1612 only the LAST results are stored, the _o/e variables are
1607 overwritten on each call. If you need to save their contents
1613 overwritten on each call. If you need to save their contents
1608 further, simply bind them to any other name.
1614 further, simply bind them to any other name.
1609
1615
1610 2005-03-17 Fernando Perez <fperez@colorado.edu>
1616 2005-03-17 Fernando Perez <fperez@colorado.edu>
1611
1617
1612 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1618 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1613 prompt namespace handling.
1619 prompt namespace handling.
1614
1620
1615 2005-03-16 Fernando Perez <fperez@colorado.edu>
1621 2005-03-16 Fernando Perez <fperez@colorado.edu>
1616
1622
1617 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1623 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1618 classic prompts to be '>>> ' (final space was missing, and it
1624 classic prompts to be '>>> ' (final space was missing, and it
1619 trips the emacs python mode).
1625 trips the emacs python mode).
1620 (BasePrompt.__str__): Added safe support for dynamic prompt
1626 (BasePrompt.__str__): Added safe support for dynamic prompt
1621 strings. Now you can set your prompt string to be '$x', and the
1627 strings. Now you can set your prompt string to be '$x', and the
1622 value of x will be printed from your interactive namespace. The
1628 value of x will be printed from your interactive namespace. The
1623 interpolation syntax includes the full Itpl support, so
1629 interpolation syntax includes the full Itpl support, so
1624 ${foo()+x+bar()} is a valid prompt string now, and the function
1630 ${foo()+x+bar()} is a valid prompt string now, and the function
1625 calls will be made at runtime.
1631 calls will be made at runtime.
1626
1632
1627 2005-03-15 Fernando Perez <fperez@colorado.edu>
1633 2005-03-15 Fernando Perez <fperez@colorado.edu>
1628
1634
1629 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1635 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1630 avoid name clashes in pylab. %hist still works, it just forwards
1636 avoid name clashes in pylab. %hist still works, it just forwards
1631 the call to %history.
1637 the call to %history.
1632
1638
1633 2005-03-02 *** Released version 0.6.12
1639 2005-03-02 *** Released version 0.6.12
1634
1640
1635 2005-03-02 Fernando Perez <fperez@colorado.edu>
1641 2005-03-02 Fernando Perez <fperez@colorado.edu>
1636
1642
1637 * IPython/iplib.py (handle_magic): log magic calls properly as
1643 * IPython/iplib.py (handle_magic): log magic calls properly as
1638 ipmagic() function calls.
1644 ipmagic() function calls.
1639
1645
1640 * IPython/Magic.py (magic_time): Improved %time to support
1646 * IPython/Magic.py (magic_time): Improved %time to support
1641 statements and provide wall-clock as well as CPU time.
1647 statements and provide wall-clock as well as CPU time.
1642
1648
1643 2005-02-27 Fernando Perez <fperez@colorado.edu>
1649 2005-02-27 Fernando Perez <fperez@colorado.edu>
1644
1650
1645 * IPython/hooks.py: New hooks module, to expose user-modifiable
1651 * IPython/hooks.py: New hooks module, to expose user-modifiable
1646 IPython functionality in a clean manner. For now only the editor
1652 IPython functionality in a clean manner. For now only the editor
1647 hook is actually written, and other thigns which I intend to turn
1653 hook is actually written, and other thigns which I intend to turn
1648 into proper hooks aren't yet there. The display and prefilter
1654 into proper hooks aren't yet there. The display and prefilter
1649 stuff, for example, should be hooks. But at least now the
1655 stuff, for example, should be hooks. But at least now the
1650 framework is in place, and the rest can be moved here with more
1656 framework is in place, and the rest can be moved here with more
1651 time later. IPython had had a .hooks variable for a long time for
1657 time later. IPython had had a .hooks variable for a long time for
1652 this purpose, but I'd never actually used it for anything.
1658 this purpose, but I'd never actually used it for anything.
1653
1659
1654 2005-02-26 Fernando Perez <fperez@colorado.edu>
1660 2005-02-26 Fernando Perez <fperez@colorado.edu>
1655
1661
1656 * IPython/ipmaker.py (make_IPython): make the default ipython
1662 * IPython/ipmaker.py (make_IPython): make the default ipython
1657 directory be called _ipython under win32, to follow more the
1663 directory be called _ipython under win32, to follow more the
1658 naming peculiarities of that platform (where buggy software like
1664 naming peculiarities of that platform (where buggy software like
1659 Visual Sourcesafe breaks with .named directories). Reported by
1665 Visual Sourcesafe breaks with .named directories). Reported by
1660 Ville Vainio.
1666 Ville Vainio.
1661
1667
1662 2005-02-23 Fernando Perez <fperez@colorado.edu>
1668 2005-02-23 Fernando Perez <fperez@colorado.edu>
1663
1669
1664 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1670 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1665 auto_aliases for win32 which were causing problems. Users can
1671 auto_aliases for win32 which were causing problems. Users can
1666 define the ones they personally like.
1672 define the ones they personally like.
1667
1673
1668 2005-02-21 Fernando Perez <fperez@colorado.edu>
1674 2005-02-21 Fernando Perez <fperez@colorado.edu>
1669
1675
1670 * IPython/Magic.py (magic_time): new magic to time execution of
1676 * IPython/Magic.py (magic_time): new magic to time execution of
1671 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1677 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1672
1678
1673 2005-02-19 Fernando Perez <fperez@colorado.edu>
1679 2005-02-19 Fernando Perez <fperez@colorado.edu>
1674
1680
1675 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1681 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1676 into keys (for prompts, for example).
1682 into keys (for prompts, for example).
1677
1683
1678 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1684 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1679 prompts in case users want them. This introduces a small behavior
1685 prompts in case users want them. This introduces a small behavior
1680 change: ipython does not automatically add a space to all prompts
1686 change: ipython does not automatically add a space to all prompts
1681 anymore. To get the old prompts with a space, users should add it
1687 anymore. To get the old prompts with a space, users should add it
1682 manually to their ipythonrc file, so for example prompt_in1 should
1688 manually to their ipythonrc file, so for example prompt_in1 should
1683 now read 'In [\#]: ' instead of 'In [\#]:'.
1689 now read 'In [\#]: ' instead of 'In [\#]:'.
1684 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1690 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1685 file) to control left-padding of secondary prompts.
1691 file) to control left-padding of secondary prompts.
1686
1692
1687 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1693 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1688 the profiler can't be imported. Fix for Debian, which removed
1694 the profiler can't be imported. Fix for Debian, which removed
1689 profile.py because of License issues. I applied a slightly
1695 profile.py because of License issues. I applied a slightly
1690 modified version of the original Debian patch at
1696 modified version of the original Debian patch at
1691 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1697 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1692
1698
1693 2005-02-17 Fernando Perez <fperez@colorado.edu>
1699 2005-02-17 Fernando Perez <fperez@colorado.edu>
1694
1700
1695 * IPython/genutils.py (native_line_ends): Fix bug which would
1701 * IPython/genutils.py (native_line_ends): Fix bug which would
1696 cause improper line-ends under win32 b/c I was not opening files
1702 cause improper line-ends under win32 b/c I was not opening files
1697 in binary mode. Bug report and fix thanks to Ville.
1703 in binary mode. Bug report and fix thanks to Ville.
1698
1704
1699 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1705 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1700 trying to catch spurious foo[1] autocalls. My fix actually broke
1706 trying to catch spurious foo[1] autocalls. My fix actually broke
1701 ',/' autoquote/call with explicit escape (bad regexp).
1707 ',/' autoquote/call with explicit escape (bad regexp).
1702
1708
1703 2005-02-15 *** Released version 0.6.11
1709 2005-02-15 *** Released version 0.6.11
1704
1710
1705 2005-02-14 Fernando Perez <fperez@colorado.edu>
1711 2005-02-14 Fernando Perez <fperez@colorado.edu>
1706
1712
1707 * IPython/background_jobs.py: New background job management
1713 * IPython/background_jobs.py: New background job management
1708 subsystem. This is implemented via a new set of classes, and
1714 subsystem. This is implemented via a new set of classes, and
1709 IPython now provides a builtin 'jobs' object for background job
1715 IPython now provides a builtin 'jobs' object for background job
1710 execution. A convenience %bg magic serves as a lightweight
1716 execution. A convenience %bg magic serves as a lightweight
1711 frontend for starting the more common type of calls. This was
1717 frontend for starting the more common type of calls. This was
1712 inspired by discussions with B. Granger and the BackgroundCommand
1718 inspired by discussions with B. Granger and the BackgroundCommand
1713 class described in the book Python Scripting for Computational
1719 class described in the book Python Scripting for Computational
1714 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1720 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1715 (although ultimately no code from this text was used, as IPython's
1721 (although ultimately no code from this text was used, as IPython's
1716 system is a separate implementation).
1722 system is a separate implementation).
1717
1723
1718 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1724 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1719 to control the completion of single/double underscore names
1725 to control the completion of single/double underscore names
1720 separately. As documented in the example ipytonrc file, the
1726 separately. As documented in the example ipytonrc file, the
1721 readline_omit__names variable can now be set to 2, to omit even
1727 readline_omit__names variable can now be set to 2, to omit even
1722 single underscore names. Thanks to a patch by Brian Wong
1728 single underscore names. Thanks to a patch by Brian Wong
1723 <BrianWong-AT-AirgoNetworks.Com>.
1729 <BrianWong-AT-AirgoNetworks.Com>.
1724 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1730 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1725 be autocalled as foo([1]) if foo were callable. A problem for
1731 be autocalled as foo([1]) if foo were callable. A problem for
1726 things which are both callable and implement __getitem__.
1732 things which are both callable and implement __getitem__.
1727 (init_readline): Fix autoindentation for win32. Thanks to a patch
1733 (init_readline): Fix autoindentation for win32. Thanks to a patch
1728 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1734 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1729
1735
1730 2005-02-12 Fernando Perez <fperez@colorado.edu>
1736 2005-02-12 Fernando Perez <fperez@colorado.edu>
1731
1737
1732 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1738 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1733 which I had written long ago to sort out user error messages which
1739 which I had written long ago to sort out user error messages which
1734 may occur during startup. This seemed like a good idea initially,
1740 may occur during startup. This seemed like a good idea initially,
1735 but it has proven a disaster in retrospect. I don't want to
1741 but it has proven a disaster in retrospect. I don't want to
1736 change much code for now, so my fix is to set the internal 'debug'
1742 change much code for now, so my fix is to set the internal 'debug'
1737 flag to true everywhere, whose only job was precisely to control
1743 flag to true everywhere, whose only job was precisely to control
1738 this subsystem. This closes issue 28 (as well as avoiding all
1744 this subsystem. This closes issue 28 (as well as avoiding all
1739 sorts of strange hangups which occur from time to time).
1745 sorts of strange hangups which occur from time to time).
1740
1746
1741 2005-02-07 Fernando Perez <fperez@colorado.edu>
1747 2005-02-07 Fernando Perez <fperez@colorado.edu>
1742
1748
1743 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1749 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1744 previous call produced a syntax error.
1750 previous call produced a syntax error.
1745
1751
1746 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1752 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1747 classes without constructor.
1753 classes without constructor.
1748
1754
1749 2005-02-06 Fernando Perez <fperez@colorado.edu>
1755 2005-02-06 Fernando Perez <fperez@colorado.edu>
1750
1756
1751 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1757 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1752 completions with the results of each matcher, so we return results
1758 completions with the results of each matcher, so we return results
1753 to the user from all namespaces. This breaks with ipython
1759 to the user from all namespaces. This breaks with ipython
1754 tradition, but I think it's a nicer behavior. Now you get all
1760 tradition, but I think it's a nicer behavior. Now you get all
1755 possible completions listed, from all possible namespaces (python,
1761 possible completions listed, from all possible namespaces (python,
1756 filesystem, magics...) After a request by John Hunter
1762 filesystem, magics...) After a request by John Hunter
1757 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1763 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1758
1764
1759 2005-02-05 Fernando Perez <fperez@colorado.edu>
1765 2005-02-05 Fernando Perez <fperez@colorado.edu>
1760
1766
1761 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1767 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1762 the call had quote characters in it (the quotes were stripped).
1768 the call had quote characters in it (the quotes were stripped).
1763
1769
1764 2005-01-31 Fernando Perez <fperez@colorado.edu>
1770 2005-01-31 Fernando Perez <fperez@colorado.edu>
1765
1771
1766 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1772 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1767 Itpl.itpl() to make the code more robust against psyco
1773 Itpl.itpl() to make the code more robust against psyco
1768 optimizations.
1774 optimizations.
1769
1775
1770 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1776 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1771 of causing an exception. Quicker, cleaner.
1777 of causing an exception. Quicker, cleaner.
1772
1778
1773 2005-01-28 Fernando Perez <fperez@colorado.edu>
1779 2005-01-28 Fernando Perez <fperez@colorado.edu>
1774
1780
1775 * scripts/ipython_win_post_install.py (install): hardcode
1781 * scripts/ipython_win_post_install.py (install): hardcode
1776 sys.prefix+'python.exe' as the executable path. It turns out that
1782 sys.prefix+'python.exe' as the executable path. It turns out that
1777 during the post-installation run, sys.executable resolves to the
1783 during the post-installation run, sys.executable resolves to the
1778 name of the binary installer! I should report this as a distutils
1784 name of the binary installer! I should report this as a distutils
1779 bug, I think. I updated the .10 release with this tiny fix, to
1785 bug, I think. I updated the .10 release with this tiny fix, to
1780 avoid annoying the lists further.
1786 avoid annoying the lists further.
1781
1787
1782 2005-01-27 *** Released version 0.6.10
1788 2005-01-27 *** Released version 0.6.10
1783
1789
1784 2005-01-27 Fernando Perez <fperez@colorado.edu>
1790 2005-01-27 Fernando Perez <fperez@colorado.edu>
1785
1791
1786 * IPython/numutils.py (norm): Added 'inf' as optional name for
1792 * IPython/numutils.py (norm): Added 'inf' as optional name for
1787 L-infinity norm, included references to mathworld.com for vector
1793 L-infinity norm, included references to mathworld.com for vector
1788 norm definitions.
1794 norm definitions.
1789 (amin/amax): added amin/amax for array min/max. Similar to what
1795 (amin/amax): added amin/amax for array min/max. Similar to what
1790 pylab ships with after the recent reorganization of names.
1796 pylab ships with after the recent reorganization of names.
1791 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1797 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1792
1798
1793 * ipython.el: committed Alex's recent fixes and improvements.
1799 * ipython.el: committed Alex's recent fixes and improvements.
1794 Tested with python-mode from CVS, and it looks excellent. Since
1800 Tested with python-mode from CVS, and it looks excellent. Since
1795 python-mode hasn't released anything in a while, I'm temporarily
1801 python-mode hasn't released anything in a while, I'm temporarily
1796 putting a copy of today's CVS (v 4.70) of python-mode in:
1802 putting a copy of today's CVS (v 4.70) of python-mode in:
1797 http://ipython.scipy.org/tmp/python-mode.el
1803 http://ipython.scipy.org/tmp/python-mode.el
1798
1804
1799 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1805 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1800 sys.executable for the executable name, instead of assuming it's
1806 sys.executable for the executable name, instead of assuming it's
1801 called 'python.exe' (the post-installer would have produced broken
1807 called 'python.exe' (the post-installer would have produced broken
1802 setups on systems with a differently named python binary).
1808 setups on systems with a differently named python binary).
1803
1809
1804 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1810 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1805 references to os.linesep, to make the code more
1811 references to os.linesep, to make the code more
1806 platform-independent. This is also part of the win32 coloring
1812 platform-independent. This is also part of the win32 coloring
1807 fixes.
1813 fixes.
1808
1814
1809 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1815 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1810 lines, which actually cause coloring bugs because the length of
1816 lines, which actually cause coloring bugs because the length of
1811 the line is very difficult to correctly compute with embedded
1817 the line is very difficult to correctly compute with embedded
1812 escapes. This was the source of all the coloring problems under
1818 escapes. This was the source of all the coloring problems under
1813 Win32. I think that _finally_, Win32 users have a properly
1819 Win32. I think that _finally_, Win32 users have a properly
1814 working ipython in all respects. This would never have happened
1820 working ipython in all respects. This would never have happened
1815 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1821 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1816
1822
1817 2005-01-26 *** Released version 0.6.9
1823 2005-01-26 *** Released version 0.6.9
1818
1824
1819 2005-01-25 Fernando Perez <fperez@colorado.edu>
1825 2005-01-25 Fernando Perez <fperez@colorado.edu>
1820
1826
1821 * setup.py: finally, we have a true Windows installer, thanks to
1827 * setup.py: finally, we have a true Windows installer, thanks to
1822 the excellent work of Viktor Ransmayr
1828 the excellent work of Viktor Ransmayr
1823 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1829 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1824 Windows users. The setup routine is quite a bit cleaner thanks to
1830 Windows users. The setup routine is quite a bit cleaner thanks to
1825 this, and the post-install script uses the proper functions to
1831 this, and the post-install script uses the proper functions to
1826 allow a clean de-installation using the standard Windows Control
1832 allow a clean de-installation using the standard Windows Control
1827 Panel.
1833 Panel.
1828
1834
1829 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1835 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1830 environment variable under all OSes (including win32) if
1836 environment variable under all OSes (including win32) if
1831 available. This will give consistency to win32 users who have set
1837 available. This will give consistency to win32 users who have set
1832 this variable for any reason. If os.environ['HOME'] fails, the
1838 this variable for any reason. If os.environ['HOME'] fails, the
1833 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1839 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1834
1840
1835 2005-01-24 Fernando Perez <fperez@colorado.edu>
1841 2005-01-24 Fernando Perez <fperez@colorado.edu>
1836
1842
1837 * IPython/numutils.py (empty_like): add empty_like(), similar to
1843 * IPython/numutils.py (empty_like): add empty_like(), similar to
1838 zeros_like() but taking advantage of the new empty() Numeric routine.
1844 zeros_like() but taking advantage of the new empty() Numeric routine.
1839
1845
1840 2005-01-23 *** Released version 0.6.8
1846 2005-01-23 *** Released version 0.6.8
1841
1847
1842 2005-01-22 Fernando Perez <fperez@colorado.edu>
1848 2005-01-22 Fernando Perez <fperez@colorado.edu>
1843
1849
1844 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1850 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1845 automatic show() calls. After discussing things with JDH, it
1851 automatic show() calls. After discussing things with JDH, it
1846 turns out there are too many corner cases where this can go wrong.
1852 turns out there are too many corner cases where this can go wrong.
1847 It's best not to try to be 'too smart', and simply have ipython
1853 It's best not to try to be 'too smart', and simply have ipython
1848 reproduce as much as possible the default behavior of a normal
1854 reproduce as much as possible the default behavior of a normal
1849 python shell.
1855 python shell.
1850
1856
1851 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1857 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1852 line-splitting regexp and _prefilter() to avoid calling getattr()
1858 line-splitting regexp and _prefilter() to avoid calling getattr()
1853 on assignments. This closes
1859 on assignments. This closes
1854 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1860 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1855 readline uses getattr(), so a simple <TAB> keypress is still
1861 readline uses getattr(), so a simple <TAB> keypress is still
1856 enough to trigger getattr() calls on an object.
1862 enough to trigger getattr() calls on an object.
1857
1863
1858 2005-01-21 Fernando Perez <fperez@colorado.edu>
1864 2005-01-21 Fernando Perez <fperez@colorado.edu>
1859
1865
1860 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1866 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1861 docstring under pylab so it doesn't mask the original.
1867 docstring under pylab so it doesn't mask the original.
1862
1868
1863 2005-01-21 *** Released version 0.6.7
1869 2005-01-21 *** Released version 0.6.7
1864
1870
1865 2005-01-21 Fernando Perez <fperez@colorado.edu>
1871 2005-01-21 Fernando Perez <fperez@colorado.edu>
1866
1872
1867 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1873 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1868 signal handling for win32 users in multithreaded mode.
1874 signal handling for win32 users in multithreaded mode.
1869
1875
1870 2005-01-17 Fernando Perez <fperez@colorado.edu>
1876 2005-01-17 Fernando Perez <fperez@colorado.edu>
1871
1877
1872 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1878 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1873 instances with no __init__. After a crash report by Norbert Nemec
1879 instances with no __init__. After a crash report by Norbert Nemec
1874 <Norbert-AT-nemec-online.de>.
1880 <Norbert-AT-nemec-online.de>.
1875
1881
1876 2005-01-14 Fernando Perez <fperez@colorado.edu>
1882 2005-01-14 Fernando Perez <fperez@colorado.edu>
1877
1883
1878 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1884 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1879 names for verbose exceptions, when multiple dotted names and the
1885 names for verbose exceptions, when multiple dotted names and the
1880 'parent' object were present on the same line.
1886 'parent' object were present on the same line.
1881
1887
1882 2005-01-11 Fernando Perez <fperez@colorado.edu>
1888 2005-01-11 Fernando Perez <fperez@colorado.edu>
1883
1889
1884 * IPython/genutils.py (flag_calls): new utility to trap and flag
1890 * IPython/genutils.py (flag_calls): new utility to trap and flag
1885 calls in functions. I need it to clean up matplotlib support.
1891 calls in functions. I need it to clean up matplotlib support.
1886 Also removed some deprecated code in genutils.
1892 Also removed some deprecated code in genutils.
1887
1893
1888 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1894 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1889 that matplotlib scripts called with %run, which don't call show()
1895 that matplotlib scripts called with %run, which don't call show()
1890 themselves, still have their plotting windows open.
1896 themselves, still have their plotting windows open.
1891
1897
1892 2005-01-05 Fernando Perez <fperez@colorado.edu>
1898 2005-01-05 Fernando Perez <fperez@colorado.edu>
1893
1899
1894 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1900 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1895 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1901 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1896
1902
1897 2004-12-19 Fernando Perez <fperez@colorado.edu>
1903 2004-12-19 Fernando Perez <fperez@colorado.edu>
1898
1904
1899 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1905 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1900 parent_runcode, which was an eyesore. The same result can be
1906 parent_runcode, which was an eyesore. The same result can be
1901 obtained with Python's regular superclass mechanisms.
1907 obtained with Python's regular superclass mechanisms.
1902
1908
1903 2004-12-17 Fernando Perez <fperez@colorado.edu>
1909 2004-12-17 Fernando Perez <fperez@colorado.edu>
1904
1910
1905 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1911 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1906 reported by Prabhu.
1912 reported by Prabhu.
1907 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1913 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1908 sys.stderr) instead of explicitly calling sys.stderr. This helps
1914 sys.stderr) instead of explicitly calling sys.stderr. This helps
1909 maintain our I/O abstractions clean, for future GUI embeddings.
1915 maintain our I/O abstractions clean, for future GUI embeddings.
1910
1916
1911 * IPython/genutils.py (info): added new utility for sys.stderr
1917 * IPython/genutils.py (info): added new utility for sys.stderr
1912 unified info message handling (thin wrapper around warn()).
1918 unified info message handling (thin wrapper around warn()).
1913
1919
1914 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1920 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1915 composite (dotted) names on verbose exceptions.
1921 composite (dotted) names on verbose exceptions.
1916 (VerboseTB.nullrepr): harden against another kind of errors which
1922 (VerboseTB.nullrepr): harden against another kind of errors which
1917 Python's inspect module can trigger, and which were crashing
1923 Python's inspect module can trigger, and which were crashing
1918 IPython. Thanks to a report by Marco Lombardi
1924 IPython. Thanks to a report by Marco Lombardi
1919 <mlombard-AT-ma010192.hq.eso.org>.
1925 <mlombard-AT-ma010192.hq.eso.org>.
1920
1926
1921 2004-12-13 *** Released version 0.6.6
1927 2004-12-13 *** Released version 0.6.6
1922
1928
1923 2004-12-12 Fernando Perez <fperez@colorado.edu>
1929 2004-12-12 Fernando Perez <fperez@colorado.edu>
1924
1930
1925 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1931 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1926 generated by pygtk upon initialization if it was built without
1932 generated by pygtk upon initialization if it was built without
1927 threads (for matplotlib users). After a crash reported by
1933 threads (for matplotlib users). After a crash reported by
1928 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1934 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1929
1935
1930 * IPython/ipmaker.py (make_IPython): fix small bug in the
1936 * IPython/ipmaker.py (make_IPython): fix small bug in the
1931 import_some parameter for multiple imports.
1937 import_some parameter for multiple imports.
1932
1938
1933 * IPython/iplib.py (ipmagic): simplified the interface of
1939 * IPython/iplib.py (ipmagic): simplified the interface of
1934 ipmagic() to take a single string argument, just as it would be
1940 ipmagic() to take a single string argument, just as it would be
1935 typed at the IPython cmd line.
1941 typed at the IPython cmd line.
1936 (ipalias): Added new ipalias() with an interface identical to
1942 (ipalias): Added new ipalias() with an interface identical to
1937 ipmagic(). This completes exposing a pure python interface to the
1943 ipmagic(). This completes exposing a pure python interface to the
1938 alias and magic system, which can be used in loops or more complex
1944 alias and magic system, which can be used in loops or more complex
1939 code where IPython's automatic line mangling is not active.
1945 code where IPython's automatic line mangling is not active.
1940
1946
1941 * IPython/genutils.py (timing): changed interface of timing to
1947 * IPython/genutils.py (timing): changed interface of timing to
1942 simply run code once, which is the most common case. timings()
1948 simply run code once, which is the most common case. timings()
1943 remains unchanged, for the cases where you want multiple runs.
1949 remains unchanged, for the cases where you want multiple runs.
1944
1950
1945 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1951 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1946 bug where Python2.2 crashes with exec'ing code which does not end
1952 bug where Python2.2 crashes with exec'ing code which does not end
1947 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1953 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1948 before.
1954 before.
1949
1955
1950 2004-12-10 Fernando Perez <fperez@colorado.edu>
1956 2004-12-10 Fernando Perez <fperez@colorado.edu>
1951
1957
1952 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1958 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1953 -t to -T, to accomodate the new -t flag in %run (the %run and
1959 -t to -T, to accomodate the new -t flag in %run (the %run and
1954 %prun options are kind of intermixed, and it's not easy to change
1960 %prun options are kind of intermixed, and it's not easy to change
1955 this with the limitations of python's getopt).
1961 this with the limitations of python's getopt).
1956
1962
1957 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1963 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1958 the execution of scripts. It's not as fine-tuned as timeit.py,
1964 the execution of scripts. It's not as fine-tuned as timeit.py,
1959 but it works from inside ipython (and under 2.2, which lacks
1965 but it works from inside ipython (and under 2.2, which lacks
1960 timeit.py). Optionally a number of runs > 1 can be given for
1966 timeit.py). Optionally a number of runs > 1 can be given for
1961 timing very short-running code.
1967 timing very short-running code.
1962
1968
1963 * IPython/genutils.py (uniq_stable): new routine which returns a
1969 * IPython/genutils.py (uniq_stable): new routine which returns a
1964 list of unique elements in any iterable, but in stable order of
1970 list of unique elements in any iterable, but in stable order of
1965 appearance. I needed this for the ultraTB fixes, and it's a handy
1971 appearance. I needed this for the ultraTB fixes, and it's a handy
1966 utility.
1972 utility.
1967
1973
1968 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1974 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1969 dotted names in Verbose exceptions. This had been broken since
1975 dotted names in Verbose exceptions. This had been broken since
1970 the very start, now x.y will properly be printed in a Verbose
1976 the very start, now x.y will properly be printed in a Verbose
1971 traceback, instead of x being shown and y appearing always as an
1977 traceback, instead of x being shown and y appearing always as an
1972 'undefined global'. Getting this to work was a bit tricky,
1978 'undefined global'. Getting this to work was a bit tricky,
1973 because by default python tokenizers are stateless. Saved by
1979 because by default python tokenizers are stateless. Saved by
1974 python's ability to easily add a bit of state to an arbitrary
1980 python's ability to easily add a bit of state to an arbitrary
1975 function (without needing to build a full-blown callable object).
1981 function (without needing to build a full-blown callable object).
1976
1982
1977 Also big cleanup of this code, which had horrendous runtime
1983 Also big cleanup of this code, which had horrendous runtime
1978 lookups of zillions of attributes for colorization. Moved all
1984 lookups of zillions of attributes for colorization. Moved all
1979 this code into a few templates, which make it cleaner and quicker.
1985 this code into a few templates, which make it cleaner and quicker.
1980
1986
1981 Printout quality was also improved for Verbose exceptions: one
1987 Printout quality was also improved for Verbose exceptions: one
1982 variable per line, and memory addresses are printed (this can be
1988 variable per line, and memory addresses are printed (this can be
1983 quite handy in nasty debugging situations, which is what Verbose
1989 quite handy in nasty debugging situations, which is what Verbose
1984 is for).
1990 is for).
1985
1991
1986 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1992 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1987 the command line as scripts to be loaded by embedded instances.
1993 the command line as scripts to be loaded by embedded instances.
1988 Doing so has the potential for an infinite recursion if there are
1994 Doing so has the potential for an infinite recursion if there are
1989 exceptions thrown in the process. This fixes a strange crash
1995 exceptions thrown in the process. This fixes a strange crash
1990 reported by Philippe MULLER <muller-AT-irit.fr>.
1996 reported by Philippe MULLER <muller-AT-irit.fr>.
1991
1997
1992 2004-12-09 Fernando Perez <fperez@colorado.edu>
1998 2004-12-09 Fernando Perez <fperez@colorado.edu>
1993
1999
1994 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2000 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1995 to reflect new names in matplotlib, which now expose the
2001 to reflect new names in matplotlib, which now expose the
1996 matlab-compatible interface via a pylab module instead of the
2002 matlab-compatible interface via a pylab module instead of the
1997 'matlab' name. The new code is backwards compatible, so users of
2003 'matlab' name. The new code is backwards compatible, so users of
1998 all matplotlib versions are OK. Patch by J. Hunter.
2004 all matplotlib versions are OK. Patch by J. Hunter.
1999
2005
2000 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2006 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2001 of __init__ docstrings for instances (class docstrings are already
2007 of __init__ docstrings for instances (class docstrings are already
2002 automatically printed). Instances with customized docstrings
2008 automatically printed). Instances with customized docstrings
2003 (indep. of the class) are also recognized and all 3 separate
2009 (indep. of the class) are also recognized and all 3 separate
2004 docstrings are printed (instance, class, constructor). After some
2010 docstrings are printed (instance, class, constructor). After some
2005 comments/suggestions by J. Hunter.
2011 comments/suggestions by J. Hunter.
2006
2012
2007 2004-12-05 Fernando Perez <fperez@colorado.edu>
2013 2004-12-05 Fernando Perez <fperez@colorado.edu>
2008
2014
2009 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2015 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2010 warnings when tab-completion fails and triggers an exception.
2016 warnings when tab-completion fails and triggers an exception.
2011
2017
2012 2004-12-03 Fernando Perez <fperez@colorado.edu>
2018 2004-12-03 Fernando Perez <fperez@colorado.edu>
2013
2019
2014 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2020 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2015 be triggered when using 'run -p'. An incorrect option flag was
2021 be triggered when using 'run -p'. An incorrect option flag was
2016 being set ('d' instead of 'D').
2022 being set ('d' instead of 'D').
2017 (manpage): fix missing escaped \- sign.
2023 (manpage): fix missing escaped \- sign.
2018
2024
2019 2004-11-30 *** Released version 0.6.5
2025 2004-11-30 *** Released version 0.6.5
2020
2026
2021 2004-11-30 Fernando Perez <fperez@colorado.edu>
2027 2004-11-30 Fernando Perez <fperez@colorado.edu>
2022
2028
2023 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2029 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2024 setting with -d option.
2030 setting with -d option.
2025
2031
2026 * setup.py (docfiles): Fix problem where the doc glob I was using
2032 * setup.py (docfiles): Fix problem where the doc glob I was using
2027 was COMPLETELY BROKEN. It was giving the right files by pure
2033 was COMPLETELY BROKEN. It was giving the right files by pure
2028 accident, but failed once I tried to include ipython.el. Note:
2034 accident, but failed once I tried to include ipython.el. Note:
2029 glob() does NOT allow you to do exclusion on multiple endings!
2035 glob() does NOT allow you to do exclusion on multiple endings!
2030
2036
2031 2004-11-29 Fernando Perez <fperez@colorado.edu>
2037 2004-11-29 Fernando Perez <fperez@colorado.edu>
2032
2038
2033 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2039 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2034 the manpage as the source. Better formatting & consistency.
2040 the manpage as the source. Better formatting & consistency.
2035
2041
2036 * IPython/Magic.py (magic_run): Added new -d option, to run
2042 * IPython/Magic.py (magic_run): Added new -d option, to run
2037 scripts under the control of the python pdb debugger. Note that
2043 scripts under the control of the python pdb debugger. Note that
2038 this required changing the %prun option -d to -D, to avoid a clash
2044 this required changing the %prun option -d to -D, to avoid a clash
2039 (since %run must pass options to %prun, and getopt is too dumb to
2045 (since %run must pass options to %prun, and getopt is too dumb to
2040 handle options with string values with embedded spaces). Thanks
2046 handle options with string values with embedded spaces). Thanks
2041 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2047 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2042 (magic_who_ls): added type matching to %who and %whos, so that one
2048 (magic_who_ls): added type matching to %who and %whos, so that one
2043 can filter their output to only include variables of certain
2049 can filter their output to only include variables of certain
2044 types. Another suggestion by Matthew.
2050 types. Another suggestion by Matthew.
2045 (magic_whos): Added memory summaries in kb and Mb for arrays.
2051 (magic_whos): Added memory summaries in kb and Mb for arrays.
2046 (magic_who): Improve formatting (break lines every 9 vars).
2052 (magic_who): Improve formatting (break lines every 9 vars).
2047
2053
2048 2004-11-28 Fernando Perez <fperez@colorado.edu>
2054 2004-11-28 Fernando Perez <fperez@colorado.edu>
2049
2055
2050 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2056 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2051 cache when empty lines were present.
2057 cache when empty lines were present.
2052
2058
2053 2004-11-24 Fernando Perez <fperez@colorado.edu>
2059 2004-11-24 Fernando Perez <fperez@colorado.edu>
2054
2060
2055 * IPython/usage.py (__doc__): document the re-activated threading
2061 * IPython/usage.py (__doc__): document the re-activated threading
2056 options for WX and GTK.
2062 options for WX and GTK.
2057
2063
2058 2004-11-23 Fernando Perez <fperez@colorado.edu>
2064 2004-11-23 Fernando Perez <fperez@colorado.edu>
2059
2065
2060 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2066 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2061 the -wthread and -gthread options, along with a new -tk one to try
2067 the -wthread and -gthread options, along with a new -tk one to try
2062 and coordinate Tk threading with wx/gtk. The tk support is very
2068 and coordinate Tk threading with wx/gtk. The tk support is very
2063 platform dependent, since it seems to require Tcl and Tk to be
2069 platform dependent, since it seems to require Tcl and Tk to be
2064 built with threads (Fedora1/2 appears NOT to have it, but in
2070 built with threads (Fedora1/2 appears NOT to have it, but in
2065 Prabhu's Debian boxes it works OK). But even with some Tk
2071 Prabhu's Debian boxes it works OK). But even with some Tk
2066 limitations, this is a great improvement.
2072 limitations, this is a great improvement.
2067
2073
2068 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2074 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2069 info in user prompts. Patch by Prabhu.
2075 info in user prompts. Patch by Prabhu.
2070
2076
2071 2004-11-18 Fernando Perez <fperez@colorado.edu>
2077 2004-11-18 Fernando Perez <fperez@colorado.edu>
2072
2078
2073 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2079 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2074 EOFErrors and bail, to avoid infinite loops if a non-terminating
2080 EOFErrors and bail, to avoid infinite loops if a non-terminating
2075 file is fed into ipython. Patch submitted in issue 19 by user,
2081 file is fed into ipython. Patch submitted in issue 19 by user,
2076 many thanks.
2082 many thanks.
2077
2083
2078 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2084 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2079 autoquote/parens in continuation prompts, which can cause lots of
2085 autoquote/parens in continuation prompts, which can cause lots of
2080 problems. Closes roundup issue 20.
2086 problems. Closes roundup issue 20.
2081
2087
2082 2004-11-17 Fernando Perez <fperez@colorado.edu>
2088 2004-11-17 Fernando Perez <fperez@colorado.edu>
2083
2089
2084 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2090 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2085 reported as debian bug #280505. I'm not sure my local changelog
2091 reported as debian bug #280505. I'm not sure my local changelog
2086 entry has the proper debian format (Jack?).
2092 entry has the proper debian format (Jack?).
2087
2093
2088 2004-11-08 *** Released version 0.6.4
2094 2004-11-08 *** Released version 0.6.4
2089
2095
2090 2004-11-08 Fernando Perez <fperez@colorado.edu>
2096 2004-11-08 Fernando Perez <fperez@colorado.edu>
2091
2097
2092 * IPython/iplib.py (init_readline): Fix exit message for Windows
2098 * IPython/iplib.py (init_readline): Fix exit message for Windows
2093 when readline is active. Thanks to a report by Eric Jones
2099 when readline is active. Thanks to a report by Eric Jones
2094 <eric-AT-enthought.com>.
2100 <eric-AT-enthought.com>.
2095
2101
2096 2004-11-07 Fernando Perez <fperez@colorado.edu>
2102 2004-11-07 Fernando Perez <fperez@colorado.edu>
2097
2103
2098 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2104 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2099 sometimes seen by win2k/cygwin users.
2105 sometimes seen by win2k/cygwin users.
2100
2106
2101 2004-11-06 Fernando Perez <fperez@colorado.edu>
2107 2004-11-06 Fernando Perez <fperez@colorado.edu>
2102
2108
2103 * IPython/iplib.py (interact): Change the handling of %Exit from
2109 * IPython/iplib.py (interact): Change the handling of %Exit from
2104 trying to propagate a SystemExit to an internal ipython flag.
2110 trying to propagate a SystemExit to an internal ipython flag.
2105 This is less elegant than using Python's exception mechanism, but
2111 This is less elegant than using Python's exception mechanism, but
2106 I can't get that to work reliably with threads, so under -pylab
2112 I can't get that to work reliably with threads, so under -pylab
2107 %Exit was hanging IPython. Cross-thread exception handling is
2113 %Exit was hanging IPython. Cross-thread exception handling is
2108 really a bitch. Thaks to a bug report by Stephen Walton
2114 really a bitch. Thaks to a bug report by Stephen Walton
2109 <stephen.walton-AT-csun.edu>.
2115 <stephen.walton-AT-csun.edu>.
2110
2116
2111 2004-11-04 Fernando Perez <fperez@colorado.edu>
2117 2004-11-04 Fernando Perez <fperez@colorado.edu>
2112
2118
2113 * IPython/iplib.py (raw_input_original): store a pointer to the
2119 * IPython/iplib.py (raw_input_original): store a pointer to the
2114 true raw_input to harden against code which can modify it
2120 true raw_input to harden against code which can modify it
2115 (wx.py.PyShell does this and would otherwise crash ipython).
2121 (wx.py.PyShell does this and would otherwise crash ipython).
2116 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2122 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2117
2123
2118 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2124 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2119 Ctrl-C problem, which does not mess up the input line.
2125 Ctrl-C problem, which does not mess up the input line.
2120
2126
2121 2004-11-03 Fernando Perez <fperez@colorado.edu>
2127 2004-11-03 Fernando Perez <fperez@colorado.edu>
2122
2128
2123 * IPython/Release.py: Changed licensing to BSD, in all files.
2129 * IPython/Release.py: Changed licensing to BSD, in all files.
2124 (name): lowercase name for tarball/RPM release.
2130 (name): lowercase name for tarball/RPM release.
2125
2131
2126 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2132 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2127 use throughout ipython.
2133 use throughout ipython.
2128
2134
2129 * IPython/Magic.py (Magic._ofind): Switch to using the new
2135 * IPython/Magic.py (Magic._ofind): Switch to using the new
2130 OInspect.getdoc() function.
2136 OInspect.getdoc() function.
2131
2137
2132 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2138 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2133 of the line currently being canceled via Ctrl-C. It's extremely
2139 of the line currently being canceled via Ctrl-C. It's extremely
2134 ugly, but I don't know how to do it better (the problem is one of
2140 ugly, but I don't know how to do it better (the problem is one of
2135 handling cross-thread exceptions).
2141 handling cross-thread exceptions).
2136
2142
2137 2004-10-28 Fernando Perez <fperez@colorado.edu>
2143 2004-10-28 Fernando Perez <fperez@colorado.edu>
2138
2144
2139 * IPython/Shell.py (signal_handler): add signal handlers to trap
2145 * IPython/Shell.py (signal_handler): add signal handlers to trap
2140 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2146 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2141 report by Francesc Alted.
2147 report by Francesc Alted.
2142
2148
2143 2004-10-21 Fernando Perez <fperez@colorado.edu>
2149 2004-10-21 Fernando Perez <fperez@colorado.edu>
2144
2150
2145 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2151 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2146 to % for pysh syntax extensions.
2152 to % for pysh syntax extensions.
2147
2153
2148 2004-10-09 Fernando Perez <fperez@colorado.edu>
2154 2004-10-09 Fernando Perez <fperez@colorado.edu>
2149
2155
2150 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2156 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2151 arrays to print a more useful summary, without calling str(arr).
2157 arrays to print a more useful summary, without calling str(arr).
2152 This avoids the problem of extremely lengthy computations which
2158 This avoids the problem of extremely lengthy computations which
2153 occur if arr is large, and appear to the user as a system lockup
2159 occur if arr is large, and appear to the user as a system lockup
2154 with 100% cpu activity. After a suggestion by Kristian Sandberg
2160 with 100% cpu activity. After a suggestion by Kristian Sandberg
2155 <Kristian.Sandberg@colorado.edu>.
2161 <Kristian.Sandberg@colorado.edu>.
2156 (Magic.__init__): fix bug in global magic escapes not being
2162 (Magic.__init__): fix bug in global magic escapes not being
2157 correctly set.
2163 correctly set.
2158
2164
2159 2004-10-08 Fernando Perez <fperez@colorado.edu>
2165 2004-10-08 Fernando Perez <fperez@colorado.edu>
2160
2166
2161 * IPython/Magic.py (__license__): change to absolute imports of
2167 * IPython/Magic.py (__license__): change to absolute imports of
2162 ipython's own internal packages, to start adapting to the absolute
2168 ipython's own internal packages, to start adapting to the absolute
2163 import requirement of PEP-328.
2169 import requirement of PEP-328.
2164
2170
2165 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2171 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2166 files, and standardize author/license marks through the Release
2172 files, and standardize author/license marks through the Release
2167 module instead of having per/file stuff (except for files with
2173 module instead of having per/file stuff (except for files with
2168 particular licenses, like the MIT/PSF-licensed codes).
2174 particular licenses, like the MIT/PSF-licensed codes).
2169
2175
2170 * IPython/Debugger.py: remove dead code for python 2.1
2176 * IPython/Debugger.py: remove dead code for python 2.1
2171
2177
2172 2004-10-04 Fernando Perez <fperez@colorado.edu>
2178 2004-10-04 Fernando Perez <fperez@colorado.edu>
2173
2179
2174 * IPython/iplib.py (ipmagic): New function for accessing magics
2180 * IPython/iplib.py (ipmagic): New function for accessing magics
2175 via a normal python function call.
2181 via a normal python function call.
2176
2182
2177 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2183 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2178 from '@' to '%', to accomodate the new @decorator syntax of python
2184 from '@' to '%', to accomodate the new @decorator syntax of python
2179 2.4.
2185 2.4.
2180
2186
2181 2004-09-29 Fernando Perez <fperez@colorado.edu>
2187 2004-09-29 Fernando Perez <fperez@colorado.edu>
2182
2188
2183 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2189 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2184 matplotlib.use to prevent running scripts which try to switch
2190 matplotlib.use to prevent running scripts which try to switch
2185 interactive backends from within ipython. This will just crash
2191 interactive backends from within ipython. This will just crash
2186 the python interpreter, so we can't allow it (but a detailed error
2192 the python interpreter, so we can't allow it (but a detailed error
2187 is given to the user).
2193 is given to the user).
2188
2194
2189 2004-09-28 Fernando Perez <fperez@colorado.edu>
2195 2004-09-28 Fernando Perez <fperez@colorado.edu>
2190
2196
2191 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2197 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2192 matplotlib-related fixes so that using @run with non-matplotlib
2198 matplotlib-related fixes so that using @run with non-matplotlib
2193 scripts doesn't pop up spurious plot windows. This requires
2199 scripts doesn't pop up spurious plot windows. This requires
2194 matplotlib >= 0.63, where I had to make some changes as well.
2200 matplotlib >= 0.63, where I had to make some changes as well.
2195
2201
2196 * IPython/ipmaker.py (make_IPython): update version requirement to
2202 * IPython/ipmaker.py (make_IPython): update version requirement to
2197 python 2.2.
2203 python 2.2.
2198
2204
2199 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2205 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2200 banner arg for embedded customization.
2206 banner arg for embedded customization.
2201
2207
2202 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2208 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2203 explicit uses of __IP as the IPython's instance name. Now things
2209 explicit uses of __IP as the IPython's instance name. Now things
2204 are properly handled via the shell.name value. The actual code
2210 are properly handled via the shell.name value. The actual code
2205 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2211 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2206 is much better than before. I'll clean things completely when the
2212 is much better than before. I'll clean things completely when the
2207 magic stuff gets a real overhaul.
2213 magic stuff gets a real overhaul.
2208
2214
2209 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2215 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2210 minor changes to debian dir.
2216 minor changes to debian dir.
2211
2217
2212 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2218 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2213 pointer to the shell itself in the interactive namespace even when
2219 pointer to the shell itself in the interactive namespace even when
2214 a user-supplied dict is provided. This is needed for embedding
2220 a user-supplied dict is provided. This is needed for embedding
2215 purposes (found by tests with Michel Sanner).
2221 purposes (found by tests with Michel Sanner).
2216
2222
2217 2004-09-27 Fernando Perez <fperez@colorado.edu>
2223 2004-09-27 Fernando Perez <fperez@colorado.edu>
2218
2224
2219 * IPython/UserConfig/ipythonrc: remove []{} from
2225 * IPython/UserConfig/ipythonrc: remove []{} from
2220 readline_remove_delims, so that things like [modname.<TAB> do
2226 readline_remove_delims, so that things like [modname.<TAB> do
2221 proper completion. This disables [].TAB, but that's a less common
2227 proper completion. This disables [].TAB, but that's a less common
2222 case than module names in list comprehensions, for example.
2228 case than module names in list comprehensions, for example.
2223 Thanks to a report by Andrea Riciputi.
2229 Thanks to a report by Andrea Riciputi.
2224
2230
2225 2004-09-09 Fernando Perez <fperez@colorado.edu>
2231 2004-09-09 Fernando Perez <fperez@colorado.edu>
2226
2232
2227 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2233 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2228 blocking problems in win32 and osx. Fix by John.
2234 blocking problems in win32 and osx. Fix by John.
2229
2235
2230 2004-09-08 Fernando Perez <fperez@colorado.edu>
2236 2004-09-08 Fernando Perez <fperez@colorado.edu>
2231
2237
2232 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2238 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2233 for Win32 and OSX. Fix by John Hunter.
2239 for Win32 and OSX. Fix by John Hunter.
2234
2240
2235 2004-08-30 *** Released version 0.6.3
2241 2004-08-30 *** Released version 0.6.3
2236
2242
2237 2004-08-30 Fernando Perez <fperez@colorado.edu>
2243 2004-08-30 Fernando Perez <fperez@colorado.edu>
2238
2244
2239 * setup.py (isfile): Add manpages to list of dependent files to be
2245 * setup.py (isfile): Add manpages to list of dependent files to be
2240 updated.
2246 updated.
2241
2247
2242 2004-08-27 Fernando Perez <fperez@colorado.edu>
2248 2004-08-27 Fernando Perez <fperez@colorado.edu>
2243
2249
2244 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2250 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2245 for now. They don't really work with standalone WX/GTK code
2251 for now. They don't really work with standalone WX/GTK code
2246 (though matplotlib IS working fine with both of those backends).
2252 (though matplotlib IS working fine with both of those backends).
2247 This will neeed much more testing. I disabled most things with
2253 This will neeed much more testing. I disabled most things with
2248 comments, so turning it back on later should be pretty easy.
2254 comments, so turning it back on later should be pretty easy.
2249
2255
2250 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2256 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2251 autocalling of expressions like r'foo', by modifying the line
2257 autocalling of expressions like r'foo', by modifying the line
2252 split regexp. Closes
2258 split regexp. Closes
2253 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2259 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2254 Riley <ipythonbugs-AT-sabi.net>.
2260 Riley <ipythonbugs-AT-sabi.net>.
2255 (InteractiveShell.mainloop): honor --nobanner with banner
2261 (InteractiveShell.mainloop): honor --nobanner with banner
2256 extensions.
2262 extensions.
2257
2263
2258 * IPython/Shell.py: Significant refactoring of all classes, so
2264 * IPython/Shell.py: Significant refactoring of all classes, so
2259 that we can really support ALL matplotlib backends and threading
2265 that we can really support ALL matplotlib backends and threading
2260 models (John spotted a bug with Tk which required this). Now we
2266 models (John spotted a bug with Tk which required this). Now we
2261 should support single-threaded, WX-threads and GTK-threads, both
2267 should support single-threaded, WX-threads and GTK-threads, both
2262 for generic code and for matplotlib.
2268 for generic code and for matplotlib.
2263
2269
2264 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2270 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2265 -pylab, to simplify things for users. Will also remove the pylab
2271 -pylab, to simplify things for users. Will also remove the pylab
2266 profile, since now all of matplotlib configuration is directly
2272 profile, since now all of matplotlib configuration is directly
2267 handled here. This also reduces startup time.
2273 handled here. This also reduces startup time.
2268
2274
2269 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2275 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2270 shell wasn't being correctly called. Also in IPShellWX.
2276 shell wasn't being correctly called. Also in IPShellWX.
2271
2277
2272 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2278 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2273 fine-tune banner.
2279 fine-tune banner.
2274
2280
2275 * IPython/numutils.py (spike): Deprecate these spike functions,
2281 * IPython/numutils.py (spike): Deprecate these spike functions,
2276 delete (long deprecated) gnuplot_exec handler.
2282 delete (long deprecated) gnuplot_exec handler.
2277
2283
2278 2004-08-26 Fernando Perez <fperez@colorado.edu>
2284 2004-08-26 Fernando Perez <fperez@colorado.edu>
2279
2285
2280 * ipython.1: Update for threading options, plus some others which
2286 * ipython.1: Update for threading options, plus some others which
2281 were missing.
2287 were missing.
2282
2288
2283 * IPython/ipmaker.py (__call__): Added -wthread option for
2289 * IPython/ipmaker.py (__call__): Added -wthread option for
2284 wxpython thread handling. Make sure threading options are only
2290 wxpython thread handling. Make sure threading options are only
2285 valid at the command line.
2291 valid at the command line.
2286
2292
2287 * scripts/ipython: moved shell selection into a factory function
2293 * scripts/ipython: moved shell selection into a factory function
2288 in Shell.py, to keep the starter script to a minimum.
2294 in Shell.py, to keep the starter script to a minimum.
2289
2295
2290 2004-08-25 Fernando Perez <fperez@colorado.edu>
2296 2004-08-25 Fernando Perez <fperez@colorado.edu>
2291
2297
2292 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2298 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2293 John. Along with some recent changes he made to matplotlib, the
2299 John. Along with some recent changes he made to matplotlib, the
2294 next versions of both systems should work very well together.
2300 next versions of both systems should work very well together.
2295
2301
2296 2004-08-24 Fernando Perez <fperez@colorado.edu>
2302 2004-08-24 Fernando Perez <fperez@colorado.edu>
2297
2303
2298 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2304 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2299 tried to switch the profiling to using hotshot, but I'm getting
2305 tried to switch the profiling to using hotshot, but I'm getting
2300 strange errors from prof.runctx() there. I may be misreading the
2306 strange errors from prof.runctx() there. I may be misreading the
2301 docs, but it looks weird. For now the profiling code will
2307 docs, but it looks weird. For now the profiling code will
2302 continue to use the standard profiler.
2308 continue to use the standard profiler.
2303
2309
2304 2004-08-23 Fernando Perez <fperez@colorado.edu>
2310 2004-08-23 Fernando Perez <fperez@colorado.edu>
2305
2311
2306 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2312 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2307 threaded shell, by John Hunter. It's not quite ready yet, but
2313 threaded shell, by John Hunter. It's not quite ready yet, but
2308 close.
2314 close.
2309
2315
2310 2004-08-22 Fernando Perez <fperez@colorado.edu>
2316 2004-08-22 Fernando Perez <fperez@colorado.edu>
2311
2317
2312 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2318 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2313 in Magic and ultraTB.
2319 in Magic and ultraTB.
2314
2320
2315 * ipython.1: document threading options in manpage.
2321 * ipython.1: document threading options in manpage.
2316
2322
2317 * scripts/ipython: Changed name of -thread option to -gthread,
2323 * scripts/ipython: Changed name of -thread option to -gthread,
2318 since this is GTK specific. I want to leave the door open for a
2324 since this is GTK specific. I want to leave the door open for a
2319 -wthread option for WX, which will most likely be necessary. This
2325 -wthread option for WX, which will most likely be necessary. This
2320 change affects usage and ipmaker as well.
2326 change affects usage and ipmaker as well.
2321
2327
2322 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2328 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2323 handle the matplotlib shell issues. Code by John Hunter
2329 handle the matplotlib shell issues. Code by John Hunter
2324 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2330 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2325 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2331 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2326 broken (and disabled for end users) for now, but it puts the
2332 broken (and disabled for end users) for now, but it puts the
2327 infrastructure in place.
2333 infrastructure in place.
2328
2334
2329 2004-08-21 Fernando Perez <fperez@colorado.edu>
2335 2004-08-21 Fernando Perez <fperez@colorado.edu>
2330
2336
2331 * ipythonrc-pylab: Add matplotlib support.
2337 * ipythonrc-pylab: Add matplotlib support.
2332
2338
2333 * matplotlib_config.py: new files for matplotlib support, part of
2339 * matplotlib_config.py: new files for matplotlib support, part of
2334 the pylab profile.
2340 the pylab profile.
2335
2341
2336 * IPython/usage.py (__doc__): documented the threading options.
2342 * IPython/usage.py (__doc__): documented the threading options.
2337
2343
2338 2004-08-20 Fernando Perez <fperez@colorado.edu>
2344 2004-08-20 Fernando Perez <fperez@colorado.edu>
2339
2345
2340 * ipython: Modified the main calling routine to handle the -thread
2346 * ipython: Modified the main calling routine to handle the -thread
2341 and -mpthread options. This needs to be done as a top-level hack,
2347 and -mpthread options. This needs to be done as a top-level hack,
2342 because it determines which class to instantiate for IPython
2348 because it determines which class to instantiate for IPython
2343 itself.
2349 itself.
2344
2350
2345 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2351 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2346 classes to support multithreaded GTK operation without blocking,
2352 classes to support multithreaded GTK operation without blocking,
2347 and matplotlib with all backends. This is a lot of still very
2353 and matplotlib with all backends. This is a lot of still very
2348 experimental code, and threads are tricky. So it may still have a
2354 experimental code, and threads are tricky. So it may still have a
2349 few rough edges... This code owes a lot to
2355 few rough edges... This code owes a lot to
2350 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2356 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2351 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2357 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2352 to John Hunter for all the matplotlib work.
2358 to John Hunter for all the matplotlib work.
2353
2359
2354 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2360 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2355 options for gtk thread and matplotlib support.
2361 options for gtk thread and matplotlib support.
2356
2362
2357 2004-08-16 Fernando Perez <fperez@colorado.edu>
2363 2004-08-16 Fernando Perez <fperez@colorado.edu>
2358
2364
2359 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2365 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2360 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2366 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2361 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2367 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2362
2368
2363 2004-08-11 Fernando Perez <fperez@colorado.edu>
2369 2004-08-11 Fernando Perez <fperez@colorado.edu>
2364
2370
2365 * setup.py (isfile): Fix build so documentation gets updated for
2371 * setup.py (isfile): Fix build so documentation gets updated for
2366 rpms (it was only done for .tgz builds).
2372 rpms (it was only done for .tgz builds).
2367
2373
2368 2004-08-10 Fernando Perez <fperez@colorado.edu>
2374 2004-08-10 Fernando Perez <fperez@colorado.edu>
2369
2375
2370 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2376 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2371
2377
2372 * iplib.py : Silence syntax error exceptions in tab-completion.
2378 * iplib.py : Silence syntax error exceptions in tab-completion.
2373
2379
2374 2004-08-05 Fernando Perez <fperez@colorado.edu>
2380 2004-08-05 Fernando Perez <fperez@colorado.edu>
2375
2381
2376 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2382 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2377 'color off' mark for continuation prompts. This was causing long
2383 'color off' mark for continuation prompts. This was causing long
2378 continuation lines to mis-wrap.
2384 continuation lines to mis-wrap.
2379
2385
2380 2004-08-01 Fernando Perez <fperez@colorado.edu>
2386 2004-08-01 Fernando Perez <fperez@colorado.edu>
2381
2387
2382 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2388 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2383 for building ipython to be a parameter. All this is necessary
2389 for building ipython to be a parameter. All this is necessary
2384 right now to have a multithreaded version, but this insane
2390 right now to have a multithreaded version, but this insane
2385 non-design will be cleaned up soon. For now, it's a hack that
2391 non-design will be cleaned up soon. For now, it's a hack that
2386 works.
2392 works.
2387
2393
2388 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2394 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2389 args in various places. No bugs so far, but it's a dangerous
2395 args in various places. No bugs so far, but it's a dangerous
2390 practice.
2396 practice.
2391
2397
2392 2004-07-31 Fernando Perez <fperez@colorado.edu>
2398 2004-07-31 Fernando Perez <fperez@colorado.edu>
2393
2399
2394 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2400 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2395 fix completion of files with dots in their names under most
2401 fix completion of files with dots in their names under most
2396 profiles (pysh was OK because the completion order is different).
2402 profiles (pysh was OK because the completion order is different).
2397
2403
2398 2004-07-27 Fernando Perez <fperez@colorado.edu>
2404 2004-07-27 Fernando Perez <fperez@colorado.edu>
2399
2405
2400 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2406 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2401 keywords manually, b/c the one in keyword.py was removed in python
2407 keywords manually, b/c the one in keyword.py was removed in python
2402 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2408 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2403 This is NOT a bug under python 2.3 and earlier.
2409 This is NOT a bug under python 2.3 and earlier.
2404
2410
2405 2004-07-26 Fernando Perez <fperez@colorado.edu>
2411 2004-07-26 Fernando Perez <fperez@colorado.edu>
2406
2412
2407 * IPython/ultraTB.py (VerboseTB.text): Add another
2413 * IPython/ultraTB.py (VerboseTB.text): Add another
2408 linecache.checkcache() call to try to prevent inspect.py from
2414 linecache.checkcache() call to try to prevent inspect.py from
2409 crashing under python 2.3. I think this fixes
2415 crashing under python 2.3. I think this fixes
2410 http://www.scipy.net/roundup/ipython/issue17.
2416 http://www.scipy.net/roundup/ipython/issue17.
2411
2417
2412 2004-07-26 *** Released version 0.6.2
2418 2004-07-26 *** Released version 0.6.2
2413
2419
2414 2004-07-26 Fernando Perez <fperez@colorado.edu>
2420 2004-07-26 Fernando Perez <fperez@colorado.edu>
2415
2421
2416 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2422 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2417 fail for any number.
2423 fail for any number.
2418 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2424 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2419 empty bookmarks.
2425 empty bookmarks.
2420
2426
2421 2004-07-26 *** Released version 0.6.1
2427 2004-07-26 *** Released version 0.6.1
2422
2428
2423 2004-07-26 Fernando Perez <fperez@colorado.edu>
2429 2004-07-26 Fernando Perez <fperez@colorado.edu>
2424
2430
2425 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2431 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2426
2432
2427 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2433 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2428 escaping '()[]{}' in filenames.
2434 escaping '()[]{}' in filenames.
2429
2435
2430 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2436 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2431 Python 2.2 users who lack a proper shlex.split.
2437 Python 2.2 users who lack a proper shlex.split.
2432
2438
2433 2004-07-19 Fernando Perez <fperez@colorado.edu>
2439 2004-07-19 Fernando Perez <fperez@colorado.edu>
2434
2440
2435 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2441 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2436 for reading readline's init file. I follow the normal chain:
2442 for reading readline's init file. I follow the normal chain:
2437 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2443 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2438 report by Mike Heeter. This closes
2444 report by Mike Heeter. This closes
2439 http://www.scipy.net/roundup/ipython/issue16.
2445 http://www.scipy.net/roundup/ipython/issue16.
2440
2446
2441 2004-07-18 Fernando Perez <fperez@colorado.edu>
2447 2004-07-18 Fernando Perez <fperez@colorado.edu>
2442
2448
2443 * IPython/iplib.py (__init__): Add better handling of '\' under
2449 * IPython/iplib.py (__init__): Add better handling of '\' under
2444 Win32 for filenames. After a patch by Ville.
2450 Win32 for filenames. After a patch by Ville.
2445
2451
2446 2004-07-17 Fernando Perez <fperez@colorado.edu>
2452 2004-07-17 Fernando Perez <fperez@colorado.edu>
2447
2453
2448 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2454 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2449 autocalling would be triggered for 'foo is bar' if foo is
2455 autocalling would be triggered for 'foo is bar' if foo is
2450 callable. I also cleaned up the autocall detection code to use a
2456 callable. I also cleaned up the autocall detection code to use a
2451 regexp, which is faster. Bug reported by Alexander Schmolck.
2457 regexp, which is faster. Bug reported by Alexander Schmolck.
2452
2458
2453 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2459 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2454 '?' in them would confuse the help system. Reported by Alex
2460 '?' in them would confuse the help system. Reported by Alex
2455 Schmolck.
2461 Schmolck.
2456
2462
2457 2004-07-16 Fernando Perez <fperez@colorado.edu>
2463 2004-07-16 Fernando Perez <fperez@colorado.edu>
2458
2464
2459 * IPython/GnuplotInteractive.py (__all__): added plot2.
2465 * IPython/GnuplotInteractive.py (__all__): added plot2.
2460
2466
2461 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2467 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2462 plotting dictionaries, lists or tuples of 1d arrays.
2468 plotting dictionaries, lists or tuples of 1d arrays.
2463
2469
2464 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2470 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2465 optimizations.
2471 optimizations.
2466
2472
2467 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2473 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2468 the information which was there from Janko's original IPP code:
2474 the information which was there from Janko's original IPP code:
2469
2475
2470 03.05.99 20:53 porto.ifm.uni-kiel.de
2476 03.05.99 20:53 porto.ifm.uni-kiel.de
2471 --Started changelog.
2477 --Started changelog.
2472 --make clear do what it say it does
2478 --make clear do what it say it does
2473 --added pretty output of lines from inputcache
2479 --added pretty output of lines from inputcache
2474 --Made Logger a mixin class, simplifies handling of switches
2480 --Made Logger a mixin class, simplifies handling of switches
2475 --Added own completer class. .string<TAB> expands to last history
2481 --Added own completer class. .string<TAB> expands to last history
2476 line which starts with string. The new expansion is also present
2482 line which starts with string. The new expansion is also present
2477 with Ctrl-r from the readline library. But this shows, who this
2483 with Ctrl-r from the readline library. But this shows, who this
2478 can be done for other cases.
2484 can be done for other cases.
2479 --Added convention that all shell functions should accept a
2485 --Added convention that all shell functions should accept a
2480 parameter_string This opens the door for different behaviour for
2486 parameter_string This opens the door for different behaviour for
2481 each function. @cd is a good example of this.
2487 each function. @cd is a good example of this.
2482
2488
2483 04.05.99 12:12 porto.ifm.uni-kiel.de
2489 04.05.99 12:12 porto.ifm.uni-kiel.de
2484 --added logfile rotation
2490 --added logfile rotation
2485 --added new mainloop method which freezes first the namespace
2491 --added new mainloop method which freezes first the namespace
2486
2492
2487 07.05.99 21:24 porto.ifm.uni-kiel.de
2493 07.05.99 21:24 porto.ifm.uni-kiel.de
2488 --added the docreader classes. Now there is a help system.
2494 --added the docreader classes. Now there is a help system.
2489 -This is only a first try. Currently it's not easy to put new
2495 -This is only a first try. Currently it's not easy to put new
2490 stuff in the indices. But this is the way to go. Info would be
2496 stuff in the indices. But this is the way to go. Info would be
2491 better, but HTML is every where and not everybody has an info
2497 better, but HTML is every where and not everybody has an info
2492 system installed and it's not so easy to change html-docs to info.
2498 system installed and it's not so easy to change html-docs to info.
2493 --added global logfile option
2499 --added global logfile option
2494 --there is now a hook for object inspection method pinfo needs to
2500 --there is now a hook for object inspection method pinfo needs to
2495 be provided for this. Can be reached by two '??'.
2501 be provided for this. Can be reached by two '??'.
2496
2502
2497 08.05.99 20:51 porto.ifm.uni-kiel.de
2503 08.05.99 20:51 porto.ifm.uni-kiel.de
2498 --added a README
2504 --added a README
2499 --bug in rc file. Something has changed so functions in the rc
2505 --bug in rc file. Something has changed so functions in the rc
2500 file need to reference the shell and not self. Not clear if it's a
2506 file need to reference the shell and not self. Not clear if it's a
2501 bug or feature.
2507 bug or feature.
2502 --changed rc file for new behavior
2508 --changed rc file for new behavior
2503
2509
2504 2004-07-15 Fernando Perez <fperez@colorado.edu>
2510 2004-07-15 Fernando Perez <fperez@colorado.edu>
2505
2511
2506 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2512 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2507 cache was falling out of sync in bizarre manners when multi-line
2513 cache was falling out of sync in bizarre manners when multi-line
2508 input was present. Minor optimizations and cleanup.
2514 input was present. Minor optimizations and cleanup.
2509
2515
2510 (Logger): Remove old Changelog info for cleanup. This is the
2516 (Logger): Remove old Changelog info for cleanup. This is the
2511 information which was there from Janko's original code:
2517 information which was there from Janko's original code:
2512
2518
2513 Changes to Logger: - made the default log filename a parameter
2519 Changes to Logger: - made the default log filename a parameter
2514
2520
2515 - put a check for lines beginning with !@? in log(). Needed
2521 - put a check for lines beginning with !@? in log(). Needed
2516 (even if the handlers properly log their lines) for mid-session
2522 (even if the handlers properly log their lines) for mid-session
2517 logging activation to work properly. Without this, lines logged
2523 logging activation to work properly. Without this, lines logged
2518 in mid session, which get read from the cache, would end up
2524 in mid session, which get read from the cache, would end up
2519 'bare' (with !@? in the open) in the log. Now they are caught
2525 'bare' (with !@? in the open) in the log. Now they are caught
2520 and prepended with a #.
2526 and prepended with a #.
2521
2527
2522 * IPython/iplib.py (InteractiveShell.init_readline): added check
2528 * IPython/iplib.py (InteractiveShell.init_readline): added check
2523 in case MagicCompleter fails to be defined, so we don't crash.
2529 in case MagicCompleter fails to be defined, so we don't crash.
2524
2530
2525 2004-07-13 Fernando Perez <fperez@colorado.edu>
2531 2004-07-13 Fernando Perez <fperez@colorado.edu>
2526
2532
2527 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2533 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2528 of EPS if the requested filename ends in '.eps'.
2534 of EPS if the requested filename ends in '.eps'.
2529
2535
2530 2004-07-04 Fernando Perez <fperez@colorado.edu>
2536 2004-07-04 Fernando Perez <fperez@colorado.edu>
2531
2537
2532 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2538 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2533 escaping of quotes when calling the shell.
2539 escaping of quotes when calling the shell.
2534
2540
2535 2004-07-02 Fernando Perez <fperez@colorado.edu>
2541 2004-07-02 Fernando Perez <fperez@colorado.edu>
2536
2542
2537 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2543 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2538 gettext not working because we were clobbering '_'. Fixes
2544 gettext not working because we were clobbering '_'. Fixes
2539 http://www.scipy.net/roundup/ipython/issue6.
2545 http://www.scipy.net/roundup/ipython/issue6.
2540
2546
2541 2004-07-01 Fernando Perez <fperez@colorado.edu>
2547 2004-07-01 Fernando Perez <fperez@colorado.edu>
2542
2548
2543 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2549 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2544 into @cd. Patch by Ville.
2550 into @cd. Patch by Ville.
2545
2551
2546 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2552 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2547 new function to store things after ipmaker runs. Patch by Ville.
2553 new function to store things after ipmaker runs. Patch by Ville.
2548 Eventually this will go away once ipmaker is removed and the class
2554 Eventually this will go away once ipmaker is removed and the class
2549 gets cleaned up, but for now it's ok. Key functionality here is
2555 gets cleaned up, but for now it's ok. Key functionality here is
2550 the addition of the persistent storage mechanism, a dict for
2556 the addition of the persistent storage mechanism, a dict for
2551 keeping data across sessions (for now just bookmarks, but more can
2557 keeping data across sessions (for now just bookmarks, but more can
2552 be implemented later).
2558 be implemented later).
2553
2559
2554 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2560 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2555 persistent across sections. Patch by Ville, I modified it
2561 persistent across sections. Patch by Ville, I modified it
2556 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2562 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2557 added a '-l' option to list all bookmarks.
2563 added a '-l' option to list all bookmarks.
2558
2564
2559 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2565 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2560 center for cleanup. Registered with atexit.register(). I moved
2566 center for cleanup. Registered with atexit.register(). I moved
2561 here the old exit_cleanup(). After a patch by Ville.
2567 here the old exit_cleanup(). After a patch by Ville.
2562
2568
2563 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2569 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2564 characters in the hacked shlex_split for python 2.2.
2570 characters in the hacked shlex_split for python 2.2.
2565
2571
2566 * IPython/iplib.py (file_matches): more fixes to filenames with
2572 * IPython/iplib.py (file_matches): more fixes to filenames with
2567 whitespace in them. It's not perfect, but limitations in python's
2573 whitespace in them. It's not perfect, but limitations in python's
2568 readline make it impossible to go further.
2574 readline make it impossible to go further.
2569
2575
2570 2004-06-29 Fernando Perez <fperez@colorado.edu>
2576 2004-06-29 Fernando Perez <fperez@colorado.edu>
2571
2577
2572 * IPython/iplib.py (file_matches): escape whitespace correctly in
2578 * IPython/iplib.py (file_matches): escape whitespace correctly in
2573 filename completions. Bug reported by Ville.
2579 filename completions. Bug reported by Ville.
2574
2580
2575 2004-06-28 Fernando Perez <fperez@colorado.edu>
2581 2004-06-28 Fernando Perez <fperez@colorado.edu>
2576
2582
2577 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2583 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2578 the history file will be called 'history-PROFNAME' (or just
2584 the history file will be called 'history-PROFNAME' (or just
2579 'history' if no profile is loaded). I was getting annoyed at
2585 'history' if no profile is loaded). I was getting annoyed at
2580 getting my Numerical work history clobbered by pysh sessions.
2586 getting my Numerical work history clobbered by pysh sessions.
2581
2587
2582 * IPython/iplib.py (InteractiveShell.__init__): Internal
2588 * IPython/iplib.py (InteractiveShell.__init__): Internal
2583 getoutputerror() function so that we can honor the system_verbose
2589 getoutputerror() function so that we can honor the system_verbose
2584 flag for _all_ system calls. I also added escaping of #
2590 flag for _all_ system calls. I also added escaping of #
2585 characters here to avoid confusing Itpl.
2591 characters here to avoid confusing Itpl.
2586
2592
2587 * IPython/Magic.py (shlex_split): removed call to shell in
2593 * IPython/Magic.py (shlex_split): removed call to shell in
2588 parse_options and replaced it with shlex.split(). The annoying
2594 parse_options and replaced it with shlex.split(). The annoying
2589 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2595 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2590 to backport it from 2.3, with several frail hacks (the shlex
2596 to backport it from 2.3, with several frail hacks (the shlex
2591 module is rather limited in 2.2). Thanks to a suggestion by Ville
2597 module is rather limited in 2.2). Thanks to a suggestion by Ville
2592 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2598 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2593 problem.
2599 problem.
2594
2600
2595 (Magic.magic_system_verbose): new toggle to print the actual
2601 (Magic.magic_system_verbose): new toggle to print the actual
2596 system calls made by ipython. Mainly for debugging purposes.
2602 system calls made by ipython. Mainly for debugging purposes.
2597
2603
2598 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2604 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2599 doesn't support persistence. Reported (and fix suggested) by
2605 doesn't support persistence. Reported (and fix suggested) by
2600 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2606 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2601
2607
2602 2004-06-26 Fernando Perez <fperez@colorado.edu>
2608 2004-06-26 Fernando Perez <fperez@colorado.edu>
2603
2609
2604 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2610 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2605 continue prompts.
2611 continue prompts.
2606
2612
2607 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2613 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2608 function (basically a big docstring) and a few more things here to
2614 function (basically a big docstring) and a few more things here to
2609 speedup startup. pysh.py is now very lightweight. We want because
2615 speedup startup. pysh.py is now very lightweight. We want because
2610 it gets execfile'd, while InterpreterExec gets imported, so
2616 it gets execfile'd, while InterpreterExec gets imported, so
2611 byte-compilation saves time.
2617 byte-compilation saves time.
2612
2618
2613 2004-06-25 Fernando Perez <fperez@colorado.edu>
2619 2004-06-25 Fernando Perez <fperez@colorado.edu>
2614
2620
2615 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2621 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2616 -NUM', which was recently broken.
2622 -NUM', which was recently broken.
2617
2623
2618 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2624 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2619 in multi-line input (but not !!, which doesn't make sense there).
2625 in multi-line input (but not !!, which doesn't make sense there).
2620
2626
2621 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2627 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2622 It's just too useful, and people can turn it off in the less
2628 It's just too useful, and people can turn it off in the less
2623 common cases where it's a problem.
2629 common cases where it's a problem.
2624
2630
2625 2004-06-24 Fernando Perez <fperez@colorado.edu>
2631 2004-06-24 Fernando Perez <fperez@colorado.edu>
2626
2632
2627 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2633 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2628 special syntaxes (like alias calling) is now allied in multi-line
2634 special syntaxes (like alias calling) is now allied in multi-line
2629 input. This is still _very_ experimental, but it's necessary for
2635 input. This is still _very_ experimental, but it's necessary for
2630 efficient shell usage combining python looping syntax with system
2636 efficient shell usage combining python looping syntax with system
2631 calls. For now it's restricted to aliases, I don't think it
2637 calls. For now it's restricted to aliases, I don't think it
2632 really even makes sense to have this for magics.
2638 really even makes sense to have this for magics.
2633
2639
2634 2004-06-23 Fernando Perez <fperez@colorado.edu>
2640 2004-06-23 Fernando Perez <fperez@colorado.edu>
2635
2641
2636 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2642 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2637 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2643 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2638
2644
2639 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2645 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2640 extensions under Windows (after code sent by Gary Bishop). The
2646 extensions under Windows (after code sent by Gary Bishop). The
2641 extensions considered 'executable' are stored in IPython's rc
2647 extensions considered 'executable' are stored in IPython's rc
2642 structure as win_exec_ext.
2648 structure as win_exec_ext.
2643
2649
2644 * IPython/genutils.py (shell): new function, like system() but
2650 * IPython/genutils.py (shell): new function, like system() but
2645 without return value. Very useful for interactive shell work.
2651 without return value. Very useful for interactive shell work.
2646
2652
2647 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2653 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2648 delete aliases.
2654 delete aliases.
2649
2655
2650 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2656 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2651 sure that the alias table doesn't contain python keywords.
2657 sure that the alias table doesn't contain python keywords.
2652
2658
2653 2004-06-21 Fernando Perez <fperez@colorado.edu>
2659 2004-06-21 Fernando Perez <fperez@colorado.edu>
2654
2660
2655 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2661 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2656 non-existent items are found in $PATH. Reported by Thorsten.
2662 non-existent items are found in $PATH. Reported by Thorsten.
2657
2663
2658 2004-06-20 Fernando Perez <fperez@colorado.edu>
2664 2004-06-20 Fernando Perez <fperez@colorado.edu>
2659
2665
2660 * IPython/iplib.py (complete): modified the completer so that the
2666 * IPython/iplib.py (complete): modified the completer so that the
2661 order of priorities can be easily changed at runtime.
2667 order of priorities can be easily changed at runtime.
2662
2668
2663 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2669 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2664 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2670 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2665
2671
2666 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2672 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2667 expand Python variables prepended with $ in all system calls. The
2673 expand Python variables prepended with $ in all system calls. The
2668 same was done to InteractiveShell.handle_shell_escape. Now all
2674 same was done to InteractiveShell.handle_shell_escape. Now all
2669 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2675 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2670 expansion of python variables and expressions according to the
2676 expansion of python variables and expressions according to the
2671 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2677 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2672
2678
2673 Though PEP-215 has been rejected, a similar (but simpler) one
2679 Though PEP-215 has been rejected, a similar (but simpler) one
2674 seems like it will go into Python 2.4, PEP-292 -
2680 seems like it will go into Python 2.4, PEP-292 -
2675 http://www.python.org/peps/pep-0292.html.
2681 http://www.python.org/peps/pep-0292.html.
2676
2682
2677 I'll keep the full syntax of PEP-215, since IPython has since the
2683 I'll keep the full syntax of PEP-215, since IPython has since the
2678 start used Ka-Ping Yee's reference implementation discussed there
2684 start used Ka-Ping Yee's reference implementation discussed there
2679 (Itpl), and I actually like the powerful semantics it offers.
2685 (Itpl), and I actually like the powerful semantics it offers.
2680
2686
2681 In order to access normal shell variables, the $ has to be escaped
2687 In order to access normal shell variables, the $ has to be escaped
2682 via an extra $. For example:
2688 via an extra $. For example:
2683
2689
2684 In [7]: PATH='a python variable'
2690 In [7]: PATH='a python variable'
2685
2691
2686 In [8]: !echo $PATH
2692 In [8]: !echo $PATH
2687 a python variable
2693 a python variable
2688
2694
2689 In [9]: !echo $$PATH
2695 In [9]: !echo $$PATH
2690 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2696 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2691
2697
2692 (Magic.parse_options): escape $ so the shell doesn't evaluate
2698 (Magic.parse_options): escape $ so the shell doesn't evaluate
2693 things prematurely.
2699 things prematurely.
2694
2700
2695 * IPython/iplib.py (InteractiveShell.call_alias): added the
2701 * IPython/iplib.py (InteractiveShell.call_alias): added the
2696 ability for aliases to expand python variables via $.
2702 ability for aliases to expand python variables via $.
2697
2703
2698 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2704 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2699 system, now there's a @rehash/@rehashx pair of magics. These work
2705 system, now there's a @rehash/@rehashx pair of magics. These work
2700 like the csh rehash command, and can be invoked at any time. They
2706 like the csh rehash command, and can be invoked at any time. They
2701 build a table of aliases to everything in the user's $PATH
2707 build a table of aliases to everything in the user's $PATH
2702 (@rehash uses everything, @rehashx is slower but only adds
2708 (@rehash uses everything, @rehashx is slower but only adds
2703 executable files). With this, the pysh.py-based shell profile can
2709 executable files). With this, the pysh.py-based shell profile can
2704 now simply call rehash upon startup, and full access to all
2710 now simply call rehash upon startup, and full access to all
2705 programs in the user's path is obtained.
2711 programs in the user's path is obtained.
2706
2712
2707 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2713 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2708 functionality is now fully in place. I removed the old dynamic
2714 functionality is now fully in place. I removed the old dynamic
2709 code generation based approach, in favor of a much lighter one
2715 code generation based approach, in favor of a much lighter one
2710 based on a simple dict. The advantage is that this allows me to
2716 based on a simple dict. The advantage is that this allows me to
2711 now have thousands of aliases with negligible cost (unthinkable
2717 now have thousands of aliases with negligible cost (unthinkable
2712 with the old system).
2718 with the old system).
2713
2719
2714 2004-06-19 Fernando Perez <fperez@colorado.edu>
2720 2004-06-19 Fernando Perez <fperez@colorado.edu>
2715
2721
2716 * IPython/iplib.py (__init__): extended MagicCompleter class to
2722 * IPython/iplib.py (__init__): extended MagicCompleter class to
2717 also complete (last in priority) on user aliases.
2723 also complete (last in priority) on user aliases.
2718
2724
2719 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2725 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2720 call to eval.
2726 call to eval.
2721 (ItplNS.__init__): Added a new class which functions like Itpl,
2727 (ItplNS.__init__): Added a new class which functions like Itpl,
2722 but allows configuring the namespace for the evaluation to occur
2728 but allows configuring the namespace for the evaluation to occur
2723 in.
2729 in.
2724
2730
2725 2004-06-18 Fernando Perez <fperez@colorado.edu>
2731 2004-06-18 Fernando Perez <fperez@colorado.edu>
2726
2732
2727 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2733 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2728 better message when 'exit' or 'quit' are typed (a common newbie
2734 better message when 'exit' or 'quit' are typed (a common newbie
2729 confusion).
2735 confusion).
2730
2736
2731 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2737 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2732 check for Windows users.
2738 check for Windows users.
2733
2739
2734 * IPython/iplib.py (InteractiveShell.user_setup): removed
2740 * IPython/iplib.py (InteractiveShell.user_setup): removed
2735 disabling of colors for Windows. I'll test at runtime and issue a
2741 disabling of colors for Windows. I'll test at runtime and issue a
2736 warning if Gary's readline isn't found, as to nudge users to
2742 warning if Gary's readline isn't found, as to nudge users to
2737 download it.
2743 download it.
2738
2744
2739 2004-06-16 Fernando Perez <fperez@colorado.edu>
2745 2004-06-16 Fernando Perez <fperez@colorado.edu>
2740
2746
2741 * IPython/genutils.py (Stream.__init__): changed to print errors
2747 * IPython/genutils.py (Stream.__init__): changed to print errors
2742 to sys.stderr. I had a circular dependency here. Now it's
2748 to sys.stderr. I had a circular dependency here. Now it's
2743 possible to run ipython as IDLE's shell (consider this pre-alpha,
2749 possible to run ipython as IDLE's shell (consider this pre-alpha,
2744 since true stdout things end up in the starting terminal instead
2750 since true stdout things end up in the starting terminal instead
2745 of IDLE's out).
2751 of IDLE's out).
2746
2752
2747 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2753 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2748 users who haven't # updated their prompt_in2 definitions. Remove
2754 users who haven't # updated their prompt_in2 definitions. Remove
2749 eventually.
2755 eventually.
2750 (multiple_replace): added credit to original ASPN recipe.
2756 (multiple_replace): added credit to original ASPN recipe.
2751
2757
2752 2004-06-15 Fernando Perez <fperez@colorado.edu>
2758 2004-06-15 Fernando Perez <fperez@colorado.edu>
2753
2759
2754 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2760 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2755 list of auto-defined aliases.
2761 list of auto-defined aliases.
2756
2762
2757 2004-06-13 Fernando Perez <fperez@colorado.edu>
2763 2004-06-13 Fernando Perez <fperez@colorado.edu>
2758
2764
2759 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2765 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2760 install was really requested (so setup.py can be used for other
2766 install was really requested (so setup.py can be used for other
2761 things under Windows).
2767 things under Windows).
2762
2768
2763 2004-06-10 Fernando Perez <fperez@colorado.edu>
2769 2004-06-10 Fernando Perez <fperez@colorado.edu>
2764
2770
2765 * IPython/Logger.py (Logger.create_log): Manually remove any old
2771 * IPython/Logger.py (Logger.create_log): Manually remove any old
2766 backup, since os.remove may fail under Windows. Fixes bug
2772 backup, since os.remove may fail under Windows. Fixes bug
2767 reported by Thorsten.
2773 reported by Thorsten.
2768
2774
2769 2004-06-09 Fernando Perez <fperez@colorado.edu>
2775 2004-06-09 Fernando Perez <fperez@colorado.edu>
2770
2776
2771 * examples/example-embed.py: fixed all references to %n (replaced
2777 * examples/example-embed.py: fixed all references to %n (replaced
2772 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2778 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2773 for all examples and the manual as well.
2779 for all examples and the manual as well.
2774
2780
2775 2004-06-08 Fernando Perez <fperez@colorado.edu>
2781 2004-06-08 Fernando Perez <fperez@colorado.edu>
2776
2782
2777 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2783 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2778 alignment and color management. All 3 prompt subsystems now
2784 alignment and color management. All 3 prompt subsystems now
2779 inherit from BasePrompt.
2785 inherit from BasePrompt.
2780
2786
2781 * tools/release: updates for windows installer build and tag rpms
2787 * tools/release: updates for windows installer build and tag rpms
2782 with python version (since paths are fixed).
2788 with python version (since paths are fixed).
2783
2789
2784 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2790 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2785 which will become eventually obsolete. Also fixed the default
2791 which will become eventually obsolete. Also fixed the default
2786 prompt_in2 to use \D, so at least new users start with the correct
2792 prompt_in2 to use \D, so at least new users start with the correct
2787 defaults.
2793 defaults.
2788 WARNING: Users with existing ipythonrc files will need to apply
2794 WARNING: Users with existing ipythonrc files will need to apply
2789 this fix manually!
2795 this fix manually!
2790
2796
2791 * setup.py: make windows installer (.exe). This is finally the
2797 * setup.py: make windows installer (.exe). This is finally the
2792 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2798 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2793 which I hadn't included because it required Python 2.3 (or recent
2799 which I hadn't included because it required Python 2.3 (or recent
2794 distutils).
2800 distutils).
2795
2801
2796 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2802 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2797 usage of new '\D' escape.
2803 usage of new '\D' escape.
2798
2804
2799 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2805 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2800 lacks os.getuid())
2806 lacks os.getuid())
2801 (CachedOutput.set_colors): Added the ability to turn coloring
2807 (CachedOutput.set_colors): Added the ability to turn coloring
2802 on/off with @colors even for manually defined prompt colors. It
2808 on/off with @colors even for manually defined prompt colors. It
2803 uses a nasty global, but it works safely and via the generic color
2809 uses a nasty global, but it works safely and via the generic color
2804 handling mechanism.
2810 handling mechanism.
2805 (Prompt2.__init__): Introduced new escape '\D' for continuation
2811 (Prompt2.__init__): Introduced new escape '\D' for continuation
2806 prompts. It represents the counter ('\#') as dots.
2812 prompts. It represents the counter ('\#') as dots.
2807 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2813 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2808 need to update their ipythonrc files and replace '%n' with '\D' in
2814 need to update their ipythonrc files and replace '%n' with '\D' in
2809 their prompt_in2 settings everywhere. Sorry, but there's
2815 their prompt_in2 settings everywhere. Sorry, but there's
2810 otherwise no clean way to get all prompts to properly align. The
2816 otherwise no clean way to get all prompts to properly align. The
2811 ipythonrc shipped with IPython has been updated.
2817 ipythonrc shipped with IPython has been updated.
2812
2818
2813 2004-06-07 Fernando Perez <fperez@colorado.edu>
2819 2004-06-07 Fernando Perez <fperez@colorado.edu>
2814
2820
2815 * setup.py (isfile): Pass local_icons option to latex2html, so the
2821 * setup.py (isfile): Pass local_icons option to latex2html, so the
2816 resulting HTML file is self-contained. Thanks to
2822 resulting HTML file is self-contained. Thanks to
2817 dryice-AT-liu.com.cn for the tip.
2823 dryice-AT-liu.com.cn for the tip.
2818
2824
2819 * pysh.py: I created a new profile 'shell', which implements a
2825 * pysh.py: I created a new profile 'shell', which implements a
2820 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2826 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2821 system shell, nor will it become one anytime soon. It's mainly
2827 system shell, nor will it become one anytime soon. It's mainly
2822 meant to illustrate the use of the new flexible bash-like prompts.
2828 meant to illustrate the use of the new flexible bash-like prompts.
2823 I guess it could be used by hardy souls for true shell management,
2829 I guess it could be used by hardy souls for true shell management,
2824 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2830 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2825 profile. This uses the InterpreterExec extension provided by
2831 profile. This uses the InterpreterExec extension provided by
2826 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2832 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2827
2833
2828 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2834 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2829 auto-align itself with the length of the previous input prompt
2835 auto-align itself with the length of the previous input prompt
2830 (taking into account the invisible color escapes).
2836 (taking into account the invisible color escapes).
2831 (CachedOutput.__init__): Large restructuring of this class. Now
2837 (CachedOutput.__init__): Large restructuring of this class. Now
2832 all three prompts (primary1, primary2, output) are proper objects,
2838 all three prompts (primary1, primary2, output) are proper objects,
2833 managed by the 'parent' CachedOutput class. The code is still a
2839 managed by the 'parent' CachedOutput class. The code is still a
2834 bit hackish (all prompts share state via a pointer to the cache),
2840 bit hackish (all prompts share state via a pointer to the cache),
2835 but it's overall far cleaner than before.
2841 but it's overall far cleaner than before.
2836
2842
2837 * IPython/genutils.py (getoutputerror): modified to add verbose,
2843 * IPython/genutils.py (getoutputerror): modified to add verbose,
2838 debug and header options. This makes the interface of all getout*
2844 debug and header options. This makes the interface of all getout*
2839 functions uniform.
2845 functions uniform.
2840 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2846 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2841
2847
2842 * IPython/Magic.py (Magic.default_option): added a function to
2848 * IPython/Magic.py (Magic.default_option): added a function to
2843 allow registering default options for any magic command. This
2849 allow registering default options for any magic command. This
2844 makes it easy to have profiles which customize the magics globally
2850 makes it easy to have profiles which customize the magics globally
2845 for a certain use. The values set through this function are
2851 for a certain use. The values set through this function are
2846 picked up by the parse_options() method, which all magics should
2852 picked up by the parse_options() method, which all magics should
2847 use to parse their options.
2853 use to parse their options.
2848
2854
2849 * IPython/genutils.py (warn): modified the warnings framework to
2855 * IPython/genutils.py (warn): modified the warnings framework to
2850 use the Term I/O class. I'm trying to slowly unify all of
2856 use the Term I/O class. I'm trying to slowly unify all of
2851 IPython's I/O operations to pass through Term.
2857 IPython's I/O operations to pass through Term.
2852
2858
2853 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2859 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2854 the secondary prompt to correctly match the length of the primary
2860 the secondary prompt to correctly match the length of the primary
2855 one for any prompt. Now multi-line code will properly line up
2861 one for any prompt. Now multi-line code will properly line up
2856 even for path dependent prompts, such as the new ones available
2862 even for path dependent prompts, such as the new ones available
2857 via the prompt_specials.
2863 via the prompt_specials.
2858
2864
2859 2004-06-06 Fernando Perez <fperez@colorado.edu>
2865 2004-06-06 Fernando Perez <fperez@colorado.edu>
2860
2866
2861 * IPython/Prompts.py (prompt_specials): Added the ability to have
2867 * IPython/Prompts.py (prompt_specials): Added the ability to have
2862 bash-like special sequences in the prompts, which get
2868 bash-like special sequences in the prompts, which get
2863 automatically expanded. Things like hostname, current working
2869 automatically expanded. Things like hostname, current working
2864 directory and username are implemented already, but it's easy to
2870 directory and username are implemented already, but it's easy to
2865 add more in the future. Thanks to a patch by W.J. van der Laan
2871 add more in the future. Thanks to a patch by W.J. van der Laan
2866 <gnufnork-AT-hetdigitalegat.nl>
2872 <gnufnork-AT-hetdigitalegat.nl>
2867 (prompt_specials): Added color support for prompt strings, so
2873 (prompt_specials): Added color support for prompt strings, so
2868 users can define arbitrary color setups for their prompts.
2874 users can define arbitrary color setups for their prompts.
2869
2875
2870 2004-06-05 Fernando Perez <fperez@colorado.edu>
2876 2004-06-05 Fernando Perez <fperez@colorado.edu>
2871
2877
2872 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2878 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2873 code to load Gary Bishop's readline and configure it
2879 code to load Gary Bishop's readline and configure it
2874 automatically. Thanks to Gary for help on this.
2880 automatically. Thanks to Gary for help on this.
2875
2881
2876 2004-06-01 Fernando Perez <fperez@colorado.edu>
2882 2004-06-01 Fernando Perez <fperez@colorado.edu>
2877
2883
2878 * IPython/Logger.py (Logger.create_log): fix bug for logging
2884 * IPython/Logger.py (Logger.create_log): fix bug for logging
2879 with no filename (previous fix was incomplete).
2885 with no filename (previous fix was incomplete).
2880
2886
2881 2004-05-25 Fernando Perez <fperez@colorado.edu>
2887 2004-05-25 Fernando Perez <fperez@colorado.edu>
2882
2888
2883 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2889 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2884 parens would get passed to the shell.
2890 parens would get passed to the shell.
2885
2891
2886 2004-05-20 Fernando Perez <fperez@colorado.edu>
2892 2004-05-20 Fernando Perez <fperez@colorado.edu>
2887
2893
2888 * IPython/Magic.py (Magic.magic_prun): changed default profile
2894 * IPython/Magic.py (Magic.magic_prun): changed default profile
2889 sort order to 'time' (the more common profiling need).
2895 sort order to 'time' (the more common profiling need).
2890
2896
2891 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2897 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2892 so that source code shown is guaranteed in sync with the file on
2898 so that source code shown is guaranteed in sync with the file on
2893 disk (also changed in psource). Similar fix to the one for
2899 disk (also changed in psource). Similar fix to the one for
2894 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2900 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2895 <yann.ledu-AT-noos.fr>.
2901 <yann.ledu-AT-noos.fr>.
2896
2902
2897 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2903 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2898 with a single option would not be correctly parsed. Closes
2904 with a single option would not be correctly parsed. Closes
2899 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2905 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2900 introduced in 0.6.0 (on 2004-05-06).
2906 introduced in 0.6.0 (on 2004-05-06).
2901
2907
2902 2004-05-13 *** Released version 0.6.0
2908 2004-05-13 *** Released version 0.6.0
2903
2909
2904 2004-05-13 Fernando Perez <fperez@colorado.edu>
2910 2004-05-13 Fernando Perez <fperez@colorado.edu>
2905
2911
2906 * debian/: Added debian/ directory to CVS, so that debian support
2912 * debian/: Added debian/ directory to CVS, so that debian support
2907 is publicly accessible. The debian package is maintained by Jack
2913 is publicly accessible. The debian package is maintained by Jack
2908 Moffit <jack-AT-xiph.org>.
2914 Moffit <jack-AT-xiph.org>.
2909
2915
2910 * Documentation: included the notes about an ipython-based system
2916 * Documentation: included the notes about an ipython-based system
2911 shell (the hypothetical 'pysh') into the new_design.pdf document,
2917 shell (the hypothetical 'pysh') into the new_design.pdf document,
2912 so that these ideas get distributed to users along with the
2918 so that these ideas get distributed to users along with the
2913 official documentation.
2919 official documentation.
2914
2920
2915 2004-05-10 Fernando Perez <fperez@colorado.edu>
2921 2004-05-10 Fernando Perez <fperez@colorado.edu>
2916
2922
2917 * IPython/Logger.py (Logger.create_log): fix recently introduced
2923 * IPython/Logger.py (Logger.create_log): fix recently introduced
2918 bug (misindented line) where logstart would fail when not given an
2924 bug (misindented line) where logstart would fail when not given an
2919 explicit filename.
2925 explicit filename.
2920
2926
2921 2004-05-09 Fernando Perez <fperez@colorado.edu>
2927 2004-05-09 Fernando Perez <fperez@colorado.edu>
2922
2928
2923 * IPython/Magic.py (Magic.parse_options): skip system call when
2929 * IPython/Magic.py (Magic.parse_options): skip system call when
2924 there are no options to look for. Faster, cleaner for the common
2930 there are no options to look for. Faster, cleaner for the common
2925 case.
2931 case.
2926
2932
2927 * Documentation: many updates to the manual: describing Windows
2933 * Documentation: many updates to the manual: describing Windows
2928 support better, Gnuplot updates, credits, misc small stuff. Also
2934 support better, Gnuplot updates, credits, misc small stuff. Also
2929 updated the new_design doc a bit.
2935 updated the new_design doc a bit.
2930
2936
2931 2004-05-06 *** Released version 0.6.0.rc1
2937 2004-05-06 *** Released version 0.6.0.rc1
2932
2938
2933 2004-05-06 Fernando Perez <fperez@colorado.edu>
2939 2004-05-06 Fernando Perez <fperez@colorado.edu>
2934
2940
2935 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2941 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2936 operations to use the vastly more efficient list/''.join() method.
2942 operations to use the vastly more efficient list/''.join() method.
2937 (FormattedTB.text): Fix
2943 (FormattedTB.text): Fix
2938 http://www.scipy.net/roundup/ipython/issue12 - exception source
2944 http://www.scipy.net/roundup/ipython/issue12 - exception source
2939 extract not updated after reload. Thanks to Mike Salib
2945 extract not updated after reload. Thanks to Mike Salib
2940 <msalib-AT-mit.edu> for pinning the source of the problem.
2946 <msalib-AT-mit.edu> for pinning the source of the problem.
2941 Fortunately, the solution works inside ipython and doesn't require
2947 Fortunately, the solution works inside ipython and doesn't require
2942 any changes to python proper.
2948 any changes to python proper.
2943
2949
2944 * IPython/Magic.py (Magic.parse_options): Improved to process the
2950 * IPython/Magic.py (Magic.parse_options): Improved to process the
2945 argument list as a true shell would (by actually using the
2951 argument list as a true shell would (by actually using the
2946 underlying system shell). This way, all @magics automatically get
2952 underlying system shell). This way, all @magics automatically get
2947 shell expansion for variables. Thanks to a comment by Alex
2953 shell expansion for variables. Thanks to a comment by Alex
2948 Schmolck.
2954 Schmolck.
2949
2955
2950 2004-04-04 Fernando Perez <fperez@colorado.edu>
2956 2004-04-04 Fernando Perez <fperez@colorado.edu>
2951
2957
2952 * IPython/iplib.py (InteractiveShell.interact): Added a special
2958 * IPython/iplib.py (InteractiveShell.interact): Added a special
2953 trap for a debugger quit exception, which is basically impossible
2959 trap for a debugger quit exception, which is basically impossible
2954 to handle by normal mechanisms, given what pdb does to the stack.
2960 to handle by normal mechanisms, given what pdb does to the stack.
2955 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2961 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2956
2962
2957 2004-04-03 Fernando Perez <fperez@colorado.edu>
2963 2004-04-03 Fernando Perez <fperez@colorado.edu>
2958
2964
2959 * IPython/genutils.py (Term): Standardized the names of the Term
2965 * IPython/genutils.py (Term): Standardized the names of the Term
2960 class streams to cin/cout/cerr, following C++ naming conventions
2966 class streams to cin/cout/cerr, following C++ naming conventions
2961 (I can't use in/out/err because 'in' is not a valid attribute
2967 (I can't use in/out/err because 'in' is not a valid attribute
2962 name).
2968 name).
2963
2969
2964 * IPython/iplib.py (InteractiveShell.interact): don't increment
2970 * IPython/iplib.py (InteractiveShell.interact): don't increment
2965 the prompt if there's no user input. By Daniel 'Dang' Griffith
2971 the prompt if there's no user input. By Daniel 'Dang' Griffith
2966 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2972 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2967 Francois Pinard.
2973 Francois Pinard.
2968
2974
2969 2004-04-02 Fernando Perez <fperez@colorado.edu>
2975 2004-04-02 Fernando Perez <fperez@colorado.edu>
2970
2976
2971 * IPython/genutils.py (Stream.__init__): Modified to survive at
2977 * IPython/genutils.py (Stream.__init__): Modified to survive at
2972 least importing in contexts where stdin/out/err aren't true file
2978 least importing in contexts where stdin/out/err aren't true file
2973 objects, such as PyCrust (they lack fileno() and mode). However,
2979 objects, such as PyCrust (they lack fileno() and mode). However,
2974 the recovery facilities which rely on these things existing will
2980 the recovery facilities which rely on these things existing will
2975 not work.
2981 not work.
2976
2982
2977 2004-04-01 Fernando Perez <fperez@colorado.edu>
2983 2004-04-01 Fernando Perez <fperez@colorado.edu>
2978
2984
2979 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2985 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2980 use the new getoutputerror() function, so it properly
2986 use the new getoutputerror() function, so it properly
2981 distinguishes stdout/err.
2987 distinguishes stdout/err.
2982
2988
2983 * IPython/genutils.py (getoutputerror): added a function to
2989 * IPython/genutils.py (getoutputerror): added a function to
2984 capture separately the standard output and error of a command.
2990 capture separately the standard output and error of a command.
2985 After a comment from dang on the mailing lists. This code is
2991 After a comment from dang on the mailing lists. This code is
2986 basically a modified version of commands.getstatusoutput(), from
2992 basically a modified version of commands.getstatusoutput(), from
2987 the standard library.
2993 the standard library.
2988
2994
2989 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2995 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2990 '!!' as a special syntax (shorthand) to access @sx.
2996 '!!' as a special syntax (shorthand) to access @sx.
2991
2997
2992 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2998 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2993 command and return its output as a list split on '\n'.
2999 command and return its output as a list split on '\n'.
2994
3000
2995 2004-03-31 Fernando Perez <fperez@colorado.edu>
3001 2004-03-31 Fernando Perez <fperez@colorado.edu>
2996
3002
2997 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3003 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2998 method to dictionaries used as FakeModule instances if they lack
3004 method to dictionaries used as FakeModule instances if they lack
2999 it. At least pydoc in python2.3 breaks for runtime-defined
3005 it. At least pydoc in python2.3 breaks for runtime-defined
3000 functions without this hack. At some point I need to _really_
3006 functions without this hack. At some point I need to _really_
3001 understand what FakeModule is doing, because it's a gross hack.
3007 understand what FakeModule is doing, because it's a gross hack.
3002 But it solves Arnd's problem for now...
3008 But it solves Arnd's problem for now...
3003
3009
3004 2004-02-27 Fernando Perez <fperez@colorado.edu>
3010 2004-02-27 Fernando Perez <fperez@colorado.edu>
3005
3011
3006 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3012 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3007 mode would behave erratically. Also increased the number of
3013 mode would behave erratically. Also increased the number of
3008 possible logs in rotate mod to 999. Thanks to Rod Holland
3014 possible logs in rotate mod to 999. Thanks to Rod Holland
3009 <rhh@StructureLABS.com> for the report and fixes.
3015 <rhh@StructureLABS.com> for the report and fixes.
3010
3016
3011 2004-02-26 Fernando Perez <fperez@colorado.edu>
3017 2004-02-26 Fernando Perez <fperez@colorado.edu>
3012
3018
3013 * IPython/genutils.py (page): Check that the curses module really
3019 * IPython/genutils.py (page): Check that the curses module really
3014 has the initscr attribute before trying to use it. For some
3020 has the initscr attribute before trying to use it. For some
3015 reason, the Solaris curses module is missing this. I think this
3021 reason, the Solaris curses module is missing this. I think this
3016 should be considered a Solaris python bug, but I'm not sure.
3022 should be considered a Solaris python bug, but I'm not sure.
3017
3023
3018 2004-01-17 Fernando Perez <fperez@colorado.edu>
3024 2004-01-17 Fernando Perez <fperez@colorado.edu>
3019
3025
3020 * IPython/genutils.py (Stream.__init__): Changes to try to make
3026 * IPython/genutils.py (Stream.__init__): Changes to try to make
3021 ipython robust against stdin/out/err being closed by the user.
3027 ipython robust against stdin/out/err being closed by the user.
3022 This is 'user error' (and blocks a normal python session, at least
3028 This is 'user error' (and blocks a normal python session, at least
3023 the stdout case). However, Ipython should be able to survive such
3029 the stdout case). However, Ipython should be able to survive such
3024 instances of abuse as gracefully as possible. To simplify the
3030 instances of abuse as gracefully as possible. To simplify the
3025 coding and maintain compatibility with Gary Bishop's Term
3031 coding and maintain compatibility with Gary Bishop's Term
3026 contributions, I've made use of classmethods for this. I think
3032 contributions, I've made use of classmethods for this. I think
3027 this introduces a dependency on python 2.2.
3033 this introduces a dependency on python 2.2.
3028
3034
3029 2004-01-13 Fernando Perez <fperez@colorado.edu>
3035 2004-01-13 Fernando Perez <fperez@colorado.edu>
3030
3036
3031 * IPython/numutils.py (exp_safe): simplified the code a bit and
3037 * IPython/numutils.py (exp_safe): simplified the code a bit and
3032 removed the need for importing the kinds module altogether.
3038 removed the need for importing the kinds module altogether.
3033
3039
3034 2004-01-06 Fernando Perez <fperez@colorado.edu>
3040 2004-01-06 Fernando Perez <fperez@colorado.edu>
3035
3041
3036 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3042 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3037 a magic function instead, after some community feedback. No
3043 a magic function instead, after some community feedback. No
3038 special syntax will exist for it, but its name is deliberately
3044 special syntax will exist for it, but its name is deliberately
3039 very short.
3045 very short.
3040
3046
3041 2003-12-20 Fernando Perez <fperez@colorado.edu>
3047 2003-12-20 Fernando Perez <fperez@colorado.edu>
3042
3048
3043 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3049 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3044 new functionality, to automagically assign the result of a shell
3050 new functionality, to automagically assign the result of a shell
3045 command to a variable. I'll solicit some community feedback on
3051 command to a variable. I'll solicit some community feedback on
3046 this before making it permanent.
3052 this before making it permanent.
3047
3053
3048 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3054 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3049 requested about callables for which inspect couldn't obtain a
3055 requested about callables for which inspect couldn't obtain a
3050 proper argspec. Thanks to a crash report sent by Etienne
3056 proper argspec. Thanks to a crash report sent by Etienne
3051 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3057 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3052
3058
3053 2003-12-09 Fernando Perez <fperez@colorado.edu>
3059 2003-12-09 Fernando Perez <fperez@colorado.edu>
3054
3060
3055 * IPython/genutils.py (page): patch for the pager to work across
3061 * IPython/genutils.py (page): patch for the pager to work across
3056 various versions of Windows. By Gary Bishop.
3062 various versions of Windows. By Gary Bishop.
3057
3063
3058 2003-12-04 Fernando Perez <fperez@colorado.edu>
3064 2003-12-04 Fernando Perez <fperez@colorado.edu>
3059
3065
3060 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3066 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3061 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3067 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3062 While I tested this and it looks ok, there may still be corner
3068 While I tested this and it looks ok, there may still be corner
3063 cases I've missed.
3069 cases I've missed.
3064
3070
3065 2003-12-01 Fernando Perez <fperez@colorado.edu>
3071 2003-12-01 Fernando Perez <fperez@colorado.edu>
3066
3072
3067 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3073 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3068 where a line like 'p,q=1,2' would fail because the automagic
3074 where a line like 'p,q=1,2' would fail because the automagic
3069 system would be triggered for @p.
3075 system would be triggered for @p.
3070
3076
3071 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3077 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3072 cleanups, code unmodified.
3078 cleanups, code unmodified.
3073
3079
3074 * IPython/genutils.py (Term): added a class for IPython to handle
3080 * IPython/genutils.py (Term): added a class for IPython to handle
3075 output. In most cases it will just be a proxy for stdout/err, but
3081 output. In most cases it will just be a proxy for stdout/err, but
3076 having this allows modifications to be made for some platforms,
3082 having this allows modifications to be made for some platforms,
3077 such as handling color escapes under Windows. All of this code
3083 such as handling color escapes under Windows. All of this code
3078 was contributed by Gary Bishop, with minor modifications by me.
3084 was contributed by Gary Bishop, with minor modifications by me.
3079 The actual changes affect many files.
3085 The actual changes affect many files.
3080
3086
3081 2003-11-30 Fernando Perez <fperez@colorado.edu>
3087 2003-11-30 Fernando Perez <fperez@colorado.edu>
3082
3088
3083 * IPython/iplib.py (file_matches): new completion code, courtesy
3089 * IPython/iplib.py (file_matches): new completion code, courtesy
3084 of Jeff Collins. This enables filename completion again under
3090 of Jeff Collins. This enables filename completion again under
3085 python 2.3, which disabled it at the C level.
3091 python 2.3, which disabled it at the C level.
3086
3092
3087 2003-11-11 Fernando Perez <fperez@colorado.edu>
3093 2003-11-11 Fernando Perez <fperez@colorado.edu>
3088
3094
3089 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3095 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3090 for Numeric.array(map(...)), but often convenient.
3096 for Numeric.array(map(...)), but often convenient.
3091
3097
3092 2003-11-05 Fernando Perez <fperez@colorado.edu>
3098 2003-11-05 Fernando Perez <fperez@colorado.edu>
3093
3099
3094 * IPython/numutils.py (frange): Changed a call from int() to
3100 * IPython/numutils.py (frange): Changed a call from int() to
3095 int(round()) to prevent a problem reported with arange() in the
3101 int(round()) to prevent a problem reported with arange() in the
3096 numpy list.
3102 numpy list.
3097
3103
3098 2003-10-06 Fernando Perez <fperez@colorado.edu>
3104 2003-10-06 Fernando Perez <fperez@colorado.edu>
3099
3105
3100 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3106 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3101 prevent crashes if sys lacks an argv attribute (it happens with
3107 prevent crashes if sys lacks an argv attribute (it happens with
3102 embedded interpreters which build a bare-bones sys module).
3108 embedded interpreters which build a bare-bones sys module).
3103 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3109 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3104
3110
3105 2003-09-24 Fernando Perez <fperez@colorado.edu>
3111 2003-09-24 Fernando Perez <fperez@colorado.edu>
3106
3112
3107 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3113 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3108 to protect against poorly written user objects where __getattr__
3114 to protect against poorly written user objects where __getattr__
3109 raises exceptions other than AttributeError. Thanks to a bug
3115 raises exceptions other than AttributeError. Thanks to a bug
3110 report by Oliver Sander <osander-AT-gmx.de>.
3116 report by Oliver Sander <osander-AT-gmx.de>.
3111
3117
3112 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3118 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3113 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3119 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3114
3120
3115 2003-09-09 Fernando Perez <fperez@colorado.edu>
3121 2003-09-09 Fernando Perez <fperez@colorado.edu>
3116
3122
3117 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3123 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3118 unpacking a list whith a callable as first element would
3124 unpacking a list whith a callable as first element would
3119 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3125 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3120 Collins.
3126 Collins.
3121
3127
3122 2003-08-25 *** Released version 0.5.0
3128 2003-08-25 *** Released version 0.5.0
3123
3129
3124 2003-08-22 Fernando Perez <fperez@colorado.edu>
3130 2003-08-22 Fernando Perez <fperez@colorado.edu>
3125
3131
3126 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3132 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3127 improperly defined user exceptions. Thanks to feedback from Mark
3133 improperly defined user exceptions. Thanks to feedback from Mark
3128 Russell <mrussell-AT-verio.net>.
3134 Russell <mrussell-AT-verio.net>.
3129
3135
3130 2003-08-20 Fernando Perez <fperez@colorado.edu>
3136 2003-08-20 Fernando Perez <fperez@colorado.edu>
3131
3137
3132 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3138 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3133 printing so that it would print multi-line string forms starting
3139 printing so that it would print multi-line string forms starting
3134 with a new line. This way the formatting is better respected for
3140 with a new line. This way the formatting is better respected for
3135 objects which work hard to make nice string forms.
3141 objects which work hard to make nice string forms.
3136
3142
3137 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3143 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3138 autocall would overtake data access for objects with both
3144 autocall would overtake data access for objects with both
3139 __getitem__ and __call__.
3145 __getitem__ and __call__.
3140
3146
3141 2003-08-19 *** Released version 0.5.0-rc1
3147 2003-08-19 *** Released version 0.5.0-rc1
3142
3148
3143 2003-08-19 Fernando Perez <fperez@colorado.edu>
3149 2003-08-19 Fernando Perez <fperez@colorado.edu>
3144
3150
3145 * IPython/deep_reload.py (load_tail): single tiny change here
3151 * IPython/deep_reload.py (load_tail): single tiny change here
3146 seems to fix the long-standing bug of dreload() failing to work
3152 seems to fix the long-standing bug of dreload() failing to work
3147 for dotted names. But this module is pretty tricky, so I may have
3153 for dotted names. But this module is pretty tricky, so I may have
3148 missed some subtlety. Needs more testing!.
3154 missed some subtlety. Needs more testing!.
3149
3155
3150 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3156 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3151 exceptions which have badly implemented __str__ methods.
3157 exceptions which have badly implemented __str__ methods.
3152 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3158 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3153 which I've been getting reports about from Python 2.3 users. I
3159 which I've been getting reports about from Python 2.3 users. I
3154 wish I had a simple test case to reproduce the problem, so I could
3160 wish I had a simple test case to reproduce the problem, so I could
3155 either write a cleaner workaround or file a bug report if
3161 either write a cleaner workaround or file a bug report if
3156 necessary.
3162 necessary.
3157
3163
3158 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3164 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3159 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3165 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3160 a bug report by Tjabo Kloppenburg.
3166 a bug report by Tjabo Kloppenburg.
3161
3167
3162 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3168 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3163 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3169 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3164 seems rather unstable. Thanks to a bug report by Tjabo
3170 seems rather unstable. Thanks to a bug report by Tjabo
3165 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3171 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3166
3172
3167 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3173 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3168 this out soon because of the critical fixes in the inner loop for
3174 this out soon because of the critical fixes in the inner loop for
3169 generators.
3175 generators.
3170
3176
3171 * IPython/Magic.py (Magic.getargspec): removed. This (and
3177 * IPython/Magic.py (Magic.getargspec): removed. This (and
3172 _get_def) have been obsoleted by OInspect for a long time, I
3178 _get_def) have been obsoleted by OInspect for a long time, I
3173 hadn't noticed that they were dead code.
3179 hadn't noticed that they were dead code.
3174 (Magic._ofind): restored _ofind functionality for a few literals
3180 (Magic._ofind): restored _ofind functionality for a few literals
3175 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3181 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3176 for things like "hello".capitalize?, since that would require a
3182 for things like "hello".capitalize?, since that would require a
3177 potentially dangerous eval() again.
3183 potentially dangerous eval() again.
3178
3184
3179 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3185 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3180 logic a bit more to clean up the escapes handling and minimize the
3186 logic a bit more to clean up the escapes handling and minimize the
3181 use of _ofind to only necessary cases. The interactive 'feel' of
3187 use of _ofind to only necessary cases. The interactive 'feel' of
3182 IPython should have improved quite a bit with the changes in
3188 IPython should have improved quite a bit with the changes in
3183 _prefilter and _ofind (besides being far safer than before).
3189 _prefilter and _ofind (besides being far safer than before).
3184
3190
3185 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3191 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3186 obscure, never reported). Edit would fail to find the object to
3192 obscure, never reported). Edit would fail to find the object to
3187 edit under some circumstances.
3193 edit under some circumstances.
3188 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3194 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3189 which were causing double-calling of generators. Those eval calls
3195 which were causing double-calling of generators. Those eval calls
3190 were _very_ dangerous, since code with side effects could be
3196 were _very_ dangerous, since code with side effects could be
3191 triggered. As they say, 'eval is evil'... These were the
3197 triggered. As they say, 'eval is evil'... These were the
3192 nastiest evals in IPython. Besides, _ofind is now far simpler,
3198 nastiest evals in IPython. Besides, _ofind is now far simpler,
3193 and it should also be quite a bit faster. Its use of inspect is
3199 and it should also be quite a bit faster. Its use of inspect is
3194 also safer, so perhaps some of the inspect-related crashes I've
3200 also safer, so perhaps some of the inspect-related crashes I've
3195 seen lately with Python 2.3 might be taken care of. That will
3201 seen lately with Python 2.3 might be taken care of. That will
3196 need more testing.
3202 need more testing.
3197
3203
3198 2003-08-17 Fernando Perez <fperez@colorado.edu>
3204 2003-08-17 Fernando Perez <fperez@colorado.edu>
3199
3205
3200 * IPython/iplib.py (InteractiveShell._prefilter): significant
3206 * IPython/iplib.py (InteractiveShell._prefilter): significant
3201 simplifications to the logic for handling user escapes. Faster
3207 simplifications to the logic for handling user escapes. Faster
3202 and simpler code.
3208 and simpler code.
3203
3209
3204 2003-08-14 Fernando Perez <fperez@colorado.edu>
3210 2003-08-14 Fernando Perez <fperez@colorado.edu>
3205
3211
3206 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3212 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3207 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3213 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3208 but it should be quite a bit faster. And the recursive version
3214 but it should be quite a bit faster. And the recursive version
3209 generated O(log N) intermediate storage for all rank>1 arrays,
3215 generated O(log N) intermediate storage for all rank>1 arrays,
3210 even if they were contiguous.
3216 even if they were contiguous.
3211 (l1norm): Added this function.
3217 (l1norm): Added this function.
3212 (norm): Added this function for arbitrary norms (including
3218 (norm): Added this function for arbitrary norms (including
3213 l-infinity). l1 and l2 are still special cases for convenience
3219 l-infinity). l1 and l2 are still special cases for convenience
3214 and speed.
3220 and speed.
3215
3221
3216 2003-08-03 Fernando Perez <fperez@colorado.edu>
3222 2003-08-03 Fernando Perez <fperez@colorado.edu>
3217
3223
3218 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3224 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3219 exceptions, which now raise PendingDeprecationWarnings in Python
3225 exceptions, which now raise PendingDeprecationWarnings in Python
3220 2.3. There were some in Magic and some in Gnuplot2.
3226 2.3. There were some in Magic and some in Gnuplot2.
3221
3227
3222 2003-06-30 Fernando Perez <fperez@colorado.edu>
3228 2003-06-30 Fernando Perez <fperez@colorado.edu>
3223
3229
3224 * IPython/genutils.py (page): modified to call curses only for
3230 * IPython/genutils.py (page): modified to call curses only for
3225 terminals where TERM=='xterm'. After problems under many other
3231 terminals where TERM=='xterm'. After problems under many other
3226 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3232 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3227
3233
3228 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3234 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3229 would be triggered when readline was absent. This was just an old
3235 would be triggered when readline was absent. This was just an old
3230 debugging statement I'd forgotten to take out.
3236 debugging statement I'd forgotten to take out.
3231
3237
3232 2003-06-20 Fernando Perez <fperez@colorado.edu>
3238 2003-06-20 Fernando Perez <fperez@colorado.edu>
3233
3239
3234 * IPython/genutils.py (clock): modified to return only user time
3240 * IPython/genutils.py (clock): modified to return only user time
3235 (not counting system time), after a discussion on scipy. While
3241 (not counting system time), after a discussion on scipy. While
3236 system time may be a useful quantity occasionally, it may much
3242 system time may be a useful quantity occasionally, it may much
3237 more easily be skewed by occasional swapping or other similar
3243 more easily be skewed by occasional swapping or other similar
3238 activity.
3244 activity.
3239
3245
3240 2003-06-05 Fernando Perez <fperez@colorado.edu>
3246 2003-06-05 Fernando Perez <fperez@colorado.edu>
3241
3247
3242 * IPython/numutils.py (identity): new function, for building
3248 * IPython/numutils.py (identity): new function, for building
3243 arbitrary rank Kronecker deltas (mostly backwards compatible with
3249 arbitrary rank Kronecker deltas (mostly backwards compatible with
3244 Numeric.identity)
3250 Numeric.identity)
3245
3251
3246 2003-06-03 Fernando Perez <fperez@colorado.edu>
3252 2003-06-03 Fernando Perez <fperez@colorado.edu>
3247
3253
3248 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3254 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3249 arguments passed to magics with spaces, to allow trailing '\' to
3255 arguments passed to magics with spaces, to allow trailing '\' to
3250 work normally (mainly for Windows users).
3256 work normally (mainly for Windows users).
3251
3257
3252 2003-05-29 Fernando Perez <fperez@colorado.edu>
3258 2003-05-29 Fernando Perez <fperez@colorado.edu>
3253
3259
3254 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3260 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3255 instead of pydoc.help. This fixes a bizarre behavior where
3261 instead of pydoc.help. This fixes a bizarre behavior where
3256 printing '%s' % locals() would trigger the help system. Now
3262 printing '%s' % locals() would trigger the help system. Now
3257 ipython behaves like normal python does.
3263 ipython behaves like normal python does.
3258
3264
3259 Note that if one does 'from pydoc import help', the bizarre
3265 Note that if one does 'from pydoc import help', the bizarre
3260 behavior returns, but this will also happen in normal python, so
3266 behavior returns, but this will also happen in normal python, so
3261 it's not an ipython bug anymore (it has to do with how pydoc.help
3267 it's not an ipython bug anymore (it has to do with how pydoc.help
3262 is implemented).
3268 is implemented).
3263
3269
3264 2003-05-22 Fernando Perez <fperez@colorado.edu>
3270 2003-05-22 Fernando Perez <fperez@colorado.edu>
3265
3271
3266 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3272 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3267 return [] instead of None when nothing matches, also match to end
3273 return [] instead of None when nothing matches, also match to end
3268 of line. Patch by Gary Bishop.
3274 of line. Patch by Gary Bishop.
3269
3275
3270 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3276 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3271 protection as before, for files passed on the command line. This
3277 protection as before, for files passed on the command line. This
3272 prevents the CrashHandler from kicking in if user files call into
3278 prevents the CrashHandler from kicking in if user files call into
3273 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3279 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3274 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3280 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3275
3281
3276 2003-05-20 *** Released version 0.4.0
3282 2003-05-20 *** Released version 0.4.0
3277
3283
3278 2003-05-20 Fernando Perez <fperez@colorado.edu>
3284 2003-05-20 Fernando Perez <fperez@colorado.edu>
3279
3285
3280 * setup.py: added support for manpages. It's a bit hackish b/c of
3286 * setup.py: added support for manpages. It's a bit hackish b/c of
3281 a bug in the way the bdist_rpm distutils target handles gzipped
3287 a bug in the way the bdist_rpm distutils target handles gzipped
3282 manpages, but it works. After a patch by Jack.
3288 manpages, but it works. After a patch by Jack.
3283
3289
3284 2003-05-19 Fernando Perez <fperez@colorado.edu>
3290 2003-05-19 Fernando Perez <fperez@colorado.edu>
3285
3291
3286 * IPython/numutils.py: added a mockup of the kinds module, since
3292 * IPython/numutils.py: added a mockup of the kinds module, since
3287 it was recently removed from Numeric. This way, numutils will
3293 it was recently removed from Numeric. This way, numutils will
3288 work for all users even if they are missing kinds.
3294 work for all users even if they are missing kinds.
3289
3295
3290 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3296 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3291 failure, which can occur with SWIG-wrapped extensions. After a
3297 failure, which can occur with SWIG-wrapped extensions. After a
3292 crash report from Prabhu.
3298 crash report from Prabhu.
3293
3299
3294 2003-05-16 Fernando Perez <fperez@colorado.edu>
3300 2003-05-16 Fernando Perez <fperez@colorado.edu>
3295
3301
3296 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3302 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3297 protect ipython from user code which may call directly
3303 protect ipython from user code which may call directly
3298 sys.excepthook (this looks like an ipython crash to the user, even
3304 sys.excepthook (this looks like an ipython crash to the user, even
3299 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3305 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3300 This is especially important to help users of WxWindows, but may
3306 This is especially important to help users of WxWindows, but may
3301 also be useful in other cases.
3307 also be useful in other cases.
3302
3308
3303 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3309 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3304 an optional tb_offset to be specified, and to preserve exception
3310 an optional tb_offset to be specified, and to preserve exception
3305 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3311 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3306
3312
3307 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3313 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3308
3314
3309 2003-05-15 Fernando Perez <fperez@colorado.edu>
3315 2003-05-15 Fernando Perez <fperez@colorado.edu>
3310
3316
3311 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3317 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3312 installing for a new user under Windows.
3318 installing for a new user under Windows.
3313
3319
3314 2003-05-12 Fernando Perez <fperez@colorado.edu>
3320 2003-05-12 Fernando Perez <fperez@colorado.edu>
3315
3321
3316 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3322 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3317 handler for Emacs comint-based lines. Currently it doesn't do
3323 handler for Emacs comint-based lines. Currently it doesn't do
3318 much (but importantly, it doesn't update the history cache). In
3324 much (but importantly, it doesn't update the history cache). In
3319 the future it may be expanded if Alex needs more functionality
3325 the future it may be expanded if Alex needs more functionality
3320 there.
3326 there.
3321
3327
3322 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3328 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3323 info to crash reports.
3329 info to crash reports.
3324
3330
3325 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3331 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3326 just like Python's -c. Also fixed crash with invalid -color
3332 just like Python's -c. Also fixed crash with invalid -color
3327 option value at startup. Thanks to Will French
3333 option value at startup. Thanks to Will French
3328 <wfrench-AT-bestweb.net> for the bug report.
3334 <wfrench-AT-bestweb.net> for the bug report.
3329
3335
3330 2003-05-09 Fernando Perez <fperez@colorado.edu>
3336 2003-05-09 Fernando Perez <fperez@colorado.edu>
3331
3337
3332 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3338 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3333 to EvalDict (it's a mapping, after all) and simplified its code
3339 to EvalDict (it's a mapping, after all) and simplified its code
3334 quite a bit, after a nice discussion on c.l.py where Gustavo
3340 quite a bit, after a nice discussion on c.l.py where Gustavo
3335 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3341 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3336
3342
3337 2003-04-30 Fernando Perez <fperez@colorado.edu>
3343 2003-04-30 Fernando Perez <fperez@colorado.edu>
3338
3344
3339 * IPython/genutils.py (timings_out): modified it to reduce its
3345 * IPython/genutils.py (timings_out): modified it to reduce its
3340 overhead in the common reps==1 case.
3346 overhead in the common reps==1 case.
3341
3347
3342 2003-04-29 Fernando Perez <fperez@colorado.edu>
3348 2003-04-29 Fernando Perez <fperez@colorado.edu>
3343
3349
3344 * IPython/genutils.py (timings_out): Modified to use the resource
3350 * IPython/genutils.py (timings_out): Modified to use the resource
3345 module, which avoids the wraparound problems of time.clock().
3351 module, which avoids the wraparound problems of time.clock().
3346
3352
3347 2003-04-17 *** Released version 0.2.15pre4
3353 2003-04-17 *** Released version 0.2.15pre4
3348
3354
3349 2003-04-17 Fernando Perez <fperez@colorado.edu>
3355 2003-04-17 Fernando Perez <fperez@colorado.edu>
3350
3356
3351 * setup.py (scriptfiles): Split windows-specific stuff over to a
3357 * setup.py (scriptfiles): Split windows-specific stuff over to a
3352 separate file, in an attempt to have a Windows GUI installer.
3358 separate file, in an attempt to have a Windows GUI installer.
3353 That didn't work, but part of the groundwork is done.
3359 That didn't work, but part of the groundwork is done.
3354
3360
3355 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3361 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3356 indent/unindent with 4 spaces. Particularly useful in combination
3362 indent/unindent with 4 spaces. Particularly useful in combination
3357 with the new auto-indent option.
3363 with the new auto-indent option.
3358
3364
3359 2003-04-16 Fernando Perez <fperez@colorado.edu>
3365 2003-04-16 Fernando Perez <fperez@colorado.edu>
3360
3366
3361 * IPython/Magic.py: various replacements of self.rc for
3367 * IPython/Magic.py: various replacements of self.rc for
3362 self.shell.rc. A lot more remains to be done to fully disentangle
3368 self.shell.rc. A lot more remains to be done to fully disentangle
3363 this class from the main Shell class.
3369 this class from the main Shell class.
3364
3370
3365 * IPython/GnuplotRuntime.py: added checks for mouse support so
3371 * IPython/GnuplotRuntime.py: added checks for mouse support so
3366 that we don't try to enable it if the current gnuplot doesn't
3372 that we don't try to enable it if the current gnuplot doesn't
3367 really support it. Also added checks so that we don't try to
3373 really support it. Also added checks so that we don't try to
3368 enable persist under Windows (where Gnuplot doesn't recognize the
3374 enable persist under Windows (where Gnuplot doesn't recognize the
3369 option).
3375 option).
3370
3376
3371 * IPython/iplib.py (InteractiveShell.interact): Added optional
3377 * IPython/iplib.py (InteractiveShell.interact): Added optional
3372 auto-indenting code, after a patch by King C. Shu
3378 auto-indenting code, after a patch by King C. Shu
3373 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3379 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3374 get along well with pasting indented code. If I ever figure out
3380 get along well with pasting indented code. If I ever figure out
3375 how to make that part go well, it will become on by default.
3381 how to make that part go well, it will become on by default.
3376
3382
3377 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3383 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3378 crash ipython if there was an unmatched '%' in the user's prompt
3384 crash ipython if there was an unmatched '%' in the user's prompt
3379 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3385 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3380
3386
3381 * IPython/iplib.py (InteractiveShell.interact): removed the
3387 * IPython/iplib.py (InteractiveShell.interact): removed the
3382 ability to ask the user whether he wants to crash or not at the
3388 ability to ask the user whether he wants to crash or not at the
3383 'last line' exception handler. Calling functions at that point
3389 'last line' exception handler. Calling functions at that point
3384 changes the stack, and the error reports would have incorrect
3390 changes the stack, and the error reports would have incorrect
3385 tracebacks.
3391 tracebacks.
3386
3392
3387 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3393 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3388 pass through a peger a pretty-printed form of any object. After a
3394 pass through a peger a pretty-printed form of any object. After a
3389 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3395 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3390
3396
3391 2003-04-14 Fernando Perez <fperez@colorado.edu>
3397 2003-04-14 Fernando Perez <fperez@colorado.edu>
3392
3398
3393 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3399 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3394 all files in ~ would be modified at first install (instead of
3400 all files in ~ would be modified at first install (instead of
3395 ~/.ipython). This could be potentially disastrous, as the
3401 ~/.ipython). This could be potentially disastrous, as the
3396 modification (make line-endings native) could damage binary files.
3402 modification (make line-endings native) could damage binary files.
3397
3403
3398 2003-04-10 Fernando Perez <fperez@colorado.edu>
3404 2003-04-10 Fernando Perez <fperez@colorado.edu>
3399
3405
3400 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3406 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3401 handle only lines which are invalid python. This now means that
3407 handle only lines which are invalid python. This now means that
3402 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3408 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3403 for the bug report.
3409 for the bug report.
3404
3410
3405 2003-04-01 Fernando Perez <fperez@colorado.edu>
3411 2003-04-01 Fernando Perez <fperez@colorado.edu>
3406
3412
3407 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3413 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3408 where failing to set sys.last_traceback would crash pdb.pm().
3414 where failing to set sys.last_traceback would crash pdb.pm().
3409 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3415 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3410 report.
3416 report.
3411
3417
3412 2003-03-25 Fernando Perez <fperez@colorado.edu>
3418 2003-03-25 Fernando Perez <fperez@colorado.edu>
3413
3419
3414 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3420 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3415 before printing it (it had a lot of spurious blank lines at the
3421 before printing it (it had a lot of spurious blank lines at the
3416 end).
3422 end).
3417
3423
3418 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3424 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3419 output would be sent 21 times! Obviously people don't use this
3425 output would be sent 21 times! Obviously people don't use this
3420 too often, or I would have heard about it.
3426 too often, or I would have heard about it.
3421
3427
3422 2003-03-24 Fernando Perez <fperez@colorado.edu>
3428 2003-03-24 Fernando Perez <fperez@colorado.edu>
3423
3429
3424 * setup.py (scriptfiles): renamed the data_files parameter from
3430 * setup.py (scriptfiles): renamed the data_files parameter from
3425 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3431 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3426 for the patch.
3432 for the patch.
3427
3433
3428 2003-03-20 Fernando Perez <fperez@colorado.edu>
3434 2003-03-20 Fernando Perez <fperez@colorado.edu>
3429
3435
3430 * IPython/genutils.py (error): added error() and fatal()
3436 * IPython/genutils.py (error): added error() and fatal()
3431 functions.
3437 functions.
3432
3438
3433 2003-03-18 *** Released version 0.2.15pre3
3439 2003-03-18 *** Released version 0.2.15pre3
3434
3440
3435 2003-03-18 Fernando Perez <fperez@colorado.edu>
3441 2003-03-18 Fernando Perez <fperez@colorado.edu>
3436
3442
3437 * setupext/install_data_ext.py
3443 * setupext/install_data_ext.py
3438 (install_data_ext.initialize_options): Class contributed by Jack
3444 (install_data_ext.initialize_options): Class contributed by Jack
3439 Moffit for fixing the old distutils hack. He is sending this to
3445 Moffit for fixing the old distutils hack. He is sending this to
3440 the distutils folks so in the future we may not need it as a
3446 the distutils folks so in the future we may not need it as a
3441 private fix.
3447 private fix.
3442
3448
3443 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3449 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3444 changes for Debian packaging. See his patch for full details.
3450 changes for Debian packaging. See his patch for full details.
3445 The old distutils hack of making the ipythonrc* files carry a
3451 The old distutils hack of making the ipythonrc* files carry a
3446 bogus .py extension is gone, at last. Examples were moved to a
3452 bogus .py extension is gone, at last. Examples were moved to a
3447 separate subdir under doc/, and the separate executable scripts
3453 separate subdir under doc/, and the separate executable scripts
3448 now live in their own directory. Overall a great cleanup. The
3454 now live in their own directory. Overall a great cleanup. The
3449 manual was updated to use the new files, and setup.py has been
3455 manual was updated to use the new files, and setup.py has been
3450 fixed for this setup.
3456 fixed for this setup.
3451
3457
3452 * IPython/PyColorize.py (Parser.usage): made non-executable and
3458 * IPython/PyColorize.py (Parser.usage): made non-executable and
3453 created a pycolor wrapper around it to be included as a script.
3459 created a pycolor wrapper around it to be included as a script.
3454
3460
3455 2003-03-12 *** Released version 0.2.15pre2
3461 2003-03-12 *** Released version 0.2.15pre2
3456
3462
3457 2003-03-12 Fernando Perez <fperez@colorado.edu>
3463 2003-03-12 Fernando Perez <fperez@colorado.edu>
3458
3464
3459 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3465 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3460 long-standing problem with garbage characters in some terminals.
3466 long-standing problem with garbage characters in some terminals.
3461 The issue was really that the \001 and \002 escapes must _only_ be
3467 The issue was really that the \001 and \002 escapes must _only_ be
3462 passed to input prompts (which call readline), but _never_ to
3468 passed to input prompts (which call readline), but _never_ to
3463 normal text to be printed on screen. I changed ColorANSI to have
3469 normal text to be printed on screen. I changed ColorANSI to have
3464 two classes: TermColors and InputTermColors, each with the
3470 two classes: TermColors and InputTermColors, each with the
3465 appropriate escapes for input prompts or normal text. The code in
3471 appropriate escapes for input prompts or normal text. The code in
3466 Prompts.py got slightly more complicated, but this very old and
3472 Prompts.py got slightly more complicated, but this very old and
3467 annoying bug is finally fixed.
3473 annoying bug is finally fixed.
3468
3474
3469 All the credit for nailing down the real origin of this problem
3475 All the credit for nailing down the real origin of this problem
3470 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3476 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3471 *Many* thanks to him for spending quite a bit of effort on this.
3477 *Many* thanks to him for spending quite a bit of effort on this.
3472
3478
3473 2003-03-05 *** Released version 0.2.15pre1
3479 2003-03-05 *** Released version 0.2.15pre1
3474
3480
3475 2003-03-03 Fernando Perez <fperez@colorado.edu>
3481 2003-03-03 Fernando Perez <fperez@colorado.edu>
3476
3482
3477 * IPython/FakeModule.py: Moved the former _FakeModule to a
3483 * IPython/FakeModule.py: Moved the former _FakeModule to a
3478 separate file, because it's also needed by Magic (to fix a similar
3484 separate file, because it's also needed by Magic (to fix a similar
3479 pickle-related issue in @run).
3485 pickle-related issue in @run).
3480
3486
3481 2003-03-02 Fernando Perez <fperez@colorado.edu>
3487 2003-03-02 Fernando Perez <fperez@colorado.edu>
3482
3488
3483 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3489 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3484 the autocall option at runtime.
3490 the autocall option at runtime.
3485 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3491 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3486 across Magic.py to start separating Magic from InteractiveShell.
3492 across Magic.py to start separating Magic from InteractiveShell.
3487 (Magic._ofind): Fixed to return proper namespace for dotted
3493 (Magic._ofind): Fixed to return proper namespace for dotted
3488 names. Before, a dotted name would always return 'not currently
3494 names. Before, a dotted name would always return 'not currently
3489 defined', because it would find the 'parent'. s.x would be found,
3495 defined', because it would find the 'parent'. s.x would be found,
3490 but since 'x' isn't defined by itself, it would get confused.
3496 but since 'x' isn't defined by itself, it would get confused.
3491 (Magic.magic_run): Fixed pickling problems reported by Ralf
3497 (Magic.magic_run): Fixed pickling problems reported by Ralf
3492 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3498 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3493 that I'd used when Mike Heeter reported similar issues at the
3499 that I'd used when Mike Heeter reported similar issues at the
3494 top-level, but now for @run. It boils down to injecting the
3500 top-level, but now for @run. It boils down to injecting the
3495 namespace where code is being executed with something that looks
3501 namespace where code is being executed with something that looks
3496 enough like a module to fool pickle.dump(). Since a pickle stores
3502 enough like a module to fool pickle.dump(). Since a pickle stores
3497 a named reference to the importing module, we need this for
3503 a named reference to the importing module, we need this for
3498 pickles to save something sensible.
3504 pickles to save something sensible.
3499
3505
3500 * IPython/ipmaker.py (make_IPython): added an autocall option.
3506 * IPython/ipmaker.py (make_IPython): added an autocall option.
3501
3507
3502 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3508 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3503 the auto-eval code. Now autocalling is an option, and the code is
3509 the auto-eval code. Now autocalling is an option, and the code is
3504 also vastly safer. There is no more eval() involved at all.
3510 also vastly safer. There is no more eval() involved at all.
3505
3511
3506 2003-03-01 Fernando Perez <fperez@colorado.edu>
3512 2003-03-01 Fernando Perez <fperez@colorado.edu>
3507
3513
3508 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3514 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3509 dict with named keys instead of a tuple.
3515 dict with named keys instead of a tuple.
3510
3516
3511 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3517 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3512
3518
3513 * setup.py (make_shortcut): Fixed message about directories
3519 * setup.py (make_shortcut): Fixed message about directories
3514 created during Windows installation (the directories were ok, just
3520 created during Windows installation (the directories were ok, just
3515 the printed message was misleading). Thanks to Chris Liechti
3521 the printed message was misleading). Thanks to Chris Liechti
3516 <cliechti-AT-gmx.net> for the heads up.
3522 <cliechti-AT-gmx.net> for the heads up.
3517
3523
3518 2003-02-21 Fernando Perez <fperez@colorado.edu>
3524 2003-02-21 Fernando Perez <fperez@colorado.edu>
3519
3525
3520 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3526 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3521 of ValueError exception when checking for auto-execution. This
3527 of ValueError exception when checking for auto-execution. This
3522 one is raised by things like Numeric arrays arr.flat when the
3528 one is raised by things like Numeric arrays arr.flat when the
3523 array is non-contiguous.
3529 array is non-contiguous.
3524
3530
3525 2003-01-31 Fernando Perez <fperez@colorado.edu>
3531 2003-01-31 Fernando Perez <fperez@colorado.edu>
3526
3532
3527 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3533 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3528 not return any value at all (even though the command would get
3534 not return any value at all (even though the command would get
3529 executed).
3535 executed).
3530 (xsys): Flush stdout right after printing the command to ensure
3536 (xsys): Flush stdout right after printing the command to ensure
3531 proper ordering of commands and command output in the total
3537 proper ordering of commands and command output in the total
3532 output.
3538 output.
3533 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3539 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3534 system/getoutput as defaults. The old ones are kept for
3540 system/getoutput as defaults. The old ones are kept for
3535 compatibility reasons, so no code which uses this library needs
3541 compatibility reasons, so no code which uses this library needs
3536 changing.
3542 changing.
3537
3543
3538 2003-01-27 *** Released version 0.2.14
3544 2003-01-27 *** Released version 0.2.14
3539
3545
3540 2003-01-25 Fernando Perez <fperez@colorado.edu>
3546 2003-01-25 Fernando Perez <fperez@colorado.edu>
3541
3547
3542 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3548 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3543 functions defined in previous edit sessions could not be re-edited
3549 functions defined in previous edit sessions could not be re-edited
3544 (because the temp files were immediately removed). Now temp files
3550 (because the temp files were immediately removed). Now temp files
3545 are removed only at IPython's exit.
3551 are removed only at IPython's exit.
3546 (Magic.magic_run): Improved @run to perform shell-like expansions
3552 (Magic.magic_run): Improved @run to perform shell-like expansions
3547 on its arguments (~users and $VARS). With this, @run becomes more
3553 on its arguments (~users and $VARS). With this, @run becomes more
3548 like a normal command-line.
3554 like a normal command-line.
3549
3555
3550 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3556 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3551 bugs related to embedding and cleaned up that code. A fairly
3557 bugs related to embedding and cleaned up that code. A fairly
3552 important one was the impossibility to access the global namespace
3558 important one was the impossibility to access the global namespace
3553 through the embedded IPython (only local variables were visible).
3559 through the embedded IPython (only local variables were visible).
3554
3560
3555 2003-01-14 Fernando Perez <fperez@colorado.edu>
3561 2003-01-14 Fernando Perez <fperez@colorado.edu>
3556
3562
3557 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3563 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3558 auto-calling to be a bit more conservative. Now it doesn't get
3564 auto-calling to be a bit more conservative. Now it doesn't get
3559 triggered if any of '!=()<>' are in the rest of the input line, to
3565 triggered if any of '!=()<>' are in the rest of the input line, to
3560 allow comparing callables. Thanks to Alex for the heads up.
3566 allow comparing callables. Thanks to Alex for the heads up.
3561
3567
3562 2003-01-07 Fernando Perez <fperez@colorado.edu>
3568 2003-01-07 Fernando Perez <fperez@colorado.edu>
3563
3569
3564 * IPython/genutils.py (page): fixed estimation of the number of
3570 * IPython/genutils.py (page): fixed estimation of the number of
3565 lines in a string to be paged to simply count newlines. This
3571 lines in a string to be paged to simply count newlines. This
3566 prevents over-guessing due to embedded escape sequences. A better
3572 prevents over-guessing due to embedded escape sequences. A better
3567 long-term solution would involve stripping out the control chars
3573 long-term solution would involve stripping out the control chars
3568 for the count, but it's potentially so expensive I just don't
3574 for the count, but it's potentially so expensive I just don't
3569 think it's worth doing.
3575 think it's worth doing.
3570
3576
3571 2002-12-19 *** Released version 0.2.14pre50
3577 2002-12-19 *** Released version 0.2.14pre50
3572
3578
3573 2002-12-19 Fernando Perez <fperez@colorado.edu>
3579 2002-12-19 Fernando Perez <fperez@colorado.edu>
3574
3580
3575 * tools/release (version): Changed release scripts to inform
3581 * tools/release (version): Changed release scripts to inform
3576 Andrea and build a NEWS file with a list of recent changes.
3582 Andrea and build a NEWS file with a list of recent changes.
3577
3583
3578 * IPython/ColorANSI.py (__all__): changed terminal detection
3584 * IPython/ColorANSI.py (__all__): changed terminal detection
3579 code. Seems to work better for xterms without breaking
3585 code. Seems to work better for xterms without breaking
3580 konsole. Will need more testing to determine if WinXP and Mac OSX
3586 konsole. Will need more testing to determine if WinXP and Mac OSX
3581 also work ok.
3587 also work ok.
3582
3588
3583 2002-12-18 *** Released version 0.2.14pre49
3589 2002-12-18 *** Released version 0.2.14pre49
3584
3590
3585 2002-12-18 Fernando Perez <fperez@colorado.edu>
3591 2002-12-18 Fernando Perez <fperez@colorado.edu>
3586
3592
3587 * Docs: added new info about Mac OSX, from Andrea.
3593 * Docs: added new info about Mac OSX, from Andrea.
3588
3594
3589 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3595 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3590 allow direct plotting of python strings whose format is the same
3596 allow direct plotting of python strings whose format is the same
3591 of gnuplot data files.
3597 of gnuplot data files.
3592
3598
3593 2002-12-16 Fernando Perez <fperez@colorado.edu>
3599 2002-12-16 Fernando Perez <fperez@colorado.edu>
3594
3600
3595 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3601 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3596 value of exit question to be acknowledged.
3602 value of exit question to be acknowledged.
3597
3603
3598 2002-12-03 Fernando Perez <fperez@colorado.edu>
3604 2002-12-03 Fernando Perez <fperez@colorado.edu>
3599
3605
3600 * IPython/ipmaker.py: removed generators, which had been added
3606 * IPython/ipmaker.py: removed generators, which had been added
3601 by mistake in an earlier debugging run. This was causing trouble
3607 by mistake in an earlier debugging run. This was causing trouble
3602 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3608 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3603 for pointing this out.
3609 for pointing this out.
3604
3610
3605 2002-11-17 Fernando Perez <fperez@colorado.edu>
3611 2002-11-17 Fernando Perez <fperez@colorado.edu>
3606
3612
3607 * Manual: updated the Gnuplot section.
3613 * Manual: updated the Gnuplot section.
3608
3614
3609 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3615 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3610 a much better split of what goes in Runtime and what goes in
3616 a much better split of what goes in Runtime and what goes in
3611 Interactive.
3617 Interactive.
3612
3618
3613 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3619 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3614 being imported from iplib.
3620 being imported from iplib.
3615
3621
3616 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3622 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3617 for command-passing. Now the global Gnuplot instance is called
3623 for command-passing. Now the global Gnuplot instance is called
3618 'gp' instead of 'g', which was really a far too fragile and
3624 'gp' instead of 'g', which was really a far too fragile and
3619 common name.
3625 common name.
3620
3626
3621 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3627 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3622 bounding boxes generated by Gnuplot for square plots.
3628 bounding boxes generated by Gnuplot for square plots.
3623
3629
3624 * IPython/genutils.py (popkey): new function added. I should
3630 * IPython/genutils.py (popkey): new function added. I should
3625 suggest this on c.l.py as a dict method, it seems useful.
3631 suggest this on c.l.py as a dict method, it seems useful.
3626
3632
3627 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3633 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3628 to transparently handle PostScript generation. MUCH better than
3634 to transparently handle PostScript generation. MUCH better than
3629 the previous plot_eps/replot_eps (which I removed now). The code
3635 the previous plot_eps/replot_eps (which I removed now). The code
3630 is also fairly clean and well documented now (including
3636 is also fairly clean and well documented now (including
3631 docstrings).
3637 docstrings).
3632
3638
3633 2002-11-13 Fernando Perez <fperez@colorado.edu>
3639 2002-11-13 Fernando Perez <fperez@colorado.edu>
3634
3640
3635 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3641 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3636 (inconsistent with options).
3642 (inconsistent with options).
3637
3643
3638 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3644 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3639 manually disabled, I don't know why. Fixed it.
3645 manually disabled, I don't know why. Fixed it.
3640 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3646 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3641 eps output.
3647 eps output.
3642
3648
3643 2002-11-12 Fernando Perez <fperez@colorado.edu>
3649 2002-11-12 Fernando Perez <fperez@colorado.edu>
3644
3650
3645 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3651 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3646 don't propagate up to caller. Fixes crash reported by François
3652 don't propagate up to caller. Fixes crash reported by François
3647 Pinard.
3653 Pinard.
3648
3654
3649 2002-11-09 Fernando Perez <fperez@colorado.edu>
3655 2002-11-09 Fernando Perez <fperez@colorado.edu>
3650
3656
3651 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3657 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3652 history file for new users.
3658 history file for new users.
3653 (make_IPython): fixed bug where initial install would leave the
3659 (make_IPython): fixed bug where initial install would leave the
3654 user running in the .ipython dir.
3660 user running in the .ipython dir.
3655 (make_IPython): fixed bug where config dir .ipython would be
3661 (make_IPython): fixed bug where config dir .ipython would be
3656 created regardless of the given -ipythondir option. Thanks to Cory
3662 created regardless of the given -ipythondir option. Thanks to Cory
3657 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3663 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3658
3664
3659 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3665 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3660 type confirmations. Will need to use it in all of IPython's code
3666 type confirmations. Will need to use it in all of IPython's code
3661 consistently.
3667 consistently.
3662
3668
3663 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3669 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3664 context to print 31 lines instead of the default 5. This will make
3670 context to print 31 lines instead of the default 5. This will make
3665 the crash reports extremely detailed in case the problem is in
3671 the crash reports extremely detailed in case the problem is in
3666 libraries I don't have access to.
3672 libraries I don't have access to.
3667
3673
3668 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3674 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3669 line of defense' code to still crash, but giving users fair
3675 line of defense' code to still crash, but giving users fair
3670 warning. I don't want internal errors to go unreported: if there's
3676 warning. I don't want internal errors to go unreported: if there's
3671 an internal problem, IPython should crash and generate a full
3677 an internal problem, IPython should crash and generate a full
3672 report.
3678 report.
3673
3679
3674 2002-11-08 Fernando Perez <fperez@colorado.edu>
3680 2002-11-08 Fernando Perez <fperez@colorado.edu>
3675
3681
3676 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3682 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3677 otherwise uncaught exceptions which can appear if people set
3683 otherwise uncaught exceptions which can appear if people set
3678 sys.stdout to something badly broken. Thanks to a crash report
3684 sys.stdout to something badly broken. Thanks to a crash report
3679 from henni-AT-mail.brainbot.com.
3685 from henni-AT-mail.brainbot.com.
3680
3686
3681 2002-11-04 Fernando Perez <fperez@colorado.edu>
3687 2002-11-04 Fernando Perez <fperez@colorado.edu>
3682
3688
3683 * IPython/iplib.py (InteractiveShell.interact): added
3689 * IPython/iplib.py (InteractiveShell.interact): added
3684 __IPYTHON__active to the builtins. It's a flag which goes on when
3690 __IPYTHON__active to the builtins. It's a flag which goes on when
3685 the interaction starts and goes off again when it stops. This
3691 the interaction starts and goes off again when it stops. This
3686 allows embedding code to detect being inside IPython. Before this
3692 allows embedding code to detect being inside IPython. Before this
3687 was done via __IPYTHON__, but that only shows that an IPython
3693 was done via __IPYTHON__, but that only shows that an IPython
3688 instance has been created.
3694 instance has been created.
3689
3695
3690 * IPython/Magic.py (Magic.magic_env): I realized that in a
3696 * IPython/Magic.py (Magic.magic_env): I realized that in a
3691 UserDict, instance.data holds the data as a normal dict. So I
3697 UserDict, instance.data holds the data as a normal dict. So I
3692 modified @env to return os.environ.data instead of rebuilding a
3698 modified @env to return os.environ.data instead of rebuilding a
3693 dict by hand.
3699 dict by hand.
3694
3700
3695 2002-11-02 Fernando Perez <fperez@colorado.edu>
3701 2002-11-02 Fernando Perez <fperez@colorado.edu>
3696
3702
3697 * IPython/genutils.py (warn): changed so that level 1 prints no
3703 * IPython/genutils.py (warn): changed so that level 1 prints no
3698 header. Level 2 is now the default (with 'WARNING' header, as
3704 header. Level 2 is now the default (with 'WARNING' header, as
3699 before). I think I tracked all places where changes were needed in
3705 before). I think I tracked all places where changes were needed in
3700 IPython, but outside code using the old level numbering may have
3706 IPython, but outside code using the old level numbering may have
3701 broken.
3707 broken.
3702
3708
3703 * IPython/iplib.py (InteractiveShell.runcode): added this to
3709 * IPython/iplib.py (InteractiveShell.runcode): added this to
3704 handle the tracebacks in SystemExit traps correctly. The previous
3710 handle the tracebacks in SystemExit traps correctly. The previous
3705 code (through interact) was printing more of the stack than
3711 code (through interact) was printing more of the stack than
3706 necessary, showing IPython internal code to the user.
3712 necessary, showing IPython internal code to the user.
3707
3713
3708 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3714 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3709 default. Now that the default at the confirmation prompt is yes,
3715 default. Now that the default at the confirmation prompt is yes,
3710 it's not so intrusive. François' argument that ipython sessions
3716 it's not so intrusive. François' argument that ipython sessions
3711 tend to be complex enough not to lose them from an accidental C-d,
3717 tend to be complex enough not to lose them from an accidental C-d,
3712 is a valid one.
3718 is a valid one.
3713
3719
3714 * IPython/iplib.py (InteractiveShell.interact): added a
3720 * IPython/iplib.py (InteractiveShell.interact): added a
3715 showtraceback() call to the SystemExit trap, and modified the exit
3721 showtraceback() call to the SystemExit trap, and modified the exit
3716 confirmation to have yes as the default.
3722 confirmation to have yes as the default.
3717
3723
3718 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3724 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3719 this file. It's been gone from the code for a long time, this was
3725 this file. It's been gone from the code for a long time, this was
3720 simply leftover junk.
3726 simply leftover junk.
3721
3727
3722 2002-11-01 Fernando Perez <fperez@colorado.edu>
3728 2002-11-01 Fernando Perez <fperez@colorado.edu>
3723
3729
3724 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3730 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3725 added. If set, IPython now traps EOF and asks for
3731 added. If set, IPython now traps EOF and asks for
3726 confirmation. After a request by François Pinard.
3732 confirmation. After a request by François Pinard.
3727
3733
3728 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3734 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3729 of @abort, and with a new (better) mechanism for handling the
3735 of @abort, and with a new (better) mechanism for handling the
3730 exceptions.
3736 exceptions.
3731
3737
3732 2002-10-27 Fernando Perez <fperez@colorado.edu>
3738 2002-10-27 Fernando Perez <fperez@colorado.edu>
3733
3739
3734 * IPython/usage.py (__doc__): updated the --help information and
3740 * IPython/usage.py (__doc__): updated the --help information and
3735 the ipythonrc file to indicate that -log generates
3741 the ipythonrc file to indicate that -log generates
3736 ./ipython.log. Also fixed the corresponding info in @logstart.
3742 ./ipython.log. Also fixed the corresponding info in @logstart.
3737 This and several other fixes in the manuals thanks to reports by
3743 This and several other fixes in the manuals thanks to reports by
3738 François Pinard <pinard-AT-iro.umontreal.ca>.
3744 François Pinard <pinard-AT-iro.umontreal.ca>.
3739
3745
3740 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3746 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3741 refer to @logstart (instead of @log, which doesn't exist).
3747 refer to @logstart (instead of @log, which doesn't exist).
3742
3748
3743 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3749 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3744 AttributeError crash. Thanks to Christopher Armstrong
3750 AttributeError crash. Thanks to Christopher Armstrong
3745 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3751 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3746 introduced recently (in 0.2.14pre37) with the fix to the eval
3752 introduced recently (in 0.2.14pre37) with the fix to the eval
3747 problem mentioned below.
3753 problem mentioned below.
3748
3754
3749 2002-10-17 Fernando Perez <fperez@colorado.edu>
3755 2002-10-17 Fernando Perez <fperez@colorado.edu>
3750
3756
3751 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3757 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3752 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3758 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3753
3759
3754 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3760 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3755 this function to fix a problem reported by Alex Schmolck. He saw
3761 this function to fix a problem reported by Alex Schmolck. He saw
3756 it with list comprehensions and generators, which were getting
3762 it with list comprehensions and generators, which were getting
3757 called twice. The real problem was an 'eval' call in testing for
3763 called twice. The real problem was an 'eval' call in testing for
3758 automagic which was evaluating the input line silently.
3764 automagic which was evaluating the input line silently.
3759
3765
3760 This is a potentially very nasty bug, if the input has side
3766 This is a potentially very nasty bug, if the input has side
3761 effects which must not be repeated. The code is much cleaner now,
3767 effects which must not be repeated. The code is much cleaner now,
3762 without any blanket 'except' left and with a regexp test for
3768 without any blanket 'except' left and with a regexp test for
3763 actual function names.
3769 actual function names.
3764
3770
3765 But an eval remains, which I'm not fully comfortable with. I just
3771 But an eval remains, which I'm not fully comfortable with. I just
3766 don't know how to find out if an expression could be a callable in
3772 don't know how to find out if an expression could be a callable in
3767 the user's namespace without doing an eval on the string. However
3773 the user's namespace without doing an eval on the string. However
3768 that string is now much more strictly checked so that no code
3774 that string is now much more strictly checked so that no code
3769 slips by, so the eval should only happen for things that can
3775 slips by, so the eval should only happen for things that can
3770 really be only function/method names.
3776 really be only function/method names.
3771
3777
3772 2002-10-15 Fernando Perez <fperez@colorado.edu>
3778 2002-10-15 Fernando Perez <fperez@colorado.edu>
3773
3779
3774 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3780 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3775 OSX information to main manual, removed README_Mac_OSX file from
3781 OSX information to main manual, removed README_Mac_OSX file from
3776 distribution. Also updated credits for recent additions.
3782 distribution. Also updated credits for recent additions.
3777
3783
3778 2002-10-10 Fernando Perez <fperez@colorado.edu>
3784 2002-10-10 Fernando Perez <fperez@colorado.edu>
3779
3785
3780 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3786 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3781 terminal-related issues. Many thanks to Andrea Riciputi
3787 terminal-related issues. Many thanks to Andrea Riciputi
3782 <andrea.riciputi-AT-libero.it> for writing it.
3788 <andrea.riciputi-AT-libero.it> for writing it.
3783
3789
3784 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3790 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3785 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3791 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3786
3792
3787 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3793 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3788 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3794 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3789 <syver-en-AT-online.no> who both submitted patches for this problem.
3795 <syver-en-AT-online.no> who both submitted patches for this problem.
3790
3796
3791 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3797 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3792 global embedding to make sure that things don't overwrite user
3798 global embedding to make sure that things don't overwrite user
3793 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3799 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3794
3800
3795 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3801 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3796 compatibility. Thanks to Hayden Callow
3802 compatibility. Thanks to Hayden Callow
3797 <h.callow-AT-elec.canterbury.ac.nz>
3803 <h.callow-AT-elec.canterbury.ac.nz>
3798
3804
3799 2002-10-04 Fernando Perez <fperez@colorado.edu>
3805 2002-10-04 Fernando Perez <fperez@colorado.edu>
3800
3806
3801 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3807 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3802 Gnuplot.File objects.
3808 Gnuplot.File objects.
3803
3809
3804 2002-07-23 Fernando Perez <fperez@colorado.edu>
3810 2002-07-23 Fernando Perez <fperez@colorado.edu>
3805
3811
3806 * IPython/genutils.py (timing): Added timings() and timing() for
3812 * IPython/genutils.py (timing): Added timings() and timing() for
3807 quick access to the most commonly needed data, the execution
3813 quick access to the most commonly needed data, the execution
3808 times. Old timing() renamed to timings_out().
3814 times. Old timing() renamed to timings_out().
3809
3815
3810 2002-07-18 Fernando Perez <fperez@colorado.edu>
3816 2002-07-18 Fernando Perez <fperez@colorado.edu>
3811
3817
3812 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3818 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3813 bug with nested instances disrupting the parent's tab completion.
3819 bug with nested instances disrupting the parent's tab completion.
3814
3820
3815 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3821 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3816 all_completions code to begin the emacs integration.
3822 all_completions code to begin the emacs integration.
3817
3823
3818 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3824 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3819 argument to allow titling individual arrays when plotting.
3825 argument to allow titling individual arrays when plotting.
3820
3826
3821 2002-07-15 Fernando Perez <fperez@colorado.edu>
3827 2002-07-15 Fernando Perez <fperez@colorado.edu>
3822
3828
3823 * setup.py (make_shortcut): changed to retrieve the value of
3829 * setup.py (make_shortcut): changed to retrieve the value of
3824 'Program Files' directory from the registry (this value changes in
3830 'Program Files' directory from the registry (this value changes in
3825 non-english versions of Windows). Thanks to Thomas Fanslau
3831 non-english versions of Windows). Thanks to Thomas Fanslau
3826 <tfanslau-AT-gmx.de> for the report.
3832 <tfanslau-AT-gmx.de> for the report.
3827
3833
3828 2002-07-10 Fernando Perez <fperez@colorado.edu>
3834 2002-07-10 Fernando Perez <fperez@colorado.edu>
3829
3835
3830 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3836 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3831 a bug in pdb, which crashes if a line with only whitespace is
3837 a bug in pdb, which crashes if a line with only whitespace is
3832 entered. Bug report submitted to sourceforge.
3838 entered. Bug report submitted to sourceforge.
3833
3839
3834 2002-07-09 Fernando Perez <fperez@colorado.edu>
3840 2002-07-09 Fernando Perez <fperez@colorado.edu>
3835
3841
3836 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3842 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3837 reporting exceptions (it's a bug in inspect.py, I just set a
3843 reporting exceptions (it's a bug in inspect.py, I just set a
3838 workaround).
3844 workaround).
3839
3845
3840 2002-07-08 Fernando Perez <fperez@colorado.edu>
3846 2002-07-08 Fernando Perez <fperez@colorado.edu>
3841
3847
3842 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3848 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3843 __IPYTHON__ in __builtins__ to show up in user_ns.
3849 __IPYTHON__ in __builtins__ to show up in user_ns.
3844
3850
3845 2002-07-03 Fernando Perez <fperez@colorado.edu>
3851 2002-07-03 Fernando Perez <fperez@colorado.edu>
3846
3852
3847 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3853 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3848 name from @gp_set_instance to @gp_set_default.
3854 name from @gp_set_instance to @gp_set_default.
3849
3855
3850 * IPython/ipmaker.py (make_IPython): default editor value set to
3856 * IPython/ipmaker.py (make_IPython): default editor value set to
3851 '0' (a string), to match the rc file. Otherwise will crash when
3857 '0' (a string), to match the rc file. Otherwise will crash when
3852 .strip() is called on it.
3858 .strip() is called on it.
3853
3859
3854
3860
3855 2002-06-28 Fernando Perez <fperez@colorado.edu>
3861 2002-06-28 Fernando Perez <fperez@colorado.edu>
3856
3862
3857 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3863 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3858 of files in current directory when a file is executed via
3864 of files in current directory when a file is executed via
3859 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3865 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3860
3866
3861 * setup.py (manfiles): fix for rpm builds, submitted by RA
3867 * setup.py (manfiles): fix for rpm builds, submitted by RA
3862 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3868 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3863
3869
3864 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3870 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3865 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3871 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3866 string!). A. Schmolck caught this one.
3872 string!). A. Schmolck caught this one.
3867
3873
3868 2002-06-27 Fernando Perez <fperez@colorado.edu>
3874 2002-06-27 Fernando Perez <fperez@colorado.edu>
3869
3875
3870 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3876 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3871 defined files at the cmd line. __name__ wasn't being set to
3877 defined files at the cmd line. __name__ wasn't being set to
3872 __main__.
3878 __main__.
3873
3879
3874 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3880 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3875 regular lists and tuples besides Numeric arrays.
3881 regular lists and tuples besides Numeric arrays.
3876
3882
3877 * IPython/Prompts.py (CachedOutput.__call__): Added output
3883 * IPython/Prompts.py (CachedOutput.__call__): Added output
3878 supression for input ending with ';'. Similar to Mathematica and
3884 supression for input ending with ';'. Similar to Mathematica and
3879 Matlab. The _* vars and Out[] list are still updated, just like
3885 Matlab. The _* vars and Out[] list are still updated, just like
3880 Mathematica behaves.
3886 Mathematica behaves.
3881
3887
3882 2002-06-25 Fernando Perez <fperez@colorado.edu>
3888 2002-06-25 Fernando Perez <fperez@colorado.edu>
3883
3889
3884 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3890 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3885 .ini extensions for profiels under Windows.
3891 .ini extensions for profiels under Windows.
3886
3892
3887 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3893 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3888 string form. Fix contributed by Alexander Schmolck
3894 string form. Fix contributed by Alexander Schmolck
3889 <a.schmolck-AT-gmx.net>
3895 <a.schmolck-AT-gmx.net>
3890
3896
3891 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3897 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3892 pre-configured Gnuplot instance.
3898 pre-configured Gnuplot instance.
3893
3899
3894 2002-06-21 Fernando Perez <fperez@colorado.edu>
3900 2002-06-21 Fernando Perez <fperez@colorado.edu>
3895
3901
3896 * IPython/numutils.py (exp_safe): new function, works around the
3902 * IPython/numutils.py (exp_safe): new function, works around the
3897 underflow problems in Numeric.
3903 underflow problems in Numeric.
3898 (log2): New fn. Safe log in base 2: returns exact integer answer
3904 (log2): New fn. Safe log in base 2: returns exact integer answer
3899 for exact integer powers of 2.
3905 for exact integer powers of 2.
3900
3906
3901 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3907 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3902 properly.
3908 properly.
3903
3909
3904 2002-06-20 Fernando Perez <fperez@colorado.edu>
3910 2002-06-20 Fernando Perez <fperez@colorado.edu>
3905
3911
3906 * IPython/genutils.py (timing): new function like
3912 * IPython/genutils.py (timing): new function like
3907 Mathematica's. Similar to time_test, but returns more info.
3913 Mathematica's. Similar to time_test, but returns more info.
3908
3914
3909 2002-06-18 Fernando Perez <fperez@colorado.edu>
3915 2002-06-18 Fernando Perez <fperez@colorado.edu>
3910
3916
3911 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3917 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3912 according to Mike Heeter's suggestions.
3918 according to Mike Heeter's suggestions.
3913
3919
3914 2002-06-16 Fernando Perez <fperez@colorado.edu>
3920 2002-06-16 Fernando Perez <fperez@colorado.edu>
3915
3921
3916 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3922 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3917 system. GnuplotMagic is gone as a user-directory option. New files
3923 system. GnuplotMagic is gone as a user-directory option. New files
3918 make it easier to use all the gnuplot stuff both from external
3924 make it easier to use all the gnuplot stuff both from external
3919 programs as well as from IPython. Had to rewrite part of
3925 programs as well as from IPython. Had to rewrite part of
3920 hardcopy() b/c of a strange bug: often the ps files simply don't
3926 hardcopy() b/c of a strange bug: often the ps files simply don't
3921 get created, and require a repeat of the command (often several
3927 get created, and require a repeat of the command (often several
3922 times).
3928 times).
3923
3929
3924 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3930 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3925 resolve output channel at call time, so that if sys.stderr has
3931 resolve output channel at call time, so that if sys.stderr has
3926 been redirected by user this gets honored.
3932 been redirected by user this gets honored.
3927
3933
3928 2002-06-13 Fernando Perez <fperez@colorado.edu>
3934 2002-06-13 Fernando Perez <fperez@colorado.edu>
3929
3935
3930 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3936 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3931 IPShell. Kept a copy with the old names to avoid breaking people's
3937 IPShell. Kept a copy with the old names to avoid breaking people's
3932 embedded code.
3938 embedded code.
3933
3939
3934 * IPython/ipython: simplified it to the bare minimum after
3940 * IPython/ipython: simplified it to the bare minimum after
3935 Holger's suggestions. Added info about how to use it in
3941 Holger's suggestions. Added info about how to use it in
3936 PYTHONSTARTUP.
3942 PYTHONSTARTUP.
3937
3943
3938 * IPython/Shell.py (IPythonShell): changed the options passing
3944 * IPython/Shell.py (IPythonShell): changed the options passing
3939 from a string with funky %s replacements to a straight list. Maybe
3945 from a string with funky %s replacements to a straight list. Maybe
3940 a bit more typing, but it follows sys.argv conventions, so there's
3946 a bit more typing, but it follows sys.argv conventions, so there's
3941 less special-casing to remember.
3947 less special-casing to remember.
3942
3948
3943 2002-06-12 Fernando Perez <fperez@colorado.edu>
3949 2002-06-12 Fernando Perez <fperez@colorado.edu>
3944
3950
3945 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3951 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3946 command. Thanks to a suggestion by Mike Heeter.
3952 command. Thanks to a suggestion by Mike Heeter.
3947 (Magic.magic_pfile): added behavior to look at filenames if given
3953 (Magic.magic_pfile): added behavior to look at filenames if given
3948 arg is not a defined object.
3954 arg is not a defined object.
3949 (Magic.magic_save): New @save function to save code snippets. Also
3955 (Magic.magic_save): New @save function to save code snippets. Also
3950 a Mike Heeter idea.
3956 a Mike Heeter idea.
3951
3957
3952 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3958 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3953 plot() and replot(). Much more convenient now, especially for
3959 plot() and replot(). Much more convenient now, especially for
3954 interactive use.
3960 interactive use.
3955
3961
3956 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3962 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3957 filenames.
3963 filenames.
3958
3964
3959 2002-06-02 Fernando Perez <fperez@colorado.edu>
3965 2002-06-02 Fernando Perez <fperez@colorado.edu>
3960
3966
3961 * IPython/Struct.py (Struct.__init__): modified to admit
3967 * IPython/Struct.py (Struct.__init__): modified to admit
3962 initialization via another struct.
3968 initialization via another struct.
3963
3969
3964 * IPython/genutils.py (SystemExec.__init__): New stateful
3970 * IPython/genutils.py (SystemExec.__init__): New stateful
3965 interface to xsys and bq. Useful for writing system scripts.
3971 interface to xsys and bq. Useful for writing system scripts.
3966
3972
3967 2002-05-30 Fernando Perez <fperez@colorado.edu>
3973 2002-05-30 Fernando Perez <fperez@colorado.edu>
3968
3974
3969 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3975 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3970 documents. This will make the user download smaller (it's getting
3976 documents. This will make the user download smaller (it's getting
3971 too big).
3977 too big).
3972
3978
3973 2002-05-29 Fernando Perez <fperez@colorado.edu>
3979 2002-05-29 Fernando Perez <fperez@colorado.edu>
3974
3980
3975 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3981 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3976 fix problems with shelve and pickle. Seems to work, but I don't
3982 fix problems with shelve and pickle. Seems to work, but I don't
3977 know if corner cases break it. Thanks to Mike Heeter
3983 know if corner cases break it. Thanks to Mike Heeter
3978 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3984 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3979
3985
3980 2002-05-24 Fernando Perez <fperez@colorado.edu>
3986 2002-05-24 Fernando Perez <fperez@colorado.edu>
3981
3987
3982 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3988 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3983 macros having broken.
3989 macros having broken.
3984
3990
3985 2002-05-21 Fernando Perez <fperez@colorado.edu>
3991 2002-05-21 Fernando Perez <fperez@colorado.edu>
3986
3992
3987 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3993 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3988 introduced logging bug: all history before logging started was
3994 introduced logging bug: all history before logging started was
3989 being written one character per line! This came from the redesign
3995 being written one character per line! This came from the redesign
3990 of the input history as a special list which slices to strings,
3996 of the input history as a special list which slices to strings,
3991 not to lists.
3997 not to lists.
3992
3998
3993 2002-05-20 Fernando Perez <fperez@colorado.edu>
3999 2002-05-20 Fernando Perez <fperez@colorado.edu>
3994
4000
3995 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4001 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3996 be an attribute of all classes in this module. The design of these
4002 be an attribute of all classes in this module. The design of these
3997 classes needs some serious overhauling.
4003 classes needs some serious overhauling.
3998
4004
3999 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4005 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4000 which was ignoring '_' in option names.
4006 which was ignoring '_' in option names.
4001
4007
4002 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4008 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4003 'Verbose_novars' to 'Context' and made it the new default. It's a
4009 'Verbose_novars' to 'Context' and made it the new default. It's a
4004 bit more readable and also safer than verbose.
4010 bit more readable and also safer than verbose.
4005
4011
4006 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4012 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4007 triple-quoted strings.
4013 triple-quoted strings.
4008
4014
4009 * IPython/OInspect.py (__all__): new module exposing the object
4015 * IPython/OInspect.py (__all__): new module exposing the object
4010 introspection facilities. Now the corresponding magics are dummy
4016 introspection facilities. Now the corresponding magics are dummy
4011 wrappers around this. Having this module will make it much easier
4017 wrappers around this. Having this module will make it much easier
4012 to put these functions into our modified pdb.
4018 to put these functions into our modified pdb.
4013 This new object inspector system uses the new colorizing module,
4019 This new object inspector system uses the new colorizing module,
4014 so source code and other things are nicely syntax highlighted.
4020 so source code and other things are nicely syntax highlighted.
4015
4021
4016 2002-05-18 Fernando Perez <fperez@colorado.edu>
4022 2002-05-18 Fernando Perez <fperez@colorado.edu>
4017
4023
4018 * IPython/ColorANSI.py: Split the coloring tools into a separate
4024 * IPython/ColorANSI.py: Split the coloring tools into a separate
4019 module so I can use them in other code easier (they were part of
4025 module so I can use them in other code easier (they were part of
4020 ultraTB).
4026 ultraTB).
4021
4027
4022 2002-05-17 Fernando Perez <fperez@colorado.edu>
4028 2002-05-17 Fernando Perez <fperez@colorado.edu>
4023
4029
4024 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4030 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4025 fixed it to set the global 'g' also to the called instance, as
4031 fixed it to set the global 'g' also to the called instance, as
4026 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4032 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4027 user's 'g' variables).
4033 user's 'g' variables).
4028
4034
4029 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4035 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4030 global variables (aliases to _ih,_oh) so that users which expect
4036 global variables (aliases to _ih,_oh) so that users which expect
4031 In[5] or Out[7] to work aren't unpleasantly surprised.
4037 In[5] or Out[7] to work aren't unpleasantly surprised.
4032 (InputList.__getslice__): new class to allow executing slices of
4038 (InputList.__getslice__): new class to allow executing slices of
4033 input history directly. Very simple class, complements the use of
4039 input history directly. Very simple class, complements the use of
4034 macros.
4040 macros.
4035
4041
4036 2002-05-16 Fernando Perez <fperez@colorado.edu>
4042 2002-05-16 Fernando Perez <fperez@colorado.edu>
4037
4043
4038 * setup.py (docdirbase): make doc directory be just doc/IPython
4044 * setup.py (docdirbase): make doc directory be just doc/IPython
4039 without version numbers, it will reduce clutter for users.
4045 without version numbers, it will reduce clutter for users.
4040
4046
4041 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4047 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4042 execfile call to prevent possible memory leak. See for details:
4048 execfile call to prevent possible memory leak. See for details:
4043 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4049 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4044
4050
4045 2002-05-15 Fernando Perez <fperez@colorado.edu>
4051 2002-05-15 Fernando Perez <fperez@colorado.edu>
4046
4052
4047 * IPython/Magic.py (Magic.magic_psource): made the object
4053 * IPython/Magic.py (Magic.magic_psource): made the object
4048 introspection names be more standard: pdoc, pdef, pfile and
4054 introspection names be more standard: pdoc, pdef, pfile and
4049 psource. They all print/page their output, and it makes
4055 psource. They all print/page their output, and it makes
4050 remembering them easier. Kept old names for compatibility as
4056 remembering them easier. Kept old names for compatibility as
4051 aliases.
4057 aliases.
4052
4058
4053 2002-05-14 Fernando Perez <fperez@colorado.edu>
4059 2002-05-14 Fernando Perez <fperez@colorado.edu>
4054
4060
4055 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4061 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4056 what the mouse problem was. The trick is to use gnuplot with temp
4062 what the mouse problem was. The trick is to use gnuplot with temp
4057 files and NOT with pipes (for data communication), because having
4063 files and NOT with pipes (for data communication), because having
4058 both pipes and the mouse on is bad news.
4064 both pipes and the mouse on is bad news.
4059
4065
4060 2002-05-13 Fernando Perez <fperez@colorado.edu>
4066 2002-05-13 Fernando Perez <fperez@colorado.edu>
4061
4067
4062 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4068 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4063 bug. Information would be reported about builtins even when
4069 bug. Information would be reported about builtins even when
4064 user-defined functions overrode them.
4070 user-defined functions overrode them.
4065
4071
4066 2002-05-11 Fernando Perez <fperez@colorado.edu>
4072 2002-05-11 Fernando Perez <fperez@colorado.edu>
4067
4073
4068 * IPython/__init__.py (__all__): removed FlexCompleter from
4074 * IPython/__init__.py (__all__): removed FlexCompleter from
4069 __all__ so that things don't fail in platforms without readline.
4075 __all__ so that things don't fail in platforms without readline.
4070
4076
4071 2002-05-10 Fernando Perez <fperez@colorado.edu>
4077 2002-05-10 Fernando Perez <fperez@colorado.edu>
4072
4078
4073 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4079 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4074 it requires Numeric, effectively making Numeric a dependency for
4080 it requires Numeric, effectively making Numeric a dependency for
4075 IPython.
4081 IPython.
4076
4082
4077 * Released 0.2.13
4083 * Released 0.2.13
4078
4084
4079 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4085 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4080 profiler interface. Now all the major options from the profiler
4086 profiler interface. Now all the major options from the profiler
4081 module are directly supported in IPython, both for single
4087 module are directly supported in IPython, both for single
4082 expressions (@prun) and for full programs (@run -p).
4088 expressions (@prun) and for full programs (@run -p).
4083
4089
4084 2002-05-09 Fernando Perez <fperez@colorado.edu>
4090 2002-05-09 Fernando Perez <fperez@colorado.edu>
4085
4091
4086 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4092 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4087 magic properly formatted for screen.
4093 magic properly formatted for screen.
4088
4094
4089 * setup.py (make_shortcut): Changed things to put pdf version in
4095 * setup.py (make_shortcut): Changed things to put pdf version in
4090 doc/ instead of doc/manual (had to change lyxport a bit).
4096 doc/ instead of doc/manual (had to change lyxport a bit).
4091
4097
4092 * IPython/Magic.py (Profile.string_stats): made profile runs go
4098 * IPython/Magic.py (Profile.string_stats): made profile runs go
4093 through pager (they are long and a pager allows searching, saving,
4099 through pager (they are long and a pager allows searching, saving,
4094 etc.)
4100 etc.)
4095
4101
4096 2002-05-08 Fernando Perez <fperez@colorado.edu>
4102 2002-05-08 Fernando Perez <fperez@colorado.edu>
4097
4103
4098 * Released 0.2.12
4104 * Released 0.2.12
4099
4105
4100 2002-05-06 Fernando Perez <fperez@colorado.edu>
4106 2002-05-06 Fernando Perez <fperez@colorado.edu>
4101
4107
4102 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4108 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4103 introduced); 'hist n1 n2' was broken.
4109 introduced); 'hist n1 n2' was broken.
4104 (Magic.magic_pdb): added optional on/off arguments to @pdb
4110 (Magic.magic_pdb): added optional on/off arguments to @pdb
4105 (Magic.magic_run): added option -i to @run, which executes code in
4111 (Magic.magic_run): added option -i to @run, which executes code in
4106 the IPython namespace instead of a clean one. Also added @irun as
4112 the IPython namespace instead of a clean one. Also added @irun as
4107 an alias to @run -i.
4113 an alias to @run -i.
4108
4114
4109 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4115 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4110 fixed (it didn't really do anything, the namespaces were wrong).
4116 fixed (it didn't really do anything, the namespaces were wrong).
4111
4117
4112 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4118 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4113
4119
4114 * IPython/__init__.py (__all__): Fixed package namespace, now
4120 * IPython/__init__.py (__all__): Fixed package namespace, now
4115 'import IPython' does give access to IPython.<all> as
4121 'import IPython' does give access to IPython.<all> as
4116 expected. Also renamed __release__ to Release.
4122 expected. Also renamed __release__ to Release.
4117
4123
4118 * IPython/Debugger.py (__license__): created new Pdb class which
4124 * IPython/Debugger.py (__license__): created new Pdb class which
4119 functions like a drop-in for the normal pdb.Pdb but does NOT
4125 functions like a drop-in for the normal pdb.Pdb but does NOT
4120 import readline by default. This way it doesn't muck up IPython's
4126 import readline by default. This way it doesn't muck up IPython's
4121 readline handling, and now tab-completion finally works in the
4127 readline handling, and now tab-completion finally works in the
4122 debugger -- sort of. It completes things globally visible, but the
4128 debugger -- sort of. It completes things globally visible, but the
4123 completer doesn't track the stack as pdb walks it. That's a bit
4129 completer doesn't track the stack as pdb walks it. That's a bit
4124 tricky, and I'll have to implement it later.
4130 tricky, and I'll have to implement it later.
4125
4131
4126 2002-05-05 Fernando Perez <fperez@colorado.edu>
4132 2002-05-05 Fernando Perez <fperez@colorado.edu>
4127
4133
4128 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4134 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4129 magic docstrings when printed via ? (explicit \'s were being
4135 magic docstrings when printed via ? (explicit \'s were being
4130 printed).
4136 printed).
4131
4137
4132 * IPython/ipmaker.py (make_IPython): fixed namespace
4138 * IPython/ipmaker.py (make_IPython): fixed namespace
4133 identification bug. Now variables loaded via logs or command-line
4139 identification bug. Now variables loaded via logs or command-line
4134 files are recognized in the interactive namespace by @who.
4140 files are recognized in the interactive namespace by @who.
4135
4141
4136 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4142 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4137 log replay system stemming from the string form of Structs.
4143 log replay system stemming from the string form of Structs.
4138
4144
4139 * IPython/Magic.py (Macro.__init__): improved macros to properly
4145 * IPython/Magic.py (Macro.__init__): improved macros to properly
4140 handle magic commands in them.
4146 handle magic commands in them.
4141 (Magic.magic_logstart): usernames are now expanded so 'logstart
4147 (Magic.magic_logstart): usernames are now expanded so 'logstart
4142 ~/mylog' now works.
4148 ~/mylog' now works.
4143
4149
4144 * IPython/iplib.py (complete): fixed bug where paths starting with
4150 * IPython/iplib.py (complete): fixed bug where paths starting with
4145 '/' would be completed as magic names.
4151 '/' would be completed as magic names.
4146
4152
4147 2002-05-04 Fernando Perez <fperez@colorado.edu>
4153 2002-05-04 Fernando Perez <fperez@colorado.edu>
4148
4154
4149 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4155 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4150 allow running full programs under the profiler's control.
4156 allow running full programs under the profiler's control.
4151
4157
4152 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4158 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4153 mode to report exceptions verbosely but without formatting
4159 mode to report exceptions verbosely but without formatting
4154 variables. This addresses the issue of ipython 'freezing' (it's
4160 variables. This addresses the issue of ipython 'freezing' (it's
4155 not frozen, but caught in an expensive formatting loop) when huge
4161 not frozen, but caught in an expensive formatting loop) when huge
4156 variables are in the context of an exception.
4162 variables are in the context of an exception.
4157 (VerboseTB.text): Added '--->' markers at line where exception was
4163 (VerboseTB.text): Added '--->' markers at line where exception was
4158 triggered. Much clearer to read, especially in NoColor modes.
4164 triggered. Much clearer to read, especially in NoColor modes.
4159
4165
4160 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4166 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4161 implemented in reverse when changing to the new parse_options().
4167 implemented in reverse when changing to the new parse_options().
4162
4168
4163 2002-05-03 Fernando Perez <fperez@colorado.edu>
4169 2002-05-03 Fernando Perez <fperez@colorado.edu>
4164
4170
4165 * IPython/Magic.py (Magic.parse_options): new function so that
4171 * IPython/Magic.py (Magic.parse_options): new function so that
4166 magics can parse options easier.
4172 magics can parse options easier.
4167 (Magic.magic_prun): new function similar to profile.run(),
4173 (Magic.magic_prun): new function similar to profile.run(),
4168 suggested by Chris Hart.
4174 suggested by Chris Hart.
4169 (Magic.magic_cd): fixed behavior so that it only changes if
4175 (Magic.magic_cd): fixed behavior so that it only changes if
4170 directory actually is in history.
4176 directory actually is in history.
4171
4177
4172 * IPython/usage.py (__doc__): added information about potential
4178 * IPython/usage.py (__doc__): added information about potential
4173 slowness of Verbose exception mode when there are huge data
4179 slowness of Verbose exception mode when there are huge data
4174 structures to be formatted (thanks to Archie Paulson).
4180 structures to be formatted (thanks to Archie Paulson).
4175
4181
4176 * IPython/ipmaker.py (make_IPython): Changed default logging
4182 * IPython/ipmaker.py (make_IPython): Changed default logging
4177 (when simply called with -log) to use curr_dir/ipython.log in
4183 (when simply called with -log) to use curr_dir/ipython.log in
4178 rotate mode. Fixed crash which was occuring with -log before
4184 rotate mode. Fixed crash which was occuring with -log before
4179 (thanks to Jim Boyle).
4185 (thanks to Jim Boyle).
4180
4186
4181 2002-05-01 Fernando Perez <fperez@colorado.edu>
4187 2002-05-01 Fernando Perez <fperez@colorado.edu>
4182
4188
4183 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4189 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4184 was nasty -- though somewhat of a corner case).
4190 was nasty -- though somewhat of a corner case).
4185
4191
4186 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4192 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4187 text (was a bug).
4193 text (was a bug).
4188
4194
4189 2002-04-30 Fernando Perez <fperez@colorado.edu>
4195 2002-04-30 Fernando Perez <fperez@colorado.edu>
4190
4196
4191 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4197 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4192 a print after ^D or ^C from the user so that the In[] prompt
4198 a print after ^D or ^C from the user so that the In[] prompt
4193 doesn't over-run the gnuplot one.
4199 doesn't over-run the gnuplot one.
4194
4200
4195 2002-04-29 Fernando Perez <fperez@colorado.edu>
4201 2002-04-29 Fernando Perez <fperez@colorado.edu>
4196
4202
4197 * Released 0.2.10
4203 * Released 0.2.10
4198
4204
4199 * IPython/__release__.py (version): get date dynamically.
4205 * IPython/__release__.py (version): get date dynamically.
4200
4206
4201 * Misc. documentation updates thanks to Arnd's comments. Also ran
4207 * Misc. documentation updates thanks to Arnd's comments. Also ran
4202 a full spellcheck on the manual (hadn't been done in a while).
4208 a full spellcheck on the manual (hadn't been done in a while).
4203
4209
4204 2002-04-27 Fernando Perez <fperez@colorado.edu>
4210 2002-04-27 Fernando Perez <fperez@colorado.edu>
4205
4211
4206 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4212 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4207 starting a log in mid-session would reset the input history list.
4213 starting a log in mid-session would reset the input history list.
4208
4214
4209 2002-04-26 Fernando Perez <fperez@colorado.edu>
4215 2002-04-26 Fernando Perez <fperez@colorado.edu>
4210
4216
4211 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4217 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4212 all files were being included in an update. Now anything in
4218 all files were being included in an update. Now anything in
4213 UserConfig that matches [A-Za-z]*.py will go (this excludes
4219 UserConfig that matches [A-Za-z]*.py will go (this excludes
4214 __init__.py)
4220 __init__.py)
4215
4221
4216 2002-04-25 Fernando Perez <fperez@colorado.edu>
4222 2002-04-25 Fernando Perez <fperez@colorado.edu>
4217
4223
4218 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4224 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4219 to __builtins__ so that any form of embedded or imported code can
4225 to __builtins__ so that any form of embedded or imported code can
4220 test for being inside IPython.
4226 test for being inside IPython.
4221
4227
4222 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4228 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4223 changed to GnuplotMagic because it's now an importable module,
4229 changed to GnuplotMagic because it's now an importable module,
4224 this makes the name follow that of the standard Gnuplot module.
4230 this makes the name follow that of the standard Gnuplot module.
4225 GnuplotMagic can now be loaded at any time in mid-session.
4231 GnuplotMagic can now be loaded at any time in mid-session.
4226
4232
4227 2002-04-24 Fernando Perez <fperez@colorado.edu>
4233 2002-04-24 Fernando Perez <fperez@colorado.edu>
4228
4234
4229 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4235 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4230 the globals (IPython has its own namespace) and the
4236 the globals (IPython has its own namespace) and the
4231 PhysicalQuantity stuff is much better anyway.
4237 PhysicalQuantity stuff is much better anyway.
4232
4238
4233 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4239 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4234 embedding example to standard user directory for
4240 embedding example to standard user directory for
4235 distribution. Also put it in the manual.
4241 distribution. Also put it in the manual.
4236
4242
4237 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4243 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4238 instance as first argument (so it doesn't rely on some obscure
4244 instance as first argument (so it doesn't rely on some obscure
4239 hidden global).
4245 hidden global).
4240
4246
4241 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4247 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4242 delimiters. While it prevents ().TAB from working, it allows
4248 delimiters. While it prevents ().TAB from working, it allows
4243 completions in open (... expressions. This is by far a more common
4249 completions in open (... expressions. This is by far a more common
4244 case.
4250 case.
4245
4251
4246 2002-04-23 Fernando Perez <fperez@colorado.edu>
4252 2002-04-23 Fernando Perez <fperez@colorado.edu>
4247
4253
4248 * IPython/Extensions/InterpreterPasteInput.py: new
4254 * IPython/Extensions/InterpreterPasteInput.py: new
4249 syntax-processing module for pasting lines with >>> or ... at the
4255 syntax-processing module for pasting lines with >>> or ... at the
4250 start.
4256 start.
4251
4257
4252 * IPython/Extensions/PhysicalQ_Interactive.py
4258 * IPython/Extensions/PhysicalQ_Interactive.py
4253 (PhysicalQuantityInteractive.__int__): fixed to work with either
4259 (PhysicalQuantityInteractive.__int__): fixed to work with either
4254 Numeric or math.
4260 Numeric or math.
4255
4261
4256 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4262 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4257 provided profiles. Now we have:
4263 provided profiles. Now we have:
4258 -math -> math module as * and cmath with its own namespace.
4264 -math -> math module as * and cmath with its own namespace.
4259 -numeric -> Numeric as *, plus gnuplot & grace
4265 -numeric -> Numeric as *, plus gnuplot & grace
4260 -physics -> same as before
4266 -physics -> same as before
4261
4267
4262 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4268 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4263 user-defined magics wouldn't be found by @magic if they were
4269 user-defined magics wouldn't be found by @magic if they were
4264 defined as class methods. Also cleaned up the namespace search
4270 defined as class methods. Also cleaned up the namespace search
4265 logic and the string building (to use %s instead of many repeated
4271 logic and the string building (to use %s instead of many repeated
4266 string adds).
4272 string adds).
4267
4273
4268 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4274 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4269 of user-defined magics to operate with class methods (cleaner, in
4275 of user-defined magics to operate with class methods (cleaner, in
4270 line with the gnuplot code).
4276 line with the gnuplot code).
4271
4277
4272 2002-04-22 Fernando Perez <fperez@colorado.edu>
4278 2002-04-22 Fernando Perez <fperez@colorado.edu>
4273
4279
4274 * setup.py: updated dependency list so that manual is updated when
4280 * setup.py: updated dependency list so that manual is updated when
4275 all included files change.
4281 all included files change.
4276
4282
4277 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4283 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4278 the delimiter removal option (the fix is ugly right now).
4284 the delimiter removal option (the fix is ugly right now).
4279
4285
4280 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4286 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4281 all of the math profile (quicker loading, no conflict between
4287 all of the math profile (quicker loading, no conflict between
4282 g-9.8 and g-gnuplot).
4288 g-9.8 and g-gnuplot).
4283
4289
4284 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4290 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4285 name of post-mortem files to IPython_crash_report.txt.
4291 name of post-mortem files to IPython_crash_report.txt.
4286
4292
4287 * Cleanup/update of the docs. Added all the new readline info and
4293 * Cleanup/update of the docs. Added all the new readline info and
4288 formatted all lists as 'real lists'.
4294 formatted all lists as 'real lists'.
4289
4295
4290 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4296 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4291 tab-completion options, since the full readline parse_and_bind is
4297 tab-completion options, since the full readline parse_and_bind is
4292 now accessible.
4298 now accessible.
4293
4299
4294 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4300 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4295 handling of readline options. Now users can specify any string to
4301 handling of readline options. Now users can specify any string to
4296 be passed to parse_and_bind(), as well as the delimiters to be
4302 be passed to parse_and_bind(), as well as the delimiters to be
4297 removed.
4303 removed.
4298 (InteractiveShell.__init__): Added __name__ to the global
4304 (InteractiveShell.__init__): Added __name__ to the global
4299 namespace so that things like Itpl which rely on its existence
4305 namespace so that things like Itpl which rely on its existence
4300 don't crash.
4306 don't crash.
4301 (InteractiveShell._prefilter): Defined the default with a _ so
4307 (InteractiveShell._prefilter): Defined the default with a _ so
4302 that prefilter() is easier to override, while the default one
4308 that prefilter() is easier to override, while the default one
4303 remains available.
4309 remains available.
4304
4310
4305 2002-04-18 Fernando Perez <fperez@colorado.edu>
4311 2002-04-18 Fernando Perez <fperez@colorado.edu>
4306
4312
4307 * Added information about pdb in the docs.
4313 * Added information about pdb in the docs.
4308
4314
4309 2002-04-17 Fernando Perez <fperez@colorado.edu>
4315 2002-04-17 Fernando Perez <fperez@colorado.edu>
4310
4316
4311 * IPython/ipmaker.py (make_IPython): added rc_override option to
4317 * IPython/ipmaker.py (make_IPython): added rc_override option to
4312 allow passing config options at creation time which may override
4318 allow passing config options at creation time which may override
4313 anything set in the config files or command line. This is
4319 anything set in the config files or command line. This is
4314 particularly useful for configuring embedded instances.
4320 particularly useful for configuring embedded instances.
4315
4321
4316 2002-04-15 Fernando Perez <fperez@colorado.edu>
4322 2002-04-15 Fernando Perez <fperez@colorado.edu>
4317
4323
4318 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4324 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4319 crash embedded instances because of the input cache falling out of
4325 crash embedded instances because of the input cache falling out of
4320 sync with the output counter.
4326 sync with the output counter.
4321
4327
4322 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4328 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4323 mode which calls pdb after an uncaught exception in IPython itself.
4329 mode which calls pdb after an uncaught exception in IPython itself.
4324
4330
4325 2002-04-14 Fernando Perez <fperez@colorado.edu>
4331 2002-04-14 Fernando Perez <fperez@colorado.edu>
4326
4332
4327 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4333 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4328 readline, fix it back after each call.
4334 readline, fix it back after each call.
4329
4335
4330 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4336 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4331 method to force all access via __call__(), which guarantees that
4337 method to force all access via __call__(), which guarantees that
4332 traceback references are properly deleted.
4338 traceback references are properly deleted.
4333
4339
4334 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4340 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4335 improve printing when pprint is in use.
4341 improve printing when pprint is in use.
4336
4342
4337 2002-04-13 Fernando Perez <fperez@colorado.edu>
4343 2002-04-13 Fernando Perez <fperez@colorado.edu>
4338
4344
4339 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4345 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4340 exceptions aren't caught anymore. If the user triggers one, he
4346 exceptions aren't caught anymore. If the user triggers one, he
4341 should know why he's doing it and it should go all the way up,
4347 should know why he's doing it and it should go all the way up,
4342 just like any other exception. So now @abort will fully kill the
4348 just like any other exception. So now @abort will fully kill the
4343 embedded interpreter and the embedding code (unless that happens
4349 embedded interpreter and the embedding code (unless that happens
4344 to catch SystemExit).
4350 to catch SystemExit).
4345
4351
4346 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4352 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4347 and a debugger() method to invoke the interactive pdb debugger
4353 and a debugger() method to invoke the interactive pdb debugger
4348 after printing exception information. Also added the corresponding
4354 after printing exception information. Also added the corresponding
4349 -pdb option and @pdb magic to control this feature, and updated
4355 -pdb option and @pdb magic to control this feature, and updated
4350 the docs. After a suggestion from Christopher Hart
4356 the docs. After a suggestion from Christopher Hart
4351 (hart-AT-caltech.edu).
4357 (hart-AT-caltech.edu).
4352
4358
4353 2002-04-12 Fernando Perez <fperez@colorado.edu>
4359 2002-04-12 Fernando Perez <fperez@colorado.edu>
4354
4360
4355 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4361 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4356 the exception handlers defined by the user (not the CrashHandler)
4362 the exception handlers defined by the user (not the CrashHandler)
4357 so that user exceptions don't trigger an ipython bug report.
4363 so that user exceptions don't trigger an ipython bug report.
4358
4364
4359 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4365 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4360 configurable (it should have always been so).
4366 configurable (it should have always been so).
4361
4367
4362 2002-03-26 Fernando Perez <fperez@colorado.edu>
4368 2002-03-26 Fernando Perez <fperez@colorado.edu>
4363
4369
4364 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4370 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4365 and there to fix embedding namespace issues. This should all be
4371 and there to fix embedding namespace issues. This should all be
4366 done in a more elegant way.
4372 done in a more elegant way.
4367
4373
4368 2002-03-25 Fernando Perez <fperez@colorado.edu>
4374 2002-03-25 Fernando Perez <fperez@colorado.edu>
4369
4375
4370 * IPython/genutils.py (get_home_dir): Try to make it work under
4376 * IPython/genutils.py (get_home_dir): Try to make it work under
4371 win9x also.
4377 win9x also.
4372
4378
4373 2002-03-20 Fernando Perez <fperez@colorado.edu>
4379 2002-03-20 Fernando Perez <fperez@colorado.edu>
4374
4380
4375 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4381 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4376 sys.displayhook untouched upon __init__.
4382 sys.displayhook untouched upon __init__.
4377
4383
4378 2002-03-19 Fernando Perez <fperez@colorado.edu>
4384 2002-03-19 Fernando Perez <fperez@colorado.edu>
4379
4385
4380 * Released 0.2.9 (for embedding bug, basically).
4386 * Released 0.2.9 (for embedding bug, basically).
4381
4387
4382 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4388 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4383 exceptions so that enclosing shell's state can be restored.
4389 exceptions so that enclosing shell's state can be restored.
4384
4390
4385 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4391 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4386 naming conventions in the .ipython/ dir.
4392 naming conventions in the .ipython/ dir.
4387
4393
4388 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4394 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4389 from delimiters list so filenames with - in them get expanded.
4395 from delimiters list so filenames with - in them get expanded.
4390
4396
4391 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4397 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4392 sys.displayhook not being properly restored after an embedded call.
4398 sys.displayhook not being properly restored after an embedded call.
4393
4399
4394 2002-03-18 Fernando Perez <fperez@colorado.edu>
4400 2002-03-18 Fernando Perez <fperez@colorado.edu>
4395
4401
4396 * Released 0.2.8
4402 * Released 0.2.8
4397
4403
4398 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4404 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4399 some files weren't being included in a -upgrade.
4405 some files weren't being included in a -upgrade.
4400 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4406 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4401 on' so that the first tab completes.
4407 on' so that the first tab completes.
4402 (InteractiveShell.handle_magic): fixed bug with spaces around
4408 (InteractiveShell.handle_magic): fixed bug with spaces around
4403 quotes breaking many magic commands.
4409 quotes breaking many magic commands.
4404
4410
4405 * setup.py: added note about ignoring the syntax error messages at
4411 * setup.py: added note about ignoring the syntax error messages at
4406 installation.
4412 installation.
4407
4413
4408 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4414 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4409 streamlining the gnuplot interface, now there's only one magic @gp.
4415 streamlining the gnuplot interface, now there's only one magic @gp.
4410
4416
4411 2002-03-17 Fernando Perez <fperez@colorado.edu>
4417 2002-03-17 Fernando Perez <fperez@colorado.edu>
4412
4418
4413 * IPython/UserConfig/magic_gnuplot.py: new name for the
4419 * IPython/UserConfig/magic_gnuplot.py: new name for the
4414 example-magic_pm.py file. Much enhanced system, now with a shell
4420 example-magic_pm.py file. Much enhanced system, now with a shell
4415 for communicating directly with gnuplot, one command at a time.
4421 for communicating directly with gnuplot, one command at a time.
4416
4422
4417 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4423 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4418 setting __name__=='__main__'.
4424 setting __name__=='__main__'.
4419
4425
4420 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4426 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4421 mini-shell for accessing gnuplot from inside ipython. Should
4427 mini-shell for accessing gnuplot from inside ipython. Should
4422 extend it later for grace access too. Inspired by Arnd's
4428 extend it later for grace access too. Inspired by Arnd's
4423 suggestion.
4429 suggestion.
4424
4430
4425 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4431 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4426 calling magic functions with () in their arguments. Thanks to Arnd
4432 calling magic functions with () in their arguments. Thanks to Arnd
4427 Baecker for pointing this to me.
4433 Baecker for pointing this to me.
4428
4434
4429 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4435 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4430 infinitely for integer or complex arrays (only worked with floats).
4436 infinitely for integer or complex arrays (only worked with floats).
4431
4437
4432 2002-03-16 Fernando Perez <fperez@colorado.edu>
4438 2002-03-16 Fernando Perez <fperez@colorado.edu>
4433
4439
4434 * setup.py: Merged setup and setup_windows into a single script
4440 * setup.py: Merged setup and setup_windows into a single script
4435 which properly handles things for windows users.
4441 which properly handles things for windows users.
4436
4442
4437 2002-03-15 Fernando Perez <fperez@colorado.edu>
4443 2002-03-15 Fernando Perez <fperez@colorado.edu>
4438
4444
4439 * Big change to the manual: now the magics are all automatically
4445 * Big change to the manual: now the magics are all automatically
4440 documented. This information is generated from their docstrings
4446 documented. This information is generated from their docstrings
4441 and put in a latex file included by the manual lyx file. This way
4447 and put in a latex file included by the manual lyx file. This way
4442 we get always up to date information for the magics. The manual
4448 we get always up to date information for the magics. The manual
4443 now also has proper version information, also auto-synced.
4449 now also has proper version information, also auto-synced.
4444
4450
4445 For this to work, an undocumented --magic_docstrings option was added.
4451 For this to work, an undocumented --magic_docstrings option was added.
4446
4452
4447 2002-03-13 Fernando Perez <fperez@colorado.edu>
4453 2002-03-13 Fernando Perez <fperez@colorado.edu>
4448
4454
4449 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4455 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4450 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4456 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4451
4457
4452 2002-03-12 Fernando Perez <fperez@colorado.edu>
4458 2002-03-12 Fernando Perez <fperez@colorado.edu>
4453
4459
4454 * IPython/ultraTB.py (TermColors): changed color escapes again to
4460 * IPython/ultraTB.py (TermColors): changed color escapes again to
4455 fix the (old, reintroduced) line-wrapping bug. Basically, if
4461 fix the (old, reintroduced) line-wrapping bug. Basically, if
4456 \001..\002 aren't given in the color escapes, lines get wrapped
4462 \001..\002 aren't given in the color escapes, lines get wrapped
4457 weirdly. But giving those screws up old xterms and emacs terms. So
4463 weirdly. But giving those screws up old xterms and emacs terms. So
4458 I added some logic for emacs terms to be ok, but I can't identify old
4464 I added some logic for emacs terms to be ok, but I can't identify old
4459 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4465 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4460
4466
4461 2002-03-10 Fernando Perez <fperez@colorado.edu>
4467 2002-03-10 Fernando Perez <fperez@colorado.edu>
4462
4468
4463 * IPython/usage.py (__doc__): Various documentation cleanups and
4469 * IPython/usage.py (__doc__): Various documentation cleanups and
4464 updates, both in usage docstrings and in the manual.
4470 updates, both in usage docstrings and in the manual.
4465
4471
4466 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4472 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4467 handling of caching. Set minimum acceptabe value for having a
4473 handling of caching. Set minimum acceptabe value for having a
4468 cache at 20 values.
4474 cache at 20 values.
4469
4475
4470 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4476 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4471 install_first_time function to a method, renamed it and added an
4477 install_first_time function to a method, renamed it and added an
4472 'upgrade' mode. Now people can update their config directory with
4478 'upgrade' mode. Now people can update their config directory with
4473 a simple command line switch (-upgrade, also new).
4479 a simple command line switch (-upgrade, also new).
4474
4480
4475 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4481 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4476 @file (convenient for automagic users under Python >= 2.2).
4482 @file (convenient for automagic users under Python >= 2.2).
4477 Removed @files (it seemed more like a plural than an abbrev. of
4483 Removed @files (it seemed more like a plural than an abbrev. of
4478 'file show').
4484 'file show').
4479
4485
4480 * IPython/iplib.py (install_first_time): Fixed crash if there were
4486 * IPython/iplib.py (install_first_time): Fixed crash if there were
4481 backup files ('~') in .ipython/ install directory.
4487 backup files ('~') in .ipython/ install directory.
4482
4488
4483 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4489 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4484 system. Things look fine, but these changes are fairly
4490 system. Things look fine, but these changes are fairly
4485 intrusive. Test them for a few days.
4491 intrusive. Test them for a few days.
4486
4492
4487 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4493 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4488 the prompts system. Now all in/out prompt strings are user
4494 the prompts system. Now all in/out prompt strings are user
4489 controllable. This is particularly useful for embedding, as one
4495 controllable. This is particularly useful for embedding, as one
4490 can tag embedded instances with particular prompts.
4496 can tag embedded instances with particular prompts.
4491
4497
4492 Also removed global use of sys.ps1/2, which now allows nested
4498 Also removed global use of sys.ps1/2, which now allows nested
4493 embeddings without any problems. Added command-line options for
4499 embeddings without any problems. Added command-line options for
4494 the prompt strings.
4500 the prompt strings.
4495
4501
4496 2002-03-08 Fernando Perez <fperez@colorado.edu>
4502 2002-03-08 Fernando Perez <fperez@colorado.edu>
4497
4503
4498 * IPython/UserConfig/example-embed-short.py (ipshell): added
4504 * IPython/UserConfig/example-embed-short.py (ipshell): added
4499 example file with the bare minimum code for embedding.
4505 example file with the bare minimum code for embedding.
4500
4506
4501 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4507 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4502 functionality for the embeddable shell to be activated/deactivated
4508 functionality for the embeddable shell to be activated/deactivated
4503 either globally or at each call.
4509 either globally or at each call.
4504
4510
4505 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4511 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4506 rewriting the prompt with '--->' for auto-inputs with proper
4512 rewriting the prompt with '--->' for auto-inputs with proper
4507 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4513 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4508 this is handled by the prompts class itself, as it should.
4514 this is handled by the prompts class itself, as it should.
4509
4515
4510 2002-03-05 Fernando Perez <fperez@colorado.edu>
4516 2002-03-05 Fernando Perez <fperez@colorado.edu>
4511
4517
4512 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4518 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4513 @logstart to avoid name clashes with the math log function.
4519 @logstart to avoid name clashes with the math log function.
4514
4520
4515 * Big updates to X/Emacs section of the manual.
4521 * Big updates to X/Emacs section of the manual.
4516
4522
4517 * Removed ipython_emacs. Milan explained to me how to pass
4523 * Removed ipython_emacs. Milan explained to me how to pass
4518 arguments to ipython through Emacs. Some day I'm going to end up
4524 arguments to ipython through Emacs. Some day I'm going to end up
4519 learning some lisp...
4525 learning some lisp...
4520
4526
4521 2002-03-04 Fernando Perez <fperez@colorado.edu>
4527 2002-03-04 Fernando Perez <fperez@colorado.edu>
4522
4528
4523 * IPython/ipython_emacs: Created script to be used as the
4529 * IPython/ipython_emacs: Created script to be used as the
4524 py-python-command Emacs variable so we can pass IPython
4530 py-python-command Emacs variable so we can pass IPython
4525 parameters. I can't figure out how to tell Emacs directly to pass
4531 parameters. I can't figure out how to tell Emacs directly to pass
4526 parameters to IPython, so a dummy shell script will do it.
4532 parameters to IPython, so a dummy shell script will do it.
4527
4533
4528 Other enhancements made for things to work better under Emacs'
4534 Other enhancements made for things to work better under Emacs'
4529 various types of terminals. Many thanks to Milan Zamazal
4535 various types of terminals. Many thanks to Milan Zamazal
4530 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4536 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4531
4537
4532 2002-03-01 Fernando Perez <fperez@colorado.edu>
4538 2002-03-01 Fernando Perez <fperez@colorado.edu>
4533
4539
4534 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4540 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4535 that loading of readline is now optional. This gives better
4541 that loading of readline is now optional. This gives better
4536 control to emacs users.
4542 control to emacs users.
4537
4543
4538 * IPython/ultraTB.py (__date__): Modified color escape sequences
4544 * IPython/ultraTB.py (__date__): Modified color escape sequences
4539 and now things work fine under xterm and in Emacs' term buffers
4545 and now things work fine under xterm and in Emacs' term buffers
4540 (though not shell ones). Well, in emacs you get colors, but all
4546 (though not shell ones). Well, in emacs you get colors, but all
4541 seem to be 'light' colors (no difference between dark and light
4547 seem to be 'light' colors (no difference between dark and light
4542 ones). But the garbage chars are gone, and also in xterms. It
4548 ones). But the garbage chars are gone, and also in xterms. It
4543 seems that now I'm using 'cleaner' ansi sequences.
4549 seems that now I'm using 'cleaner' ansi sequences.
4544
4550
4545 2002-02-21 Fernando Perez <fperez@colorado.edu>
4551 2002-02-21 Fernando Perez <fperez@colorado.edu>
4546
4552
4547 * Released 0.2.7 (mainly to publish the scoping fix).
4553 * Released 0.2.7 (mainly to publish the scoping fix).
4548
4554
4549 * IPython/Logger.py (Logger.logstate): added. A corresponding
4555 * IPython/Logger.py (Logger.logstate): added. A corresponding
4550 @logstate magic was created.
4556 @logstate magic was created.
4551
4557
4552 * IPython/Magic.py: fixed nested scoping problem under Python
4558 * IPython/Magic.py: fixed nested scoping problem under Python
4553 2.1.x (automagic wasn't working).
4559 2.1.x (automagic wasn't working).
4554
4560
4555 2002-02-20 Fernando Perez <fperez@colorado.edu>
4561 2002-02-20 Fernando Perez <fperez@colorado.edu>
4556
4562
4557 * Released 0.2.6.
4563 * Released 0.2.6.
4558
4564
4559 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4565 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4560 option so that logs can come out without any headers at all.
4566 option so that logs can come out without any headers at all.
4561
4567
4562 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4568 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4563 SciPy.
4569 SciPy.
4564
4570
4565 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4571 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4566 that embedded IPython calls don't require vars() to be explicitly
4572 that embedded IPython calls don't require vars() to be explicitly
4567 passed. Now they are extracted from the caller's frame (code
4573 passed. Now they are extracted from the caller's frame (code
4568 snatched from Eric Jones' weave). Added better documentation to
4574 snatched from Eric Jones' weave). Added better documentation to
4569 the section on embedding and the example file.
4575 the section on embedding and the example file.
4570
4576
4571 * IPython/genutils.py (page): Changed so that under emacs, it just
4577 * IPython/genutils.py (page): Changed so that under emacs, it just
4572 prints the string. You can then page up and down in the emacs
4578 prints the string. You can then page up and down in the emacs
4573 buffer itself. This is how the builtin help() works.
4579 buffer itself. This is how the builtin help() works.
4574
4580
4575 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4581 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4576 macro scoping: macros need to be executed in the user's namespace
4582 macro scoping: macros need to be executed in the user's namespace
4577 to work as if they had been typed by the user.
4583 to work as if they had been typed by the user.
4578
4584
4579 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4585 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4580 execute automatically (no need to type 'exec...'). They then
4586 execute automatically (no need to type 'exec...'). They then
4581 behave like 'true macros'. The printing system was also modified
4587 behave like 'true macros'. The printing system was also modified
4582 for this to work.
4588 for this to work.
4583
4589
4584 2002-02-19 Fernando Perez <fperez@colorado.edu>
4590 2002-02-19 Fernando Perez <fperez@colorado.edu>
4585
4591
4586 * IPython/genutils.py (page_file): new function for paging files
4592 * IPython/genutils.py (page_file): new function for paging files
4587 in an OS-independent way. Also necessary for file viewing to work
4593 in an OS-independent way. Also necessary for file viewing to work
4588 well inside Emacs buffers.
4594 well inside Emacs buffers.
4589 (page): Added checks for being in an emacs buffer.
4595 (page): Added checks for being in an emacs buffer.
4590 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4596 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4591 same bug in iplib.
4597 same bug in iplib.
4592
4598
4593 2002-02-18 Fernando Perez <fperez@colorado.edu>
4599 2002-02-18 Fernando Perez <fperez@colorado.edu>
4594
4600
4595 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4601 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4596 of readline so that IPython can work inside an Emacs buffer.
4602 of readline so that IPython can work inside an Emacs buffer.
4597
4603
4598 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4604 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4599 method signatures (they weren't really bugs, but it looks cleaner
4605 method signatures (they weren't really bugs, but it looks cleaner
4600 and keeps PyChecker happy).
4606 and keeps PyChecker happy).
4601
4607
4602 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4608 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4603 for implementing various user-defined hooks. Currently only
4609 for implementing various user-defined hooks. Currently only
4604 display is done.
4610 display is done.
4605
4611
4606 * IPython/Prompts.py (CachedOutput._display): changed display
4612 * IPython/Prompts.py (CachedOutput._display): changed display
4607 functions so that they can be dynamically changed by users easily.
4613 functions so that they can be dynamically changed by users easily.
4608
4614
4609 * IPython/Extensions/numeric_formats.py (num_display): added an
4615 * IPython/Extensions/numeric_formats.py (num_display): added an
4610 extension for printing NumPy arrays in flexible manners. It
4616 extension for printing NumPy arrays in flexible manners. It
4611 doesn't do anything yet, but all the structure is in
4617 doesn't do anything yet, but all the structure is in
4612 place. Ultimately the plan is to implement output format control
4618 place. Ultimately the plan is to implement output format control
4613 like in Octave.
4619 like in Octave.
4614
4620
4615 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4621 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4616 methods are found at run-time by all the automatic machinery.
4622 methods are found at run-time by all the automatic machinery.
4617
4623
4618 2002-02-17 Fernando Perez <fperez@colorado.edu>
4624 2002-02-17 Fernando Perez <fperez@colorado.edu>
4619
4625
4620 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4626 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4621 whole file a little.
4627 whole file a little.
4622
4628
4623 * ToDo: closed this document. Now there's a new_design.lyx
4629 * ToDo: closed this document. Now there's a new_design.lyx
4624 document for all new ideas. Added making a pdf of it for the
4630 document for all new ideas. Added making a pdf of it for the
4625 end-user distro.
4631 end-user distro.
4626
4632
4627 * IPython/Logger.py (Logger.switch_log): Created this to replace
4633 * IPython/Logger.py (Logger.switch_log): Created this to replace
4628 logon() and logoff(). It also fixes a nasty crash reported by
4634 logon() and logoff(). It also fixes a nasty crash reported by
4629 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4635 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4630
4636
4631 * IPython/iplib.py (complete): got auto-completion to work with
4637 * IPython/iplib.py (complete): got auto-completion to work with
4632 automagic (I had wanted this for a long time).
4638 automagic (I had wanted this for a long time).
4633
4639
4634 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4640 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4635 to @file, since file() is now a builtin and clashes with automagic
4641 to @file, since file() is now a builtin and clashes with automagic
4636 for @file.
4642 for @file.
4637
4643
4638 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4644 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4639 of this was previously in iplib, which had grown to more than 2000
4645 of this was previously in iplib, which had grown to more than 2000
4640 lines, way too long. No new functionality, but it makes managing
4646 lines, way too long. No new functionality, but it makes managing
4641 the code a bit easier.
4647 the code a bit easier.
4642
4648
4643 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4649 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4644 information to crash reports.
4650 information to crash reports.
4645
4651
4646 2002-02-12 Fernando Perez <fperez@colorado.edu>
4652 2002-02-12 Fernando Perez <fperez@colorado.edu>
4647
4653
4648 * Released 0.2.5.
4654 * Released 0.2.5.
4649
4655
4650 2002-02-11 Fernando Perez <fperez@colorado.edu>
4656 2002-02-11 Fernando Perez <fperez@colorado.edu>
4651
4657
4652 * Wrote a relatively complete Windows installer. It puts
4658 * Wrote a relatively complete Windows installer. It puts
4653 everything in place, creates Start Menu entries and fixes the
4659 everything in place, creates Start Menu entries and fixes the
4654 color issues. Nothing fancy, but it works.
4660 color issues. Nothing fancy, but it works.
4655
4661
4656 2002-02-10 Fernando Perez <fperez@colorado.edu>
4662 2002-02-10 Fernando Perez <fperez@colorado.edu>
4657
4663
4658 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4664 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4659 os.path.expanduser() call so that we can type @run ~/myfile.py and
4665 os.path.expanduser() call so that we can type @run ~/myfile.py and
4660 have thigs work as expected.
4666 have thigs work as expected.
4661
4667
4662 * IPython/genutils.py (page): fixed exception handling so things
4668 * IPython/genutils.py (page): fixed exception handling so things
4663 work both in Unix and Windows correctly. Quitting a pager triggers
4669 work both in Unix and Windows correctly. Quitting a pager triggers
4664 an IOError/broken pipe in Unix, and in windows not finding a pager
4670 an IOError/broken pipe in Unix, and in windows not finding a pager
4665 is also an IOError, so I had to actually look at the return value
4671 is also an IOError, so I had to actually look at the return value
4666 of the exception, not just the exception itself. Should be ok now.
4672 of the exception, not just the exception itself. Should be ok now.
4667
4673
4668 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4674 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4669 modified to allow case-insensitive color scheme changes.
4675 modified to allow case-insensitive color scheme changes.
4670
4676
4671 2002-02-09 Fernando Perez <fperez@colorado.edu>
4677 2002-02-09 Fernando Perez <fperez@colorado.edu>
4672
4678
4673 * IPython/genutils.py (native_line_ends): new function to leave
4679 * IPython/genutils.py (native_line_ends): new function to leave
4674 user config files with os-native line-endings.
4680 user config files with os-native line-endings.
4675
4681
4676 * README and manual updates.
4682 * README and manual updates.
4677
4683
4678 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4684 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4679 instead of StringType to catch Unicode strings.
4685 instead of StringType to catch Unicode strings.
4680
4686
4681 * IPython/genutils.py (filefind): fixed bug for paths with
4687 * IPython/genutils.py (filefind): fixed bug for paths with
4682 embedded spaces (very common in Windows).
4688 embedded spaces (very common in Windows).
4683
4689
4684 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4690 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4685 files under Windows, so that they get automatically associated
4691 files under Windows, so that they get automatically associated
4686 with a text editor. Windows makes it a pain to handle
4692 with a text editor. Windows makes it a pain to handle
4687 extension-less files.
4693 extension-less files.
4688
4694
4689 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4695 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4690 warning about readline only occur for Posix. In Windows there's no
4696 warning about readline only occur for Posix. In Windows there's no
4691 way to get readline, so why bother with the warning.
4697 way to get readline, so why bother with the warning.
4692
4698
4693 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4699 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4694 for __str__ instead of dir(self), since dir() changed in 2.2.
4700 for __str__ instead of dir(self), since dir() changed in 2.2.
4695
4701
4696 * Ported to Windows! Tested on XP, I suspect it should work fine
4702 * Ported to Windows! Tested on XP, I suspect it should work fine
4697 on NT/2000, but I don't think it will work on 98 et al. That
4703 on NT/2000, but I don't think it will work on 98 et al. That
4698 series of Windows is such a piece of junk anyway that I won't try
4704 series of Windows is such a piece of junk anyway that I won't try
4699 porting it there. The XP port was straightforward, showed a few
4705 porting it there. The XP port was straightforward, showed a few
4700 bugs here and there (fixed all), in particular some string
4706 bugs here and there (fixed all), in particular some string
4701 handling stuff which required considering Unicode strings (which
4707 handling stuff which required considering Unicode strings (which
4702 Windows uses). This is good, but hasn't been too tested :) No
4708 Windows uses). This is good, but hasn't been too tested :) No
4703 fancy installer yet, I'll put a note in the manual so people at
4709 fancy installer yet, I'll put a note in the manual so people at
4704 least make manually a shortcut.
4710 least make manually a shortcut.
4705
4711
4706 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4712 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4707 into a single one, "colors". This now controls both prompt and
4713 into a single one, "colors". This now controls both prompt and
4708 exception color schemes, and can be changed both at startup
4714 exception color schemes, and can be changed both at startup
4709 (either via command-line switches or via ipythonrc files) and at
4715 (either via command-line switches or via ipythonrc files) and at
4710 runtime, with @colors.
4716 runtime, with @colors.
4711 (Magic.magic_run): renamed @prun to @run and removed the old
4717 (Magic.magic_run): renamed @prun to @run and removed the old
4712 @run. The two were too similar to warrant keeping both.
4718 @run. The two were too similar to warrant keeping both.
4713
4719
4714 2002-02-03 Fernando Perez <fperez@colorado.edu>
4720 2002-02-03 Fernando Perez <fperez@colorado.edu>
4715
4721
4716 * IPython/iplib.py (install_first_time): Added comment on how to
4722 * IPython/iplib.py (install_first_time): Added comment on how to
4717 configure the color options for first-time users. Put a <return>
4723 configure the color options for first-time users. Put a <return>
4718 request at the end so that small-terminal users get a chance to
4724 request at the end so that small-terminal users get a chance to
4719 read the startup info.
4725 read the startup info.
4720
4726
4721 2002-01-23 Fernando Perez <fperez@colorado.edu>
4727 2002-01-23 Fernando Perez <fperez@colorado.edu>
4722
4728
4723 * IPython/iplib.py (CachedOutput.update): Changed output memory
4729 * IPython/iplib.py (CachedOutput.update): Changed output memory
4724 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4730 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4725 input history we still use _i. Did this b/c these variable are
4731 input history we still use _i. Did this b/c these variable are
4726 very commonly used in interactive work, so the less we need to
4732 very commonly used in interactive work, so the less we need to
4727 type the better off we are.
4733 type the better off we are.
4728 (Magic.magic_prun): updated @prun to better handle the namespaces
4734 (Magic.magic_prun): updated @prun to better handle the namespaces
4729 the file will run in, including a fix for __name__ not being set
4735 the file will run in, including a fix for __name__ not being set
4730 before.
4736 before.
4731
4737
4732 2002-01-20 Fernando Perez <fperez@colorado.edu>
4738 2002-01-20 Fernando Perez <fperez@colorado.edu>
4733
4739
4734 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4740 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4735 extra garbage for Python 2.2. Need to look more carefully into
4741 extra garbage for Python 2.2. Need to look more carefully into
4736 this later.
4742 this later.
4737
4743
4738 2002-01-19 Fernando Perez <fperez@colorado.edu>
4744 2002-01-19 Fernando Perez <fperez@colorado.edu>
4739
4745
4740 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4746 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4741 display SyntaxError exceptions properly formatted when they occur
4747 display SyntaxError exceptions properly formatted when they occur
4742 (they can be triggered by imported code).
4748 (they can be triggered by imported code).
4743
4749
4744 2002-01-18 Fernando Perez <fperez@colorado.edu>
4750 2002-01-18 Fernando Perez <fperez@colorado.edu>
4745
4751
4746 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4752 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4747 SyntaxError exceptions are reported nicely formatted, instead of
4753 SyntaxError exceptions are reported nicely formatted, instead of
4748 spitting out only offset information as before.
4754 spitting out only offset information as before.
4749 (Magic.magic_prun): Added the @prun function for executing
4755 (Magic.magic_prun): Added the @prun function for executing
4750 programs with command line args inside IPython.
4756 programs with command line args inside IPython.
4751
4757
4752 2002-01-16 Fernando Perez <fperez@colorado.edu>
4758 2002-01-16 Fernando Perez <fperez@colorado.edu>
4753
4759
4754 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4760 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4755 to *not* include the last item given in a range. This brings their
4761 to *not* include the last item given in a range. This brings their
4756 behavior in line with Python's slicing:
4762 behavior in line with Python's slicing:
4757 a[n1:n2] -> a[n1]...a[n2-1]
4763 a[n1:n2] -> a[n1]...a[n2-1]
4758 It may be a bit less convenient, but I prefer to stick to Python's
4764 It may be a bit less convenient, but I prefer to stick to Python's
4759 conventions *everywhere*, so users never have to wonder.
4765 conventions *everywhere*, so users never have to wonder.
4760 (Magic.magic_macro): Added @macro function to ease the creation of
4766 (Magic.magic_macro): Added @macro function to ease the creation of
4761 macros.
4767 macros.
4762
4768
4763 2002-01-05 Fernando Perez <fperez@colorado.edu>
4769 2002-01-05 Fernando Perez <fperez@colorado.edu>
4764
4770
4765 * Released 0.2.4.
4771 * Released 0.2.4.
4766
4772
4767 * IPython/iplib.py (Magic.magic_pdef):
4773 * IPython/iplib.py (Magic.magic_pdef):
4768 (InteractiveShell.safe_execfile): report magic lines and error
4774 (InteractiveShell.safe_execfile): report magic lines and error
4769 lines without line numbers so one can easily copy/paste them for
4775 lines without line numbers so one can easily copy/paste them for
4770 re-execution.
4776 re-execution.
4771
4777
4772 * Updated manual with recent changes.
4778 * Updated manual with recent changes.
4773
4779
4774 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4780 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4775 docstring printing when class? is called. Very handy for knowing
4781 docstring printing when class? is called. Very handy for knowing
4776 how to create class instances (as long as __init__ is well
4782 how to create class instances (as long as __init__ is well
4777 documented, of course :)
4783 documented, of course :)
4778 (Magic.magic_doc): print both class and constructor docstrings.
4784 (Magic.magic_doc): print both class and constructor docstrings.
4779 (Magic.magic_pdef): give constructor info if passed a class and
4785 (Magic.magic_pdef): give constructor info if passed a class and
4780 __call__ info for callable object instances.
4786 __call__ info for callable object instances.
4781
4787
4782 2002-01-04 Fernando Perez <fperez@colorado.edu>
4788 2002-01-04 Fernando Perez <fperez@colorado.edu>
4783
4789
4784 * Made deep_reload() off by default. It doesn't always work
4790 * Made deep_reload() off by default. It doesn't always work
4785 exactly as intended, so it's probably safer to have it off. It's
4791 exactly as intended, so it's probably safer to have it off. It's
4786 still available as dreload() anyway, so nothing is lost.
4792 still available as dreload() anyway, so nothing is lost.
4787
4793
4788 2002-01-02 Fernando Perez <fperez@colorado.edu>
4794 2002-01-02 Fernando Perez <fperez@colorado.edu>
4789
4795
4790 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4796 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4791 so I wanted an updated release).
4797 so I wanted an updated release).
4792
4798
4793 2001-12-27 Fernando Perez <fperez@colorado.edu>
4799 2001-12-27 Fernando Perez <fperez@colorado.edu>
4794
4800
4795 * IPython/iplib.py (InteractiveShell.interact): Added the original
4801 * IPython/iplib.py (InteractiveShell.interact): Added the original
4796 code from 'code.py' for this module in order to change the
4802 code from 'code.py' for this module in order to change the
4797 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4803 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4798 the history cache would break when the user hit Ctrl-C, and
4804 the history cache would break when the user hit Ctrl-C, and
4799 interact() offers no way to add any hooks to it.
4805 interact() offers no way to add any hooks to it.
4800
4806
4801 2001-12-23 Fernando Perez <fperez@colorado.edu>
4807 2001-12-23 Fernando Perez <fperez@colorado.edu>
4802
4808
4803 * setup.py: added check for 'MANIFEST' before trying to remove
4809 * setup.py: added check for 'MANIFEST' before trying to remove
4804 it. Thanks to Sean Reifschneider.
4810 it. Thanks to Sean Reifschneider.
4805
4811
4806 2001-12-22 Fernando Perez <fperez@colorado.edu>
4812 2001-12-22 Fernando Perez <fperez@colorado.edu>
4807
4813
4808 * Released 0.2.2.
4814 * Released 0.2.2.
4809
4815
4810 * Finished (reasonably) writing the manual. Later will add the
4816 * Finished (reasonably) writing the manual. Later will add the
4811 python-standard navigation stylesheets, but for the time being
4817 python-standard navigation stylesheets, but for the time being
4812 it's fairly complete. Distribution will include html and pdf
4818 it's fairly complete. Distribution will include html and pdf
4813 versions.
4819 versions.
4814
4820
4815 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4821 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4816 (MayaVi author).
4822 (MayaVi author).
4817
4823
4818 2001-12-21 Fernando Perez <fperez@colorado.edu>
4824 2001-12-21 Fernando Perez <fperez@colorado.edu>
4819
4825
4820 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4826 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4821 good public release, I think (with the manual and the distutils
4827 good public release, I think (with the manual and the distutils
4822 installer). The manual can use some work, but that can go
4828 installer). The manual can use some work, but that can go
4823 slowly. Otherwise I think it's quite nice for end users. Next
4829 slowly. Otherwise I think it's quite nice for end users. Next
4824 summer, rewrite the guts of it...
4830 summer, rewrite the guts of it...
4825
4831
4826 * Changed format of ipythonrc files to use whitespace as the
4832 * Changed format of ipythonrc files to use whitespace as the
4827 separator instead of an explicit '='. Cleaner.
4833 separator instead of an explicit '='. Cleaner.
4828
4834
4829 2001-12-20 Fernando Perez <fperez@colorado.edu>
4835 2001-12-20 Fernando Perez <fperez@colorado.edu>
4830
4836
4831 * Started a manual in LyX. For now it's just a quick merge of the
4837 * Started a manual in LyX. For now it's just a quick merge of the
4832 various internal docstrings and READMEs. Later it may grow into a
4838 various internal docstrings and READMEs. Later it may grow into a
4833 nice, full-blown manual.
4839 nice, full-blown manual.
4834
4840
4835 * Set up a distutils based installer. Installation should now be
4841 * Set up a distutils based installer. Installation should now be
4836 trivially simple for end-users.
4842 trivially simple for end-users.
4837
4843
4838 2001-12-11 Fernando Perez <fperez@colorado.edu>
4844 2001-12-11 Fernando Perez <fperez@colorado.edu>
4839
4845
4840 * Released 0.2.0. First public release, announced it at
4846 * Released 0.2.0. First public release, announced it at
4841 comp.lang.python. From now on, just bugfixes...
4847 comp.lang.python. From now on, just bugfixes...
4842
4848
4843 * Went through all the files, set copyright/license notices and
4849 * Went through all the files, set copyright/license notices and
4844 cleaned up things. Ready for release.
4850 cleaned up things. Ready for release.
4845
4851
4846 2001-12-10 Fernando Perez <fperez@colorado.edu>
4852 2001-12-10 Fernando Perez <fperez@colorado.edu>
4847
4853
4848 * Changed the first-time installer not to use tarfiles. It's more
4854 * Changed the first-time installer not to use tarfiles. It's more
4849 robust now and less unix-dependent. Also makes it easier for
4855 robust now and less unix-dependent. Also makes it easier for
4850 people to later upgrade versions.
4856 people to later upgrade versions.
4851
4857
4852 * Changed @exit to @abort to reflect the fact that it's pretty
4858 * Changed @exit to @abort to reflect the fact that it's pretty
4853 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4859 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4854 becomes significant only when IPyhton is embedded: in that case,
4860 becomes significant only when IPyhton is embedded: in that case,
4855 C-D closes IPython only, but @abort kills the enclosing program
4861 C-D closes IPython only, but @abort kills the enclosing program
4856 too (unless it had called IPython inside a try catching
4862 too (unless it had called IPython inside a try catching
4857 SystemExit).
4863 SystemExit).
4858
4864
4859 * Created Shell module which exposes the actuall IPython Shell
4865 * Created Shell module which exposes the actuall IPython Shell
4860 classes, currently the normal and the embeddable one. This at
4866 classes, currently the normal and the embeddable one. This at
4861 least offers a stable interface we won't need to change when
4867 least offers a stable interface we won't need to change when
4862 (later) the internals are rewritten. That rewrite will be confined
4868 (later) the internals are rewritten. That rewrite will be confined
4863 to iplib and ipmaker, but the Shell interface should remain as is.
4869 to iplib and ipmaker, but the Shell interface should remain as is.
4864
4870
4865 * Added embed module which offers an embeddable IPShell object,
4871 * Added embed module which offers an embeddable IPShell object,
4866 useful to fire up IPython *inside* a running program. Great for
4872 useful to fire up IPython *inside* a running program. Great for
4867 debugging or dynamical data analysis.
4873 debugging or dynamical data analysis.
4868
4874
4869 2001-12-08 Fernando Perez <fperez@colorado.edu>
4875 2001-12-08 Fernando Perez <fperez@colorado.edu>
4870
4876
4871 * Fixed small bug preventing seeing info from methods of defined
4877 * Fixed small bug preventing seeing info from methods of defined
4872 objects (incorrect namespace in _ofind()).
4878 objects (incorrect namespace in _ofind()).
4873
4879
4874 * Documentation cleanup. Moved the main usage docstrings to a
4880 * Documentation cleanup. Moved the main usage docstrings to a
4875 separate file, usage.py (cleaner to maintain, and hopefully in the
4881 separate file, usage.py (cleaner to maintain, and hopefully in the
4876 future some perlpod-like way of producing interactive, man and
4882 future some perlpod-like way of producing interactive, man and
4877 html docs out of it will be found).
4883 html docs out of it will be found).
4878
4884
4879 * Added @profile to see your profile at any time.
4885 * Added @profile to see your profile at any time.
4880
4886
4881 * Added @p as an alias for 'print'. It's especially convenient if
4887 * Added @p as an alias for 'print'. It's especially convenient if
4882 using automagic ('p x' prints x).
4888 using automagic ('p x' prints x).
4883
4889
4884 * Small cleanups and fixes after a pychecker run.
4890 * Small cleanups and fixes after a pychecker run.
4885
4891
4886 * Changed the @cd command to handle @cd - and @cd -<n> for
4892 * Changed the @cd command to handle @cd - and @cd -<n> for
4887 visiting any directory in _dh.
4893 visiting any directory in _dh.
4888
4894
4889 * Introduced _dh, a history of visited directories. @dhist prints
4895 * Introduced _dh, a history of visited directories. @dhist prints
4890 it out with numbers.
4896 it out with numbers.
4891
4897
4892 2001-12-07 Fernando Perez <fperez@colorado.edu>
4898 2001-12-07 Fernando Perez <fperez@colorado.edu>
4893
4899
4894 * Released 0.1.22
4900 * Released 0.1.22
4895
4901
4896 * Made initialization a bit more robust against invalid color
4902 * Made initialization a bit more robust against invalid color
4897 options in user input (exit, not traceback-crash).
4903 options in user input (exit, not traceback-crash).
4898
4904
4899 * Changed the bug crash reporter to write the report only in the
4905 * Changed the bug crash reporter to write the report only in the
4900 user's .ipython directory. That way IPython won't litter people's
4906 user's .ipython directory. That way IPython won't litter people's
4901 hard disks with crash files all over the place. Also print on
4907 hard disks with crash files all over the place. Also print on
4902 screen the necessary mail command.
4908 screen the necessary mail command.
4903
4909
4904 * With the new ultraTB, implemented LightBG color scheme for light
4910 * With the new ultraTB, implemented LightBG color scheme for light
4905 background terminals. A lot of people like white backgrounds, so I
4911 background terminals. A lot of people like white backgrounds, so I
4906 guess we should at least give them something readable.
4912 guess we should at least give them something readable.
4907
4913
4908 2001-12-06 Fernando Perez <fperez@colorado.edu>
4914 2001-12-06 Fernando Perez <fperez@colorado.edu>
4909
4915
4910 * Modified the structure of ultraTB. Now there's a proper class
4916 * Modified the structure of ultraTB. Now there's a proper class
4911 for tables of color schemes which allow adding schemes easily and
4917 for tables of color schemes which allow adding schemes easily and
4912 switching the active scheme without creating a new instance every
4918 switching the active scheme without creating a new instance every
4913 time (which was ridiculous). The syntax for creating new schemes
4919 time (which was ridiculous). The syntax for creating new schemes
4914 is also cleaner. I think ultraTB is finally done, with a clean
4920 is also cleaner. I think ultraTB is finally done, with a clean
4915 class structure. Names are also much cleaner (now there's proper
4921 class structure. Names are also much cleaner (now there's proper
4916 color tables, no need for every variable to also have 'color' in
4922 color tables, no need for every variable to also have 'color' in
4917 its name).
4923 its name).
4918
4924
4919 * Broke down genutils into separate files. Now genutils only
4925 * Broke down genutils into separate files. Now genutils only
4920 contains utility functions, and classes have been moved to their
4926 contains utility functions, and classes have been moved to their
4921 own files (they had enough independent functionality to warrant
4927 own files (they had enough independent functionality to warrant
4922 it): ConfigLoader, OutputTrap, Struct.
4928 it): ConfigLoader, OutputTrap, Struct.
4923
4929
4924 2001-12-05 Fernando Perez <fperez@colorado.edu>
4930 2001-12-05 Fernando Perez <fperez@colorado.edu>
4925
4931
4926 * IPython turns 21! Released version 0.1.21, as a candidate for
4932 * IPython turns 21! Released version 0.1.21, as a candidate for
4927 public consumption. If all goes well, release in a few days.
4933 public consumption. If all goes well, release in a few days.
4928
4934
4929 * Fixed path bug (files in Extensions/ directory wouldn't be found
4935 * Fixed path bug (files in Extensions/ directory wouldn't be found
4930 unless IPython/ was explicitly in sys.path).
4936 unless IPython/ was explicitly in sys.path).
4931
4937
4932 * Extended the FlexCompleter class as MagicCompleter to allow
4938 * Extended the FlexCompleter class as MagicCompleter to allow
4933 completion of @-starting lines.
4939 completion of @-starting lines.
4934
4940
4935 * Created __release__.py file as a central repository for release
4941 * Created __release__.py file as a central repository for release
4936 info that other files can read from.
4942 info that other files can read from.
4937
4943
4938 * Fixed small bug in logging: when logging was turned on in
4944 * Fixed small bug in logging: when logging was turned on in
4939 mid-session, old lines with special meanings (!@?) were being
4945 mid-session, old lines with special meanings (!@?) were being
4940 logged without the prepended comment, which is necessary since
4946 logged without the prepended comment, which is necessary since
4941 they are not truly valid python syntax. This should make session
4947 they are not truly valid python syntax. This should make session
4942 restores produce less errors.
4948 restores produce less errors.
4943
4949
4944 * The namespace cleanup forced me to make a FlexCompleter class
4950 * The namespace cleanup forced me to make a FlexCompleter class
4945 which is nothing but a ripoff of rlcompleter, but with selectable
4951 which is nothing but a ripoff of rlcompleter, but with selectable
4946 namespace (rlcompleter only works in __main__.__dict__). I'll try
4952 namespace (rlcompleter only works in __main__.__dict__). I'll try
4947 to submit a note to the authors to see if this change can be
4953 to submit a note to the authors to see if this change can be
4948 incorporated in future rlcompleter releases (Dec.6: done)
4954 incorporated in future rlcompleter releases (Dec.6: done)
4949
4955
4950 * More fixes to namespace handling. It was a mess! Now all
4956 * More fixes to namespace handling. It was a mess! Now all
4951 explicit references to __main__.__dict__ are gone (except when
4957 explicit references to __main__.__dict__ are gone (except when
4952 really needed) and everything is handled through the namespace
4958 really needed) and everything is handled through the namespace
4953 dicts in the IPython instance. We seem to be getting somewhere
4959 dicts in the IPython instance. We seem to be getting somewhere
4954 with this, finally...
4960 with this, finally...
4955
4961
4956 * Small documentation updates.
4962 * Small documentation updates.
4957
4963
4958 * Created the Extensions directory under IPython (with an
4964 * Created the Extensions directory under IPython (with an
4959 __init__.py). Put the PhysicalQ stuff there. This directory should
4965 __init__.py). Put the PhysicalQ stuff there. This directory should
4960 be used for all special-purpose extensions.
4966 be used for all special-purpose extensions.
4961
4967
4962 * File renaming:
4968 * File renaming:
4963 ipythonlib --> ipmaker
4969 ipythonlib --> ipmaker
4964 ipplib --> iplib
4970 ipplib --> iplib
4965 This makes a bit more sense in terms of what these files actually do.
4971 This makes a bit more sense in terms of what these files actually do.
4966
4972
4967 * Moved all the classes and functions in ipythonlib to ipplib, so
4973 * Moved all the classes and functions in ipythonlib to ipplib, so
4968 now ipythonlib only has make_IPython(). This will ease up its
4974 now ipythonlib only has make_IPython(). This will ease up its
4969 splitting in smaller functional chunks later.
4975 splitting in smaller functional chunks later.
4970
4976
4971 * Cleaned up (done, I think) output of @whos. Better column
4977 * Cleaned up (done, I think) output of @whos. Better column
4972 formatting, and now shows str(var) for as much as it can, which is
4978 formatting, and now shows str(var) for as much as it can, which is
4973 typically what one gets with a 'print var'.
4979 typically what one gets with a 'print var'.
4974
4980
4975 2001-12-04 Fernando Perez <fperez@colorado.edu>
4981 2001-12-04 Fernando Perez <fperez@colorado.edu>
4976
4982
4977 * Fixed namespace problems. Now builtin/IPyhton/user names get
4983 * Fixed namespace problems. Now builtin/IPyhton/user names get
4978 properly reported in their namespace. Internal namespace handling
4984 properly reported in their namespace. Internal namespace handling
4979 is finally getting decent (not perfect yet, but much better than
4985 is finally getting decent (not perfect yet, but much better than
4980 the ad-hoc mess we had).
4986 the ad-hoc mess we had).
4981
4987
4982 * Removed -exit option. If people just want to run a python
4988 * Removed -exit option. If people just want to run a python
4983 script, that's what the normal interpreter is for. Less
4989 script, that's what the normal interpreter is for. Less
4984 unnecessary options, less chances for bugs.
4990 unnecessary options, less chances for bugs.
4985
4991
4986 * Added a crash handler which generates a complete post-mortem if
4992 * Added a crash handler which generates a complete post-mortem if
4987 IPython crashes. This will help a lot in tracking bugs down the
4993 IPython crashes. This will help a lot in tracking bugs down the
4988 road.
4994 road.
4989
4995
4990 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4996 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4991 which were boud to functions being reassigned would bypass the
4997 which were boud to functions being reassigned would bypass the
4992 logger, breaking the sync of _il with the prompt counter. This
4998 logger, breaking the sync of _il with the prompt counter. This
4993 would then crash IPython later when a new line was logged.
4999 would then crash IPython later when a new line was logged.
4994
5000
4995 2001-12-02 Fernando Perez <fperez@colorado.edu>
5001 2001-12-02 Fernando Perez <fperez@colorado.edu>
4996
5002
4997 * Made IPython a package. This means people don't have to clutter
5003 * Made IPython a package. This means people don't have to clutter
4998 their sys.path with yet another directory. Changed the INSTALL
5004 their sys.path with yet another directory. Changed the INSTALL
4999 file accordingly.
5005 file accordingly.
5000
5006
5001 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5007 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5002 sorts its output (so @who shows it sorted) and @whos formats the
5008 sorts its output (so @who shows it sorted) and @whos formats the
5003 table according to the width of the first column. Nicer, easier to
5009 table according to the width of the first column. Nicer, easier to
5004 read. Todo: write a generic table_format() which takes a list of
5010 read. Todo: write a generic table_format() which takes a list of
5005 lists and prints it nicely formatted, with optional row/column
5011 lists and prints it nicely formatted, with optional row/column
5006 separators and proper padding and justification.
5012 separators and proper padding and justification.
5007
5013
5008 * Released 0.1.20
5014 * Released 0.1.20
5009
5015
5010 * Fixed bug in @log which would reverse the inputcache list (a
5016 * Fixed bug in @log which would reverse the inputcache list (a
5011 copy operation was missing).
5017 copy operation was missing).
5012
5018
5013 * Code cleanup. @config was changed to use page(). Better, since
5019 * Code cleanup. @config was changed to use page(). Better, since
5014 its output is always quite long.
5020 its output is always quite long.
5015
5021
5016 * Itpl is back as a dependency. I was having too many problems
5022 * Itpl is back as a dependency. I was having too many problems
5017 getting the parametric aliases to work reliably, and it's just
5023 getting the parametric aliases to work reliably, and it's just
5018 easier to code weird string operations with it than playing %()s
5024 easier to code weird string operations with it than playing %()s
5019 games. It's only ~6k, so I don't think it's too big a deal.
5025 games. It's only ~6k, so I don't think it's too big a deal.
5020
5026
5021 * Found (and fixed) a very nasty bug with history. !lines weren't
5027 * Found (and fixed) a very nasty bug with history. !lines weren't
5022 getting cached, and the out of sync caches would crash
5028 getting cached, and the out of sync caches would crash
5023 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5029 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5024 division of labor a bit better. Bug fixed, cleaner structure.
5030 division of labor a bit better. Bug fixed, cleaner structure.
5025
5031
5026 2001-12-01 Fernando Perez <fperez@colorado.edu>
5032 2001-12-01 Fernando Perez <fperez@colorado.edu>
5027
5033
5028 * Released 0.1.19
5034 * Released 0.1.19
5029
5035
5030 * Added option -n to @hist to prevent line number printing. Much
5036 * Added option -n to @hist to prevent line number printing. Much
5031 easier to copy/paste code this way.
5037 easier to copy/paste code this way.
5032
5038
5033 * Created global _il to hold the input list. Allows easy
5039 * Created global _il to hold the input list. Allows easy
5034 re-execution of blocks of code by slicing it (inspired by Janko's
5040 re-execution of blocks of code by slicing it (inspired by Janko's
5035 comment on 'macros').
5041 comment on 'macros').
5036
5042
5037 * Small fixes and doc updates.
5043 * Small fixes and doc updates.
5038
5044
5039 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5045 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5040 much too fragile with automagic. Handles properly multi-line
5046 much too fragile with automagic. Handles properly multi-line
5041 statements and takes parameters.
5047 statements and takes parameters.
5042
5048
5043 2001-11-30 Fernando Perez <fperez@colorado.edu>
5049 2001-11-30 Fernando Perez <fperez@colorado.edu>
5044
5050
5045 * Version 0.1.18 released.
5051 * Version 0.1.18 released.
5046
5052
5047 * Fixed nasty namespace bug in initial module imports.
5053 * Fixed nasty namespace bug in initial module imports.
5048
5054
5049 * Added copyright/license notes to all code files (except
5055 * Added copyright/license notes to all code files (except
5050 DPyGetOpt). For the time being, LGPL. That could change.
5056 DPyGetOpt). For the time being, LGPL. That could change.
5051
5057
5052 * Rewrote a much nicer README, updated INSTALL, cleaned up
5058 * Rewrote a much nicer README, updated INSTALL, cleaned up
5053 ipythonrc-* samples.
5059 ipythonrc-* samples.
5054
5060
5055 * Overall code/documentation cleanup. Basically ready for
5061 * Overall code/documentation cleanup. Basically ready for
5056 release. Only remaining thing: licence decision (LGPL?).
5062 release. Only remaining thing: licence decision (LGPL?).
5057
5063
5058 * Converted load_config to a class, ConfigLoader. Now recursion
5064 * Converted load_config to a class, ConfigLoader. Now recursion
5059 control is better organized. Doesn't include the same file twice.
5065 control is better organized. Doesn't include the same file twice.
5060
5066
5061 2001-11-29 Fernando Perez <fperez@colorado.edu>
5067 2001-11-29 Fernando Perez <fperez@colorado.edu>
5062
5068
5063 * Got input history working. Changed output history variables from
5069 * Got input history working. Changed output history variables from
5064 _p to _o so that _i is for input and _o for output. Just cleaner
5070 _p to _o so that _i is for input and _o for output. Just cleaner
5065 convention.
5071 convention.
5066
5072
5067 * Implemented parametric aliases. This pretty much allows the
5073 * Implemented parametric aliases. This pretty much allows the
5068 alias system to offer full-blown shell convenience, I think.
5074 alias system to offer full-blown shell convenience, I think.
5069
5075
5070 * Version 0.1.17 released, 0.1.18 opened.
5076 * Version 0.1.17 released, 0.1.18 opened.
5071
5077
5072 * dot_ipython/ipythonrc (alias): added documentation.
5078 * dot_ipython/ipythonrc (alias): added documentation.
5073 (xcolor): Fixed small bug (xcolors -> xcolor)
5079 (xcolor): Fixed small bug (xcolors -> xcolor)
5074
5080
5075 * Changed the alias system. Now alias is a magic command to define
5081 * Changed the alias system. Now alias is a magic command to define
5076 aliases just like the shell. Rationale: the builtin magics should
5082 aliases just like the shell. Rationale: the builtin magics should
5077 be there for things deeply connected to IPython's
5083 be there for things deeply connected to IPython's
5078 architecture. And this is a much lighter system for what I think
5084 architecture. And this is a much lighter system for what I think
5079 is the really important feature: allowing users to define quickly
5085 is the really important feature: allowing users to define quickly
5080 magics that will do shell things for them, so they can customize
5086 magics that will do shell things for them, so they can customize
5081 IPython easily to match their work habits. If someone is really
5087 IPython easily to match their work habits. If someone is really
5082 desperate to have another name for a builtin alias, they can
5088 desperate to have another name for a builtin alias, they can
5083 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5089 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5084 works.
5090 works.
5085
5091
5086 2001-11-28 Fernando Perez <fperez@colorado.edu>
5092 2001-11-28 Fernando Perez <fperez@colorado.edu>
5087
5093
5088 * Changed @file so that it opens the source file at the proper
5094 * Changed @file so that it opens the source file at the proper
5089 line. Since it uses less, if your EDITOR environment is
5095 line. Since it uses less, if your EDITOR environment is
5090 configured, typing v will immediately open your editor of choice
5096 configured, typing v will immediately open your editor of choice
5091 right at the line where the object is defined. Not as quick as
5097 right at the line where the object is defined. Not as quick as
5092 having a direct @edit command, but for all intents and purposes it
5098 having a direct @edit command, but for all intents and purposes it
5093 works. And I don't have to worry about writing @edit to deal with
5099 works. And I don't have to worry about writing @edit to deal with
5094 all the editors, less does that.
5100 all the editors, less does that.
5095
5101
5096 * Version 0.1.16 released, 0.1.17 opened.
5102 * Version 0.1.16 released, 0.1.17 opened.
5097
5103
5098 * Fixed some nasty bugs in the page/page_dumb combo that could
5104 * Fixed some nasty bugs in the page/page_dumb combo that could
5099 crash IPython.
5105 crash IPython.
5100
5106
5101 2001-11-27 Fernando Perez <fperez@colorado.edu>
5107 2001-11-27 Fernando Perez <fperez@colorado.edu>
5102
5108
5103 * Version 0.1.15 released, 0.1.16 opened.
5109 * Version 0.1.15 released, 0.1.16 opened.
5104
5110
5105 * Finally got ? and ?? to work for undefined things: now it's
5111 * Finally got ? and ?? to work for undefined things: now it's
5106 possible to type {}.get? and get information about the get method
5112 possible to type {}.get? and get information about the get method
5107 of dicts, or os.path? even if only os is defined (so technically
5113 of dicts, or os.path? even if only os is defined (so technically
5108 os.path isn't). Works at any level. For example, after import os,
5114 os.path isn't). Works at any level. For example, after import os,
5109 os?, os.path?, os.path.abspath? all work. This is great, took some
5115 os?, os.path?, os.path.abspath? all work. This is great, took some
5110 work in _ofind.
5116 work in _ofind.
5111
5117
5112 * Fixed more bugs with logging. The sanest way to do it was to add
5118 * Fixed more bugs with logging. The sanest way to do it was to add
5113 to @log a 'mode' parameter. Killed two in one shot (this mode
5119 to @log a 'mode' parameter. Killed two in one shot (this mode
5114 option was a request of Janko's). I think it's finally clean
5120 option was a request of Janko's). I think it's finally clean
5115 (famous last words).
5121 (famous last words).
5116
5122
5117 * Added a page_dumb() pager which does a decent job of paging on
5123 * Added a page_dumb() pager which does a decent job of paging on
5118 screen, if better things (like less) aren't available. One less
5124 screen, if better things (like less) aren't available. One less
5119 unix dependency (someday maybe somebody will port this to
5125 unix dependency (someday maybe somebody will port this to
5120 windows).
5126 windows).
5121
5127
5122 * Fixed problem in magic_log: would lock of logging out if log
5128 * Fixed problem in magic_log: would lock of logging out if log
5123 creation failed (because it would still think it had succeeded).
5129 creation failed (because it would still think it had succeeded).
5124
5130
5125 * Improved the page() function using curses to auto-detect screen
5131 * Improved the page() function using curses to auto-detect screen
5126 size. Now it can make a much better decision on whether to print
5132 size. Now it can make a much better decision on whether to print
5127 or page a string. Option screen_length was modified: a value 0
5133 or page a string. Option screen_length was modified: a value 0
5128 means auto-detect, and that's the default now.
5134 means auto-detect, and that's the default now.
5129
5135
5130 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5136 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5131 go out. I'll test it for a few days, then talk to Janko about
5137 go out. I'll test it for a few days, then talk to Janko about
5132 licences and announce it.
5138 licences and announce it.
5133
5139
5134 * Fixed the length of the auto-generated ---> prompt which appears
5140 * Fixed the length of the auto-generated ---> prompt which appears
5135 for auto-parens and auto-quotes. Getting this right isn't trivial,
5141 for auto-parens and auto-quotes. Getting this right isn't trivial,
5136 with all the color escapes, different prompt types and optional
5142 with all the color escapes, different prompt types and optional
5137 separators. But it seems to be working in all the combinations.
5143 separators. But it seems to be working in all the combinations.
5138
5144
5139 2001-11-26 Fernando Perez <fperez@colorado.edu>
5145 2001-11-26 Fernando Perez <fperez@colorado.edu>
5140
5146
5141 * Wrote a regexp filter to get option types from the option names
5147 * Wrote a regexp filter to get option types from the option names
5142 string. This eliminates the need to manually keep two duplicate
5148 string. This eliminates the need to manually keep two duplicate
5143 lists.
5149 lists.
5144
5150
5145 * Removed the unneeded check_option_names. Now options are handled
5151 * Removed the unneeded check_option_names. Now options are handled
5146 in a much saner manner and it's easy to visually check that things
5152 in a much saner manner and it's easy to visually check that things
5147 are ok.
5153 are ok.
5148
5154
5149 * Updated version numbers on all files I modified to carry a
5155 * Updated version numbers on all files I modified to carry a
5150 notice so Janko and Nathan have clear version markers.
5156 notice so Janko and Nathan have clear version markers.
5151
5157
5152 * Updated docstring for ultraTB with my changes. I should send
5158 * Updated docstring for ultraTB with my changes. I should send
5153 this to Nathan.
5159 this to Nathan.
5154
5160
5155 * Lots of small fixes. Ran everything through pychecker again.
5161 * Lots of small fixes. Ran everything through pychecker again.
5156
5162
5157 * Made loading of deep_reload an cmd line option. If it's not too
5163 * Made loading of deep_reload an cmd line option. If it's not too
5158 kosher, now people can just disable it. With -nodeep_reload it's
5164 kosher, now people can just disable it. With -nodeep_reload it's
5159 still available as dreload(), it just won't overwrite reload().
5165 still available as dreload(), it just won't overwrite reload().
5160
5166
5161 * Moved many options to the no| form (-opt and -noopt
5167 * Moved many options to the no| form (-opt and -noopt
5162 accepted). Cleaner.
5168 accepted). Cleaner.
5163
5169
5164 * Changed magic_log so that if called with no parameters, it uses
5170 * Changed magic_log so that if called with no parameters, it uses
5165 'rotate' mode. That way auto-generated logs aren't automatically
5171 'rotate' mode. That way auto-generated logs aren't automatically
5166 over-written. For normal logs, now a backup is made if it exists
5172 over-written. For normal logs, now a backup is made if it exists
5167 (only 1 level of backups). A new 'backup' mode was added to the
5173 (only 1 level of backups). A new 'backup' mode was added to the
5168 Logger class to support this. This was a request by Janko.
5174 Logger class to support this. This was a request by Janko.
5169
5175
5170 * Added @logoff/@logon to stop/restart an active log.
5176 * Added @logoff/@logon to stop/restart an active log.
5171
5177
5172 * Fixed a lot of bugs in log saving/replay. It was pretty
5178 * Fixed a lot of bugs in log saving/replay. It was pretty
5173 broken. Now special lines (!@,/) appear properly in the command
5179 broken. Now special lines (!@,/) appear properly in the command
5174 history after a log replay.
5180 history after a log replay.
5175
5181
5176 * Tried and failed to implement full session saving via pickle. My
5182 * Tried and failed to implement full session saving via pickle. My
5177 idea was to pickle __main__.__dict__, but modules can't be
5183 idea was to pickle __main__.__dict__, but modules can't be
5178 pickled. This would be a better alternative to replaying logs, but
5184 pickled. This would be a better alternative to replaying logs, but
5179 seems quite tricky to get to work. Changed -session to be called
5185 seems quite tricky to get to work. Changed -session to be called
5180 -logplay, which more accurately reflects what it does. And if we
5186 -logplay, which more accurately reflects what it does. And if we
5181 ever get real session saving working, -session is now available.
5187 ever get real session saving working, -session is now available.
5182
5188
5183 * Implemented color schemes for prompts also. As for tracebacks,
5189 * Implemented color schemes for prompts also. As for tracebacks,
5184 currently only NoColor and Linux are supported. But now the
5190 currently only NoColor and Linux are supported. But now the
5185 infrastructure is in place, based on a generic ColorScheme
5191 infrastructure is in place, based on a generic ColorScheme
5186 class. So writing and activating new schemes both for the prompts
5192 class. So writing and activating new schemes both for the prompts
5187 and the tracebacks should be straightforward.
5193 and the tracebacks should be straightforward.
5188
5194
5189 * Version 0.1.13 released, 0.1.14 opened.
5195 * Version 0.1.13 released, 0.1.14 opened.
5190
5196
5191 * Changed handling of options for output cache. Now counter is
5197 * Changed handling of options for output cache. Now counter is
5192 hardwired starting at 1 and one specifies the maximum number of
5198 hardwired starting at 1 and one specifies the maximum number of
5193 entries *in the outcache* (not the max prompt counter). This is
5199 entries *in the outcache* (not the max prompt counter). This is
5194 much better, since many statements won't increase the cache
5200 much better, since many statements won't increase the cache
5195 count. It also eliminated some confusing options, now there's only
5201 count. It also eliminated some confusing options, now there's only
5196 one: cache_size.
5202 one: cache_size.
5197
5203
5198 * Added 'alias' magic function and magic_alias option in the
5204 * Added 'alias' magic function and magic_alias option in the
5199 ipythonrc file. Now the user can easily define whatever names he
5205 ipythonrc file. Now the user can easily define whatever names he
5200 wants for the magic functions without having to play weird
5206 wants for the magic functions without having to play weird
5201 namespace games. This gives IPython a real shell-like feel.
5207 namespace games. This gives IPython a real shell-like feel.
5202
5208
5203 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5209 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5204 @ or not).
5210 @ or not).
5205
5211
5206 This was one of the last remaining 'visible' bugs (that I know
5212 This was one of the last remaining 'visible' bugs (that I know
5207 of). I think if I can clean up the session loading so it works
5213 of). I think if I can clean up the session loading so it works
5208 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5214 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5209 about licensing).
5215 about licensing).
5210
5216
5211 2001-11-25 Fernando Perez <fperez@colorado.edu>
5217 2001-11-25 Fernando Perez <fperez@colorado.edu>
5212
5218
5213 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5219 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5214 there's a cleaner distinction between what ? and ?? show.
5220 there's a cleaner distinction between what ? and ?? show.
5215
5221
5216 * Added screen_length option. Now the user can define his own
5222 * Added screen_length option. Now the user can define his own
5217 screen size for page() operations.
5223 screen size for page() operations.
5218
5224
5219 * Implemented magic shell-like functions with automatic code
5225 * Implemented magic shell-like functions with automatic code
5220 generation. Now adding another function is just a matter of adding
5226 generation. Now adding another function is just a matter of adding
5221 an entry to a dict, and the function is dynamically generated at
5227 an entry to a dict, and the function is dynamically generated at
5222 run-time. Python has some really cool features!
5228 run-time. Python has some really cool features!
5223
5229
5224 * Renamed many options to cleanup conventions a little. Now all
5230 * Renamed many options to cleanup conventions a little. Now all
5225 are lowercase, and only underscores where needed. Also in the code
5231 are lowercase, and only underscores where needed. Also in the code
5226 option name tables are clearer.
5232 option name tables are clearer.
5227
5233
5228 * Changed prompts a little. Now input is 'In [n]:' instead of
5234 * Changed prompts a little. Now input is 'In [n]:' instead of
5229 'In[n]:='. This allows it the numbers to be aligned with the
5235 'In[n]:='. This allows it the numbers to be aligned with the
5230 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5236 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5231 Python (it was a Mathematica thing). The '...' continuation prompt
5237 Python (it was a Mathematica thing). The '...' continuation prompt
5232 was also changed a little to align better.
5238 was also changed a little to align better.
5233
5239
5234 * Fixed bug when flushing output cache. Not all _p<n> variables
5240 * Fixed bug when flushing output cache. Not all _p<n> variables
5235 exist, so their deletion needs to be wrapped in a try:
5241 exist, so their deletion needs to be wrapped in a try:
5236
5242
5237 * Figured out how to properly use inspect.formatargspec() (it
5243 * Figured out how to properly use inspect.formatargspec() (it
5238 requires the args preceded by *). So I removed all the code from
5244 requires the args preceded by *). So I removed all the code from
5239 _get_pdef in Magic, which was just replicating that.
5245 _get_pdef in Magic, which was just replicating that.
5240
5246
5241 * Added test to prefilter to allow redefining magic function names
5247 * Added test to prefilter to allow redefining magic function names
5242 as variables. This is ok, since the @ form is always available,
5248 as variables. This is ok, since the @ form is always available,
5243 but whe should allow the user to define a variable called 'ls' if
5249 but whe should allow the user to define a variable called 'ls' if
5244 he needs it.
5250 he needs it.
5245
5251
5246 * Moved the ToDo information from README into a separate ToDo.
5252 * Moved the ToDo information from README into a separate ToDo.
5247
5253
5248 * General code cleanup and small bugfixes. I think it's close to a
5254 * General code cleanup and small bugfixes. I think it's close to a
5249 state where it can be released, obviously with a big 'beta'
5255 state where it can be released, obviously with a big 'beta'
5250 warning on it.
5256 warning on it.
5251
5257
5252 * Got the magic function split to work. Now all magics are defined
5258 * Got the magic function split to work. Now all magics are defined
5253 in a separate class. It just organizes things a bit, and now
5259 in a separate class. It just organizes things a bit, and now
5254 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5260 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5255 was too long).
5261 was too long).
5256
5262
5257 * Changed @clear to @reset to avoid potential confusions with
5263 * Changed @clear to @reset to avoid potential confusions with
5258 the shell command clear. Also renamed @cl to @clear, which does
5264 the shell command clear. Also renamed @cl to @clear, which does
5259 exactly what people expect it to from their shell experience.
5265 exactly what people expect it to from their shell experience.
5260
5266
5261 Added a check to the @reset command (since it's so
5267 Added a check to the @reset command (since it's so
5262 destructive, it's probably a good idea to ask for confirmation).
5268 destructive, it's probably a good idea to ask for confirmation).
5263 But now reset only works for full namespace resetting. Since the
5269 But now reset only works for full namespace resetting. Since the
5264 del keyword is already there for deleting a few specific
5270 del keyword is already there for deleting a few specific
5265 variables, I don't see the point of having a redundant magic
5271 variables, I don't see the point of having a redundant magic
5266 function for the same task.
5272 function for the same task.
5267
5273
5268 2001-11-24 Fernando Perez <fperez@colorado.edu>
5274 2001-11-24 Fernando Perez <fperez@colorado.edu>
5269
5275
5270 * Updated the builtin docs (esp. the ? ones).
5276 * Updated the builtin docs (esp. the ? ones).
5271
5277
5272 * Ran all the code through pychecker. Not terribly impressed with
5278 * Ran all the code through pychecker. Not terribly impressed with
5273 it: lots of spurious warnings and didn't really find anything of
5279 it: lots of spurious warnings and didn't really find anything of
5274 substance (just a few modules being imported and not used).
5280 substance (just a few modules being imported and not used).
5275
5281
5276 * Implemented the new ultraTB functionality into IPython. New
5282 * Implemented the new ultraTB functionality into IPython. New
5277 option: xcolors. This chooses color scheme. xmode now only selects
5283 option: xcolors. This chooses color scheme. xmode now only selects
5278 between Plain and Verbose. Better orthogonality.
5284 between Plain and Verbose. Better orthogonality.
5279
5285
5280 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5286 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5281 mode and color scheme for the exception handlers. Now it's
5287 mode and color scheme for the exception handlers. Now it's
5282 possible to have the verbose traceback with no coloring.
5288 possible to have the verbose traceback with no coloring.
5283
5289
5284 2001-11-23 Fernando Perez <fperez@colorado.edu>
5290 2001-11-23 Fernando Perez <fperez@colorado.edu>
5285
5291
5286 * Version 0.1.12 released, 0.1.13 opened.
5292 * Version 0.1.12 released, 0.1.13 opened.
5287
5293
5288 * Removed option to set auto-quote and auto-paren escapes by
5294 * Removed option to set auto-quote and auto-paren escapes by
5289 user. The chances of breaking valid syntax are just too high. If
5295 user. The chances of breaking valid syntax are just too high. If
5290 someone *really* wants, they can always dig into the code.
5296 someone *really* wants, they can always dig into the code.
5291
5297
5292 * Made prompt separators configurable.
5298 * Made prompt separators configurable.
5293
5299
5294 2001-11-22 Fernando Perez <fperez@colorado.edu>
5300 2001-11-22 Fernando Perez <fperez@colorado.edu>
5295
5301
5296 * Small bugfixes in many places.
5302 * Small bugfixes in many places.
5297
5303
5298 * Removed the MyCompleter class from ipplib. It seemed redundant
5304 * Removed the MyCompleter class from ipplib. It seemed redundant
5299 with the C-p,C-n history search functionality. Less code to
5305 with the C-p,C-n history search functionality. Less code to
5300 maintain.
5306 maintain.
5301
5307
5302 * Moved all the original ipython.py code into ipythonlib.py. Right
5308 * Moved all the original ipython.py code into ipythonlib.py. Right
5303 now it's just one big dump into a function called make_IPython, so
5309 now it's just one big dump into a function called make_IPython, so
5304 no real modularity has been gained. But at least it makes the
5310 no real modularity has been gained. But at least it makes the
5305 wrapper script tiny, and since ipythonlib is a module, it gets
5311 wrapper script tiny, and since ipythonlib is a module, it gets
5306 compiled and startup is much faster.
5312 compiled and startup is much faster.
5307
5313
5308 This is a reasobably 'deep' change, so we should test it for a
5314 This is a reasobably 'deep' change, so we should test it for a
5309 while without messing too much more with the code.
5315 while without messing too much more with the code.
5310
5316
5311 2001-11-21 Fernando Perez <fperez@colorado.edu>
5317 2001-11-21 Fernando Perez <fperez@colorado.edu>
5312
5318
5313 * Version 0.1.11 released, 0.1.12 opened for further work.
5319 * Version 0.1.11 released, 0.1.12 opened for further work.
5314
5320
5315 * Removed dependency on Itpl. It was only needed in one place. It
5321 * Removed dependency on Itpl. It was only needed in one place. It
5316 would be nice if this became part of python, though. It makes life
5322 would be nice if this became part of python, though. It makes life
5317 *a lot* easier in some cases.
5323 *a lot* easier in some cases.
5318
5324
5319 * Simplified the prefilter code a bit. Now all handlers are
5325 * Simplified the prefilter code a bit. Now all handlers are
5320 expected to explicitly return a value (at least a blank string).
5326 expected to explicitly return a value (at least a blank string).
5321
5327
5322 * Heavy edits in ipplib. Removed the help system altogether. Now
5328 * Heavy edits in ipplib. Removed the help system altogether. Now
5323 obj?/?? is used for inspecting objects, a magic @doc prints
5329 obj?/?? is used for inspecting objects, a magic @doc prints
5324 docstrings, and full-blown Python help is accessed via the 'help'
5330 docstrings, and full-blown Python help is accessed via the 'help'
5325 keyword. This cleans up a lot of code (less to maintain) and does
5331 keyword. This cleans up a lot of code (less to maintain) and does
5326 the job. Since 'help' is now a standard Python component, might as
5332 the job. Since 'help' is now a standard Python component, might as
5327 well use it and remove duplicate functionality.
5333 well use it and remove duplicate functionality.
5328
5334
5329 Also removed the option to use ipplib as a standalone program. By
5335 Also removed the option to use ipplib as a standalone program. By
5330 now it's too dependent on other parts of IPython to function alone.
5336 now it's too dependent on other parts of IPython to function alone.
5331
5337
5332 * Fixed bug in genutils.pager. It would crash if the pager was
5338 * Fixed bug in genutils.pager. It would crash if the pager was
5333 exited immediately after opening (broken pipe).
5339 exited immediately after opening (broken pipe).
5334
5340
5335 * Trimmed down the VerboseTB reporting a little. The header is
5341 * Trimmed down the VerboseTB reporting a little. The header is
5336 much shorter now and the repeated exception arguments at the end
5342 much shorter now and the repeated exception arguments at the end
5337 have been removed. For interactive use the old header seemed a bit
5343 have been removed. For interactive use the old header seemed a bit
5338 excessive.
5344 excessive.
5339
5345
5340 * Fixed small bug in output of @whos for variables with multi-word
5346 * Fixed small bug in output of @whos for variables with multi-word
5341 types (only first word was displayed).
5347 types (only first word was displayed).
5342
5348
5343 2001-11-17 Fernando Perez <fperez@colorado.edu>
5349 2001-11-17 Fernando Perez <fperez@colorado.edu>
5344
5350
5345 * Version 0.1.10 released, 0.1.11 opened for further work.
5351 * Version 0.1.10 released, 0.1.11 opened for further work.
5346
5352
5347 * Modified dirs and friends. dirs now *returns* the stack (not
5353 * Modified dirs and friends. dirs now *returns* the stack (not
5348 prints), so one can manipulate it as a variable. Convenient to
5354 prints), so one can manipulate it as a variable. Convenient to
5349 travel along many directories.
5355 travel along many directories.
5350
5356
5351 * Fixed bug in magic_pdef: would only work with functions with
5357 * Fixed bug in magic_pdef: would only work with functions with
5352 arguments with default values.
5358 arguments with default values.
5353
5359
5354 2001-11-14 Fernando Perez <fperez@colorado.edu>
5360 2001-11-14 Fernando Perez <fperez@colorado.edu>
5355
5361
5356 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5362 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5357 example with IPython. Various other minor fixes and cleanups.
5363 example with IPython. Various other minor fixes and cleanups.
5358
5364
5359 * Version 0.1.9 released, 0.1.10 opened for further work.
5365 * Version 0.1.9 released, 0.1.10 opened for further work.
5360
5366
5361 * Added sys.path to the list of directories searched in the
5367 * Added sys.path to the list of directories searched in the
5362 execfile= option. It used to be the current directory and the
5368 execfile= option. It used to be the current directory and the
5363 user's IPYTHONDIR only.
5369 user's IPYTHONDIR only.
5364
5370
5365 2001-11-13 Fernando Perez <fperez@colorado.edu>
5371 2001-11-13 Fernando Perez <fperez@colorado.edu>
5366
5372
5367 * Reinstated the raw_input/prefilter separation that Janko had
5373 * Reinstated the raw_input/prefilter separation that Janko had
5368 initially. This gives a more convenient setup for extending the
5374 initially. This gives a more convenient setup for extending the
5369 pre-processor from the outside: raw_input always gets a string,
5375 pre-processor from the outside: raw_input always gets a string,
5370 and prefilter has to process it. We can then redefine prefilter
5376 and prefilter has to process it. We can then redefine prefilter
5371 from the outside and implement extensions for special
5377 from the outside and implement extensions for special
5372 purposes.
5378 purposes.
5373
5379
5374 Today I got one for inputting PhysicalQuantity objects
5380 Today I got one for inputting PhysicalQuantity objects
5375 (from Scientific) without needing any function calls at
5381 (from Scientific) without needing any function calls at
5376 all. Extremely convenient, and it's all done as a user-level
5382 all. Extremely convenient, and it's all done as a user-level
5377 extension (no IPython code was touched). Now instead of:
5383 extension (no IPython code was touched). Now instead of:
5378 a = PhysicalQuantity(4.2,'m/s**2')
5384 a = PhysicalQuantity(4.2,'m/s**2')
5379 one can simply say
5385 one can simply say
5380 a = 4.2 m/s**2
5386 a = 4.2 m/s**2
5381 or even
5387 or even
5382 a = 4.2 m/s^2
5388 a = 4.2 m/s^2
5383
5389
5384 I use this, but it's also a proof of concept: IPython really is
5390 I use this, but it's also a proof of concept: IPython really is
5385 fully user-extensible, even at the level of the parsing of the
5391 fully user-extensible, even at the level of the parsing of the
5386 command line. It's not trivial, but it's perfectly doable.
5392 command line. It's not trivial, but it's perfectly doable.
5387
5393
5388 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5394 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5389 the problem of modules being loaded in the inverse order in which
5395 the problem of modules being loaded in the inverse order in which
5390 they were defined in
5396 they were defined in
5391
5397
5392 * Version 0.1.8 released, 0.1.9 opened for further work.
5398 * Version 0.1.8 released, 0.1.9 opened for further work.
5393
5399
5394 * Added magics pdef, source and file. They respectively show the
5400 * Added magics pdef, source and file. They respectively show the
5395 definition line ('prototype' in C), source code and full python
5401 definition line ('prototype' in C), source code and full python
5396 file for any callable object. The object inspector oinfo uses
5402 file for any callable object. The object inspector oinfo uses
5397 these to show the same information.
5403 these to show the same information.
5398
5404
5399 * Version 0.1.7 released, 0.1.8 opened for further work.
5405 * Version 0.1.7 released, 0.1.8 opened for further work.
5400
5406
5401 * Separated all the magic functions into a class called Magic. The
5407 * Separated all the magic functions into a class called Magic. The
5402 InteractiveShell class was becoming too big for Xemacs to handle
5408 InteractiveShell class was becoming too big for Xemacs to handle
5403 (de-indenting a line would lock it up for 10 seconds while it
5409 (de-indenting a line would lock it up for 10 seconds while it
5404 backtracked on the whole class!)
5410 backtracked on the whole class!)
5405
5411
5406 FIXME: didn't work. It can be done, but right now namespaces are
5412 FIXME: didn't work. It can be done, but right now namespaces are
5407 all messed up. Do it later (reverted it for now, so at least
5413 all messed up. Do it later (reverted it for now, so at least
5408 everything works as before).
5414 everything works as before).
5409
5415
5410 * Got the object introspection system (magic_oinfo) working! I
5416 * Got the object introspection system (magic_oinfo) working! I
5411 think this is pretty much ready for release to Janko, so he can
5417 think this is pretty much ready for release to Janko, so he can
5412 test it for a while and then announce it. Pretty much 100% of what
5418 test it for a while and then announce it. Pretty much 100% of what
5413 I wanted for the 'phase 1' release is ready. Happy, tired.
5419 I wanted for the 'phase 1' release is ready. Happy, tired.
5414
5420
5415 2001-11-12 Fernando Perez <fperez@colorado.edu>
5421 2001-11-12 Fernando Perez <fperez@colorado.edu>
5416
5422
5417 * Version 0.1.6 released, 0.1.7 opened for further work.
5423 * Version 0.1.6 released, 0.1.7 opened for further work.
5418
5424
5419 * Fixed bug in printing: it used to test for truth before
5425 * Fixed bug in printing: it used to test for truth before
5420 printing, so 0 wouldn't print. Now checks for None.
5426 printing, so 0 wouldn't print. Now checks for None.
5421
5427
5422 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5428 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5423 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5429 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5424 reaches by hand into the outputcache. Think of a better way to do
5430 reaches by hand into the outputcache. Think of a better way to do
5425 this later.
5431 this later.
5426
5432
5427 * Various small fixes thanks to Nathan's comments.
5433 * Various small fixes thanks to Nathan's comments.
5428
5434
5429 * Changed magic_pprint to magic_Pprint. This way it doesn't
5435 * Changed magic_pprint to magic_Pprint. This way it doesn't
5430 collide with pprint() and the name is consistent with the command
5436 collide with pprint() and the name is consistent with the command
5431 line option.
5437 line option.
5432
5438
5433 * Changed prompt counter behavior to be fully like
5439 * Changed prompt counter behavior to be fully like
5434 Mathematica's. That is, even input that doesn't return a result
5440 Mathematica's. That is, even input that doesn't return a result
5435 raises the prompt counter. The old behavior was kind of confusing
5441 raises the prompt counter. The old behavior was kind of confusing
5436 (getting the same prompt number several times if the operation
5442 (getting the same prompt number several times if the operation
5437 didn't return a result).
5443 didn't return a result).
5438
5444
5439 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5445 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5440
5446
5441 * Fixed -Classic mode (wasn't working anymore).
5447 * Fixed -Classic mode (wasn't working anymore).
5442
5448
5443 * Added colored prompts using Nathan's new code. Colors are
5449 * Added colored prompts using Nathan's new code. Colors are
5444 currently hardwired, they can be user-configurable. For
5450 currently hardwired, they can be user-configurable. For
5445 developers, they can be chosen in file ipythonlib.py, at the
5451 developers, they can be chosen in file ipythonlib.py, at the
5446 beginning of the CachedOutput class def.
5452 beginning of the CachedOutput class def.
5447
5453
5448 2001-11-11 Fernando Perez <fperez@colorado.edu>
5454 2001-11-11 Fernando Perez <fperez@colorado.edu>
5449
5455
5450 * Version 0.1.5 released, 0.1.6 opened for further work.
5456 * Version 0.1.5 released, 0.1.6 opened for further work.
5451
5457
5452 * Changed magic_env to *return* the environment as a dict (not to
5458 * Changed magic_env to *return* the environment as a dict (not to
5453 print it). This way it prints, but it can also be processed.
5459 print it). This way it prints, but it can also be processed.
5454
5460
5455 * Added Verbose exception reporting to interactive
5461 * Added Verbose exception reporting to interactive
5456 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5462 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5457 traceback. Had to make some changes to the ultraTB file. This is
5463 traceback. Had to make some changes to the ultraTB file. This is
5458 probably the last 'big' thing in my mental todo list. This ties
5464 probably the last 'big' thing in my mental todo list. This ties
5459 in with the next entry:
5465 in with the next entry:
5460
5466
5461 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5467 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5462 has to specify is Plain, Color or Verbose for all exception
5468 has to specify is Plain, Color or Verbose for all exception
5463 handling.
5469 handling.
5464
5470
5465 * Removed ShellServices option. All this can really be done via
5471 * Removed ShellServices option. All this can really be done via
5466 the magic system. It's easier to extend, cleaner and has automatic
5472 the magic system. It's easier to extend, cleaner and has automatic
5467 namespace protection and documentation.
5473 namespace protection and documentation.
5468
5474
5469 2001-11-09 Fernando Perez <fperez@colorado.edu>
5475 2001-11-09 Fernando Perez <fperez@colorado.edu>
5470
5476
5471 * Fixed bug in output cache flushing (missing parameter to
5477 * Fixed bug in output cache flushing (missing parameter to
5472 __init__). Other small bugs fixed (found using pychecker).
5478 __init__). Other small bugs fixed (found using pychecker).
5473
5479
5474 * Version 0.1.4 opened for bugfixing.
5480 * Version 0.1.4 opened for bugfixing.
5475
5481
5476 2001-11-07 Fernando Perez <fperez@colorado.edu>
5482 2001-11-07 Fernando Perez <fperez@colorado.edu>
5477
5483
5478 * Version 0.1.3 released, mainly because of the raw_input bug.
5484 * Version 0.1.3 released, mainly because of the raw_input bug.
5479
5485
5480 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5486 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5481 and when testing for whether things were callable, a call could
5487 and when testing for whether things were callable, a call could
5482 actually be made to certain functions. They would get called again
5488 actually be made to certain functions. They would get called again
5483 once 'really' executed, with a resulting double call. A disaster
5489 once 'really' executed, with a resulting double call. A disaster
5484 in many cases (list.reverse() would never work!).
5490 in many cases (list.reverse() would never work!).
5485
5491
5486 * Removed prefilter() function, moved its code to raw_input (which
5492 * Removed prefilter() function, moved its code to raw_input (which
5487 after all was just a near-empty caller for prefilter). This saves
5493 after all was just a near-empty caller for prefilter). This saves
5488 a function call on every prompt, and simplifies the class a tiny bit.
5494 a function call on every prompt, and simplifies the class a tiny bit.
5489
5495
5490 * Fix _ip to __ip name in magic example file.
5496 * Fix _ip to __ip name in magic example file.
5491
5497
5492 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5498 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5493 work with non-gnu versions of tar.
5499 work with non-gnu versions of tar.
5494
5500
5495 2001-11-06 Fernando Perez <fperez@colorado.edu>
5501 2001-11-06 Fernando Perez <fperez@colorado.edu>
5496
5502
5497 * Version 0.1.2. Just to keep track of the recent changes.
5503 * Version 0.1.2. Just to keep track of the recent changes.
5498
5504
5499 * Fixed nasty bug in output prompt routine. It used to check 'if
5505 * Fixed nasty bug in output prompt routine. It used to check 'if
5500 arg != None...'. Problem is, this fails if arg implements a
5506 arg != None...'. Problem is, this fails if arg implements a
5501 special comparison (__cmp__) which disallows comparing to
5507 special comparison (__cmp__) which disallows comparing to
5502 None. Found it when trying to use the PhysicalQuantity module from
5508 None. Found it when trying to use the PhysicalQuantity module from
5503 ScientificPython.
5509 ScientificPython.
5504
5510
5505 2001-11-05 Fernando Perez <fperez@colorado.edu>
5511 2001-11-05 Fernando Perez <fperez@colorado.edu>
5506
5512
5507 * Also added dirs. Now the pushd/popd/dirs family functions
5513 * Also added dirs. Now the pushd/popd/dirs family functions
5508 basically like the shell, with the added convenience of going home
5514 basically like the shell, with the added convenience of going home
5509 when called with no args.
5515 when called with no args.
5510
5516
5511 * pushd/popd slightly modified to mimic shell behavior more
5517 * pushd/popd slightly modified to mimic shell behavior more
5512 closely.
5518 closely.
5513
5519
5514 * Added env,pushd,popd from ShellServices as magic functions. I
5520 * Added env,pushd,popd from ShellServices as magic functions. I
5515 think the cleanest will be to port all desired functions from
5521 think the cleanest will be to port all desired functions from
5516 ShellServices as magics and remove ShellServices altogether. This
5522 ShellServices as magics and remove ShellServices altogether. This
5517 will provide a single, clean way of adding functionality
5523 will provide a single, clean way of adding functionality
5518 (shell-type or otherwise) to IP.
5524 (shell-type or otherwise) to IP.
5519
5525
5520 2001-11-04 Fernando Perez <fperez@colorado.edu>
5526 2001-11-04 Fernando Perez <fperez@colorado.edu>
5521
5527
5522 * Added .ipython/ directory to sys.path. This way users can keep
5528 * Added .ipython/ directory to sys.path. This way users can keep
5523 customizations there and access them via import.
5529 customizations there and access them via import.
5524
5530
5525 2001-11-03 Fernando Perez <fperez@colorado.edu>
5531 2001-11-03 Fernando Perez <fperez@colorado.edu>
5526
5532
5527 * Opened version 0.1.1 for new changes.
5533 * Opened version 0.1.1 for new changes.
5528
5534
5529 * Changed version number to 0.1.0: first 'public' release, sent to
5535 * Changed version number to 0.1.0: first 'public' release, sent to
5530 Nathan and Janko.
5536 Nathan and Janko.
5531
5537
5532 * Lots of small fixes and tweaks.
5538 * Lots of small fixes and tweaks.
5533
5539
5534 * Minor changes to whos format. Now strings are shown, snipped if
5540 * Minor changes to whos format. Now strings are shown, snipped if
5535 too long.
5541 too long.
5536
5542
5537 * Changed ShellServices to work on __main__ so they show up in @who
5543 * Changed ShellServices to work on __main__ so they show up in @who
5538
5544
5539 * Help also works with ? at the end of a line:
5545 * Help also works with ? at the end of a line:
5540 ?sin and sin?
5546 ?sin and sin?
5541 both produce the same effect. This is nice, as often I use the
5547 both produce the same effect. This is nice, as often I use the
5542 tab-complete to find the name of a method, but I used to then have
5548 tab-complete to find the name of a method, but I used to then have
5543 to go to the beginning of the line to put a ? if I wanted more
5549 to go to the beginning of the line to put a ? if I wanted more
5544 info. Now I can just add the ? and hit return. Convenient.
5550 info. Now I can just add the ? and hit return. Convenient.
5545
5551
5546 2001-11-02 Fernando Perez <fperez@colorado.edu>
5552 2001-11-02 Fernando Perez <fperez@colorado.edu>
5547
5553
5548 * Python version check (>=2.1) added.
5554 * Python version check (>=2.1) added.
5549
5555
5550 * Added LazyPython documentation. At this point the docs are quite
5556 * Added LazyPython documentation. At this point the docs are quite
5551 a mess. A cleanup is in order.
5557 a mess. A cleanup is in order.
5552
5558
5553 * Auto-installer created. For some bizarre reason, the zipfiles
5559 * Auto-installer created. For some bizarre reason, the zipfiles
5554 module isn't working on my system. So I made a tar version
5560 module isn't working on my system. So I made a tar version
5555 (hopefully the command line options in various systems won't kill
5561 (hopefully the command line options in various systems won't kill
5556 me).
5562 me).
5557
5563
5558 * Fixes to Struct in genutils. Now all dictionary-like methods are
5564 * Fixes to Struct in genutils. Now all dictionary-like methods are
5559 protected (reasonably).
5565 protected (reasonably).
5560
5566
5561 * Added pager function to genutils and changed ? to print usage
5567 * Added pager function to genutils and changed ? to print usage
5562 note through it (it was too long).
5568 note through it (it was too long).
5563
5569
5564 * Added the LazyPython functionality. Works great! I changed the
5570 * Added the LazyPython functionality. Works great! I changed the
5565 auto-quote escape to ';', it's on home row and next to '. But
5571 auto-quote escape to ';', it's on home row and next to '. But
5566 both auto-quote and auto-paren (still /) escapes are command-line
5572 both auto-quote and auto-paren (still /) escapes are command-line
5567 parameters.
5573 parameters.
5568
5574
5569
5575
5570 2001-11-01 Fernando Perez <fperez@colorado.edu>
5576 2001-11-01 Fernando Perez <fperez@colorado.edu>
5571
5577
5572 * Version changed to 0.0.7. Fairly large change: configuration now
5578 * Version changed to 0.0.7. Fairly large change: configuration now
5573 is all stored in a directory, by default .ipython. There, all
5579 is all stored in a directory, by default .ipython. There, all
5574 config files have normal looking names (not .names)
5580 config files have normal looking names (not .names)
5575
5581
5576 * Version 0.0.6 Released first to Lucas and Archie as a test
5582 * Version 0.0.6 Released first to Lucas and Archie as a test
5577 run. Since it's the first 'semi-public' release, change version to
5583 run. Since it's the first 'semi-public' release, change version to
5578 > 0.0.6 for any changes now.
5584 > 0.0.6 for any changes now.
5579
5585
5580 * Stuff I had put in the ipplib.py changelog:
5586 * Stuff I had put in the ipplib.py changelog:
5581
5587
5582 Changes to InteractiveShell:
5588 Changes to InteractiveShell:
5583
5589
5584 - Made the usage message a parameter.
5590 - Made the usage message a parameter.
5585
5591
5586 - Require the name of the shell variable to be given. It's a bit
5592 - Require the name of the shell variable to be given. It's a bit
5587 of a hack, but allows the name 'shell' not to be hardwired in the
5593 of a hack, but allows the name 'shell' not to be hardwired in the
5588 magic (@) handler, which is problematic b/c it requires
5594 magic (@) handler, which is problematic b/c it requires
5589 polluting the global namespace with 'shell'. This in turn is
5595 polluting the global namespace with 'shell'. This in turn is
5590 fragile: if a user redefines a variable called shell, things
5596 fragile: if a user redefines a variable called shell, things
5591 break.
5597 break.
5592
5598
5593 - magic @: all functions available through @ need to be defined
5599 - magic @: all functions available through @ need to be defined
5594 as magic_<name>, even though they can be called simply as
5600 as magic_<name>, even though they can be called simply as
5595 @<name>. This allows the special command @magic to gather
5601 @<name>. This allows the special command @magic to gather
5596 information automatically about all existing magic functions,
5602 information automatically about all existing magic functions,
5597 even if they are run-time user extensions, by parsing the shell
5603 even if they are run-time user extensions, by parsing the shell
5598 instance __dict__ looking for special magic_ names.
5604 instance __dict__ looking for special magic_ names.
5599
5605
5600 - mainloop: added *two* local namespace parameters. This allows
5606 - mainloop: added *two* local namespace parameters. This allows
5601 the class to differentiate between parameters which were there
5607 the class to differentiate between parameters which were there
5602 before and after command line initialization was processed. This
5608 before and after command line initialization was processed. This
5603 way, later @who can show things loaded at startup by the
5609 way, later @who can show things loaded at startup by the
5604 user. This trick was necessary to make session saving/reloading
5610 user. This trick was necessary to make session saving/reloading
5605 really work: ideally after saving/exiting/reloading a session,
5611 really work: ideally after saving/exiting/reloading a session,
5606 *everything* should look the same, including the output of @who. I
5612 *everything* should look the same, including the output of @who. I
5607 was only able to make this work with this double namespace
5613 was only able to make this work with this double namespace
5608 trick.
5614 trick.
5609
5615
5610 - added a header to the logfile which allows (almost) full
5616 - added a header to the logfile which allows (almost) full
5611 session restoring.
5617 session restoring.
5612
5618
5613 - prepend lines beginning with @ or !, with a and log
5619 - prepend lines beginning with @ or !, with a and log
5614 them. Why? !lines: may be useful to know what you did @lines:
5620 them. Why? !lines: may be useful to know what you did @lines:
5615 they may affect session state. So when restoring a session, at
5621 they may affect session state. So when restoring a session, at
5616 least inform the user of their presence. I couldn't quite get
5622 least inform the user of their presence. I couldn't quite get
5617 them to properly re-execute, but at least the user is warned.
5623 them to properly re-execute, but at least the user is warned.
5618
5624
5619 * Started ChangeLog.
5625 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now