##// END OF EJS Templates
note about startup rehashing through config file added to changelog
vivainio -
Show More
@@ -1,4980 +1,4984 b''
1 2006-01-20 Ville Vainio <vivainio@gmail.com>
1 2006-01-20 Ville Vainio <vivainio@gmail.com>
2
2
3 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
3 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
4 (%rehashdir, very useful, try it out) of how to extend ipython
4 (%rehashdir, very useful, try it out) of how to extend ipython
5 with new magics. Also added Extensions dir to pythonpath to make
5 with new magics. Also added Extensions dir to pythonpath to make
6 importing extensions easy.
6 importing extensions easy.
7
7
8 * %store now complains when trying to store interactively declared
8 * %store now complains when trying to store interactively declared
9 classes / instances of those classes.
9 classes / instances of those classes.
10
10
11 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
11 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
12 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
12 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
13 if they exist, and ipy_user_conf.py with some defaults is created for
13 if they exist, and ipy_user_conf.py with some defaults is created for
14 the user.
14 the user.
15
16 * Startup rehashing done by the config file, not InterpreterExec.
17 This means system commands are available even without selecting the
18 pysh profile. It's the sensible default after all.
15
19
16 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
20 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
17
21
18 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
22 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
19 multiline code with autoindent on working. But I am really not
23 multiline code with autoindent on working. But I am really not
20 sure, so this needs more testing. Will commit a debug-enabled
24 sure, so this needs more testing. Will commit a debug-enabled
21 version for now, while I test it some more, so that Ville and
25 version for now, while I test it some more, so that Ville and
22 others may also catch any problems. Also made
26 others may also catch any problems. Also made
23 self.indent_current_str() a method, to ensure that there's no
27 self.indent_current_str() a method, to ensure that there's no
24 chance of the indent space count and the corresponding string
28 chance of the indent space count and the corresponding string
25 falling out of sync. All code needing the string should just call
29 falling out of sync. All code needing the string should just call
26 the method.
30 the method.
27
31
28 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
32 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
29
33
30 * IPython/Magic.py (magic_edit): fix check for when users don't
34 * IPython/Magic.py (magic_edit): fix check for when users don't
31 save their output files, the try/except was in the wrong section.
35 save their output files, the try/except was in the wrong section.
32
36
33 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
37 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
34
38
35 * IPython/Magic.py (magic_run): fix __file__ global missing from
39 * IPython/Magic.py (magic_run): fix __file__ global missing from
36 script's namespace when executed via %run. After a report by
40 script's namespace when executed via %run. After a report by
37 Vivian.
41 Vivian.
38
42
39 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
43 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
40 when using python 2.4. The parent constructor changed in 2.4, and
44 when using python 2.4. The parent constructor changed in 2.4, and
41 we need to track it directly (we can't call it, as it messes up
45 we need to track it directly (we can't call it, as it messes up
42 readline and tab-completion inside our pdb would stop working).
46 readline and tab-completion inside our pdb would stop working).
43 After a bug report by R. Bernstein <rocky-AT-panix.com>.
47 After a bug report by R. Bernstein <rocky-AT-panix.com>.
44
48
45 2006-01-16 Ville Vainio <vivainio@gmail.com>
49 2006-01-16 Ville Vainio <vivainio@gmail.com>
46
50
47 * Ipython/magic.py:Reverted back to old %edit functionality
51 * Ipython/magic.py:Reverted back to old %edit functionality
48 that returns file contents on exit.
52 that returns file contents on exit.
49
53
50 * IPython/path.py: Added Jason Orendorff's "path" module to
54 * IPython/path.py: Added Jason Orendorff's "path" module to
51 IPython tree, http://www.jorendorff.com/articles/python/path/.
55 IPython tree, http://www.jorendorff.com/articles/python/path/.
52 You can get path objects conveniently through %sc, and !!, e.g.:
56 You can get path objects conveniently through %sc, and !!, e.g.:
53 sc files=ls
57 sc files=ls
54 for p in files.paths: # or files.p
58 for p in files.paths: # or files.p
55 print p,p.mtime
59 print p,p.mtime
56
60
57 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
61 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
58 now work again without considering the exclusion regexp -
62 now work again without considering the exclusion regexp -
59 hence, things like ',foo my/path' turn to 'foo("my/path")'
63 hence, things like ',foo my/path' turn to 'foo("my/path")'
60 instead of syntax error.
64 instead of syntax error.
61
65
62
66
63 2006-01-14 Ville Vainio <vivainio@gmail.com>
67 2006-01-14 Ville Vainio <vivainio@gmail.com>
64
68
65 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
69 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
66 ipapi decorators for python 2.4 users, options() provides access to rc
70 ipapi decorators for python 2.4 users, options() provides access to rc
67 data.
71 data.
68
72
69 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
73 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
70 as path separators (even on Linux ;-). Space character after
74 as path separators (even on Linux ;-). Space character after
71 backslash (as yielded by tab completer) is still space;
75 backslash (as yielded by tab completer) is still space;
72 "%cd long\ name" works as expected.
76 "%cd long\ name" works as expected.
73
77
74 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
78 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
75 as "chain of command", with priority. API stays the same,
79 as "chain of command", with priority. API stays the same,
76 TryNext exception raised by a hook function signals that
80 TryNext exception raised by a hook function signals that
77 current hook failed and next hook should try handling it, as
81 current hook failed and next hook should try handling it, as
78 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
82 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
79 requested configurable display hook, which is now implemented.
83 requested configurable display hook, which is now implemented.
80
84
81 2006-01-13 Ville Vainio <vivainio@gmail.com>
85 2006-01-13 Ville Vainio <vivainio@gmail.com>
82
86
83 * IPython/platutils*.py: platform specific utility functions,
87 * IPython/platutils*.py: platform specific utility functions,
84 so far only set_term_title is implemented (change terminal
88 so far only set_term_title is implemented (change terminal
85 label in windowing systems). %cd now changes the title to
89 label in windowing systems). %cd now changes the title to
86 current dir.
90 current dir.
87
91
88 * IPython/Release.py: Added myself to "authors" list,
92 * IPython/Release.py: Added myself to "authors" list,
89 had to create new files.
93 had to create new files.
90
94
91 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
95 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
92 shell escape; not a known bug but had potential to be one in the
96 shell escape; not a known bug but had potential to be one in the
93 future.
97 future.
94
98
95 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
99 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
96 extension API for IPython! See the module for usage example. Fix
100 extension API for IPython! See the module for usage example. Fix
97 OInspect for docstring-less magic functions.
101 OInspect for docstring-less magic functions.
98
102
99
103
100 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
104 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
101
105
102 * IPython/iplib.py (raw_input): temporarily deactivate all
106 * IPython/iplib.py (raw_input): temporarily deactivate all
103 attempts at allowing pasting of code with autoindent on. It
107 attempts at allowing pasting of code with autoindent on. It
104 introduced bugs (reported by Prabhu) and I can't seem to find a
108 introduced bugs (reported by Prabhu) and I can't seem to find a
105 robust combination which works in all cases. Will have to revisit
109 robust combination which works in all cases. Will have to revisit
106 later.
110 later.
107
111
108 * IPython/genutils.py: remove isspace() function. We've dropped
112 * IPython/genutils.py: remove isspace() function. We've dropped
109 2.2 compatibility, so it's OK to use the string method.
113 2.2 compatibility, so it's OK to use the string method.
110
114
111 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
115 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
112
116
113 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
117 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
114 matching what NOT to autocall on, to include all python binary
118 matching what NOT to autocall on, to include all python binary
115 operators (including things like 'and', 'or', 'is' and 'in').
119 operators (including things like 'and', 'or', 'is' and 'in').
116 Prompted by a bug report on 'foo & bar', but I realized we had
120 Prompted by a bug report on 'foo & bar', but I realized we had
117 many more potential bug cases with other operators. The regexp is
121 many more potential bug cases with other operators. The regexp is
118 self.re_exclude_auto, it's fairly commented.
122 self.re_exclude_auto, it's fairly commented.
119
123
120 2006-01-12 Ville Vainio <vivainio@gmail.com>
124 2006-01-12 Ville Vainio <vivainio@gmail.com>
121
125
122 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
126 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
123 Prettified and hardened string/backslash quoting with ipsystem(),
127 Prettified and hardened string/backslash quoting with ipsystem(),
124 ipalias() and ipmagic(). Now even \ characters are passed to
128 ipalias() and ipmagic(). Now even \ characters are passed to
125 %magics, !shell escapes and aliases exactly as they are in the
129 %magics, !shell escapes and aliases exactly as they are in the
126 ipython command line. Should improve backslash experience,
130 ipython command line. Should improve backslash experience,
127 particularly in Windows (path delimiter for some commands that
131 particularly in Windows (path delimiter for some commands that
128 won't understand '/'), but Unix benefits as well (regexps). %cd
132 won't understand '/'), but Unix benefits as well (regexps). %cd
129 magic still doesn't support backslash path delimiters, though. Also
133 magic still doesn't support backslash path delimiters, though. Also
130 deleted all pretense of supporting multiline command strings in
134 deleted all pretense of supporting multiline command strings in
131 !system or %magic commands. Thanks to Jerry McRae for suggestions.
135 !system or %magic commands. Thanks to Jerry McRae for suggestions.
132
136
133 * doc/build_doc_instructions.txt added. Documentation on how to
137 * doc/build_doc_instructions.txt added. Documentation on how to
134 use doc/update_manual.py, added yesterday. Both files contributed
138 use doc/update_manual.py, added yesterday. Both files contributed
135 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
139 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
136 doc/*.sh for deprecation at a later date.
140 doc/*.sh for deprecation at a later date.
137
141
138 * /ipython.py Added ipython.py to root directory for
142 * /ipython.py Added ipython.py to root directory for
139 zero-installation (tar xzvf ipython.tgz; cd ipython; python
143 zero-installation (tar xzvf ipython.tgz; cd ipython; python
140 ipython.py) and development convenience (no need to kee doing
144 ipython.py) and development convenience (no need to kee doing
141 "setup.py install" between changes).
145 "setup.py install" between changes).
142
146
143 * Made ! and !! shell escapes work (again) in multiline expressions:
147 * Made ! and !! shell escapes work (again) in multiline expressions:
144 if 1:
148 if 1:
145 !ls
149 !ls
146 !!ls
150 !!ls
147
151
148 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
152 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
149
153
150 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
154 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
151 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
155 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
152 module in case-insensitive installation. Was causing crashes
156 module in case-insensitive installation. Was causing crashes
153 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
157 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
154
158
155 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
159 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
156 <marienz-AT-gentoo.org>, closes
160 <marienz-AT-gentoo.org>, closes
157 http://www.scipy.net/roundup/ipython/issue51.
161 http://www.scipy.net/roundup/ipython/issue51.
158
162
159 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
163 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
160
164
161 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
165 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
162 problem of excessive CPU usage under *nix and keyboard lag under
166 problem of excessive CPU usage under *nix and keyboard lag under
163 win32.
167 win32.
164
168
165 2006-01-10 *** Released version 0.7.0
169 2006-01-10 *** Released version 0.7.0
166
170
167 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
171 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
168
172
169 * IPython/Release.py (revision): tag version number to 0.7.0,
173 * IPython/Release.py (revision): tag version number to 0.7.0,
170 ready for release.
174 ready for release.
171
175
172 * IPython/Magic.py (magic_edit): Add print statement to %edit so
176 * IPython/Magic.py (magic_edit): Add print statement to %edit so
173 it informs the user of the name of the temp. file used. This can
177 it informs the user of the name of the temp. file used. This can
174 help if you decide later to reuse that same file, so you know
178 help if you decide later to reuse that same file, so you know
175 where to copy the info from.
179 where to copy the info from.
176
180
177 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
181 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
178
182
179 * setup_bdist_egg.py: little script to build an egg. Added
183 * setup_bdist_egg.py: little script to build an egg. Added
180 support in the release tools as well.
184 support in the release tools as well.
181
185
182 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
186 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
183
187
184 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
188 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
185 version selection (new -wxversion command line and ipythonrc
189 version selection (new -wxversion command line and ipythonrc
186 parameter). Patch contributed by Arnd Baecker
190 parameter). Patch contributed by Arnd Baecker
187 <arnd.baecker-AT-web.de>.
191 <arnd.baecker-AT-web.de>.
188
192
189 * IPython/iplib.py (embed_mainloop): fix tab-completion in
193 * IPython/iplib.py (embed_mainloop): fix tab-completion in
190 embedded instances, for variables defined at the interactive
194 embedded instances, for variables defined at the interactive
191 prompt of the embedded ipython. Reported by Arnd.
195 prompt of the embedded ipython. Reported by Arnd.
192
196
193 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
197 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
194 it can be used as a (stateful) toggle, or with a direct parameter.
198 it can be used as a (stateful) toggle, or with a direct parameter.
195
199
196 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
200 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
197 could be triggered in certain cases and cause the traceback
201 could be triggered in certain cases and cause the traceback
198 printer not to work.
202 printer not to work.
199
203
200 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
204 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
201
205
202 * IPython/iplib.py (_should_recompile): Small fix, closes
206 * IPython/iplib.py (_should_recompile): Small fix, closes
203 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
207 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
204
208
205 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
209 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
206
210
207 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
211 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
208 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
212 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
209 Moad for help with tracking it down.
213 Moad for help with tracking it down.
210
214
211 * IPython/iplib.py (handle_auto): fix autocall handling for
215 * IPython/iplib.py (handle_auto): fix autocall handling for
212 objects which support BOTH __getitem__ and __call__ (so that f [x]
216 objects which support BOTH __getitem__ and __call__ (so that f [x]
213 is left alone, instead of becoming f([x]) automatically).
217 is left alone, instead of becoming f([x]) automatically).
214
218
215 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
219 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
216 Ville's patch.
220 Ville's patch.
217
221
218 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
222 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
219
223
220 * IPython/iplib.py (handle_auto): changed autocall semantics to
224 * IPython/iplib.py (handle_auto): changed autocall semantics to
221 include 'smart' mode, where the autocall transformation is NOT
225 include 'smart' mode, where the autocall transformation is NOT
222 applied if there are no arguments on the line. This allows you to
226 applied if there are no arguments on the line. This allows you to
223 just type 'foo' if foo is a callable to see its internal form,
227 just type 'foo' if foo is a callable to see its internal form,
224 instead of having it called with no arguments (typically a
228 instead of having it called with no arguments (typically a
225 mistake). The old 'full' autocall still exists: for that, you
229 mistake). The old 'full' autocall still exists: for that, you
226 need to set the 'autocall' parameter to 2 in your ipythonrc file.
230 need to set the 'autocall' parameter to 2 in your ipythonrc file.
227
231
228 * IPython/completer.py (Completer.attr_matches): add
232 * IPython/completer.py (Completer.attr_matches): add
229 tab-completion support for Enthoughts' traits. After a report by
233 tab-completion support for Enthoughts' traits. After a report by
230 Arnd and a patch by Prabhu.
234 Arnd and a patch by Prabhu.
231
235
232 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
236 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
233
237
234 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
238 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
235 Schmolck's patch to fix inspect.getinnerframes().
239 Schmolck's patch to fix inspect.getinnerframes().
236
240
237 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
241 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
238 for embedded instances, regarding handling of namespaces and items
242 for embedded instances, regarding handling of namespaces and items
239 added to the __builtin__ one. Multiple embedded instances and
243 added to the __builtin__ one. Multiple embedded instances and
240 recursive embeddings should work better now (though I'm not sure
244 recursive embeddings should work better now (though I'm not sure
241 I've got all the corner cases fixed, that code is a bit of a brain
245 I've got all the corner cases fixed, that code is a bit of a brain
242 twister).
246 twister).
243
247
244 * IPython/Magic.py (magic_edit): added support to edit in-memory
248 * IPython/Magic.py (magic_edit): added support to edit in-memory
245 macros (automatically creates the necessary temp files). %edit
249 macros (automatically creates the necessary temp files). %edit
246 also doesn't return the file contents anymore, it's just noise.
250 also doesn't return the file contents anymore, it's just noise.
247
251
248 * IPython/completer.py (Completer.attr_matches): revert change to
252 * IPython/completer.py (Completer.attr_matches): revert change to
249 complete only on attributes listed in __all__. I realized it
253 complete only on attributes listed in __all__. I realized it
250 cripples the tab-completion system as a tool for exploring the
254 cripples the tab-completion system as a tool for exploring the
251 internals of unknown libraries (it renders any non-__all__
255 internals of unknown libraries (it renders any non-__all__
252 attribute off-limits). I got bit by this when trying to see
256 attribute off-limits). I got bit by this when trying to see
253 something inside the dis module.
257 something inside the dis module.
254
258
255 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
259 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
256
260
257 * IPython/iplib.py (InteractiveShell.__init__): add .meta
261 * IPython/iplib.py (InteractiveShell.__init__): add .meta
258 namespace for users and extension writers to hold data in. This
262 namespace for users and extension writers to hold data in. This
259 follows the discussion in
263 follows the discussion in
260 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
264 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
261
265
262 * IPython/completer.py (IPCompleter.complete): small patch to help
266 * IPython/completer.py (IPCompleter.complete): small patch to help
263 tab-completion under Emacs, after a suggestion by John Barnard
267 tab-completion under Emacs, after a suggestion by John Barnard
264 <barnarj-AT-ccf.org>.
268 <barnarj-AT-ccf.org>.
265
269
266 * IPython/Magic.py (Magic.extract_input_slices): added support for
270 * IPython/Magic.py (Magic.extract_input_slices): added support for
267 the slice notation in magics to use N-M to represent numbers N...M
271 the slice notation in magics to use N-M to represent numbers N...M
268 (closed endpoints). This is used by %macro and %save.
272 (closed endpoints). This is used by %macro and %save.
269
273
270 * IPython/completer.py (Completer.attr_matches): for modules which
274 * IPython/completer.py (Completer.attr_matches): for modules which
271 define __all__, complete only on those. After a patch by Jeffrey
275 define __all__, complete only on those. After a patch by Jeffrey
272 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
276 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
273 speed up this routine.
277 speed up this routine.
274
278
275 * IPython/Logger.py (Logger.log): fix a history handling bug. I
279 * IPython/Logger.py (Logger.log): fix a history handling bug. I
276 don't know if this is the end of it, but the behavior now is
280 don't know if this is the end of it, but the behavior now is
277 certainly much more correct. Note that coupled with macros,
281 certainly much more correct. Note that coupled with macros,
278 slightly surprising (at first) behavior may occur: a macro will in
282 slightly surprising (at first) behavior may occur: a macro will in
279 general expand to multiple lines of input, so upon exiting, the
283 general expand to multiple lines of input, so upon exiting, the
280 in/out counters will both be bumped by the corresponding amount
284 in/out counters will both be bumped by the corresponding amount
281 (as if the macro's contents had been typed interactively). Typing
285 (as if the macro's contents had been typed interactively). Typing
282 %hist will reveal the intermediate (silently processed) lines.
286 %hist will reveal the intermediate (silently processed) lines.
283
287
284 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
288 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
285 pickle to fail (%run was overwriting __main__ and not restoring
289 pickle to fail (%run was overwriting __main__ and not restoring
286 it, but pickle relies on __main__ to operate).
290 it, but pickle relies on __main__ to operate).
287
291
288 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
292 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
289 using properties, but forgot to make the main InteractiveShell
293 using properties, but forgot to make the main InteractiveShell
290 class a new-style class. Properties fail silently, and
294 class a new-style class. Properties fail silently, and
291 misteriously, with old-style class (getters work, but
295 misteriously, with old-style class (getters work, but
292 setters don't do anything).
296 setters don't do anything).
293
297
294 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
298 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
295
299
296 * IPython/Magic.py (magic_history): fix history reporting bug (I
300 * IPython/Magic.py (magic_history): fix history reporting bug (I
297 know some nasties are still there, I just can't seem to find a
301 know some nasties are still there, I just can't seem to find a
298 reproducible test case to track them down; the input history is
302 reproducible test case to track them down; the input history is
299 falling out of sync...)
303 falling out of sync...)
300
304
301 * IPython/iplib.py (handle_shell_escape): fix bug where both
305 * IPython/iplib.py (handle_shell_escape): fix bug where both
302 aliases and system accesses where broken for indented code (such
306 aliases and system accesses where broken for indented code (such
303 as loops).
307 as loops).
304
308
305 * IPython/genutils.py (shell): fix small but critical bug for
309 * IPython/genutils.py (shell): fix small but critical bug for
306 win32 system access.
310 win32 system access.
307
311
308 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
312 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
309
313
310 * IPython/iplib.py (showtraceback): remove use of the
314 * IPython/iplib.py (showtraceback): remove use of the
311 sys.last_{type/value/traceback} structures, which are non
315 sys.last_{type/value/traceback} structures, which are non
312 thread-safe.
316 thread-safe.
313 (_prefilter): change control flow to ensure that we NEVER
317 (_prefilter): change control flow to ensure that we NEVER
314 introspect objects when autocall is off. This will guarantee that
318 introspect objects when autocall is off. This will guarantee that
315 having an input line of the form 'x.y', where access to attribute
319 having an input line of the form 'x.y', where access to attribute
316 'y' has side effects, doesn't trigger the side effect TWICE. It
320 'y' has side effects, doesn't trigger the side effect TWICE. It
317 is important to note that, with autocall on, these side effects
321 is important to note that, with autocall on, these side effects
318 can still happen.
322 can still happen.
319 (ipsystem): new builtin, to complete the ip{magic/alias/system}
323 (ipsystem): new builtin, to complete the ip{magic/alias/system}
320 trio. IPython offers these three kinds of special calls which are
324 trio. IPython offers these three kinds of special calls which are
321 not python code, and it's a good thing to have their call method
325 not python code, and it's a good thing to have their call method
322 be accessible as pure python functions (not just special syntax at
326 be accessible as pure python functions (not just special syntax at
323 the command line). It gives us a better internal implementation
327 the command line). It gives us a better internal implementation
324 structure, as well as exposing these for user scripting more
328 structure, as well as exposing these for user scripting more
325 cleanly.
329 cleanly.
326
330
327 * IPython/macro.py (Macro.__init__): moved macros to a standalone
331 * IPython/macro.py (Macro.__init__): moved macros to a standalone
328 file. Now that they'll be more likely to be used with the
332 file. Now that they'll be more likely to be used with the
329 persistance system (%store), I want to make sure their module path
333 persistance system (%store), I want to make sure their module path
330 doesn't change in the future, so that we don't break things for
334 doesn't change in the future, so that we don't break things for
331 users' persisted data.
335 users' persisted data.
332
336
333 * IPython/iplib.py (autoindent_update): move indentation
337 * IPython/iplib.py (autoindent_update): move indentation
334 management into the _text_ processing loop, not the keyboard
338 management into the _text_ processing loop, not the keyboard
335 interactive one. This is necessary to correctly process non-typed
339 interactive one. This is necessary to correctly process non-typed
336 multiline input (such as macros).
340 multiline input (such as macros).
337
341
338 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
342 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
339 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
343 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
340 which was producing problems in the resulting manual.
344 which was producing problems in the resulting manual.
341 (magic_whos): improve reporting of instances (show their class,
345 (magic_whos): improve reporting of instances (show their class,
342 instead of simply printing 'instance' which isn't terribly
346 instead of simply printing 'instance' which isn't terribly
343 informative).
347 informative).
344
348
345 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
349 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
346 (minor mods) to support network shares under win32.
350 (minor mods) to support network shares under win32.
347
351
348 * IPython/winconsole.py (get_console_size): add new winconsole
352 * IPython/winconsole.py (get_console_size): add new winconsole
349 module and fixes to page_dumb() to improve its behavior under
353 module and fixes to page_dumb() to improve its behavior under
350 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
354 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
351
355
352 * IPython/Magic.py (Macro): simplified Macro class to just
356 * IPython/Magic.py (Macro): simplified Macro class to just
353 subclass list. We've had only 2.2 compatibility for a very long
357 subclass list. We've had only 2.2 compatibility for a very long
354 time, yet I was still avoiding subclassing the builtin types. No
358 time, yet I was still avoiding subclassing the builtin types. No
355 more (I'm also starting to use properties, though I won't shift to
359 more (I'm also starting to use properties, though I won't shift to
356 2.3-specific features quite yet).
360 2.3-specific features quite yet).
357 (magic_store): added Ville's patch for lightweight variable
361 (magic_store): added Ville's patch for lightweight variable
358 persistence, after a request on the user list by Matt Wilkie
362 persistence, after a request on the user list by Matt Wilkie
359 <maphew-AT-gmail.com>. The new %store magic's docstring has full
363 <maphew-AT-gmail.com>. The new %store magic's docstring has full
360 details.
364 details.
361
365
362 * IPython/iplib.py (InteractiveShell.post_config_initialization):
366 * IPython/iplib.py (InteractiveShell.post_config_initialization):
363 changed the default logfile name from 'ipython.log' to
367 changed the default logfile name from 'ipython.log' to
364 'ipython_log.py'. These logs are real python files, and now that
368 'ipython_log.py'. These logs are real python files, and now that
365 we have much better multiline support, people are more likely to
369 we have much better multiline support, people are more likely to
366 want to use them as such. Might as well name them correctly.
370 want to use them as such. Might as well name them correctly.
367
371
368 * IPython/Magic.py: substantial cleanup. While we can't stop
372 * IPython/Magic.py: substantial cleanup. While we can't stop
369 using magics as mixins, due to the existing customizations 'out
373 using magics as mixins, due to the existing customizations 'out
370 there' which rely on the mixin naming conventions, at least I
374 there' which rely on the mixin naming conventions, at least I
371 cleaned out all cross-class name usage. So once we are OK with
375 cleaned out all cross-class name usage. So once we are OK with
372 breaking compatibility, the two systems can be separated.
376 breaking compatibility, the two systems can be separated.
373
377
374 * IPython/Logger.py: major cleanup. This one is NOT a mixin
378 * IPython/Logger.py: major cleanup. This one is NOT a mixin
375 anymore, and the class is a fair bit less hideous as well. New
379 anymore, and the class is a fair bit less hideous as well. New
376 features were also introduced: timestamping of input, and logging
380 features were also introduced: timestamping of input, and logging
377 of output results. These are user-visible with the -t and -o
381 of output results. These are user-visible with the -t and -o
378 options to %logstart. Closes
382 options to %logstart. Closes
379 http://www.scipy.net/roundup/ipython/issue11 and a request by
383 http://www.scipy.net/roundup/ipython/issue11 and a request by
380 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
384 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
381
385
382 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
386 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
383
387
384 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
388 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
385 better hadnle backslashes in paths. See the thread 'More Windows
389 better hadnle backslashes in paths. See the thread 'More Windows
386 questions part 2 - \/ characters revisited' on the iypthon user
390 questions part 2 - \/ characters revisited' on the iypthon user
387 list:
391 list:
388 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
392 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
389
393
390 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
394 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
391
395
392 (InteractiveShell.__init__): change threaded shells to not use the
396 (InteractiveShell.__init__): change threaded shells to not use the
393 ipython crash handler. This was causing more problems than not,
397 ipython crash handler. This was causing more problems than not,
394 as exceptions in the main thread (GUI code, typically) would
398 as exceptions in the main thread (GUI code, typically) would
395 always show up as a 'crash', when they really weren't.
399 always show up as a 'crash', when they really weren't.
396
400
397 The colors and exception mode commands (%colors/%xmode) have been
401 The colors and exception mode commands (%colors/%xmode) have been
398 synchronized to also take this into account, so users can get
402 synchronized to also take this into account, so users can get
399 verbose exceptions for their threaded code as well. I also added
403 verbose exceptions for their threaded code as well. I also added
400 support for activating pdb inside this exception handler as well,
404 support for activating pdb inside this exception handler as well,
401 so now GUI authors can use IPython's enhanced pdb at runtime.
405 so now GUI authors can use IPython's enhanced pdb at runtime.
402
406
403 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
407 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
404 true by default, and add it to the shipped ipythonrc file. Since
408 true by default, and add it to the shipped ipythonrc file. Since
405 this asks the user before proceeding, I think it's OK to make it
409 this asks the user before proceeding, I think it's OK to make it
406 true by default.
410 true by default.
407
411
408 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
412 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
409 of the previous special-casing of input in the eval loop. I think
413 of the previous special-casing of input in the eval loop. I think
410 this is cleaner, as they really are commands and shouldn't have
414 this is cleaner, as they really are commands and shouldn't have
411 a special role in the middle of the core code.
415 a special role in the middle of the core code.
412
416
413 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
417 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
414
418
415 * IPython/iplib.py (edit_syntax_error): added support for
419 * IPython/iplib.py (edit_syntax_error): added support for
416 automatically reopening the editor if the file had a syntax error
420 automatically reopening the editor if the file had a syntax error
417 in it. Thanks to scottt who provided the patch at:
421 in it. Thanks to scottt who provided the patch at:
418 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
422 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
419 version committed).
423 version committed).
420
424
421 * IPython/iplib.py (handle_normal): add suport for multi-line
425 * IPython/iplib.py (handle_normal): add suport for multi-line
422 input with emtpy lines. This fixes
426 input with emtpy lines. This fixes
423 http://www.scipy.net/roundup/ipython/issue43 and a similar
427 http://www.scipy.net/roundup/ipython/issue43 and a similar
424 discussion on the user list.
428 discussion on the user list.
425
429
426 WARNING: a behavior change is necessarily introduced to support
430 WARNING: a behavior change is necessarily introduced to support
427 blank lines: now a single blank line with whitespace does NOT
431 blank lines: now a single blank line with whitespace does NOT
428 break the input loop, which means that when autoindent is on, by
432 break the input loop, which means that when autoindent is on, by
429 default hitting return on the next (indented) line does NOT exit.
433 default hitting return on the next (indented) line does NOT exit.
430
434
431 Instead, to exit a multiline input you can either have:
435 Instead, to exit a multiline input you can either have:
432
436
433 - TWO whitespace lines (just hit return again), or
437 - TWO whitespace lines (just hit return again), or
434 - a single whitespace line of a different length than provided
438 - a single whitespace line of a different length than provided
435 by the autoindent (add or remove a space).
439 by the autoindent (add or remove a space).
436
440
437 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
441 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
438 module to better organize all readline-related functionality.
442 module to better organize all readline-related functionality.
439 I've deleted FlexCompleter and put all completion clases here.
443 I've deleted FlexCompleter and put all completion clases here.
440
444
441 * IPython/iplib.py (raw_input): improve indentation management.
445 * IPython/iplib.py (raw_input): improve indentation management.
442 It is now possible to paste indented code with autoindent on, and
446 It is now possible to paste indented code with autoindent on, and
443 the code is interpreted correctly (though it still looks bad on
447 the code is interpreted correctly (though it still looks bad on
444 screen, due to the line-oriented nature of ipython).
448 screen, due to the line-oriented nature of ipython).
445 (MagicCompleter.complete): change behavior so that a TAB key on an
449 (MagicCompleter.complete): change behavior so that a TAB key on an
446 otherwise empty line actually inserts a tab, instead of completing
450 otherwise empty line actually inserts a tab, instead of completing
447 on the entire global namespace. This makes it easier to use the
451 on the entire global namespace. This makes it easier to use the
448 TAB key for indentation. After a request by Hans Meine
452 TAB key for indentation. After a request by Hans Meine
449 <hans_meine-AT-gmx.net>
453 <hans_meine-AT-gmx.net>
450 (_prefilter): add support so that typing plain 'exit' or 'quit'
454 (_prefilter): add support so that typing plain 'exit' or 'quit'
451 does a sensible thing. Originally I tried to deviate as little as
455 does a sensible thing. Originally I tried to deviate as little as
452 possible from the default python behavior, but even that one may
456 possible from the default python behavior, but even that one may
453 change in this direction (thread on python-dev to that effect).
457 change in this direction (thread on python-dev to that effect).
454 Regardless, ipython should do the right thing even if CPython's
458 Regardless, ipython should do the right thing even if CPython's
455 '>>>' prompt doesn't.
459 '>>>' prompt doesn't.
456 (InteractiveShell): removed subclassing code.InteractiveConsole
460 (InteractiveShell): removed subclassing code.InteractiveConsole
457 class. By now we'd overridden just about all of its methods: I've
461 class. By now we'd overridden just about all of its methods: I've
458 copied the remaining two over, and now ipython is a standalone
462 copied the remaining two over, and now ipython is a standalone
459 class. This will provide a clearer picture for the chainsaw
463 class. This will provide a clearer picture for the chainsaw
460 branch refactoring.
464 branch refactoring.
461
465
462 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
466 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
463
467
464 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
468 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
465 failures for objects which break when dir() is called on them.
469 failures for objects which break when dir() is called on them.
466
470
467 * IPython/FlexCompleter.py (Completer.__init__): Added support for
471 * IPython/FlexCompleter.py (Completer.__init__): Added support for
468 distinct local and global namespaces in the completer API. This
472 distinct local and global namespaces in the completer API. This
469 change allows us top properly handle completion with distinct
473 change allows us top properly handle completion with distinct
470 scopes, including in embedded instances (this had never really
474 scopes, including in embedded instances (this had never really
471 worked correctly).
475 worked correctly).
472
476
473 Note: this introduces a change in the constructor for
477 Note: this introduces a change in the constructor for
474 MagicCompleter, as a new global_namespace parameter is now the
478 MagicCompleter, as a new global_namespace parameter is now the
475 second argument (the others were bumped one position).
479 second argument (the others were bumped one position).
476
480
477 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
481 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
478
482
479 * IPython/iplib.py (embed_mainloop): fix tab-completion in
483 * IPython/iplib.py (embed_mainloop): fix tab-completion in
480 embedded instances (which can be done now thanks to Vivian's
484 embedded instances (which can be done now thanks to Vivian's
481 frame-handling fixes for pdb).
485 frame-handling fixes for pdb).
482 (InteractiveShell.__init__): Fix namespace handling problem in
486 (InteractiveShell.__init__): Fix namespace handling problem in
483 embedded instances. We were overwriting __main__ unconditionally,
487 embedded instances. We were overwriting __main__ unconditionally,
484 and this should only be done for 'full' (non-embedded) IPython;
488 and this should only be done for 'full' (non-embedded) IPython;
485 embedded instances must respect the caller's __main__. Thanks to
489 embedded instances must respect the caller's __main__. Thanks to
486 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
490 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
487
491
488 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
492 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
489
493
490 * setup.py: added download_url to setup(). This registers the
494 * setup.py: added download_url to setup(). This registers the
491 download address at PyPI, which is not only useful to humans
495 download address at PyPI, which is not only useful to humans
492 browsing the site, but is also picked up by setuptools (the Eggs
496 browsing the site, but is also picked up by setuptools (the Eggs
493 machinery). Thanks to Ville and R. Kern for the info/discussion
497 machinery). Thanks to Ville and R. Kern for the info/discussion
494 on this.
498 on this.
495
499
496 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
500 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
497
501
498 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
502 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
499 This brings a lot of nice functionality to the pdb mode, which now
503 This brings a lot of nice functionality to the pdb mode, which now
500 has tab-completion, syntax highlighting, and better stack handling
504 has tab-completion, syntax highlighting, and better stack handling
501 than before. Many thanks to Vivian De Smedt
505 than before. Many thanks to Vivian De Smedt
502 <vivian-AT-vdesmedt.com> for the original patches.
506 <vivian-AT-vdesmedt.com> for the original patches.
503
507
504 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
508 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
505
509
506 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
510 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
507 sequence to consistently accept the banner argument. The
511 sequence to consistently accept the banner argument. The
508 inconsistency was tripping SAGE, thanks to Gary Zablackis
512 inconsistency was tripping SAGE, thanks to Gary Zablackis
509 <gzabl-AT-yahoo.com> for the report.
513 <gzabl-AT-yahoo.com> for the report.
510
514
511 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
515 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
512
516
513 * IPython/iplib.py (InteractiveShell.post_config_initialization):
517 * IPython/iplib.py (InteractiveShell.post_config_initialization):
514 Fix bug where a naked 'alias' call in the ipythonrc file would
518 Fix bug where a naked 'alias' call in the ipythonrc file would
515 cause a crash. Bug reported by Jorgen Stenarson.
519 cause a crash. Bug reported by Jorgen Stenarson.
516
520
517 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
521 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
518
522
519 * IPython/ipmaker.py (make_IPython): cleanups which should improve
523 * IPython/ipmaker.py (make_IPython): cleanups which should improve
520 startup time.
524 startup time.
521
525
522 * IPython/iplib.py (runcode): my globals 'fix' for embedded
526 * IPython/iplib.py (runcode): my globals 'fix' for embedded
523 instances had introduced a bug with globals in normal code. Now
527 instances had introduced a bug with globals in normal code. Now
524 it's working in all cases.
528 it's working in all cases.
525
529
526 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
530 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
527 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
531 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
528 has been introduced to set the default case sensitivity of the
532 has been introduced to set the default case sensitivity of the
529 searches. Users can still select either mode at runtime on a
533 searches. Users can still select either mode at runtime on a
530 per-search basis.
534 per-search basis.
531
535
532 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
536 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
533
537
534 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
538 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
535 attributes in wildcard searches for subclasses. Modified version
539 attributes in wildcard searches for subclasses. Modified version
536 of a patch by Jorgen.
540 of a patch by Jorgen.
537
541
538 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
542 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
539
543
540 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
544 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
541 embedded instances. I added a user_global_ns attribute to the
545 embedded instances. I added a user_global_ns attribute to the
542 InteractiveShell class to handle this.
546 InteractiveShell class to handle this.
543
547
544 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
548 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
545
549
546 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
550 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
547 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
551 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
548 (reported under win32, but may happen also in other platforms).
552 (reported under win32, but may happen also in other platforms).
549 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
553 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
550
554
551 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
555 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
552
556
553 * IPython/Magic.py (magic_psearch): new support for wildcard
557 * IPython/Magic.py (magic_psearch): new support for wildcard
554 patterns. Now, typing ?a*b will list all names which begin with a
558 patterns. Now, typing ?a*b will list all names which begin with a
555 and end in b, for example. The %psearch magic has full
559 and end in b, for example. The %psearch magic has full
556 docstrings. Many thanks to JΓΆrgen Stenarson
560 docstrings. Many thanks to JΓΆrgen Stenarson
557 <jorgen.stenarson-AT-bostream.nu>, author of the patches
561 <jorgen.stenarson-AT-bostream.nu>, author of the patches
558 implementing this functionality.
562 implementing this functionality.
559
563
560 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
564 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
561
565
562 * Manual: fixed long-standing annoyance of double-dashes (as in
566 * Manual: fixed long-standing annoyance of double-dashes (as in
563 --prefix=~, for example) being stripped in the HTML version. This
567 --prefix=~, for example) being stripped in the HTML version. This
564 is a latex2html bug, but a workaround was provided. Many thanks
568 is a latex2html bug, but a workaround was provided. Many thanks
565 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
569 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
566 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
570 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
567 rolling. This seemingly small issue had tripped a number of users
571 rolling. This seemingly small issue had tripped a number of users
568 when first installing, so I'm glad to see it gone.
572 when first installing, so I'm glad to see it gone.
569
573
570 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
574 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
571
575
572 * IPython/Extensions/numeric_formats.py: fix missing import,
576 * IPython/Extensions/numeric_formats.py: fix missing import,
573 reported by Stephen Walton.
577 reported by Stephen Walton.
574
578
575 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
579 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
576
580
577 * IPython/demo.py: finish demo module, fully documented now.
581 * IPython/demo.py: finish demo module, fully documented now.
578
582
579 * IPython/genutils.py (file_read): simple little utility to read a
583 * IPython/genutils.py (file_read): simple little utility to read a
580 file and ensure it's closed afterwards.
584 file and ensure it's closed afterwards.
581
585
582 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
586 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
583
587
584 * IPython/demo.py (Demo.__init__): added support for individually
588 * IPython/demo.py (Demo.__init__): added support for individually
585 tagging blocks for automatic execution.
589 tagging blocks for automatic execution.
586
590
587 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
591 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
588 syntax-highlighted python sources, requested by John.
592 syntax-highlighted python sources, requested by John.
589
593
590 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
594 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
591
595
592 * IPython/demo.py (Demo.again): fix bug where again() blocks after
596 * IPython/demo.py (Demo.again): fix bug where again() blocks after
593 finishing.
597 finishing.
594
598
595 * IPython/genutils.py (shlex_split): moved from Magic to here,
599 * IPython/genutils.py (shlex_split): moved from Magic to here,
596 where all 2.2 compatibility stuff lives. I needed it for demo.py.
600 where all 2.2 compatibility stuff lives. I needed it for demo.py.
597
601
598 * IPython/demo.py (Demo.__init__): added support for silent
602 * IPython/demo.py (Demo.__init__): added support for silent
599 blocks, improved marks as regexps, docstrings written.
603 blocks, improved marks as regexps, docstrings written.
600 (Demo.__init__): better docstring, added support for sys.argv.
604 (Demo.__init__): better docstring, added support for sys.argv.
601
605
602 * IPython/genutils.py (marquee): little utility used by the demo
606 * IPython/genutils.py (marquee): little utility used by the demo
603 code, handy in general.
607 code, handy in general.
604
608
605 * IPython/demo.py (Demo.__init__): new class for interactive
609 * IPython/demo.py (Demo.__init__): new class for interactive
606 demos. Not documented yet, I just wrote it in a hurry for
610 demos. Not documented yet, I just wrote it in a hurry for
607 scipy'05. Will docstring later.
611 scipy'05. Will docstring later.
608
612
609 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
613 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
610
614
611 * IPython/Shell.py (sigint_handler): Drastic simplification which
615 * IPython/Shell.py (sigint_handler): Drastic simplification which
612 also seems to make Ctrl-C work correctly across threads! This is
616 also seems to make Ctrl-C work correctly across threads! This is
613 so simple, that I can't beleive I'd missed it before. Needs more
617 so simple, that I can't beleive I'd missed it before. Needs more
614 testing, though.
618 testing, though.
615 (KBINT): Never mind, revert changes. I'm sure I'd tried something
619 (KBINT): Never mind, revert changes. I'm sure I'd tried something
616 like this before...
620 like this before...
617
621
618 * IPython/genutils.py (get_home_dir): add protection against
622 * IPython/genutils.py (get_home_dir): add protection against
619 non-dirs in win32 registry.
623 non-dirs in win32 registry.
620
624
621 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
625 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
622 bug where dict was mutated while iterating (pysh crash).
626 bug where dict was mutated while iterating (pysh crash).
623
627
624 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
628 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
625
629
626 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
630 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
627 spurious newlines added by this routine. After a report by
631 spurious newlines added by this routine. After a report by
628 F. Mantegazza.
632 F. Mantegazza.
629
633
630 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
634 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
631
635
632 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
636 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
633 calls. These were a leftover from the GTK 1.x days, and can cause
637 calls. These were a leftover from the GTK 1.x days, and can cause
634 problems in certain cases (after a report by John Hunter).
638 problems in certain cases (after a report by John Hunter).
635
639
636 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
640 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
637 os.getcwd() fails at init time. Thanks to patch from David Remahl
641 os.getcwd() fails at init time. Thanks to patch from David Remahl
638 <chmod007-AT-mac.com>.
642 <chmod007-AT-mac.com>.
639 (InteractiveShell.__init__): prevent certain special magics from
643 (InteractiveShell.__init__): prevent certain special magics from
640 being shadowed by aliases. Closes
644 being shadowed by aliases. Closes
641 http://www.scipy.net/roundup/ipython/issue41.
645 http://www.scipy.net/roundup/ipython/issue41.
642
646
643 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
647 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
644
648
645 * IPython/iplib.py (InteractiveShell.complete): Added new
649 * IPython/iplib.py (InteractiveShell.complete): Added new
646 top-level completion method to expose the completion mechanism
650 top-level completion method to expose the completion mechanism
647 beyond readline-based environments.
651 beyond readline-based environments.
648
652
649 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
653 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
650
654
651 * tools/ipsvnc (svnversion): fix svnversion capture.
655 * tools/ipsvnc (svnversion): fix svnversion capture.
652
656
653 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
657 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
654 attribute to self, which was missing. Before, it was set by a
658 attribute to self, which was missing. Before, it was set by a
655 routine which in certain cases wasn't being called, so the
659 routine which in certain cases wasn't being called, so the
656 instance could end up missing the attribute. This caused a crash.
660 instance could end up missing the attribute. This caused a crash.
657 Closes http://www.scipy.net/roundup/ipython/issue40.
661 Closes http://www.scipy.net/roundup/ipython/issue40.
658
662
659 2005-08-16 Fernando Perez <fperez@colorado.edu>
663 2005-08-16 Fernando Perez <fperez@colorado.edu>
660
664
661 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
665 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
662 contains non-string attribute. Closes
666 contains non-string attribute. Closes
663 http://www.scipy.net/roundup/ipython/issue38.
667 http://www.scipy.net/roundup/ipython/issue38.
664
668
665 2005-08-14 Fernando Perez <fperez@colorado.edu>
669 2005-08-14 Fernando Perez <fperez@colorado.edu>
666
670
667 * tools/ipsvnc: Minor improvements, to add changeset info.
671 * tools/ipsvnc: Minor improvements, to add changeset info.
668
672
669 2005-08-12 Fernando Perez <fperez@colorado.edu>
673 2005-08-12 Fernando Perez <fperez@colorado.edu>
670
674
671 * IPython/iplib.py (runsource): remove self.code_to_run_src
675 * IPython/iplib.py (runsource): remove self.code_to_run_src
672 attribute. I realized this is nothing more than
676 attribute. I realized this is nothing more than
673 '\n'.join(self.buffer), and having the same data in two different
677 '\n'.join(self.buffer), and having the same data in two different
674 places is just asking for synchronization bugs. This may impact
678 places is just asking for synchronization bugs. This may impact
675 people who have custom exception handlers, so I need to warn
679 people who have custom exception handlers, so I need to warn
676 ipython-dev about it (F. Mantegazza may use them).
680 ipython-dev about it (F. Mantegazza may use them).
677
681
678 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
682 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
679
683
680 * IPython/genutils.py: fix 2.2 compatibility (generators)
684 * IPython/genutils.py: fix 2.2 compatibility (generators)
681
685
682 2005-07-18 Fernando Perez <fperez@colorado.edu>
686 2005-07-18 Fernando Perez <fperez@colorado.edu>
683
687
684 * IPython/genutils.py (get_home_dir): fix to help users with
688 * IPython/genutils.py (get_home_dir): fix to help users with
685 invalid $HOME under win32.
689 invalid $HOME under win32.
686
690
687 2005-07-17 Fernando Perez <fperez@colorado.edu>
691 2005-07-17 Fernando Perez <fperez@colorado.edu>
688
692
689 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
693 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
690 some old hacks and clean up a bit other routines; code should be
694 some old hacks and clean up a bit other routines; code should be
691 simpler and a bit faster.
695 simpler and a bit faster.
692
696
693 * IPython/iplib.py (interact): removed some last-resort attempts
697 * IPython/iplib.py (interact): removed some last-resort attempts
694 to survive broken stdout/stderr. That code was only making it
698 to survive broken stdout/stderr. That code was only making it
695 harder to abstract out the i/o (necessary for gui integration),
699 harder to abstract out the i/o (necessary for gui integration),
696 and the crashes it could prevent were extremely rare in practice
700 and the crashes it could prevent were extremely rare in practice
697 (besides being fully user-induced in a pretty violent manner).
701 (besides being fully user-induced in a pretty violent manner).
698
702
699 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
703 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
700 Nothing major yet, but the code is simpler to read; this should
704 Nothing major yet, but the code is simpler to read; this should
701 make it easier to do more serious modifications in the future.
705 make it easier to do more serious modifications in the future.
702
706
703 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
707 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
704 which broke in .15 (thanks to a report by Ville).
708 which broke in .15 (thanks to a report by Ville).
705
709
706 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
710 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
707 be quite correct, I know next to nothing about unicode). This
711 be quite correct, I know next to nothing about unicode). This
708 will allow unicode strings to be used in prompts, amongst other
712 will allow unicode strings to be used in prompts, amongst other
709 cases. It also will prevent ipython from crashing when unicode
713 cases. It also will prevent ipython from crashing when unicode
710 shows up unexpectedly in many places. If ascii encoding fails, we
714 shows up unexpectedly in many places. If ascii encoding fails, we
711 assume utf_8. Currently the encoding is not a user-visible
715 assume utf_8. Currently the encoding is not a user-visible
712 setting, though it could be made so if there is demand for it.
716 setting, though it could be made so if there is demand for it.
713
717
714 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
718 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
715
719
716 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
720 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
717
721
718 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
722 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
719
723
720 * IPython/genutils.py: Add 2.2 compatibility here, so all other
724 * IPython/genutils.py: Add 2.2 compatibility here, so all other
721 code can work transparently for 2.2/2.3.
725 code can work transparently for 2.2/2.3.
722
726
723 2005-07-16 Fernando Perez <fperez@colorado.edu>
727 2005-07-16 Fernando Perez <fperez@colorado.edu>
724
728
725 * IPython/ultraTB.py (ExceptionColors): Make a global variable
729 * IPython/ultraTB.py (ExceptionColors): Make a global variable
726 out of the color scheme table used for coloring exception
730 out of the color scheme table used for coloring exception
727 tracebacks. This allows user code to add new schemes at runtime.
731 tracebacks. This allows user code to add new schemes at runtime.
728 This is a minimally modified version of the patch at
732 This is a minimally modified version of the patch at
729 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
733 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
730 for the contribution.
734 for the contribution.
731
735
732 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
736 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
733 slightly modified version of the patch in
737 slightly modified version of the patch in
734 http://www.scipy.net/roundup/ipython/issue34, which also allows me
738 http://www.scipy.net/roundup/ipython/issue34, which also allows me
735 to remove the previous try/except solution (which was costlier).
739 to remove the previous try/except solution (which was costlier).
736 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
740 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
737
741
738 2005-06-08 Fernando Perez <fperez@colorado.edu>
742 2005-06-08 Fernando Perez <fperez@colorado.edu>
739
743
740 * IPython/iplib.py (write/write_err): Add methods to abstract all
744 * IPython/iplib.py (write/write_err): Add methods to abstract all
741 I/O a bit more.
745 I/O a bit more.
742
746
743 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
747 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
744 warning, reported by Aric Hagberg, fix by JD Hunter.
748 warning, reported by Aric Hagberg, fix by JD Hunter.
745
749
746 2005-06-02 *** Released version 0.6.15
750 2005-06-02 *** Released version 0.6.15
747
751
748 2005-06-01 Fernando Perez <fperez@colorado.edu>
752 2005-06-01 Fernando Perez <fperez@colorado.edu>
749
753
750 * IPython/iplib.py (MagicCompleter.file_matches): Fix
754 * IPython/iplib.py (MagicCompleter.file_matches): Fix
751 tab-completion of filenames within open-quoted strings. Note that
755 tab-completion of filenames within open-quoted strings. Note that
752 this requires that in ~/.ipython/ipythonrc, users change the
756 this requires that in ~/.ipython/ipythonrc, users change the
753 readline delimiters configuration to read:
757 readline delimiters configuration to read:
754
758
755 readline_remove_delims -/~
759 readline_remove_delims -/~
756
760
757
761
758 2005-05-31 *** Released version 0.6.14
762 2005-05-31 *** Released version 0.6.14
759
763
760 2005-05-29 Fernando Perez <fperez@colorado.edu>
764 2005-05-29 Fernando Perez <fperez@colorado.edu>
761
765
762 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
766 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
763 with files not on the filesystem. Reported by Eliyahu Sandler
767 with files not on the filesystem. Reported by Eliyahu Sandler
764 <eli@gondolin.net>
768 <eli@gondolin.net>
765
769
766 2005-05-22 Fernando Perez <fperez@colorado.edu>
770 2005-05-22 Fernando Perez <fperez@colorado.edu>
767
771
768 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
772 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
769 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
773 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
770
774
771 2005-05-19 Fernando Perez <fperez@colorado.edu>
775 2005-05-19 Fernando Perez <fperez@colorado.edu>
772
776
773 * IPython/iplib.py (safe_execfile): close a file which could be
777 * IPython/iplib.py (safe_execfile): close a file which could be
774 left open (causing problems in win32, which locks open files).
778 left open (causing problems in win32, which locks open files).
775 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
779 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
776
780
777 2005-05-18 Fernando Perez <fperez@colorado.edu>
781 2005-05-18 Fernando Perez <fperez@colorado.edu>
778
782
779 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
783 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
780 keyword arguments correctly to safe_execfile().
784 keyword arguments correctly to safe_execfile().
781
785
782 2005-05-13 Fernando Perez <fperez@colorado.edu>
786 2005-05-13 Fernando Perez <fperez@colorado.edu>
783
787
784 * ipython.1: Added info about Qt to manpage, and threads warning
788 * ipython.1: Added info about Qt to manpage, and threads warning
785 to usage page (invoked with --help).
789 to usage page (invoked with --help).
786
790
787 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
791 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
788 new matcher (it goes at the end of the priority list) to do
792 new matcher (it goes at the end of the priority list) to do
789 tab-completion on named function arguments. Submitted by George
793 tab-completion on named function arguments. Submitted by George
790 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
794 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
791 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
795 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
792 for more details.
796 for more details.
793
797
794 * IPython/Magic.py (magic_run): Added new -e flag to ignore
798 * IPython/Magic.py (magic_run): Added new -e flag to ignore
795 SystemExit exceptions in the script being run. Thanks to a report
799 SystemExit exceptions in the script being run. Thanks to a report
796 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
800 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
797 producing very annoying behavior when running unit tests.
801 producing very annoying behavior when running unit tests.
798
802
799 2005-05-12 Fernando Perez <fperez@colorado.edu>
803 2005-05-12 Fernando Perez <fperez@colorado.edu>
800
804
801 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
805 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
802 which I'd broken (again) due to a changed regexp. In the process,
806 which I'd broken (again) due to a changed regexp. In the process,
803 added ';' as an escape to auto-quote the whole line without
807 added ';' as an escape to auto-quote the whole line without
804 splitting its arguments. Thanks to a report by Jerry McRae
808 splitting its arguments. Thanks to a report by Jerry McRae
805 <qrs0xyc02-AT-sneakemail.com>.
809 <qrs0xyc02-AT-sneakemail.com>.
806
810
807 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
811 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
808 possible crashes caused by a TokenError. Reported by Ed Schofield
812 possible crashes caused by a TokenError. Reported by Ed Schofield
809 <schofield-AT-ftw.at>.
813 <schofield-AT-ftw.at>.
810
814
811 2005-05-06 Fernando Perez <fperez@colorado.edu>
815 2005-05-06 Fernando Perez <fperez@colorado.edu>
812
816
813 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
817 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
814
818
815 2005-04-29 Fernando Perez <fperez@colorado.edu>
819 2005-04-29 Fernando Perez <fperez@colorado.edu>
816
820
817 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
821 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
818 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
822 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
819 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
823 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
820 which provides support for Qt interactive usage (similar to the
824 which provides support for Qt interactive usage (similar to the
821 existing one for WX and GTK). This had been often requested.
825 existing one for WX and GTK). This had been often requested.
822
826
823 2005-04-14 *** Released version 0.6.13
827 2005-04-14 *** Released version 0.6.13
824
828
825 2005-04-08 Fernando Perez <fperez@colorado.edu>
829 2005-04-08 Fernando Perez <fperez@colorado.edu>
826
830
827 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
831 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
828 from _ofind, which gets called on almost every input line. Now,
832 from _ofind, which gets called on almost every input line. Now,
829 we only try to get docstrings if they are actually going to be
833 we only try to get docstrings if they are actually going to be
830 used (the overhead of fetching unnecessary docstrings can be
834 used (the overhead of fetching unnecessary docstrings can be
831 noticeable for certain objects, such as Pyro proxies).
835 noticeable for certain objects, such as Pyro proxies).
832
836
833 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
837 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
834 for completers. For some reason I had been passing them the state
838 for completers. For some reason I had been passing them the state
835 variable, which completers never actually need, and was in
839 variable, which completers never actually need, and was in
836 conflict with the rlcompleter API. Custom completers ONLY need to
840 conflict with the rlcompleter API. Custom completers ONLY need to
837 take the text parameter.
841 take the text parameter.
838
842
839 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
843 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
840 work correctly in pysh. I've also moved all the logic which used
844 work correctly in pysh. I've also moved all the logic which used
841 to be in pysh.py here, which will prevent problems with future
845 to be in pysh.py here, which will prevent problems with future
842 upgrades. However, this time I must warn users to update their
846 upgrades. However, this time I must warn users to update their
843 pysh profile to include the line
847 pysh profile to include the line
844
848
845 import_all IPython.Extensions.InterpreterExec
849 import_all IPython.Extensions.InterpreterExec
846
850
847 because otherwise things won't work for them. They MUST also
851 because otherwise things won't work for them. They MUST also
848 delete pysh.py and the line
852 delete pysh.py and the line
849
853
850 execfile pysh.py
854 execfile pysh.py
851
855
852 from their ipythonrc-pysh.
856 from their ipythonrc-pysh.
853
857
854 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
858 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
855 robust in the face of objects whose dir() returns non-strings
859 robust in the face of objects whose dir() returns non-strings
856 (which it shouldn't, but some broken libs like ITK do). Thanks to
860 (which it shouldn't, but some broken libs like ITK do). Thanks to
857 a patch by John Hunter (implemented differently, though). Also
861 a patch by John Hunter (implemented differently, though). Also
858 minor improvements by using .extend instead of + on lists.
862 minor improvements by using .extend instead of + on lists.
859
863
860 * pysh.py:
864 * pysh.py:
861
865
862 2005-04-06 Fernando Perez <fperez@colorado.edu>
866 2005-04-06 Fernando Perez <fperez@colorado.edu>
863
867
864 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
868 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
865 by default, so that all users benefit from it. Those who don't
869 by default, so that all users benefit from it. Those who don't
866 want it can still turn it off.
870 want it can still turn it off.
867
871
868 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
872 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
869 config file, I'd forgotten about this, so users were getting it
873 config file, I'd forgotten about this, so users were getting it
870 off by default.
874 off by default.
871
875
872 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
876 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
873 consistency. Now magics can be called in multiline statements,
877 consistency. Now magics can be called in multiline statements,
874 and python variables can be expanded in magic calls via $var.
878 and python variables can be expanded in magic calls via $var.
875 This makes the magic system behave just like aliases or !system
879 This makes the magic system behave just like aliases or !system
876 calls.
880 calls.
877
881
878 2005-03-28 Fernando Perez <fperez@colorado.edu>
882 2005-03-28 Fernando Perez <fperez@colorado.edu>
879
883
880 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
884 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
881 expensive string additions for building command. Add support for
885 expensive string additions for building command. Add support for
882 trailing ';' when autocall is used.
886 trailing ';' when autocall is used.
883
887
884 2005-03-26 Fernando Perez <fperez@colorado.edu>
888 2005-03-26 Fernando Perez <fperez@colorado.edu>
885
889
886 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
890 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
887 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
891 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
888 ipython.el robust against prompts with any number of spaces
892 ipython.el robust against prompts with any number of spaces
889 (including 0) after the ':' character.
893 (including 0) after the ':' character.
890
894
891 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
895 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
892 continuation prompt, which misled users to think the line was
896 continuation prompt, which misled users to think the line was
893 already indented. Closes debian Bug#300847, reported to me by
897 already indented. Closes debian Bug#300847, reported to me by
894 Norbert Tretkowski <tretkowski-AT-inittab.de>.
898 Norbert Tretkowski <tretkowski-AT-inittab.de>.
895
899
896 2005-03-23 Fernando Perez <fperez@colorado.edu>
900 2005-03-23 Fernando Perez <fperez@colorado.edu>
897
901
898 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
902 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
899 properly aligned if they have embedded newlines.
903 properly aligned if they have embedded newlines.
900
904
901 * IPython/iplib.py (runlines): Add a public method to expose
905 * IPython/iplib.py (runlines): Add a public method to expose
902 IPython's code execution machinery, so that users can run strings
906 IPython's code execution machinery, so that users can run strings
903 as if they had been typed at the prompt interactively.
907 as if they had been typed at the prompt interactively.
904 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
908 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
905 methods which can call the system shell, but with python variable
909 methods which can call the system shell, but with python variable
906 expansion. The three such methods are: __IPYTHON__.system,
910 expansion. The three such methods are: __IPYTHON__.system,
907 .getoutput and .getoutputerror. These need to be documented in a
911 .getoutput and .getoutputerror. These need to be documented in a
908 'public API' section (to be written) of the manual.
912 'public API' section (to be written) of the manual.
909
913
910 2005-03-20 Fernando Perez <fperez@colorado.edu>
914 2005-03-20 Fernando Perez <fperez@colorado.edu>
911
915
912 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
916 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
913 for custom exception handling. This is quite powerful, and it
917 for custom exception handling. This is quite powerful, and it
914 allows for user-installable exception handlers which can trap
918 allows for user-installable exception handlers which can trap
915 custom exceptions at runtime and treat them separately from
919 custom exceptions at runtime and treat them separately from
916 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
920 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
917 Mantegazza <mantegazza-AT-ill.fr>.
921 Mantegazza <mantegazza-AT-ill.fr>.
918 (InteractiveShell.set_custom_completer): public API function to
922 (InteractiveShell.set_custom_completer): public API function to
919 add new completers at runtime.
923 add new completers at runtime.
920
924
921 2005-03-19 Fernando Perez <fperez@colorado.edu>
925 2005-03-19 Fernando Perez <fperez@colorado.edu>
922
926
923 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
927 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
924 allow objects which provide their docstrings via non-standard
928 allow objects which provide their docstrings via non-standard
925 mechanisms (like Pyro proxies) to still be inspected by ipython's
929 mechanisms (like Pyro proxies) to still be inspected by ipython's
926 ? system.
930 ? system.
927
931
928 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
932 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
929 automatic capture system. I tried quite hard to make it work
933 automatic capture system. I tried quite hard to make it work
930 reliably, and simply failed. I tried many combinations with the
934 reliably, and simply failed. I tried many combinations with the
931 subprocess module, but eventually nothing worked in all needed
935 subprocess module, but eventually nothing worked in all needed
932 cases (not blocking stdin for the child, duplicating stdout
936 cases (not blocking stdin for the child, duplicating stdout
933 without blocking, etc). The new %sc/%sx still do capture to these
937 without blocking, etc). The new %sc/%sx still do capture to these
934 magical list/string objects which make shell use much more
938 magical list/string objects which make shell use much more
935 conveninent, so not all is lost.
939 conveninent, so not all is lost.
936
940
937 XXX - FIX MANUAL for the change above!
941 XXX - FIX MANUAL for the change above!
938
942
939 (runsource): I copied code.py's runsource() into ipython to modify
943 (runsource): I copied code.py's runsource() into ipython to modify
940 it a bit. Now the code object and source to be executed are
944 it a bit. Now the code object and source to be executed are
941 stored in ipython. This makes this info accessible to third-party
945 stored in ipython. This makes this info accessible to third-party
942 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
946 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
943 Mantegazza <mantegazza-AT-ill.fr>.
947 Mantegazza <mantegazza-AT-ill.fr>.
944
948
945 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
949 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
946 history-search via readline (like C-p/C-n). I'd wanted this for a
950 history-search via readline (like C-p/C-n). I'd wanted this for a
947 long time, but only recently found out how to do it. For users
951 long time, but only recently found out how to do it. For users
948 who already have their ipythonrc files made and want this, just
952 who already have their ipythonrc files made and want this, just
949 add:
953 add:
950
954
951 readline_parse_and_bind "\e[A": history-search-backward
955 readline_parse_and_bind "\e[A": history-search-backward
952 readline_parse_and_bind "\e[B": history-search-forward
956 readline_parse_and_bind "\e[B": history-search-forward
953
957
954 2005-03-18 Fernando Perez <fperez@colorado.edu>
958 2005-03-18 Fernando Perez <fperez@colorado.edu>
955
959
956 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
960 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
957 LSString and SList classes which allow transparent conversions
961 LSString and SList classes which allow transparent conversions
958 between list mode and whitespace-separated string.
962 between list mode and whitespace-separated string.
959 (magic_r): Fix recursion problem in %r.
963 (magic_r): Fix recursion problem in %r.
960
964
961 * IPython/genutils.py (LSString): New class to be used for
965 * IPython/genutils.py (LSString): New class to be used for
962 automatic storage of the results of all alias/system calls in _o
966 automatic storage of the results of all alias/system calls in _o
963 and _e (stdout/err). These provide a .l/.list attribute which
967 and _e (stdout/err). These provide a .l/.list attribute which
964 does automatic splitting on newlines. This means that for most
968 does automatic splitting on newlines. This means that for most
965 uses, you'll never need to do capturing of output with %sc/%sx
969 uses, you'll never need to do capturing of output with %sc/%sx
966 anymore, since ipython keeps this always done for you. Note that
970 anymore, since ipython keeps this always done for you. Note that
967 only the LAST results are stored, the _o/e variables are
971 only the LAST results are stored, the _o/e variables are
968 overwritten on each call. If you need to save their contents
972 overwritten on each call. If you need to save their contents
969 further, simply bind them to any other name.
973 further, simply bind them to any other name.
970
974
971 2005-03-17 Fernando Perez <fperez@colorado.edu>
975 2005-03-17 Fernando Perez <fperez@colorado.edu>
972
976
973 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
977 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
974 prompt namespace handling.
978 prompt namespace handling.
975
979
976 2005-03-16 Fernando Perez <fperez@colorado.edu>
980 2005-03-16 Fernando Perez <fperez@colorado.edu>
977
981
978 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
982 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
979 classic prompts to be '>>> ' (final space was missing, and it
983 classic prompts to be '>>> ' (final space was missing, and it
980 trips the emacs python mode).
984 trips the emacs python mode).
981 (BasePrompt.__str__): Added safe support for dynamic prompt
985 (BasePrompt.__str__): Added safe support for dynamic prompt
982 strings. Now you can set your prompt string to be '$x', and the
986 strings. Now you can set your prompt string to be '$x', and the
983 value of x will be printed from your interactive namespace. The
987 value of x will be printed from your interactive namespace. The
984 interpolation syntax includes the full Itpl support, so
988 interpolation syntax includes the full Itpl support, so
985 ${foo()+x+bar()} is a valid prompt string now, and the function
989 ${foo()+x+bar()} is a valid prompt string now, and the function
986 calls will be made at runtime.
990 calls will be made at runtime.
987
991
988 2005-03-15 Fernando Perez <fperez@colorado.edu>
992 2005-03-15 Fernando Perez <fperez@colorado.edu>
989
993
990 * IPython/Magic.py (magic_history): renamed %hist to %history, to
994 * IPython/Magic.py (magic_history): renamed %hist to %history, to
991 avoid name clashes in pylab. %hist still works, it just forwards
995 avoid name clashes in pylab. %hist still works, it just forwards
992 the call to %history.
996 the call to %history.
993
997
994 2005-03-02 *** Released version 0.6.12
998 2005-03-02 *** Released version 0.6.12
995
999
996 2005-03-02 Fernando Perez <fperez@colorado.edu>
1000 2005-03-02 Fernando Perez <fperez@colorado.edu>
997
1001
998 * IPython/iplib.py (handle_magic): log magic calls properly as
1002 * IPython/iplib.py (handle_magic): log magic calls properly as
999 ipmagic() function calls.
1003 ipmagic() function calls.
1000
1004
1001 * IPython/Magic.py (magic_time): Improved %time to support
1005 * IPython/Magic.py (magic_time): Improved %time to support
1002 statements and provide wall-clock as well as CPU time.
1006 statements and provide wall-clock as well as CPU time.
1003
1007
1004 2005-02-27 Fernando Perez <fperez@colorado.edu>
1008 2005-02-27 Fernando Perez <fperez@colorado.edu>
1005
1009
1006 * IPython/hooks.py: New hooks module, to expose user-modifiable
1010 * IPython/hooks.py: New hooks module, to expose user-modifiable
1007 IPython functionality in a clean manner. For now only the editor
1011 IPython functionality in a clean manner. For now only the editor
1008 hook is actually written, and other thigns which I intend to turn
1012 hook is actually written, and other thigns which I intend to turn
1009 into proper hooks aren't yet there. The display and prefilter
1013 into proper hooks aren't yet there. The display and prefilter
1010 stuff, for example, should be hooks. But at least now the
1014 stuff, for example, should be hooks. But at least now the
1011 framework is in place, and the rest can be moved here with more
1015 framework is in place, and the rest can be moved here with more
1012 time later. IPython had had a .hooks variable for a long time for
1016 time later. IPython had had a .hooks variable for a long time for
1013 this purpose, but I'd never actually used it for anything.
1017 this purpose, but I'd never actually used it for anything.
1014
1018
1015 2005-02-26 Fernando Perez <fperez@colorado.edu>
1019 2005-02-26 Fernando Perez <fperez@colorado.edu>
1016
1020
1017 * IPython/ipmaker.py (make_IPython): make the default ipython
1021 * IPython/ipmaker.py (make_IPython): make the default ipython
1018 directory be called _ipython under win32, to follow more the
1022 directory be called _ipython under win32, to follow more the
1019 naming peculiarities of that platform (where buggy software like
1023 naming peculiarities of that platform (where buggy software like
1020 Visual Sourcesafe breaks with .named directories). Reported by
1024 Visual Sourcesafe breaks with .named directories). Reported by
1021 Ville Vainio.
1025 Ville Vainio.
1022
1026
1023 2005-02-23 Fernando Perez <fperez@colorado.edu>
1027 2005-02-23 Fernando Perez <fperez@colorado.edu>
1024
1028
1025 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1029 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1026 auto_aliases for win32 which were causing problems. Users can
1030 auto_aliases for win32 which were causing problems. Users can
1027 define the ones they personally like.
1031 define the ones they personally like.
1028
1032
1029 2005-02-21 Fernando Perez <fperez@colorado.edu>
1033 2005-02-21 Fernando Perez <fperez@colorado.edu>
1030
1034
1031 * IPython/Magic.py (magic_time): new magic to time execution of
1035 * IPython/Magic.py (magic_time): new magic to time execution of
1032 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1036 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1033
1037
1034 2005-02-19 Fernando Perez <fperez@colorado.edu>
1038 2005-02-19 Fernando Perez <fperez@colorado.edu>
1035
1039
1036 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1040 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1037 into keys (for prompts, for example).
1041 into keys (for prompts, for example).
1038
1042
1039 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1043 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1040 prompts in case users want them. This introduces a small behavior
1044 prompts in case users want them. This introduces a small behavior
1041 change: ipython does not automatically add a space to all prompts
1045 change: ipython does not automatically add a space to all prompts
1042 anymore. To get the old prompts with a space, users should add it
1046 anymore. To get the old prompts with a space, users should add it
1043 manually to their ipythonrc file, so for example prompt_in1 should
1047 manually to their ipythonrc file, so for example prompt_in1 should
1044 now read 'In [\#]: ' instead of 'In [\#]:'.
1048 now read 'In [\#]: ' instead of 'In [\#]:'.
1045 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1049 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1046 file) to control left-padding of secondary prompts.
1050 file) to control left-padding of secondary prompts.
1047
1051
1048 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1052 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1049 the profiler can't be imported. Fix for Debian, which removed
1053 the profiler can't be imported. Fix for Debian, which removed
1050 profile.py because of License issues. I applied a slightly
1054 profile.py because of License issues. I applied a slightly
1051 modified version of the original Debian patch at
1055 modified version of the original Debian patch at
1052 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1056 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1053
1057
1054 2005-02-17 Fernando Perez <fperez@colorado.edu>
1058 2005-02-17 Fernando Perez <fperez@colorado.edu>
1055
1059
1056 * IPython/genutils.py (native_line_ends): Fix bug which would
1060 * IPython/genutils.py (native_line_ends): Fix bug which would
1057 cause improper line-ends under win32 b/c I was not opening files
1061 cause improper line-ends under win32 b/c I was not opening files
1058 in binary mode. Bug report and fix thanks to Ville.
1062 in binary mode. Bug report and fix thanks to Ville.
1059
1063
1060 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1064 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1061 trying to catch spurious foo[1] autocalls. My fix actually broke
1065 trying to catch spurious foo[1] autocalls. My fix actually broke
1062 ',/' autoquote/call with explicit escape (bad regexp).
1066 ',/' autoquote/call with explicit escape (bad regexp).
1063
1067
1064 2005-02-15 *** Released version 0.6.11
1068 2005-02-15 *** Released version 0.6.11
1065
1069
1066 2005-02-14 Fernando Perez <fperez@colorado.edu>
1070 2005-02-14 Fernando Perez <fperez@colorado.edu>
1067
1071
1068 * IPython/background_jobs.py: New background job management
1072 * IPython/background_jobs.py: New background job management
1069 subsystem. This is implemented via a new set of classes, and
1073 subsystem. This is implemented via a new set of classes, and
1070 IPython now provides a builtin 'jobs' object for background job
1074 IPython now provides a builtin 'jobs' object for background job
1071 execution. A convenience %bg magic serves as a lightweight
1075 execution. A convenience %bg magic serves as a lightweight
1072 frontend for starting the more common type of calls. This was
1076 frontend for starting the more common type of calls. This was
1073 inspired by discussions with B. Granger and the BackgroundCommand
1077 inspired by discussions with B. Granger and the BackgroundCommand
1074 class described in the book Python Scripting for Computational
1078 class described in the book Python Scripting for Computational
1075 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1079 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1076 (although ultimately no code from this text was used, as IPython's
1080 (although ultimately no code from this text was used, as IPython's
1077 system is a separate implementation).
1081 system is a separate implementation).
1078
1082
1079 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1083 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1080 to control the completion of single/double underscore names
1084 to control the completion of single/double underscore names
1081 separately. As documented in the example ipytonrc file, the
1085 separately. As documented in the example ipytonrc file, the
1082 readline_omit__names variable can now be set to 2, to omit even
1086 readline_omit__names variable can now be set to 2, to omit even
1083 single underscore names. Thanks to a patch by Brian Wong
1087 single underscore names. Thanks to a patch by Brian Wong
1084 <BrianWong-AT-AirgoNetworks.Com>.
1088 <BrianWong-AT-AirgoNetworks.Com>.
1085 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1089 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1086 be autocalled as foo([1]) if foo were callable. A problem for
1090 be autocalled as foo([1]) if foo were callable. A problem for
1087 things which are both callable and implement __getitem__.
1091 things which are both callable and implement __getitem__.
1088 (init_readline): Fix autoindentation for win32. Thanks to a patch
1092 (init_readline): Fix autoindentation for win32. Thanks to a patch
1089 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1093 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1090
1094
1091 2005-02-12 Fernando Perez <fperez@colorado.edu>
1095 2005-02-12 Fernando Perez <fperez@colorado.edu>
1092
1096
1093 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1097 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1094 which I had written long ago to sort out user error messages which
1098 which I had written long ago to sort out user error messages which
1095 may occur during startup. This seemed like a good idea initially,
1099 may occur during startup. This seemed like a good idea initially,
1096 but it has proven a disaster in retrospect. I don't want to
1100 but it has proven a disaster in retrospect. I don't want to
1097 change much code for now, so my fix is to set the internal 'debug'
1101 change much code for now, so my fix is to set the internal 'debug'
1098 flag to true everywhere, whose only job was precisely to control
1102 flag to true everywhere, whose only job was precisely to control
1099 this subsystem. This closes issue 28 (as well as avoiding all
1103 this subsystem. This closes issue 28 (as well as avoiding all
1100 sorts of strange hangups which occur from time to time).
1104 sorts of strange hangups which occur from time to time).
1101
1105
1102 2005-02-07 Fernando Perez <fperez@colorado.edu>
1106 2005-02-07 Fernando Perez <fperez@colorado.edu>
1103
1107
1104 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1108 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1105 previous call produced a syntax error.
1109 previous call produced a syntax error.
1106
1110
1107 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1111 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1108 classes without constructor.
1112 classes without constructor.
1109
1113
1110 2005-02-06 Fernando Perez <fperez@colorado.edu>
1114 2005-02-06 Fernando Perez <fperez@colorado.edu>
1111
1115
1112 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1116 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1113 completions with the results of each matcher, so we return results
1117 completions with the results of each matcher, so we return results
1114 to the user from all namespaces. This breaks with ipython
1118 to the user from all namespaces. This breaks with ipython
1115 tradition, but I think it's a nicer behavior. Now you get all
1119 tradition, but I think it's a nicer behavior. Now you get all
1116 possible completions listed, from all possible namespaces (python,
1120 possible completions listed, from all possible namespaces (python,
1117 filesystem, magics...) After a request by John Hunter
1121 filesystem, magics...) After a request by John Hunter
1118 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1122 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1119
1123
1120 2005-02-05 Fernando Perez <fperez@colorado.edu>
1124 2005-02-05 Fernando Perez <fperez@colorado.edu>
1121
1125
1122 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1126 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1123 the call had quote characters in it (the quotes were stripped).
1127 the call had quote characters in it (the quotes were stripped).
1124
1128
1125 2005-01-31 Fernando Perez <fperez@colorado.edu>
1129 2005-01-31 Fernando Perez <fperez@colorado.edu>
1126
1130
1127 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1131 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1128 Itpl.itpl() to make the code more robust against psyco
1132 Itpl.itpl() to make the code more robust against psyco
1129 optimizations.
1133 optimizations.
1130
1134
1131 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1135 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1132 of causing an exception. Quicker, cleaner.
1136 of causing an exception. Quicker, cleaner.
1133
1137
1134 2005-01-28 Fernando Perez <fperez@colorado.edu>
1138 2005-01-28 Fernando Perez <fperez@colorado.edu>
1135
1139
1136 * scripts/ipython_win_post_install.py (install): hardcode
1140 * scripts/ipython_win_post_install.py (install): hardcode
1137 sys.prefix+'python.exe' as the executable path. It turns out that
1141 sys.prefix+'python.exe' as the executable path. It turns out that
1138 during the post-installation run, sys.executable resolves to the
1142 during the post-installation run, sys.executable resolves to the
1139 name of the binary installer! I should report this as a distutils
1143 name of the binary installer! I should report this as a distutils
1140 bug, I think. I updated the .10 release with this tiny fix, to
1144 bug, I think. I updated the .10 release with this tiny fix, to
1141 avoid annoying the lists further.
1145 avoid annoying the lists further.
1142
1146
1143 2005-01-27 *** Released version 0.6.10
1147 2005-01-27 *** Released version 0.6.10
1144
1148
1145 2005-01-27 Fernando Perez <fperez@colorado.edu>
1149 2005-01-27 Fernando Perez <fperez@colorado.edu>
1146
1150
1147 * IPython/numutils.py (norm): Added 'inf' as optional name for
1151 * IPython/numutils.py (norm): Added 'inf' as optional name for
1148 L-infinity norm, included references to mathworld.com for vector
1152 L-infinity norm, included references to mathworld.com for vector
1149 norm definitions.
1153 norm definitions.
1150 (amin/amax): added amin/amax for array min/max. Similar to what
1154 (amin/amax): added amin/amax for array min/max. Similar to what
1151 pylab ships with after the recent reorganization of names.
1155 pylab ships with after the recent reorganization of names.
1152 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1156 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1153
1157
1154 * ipython.el: committed Alex's recent fixes and improvements.
1158 * ipython.el: committed Alex's recent fixes and improvements.
1155 Tested with python-mode from CVS, and it looks excellent. Since
1159 Tested with python-mode from CVS, and it looks excellent. Since
1156 python-mode hasn't released anything in a while, I'm temporarily
1160 python-mode hasn't released anything in a while, I'm temporarily
1157 putting a copy of today's CVS (v 4.70) of python-mode in:
1161 putting a copy of today's CVS (v 4.70) of python-mode in:
1158 http://ipython.scipy.org/tmp/python-mode.el
1162 http://ipython.scipy.org/tmp/python-mode.el
1159
1163
1160 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1164 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1161 sys.executable for the executable name, instead of assuming it's
1165 sys.executable for the executable name, instead of assuming it's
1162 called 'python.exe' (the post-installer would have produced broken
1166 called 'python.exe' (the post-installer would have produced broken
1163 setups on systems with a differently named python binary).
1167 setups on systems with a differently named python binary).
1164
1168
1165 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1169 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1166 references to os.linesep, to make the code more
1170 references to os.linesep, to make the code more
1167 platform-independent. This is also part of the win32 coloring
1171 platform-independent. This is also part of the win32 coloring
1168 fixes.
1172 fixes.
1169
1173
1170 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1174 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1171 lines, which actually cause coloring bugs because the length of
1175 lines, which actually cause coloring bugs because the length of
1172 the line is very difficult to correctly compute with embedded
1176 the line is very difficult to correctly compute with embedded
1173 escapes. This was the source of all the coloring problems under
1177 escapes. This was the source of all the coloring problems under
1174 Win32. I think that _finally_, Win32 users have a properly
1178 Win32. I think that _finally_, Win32 users have a properly
1175 working ipython in all respects. This would never have happened
1179 working ipython in all respects. This would never have happened
1176 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1180 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1177
1181
1178 2005-01-26 *** Released version 0.6.9
1182 2005-01-26 *** Released version 0.6.9
1179
1183
1180 2005-01-25 Fernando Perez <fperez@colorado.edu>
1184 2005-01-25 Fernando Perez <fperez@colorado.edu>
1181
1185
1182 * setup.py: finally, we have a true Windows installer, thanks to
1186 * setup.py: finally, we have a true Windows installer, thanks to
1183 the excellent work of Viktor Ransmayr
1187 the excellent work of Viktor Ransmayr
1184 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1188 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1185 Windows users. The setup routine is quite a bit cleaner thanks to
1189 Windows users. The setup routine is quite a bit cleaner thanks to
1186 this, and the post-install script uses the proper functions to
1190 this, and the post-install script uses the proper functions to
1187 allow a clean de-installation using the standard Windows Control
1191 allow a clean de-installation using the standard Windows Control
1188 Panel.
1192 Panel.
1189
1193
1190 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1194 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1191 environment variable under all OSes (including win32) if
1195 environment variable under all OSes (including win32) if
1192 available. This will give consistency to win32 users who have set
1196 available. This will give consistency to win32 users who have set
1193 this variable for any reason. If os.environ['HOME'] fails, the
1197 this variable for any reason. If os.environ['HOME'] fails, the
1194 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1198 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1195
1199
1196 2005-01-24 Fernando Perez <fperez@colorado.edu>
1200 2005-01-24 Fernando Perez <fperez@colorado.edu>
1197
1201
1198 * IPython/numutils.py (empty_like): add empty_like(), similar to
1202 * IPython/numutils.py (empty_like): add empty_like(), similar to
1199 zeros_like() but taking advantage of the new empty() Numeric routine.
1203 zeros_like() but taking advantage of the new empty() Numeric routine.
1200
1204
1201 2005-01-23 *** Released version 0.6.8
1205 2005-01-23 *** Released version 0.6.8
1202
1206
1203 2005-01-22 Fernando Perez <fperez@colorado.edu>
1207 2005-01-22 Fernando Perez <fperez@colorado.edu>
1204
1208
1205 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1209 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1206 automatic show() calls. After discussing things with JDH, it
1210 automatic show() calls. After discussing things with JDH, it
1207 turns out there are too many corner cases where this can go wrong.
1211 turns out there are too many corner cases where this can go wrong.
1208 It's best not to try to be 'too smart', and simply have ipython
1212 It's best not to try to be 'too smart', and simply have ipython
1209 reproduce as much as possible the default behavior of a normal
1213 reproduce as much as possible the default behavior of a normal
1210 python shell.
1214 python shell.
1211
1215
1212 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1216 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1213 line-splitting regexp and _prefilter() to avoid calling getattr()
1217 line-splitting regexp and _prefilter() to avoid calling getattr()
1214 on assignments. This closes
1218 on assignments. This closes
1215 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1219 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1216 readline uses getattr(), so a simple <TAB> keypress is still
1220 readline uses getattr(), so a simple <TAB> keypress is still
1217 enough to trigger getattr() calls on an object.
1221 enough to trigger getattr() calls on an object.
1218
1222
1219 2005-01-21 Fernando Perez <fperez@colorado.edu>
1223 2005-01-21 Fernando Perez <fperez@colorado.edu>
1220
1224
1221 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1225 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1222 docstring under pylab so it doesn't mask the original.
1226 docstring under pylab so it doesn't mask the original.
1223
1227
1224 2005-01-21 *** Released version 0.6.7
1228 2005-01-21 *** Released version 0.6.7
1225
1229
1226 2005-01-21 Fernando Perez <fperez@colorado.edu>
1230 2005-01-21 Fernando Perez <fperez@colorado.edu>
1227
1231
1228 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1232 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1229 signal handling for win32 users in multithreaded mode.
1233 signal handling for win32 users in multithreaded mode.
1230
1234
1231 2005-01-17 Fernando Perez <fperez@colorado.edu>
1235 2005-01-17 Fernando Perez <fperez@colorado.edu>
1232
1236
1233 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1237 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1234 instances with no __init__. After a crash report by Norbert Nemec
1238 instances with no __init__. After a crash report by Norbert Nemec
1235 <Norbert-AT-nemec-online.de>.
1239 <Norbert-AT-nemec-online.de>.
1236
1240
1237 2005-01-14 Fernando Perez <fperez@colorado.edu>
1241 2005-01-14 Fernando Perez <fperez@colorado.edu>
1238
1242
1239 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1243 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1240 names for verbose exceptions, when multiple dotted names and the
1244 names for verbose exceptions, when multiple dotted names and the
1241 'parent' object were present on the same line.
1245 'parent' object were present on the same line.
1242
1246
1243 2005-01-11 Fernando Perez <fperez@colorado.edu>
1247 2005-01-11 Fernando Perez <fperez@colorado.edu>
1244
1248
1245 * IPython/genutils.py (flag_calls): new utility to trap and flag
1249 * IPython/genutils.py (flag_calls): new utility to trap and flag
1246 calls in functions. I need it to clean up matplotlib support.
1250 calls in functions. I need it to clean up matplotlib support.
1247 Also removed some deprecated code in genutils.
1251 Also removed some deprecated code in genutils.
1248
1252
1249 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1253 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1250 that matplotlib scripts called with %run, which don't call show()
1254 that matplotlib scripts called with %run, which don't call show()
1251 themselves, still have their plotting windows open.
1255 themselves, still have their plotting windows open.
1252
1256
1253 2005-01-05 Fernando Perez <fperez@colorado.edu>
1257 2005-01-05 Fernando Perez <fperez@colorado.edu>
1254
1258
1255 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1259 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1256 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1260 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1257
1261
1258 2004-12-19 Fernando Perez <fperez@colorado.edu>
1262 2004-12-19 Fernando Perez <fperez@colorado.edu>
1259
1263
1260 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1264 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1261 parent_runcode, which was an eyesore. The same result can be
1265 parent_runcode, which was an eyesore. The same result can be
1262 obtained with Python's regular superclass mechanisms.
1266 obtained with Python's regular superclass mechanisms.
1263
1267
1264 2004-12-17 Fernando Perez <fperez@colorado.edu>
1268 2004-12-17 Fernando Perez <fperez@colorado.edu>
1265
1269
1266 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1270 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1267 reported by Prabhu.
1271 reported by Prabhu.
1268 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1272 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1269 sys.stderr) instead of explicitly calling sys.stderr. This helps
1273 sys.stderr) instead of explicitly calling sys.stderr. This helps
1270 maintain our I/O abstractions clean, for future GUI embeddings.
1274 maintain our I/O abstractions clean, for future GUI embeddings.
1271
1275
1272 * IPython/genutils.py (info): added new utility for sys.stderr
1276 * IPython/genutils.py (info): added new utility for sys.stderr
1273 unified info message handling (thin wrapper around warn()).
1277 unified info message handling (thin wrapper around warn()).
1274
1278
1275 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1279 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1276 composite (dotted) names on verbose exceptions.
1280 composite (dotted) names on verbose exceptions.
1277 (VerboseTB.nullrepr): harden against another kind of errors which
1281 (VerboseTB.nullrepr): harden against another kind of errors which
1278 Python's inspect module can trigger, and which were crashing
1282 Python's inspect module can trigger, and which were crashing
1279 IPython. Thanks to a report by Marco Lombardi
1283 IPython. Thanks to a report by Marco Lombardi
1280 <mlombard-AT-ma010192.hq.eso.org>.
1284 <mlombard-AT-ma010192.hq.eso.org>.
1281
1285
1282 2004-12-13 *** Released version 0.6.6
1286 2004-12-13 *** Released version 0.6.6
1283
1287
1284 2004-12-12 Fernando Perez <fperez@colorado.edu>
1288 2004-12-12 Fernando Perez <fperez@colorado.edu>
1285
1289
1286 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1290 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1287 generated by pygtk upon initialization if it was built without
1291 generated by pygtk upon initialization if it was built without
1288 threads (for matplotlib users). After a crash reported by
1292 threads (for matplotlib users). After a crash reported by
1289 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1293 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1290
1294
1291 * IPython/ipmaker.py (make_IPython): fix small bug in the
1295 * IPython/ipmaker.py (make_IPython): fix small bug in the
1292 import_some parameter for multiple imports.
1296 import_some parameter for multiple imports.
1293
1297
1294 * IPython/iplib.py (ipmagic): simplified the interface of
1298 * IPython/iplib.py (ipmagic): simplified the interface of
1295 ipmagic() to take a single string argument, just as it would be
1299 ipmagic() to take a single string argument, just as it would be
1296 typed at the IPython cmd line.
1300 typed at the IPython cmd line.
1297 (ipalias): Added new ipalias() with an interface identical to
1301 (ipalias): Added new ipalias() with an interface identical to
1298 ipmagic(). This completes exposing a pure python interface to the
1302 ipmagic(). This completes exposing a pure python interface to the
1299 alias and magic system, which can be used in loops or more complex
1303 alias and magic system, which can be used in loops or more complex
1300 code where IPython's automatic line mangling is not active.
1304 code where IPython's automatic line mangling is not active.
1301
1305
1302 * IPython/genutils.py (timing): changed interface of timing to
1306 * IPython/genutils.py (timing): changed interface of timing to
1303 simply run code once, which is the most common case. timings()
1307 simply run code once, which is the most common case. timings()
1304 remains unchanged, for the cases where you want multiple runs.
1308 remains unchanged, for the cases where you want multiple runs.
1305
1309
1306 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1310 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1307 bug where Python2.2 crashes with exec'ing code which does not end
1311 bug where Python2.2 crashes with exec'ing code which does not end
1308 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1312 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1309 before.
1313 before.
1310
1314
1311 2004-12-10 Fernando Perez <fperez@colorado.edu>
1315 2004-12-10 Fernando Perez <fperez@colorado.edu>
1312
1316
1313 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1317 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1314 -t to -T, to accomodate the new -t flag in %run (the %run and
1318 -t to -T, to accomodate the new -t flag in %run (the %run and
1315 %prun options are kind of intermixed, and it's not easy to change
1319 %prun options are kind of intermixed, and it's not easy to change
1316 this with the limitations of python's getopt).
1320 this with the limitations of python's getopt).
1317
1321
1318 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1322 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1319 the execution of scripts. It's not as fine-tuned as timeit.py,
1323 the execution of scripts. It's not as fine-tuned as timeit.py,
1320 but it works from inside ipython (and under 2.2, which lacks
1324 but it works from inside ipython (and under 2.2, which lacks
1321 timeit.py). Optionally a number of runs > 1 can be given for
1325 timeit.py). Optionally a number of runs > 1 can be given for
1322 timing very short-running code.
1326 timing very short-running code.
1323
1327
1324 * IPython/genutils.py (uniq_stable): new routine which returns a
1328 * IPython/genutils.py (uniq_stable): new routine which returns a
1325 list of unique elements in any iterable, but in stable order of
1329 list of unique elements in any iterable, but in stable order of
1326 appearance. I needed this for the ultraTB fixes, and it's a handy
1330 appearance. I needed this for the ultraTB fixes, and it's a handy
1327 utility.
1331 utility.
1328
1332
1329 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1333 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1330 dotted names in Verbose exceptions. This had been broken since
1334 dotted names in Verbose exceptions. This had been broken since
1331 the very start, now x.y will properly be printed in a Verbose
1335 the very start, now x.y will properly be printed in a Verbose
1332 traceback, instead of x being shown and y appearing always as an
1336 traceback, instead of x being shown and y appearing always as an
1333 'undefined global'. Getting this to work was a bit tricky,
1337 'undefined global'. Getting this to work was a bit tricky,
1334 because by default python tokenizers are stateless. Saved by
1338 because by default python tokenizers are stateless. Saved by
1335 python's ability to easily add a bit of state to an arbitrary
1339 python's ability to easily add a bit of state to an arbitrary
1336 function (without needing to build a full-blown callable object).
1340 function (without needing to build a full-blown callable object).
1337
1341
1338 Also big cleanup of this code, which had horrendous runtime
1342 Also big cleanup of this code, which had horrendous runtime
1339 lookups of zillions of attributes for colorization. Moved all
1343 lookups of zillions of attributes for colorization. Moved all
1340 this code into a few templates, which make it cleaner and quicker.
1344 this code into a few templates, which make it cleaner and quicker.
1341
1345
1342 Printout quality was also improved for Verbose exceptions: one
1346 Printout quality was also improved for Verbose exceptions: one
1343 variable per line, and memory addresses are printed (this can be
1347 variable per line, and memory addresses are printed (this can be
1344 quite handy in nasty debugging situations, which is what Verbose
1348 quite handy in nasty debugging situations, which is what Verbose
1345 is for).
1349 is for).
1346
1350
1347 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1351 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1348 the command line as scripts to be loaded by embedded instances.
1352 the command line as scripts to be loaded by embedded instances.
1349 Doing so has the potential for an infinite recursion if there are
1353 Doing so has the potential for an infinite recursion if there are
1350 exceptions thrown in the process. This fixes a strange crash
1354 exceptions thrown in the process. This fixes a strange crash
1351 reported by Philippe MULLER <muller-AT-irit.fr>.
1355 reported by Philippe MULLER <muller-AT-irit.fr>.
1352
1356
1353 2004-12-09 Fernando Perez <fperez@colorado.edu>
1357 2004-12-09 Fernando Perez <fperez@colorado.edu>
1354
1358
1355 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1359 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1356 to reflect new names in matplotlib, which now expose the
1360 to reflect new names in matplotlib, which now expose the
1357 matlab-compatible interface via a pylab module instead of the
1361 matlab-compatible interface via a pylab module instead of the
1358 'matlab' name. The new code is backwards compatible, so users of
1362 'matlab' name. The new code is backwards compatible, so users of
1359 all matplotlib versions are OK. Patch by J. Hunter.
1363 all matplotlib versions are OK. Patch by J. Hunter.
1360
1364
1361 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1365 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1362 of __init__ docstrings for instances (class docstrings are already
1366 of __init__ docstrings for instances (class docstrings are already
1363 automatically printed). Instances with customized docstrings
1367 automatically printed). Instances with customized docstrings
1364 (indep. of the class) are also recognized and all 3 separate
1368 (indep. of the class) are also recognized and all 3 separate
1365 docstrings are printed (instance, class, constructor). After some
1369 docstrings are printed (instance, class, constructor). After some
1366 comments/suggestions by J. Hunter.
1370 comments/suggestions by J. Hunter.
1367
1371
1368 2004-12-05 Fernando Perez <fperez@colorado.edu>
1372 2004-12-05 Fernando Perez <fperez@colorado.edu>
1369
1373
1370 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1374 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1371 warnings when tab-completion fails and triggers an exception.
1375 warnings when tab-completion fails and triggers an exception.
1372
1376
1373 2004-12-03 Fernando Perez <fperez@colorado.edu>
1377 2004-12-03 Fernando Perez <fperez@colorado.edu>
1374
1378
1375 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1379 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1376 be triggered when using 'run -p'. An incorrect option flag was
1380 be triggered when using 'run -p'. An incorrect option flag was
1377 being set ('d' instead of 'D').
1381 being set ('d' instead of 'D').
1378 (manpage): fix missing escaped \- sign.
1382 (manpage): fix missing escaped \- sign.
1379
1383
1380 2004-11-30 *** Released version 0.6.5
1384 2004-11-30 *** Released version 0.6.5
1381
1385
1382 2004-11-30 Fernando Perez <fperez@colorado.edu>
1386 2004-11-30 Fernando Perez <fperez@colorado.edu>
1383
1387
1384 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1388 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1385 setting with -d option.
1389 setting with -d option.
1386
1390
1387 * setup.py (docfiles): Fix problem where the doc glob I was using
1391 * setup.py (docfiles): Fix problem where the doc glob I was using
1388 was COMPLETELY BROKEN. It was giving the right files by pure
1392 was COMPLETELY BROKEN. It was giving the right files by pure
1389 accident, but failed once I tried to include ipython.el. Note:
1393 accident, but failed once I tried to include ipython.el. Note:
1390 glob() does NOT allow you to do exclusion on multiple endings!
1394 glob() does NOT allow you to do exclusion on multiple endings!
1391
1395
1392 2004-11-29 Fernando Perez <fperez@colorado.edu>
1396 2004-11-29 Fernando Perez <fperez@colorado.edu>
1393
1397
1394 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1398 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1395 the manpage as the source. Better formatting & consistency.
1399 the manpage as the source. Better formatting & consistency.
1396
1400
1397 * IPython/Magic.py (magic_run): Added new -d option, to run
1401 * IPython/Magic.py (magic_run): Added new -d option, to run
1398 scripts under the control of the python pdb debugger. Note that
1402 scripts under the control of the python pdb debugger. Note that
1399 this required changing the %prun option -d to -D, to avoid a clash
1403 this required changing the %prun option -d to -D, to avoid a clash
1400 (since %run must pass options to %prun, and getopt is too dumb to
1404 (since %run must pass options to %prun, and getopt is too dumb to
1401 handle options with string values with embedded spaces). Thanks
1405 handle options with string values with embedded spaces). Thanks
1402 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1406 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1403 (magic_who_ls): added type matching to %who and %whos, so that one
1407 (magic_who_ls): added type matching to %who and %whos, so that one
1404 can filter their output to only include variables of certain
1408 can filter their output to only include variables of certain
1405 types. Another suggestion by Matthew.
1409 types. Another suggestion by Matthew.
1406 (magic_whos): Added memory summaries in kb and Mb for arrays.
1410 (magic_whos): Added memory summaries in kb and Mb for arrays.
1407 (magic_who): Improve formatting (break lines every 9 vars).
1411 (magic_who): Improve formatting (break lines every 9 vars).
1408
1412
1409 2004-11-28 Fernando Perez <fperez@colorado.edu>
1413 2004-11-28 Fernando Perez <fperez@colorado.edu>
1410
1414
1411 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1415 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1412 cache when empty lines were present.
1416 cache when empty lines were present.
1413
1417
1414 2004-11-24 Fernando Perez <fperez@colorado.edu>
1418 2004-11-24 Fernando Perez <fperez@colorado.edu>
1415
1419
1416 * IPython/usage.py (__doc__): document the re-activated threading
1420 * IPython/usage.py (__doc__): document the re-activated threading
1417 options for WX and GTK.
1421 options for WX and GTK.
1418
1422
1419 2004-11-23 Fernando Perez <fperez@colorado.edu>
1423 2004-11-23 Fernando Perez <fperez@colorado.edu>
1420
1424
1421 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1425 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1422 the -wthread and -gthread options, along with a new -tk one to try
1426 the -wthread and -gthread options, along with a new -tk one to try
1423 and coordinate Tk threading with wx/gtk. The tk support is very
1427 and coordinate Tk threading with wx/gtk. The tk support is very
1424 platform dependent, since it seems to require Tcl and Tk to be
1428 platform dependent, since it seems to require Tcl and Tk to be
1425 built with threads (Fedora1/2 appears NOT to have it, but in
1429 built with threads (Fedora1/2 appears NOT to have it, but in
1426 Prabhu's Debian boxes it works OK). But even with some Tk
1430 Prabhu's Debian boxes it works OK). But even with some Tk
1427 limitations, this is a great improvement.
1431 limitations, this is a great improvement.
1428
1432
1429 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1433 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1430 info in user prompts. Patch by Prabhu.
1434 info in user prompts. Patch by Prabhu.
1431
1435
1432 2004-11-18 Fernando Perez <fperez@colorado.edu>
1436 2004-11-18 Fernando Perez <fperez@colorado.edu>
1433
1437
1434 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1438 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1435 EOFErrors and bail, to avoid infinite loops if a non-terminating
1439 EOFErrors and bail, to avoid infinite loops if a non-terminating
1436 file is fed into ipython. Patch submitted in issue 19 by user,
1440 file is fed into ipython. Patch submitted in issue 19 by user,
1437 many thanks.
1441 many thanks.
1438
1442
1439 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1443 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1440 autoquote/parens in continuation prompts, which can cause lots of
1444 autoquote/parens in continuation prompts, which can cause lots of
1441 problems. Closes roundup issue 20.
1445 problems. Closes roundup issue 20.
1442
1446
1443 2004-11-17 Fernando Perez <fperez@colorado.edu>
1447 2004-11-17 Fernando Perez <fperez@colorado.edu>
1444
1448
1445 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1449 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1446 reported as debian bug #280505. I'm not sure my local changelog
1450 reported as debian bug #280505. I'm not sure my local changelog
1447 entry has the proper debian format (Jack?).
1451 entry has the proper debian format (Jack?).
1448
1452
1449 2004-11-08 *** Released version 0.6.4
1453 2004-11-08 *** Released version 0.6.4
1450
1454
1451 2004-11-08 Fernando Perez <fperez@colorado.edu>
1455 2004-11-08 Fernando Perez <fperez@colorado.edu>
1452
1456
1453 * IPython/iplib.py (init_readline): Fix exit message for Windows
1457 * IPython/iplib.py (init_readline): Fix exit message for Windows
1454 when readline is active. Thanks to a report by Eric Jones
1458 when readline is active. Thanks to a report by Eric Jones
1455 <eric-AT-enthought.com>.
1459 <eric-AT-enthought.com>.
1456
1460
1457 2004-11-07 Fernando Perez <fperez@colorado.edu>
1461 2004-11-07 Fernando Perez <fperez@colorado.edu>
1458
1462
1459 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1463 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1460 sometimes seen by win2k/cygwin users.
1464 sometimes seen by win2k/cygwin users.
1461
1465
1462 2004-11-06 Fernando Perez <fperez@colorado.edu>
1466 2004-11-06 Fernando Perez <fperez@colorado.edu>
1463
1467
1464 * IPython/iplib.py (interact): Change the handling of %Exit from
1468 * IPython/iplib.py (interact): Change the handling of %Exit from
1465 trying to propagate a SystemExit to an internal ipython flag.
1469 trying to propagate a SystemExit to an internal ipython flag.
1466 This is less elegant than using Python's exception mechanism, but
1470 This is less elegant than using Python's exception mechanism, but
1467 I can't get that to work reliably with threads, so under -pylab
1471 I can't get that to work reliably with threads, so under -pylab
1468 %Exit was hanging IPython. Cross-thread exception handling is
1472 %Exit was hanging IPython. Cross-thread exception handling is
1469 really a bitch. Thaks to a bug report by Stephen Walton
1473 really a bitch. Thaks to a bug report by Stephen Walton
1470 <stephen.walton-AT-csun.edu>.
1474 <stephen.walton-AT-csun.edu>.
1471
1475
1472 2004-11-04 Fernando Perez <fperez@colorado.edu>
1476 2004-11-04 Fernando Perez <fperez@colorado.edu>
1473
1477
1474 * IPython/iplib.py (raw_input_original): store a pointer to the
1478 * IPython/iplib.py (raw_input_original): store a pointer to the
1475 true raw_input to harden against code which can modify it
1479 true raw_input to harden against code which can modify it
1476 (wx.py.PyShell does this and would otherwise crash ipython).
1480 (wx.py.PyShell does this and would otherwise crash ipython).
1477 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1481 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1478
1482
1479 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1483 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1480 Ctrl-C problem, which does not mess up the input line.
1484 Ctrl-C problem, which does not mess up the input line.
1481
1485
1482 2004-11-03 Fernando Perez <fperez@colorado.edu>
1486 2004-11-03 Fernando Perez <fperez@colorado.edu>
1483
1487
1484 * IPython/Release.py: Changed licensing to BSD, in all files.
1488 * IPython/Release.py: Changed licensing to BSD, in all files.
1485 (name): lowercase name for tarball/RPM release.
1489 (name): lowercase name for tarball/RPM release.
1486
1490
1487 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1491 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1488 use throughout ipython.
1492 use throughout ipython.
1489
1493
1490 * IPython/Magic.py (Magic._ofind): Switch to using the new
1494 * IPython/Magic.py (Magic._ofind): Switch to using the new
1491 OInspect.getdoc() function.
1495 OInspect.getdoc() function.
1492
1496
1493 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1497 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1494 of the line currently being canceled via Ctrl-C. It's extremely
1498 of the line currently being canceled via Ctrl-C. It's extremely
1495 ugly, but I don't know how to do it better (the problem is one of
1499 ugly, but I don't know how to do it better (the problem is one of
1496 handling cross-thread exceptions).
1500 handling cross-thread exceptions).
1497
1501
1498 2004-10-28 Fernando Perez <fperez@colorado.edu>
1502 2004-10-28 Fernando Perez <fperez@colorado.edu>
1499
1503
1500 * IPython/Shell.py (signal_handler): add signal handlers to trap
1504 * IPython/Shell.py (signal_handler): add signal handlers to trap
1501 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1505 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1502 report by Francesc Alted.
1506 report by Francesc Alted.
1503
1507
1504 2004-10-21 Fernando Perez <fperez@colorado.edu>
1508 2004-10-21 Fernando Perez <fperez@colorado.edu>
1505
1509
1506 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1510 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1507 to % for pysh syntax extensions.
1511 to % for pysh syntax extensions.
1508
1512
1509 2004-10-09 Fernando Perez <fperez@colorado.edu>
1513 2004-10-09 Fernando Perez <fperez@colorado.edu>
1510
1514
1511 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1515 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1512 arrays to print a more useful summary, without calling str(arr).
1516 arrays to print a more useful summary, without calling str(arr).
1513 This avoids the problem of extremely lengthy computations which
1517 This avoids the problem of extremely lengthy computations which
1514 occur if arr is large, and appear to the user as a system lockup
1518 occur if arr is large, and appear to the user as a system lockup
1515 with 100% cpu activity. After a suggestion by Kristian Sandberg
1519 with 100% cpu activity. After a suggestion by Kristian Sandberg
1516 <Kristian.Sandberg@colorado.edu>.
1520 <Kristian.Sandberg@colorado.edu>.
1517 (Magic.__init__): fix bug in global magic escapes not being
1521 (Magic.__init__): fix bug in global magic escapes not being
1518 correctly set.
1522 correctly set.
1519
1523
1520 2004-10-08 Fernando Perez <fperez@colorado.edu>
1524 2004-10-08 Fernando Perez <fperez@colorado.edu>
1521
1525
1522 * IPython/Magic.py (__license__): change to absolute imports of
1526 * IPython/Magic.py (__license__): change to absolute imports of
1523 ipython's own internal packages, to start adapting to the absolute
1527 ipython's own internal packages, to start adapting to the absolute
1524 import requirement of PEP-328.
1528 import requirement of PEP-328.
1525
1529
1526 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1530 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1527 files, and standardize author/license marks through the Release
1531 files, and standardize author/license marks through the Release
1528 module instead of having per/file stuff (except for files with
1532 module instead of having per/file stuff (except for files with
1529 particular licenses, like the MIT/PSF-licensed codes).
1533 particular licenses, like the MIT/PSF-licensed codes).
1530
1534
1531 * IPython/Debugger.py: remove dead code for python 2.1
1535 * IPython/Debugger.py: remove dead code for python 2.1
1532
1536
1533 2004-10-04 Fernando Perez <fperez@colorado.edu>
1537 2004-10-04 Fernando Perez <fperez@colorado.edu>
1534
1538
1535 * IPython/iplib.py (ipmagic): New function for accessing magics
1539 * IPython/iplib.py (ipmagic): New function for accessing magics
1536 via a normal python function call.
1540 via a normal python function call.
1537
1541
1538 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1542 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1539 from '@' to '%', to accomodate the new @decorator syntax of python
1543 from '@' to '%', to accomodate the new @decorator syntax of python
1540 2.4.
1544 2.4.
1541
1545
1542 2004-09-29 Fernando Perez <fperez@colorado.edu>
1546 2004-09-29 Fernando Perez <fperez@colorado.edu>
1543
1547
1544 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1548 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1545 matplotlib.use to prevent running scripts which try to switch
1549 matplotlib.use to prevent running scripts which try to switch
1546 interactive backends from within ipython. This will just crash
1550 interactive backends from within ipython. This will just crash
1547 the python interpreter, so we can't allow it (but a detailed error
1551 the python interpreter, so we can't allow it (but a detailed error
1548 is given to the user).
1552 is given to the user).
1549
1553
1550 2004-09-28 Fernando Perez <fperez@colorado.edu>
1554 2004-09-28 Fernando Perez <fperez@colorado.edu>
1551
1555
1552 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1556 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1553 matplotlib-related fixes so that using @run with non-matplotlib
1557 matplotlib-related fixes so that using @run with non-matplotlib
1554 scripts doesn't pop up spurious plot windows. This requires
1558 scripts doesn't pop up spurious plot windows. This requires
1555 matplotlib >= 0.63, where I had to make some changes as well.
1559 matplotlib >= 0.63, where I had to make some changes as well.
1556
1560
1557 * IPython/ipmaker.py (make_IPython): update version requirement to
1561 * IPython/ipmaker.py (make_IPython): update version requirement to
1558 python 2.2.
1562 python 2.2.
1559
1563
1560 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1564 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1561 banner arg for embedded customization.
1565 banner arg for embedded customization.
1562
1566
1563 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1567 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1564 explicit uses of __IP as the IPython's instance name. Now things
1568 explicit uses of __IP as the IPython's instance name. Now things
1565 are properly handled via the shell.name value. The actual code
1569 are properly handled via the shell.name value. The actual code
1566 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1570 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1567 is much better than before. I'll clean things completely when the
1571 is much better than before. I'll clean things completely when the
1568 magic stuff gets a real overhaul.
1572 magic stuff gets a real overhaul.
1569
1573
1570 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1574 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1571 minor changes to debian dir.
1575 minor changes to debian dir.
1572
1576
1573 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1577 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1574 pointer to the shell itself in the interactive namespace even when
1578 pointer to the shell itself in the interactive namespace even when
1575 a user-supplied dict is provided. This is needed for embedding
1579 a user-supplied dict is provided. This is needed for embedding
1576 purposes (found by tests with Michel Sanner).
1580 purposes (found by tests with Michel Sanner).
1577
1581
1578 2004-09-27 Fernando Perez <fperez@colorado.edu>
1582 2004-09-27 Fernando Perez <fperez@colorado.edu>
1579
1583
1580 * IPython/UserConfig/ipythonrc: remove []{} from
1584 * IPython/UserConfig/ipythonrc: remove []{} from
1581 readline_remove_delims, so that things like [modname.<TAB> do
1585 readline_remove_delims, so that things like [modname.<TAB> do
1582 proper completion. This disables [].TAB, but that's a less common
1586 proper completion. This disables [].TAB, but that's a less common
1583 case than module names in list comprehensions, for example.
1587 case than module names in list comprehensions, for example.
1584 Thanks to a report by Andrea Riciputi.
1588 Thanks to a report by Andrea Riciputi.
1585
1589
1586 2004-09-09 Fernando Perez <fperez@colorado.edu>
1590 2004-09-09 Fernando Perez <fperez@colorado.edu>
1587
1591
1588 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1592 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1589 blocking problems in win32 and osx. Fix by John.
1593 blocking problems in win32 and osx. Fix by John.
1590
1594
1591 2004-09-08 Fernando Perez <fperez@colorado.edu>
1595 2004-09-08 Fernando Perez <fperez@colorado.edu>
1592
1596
1593 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1597 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1594 for Win32 and OSX. Fix by John Hunter.
1598 for Win32 and OSX. Fix by John Hunter.
1595
1599
1596 2004-08-30 *** Released version 0.6.3
1600 2004-08-30 *** Released version 0.6.3
1597
1601
1598 2004-08-30 Fernando Perez <fperez@colorado.edu>
1602 2004-08-30 Fernando Perez <fperez@colorado.edu>
1599
1603
1600 * setup.py (isfile): Add manpages to list of dependent files to be
1604 * setup.py (isfile): Add manpages to list of dependent files to be
1601 updated.
1605 updated.
1602
1606
1603 2004-08-27 Fernando Perez <fperez@colorado.edu>
1607 2004-08-27 Fernando Perez <fperez@colorado.edu>
1604
1608
1605 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1609 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1606 for now. They don't really work with standalone WX/GTK code
1610 for now. They don't really work with standalone WX/GTK code
1607 (though matplotlib IS working fine with both of those backends).
1611 (though matplotlib IS working fine with both of those backends).
1608 This will neeed much more testing. I disabled most things with
1612 This will neeed much more testing. I disabled most things with
1609 comments, so turning it back on later should be pretty easy.
1613 comments, so turning it back on later should be pretty easy.
1610
1614
1611 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1615 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1612 autocalling of expressions like r'foo', by modifying the line
1616 autocalling of expressions like r'foo', by modifying the line
1613 split regexp. Closes
1617 split regexp. Closes
1614 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1618 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1615 Riley <ipythonbugs-AT-sabi.net>.
1619 Riley <ipythonbugs-AT-sabi.net>.
1616 (InteractiveShell.mainloop): honor --nobanner with banner
1620 (InteractiveShell.mainloop): honor --nobanner with banner
1617 extensions.
1621 extensions.
1618
1622
1619 * IPython/Shell.py: Significant refactoring of all classes, so
1623 * IPython/Shell.py: Significant refactoring of all classes, so
1620 that we can really support ALL matplotlib backends and threading
1624 that we can really support ALL matplotlib backends and threading
1621 models (John spotted a bug with Tk which required this). Now we
1625 models (John spotted a bug with Tk which required this). Now we
1622 should support single-threaded, WX-threads and GTK-threads, both
1626 should support single-threaded, WX-threads and GTK-threads, both
1623 for generic code and for matplotlib.
1627 for generic code and for matplotlib.
1624
1628
1625 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1629 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1626 -pylab, to simplify things for users. Will also remove the pylab
1630 -pylab, to simplify things for users. Will also remove the pylab
1627 profile, since now all of matplotlib configuration is directly
1631 profile, since now all of matplotlib configuration is directly
1628 handled here. This also reduces startup time.
1632 handled here. This also reduces startup time.
1629
1633
1630 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1634 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1631 shell wasn't being correctly called. Also in IPShellWX.
1635 shell wasn't being correctly called. Also in IPShellWX.
1632
1636
1633 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1637 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1634 fine-tune banner.
1638 fine-tune banner.
1635
1639
1636 * IPython/numutils.py (spike): Deprecate these spike functions,
1640 * IPython/numutils.py (spike): Deprecate these spike functions,
1637 delete (long deprecated) gnuplot_exec handler.
1641 delete (long deprecated) gnuplot_exec handler.
1638
1642
1639 2004-08-26 Fernando Perez <fperez@colorado.edu>
1643 2004-08-26 Fernando Perez <fperez@colorado.edu>
1640
1644
1641 * ipython.1: Update for threading options, plus some others which
1645 * ipython.1: Update for threading options, plus some others which
1642 were missing.
1646 were missing.
1643
1647
1644 * IPython/ipmaker.py (__call__): Added -wthread option for
1648 * IPython/ipmaker.py (__call__): Added -wthread option for
1645 wxpython thread handling. Make sure threading options are only
1649 wxpython thread handling. Make sure threading options are only
1646 valid at the command line.
1650 valid at the command line.
1647
1651
1648 * scripts/ipython: moved shell selection into a factory function
1652 * scripts/ipython: moved shell selection into a factory function
1649 in Shell.py, to keep the starter script to a minimum.
1653 in Shell.py, to keep the starter script to a minimum.
1650
1654
1651 2004-08-25 Fernando Perez <fperez@colorado.edu>
1655 2004-08-25 Fernando Perez <fperez@colorado.edu>
1652
1656
1653 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1657 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1654 John. Along with some recent changes he made to matplotlib, the
1658 John. Along with some recent changes he made to matplotlib, the
1655 next versions of both systems should work very well together.
1659 next versions of both systems should work very well together.
1656
1660
1657 2004-08-24 Fernando Perez <fperez@colorado.edu>
1661 2004-08-24 Fernando Perez <fperez@colorado.edu>
1658
1662
1659 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1663 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1660 tried to switch the profiling to using hotshot, but I'm getting
1664 tried to switch the profiling to using hotshot, but I'm getting
1661 strange errors from prof.runctx() there. I may be misreading the
1665 strange errors from prof.runctx() there. I may be misreading the
1662 docs, but it looks weird. For now the profiling code will
1666 docs, but it looks weird. For now the profiling code will
1663 continue to use the standard profiler.
1667 continue to use the standard profiler.
1664
1668
1665 2004-08-23 Fernando Perez <fperez@colorado.edu>
1669 2004-08-23 Fernando Perez <fperez@colorado.edu>
1666
1670
1667 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1671 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1668 threaded shell, by John Hunter. It's not quite ready yet, but
1672 threaded shell, by John Hunter. It's not quite ready yet, but
1669 close.
1673 close.
1670
1674
1671 2004-08-22 Fernando Perez <fperez@colorado.edu>
1675 2004-08-22 Fernando Perez <fperez@colorado.edu>
1672
1676
1673 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1677 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1674 in Magic and ultraTB.
1678 in Magic and ultraTB.
1675
1679
1676 * ipython.1: document threading options in manpage.
1680 * ipython.1: document threading options in manpage.
1677
1681
1678 * scripts/ipython: Changed name of -thread option to -gthread,
1682 * scripts/ipython: Changed name of -thread option to -gthread,
1679 since this is GTK specific. I want to leave the door open for a
1683 since this is GTK specific. I want to leave the door open for a
1680 -wthread option for WX, which will most likely be necessary. This
1684 -wthread option for WX, which will most likely be necessary. This
1681 change affects usage and ipmaker as well.
1685 change affects usage and ipmaker as well.
1682
1686
1683 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1687 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1684 handle the matplotlib shell issues. Code by John Hunter
1688 handle the matplotlib shell issues. Code by John Hunter
1685 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1689 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1686 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1690 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1687 broken (and disabled for end users) for now, but it puts the
1691 broken (and disabled for end users) for now, but it puts the
1688 infrastructure in place.
1692 infrastructure in place.
1689
1693
1690 2004-08-21 Fernando Perez <fperez@colorado.edu>
1694 2004-08-21 Fernando Perez <fperez@colorado.edu>
1691
1695
1692 * ipythonrc-pylab: Add matplotlib support.
1696 * ipythonrc-pylab: Add matplotlib support.
1693
1697
1694 * matplotlib_config.py: new files for matplotlib support, part of
1698 * matplotlib_config.py: new files for matplotlib support, part of
1695 the pylab profile.
1699 the pylab profile.
1696
1700
1697 * IPython/usage.py (__doc__): documented the threading options.
1701 * IPython/usage.py (__doc__): documented the threading options.
1698
1702
1699 2004-08-20 Fernando Perez <fperez@colorado.edu>
1703 2004-08-20 Fernando Perez <fperez@colorado.edu>
1700
1704
1701 * ipython: Modified the main calling routine to handle the -thread
1705 * ipython: Modified the main calling routine to handle the -thread
1702 and -mpthread options. This needs to be done as a top-level hack,
1706 and -mpthread options. This needs to be done as a top-level hack,
1703 because it determines which class to instantiate for IPython
1707 because it determines which class to instantiate for IPython
1704 itself.
1708 itself.
1705
1709
1706 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1710 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1707 classes to support multithreaded GTK operation without blocking,
1711 classes to support multithreaded GTK operation without blocking,
1708 and matplotlib with all backends. This is a lot of still very
1712 and matplotlib with all backends. This is a lot of still very
1709 experimental code, and threads are tricky. So it may still have a
1713 experimental code, and threads are tricky. So it may still have a
1710 few rough edges... This code owes a lot to
1714 few rough edges... This code owes a lot to
1711 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1715 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1712 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1716 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1713 to John Hunter for all the matplotlib work.
1717 to John Hunter for all the matplotlib work.
1714
1718
1715 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1719 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1716 options for gtk thread and matplotlib support.
1720 options for gtk thread and matplotlib support.
1717
1721
1718 2004-08-16 Fernando Perez <fperez@colorado.edu>
1722 2004-08-16 Fernando Perez <fperez@colorado.edu>
1719
1723
1720 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1724 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1721 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1725 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1722 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1726 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1723
1727
1724 2004-08-11 Fernando Perez <fperez@colorado.edu>
1728 2004-08-11 Fernando Perez <fperez@colorado.edu>
1725
1729
1726 * setup.py (isfile): Fix build so documentation gets updated for
1730 * setup.py (isfile): Fix build so documentation gets updated for
1727 rpms (it was only done for .tgz builds).
1731 rpms (it was only done for .tgz builds).
1728
1732
1729 2004-08-10 Fernando Perez <fperez@colorado.edu>
1733 2004-08-10 Fernando Perez <fperez@colorado.edu>
1730
1734
1731 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1735 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1732
1736
1733 * iplib.py : Silence syntax error exceptions in tab-completion.
1737 * iplib.py : Silence syntax error exceptions in tab-completion.
1734
1738
1735 2004-08-05 Fernando Perez <fperez@colorado.edu>
1739 2004-08-05 Fernando Perez <fperez@colorado.edu>
1736
1740
1737 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1741 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1738 'color off' mark for continuation prompts. This was causing long
1742 'color off' mark for continuation prompts. This was causing long
1739 continuation lines to mis-wrap.
1743 continuation lines to mis-wrap.
1740
1744
1741 2004-08-01 Fernando Perez <fperez@colorado.edu>
1745 2004-08-01 Fernando Perez <fperez@colorado.edu>
1742
1746
1743 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1747 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1744 for building ipython to be a parameter. All this is necessary
1748 for building ipython to be a parameter. All this is necessary
1745 right now to have a multithreaded version, but this insane
1749 right now to have a multithreaded version, but this insane
1746 non-design will be cleaned up soon. For now, it's a hack that
1750 non-design will be cleaned up soon. For now, it's a hack that
1747 works.
1751 works.
1748
1752
1749 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1753 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1750 args in various places. No bugs so far, but it's a dangerous
1754 args in various places. No bugs so far, but it's a dangerous
1751 practice.
1755 practice.
1752
1756
1753 2004-07-31 Fernando Perez <fperez@colorado.edu>
1757 2004-07-31 Fernando Perez <fperez@colorado.edu>
1754
1758
1755 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1759 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1756 fix completion of files with dots in their names under most
1760 fix completion of files with dots in their names under most
1757 profiles (pysh was OK because the completion order is different).
1761 profiles (pysh was OK because the completion order is different).
1758
1762
1759 2004-07-27 Fernando Perez <fperez@colorado.edu>
1763 2004-07-27 Fernando Perez <fperez@colorado.edu>
1760
1764
1761 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1765 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1762 keywords manually, b/c the one in keyword.py was removed in python
1766 keywords manually, b/c the one in keyword.py was removed in python
1763 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1767 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1764 This is NOT a bug under python 2.3 and earlier.
1768 This is NOT a bug under python 2.3 and earlier.
1765
1769
1766 2004-07-26 Fernando Perez <fperez@colorado.edu>
1770 2004-07-26 Fernando Perez <fperez@colorado.edu>
1767
1771
1768 * IPython/ultraTB.py (VerboseTB.text): Add another
1772 * IPython/ultraTB.py (VerboseTB.text): Add another
1769 linecache.checkcache() call to try to prevent inspect.py from
1773 linecache.checkcache() call to try to prevent inspect.py from
1770 crashing under python 2.3. I think this fixes
1774 crashing under python 2.3. I think this fixes
1771 http://www.scipy.net/roundup/ipython/issue17.
1775 http://www.scipy.net/roundup/ipython/issue17.
1772
1776
1773 2004-07-26 *** Released version 0.6.2
1777 2004-07-26 *** Released version 0.6.2
1774
1778
1775 2004-07-26 Fernando Perez <fperez@colorado.edu>
1779 2004-07-26 Fernando Perez <fperez@colorado.edu>
1776
1780
1777 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1781 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1778 fail for any number.
1782 fail for any number.
1779 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1783 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1780 empty bookmarks.
1784 empty bookmarks.
1781
1785
1782 2004-07-26 *** Released version 0.6.1
1786 2004-07-26 *** Released version 0.6.1
1783
1787
1784 2004-07-26 Fernando Perez <fperez@colorado.edu>
1788 2004-07-26 Fernando Perez <fperez@colorado.edu>
1785
1789
1786 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1790 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1787
1791
1788 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1792 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1789 escaping '()[]{}' in filenames.
1793 escaping '()[]{}' in filenames.
1790
1794
1791 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1795 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1792 Python 2.2 users who lack a proper shlex.split.
1796 Python 2.2 users who lack a proper shlex.split.
1793
1797
1794 2004-07-19 Fernando Perez <fperez@colorado.edu>
1798 2004-07-19 Fernando Perez <fperez@colorado.edu>
1795
1799
1796 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1800 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1797 for reading readline's init file. I follow the normal chain:
1801 for reading readline's init file. I follow the normal chain:
1798 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1802 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1799 report by Mike Heeter. This closes
1803 report by Mike Heeter. This closes
1800 http://www.scipy.net/roundup/ipython/issue16.
1804 http://www.scipy.net/roundup/ipython/issue16.
1801
1805
1802 2004-07-18 Fernando Perez <fperez@colorado.edu>
1806 2004-07-18 Fernando Perez <fperez@colorado.edu>
1803
1807
1804 * IPython/iplib.py (__init__): Add better handling of '\' under
1808 * IPython/iplib.py (__init__): Add better handling of '\' under
1805 Win32 for filenames. After a patch by Ville.
1809 Win32 for filenames. After a patch by Ville.
1806
1810
1807 2004-07-17 Fernando Perez <fperez@colorado.edu>
1811 2004-07-17 Fernando Perez <fperez@colorado.edu>
1808
1812
1809 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1813 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1810 autocalling would be triggered for 'foo is bar' if foo is
1814 autocalling would be triggered for 'foo is bar' if foo is
1811 callable. I also cleaned up the autocall detection code to use a
1815 callable. I also cleaned up the autocall detection code to use a
1812 regexp, which is faster. Bug reported by Alexander Schmolck.
1816 regexp, which is faster. Bug reported by Alexander Schmolck.
1813
1817
1814 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1818 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1815 '?' in them would confuse the help system. Reported by Alex
1819 '?' in them would confuse the help system. Reported by Alex
1816 Schmolck.
1820 Schmolck.
1817
1821
1818 2004-07-16 Fernando Perez <fperez@colorado.edu>
1822 2004-07-16 Fernando Perez <fperez@colorado.edu>
1819
1823
1820 * IPython/GnuplotInteractive.py (__all__): added plot2.
1824 * IPython/GnuplotInteractive.py (__all__): added plot2.
1821
1825
1822 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1826 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1823 plotting dictionaries, lists or tuples of 1d arrays.
1827 plotting dictionaries, lists or tuples of 1d arrays.
1824
1828
1825 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1829 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1826 optimizations.
1830 optimizations.
1827
1831
1828 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1832 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1829 the information which was there from Janko's original IPP code:
1833 the information which was there from Janko's original IPP code:
1830
1834
1831 03.05.99 20:53 porto.ifm.uni-kiel.de
1835 03.05.99 20:53 porto.ifm.uni-kiel.de
1832 --Started changelog.
1836 --Started changelog.
1833 --make clear do what it say it does
1837 --make clear do what it say it does
1834 --added pretty output of lines from inputcache
1838 --added pretty output of lines from inputcache
1835 --Made Logger a mixin class, simplifies handling of switches
1839 --Made Logger a mixin class, simplifies handling of switches
1836 --Added own completer class. .string<TAB> expands to last history
1840 --Added own completer class. .string<TAB> expands to last history
1837 line which starts with string. The new expansion is also present
1841 line which starts with string. The new expansion is also present
1838 with Ctrl-r from the readline library. But this shows, who this
1842 with Ctrl-r from the readline library. But this shows, who this
1839 can be done for other cases.
1843 can be done for other cases.
1840 --Added convention that all shell functions should accept a
1844 --Added convention that all shell functions should accept a
1841 parameter_string This opens the door for different behaviour for
1845 parameter_string This opens the door for different behaviour for
1842 each function. @cd is a good example of this.
1846 each function. @cd is a good example of this.
1843
1847
1844 04.05.99 12:12 porto.ifm.uni-kiel.de
1848 04.05.99 12:12 porto.ifm.uni-kiel.de
1845 --added logfile rotation
1849 --added logfile rotation
1846 --added new mainloop method which freezes first the namespace
1850 --added new mainloop method which freezes first the namespace
1847
1851
1848 07.05.99 21:24 porto.ifm.uni-kiel.de
1852 07.05.99 21:24 porto.ifm.uni-kiel.de
1849 --added the docreader classes. Now there is a help system.
1853 --added the docreader classes. Now there is a help system.
1850 -This is only a first try. Currently it's not easy to put new
1854 -This is only a first try. Currently it's not easy to put new
1851 stuff in the indices. But this is the way to go. Info would be
1855 stuff in the indices. But this is the way to go. Info would be
1852 better, but HTML is every where and not everybody has an info
1856 better, but HTML is every where and not everybody has an info
1853 system installed and it's not so easy to change html-docs to info.
1857 system installed and it's not so easy to change html-docs to info.
1854 --added global logfile option
1858 --added global logfile option
1855 --there is now a hook for object inspection method pinfo needs to
1859 --there is now a hook for object inspection method pinfo needs to
1856 be provided for this. Can be reached by two '??'.
1860 be provided for this. Can be reached by two '??'.
1857
1861
1858 08.05.99 20:51 porto.ifm.uni-kiel.de
1862 08.05.99 20:51 porto.ifm.uni-kiel.de
1859 --added a README
1863 --added a README
1860 --bug in rc file. Something has changed so functions in the rc
1864 --bug in rc file. Something has changed so functions in the rc
1861 file need to reference the shell and not self. Not clear if it's a
1865 file need to reference the shell and not self. Not clear if it's a
1862 bug or feature.
1866 bug or feature.
1863 --changed rc file for new behavior
1867 --changed rc file for new behavior
1864
1868
1865 2004-07-15 Fernando Perez <fperez@colorado.edu>
1869 2004-07-15 Fernando Perez <fperez@colorado.edu>
1866
1870
1867 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1871 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1868 cache was falling out of sync in bizarre manners when multi-line
1872 cache was falling out of sync in bizarre manners when multi-line
1869 input was present. Minor optimizations and cleanup.
1873 input was present. Minor optimizations and cleanup.
1870
1874
1871 (Logger): Remove old Changelog info for cleanup. This is the
1875 (Logger): Remove old Changelog info for cleanup. This is the
1872 information which was there from Janko's original code:
1876 information which was there from Janko's original code:
1873
1877
1874 Changes to Logger: - made the default log filename a parameter
1878 Changes to Logger: - made the default log filename a parameter
1875
1879
1876 - put a check for lines beginning with !@? in log(). Needed
1880 - put a check for lines beginning with !@? in log(). Needed
1877 (even if the handlers properly log their lines) for mid-session
1881 (even if the handlers properly log their lines) for mid-session
1878 logging activation to work properly. Without this, lines logged
1882 logging activation to work properly. Without this, lines logged
1879 in mid session, which get read from the cache, would end up
1883 in mid session, which get read from the cache, would end up
1880 'bare' (with !@? in the open) in the log. Now they are caught
1884 'bare' (with !@? in the open) in the log. Now they are caught
1881 and prepended with a #.
1885 and prepended with a #.
1882
1886
1883 * IPython/iplib.py (InteractiveShell.init_readline): added check
1887 * IPython/iplib.py (InteractiveShell.init_readline): added check
1884 in case MagicCompleter fails to be defined, so we don't crash.
1888 in case MagicCompleter fails to be defined, so we don't crash.
1885
1889
1886 2004-07-13 Fernando Perez <fperez@colorado.edu>
1890 2004-07-13 Fernando Perez <fperez@colorado.edu>
1887
1891
1888 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1892 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1889 of EPS if the requested filename ends in '.eps'.
1893 of EPS if the requested filename ends in '.eps'.
1890
1894
1891 2004-07-04 Fernando Perez <fperez@colorado.edu>
1895 2004-07-04 Fernando Perez <fperez@colorado.edu>
1892
1896
1893 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1897 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1894 escaping of quotes when calling the shell.
1898 escaping of quotes when calling the shell.
1895
1899
1896 2004-07-02 Fernando Perez <fperez@colorado.edu>
1900 2004-07-02 Fernando Perez <fperez@colorado.edu>
1897
1901
1898 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1902 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1899 gettext not working because we were clobbering '_'. Fixes
1903 gettext not working because we were clobbering '_'. Fixes
1900 http://www.scipy.net/roundup/ipython/issue6.
1904 http://www.scipy.net/roundup/ipython/issue6.
1901
1905
1902 2004-07-01 Fernando Perez <fperez@colorado.edu>
1906 2004-07-01 Fernando Perez <fperez@colorado.edu>
1903
1907
1904 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1908 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1905 into @cd. Patch by Ville.
1909 into @cd. Patch by Ville.
1906
1910
1907 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1911 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1908 new function to store things after ipmaker runs. Patch by Ville.
1912 new function to store things after ipmaker runs. Patch by Ville.
1909 Eventually this will go away once ipmaker is removed and the class
1913 Eventually this will go away once ipmaker is removed and the class
1910 gets cleaned up, but for now it's ok. Key functionality here is
1914 gets cleaned up, but for now it's ok. Key functionality here is
1911 the addition of the persistent storage mechanism, a dict for
1915 the addition of the persistent storage mechanism, a dict for
1912 keeping data across sessions (for now just bookmarks, but more can
1916 keeping data across sessions (for now just bookmarks, but more can
1913 be implemented later).
1917 be implemented later).
1914
1918
1915 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1919 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1916 persistent across sections. Patch by Ville, I modified it
1920 persistent across sections. Patch by Ville, I modified it
1917 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1921 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1918 added a '-l' option to list all bookmarks.
1922 added a '-l' option to list all bookmarks.
1919
1923
1920 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1924 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1921 center for cleanup. Registered with atexit.register(). I moved
1925 center for cleanup. Registered with atexit.register(). I moved
1922 here the old exit_cleanup(). After a patch by Ville.
1926 here the old exit_cleanup(). After a patch by Ville.
1923
1927
1924 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1928 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1925 characters in the hacked shlex_split for python 2.2.
1929 characters in the hacked shlex_split for python 2.2.
1926
1930
1927 * IPython/iplib.py (file_matches): more fixes to filenames with
1931 * IPython/iplib.py (file_matches): more fixes to filenames with
1928 whitespace in them. It's not perfect, but limitations in python's
1932 whitespace in them. It's not perfect, but limitations in python's
1929 readline make it impossible to go further.
1933 readline make it impossible to go further.
1930
1934
1931 2004-06-29 Fernando Perez <fperez@colorado.edu>
1935 2004-06-29 Fernando Perez <fperez@colorado.edu>
1932
1936
1933 * IPython/iplib.py (file_matches): escape whitespace correctly in
1937 * IPython/iplib.py (file_matches): escape whitespace correctly in
1934 filename completions. Bug reported by Ville.
1938 filename completions. Bug reported by Ville.
1935
1939
1936 2004-06-28 Fernando Perez <fperez@colorado.edu>
1940 2004-06-28 Fernando Perez <fperez@colorado.edu>
1937
1941
1938 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1942 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1939 the history file will be called 'history-PROFNAME' (or just
1943 the history file will be called 'history-PROFNAME' (or just
1940 'history' if no profile is loaded). I was getting annoyed at
1944 'history' if no profile is loaded). I was getting annoyed at
1941 getting my Numerical work history clobbered by pysh sessions.
1945 getting my Numerical work history clobbered by pysh sessions.
1942
1946
1943 * IPython/iplib.py (InteractiveShell.__init__): Internal
1947 * IPython/iplib.py (InteractiveShell.__init__): Internal
1944 getoutputerror() function so that we can honor the system_verbose
1948 getoutputerror() function so that we can honor the system_verbose
1945 flag for _all_ system calls. I also added escaping of #
1949 flag for _all_ system calls. I also added escaping of #
1946 characters here to avoid confusing Itpl.
1950 characters here to avoid confusing Itpl.
1947
1951
1948 * IPython/Magic.py (shlex_split): removed call to shell in
1952 * IPython/Magic.py (shlex_split): removed call to shell in
1949 parse_options and replaced it with shlex.split(). The annoying
1953 parse_options and replaced it with shlex.split(). The annoying
1950 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1954 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1951 to backport it from 2.3, with several frail hacks (the shlex
1955 to backport it from 2.3, with several frail hacks (the shlex
1952 module is rather limited in 2.2). Thanks to a suggestion by Ville
1956 module is rather limited in 2.2). Thanks to a suggestion by Ville
1953 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1957 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1954 problem.
1958 problem.
1955
1959
1956 (Magic.magic_system_verbose): new toggle to print the actual
1960 (Magic.magic_system_verbose): new toggle to print the actual
1957 system calls made by ipython. Mainly for debugging purposes.
1961 system calls made by ipython. Mainly for debugging purposes.
1958
1962
1959 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1963 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1960 doesn't support persistence. Reported (and fix suggested) by
1964 doesn't support persistence. Reported (and fix suggested) by
1961 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1965 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1962
1966
1963 2004-06-26 Fernando Perez <fperez@colorado.edu>
1967 2004-06-26 Fernando Perez <fperez@colorado.edu>
1964
1968
1965 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1969 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1966 continue prompts.
1970 continue prompts.
1967
1971
1968 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1972 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1969 function (basically a big docstring) and a few more things here to
1973 function (basically a big docstring) and a few more things here to
1970 speedup startup. pysh.py is now very lightweight. We want because
1974 speedup startup. pysh.py is now very lightweight. We want because
1971 it gets execfile'd, while InterpreterExec gets imported, so
1975 it gets execfile'd, while InterpreterExec gets imported, so
1972 byte-compilation saves time.
1976 byte-compilation saves time.
1973
1977
1974 2004-06-25 Fernando Perez <fperez@colorado.edu>
1978 2004-06-25 Fernando Perez <fperez@colorado.edu>
1975
1979
1976 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1980 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1977 -NUM', which was recently broken.
1981 -NUM', which was recently broken.
1978
1982
1979 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1983 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1980 in multi-line input (but not !!, which doesn't make sense there).
1984 in multi-line input (but not !!, which doesn't make sense there).
1981
1985
1982 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1986 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1983 It's just too useful, and people can turn it off in the less
1987 It's just too useful, and people can turn it off in the less
1984 common cases where it's a problem.
1988 common cases where it's a problem.
1985
1989
1986 2004-06-24 Fernando Perez <fperez@colorado.edu>
1990 2004-06-24 Fernando Perez <fperez@colorado.edu>
1987
1991
1988 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1992 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1989 special syntaxes (like alias calling) is now allied in multi-line
1993 special syntaxes (like alias calling) is now allied in multi-line
1990 input. This is still _very_ experimental, but it's necessary for
1994 input. This is still _very_ experimental, but it's necessary for
1991 efficient shell usage combining python looping syntax with system
1995 efficient shell usage combining python looping syntax with system
1992 calls. For now it's restricted to aliases, I don't think it
1996 calls. For now it's restricted to aliases, I don't think it
1993 really even makes sense to have this for magics.
1997 really even makes sense to have this for magics.
1994
1998
1995 2004-06-23 Fernando Perez <fperez@colorado.edu>
1999 2004-06-23 Fernando Perez <fperez@colorado.edu>
1996
2000
1997 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2001 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1998 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2002 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1999
2003
2000 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2004 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2001 extensions under Windows (after code sent by Gary Bishop). The
2005 extensions under Windows (after code sent by Gary Bishop). The
2002 extensions considered 'executable' are stored in IPython's rc
2006 extensions considered 'executable' are stored in IPython's rc
2003 structure as win_exec_ext.
2007 structure as win_exec_ext.
2004
2008
2005 * IPython/genutils.py (shell): new function, like system() but
2009 * IPython/genutils.py (shell): new function, like system() but
2006 without return value. Very useful for interactive shell work.
2010 without return value. Very useful for interactive shell work.
2007
2011
2008 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2012 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2009 delete aliases.
2013 delete aliases.
2010
2014
2011 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2015 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2012 sure that the alias table doesn't contain python keywords.
2016 sure that the alias table doesn't contain python keywords.
2013
2017
2014 2004-06-21 Fernando Perez <fperez@colorado.edu>
2018 2004-06-21 Fernando Perez <fperez@colorado.edu>
2015
2019
2016 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2020 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2017 non-existent items are found in $PATH. Reported by Thorsten.
2021 non-existent items are found in $PATH. Reported by Thorsten.
2018
2022
2019 2004-06-20 Fernando Perez <fperez@colorado.edu>
2023 2004-06-20 Fernando Perez <fperez@colorado.edu>
2020
2024
2021 * IPython/iplib.py (complete): modified the completer so that the
2025 * IPython/iplib.py (complete): modified the completer so that the
2022 order of priorities can be easily changed at runtime.
2026 order of priorities can be easily changed at runtime.
2023
2027
2024 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2028 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2025 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2029 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2026
2030
2027 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2031 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2028 expand Python variables prepended with $ in all system calls. The
2032 expand Python variables prepended with $ in all system calls. The
2029 same was done to InteractiveShell.handle_shell_escape. Now all
2033 same was done to InteractiveShell.handle_shell_escape. Now all
2030 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2034 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2031 expansion of python variables and expressions according to the
2035 expansion of python variables and expressions according to the
2032 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2036 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2033
2037
2034 Though PEP-215 has been rejected, a similar (but simpler) one
2038 Though PEP-215 has been rejected, a similar (but simpler) one
2035 seems like it will go into Python 2.4, PEP-292 -
2039 seems like it will go into Python 2.4, PEP-292 -
2036 http://www.python.org/peps/pep-0292.html.
2040 http://www.python.org/peps/pep-0292.html.
2037
2041
2038 I'll keep the full syntax of PEP-215, since IPython has since the
2042 I'll keep the full syntax of PEP-215, since IPython has since the
2039 start used Ka-Ping Yee's reference implementation discussed there
2043 start used Ka-Ping Yee's reference implementation discussed there
2040 (Itpl), and I actually like the powerful semantics it offers.
2044 (Itpl), and I actually like the powerful semantics it offers.
2041
2045
2042 In order to access normal shell variables, the $ has to be escaped
2046 In order to access normal shell variables, the $ has to be escaped
2043 via an extra $. For example:
2047 via an extra $. For example:
2044
2048
2045 In [7]: PATH='a python variable'
2049 In [7]: PATH='a python variable'
2046
2050
2047 In [8]: !echo $PATH
2051 In [8]: !echo $PATH
2048 a python variable
2052 a python variable
2049
2053
2050 In [9]: !echo $$PATH
2054 In [9]: !echo $$PATH
2051 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2055 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2052
2056
2053 (Magic.parse_options): escape $ so the shell doesn't evaluate
2057 (Magic.parse_options): escape $ so the shell doesn't evaluate
2054 things prematurely.
2058 things prematurely.
2055
2059
2056 * IPython/iplib.py (InteractiveShell.call_alias): added the
2060 * IPython/iplib.py (InteractiveShell.call_alias): added the
2057 ability for aliases to expand python variables via $.
2061 ability for aliases to expand python variables via $.
2058
2062
2059 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2063 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2060 system, now there's a @rehash/@rehashx pair of magics. These work
2064 system, now there's a @rehash/@rehashx pair of magics. These work
2061 like the csh rehash command, and can be invoked at any time. They
2065 like the csh rehash command, and can be invoked at any time. They
2062 build a table of aliases to everything in the user's $PATH
2066 build a table of aliases to everything in the user's $PATH
2063 (@rehash uses everything, @rehashx is slower but only adds
2067 (@rehash uses everything, @rehashx is slower but only adds
2064 executable files). With this, the pysh.py-based shell profile can
2068 executable files). With this, the pysh.py-based shell profile can
2065 now simply call rehash upon startup, and full access to all
2069 now simply call rehash upon startup, and full access to all
2066 programs in the user's path is obtained.
2070 programs in the user's path is obtained.
2067
2071
2068 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2072 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2069 functionality is now fully in place. I removed the old dynamic
2073 functionality is now fully in place. I removed the old dynamic
2070 code generation based approach, in favor of a much lighter one
2074 code generation based approach, in favor of a much lighter one
2071 based on a simple dict. The advantage is that this allows me to
2075 based on a simple dict. The advantage is that this allows me to
2072 now have thousands of aliases with negligible cost (unthinkable
2076 now have thousands of aliases with negligible cost (unthinkable
2073 with the old system).
2077 with the old system).
2074
2078
2075 2004-06-19 Fernando Perez <fperez@colorado.edu>
2079 2004-06-19 Fernando Perez <fperez@colorado.edu>
2076
2080
2077 * IPython/iplib.py (__init__): extended MagicCompleter class to
2081 * IPython/iplib.py (__init__): extended MagicCompleter class to
2078 also complete (last in priority) on user aliases.
2082 also complete (last in priority) on user aliases.
2079
2083
2080 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2084 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2081 call to eval.
2085 call to eval.
2082 (ItplNS.__init__): Added a new class which functions like Itpl,
2086 (ItplNS.__init__): Added a new class which functions like Itpl,
2083 but allows configuring the namespace for the evaluation to occur
2087 but allows configuring the namespace for the evaluation to occur
2084 in.
2088 in.
2085
2089
2086 2004-06-18 Fernando Perez <fperez@colorado.edu>
2090 2004-06-18 Fernando Perez <fperez@colorado.edu>
2087
2091
2088 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2092 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2089 better message when 'exit' or 'quit' are typed (a common newbie
2093 better message when 'exit' or 'quit' are typed (a common newbie
2090 confusion).
2094 confusion).
2091
2095
2092 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2096 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2093 check for Windows users.
2097 check for Windows users.
2094
2098
2095 * IPython/iplib.py (InteractiveShell.user_setup): removed
2099 * IPython/iplib.py (InteractiveShell.user_setup): removed
2096 disabling of colors for Windows. I'll test at runtime and issue a
2100 disabling of colors for Windows. I'll test at runtime and issue a
2097 warning if Gary's readline isn't found, as to nudge users to
2101 warning if Gary's readline isn't found, as to nudge users to
2098 download it.
2102 download it.
2099
2103
2100 2004-06-16 Fernando Perez <fperez@colorado.edu>
2104 2004-06-16 Fernando Perez <fperez@colorado.edu>
2101
2105
2102 * IPython/genutils.py (Stream.__init__): changed to print errors
2106 * IPython/genutils.py (Stream.__init__): changed to print errors
2103 to sys.stderr. I had a circular dependency here. Now it's
2107 to sys.stderr. I had a circular dependency here. Now it's
2104 possible to run ipython as IDLE's shell (consider this pre-alpha,
2108 possible to run ipython as IDLE's shell (consider this pre-alpha,
2105 since true stdout things end up in the starting terminal instead
2109 since true stdout things end up in the starting terminal instead
2106 of IDLE's out).
2110 of IDLE's out).
2107
2111
2108 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2112 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2109 users who haven't # updated their prompt_in2 definitions. Remove
2113 users who haven't # updated their prompt_in2 definitions. Remove
2110 eventually.
2114 eventually.
2111 (multiple_replace): added credit to original ASPN recipe.
2115 (multiple_replace): added credit to original ASPN recipe.
2112
2116
2113 2004-06-15 Fernando Perez <fperez@colorado.edu>
2117 2004-06-15 Fernando Perez <fperez@colorado.edu>
2114
2118
2115 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2119 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2116 list of auto-defined aliases.
2120 list of auto-defined aliases.
2117
2121
2118 2004-06-13 Fernando Perez <fperez@colorado.edu>
2122 2004-06-13 Fernando Perez <fperez@colorado.edu>
2119
2123
2120 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2124 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2121 install was really requested (so setup.py can be used for other
2125 install was really requested (so setup.py can be used for other
2122 things under Windows).
2126 things under Windows).
2123
2127
2124 2004-06-10 Fernando Perez <fperez@colorado.edu>
2128 2004-06-10 Fernando Perez <fperez@colorado.edu>
2125
2129
2126 * IPython/Logger.py (Logger.create_log): Manually remove any old
2130 * IPython/Logger.py (Logger.create_log): Manually remove any old
2127 backup, since os.remove may fail under Windows. Fixes bug
2131 backup, since os.remove may fail under Windows. Fixes bug
2128 reported by Thorsten.
2132 reported by Thorsten.
2129
2133
2130 2004-06-09 Fernando Perez <fperez@colorado.edu>
2134 2004-06-09 Fernando Perez <fperez@colorado.edu>
2131
2135
2132 * examples/example-embed.py: fixed all references to %n (replaced
2136 * examples/example-embed.py: fixed all references to %n (replaced
2133 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2137 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2134 for all examples and the manual as well.
2138 for all examples and the manual as well.
2135
2139
2136 2004-06-08 Fernando Perez <fperez@colorado.edu>
2140 2004-06-08 Fernando Perez <fperez@colorado.edu>
2137
2141
2138 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2142 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2139 alignment and color management. All 3 prompt subsystems now
2143 alignment and color management. All 3 prompt subsystems now
2140 inherit from BasePrompt.
2144 inherit from BasePrompt.
2141
2145
2142 * tools/release: updates for windows installer build and tag rpms
2146 * tools/release: updates for windows installer build and tag rpms
2143 with python version (since paths are fixed).
2147 with python version (since paths are fixed).
2144
2148
2145 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2149 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2146 which will become eventually obsolete. Also fixed the default
2150 which will become eventually obsolete. Also fixed the default
2147 prompt_in2 to use \D, so at least new users start with the correct
2151 prompt_in2 to use \D, so at least new users start with the correct
2148 defaults.
2152 defaults.
2149 WARNING: Users with existing ipythonrc files will need to apply
2153 WARNING: Users with existing ipythonrc files will need to apply
2150 this fix manually!
2154 this fix manually!
2151
2155
2152 * setup.py: make windows installer (.exe). This is finally the
2156 * setup.py: make windows installer (.exe). This is finally the
2153 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2157 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2154 which I hadn't included because it required Python 2.3 (or recent
2158 which I hadn't included because it required Python 2.3 (or recent
2155 distutils).
2159 distutils).
2156
2160
2157 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2161 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2158 usage of new '\D' escape.
2162 usage of new '\D' escape.
2159
2163
2160 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2164 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2161 lacks os.getuid())
2165 lacks os.getuid())
2162 (CachedOutput.set_colors): Added the ability to turn coloring
2166 (CachedOutput.set_colors): Added the ability to turn coloring
2163 on/off with @colors even for manually defined prompt colors. It
2167 on/off with @colors even for manually defined prompt colors. It
2164 uses a nasty global, but it works safely and via the generic color
2168 uses a nasty global, but it works safely and via the generic color
2165 handling mechanism.
2169 handling mechanism.
2166 (Prompt2.__init__): Introduced new escape '\D' for continuation
2170 (Prompt2.__init__): Introduced new escape '\D' for continuation
2167 prompts. It represents the counter ('\#') as dots.
2171 prompts. It represents the counter ('\#') as dots.
2168 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2172 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2169 need to update their ipythonrc files and replace '%n' with '\D' in
2173 need to update their ipythonrc files and replace '%n' with '\D' in
2170 their prompt_in2 settings everywhere. Sorry, but there's
2174 their prompt_in2 settings everywhere. Sorry, but there's
2171 otherwise no clean way to get all prompts to properly align. The
2175 otherwise no clean way to get all prompts to properly align. The
2172 ipythonrc shipped with IPython has been updated.
2176 ipythonrc shipped with IPython has been updated.
2173
2177
2174 2004-06-07 Fernando Perez <fperez@colorado.edu>
2178 2004-06-07 Fernando Perez <fperez@colorado.edu>
2175
2179
2176 * setup.py (isfile): Pass local_icons option to latex2html, so the
2180 * setup.py (isfile): Pass local_icons option to latex2html, so the
2177 resulting HTML file is self-contained. Thanks to
2181 resulting HTML file is self-contained. Thanks to
2178 dryice-AT-liu.com.cn for the tip.
2182 dryice-AT-liu.com.cn for the tip.
2179
2183
2180 * pysh.py: I created a new profile 'shell', which implements a
2184 * pysh.py: I created a new profile 'shell', which implements a
2181 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2185 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2182 system shell, nor will it become one anytime soon. It's mainly
2186 system shell, nor will it become one anytime soon. It's mainly
2183 meant to illustrate the use of the new flexible bash-like prompts.
2187 meant to illustrate the use of the new flexible bash-like prompts.
2184 I guess it could be used by hardy souls for true shell management,
2188 I guess it could be used by hardy souls for true shell management,
2185 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2189 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2186 profile. This uses the InterpreterExec extension provided by
2190 profile. This uses the InterpreterExec extension provided by
2187 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2191 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2188
2192
2189 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2193 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2190 auto-align itself with the length of the previous input prompt
2194 auto-align itself with the length of the previous input prompt
2191 (taking into account the invisible color escapes).
2195 (taking into account the invisible color escapes).
2192 (CachedOutput.__init__): Large restructuring of this class. Now
2196 (CachedOutput.__init__): Large restructuring of this class. Now
2193 all three prompts (primary1, primary2, output) are proper objects,
2197 all three prompts (primary1, primary2, output) are proper objects,
2194 managed by the 'parent' CachedOutput class. The code is still a
2198 managed by the 'parent' CachedOutput class. The code is still a
2195 bit hackish (all prompts share state via a pointer to the cache),
2199 bit hackish (all prompts share state via a pointer to the cache),
2196 but it's overall far cleaner than before.
2200 but it's overall far cleaner than before.
2197
2201
2198 * IPython/genutils.py (getoutputerror): modified to add verbose,
2202 * IPython/genutils.py (getoutputerror): modified to add verbose,
2199 debug and header options. This makes the interface of all getout*
2203 debug and header options. This makes the interface of all getout*
2200 functions uniform.
2204 functions uniform.
2201 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2205 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2202
2206
2203 * IPython/Magic.py (Magic.default_option): added a function to
2207 * IPython/Magic.py (Magic.default_option): added a function to
2204 allow registering default options for any magic command. This
2208 allow registering default options for any magic command. This
2205 makes it easy to have profiles which customize the magics globally
2209 makes it easy to have profiles which customize the magics globally
2206 for a certain use. The values set through this function are
2210 for a certain use. The values set through this function are
2207 picked up by the parse_options() method, which all magics should
2211 picked up by the parse_options() method, which all magics should
2208 use to parse their options.
2212 use to parse their options.
2209
2213
2210 * IPython/genutils.py (warn): modified the warnings framework to
2214 * IPython/genutils.py (warn): modified the warnings framework to
2211 use the Term I/O class. I'm trying to slowly unify all of
2215 use the Term I/O class. I'm trying to slowly unify all of
2212 IPython's I/O operations to pass through Term.
2216 IPython's I/O operations to pass through Term.
2213
2217
2214 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2218 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2215 the secondary prompt to correctly match the length of the primary
2219 the secondary prompt to correctly match the length of the primary
2216 one for any prompt. Now multi-line code will properly line up
2220 one for any prompt. Now multi-line code will properly line up
2217 even for path dependent prompts, such as the new ones available
2221 even for path dependent prompts, such as the new ones available
2218 via the prompt_specials.
2222 via the prompt_specials.
2219
2223
2220 2004-06-06 Fernando Perez <fperez@colorado.edu>
2224 2004-06-06 Fernando Perez <fperez@colorado.edu>
2221
2225
2222 * IPython/Prompts.py (prompt_specials): Added the ability to have
2226 * IPython/Prompts.py (prompt_specials): Added the ability to have
2223 bash-like special sequences in the prompts, which get
2227 bash-like special sequences in the prompts, which get
2224 automatically expanded. Things like hostname, current working
2228 automatically expanded. Things like hostname, current working
2225 directory and username are implemented already, but it's easy to
2229 directory and username are implemented already, but it's easy to
2226 add more in the future. Thanks to a patch by W.J. van der Laan
2230 add more in the future. Thanks to a patch by W.J. van der Laan
2227 <gnufnork-AT-hetdigitalegat.nl>
2231 <gnufnork-AT-hetdigitalegat.nl>
2228 (prompt_specials): Added color support for prompt strings, so
2232 (prompt_specials): Added color support for prompt strings, so
2229 users can define arbitrary color setups for their prompts.
2233 users can define arbitrary color setups for their prompts.
2230
2234
2231 2004-06-05 Fernando Perez <fperez@colorado.edu>
2235 2004-06-05 Fernando Perez <fperez@colorado.edu>
2232
2236
2233 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2237 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2234 code to load Gary Bishop's readline and configure it
2238 code to load Gary Bishop's readline and configure it
2235 automatically. Thanks to Gary for help on this.
2239 automatically. Thanks to Gary for help on this.
2236
2240
2237 2004-06-01 Fernando Perez <fperez@colorado.edu>
2241 2004-06-01 Fernando Perez <fperez@colorado.edu>
2238
2242
2239 * IPython/Logger.py (Logger.create_log): fix bug for logging
2243 * IPython/Logger.py (Logger.create_log): fix bug for logging
2240 with no filename (previous fix was incomplete).
2244 with no filename (previous fix was incomplete).
2241
2245
2242 2004-05-25 Fernando Perez <fperez@colorado.edu>
2246 2004-05-25 Fernando Perez <fperez@colorado.edu>
2243
2247
2244 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2248 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2245 parens would get passed to the shell.
2249 parens would get passed to the shell.
2246
2250
2247 2004-05-20 Fernando Perez <fperez@colorado.edu>
2251 2004-05-20 Fernando Perez <fperez@colorado.edu>
2248
2252
2249 * IPython/Magic.py (Magic.magic_prun): changed default profile
2253 * IPython/Magic.py (Magic.magic_prun): changed default profile
2250 sort order to 'time' (the more common profiling need).
2254 sort order to 'time' (the more common profiling need).
2251
2255
2252 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2256 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2253 so that source code shown is guaranteed in sync with the file on
2257 so that source code shown is guaranteed in sync with the file on
2254 disk (also changed in psource). Similar fix to the one for
2258 disk (also changed in psource). Similar fix to the one for
2255 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2259 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2256 <yann.ledu-AT-noos.fr>.
2260 <yann.ledu-AT-noos.fr>.
2257
2261
2258 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2262 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2259 with a single option would not be correctly parsed. Closes
2263 with a single option would not be correctly parsed. Closes
2260 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2264 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2261 introduced in 0.6.0 (on 2004-05-06).
2265 introduced in 0.6.0 (on 2004-05-06).
2262
2266
2263 2004-05-13 *** Released version 0.6.0
2267 2004-05-13 *** Released version 0.6.0
2264
2268
2265 2004-05-13 Fernando Perez <fperez@colorado.edu>
2269 2004-05-13 Fernando Perez <fperez@colorado.edu>
2266
2270
2267 * debian/: Added debian/ directory to CVS, so that debian support
2271 * debian/: Added debian/ directory to CVS, so that debian support
2268 is publicly accessible. The debian package is maintained by Jack
2272 is publicly accessible. The debian package is maintained by Jack
2269 Moffit <jack-AT-xiph.org>.
2273 Moffit <jack-AT-xiph.org>.
2270
2274
2271 * Documentation: included the notes about an ipython-based system
2275 * Documentation: included the notes about an ipython-based system
2272 shell (the hypothetical 'pysh') into the new_design.pdf document,
2276 shell (the hypothetical 'pysh') into the new_design.pdf document,
2273 so that these ideas get distributed to users along with the
2277 so that these ideas get distributed to users along with the
2274 official documentation.
2278 official documentation.
2275
2279
2276 2004-05-10 Fernando Perez <fperez@colorado.edu>
2280 2004-05-10 Fernando Perez <fperez@colorado.edu>
2277
2281
2278 * IPython/Logger.py (Logger.create_log): fix recently introduced
2282 * IPython/Logger.py (Logger.create_log): fix recently introduced
2279 bug (misindented line) where logstart would fail when not given an
2283 bug (misindented line) where logstart would fail when not given an
2280 explicit filename.
2284 explicit filename.
2281
2285
2282 2004-05-09 Fernando Perez <fperez@colorado.edu>
2286 2004-05-09 Fernando Perez <fperez@colorado.edu>
2283
2287
2284 * IPython/Magic.py (Magic.parse_options): skip system call when
2288 * IPython/Magic.py (Magic.parse_options): skip system call when
2285 there are no options to look for. Faster, cleaner for the common
2289 there are no options to look for. Faster, cleaner for the common
2286 case.
2290 case.
2287
2291
2288 * Documentation: many updates to the manual: describing Windows
2292 * Documentation: many updates to the manual: describing Windows
2289 support better, Gnuplot updates, credits, misc small stuff. Also
2293 support better, Gnuplot updates, credits, misc small stuff. Also
2290 updated the new_design doc a bit.
2294 updated the new_design doc a bit.
2291
2295
2292 2004-05-06 *** Released version 0.6.0.rc1
2296 2004-05-06 *** Released version 0.6.0.rc1
2293
2297
2294 2004-05-06 Fernando Perez <fperez@colorado.edu>
2298 2004-05-06 Fernando Perez <fperez@colorado.edu>
2295
2299
2296 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2300 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2297 operations to use the vastly more efficient list/''.join() method.
2301 operations to use the vastly more efficient list/''.join() method.
2298 (FormattedTB.text): Fix
2302 (FormattedTB.text): Fix
2299 http://www.scipy.net/roundup/ipython/issue12 - exception source
2303 http://www.scipy.net/roundup/ipython/issue12 - exception source
2300 extract not updated after reload. Thanks to Mike Salib
2304 extract not updated after reload. Thanks to Mike Salib
2301 <msalib-AT-mit.edu> for pinning the source of the problem.
2305 <msalib-AT-mit.edu> for pinning the source of the problem.
2302 Fortunately, the solution works inside ipython and doesn't require
2306 Fortunately, the solution works inside ipython and doesn't require
2303 any changes to python proper.
2307 any changes to python proper.
2304
2308
2305 * IPython/Magic.py (Magic.parse_options): Improved to process the
2309 * IPython/Magic.py (Magic.parse_options): Improved to process the
2306 argument list as a true shell would (by actually using the
2310 argument list as a true shell would (by actually using the
2307 underlying system shell). This way, all @magics automatically get
2311 underlying system shell). This way, all @magics automatically get
2308 shell expansion for variables. Thanks to a comment by Alex
2312 shell expansion for variables. Thanks to a comment by Alex
2309 Schmolck.
2313 Schmolck.
2310
2314
2311 2004-04-04 Fernando Perez <fperez@colorado.edu>
2315 2004-04-04 Fernando Perez <fperez@colorado.edu>
2312
2316
2313 * IPython/iplib.py (InteractiveShell.interact): Added a special
2317 * IPython/iplib.py (InteractiveShell.interact): Added a special
2314 trap for a debugger quit exception, which is basically impossible
2318 trap for a debugger quit exception, which is basically impossible
2315 to handle by normal mechanisms, given what pdb does to the stack.
2319 to handle by normal mechanisms, given what pdb does to the stack.
2316 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2320 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2317
2321
2318 2004-04-03 Fernando Perez <fperez@colorado.edu>
2322 2004-04-03 Fernando Perez <fperez@colorado.edu>
2319
2323
2320 * IPython/genutils.py (Term): Standardized the names of the Term
2324 * IPython/genutils.py (Term): Standardized the names of the Term
2321 class streams to cin/cout/cerr, following C++ naming conventions
2325 class streams to cin/cout/cerr, following C++ naming conventions
2322 (I can't use in/out/err because 'in' is not a valid attribute
2326 (I can't use in/out/err because 'in' is not a valid attribute
2323 name).
2327 name).
2324
2328
2325 * IPython/iplib.py (InteractiveShell.interact): don't increment
2329 * IPython/iplib.py (InteractiveShell.interact): don't increment
2326 the prompt if there's no user input. By Daniel 'Dang' Griffith
2330 the prompt if there's no user input. By Daniel 'Dang' Griffith
2327 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2331 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2328 Francois Pinard.
2332 Francois Pinard.
2329
2333
2330 2004-04-02 Fernando Perez <fperez@colorado.edu>
2334 2004-04-02 Fernando Perez <fperez@colorado.edu>
2331
2335
2332 * IPython/genutils.py (Stream.__init__): Modified to survive at
2336 * IPython/genutils.py (Stream.__init__): Modified to survive at
2333 least importing in contexts where stdin/out/err aren't true file
2337 least importing in contexts where stdin/out/err aren't true file
2334 objects, such as PyCrust (they lack fileno() and mode). However,
2338 objects, such as PyCrust (they lack fileno() and mode). However,
2335 the recovery facilities which rely on these things existing will
2339 the recovery facilities which rely on these things existing will
2336 not work.
2340 not work.
2337
2341
2338 2004-04-01 Fernando Perez <fperez@colorado.edu>
2342 2004-04-01 Fernando Perez <fperez@colorado.edu>
2339
2343
2340 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2344 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2341 use the new getoutputerror() function, so it properly
2345 use the new getoutputerror() function, so it properly
2342 distinguishes stdout/err.
2346 distinguishes stdout/err.
2343
2347
2344 * IPython/genutils.py (getoutputerror): added a function to
2348 * IPython/genutils.py (getoutputerror): added a function to
2345 capture separately the standard output and error of a command.
2349 capture separately the standard output and error of a command.
2346 After a comment from dang on the mailing lists. This code is
2350 After a comment from dang on the mailing lists. This code is
2347 basically a modified version of commands.getstatusoutput(), from
2351 basically a modified version of commands.getstatusoutput(), from
2348 the standard library.
2352 the standard library.
2349
2353
2350 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2354 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2351 '!!' as a special syntax (shorthand) to access @sx.
2355 '!!' as a special syntax (shorthand) to access @sx.
2352
2356
2353 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2357 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2354 command and return its output as a list split on '\n'.
2358 command and return its output as a list split on '\n'.
2355
2359
2356 2004-03-31 Fernando Perez <fperez@colorado.edu>
2360 2004-03-31 Fernando Perez <fperez@colorado.edu>
2357
2361
2358 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2362 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2359 method to dictionaries used as FakeModule instances if they lack
2363 method to dictionaries used as FakeModule instances if they lack
2360 it. At least pydoc in python2.3 breaks for runtime-defined
2364 it. At least pydoc in python2.3 breaks for runtime-defined
2361 functions without this hack. At some point I need to _really_
2365 functions without this hack. At some point I need to _really_
2362 understand what FakeModule is doing, because it's a gross hack.
2366 understand what FakeModule is doing, because it's a gross hack.
2363 But it solves Arnd's problem for now...
2367 But it solves Arnd's problem for now...
2364
2368
2365 2004-02-27 Fernando Perez <fperez@colorado.edu>
2369 2004-02-27 Fernando Perez <fperez@colorado.edu>
2366
2370
2367 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2371 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2368 mode would behave erratically. Also increased the number of
2372 mode would behave erratically. Also increased the number of
2369 possible logs in rotate mod to 999. Thanks to Rod Holland
2373 possible logs in rotate mod to 999. Thanks to Rod Holland
2370 <rhh@StructureLABS.com> for the report and fixes.
2374 <rhh@StructureLABS.com> for the report and fixes.
2371
2375
2372 2004-02-26 Fernando Perez <fperez@colorado.edu>
2376 2004-02-26 Fernando Perez <fperez@colorado.edu>
2373
2377
2374 * IPython/genutils.py (page): Check that the curses module really
2378 * IPython/genutils.py (page): Check that the curses module really
2375 has the initscr attribute before trying to use it. For some
2379 has the initscr attribute before trying to use it. For some
2376 reason, the Solaris curses module is missing this. I think this
2380 reason, the Solaris curses module is missing this. I think this
2377 should be considered a Solaris python bug, but I'm not sure.
2381 should be considered a Solaris python bug, but I'm not sure.
2378
2382
2379 2004-01-17 Fernando Perez <fperez@colorado.edu>
2383 2004-01-17 Fernando Perez <fperez@colorado.edu>
2380
2384
2381 * IPython/genutils.py (Stream.__init__): Changes to try to make
2385 * IPython/genutils.py (Stream.__init__): Changes to try to make
2382 ipython robust against stdin/out/err being closed by the user.
2386 ipython robust against stdin/out/err being closed by the user.
2383 This is 'user error' (and blocks a normal python session, at least
2387 This is 'user error' (and blocks a normal python session, at least
2384 the stdout case). However, Ipython should be able to survive such
2388 the stdout case). However, Ipython should be able to survive such
2385 instances of abuse as gracefully as possible. To simplify the
2389 instances of abuse as gracefully as possible. To simplify the
2386 coding and maintain compatibility with Gary Bishop's Term
2390 coding and maintain compatibility with Gary Bishop's Term
2387 contributions, I've made use of classmethods for this. I think
2391 contributions, I've made use of classmethods for this. I think
2388 this introduces a dependency on python 2.2.
2392 this introduces a dependency on python 2.2.
2389
2393
2390 2004-01-13 Fernando Perez <fperez@colorado.edu>
2394 2004-01-13 Fernando Perez <fperez@colorado.edu>
2391
2395
2392 * IPython/numutils.py (exp_safe): simplified the code a bit and
2396 * IPython/numutils.py (exp_safe): simplified the code a bit and
2393 removed the need for importing the kinds module altogether.
2397 removed the need for importing the kinds module altogether.
2394
2398
2395 2004-01-06 Fernando Perez <fperez@colorado.edu>
2399 2004-01-06 Fernando Perez <fperez@colorado.edu>
2396
2400
2397 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2401 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2398 a magic function instead, after some community feedback. No
2402 a magic function instead, after some community feedback. No
2399 special syntax will exist for it, but its name is deliberately
2403 special syntax will exist for it, but its name is deliberately
2400 very short.
2404 very short.
2401
2405
2402 2003-12-20 Fernando Perez <fperez@colorado.edu>
2406 2003-12-20 Fernando Perez <fperez@colorado.edu>
2403
2407
2404 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2408 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2405 new functionality, to automagically assign the result of a shell
2409 new functionality, to automagically assign the result of a shell
2406 command to a variable. I'll solicit some community feedback on
2410 command to a variable. I'll solicit some community feedback on
2407 this before making it permanent.
2411 this before making it permanent.
2408
2412
2409 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2413 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2410 requested about callables for which inspect couldn't obtain a
2414 requested about callables for which inspect couldn't obtain a
2411 proper argspec. Thanks to a crash report sent by Etienne
2415 proper argspec. Thanks to a crash report sent by Etienne
2412 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2416 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2413
2417
2414 2003-12-09 Fernando Perez <fperez@colorado.edu>
2418 2003-12-09 Fernando Perez <fperez@colorado.edu>
2415
2419
2416 * IPython/genutils.py (page): patch for the pager to work across
2420 * IPython/genutils.py (page): patch for the pager to work across
2417 various versions of Windows. By Gary Bishop.
2421 various versions of Windows. By Gary Bishop.
2418
2422
2419 2003-12-04 Fernando Perez <fperez@colorado.edu>
2423 2003-12-04 Fernando Perez <fperez@colorado.edu>
2420
2424
2421 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2425 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2422 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2426 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2423 While I tested this and it looks ok, there may still be corner
2427 While I tested this and it looks ok, there may still be corner
2424 cases I've missed.
2428 cases I've missed.
2425
2429
2426 2003-12-01 Fernando Perez <fperez@colorado.edu>
2430 2003-12-01 Fernando Perez <fperez@colorado.edu>
2427
2431
2428 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2432 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2429 where a line like 'p,q=1,2' would fail because the automagic
2433 where a line like 'p,q=1,2' would fail because the automagic
2430 system would be triggered for @p.
2434 system would be triggered for @p.
2431
2435
2432 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2436 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2433 cleanups, code unmodified.
2437 cleanups, code unmodified.
2434
2438
2435 * IPython/genutils.py (Term): added a class for IPython to handle
2439 * IPython/genutils.py (Term): added a class for IPython to handle
2436 output. In most cases it will just be a proxy for stdout/err, but
2440 output. In most cases it will just be a proxy for stdout/err, but
2437 having this allows modifications to be made for some platforms,
2441 having this allows modifications to be made for some platforms,
2438 such as handling color escapes under Windows. All of this code
2442 such as handling color escapes under Windows. All of this code
2439 was contributed by Gary Bishop, with minor modifications by me.
2443 was contributed by Gary Bishop, with minor modifications by me.
2440 The actual changes affect many files.
2444 The actual changes affect many files.
2441
2445
2442 2003-11-30 Fernando Perez <fperez@colorado.edu>
2446 2003-11-30 Fernando Perez <fperez@colorado.edu>
2443
2447
2444 * IPython/iplib.py (file_matches): new completion code, courtesy
2448 * IPython/iplib.py (file_matches): new completion code, courtesy
2445 of Jeff Collins. This enables filename completion again under
2449 of Jeff Collins. This enables filename completion again under
2446 python 2.3, which disabled it at the C level.
2450 python 2.3, which disabled it at the C level.
2447
2451
2448 2003-11-11 Fernando Perez <fperez@colorado.edu>
2452 2003-11-11 Fernando Perez <fperez@colorado.edu>
2449
2453
2450 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2454 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2451 for Numeric.array(map(...)), but often convenient.
2455 for Numeric.array(map(...)), but often convenient.
2452
2456
2453 2003-11-05 Fernando Perez <fperez@colorado.edu>
2457 2003-11-05 Fernando Perez <fperez@colorado.edu>
2454
2458
2455 * IPython/numutils.py (frange): Changed a call from int() to
2459 * IPython/numutils.py (frange): Changed a call from int() to
2456 int(round()) to prevent a problem reported with arange() in the
2460 int(round()) to prevent a problem reported with arange() in the
2457 numpy list.
2461 numpy list.
2458
2462
2459 2003-10-06 Fernando Perez <fperez@colorado.edu>
2463 2003-10-06 Fernando Perez <fperez@colorado.edu>
2460
2464
2461 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2465 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2462 prevent crashes if sys lacks an argv attribute (it happens with
2466 prevent crashes if sys lacks an argv attribute (it happens with
2463 embedded interpreters which build a bare-bones sys module).
2467 embedded interpreters which build a bare-bones sys module).
2464 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2468 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2465
2469
2466 2003-09-24 Fernando Perez <fperez@colorado.edu>
2470 2003-09-24 Fernando Perez <fperez@colorado.edu>
2467
2471
2468 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2472 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2469 to protect against poorly written user objects where __getattr__
2473 to protect against poorly written user objects where __getattr__
2470 raises exceptions other than AttributeError. Thanks to a bug
2474 raises exceptions other than AttributeError. Thanks to a bug
2471 report by Oliver Sander <osander-AT-gmx.de>.
2475 report by Oliver Sander <osander-AT-gmx.de>.
2472
2476
2473 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2477 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2474 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2478 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2475
2479
2476 2003-09-09 Fernando Perez <fperez@colorado.edu>
2480 2003-09-09 Fernando Perez <fperez@colorado.edu>
2477
2481
2478 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2482 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2479 unpacking a list whith a callable as first element would
2483 unpacking a list whith a callable as first element would
2480 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2484 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2481 Collins.
2485 Collins.
2482
2486
2483 2003-08-25 *** Released version 0.5.0
2487 2003-08-25 *** Released version 0.5.0
2484
2488
2485 2003-08-22 Fernando Perez <fperez@colorado.edu>
2489 2003-08-22 Fernando Perez <fperez@colorado.edu>
2486
2490
2487 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2491 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2488 improperly defined user exceptions. Thanks to feedback from Mark
2492 improperly defined user exceptions. Thanks to feedback from Mark
2489 Russell <mrussell-AT-verio.net>.
2493 Russell <mrussell-AT-verio.net>.
2490
2494
2491 2003-08-20 Fernando Perez <fperez@colorado.edu>
2495 2003-08-20 Fernando Perez <fperez@colorado.edu>
2492
2496
2493 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2497 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2494 printing so that it would print multi-line string forms starting
2498 printing so that it would print multi-line string forms starting
2495 with a new line. This way the formatting is better respected for
2499 with a new line. This way the formatting is better respected for
2496 objects which work hard to make nice string forms.
2500 objects which work hard to make nice string forms.
2497
2501
2498 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2502 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2499 autocall would overtake data access for objects with both
2503 autocall would overtake data access for objects with both
2500 __getitem__ and __call__.
2504 __getitem__ and __call__.
2501
2505
2502 2003-08-19 *** Released version 0.5.0-rc1
2506 2003-08-19 *** Released version 0.5.0-rc1
2503
2507
2504 2003-08-19 Fernando Perez <fperez@colorado.edu>
2508 2003-08-19 Fernando Perez <fperez@colorado.edu>
2505
2509
2506 * IPython/deep_reload.py (load_tail): single tiny change here
2510 * IPython/deep_reload.py (load_tail): single tiny change here
2507 seems to fix the long-standing bug of dreload() failing to work
2511 seems to fix the long-standing bug of dreload() failing to work
2508 for dotted names. But this module is pretty tricky, so I may have
2512 for dotted names. But this module is pretty tricky, so I may have
2509 missed some subtlety. Needs more testing!.
2513 missed some subtlety. Needs more testing!.
2510
2514
2511 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2515 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2512 exceptions which have badly implemented __str__ methods.
2516 exceptions which have badly implemented __str__ methods.
2513 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2517 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2514 which I've been getting reports about from Python 2.3 users. I
2518 which I've been getting reports about from Python 2.3 users. I
2515 wish I had a simple test case to reproduce the problem, so I could
2519 wish I had a simple test case to reproduce the problem, so I could
2516 either write a cleaner workaround or file a bug report if
2520 either write a cleaner workaround or file a bug report if
2517 necessary.
2521 necessary.
2518
2522
2519 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2523 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2520 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2524 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2521 a bug report by Tjabo Kloppenburg.
2525 a bug report by Tjabo Kloppenburg.
2522
2526
2523 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2527 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2524 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2528 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2525 seems rather unstable. Thanks to a bug report by Tjabo
2529 seems rather unstable. Thanks to a bug report by Tjabo
2526 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2530 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2527
2531
2528 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2532 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2529 this out soon because of the critical fixes in the inner loop for
2533 this out soon because of the critical fixes in the inner loop for
2530 generators.
2534 generators.
2531
2535
2532 * IPython/Magic.py (Magic.getargspec): removed. This (and
2536 * IPython/Magic.py (Magic.getargspec): removed. This (and
2533 _get_def) have been obsoleted by OInspect for a long time, I
2537 _get_def) have been obsoleted by OInspect for a long time, I
2534 hadn't noticed that they were dead code.
2538 hadn't noticed that they were dead code.
2535 (Magic._ofind): restored _ofind functionality for a few literals
2539 (Magic._ofind): restored _ofind functionality for a few literals
2536 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2540 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2537 for things like "hello".capitalize?, since that would require a
2541 for things like "hello".capitalize?, since that would require a
2538 potentially dangerous eval() again.
2542 potentially dangerous eval() again.
2539
2543
2540 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2544 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2541 logic a bit more to clean up the escapes handling and minimize the
2545 logic a bit more to clean up the escapes handling and minimize the
2542 use of _ofind to only necessary cases. The interactive 'feel' of
2546 use of _ofind to only necessary cases. The interactive 'feel' of
2543 IPython should have improved quite a bit with the changes in
2547 IPython should have improved quite a bit with the changes in
2544 _prefilter and _ofind (besides being far safer than before).
2548 _prefilter and _ofind (besides being far safer than before).
2545
2549
2546 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2550 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2547 obscure, never reported). Edit would fail to find the object to
2551 obscure, never reported). Edit would fail to find the object to
2548 edit under some circumstances.
2552 edit under some circumstances.
2549 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2553 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2550 which were causing double-calling of generators. Those eval calls
2554 which were causing double-calling of generators. Those eval calls
2551 were _very_ dangerous, since code with side effects could be
2555 were _very_ dangerous, since code with side effects could be
2552 triggered. As they say, 'eval is evil'... These were the
2556 triggered. As they say, 'eval is evil'... These were the
2553 nastiest evals in IPython. Besides, _ofind is now far simpler,
2557 nastiest evals in IPython. Besides, _ofind is now far simpler,
2554 and it should also be quite a bit faster. Its use of inspect is
2558 and it should also be quite a bit faster. Its use of inspect is
2555 also safer, so perhaps some of the inspect-related crashes I've
2559 also safer, so perhaps some of the inspect-related crashes I've
2556 seen lately with Python 2.3 might be taken care of. That will
2560 seen lately with Python 2.3 might be taken care of. That will
2557 need more testing.
2561 need more testing.
2558
2562
2559 2003-08-17 Fernando Perez <fperez@colorado.edu>
2563 2003-08-17 Fernando Perez <fperez@colorado.edu>
2560
2564
2561 * IPython/iplib.py (InteractiveShell._prefilter): significant
2565 * IPython/iplib.py (InteractiveShell._prefilter): significant
2562 simplifications to the logic for handling user escapes. Faster
2566 simplifications to the logic for handling user escapes. Faster
2563 and simpler code.
2567 and simpler code.
2564
2568
2565 2003-08-14 Fernando Perez <fperez@colorado.edu>
2569 2003-08-14 Fernando Perez <fperez@colorado.edu>
2566
2570
2567 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2571 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2568 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2572 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2569 but it should be quite a bit faster. And the recursive version
2573 but it should be quite a bit faster. And the recursive version
2570 generated O(log N) intermediate storage for all rank>1 arrays,
2574 generated O(log N) intermediate storage for all rank>1 arrays,
2571 even if they were contiguous.
2575 even if they were contiguous.
2572 (l1norm): Added this function.
2576 (l1norm): Added this function.
2573 (norm): Added this function for arbitrary norms (including
2577 (norm): Added this function for arbitrary norms (including
2574 l-infinity). l1 and l2 are still special cases for convenience
2578 l-infinity). l1 and l2 are still special cases for convenience
2575 and speed.
2579 and speed.
2576
2580
2577 2003-08-03 Fernando Perez <fperez@colorado.edu>
2581 2003-08-03 Fernando Perez <fperez@colorado.edu>
2578
2582
2579 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2583 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2580 exceptions, which now raise PendingDeprecationWarnings in Python
2584 exceptions, which now raise PendingDeprecationWarnings in Python
2581 2.3. There were some in Magic and some in Gnuplot2.
2585 2.3. There were some in Magic and some in Gnuplot2.
2582
2586
2583 2003-06-30 Fernando Perez <fperez@colorado.edu>
2587 2003-06-30 Fernando Perez <fperez@colorado.edu>
2584
2588
2585 * IPython/genutils.py (page): modified to call curses only for
2589 * IPython/genutils.py (page): modified to call curses only for
2586 terminals where TERM=='xterm'. After problems under many other
2590 terminals where TERM=='xterm'. After problems under many other
2587 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2591 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2588
2592
2589 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2593 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2590 would be triggered when readline was absent. This was just an old
2594 would be triggered when readline was absent. This was just an old
2591 debugging statement I'd forgotten to take out.
2595 debugging statement I'd forgotten to take out.
2592
2596
2593 2003-06-20 Fernando Perez <fperez@colorado.edu>
2597 2003-06-20 Fernando Perez <fperez@colorado.edu>
2594
2598
2595 * IPython/genutils.py (clock): modified to return only user time
2599 * IPython/genutils.py (clock): modified to return only user time
2596 (not counting system time), after a discussion on scipy. While
2600 (not counting system time), after a discussion on scipy. While
2597 system time may be a useful quantity occasionally, it may much
2601 system time may be a useful quantity occasionally, it may much
2598 more easily be skewed by occasional swapping or other similar
2602 more easily be skewed by occasional swapping or other similar
2599 activity.
2603 activity.
2600
2604
2601 2003-06-05 Fernando Perez <fperez@colorado.edu>
2605 2003-06-05 Fernando Perez <fperez@colorado.edu>
2602
2606
2603 * IPython/numutils.py (identity): new function, for building
2607 * IPython/numutils.py (identity): new function, for building
2604 arbitrary rank Kronecker deltas (mostly backwards compatible with
2608 arbitrary rank Kronecker deltas (mostly backwards compatible with
2605 Numeric.identity)
2609 Numeric.identity)
2606
2610
2607 2003-06-03 Fernando Perez <fperez@colorado.edu>
2611 2003-06-03 Fernando Perez <fperez@colorado.edu>
2608
2612
2609 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2613 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2610 arguments passed to magics with spaces, to allow trailing '\' to
2614 arguments passed to magics with spaces, to allow trailing '\' to
2611 work normally (mainly for Windows users).
2615 work normally (mainly for Windows users).
2612
2616
2613 2003-05-29 Fernando Perez <fperez@colorado.edu>
2617 2003-05-29 Fernando Perez <fperez@colorado.edu>
2614
2618
2615 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2619 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2616 instead of pydoc.help. This fixes a bizarre behavior where
2620 instead of pydoc.help. This fixes a bizarre behavior where
2617 printing '%s' % locals() would trigger the help system. Now
2621 printing '%s' % locals() would trigger the help system. Now
2618 ipython behaves like normal python does.
2622 ipython behaves like normal python does.
2619
2623
2620 Note that if one does 'from pydoc import help', the bizarre
2624 Note that if one does 'from pydoc import help', the bizarre
2621 behavior returns, but this will also happen in normal python, so
2625 behavior returns, but this will also happen in normal python, so
2622 it's not an ipython bug anymore (it has to do with how pydoc.help
2626 it's not an ipython bug anymore (it has to do with how pydoc.help
2623 is implemented).
2627 is implemented).
2624
2628
2625 2003-05-22 Fernando Perez <fperez@colorado.edu>
2629 2003-05-22 Fernando Perez <fperez@colorado.edu>
2626
2630
2627 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2631 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2628 return [] instead of None when nothing matches, also match to end
2632 return [] instead of None when nothing matches, also match to end
2629 of line. Patch by Gary Bishop.
2633 of line. Patch by Gary Bishop.
2630
2634
2631 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2635 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2632 protection as before, for files passed on the command line. This
2636 protection as before, for files passed on the command line. This
2633 prevents the CrashHandler from kicking in if user files call into
2637 prevents the CrashHandler from kicking in if user files call into
2634 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2638 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2635 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2639 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2636
2640
2637 2003-05-20 *** Released version 0.4.0
2641 2003-05-20 *** Released version 0.4.0
2638
2642
2639 2003-05-20 Fernando Perez <fperez@colorado.edu>
2643 2003-05-20 Fernando Perez <fperez@colorado.edu>
2640
2644
2641 * setup.py: added support for manpages. It's a bit hackish b/c of
2645 * setup.py: added support for manpages. It's a bit hackish b/c of
2642 a bug in the way the bdist_rpm distutils target handles gzipped
2646 a bug in the way the bdist_rpm distutils target handles gzipped
2643 manpages, but it works. After a patch by Jack.
2647 manpages, but it works. After a patch by Jack.
2644
2648
2645 2003-05-19 Fernando Perez <fperez@colorado.edu>
2649 2003-05-19 Fernando Perez <fperez@colorado.edu>
2646
2650
2647 * IPython/numutils.py: added a mockup of the kinds module, since
2651 * IPython/numutils.py: added a mockup of the kinds module, since
2648 it was recently removed from Numeric. This way, numutils will
2652 it was recently removed from Numeric. This way, numutils will
2649 work for all users even if they are missing kinds.
2653 work for all users even if they are missing kinds.
2650
2654
2651 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2655 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2652 failure, which can occur with SWIG-wrapped extensions. After a
2656 failure, which can occur with SWIG-wrapped extensions. After a
2653 crash report from Prabhu.
2657 crash report from Prabhu.
2654
2658
2655 2003-05-16 Fernando Perez <fperez@colorado.edu>
2659 2003-05-16 Fernando Perez <fperez@colorado.edu>
2656
2660
2657 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2661 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2658 protect ipython from user code which may call directly
2662 protect ipython from user code which may call directly
2659 sys.excepthook (this looks like an ipython crash to the user, even
2663 sys.excepthook (this looks like an ipython crash to the user, even
2660 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2664 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2661 This is especially important to help users of WxWindows, but may
2665 This is especially important to help users of WxWindows, but may
2662 also be useful in other cases.
2666 also be useful in other cases.
2663
2667
2664 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2668 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2665 an optional tb_offset to be specified, and to preserve exception
2669 an optional tb_offset to be specified, and to preserve exception
2666 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2670 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2667
2671
2668 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2672 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2669
2673
2670 2003-05-15 Fernando Perez <fperez@colorado.edu>
2674 2003-05-15 Fernando Perez <fperez@colorado.edu>
2671
2675
2672 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2676 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2673 installing for a new user under Windows.
2677 installing for a new user under Windows.
2674
2678
2675 2003-05-12 Fernando Perez <fperez@colorado.edu>
2679 2003-05-12 Fernando Perez <fperez@colorado.edu>
2676
2680
2677 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2681 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2678 handler for Emacs comint-based lines. Currently it doesn't do
2682 handler for Emacs comint-based lines. Currently it doesn't do
2679 much (but importantly, it doesn't update the history cache). In
2683 much (but importantly, it doesn't update the history cache). In
2680 the future it may be expanded if Alex needs more functionality
2684 the future it may be expanded if Alex needs more functionality
2681 there.
2685 there.
2682
2686
2683 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2687 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2684 info to crash reports.
2688 info to crash reports.
2685
2689
2686 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2690 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2687 just like Python's -c. Also fixed crash with invalid -color
2691 just like Python's -c. Also fixed crash with invalid -color
2688 option value at startup. Thanks to Will French
2692 option value at startup. Thanks to Will French
2689 <wfrench-AT-bestweb.net> for the bug report.
2693 <wfrench-AT-bestweb.net> for the bug report.
2690
2694
2691 2003-05-09 Fernando Perez <fperez@colorado.edu>
2695 2003-05-09 Fernando Perez <fperez@colorado.edu>
2692
2696
2693 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2697 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2694 to EvalDict (it's a mapping, after all) and simplified its code
2698 to EvalDict (it's a mapping, after all) and simplified its code
2695 quite a bit, after a nice discussion on c.l.py where Gustavo
2699 quite a bit, after a nice discussion on c.l.py where Gustavo
2696 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2700 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2697
2701
2698 2003-04-30 Fernando Perez <fperez@colorado.edu>
2702 2003-04-30 Fernando Perez <fperez@colorado.edu>
2699
2703
2700 * IPython/genutils.py (timings_out): modified it to reduce its
2704 * IPython/genutils.py (timings_out): modified it to reduce its
2701 overhead in the common reps==1 case.
2705 overhead in the common reps==1 case.
2702
2706
2703 2003-04-29 Fernando Perez <fperez@colorado.edu>
2707 2003-04-29 Fernando Perez <fperez@colorado.edu>
2704
2708
2705 * IPython/genutils.py (timings_out): Modified to use the resource
2709 * IPython/genutils.py (timings_out): Modified to use the resource
2706 module, which avoids the wraparound problems of time.clock().
2710 module, which avoids the wraparound problems of time.clock().
2707
2711
2708 2003-04-17 *** Released version 0.2.15pre4
2712 2003-04-17 *** Released version 0.2.15pre4
2709
2713
2710 2003-04-17 Fernando Perez <fperez@colorado.edu>
2714 2003-04-17 Fernando Perez <fperez@colorado.edu>
2711
2715
2712 * setup.py (scriptfiles): Split windows-specific stuff over to a
2716 * setup.py (scriptfiles): Split windows-specific stuff over to a
2713 separate file, in an attempt to have a Windows GUI installer.
2717 separate file, in an attempt to have a Windows GUI installer.
2714 That didn't work, but part of the groundwork is done.
2718 That didn't work, but part of the groundwork is done.
2715
2719
2716 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2720 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2717 indent/unindent with 4 spaces. Particularly useful in combination
2721 indent/unindent with 4 spaces. Particularly useful in combination
2718 with the new auto-indent option.
2722 with the new auto-indent option.
2719
2723
2720 2003-04-16 Fernando Perez <fperez@colorado.edu>
2724 2003-04-16 Fernando Perez <fperez@colorado.edu>
2721
2725
2722 * IPython/Magic.py: various replacements of self.rc for
2726 * IPython/Magic.py: various replacements of self.rc for
2723 self.shell.rc. A lot more remains to be done to fully disentangle
2727 self.shell.rc. A lot more remains to be done to fully disentangle
2724 this class from the main Shell class.
2728 this class from the main Shell class.
2725
2729
2726 * IPython/GnuplotRuntime.py: added checks for mouse support so
2730 * IPython/GnuplotRuntime.py: added checks for mouse support so
2727 that we don't try to enable it if the current gnuplot doesn't
2731 that we don't try to enable it if the current gnuplot doesn't
2728 really support it. Also added checks so that we don't try to
2732 really support it. Also added checks so that we don't try to
2729 enable persist under Windows (where Gnuplot doesn't recognize the
2733 enable persist under Windows (where Gnuplot doesn't recognize the
2730 option).
2734 option).
2731
2735
2732 * IPython/iplib.py (InteractiveShell.interact): Added optional
2736 * IPython/iplib.py (InteractiveShell.interact): Added optional
2733 auto-indenting code, after a patch by King C. Shu
2737 auto-indenting code, after a patch by King C. Shu
2734 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2738 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2735 get along well with pasting indented code. If I ever figure out
2739 get along well with pasting indented code. If I ever figure out
2736 how to make that part go well, it will become on by default.
2740 how to make that part go well, it will become on by default.
2737
2741
2738 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2742 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2739 crash ipython if there was an unmatched '%' in the user's prompt
2743 crash ipython if there was an unmatched '%' in the user's prompt
2740 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2744 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2741
2745
2742 * IPython/iplib.py (InteractiveShell.interact): removed the
2746 * IPython/iplib.py (InteractiveShell.interact): removed the
2743 ability to ask the user whether he wants to crash or not at the
2747 ability to ask the user whether he wants to crash or not at the
2744 'last line' exception handler. Calling functions at that point
2748 'last line' exception handler. Calling functions at that point
2745 changes the stack, and the error reports would have incorrect
2749 changes the stack, and the error reports would have incorrect
2746 tracebacks.
2750 tracebacks.
2747
2751
2748 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2752 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2749 pass through a peger a pretty-printed form of any object. After a
2753 pass through a peger a pretty-printed form of any object. After a
2750 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2754 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2751
2755
2752 2003-04-14 Fernando Perez <fperez@colorado.edu>
2756 2003-04-14 Fernando Perez <fperez@colorado.edu>
2753
2757
2754 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2758 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2755 all files in ~ would be modified at first install (instead of
2759 all files in ~ would be modified at first install (instead of
2756 ~/.ipython). This could be potentially disastrous, as the
2760 ~/.ipython). This could be potentially disastrous, as the
2757 modification (make line-endings native) could damage binary files.
2761 modification (make line-endings native) could damage binary files.
2758
2762
2759 2003-04-10 Fernando Perez <fperez@colorado.edu>
2763 2003-04-10 Fernando Perez <fperez@colorado.edu>
2760
2764
2761 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2765 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2762 handle only lines which are invalid python. This now means that
2766 handle only lines which are invalid python. This now means that
2763 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2767 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2764 for the bug report.
2768 for the bug report.
2765
2769
2766 2003-04-01 Fernando Perez <fperez@colorado.edu>
2770 2003-04-01 Fernando Perez <fperez@colorado.edu>
2767
2771
2768 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2772 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2769 where failing to set sys.last_traceback would crash pdb.pm().
2773 where failing to set sys.last_traceback would crash pdb.pm().
2770 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2774 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2771 report.
2775 report.
2772
2776
2773 2003-03-25 Fernando Perez <fperez@colorado.edu>
2777 2003-03-25 Fernando Perez <fperez@colorado.edu>
2774
2778
2775 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2779 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2776 before printing it (it had a lot of spurious blank lines at the
2780 before printing it (it had a lot of spurious blank lines at the
2777 end).
2781 end).
2778
2782
2779 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2783 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2780 output would be sent 21 times! Obviously people don't use this
2784 output would be sent 21 times! Obviously people don't use this
2781 too often, or I would have heard about it.
2785 too often, or I would have heard about it.
2782
2786
2783 2003-03-24 Fernando Perez <fperez@colorado.edu>
2787 2003-03-24 Fernando Perez <fperez@colorado.edu>
2784
2788
2785 * setup.py (scriptfiles): renamed the data_files parameter from
2789 * setup.py (scriptfiles): renamed the data_files parameter from
2786 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2790 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2787 for the patch.
2791 for the patch.
2788
2792
2789 2003-03-20 Fernando Perez <fperez@colorado.edu>
2793 2003-03-20 Fernando Perez <fperez@colorado.edu>
2790
2794
2791 * IPython/genutils.py (error): added error() and fatal()
2795 * IPython/genutils.py (error): added error() and fatal()
2792 functions.
2796 functions.
2793
2797
2794 2003-03-18 *** Released version 0.2.15pre3
2798 2003-03-18 *** Released version 0.2.15pre3
2795
2799
2796 2003-03-18 Fernando Perez <fperez@colorado.edu>
2800 2003-03-18 Fernando Perez <fperez@colorado.edu>
2797
2801
2798 * setupext/install_data_ext.py
2802 * setupext/install_data_ext.py
2799 (install_data_ext.initialize_options): Class contributed by Jack
2803 (install_data_ext.initialize_options): Class contributed by Jack
2800 Moffit for fixing the old distutils hack. He is sending this to
2804 Moffit for fixing the old distutils hack. He is sending this to
2801 the distutils folks so in the future we may not need it as a
2805 the distutils folks so in the future we may not need it as a
2802 private fix.
2806 private fix.
2803
2807
2804 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2808 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2805 changes for Debian packaging. See his patch for full details.
2809 changes for Debian packaging. See his patch for full details.
2806 The old distutils hack of making the ipythonrc* files carry a
2810 The old distutils hack of making the ipythonrc* files carry a
2807 bogus .py extension is gone, at last. Examples were moved to a
2811 bogus .py extension is gone, at last. Examples were moved to a
2808 separate subdir under doc/, and the separate executable scripts
2812 separate subdir under doc/, and the separate executable scripts
2809 now live in their own directory. Overall a great cleanup. The
2813 now live in their own directory. Overall a great cleanup. The
2810 manual was updated to use the new files, and setup.py has been
2814 manual was updated to use the new files, and setup.py has been
2811 fixed for this setup.
2815 fixed for this setup.
2812
2816
2813 * IPython/PyColorize.py (Parser.usage): made non-executable and
2817 * IPython/PyColorize.py (Parser.usage): made non-executable and
2814 created a pycolor wrapper around it to be included as a script.
2818 created a pycolor wrapper around it to be included as a script.
2815
2819
2816 2003-03-12 *** Released version 0.2.15pre2
2820 2003-03-12 *** Released version 0.2.15pre2
2817
2821
2818 2003-03-12 Fernando Perez <fperez@colorado.edu>
2822 2003-03-12 Fernando Perez <fperez@colorado.edu>
2819
2823
2820 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2824 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2821 long-standing problem with garbage characters in some terminals.
2825 long-standing problem with garbage characters in some terminals.
2822 The issue was really that the \001 and \002 escapes must _only_ be
2826 The issue was really that the \001 and \002 escapes must _only_ be
2823 passed to input prompts (which call readline), but _never_ to
2827 passed to input prompts (which call readline), but _never_ to
2824 normal text to be printed on screen. I changed ColorANSI to have
2828 normal text to be printed on screen. I changed ColorANSI to have
2825 two classes: TermColors and InputTermColors, each with the
2829 two classes: TermColors and InputTermColors, each with the
2826 appropriate escapes for input prompts or normal text. The code in
2830 appropriate escapes for input prompts or normal text. The code in
2827 Prompts.py got slightly more complicated, but this very old and
2831 Prompts.py got slightly more complicated, but this very old and
2828 annoying bug is finally fixed.
2832 annoying bug is finally fixed.
2829
2833
2830 All the credit for nailing down the real origin of this problem
2834 All the credit for nailing down the real origin of this problem
2831 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2835 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2832 *Many* thanks to him for spending quite a bit of effort on this.
2836 *Many* thanks to him for spending quite a bit of effort on this.
2833
2837
2834 2003-03-05 *** Released version 0.2.15pre1
2838 2003-03-05 *** Released version 0.2.15pre1
2835
2839
2836 2003-03-03 Fernando Perez <fperez@colorado.edu>
2840 2003-03-03 Fernando Perez <fperez@colorado.edu>
2837
2841
2838 * IPython/FakeModule.py: Moved the former _FakeModule to a
2842 * IPython/FakeModule.py: Moved the former _FakeModule to a
2839 separate file, because it's also needed by Magic (to fix a similar
2843 separate file, because it's also needed by Magic (to fix a similar
2840 pickle-related issue in @run).
2844 pickle-related issue in @run).
2841
2845
2842 2003-03-02 Fernando Perez <fperez@colorado.edu>
2846 2003-03-02 Fernando Perez <fperez@colorado.edu>
2843
2847
2844 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2848 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2845 the autocall option at runtime.
2849 the autocall option at runtime.
2846 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2850 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2847 across Magic.py to start separating Magic from InteractiveShell.
2851 across Magic.py to start separating Magic from InteractiveShell.
2848 (Magic._ofind): Fixed to return proper namespace for dotted
2852 (Magic._ofind): Fixed to return proper namespace for dotted
2849 names. Before, a dotted name would always return 'not currently
2853 names. Before, a dotted name would always return 'not currently
2850 defined', because it would find the 'parent'. s.x would be found,
2854 defined', because it would find the 'parent'. s.x would be found,
2851 but since 'x' isn't defined by itself, it would get confused.
2855 but since 'x' isn't defined by itself, it would get confused.
2852 (Magic.magic_run): Fixed pickling problems reported by Ralf
2856 (Magic.magic_run): Fixed pickling problems reported by Ralf
2853 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2857 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2854 that I'd used when Mike Heeter reported similar issues at the
2858 that I'd used when Mike Heeter reported similar issues at the
2855 top-level, but now for @run. It boils down to injecting the
2859 top-level, but now for @run. It boils down to injecting the
2856 namespace where code is being executed with something that looks
2860 namespace where code is being executed with something that looks
2857 enough like a module to fool pickle.dump(). Since a pickle stores
2861 enough like a module to fool pickle.dump(). Since a pickle stores
2858 a named reference to the importing module, we need this for
2862 a named reference to the importing module, we need this for
2859 pickles to save something sensible.
2863 pickles to save something sensible.
2860
2864
2861 * IPython/ipmaker.py (make_IPython): added an autocall option.
2865 * IPython/ipmaker.py (make_IPython): added an autocall option.
2862
2866
2863 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2867 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2864 the auto-eval code. Now autocalling is an option, and the code is
2868 the auto-eval code. Now autocalling is an option, and the code is
2865 also vastly safer. There is no more eval() involved at all.
2869 also vastly safer. There is no more eval() involved at all.
2866
2870
2867 2003-03-01 Fernando Perez <fperez@colorado.edu>
2871 2003-03-01 Fernando Perez <fperez@colorado.edu>
2868
2872
2869 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2873 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2870 dict with named keys instead of a tuple.
2874 dict with named keys instead of a tuple.
2871
2875
2872 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2876 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2873
2877
2874 * setup.py (make_shortcut): Fixed message about directories
2878 * setup.py (make_shortcut): Fixed message about directories
2875 created during Windows installation (the directories were ok, just
2879 created during Windows installation (the directories were ok, just
2876 the printed message was misleading). Thanks to Chris Liechti
2880 the printed message was misleading). Thanks to Chris Liechti
2877 <cliechti-AT-gmx.net> for the heads up.
2881 <cliechti-AT-gmx.net> for the heads up.
2878
2882
2879 2003-02-21 Fernando Perez <fperez@colorado.edu>
2883 2003-02-21 Fernando Perez <fperez@colorado.edu>
2880
2884
2881 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2885 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2882 of ValueError exception when checking for auto-execution. This
2886 of ValueError exception when checking for auto-execution. This
2883 one is raised by things like Numeric arrays arr.flat when the
2887 one is raised by things like Numeric arrays arr.flat when the
2884 array is non-contiguous.
2888 array is non-contiguous.
2885
2889
2886 2003-01-31 Fernando Perez <fperez@colorado.edu>
2890 2003-01-31 Fernando Perez <fperez@colorado.edu>
2887
2891
2888 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2892 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2889 not return any value at all (even though the command would get
2893 not return any value at all (even though the command would get
2890 executed).
2894 executed).
2891 (xsys): Flush stdout right after printing the command to ensure
2895 (xsys): Flush stdout right after printing the command to ensure
2892 proper ordering of commands and command output in the total
2896 proper ordering of commands and command output in the total
2893 output.
2897 output.
2894 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2898 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2895 system/getoutput as defaults. The old ones are kept for
2899 system/getoutput as defaults. The old ones are kept for
2896 compatibility reasons, so no code which uses this library needs
2900 compatibility reasons, so no code which uses this library needs
2897 changing.
2901 changing.
2898
2902
2899 2003-01-27 *** Released version 0.2.14
2903 2003-01-27 *** Released version 0.2.14
2900
2904
2901 2003-01-25 Fernando Perez <fperez@colorado.edu>
2905 2003-01-25 Fernando Perez <fperez@colorado.edu>
2902
2906
2903 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2907 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2904 functions defined in previous edit sessions could not be re-edited
2908 functions defined in previous edit sessions could not be re-edited
2905 (because the temp files were immediately removed). Now temp files
2909 (because the temp files were immediately removed). Now temp files
2906 are removed only at IPython's exit.
2910 are removed only at IPython's exit.
2907 (Magic.magic_run): Improved @run to perform shell-like expansions
2911 (Magic.magic_run): Improved @run to perform shell-like expansions
2908 on its arguments (~users and $VARS). With this, @run becomes more
2912 on its arguments (~users and $VARS). With this, @run becomes more
2909 like a normal command-line.
2913 like a normal command-line.
2910
2914
2911 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2915 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2912 bugs related to embedding and cleaned up that code. A fairly
2916 bugs related to embedding and cleaned up that code. A fairly
2913 important one was the impossibility to access the global namespace
2917 important one was the impossibility to access the global namespace
2914 through the embedded IPython (only local variables were visible).
2918 through the embedded IPython (only local variables were visible).
2915
2919
2916 2003-01-14 Fernando Perez <fperez@colorado.edu>
2920 2003-01-14 Fernando Perez <fperez@colorado.edu>
2917
2921
2918 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2922 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2919 auto-calling to be a bit more conservative. Now it doesn't get
2923 auto-calling to be a bit more conservative. Now it doesn't get
2920 triggered if any of '!=()<>' are in the rest of the input line, to
2924 triggered if any of '!=()<>' are in the rest of the input line, to
2921 allow comparing callables. Thanks to Alex for the heads up.
2925 allow comparing callables. Thanks to Alex for the heads up.
2922
2926
2923 2003-01-07 Fernando Perez <fperez@colorado.edu>
2927 2003-01-07 Fernando Perez <fperez@colorado.edu>
2924
2928
2925 * IPython/genutils.py (page): fixed estimation of the number of
2929 * IPython/genutils.py (page): fixed estimation of the number of
2926 lines in a string to be paged to simply count newlines. This
2930 lines in a string to be paged to simply count newlines. This
2927 prevents over-guessing due to embedded escape sequences. A better
2931 prevents over-guessing due to embedded escape sequences. A better
2928 long-term solution would involve stripping out the control chars
2932 long-term solution would involve stripping out the control chars
2929 for the count, but it's potentially so expensive I just don't
2933 for the count, but it's potentially so expensive I just don't
2930 think it's worth doing.
2934 think it's worth doing.
2931
2935
2932 2002-12-19 *** Released version 0.2.14pre50
2936 2002-12-19 *** Released version 0.2.14pre50
2933
2937
2934 2002-12-19 Fernando Perez <fperez@colorado.edu>
2938 2002-12-19 Fernando Perez <fperez@colorado.edu>
2935
2939
2936 * tools/release (version): Changed release scripts to inform
2940 * tools/release (version): Changed release scripts to inform
2937 Andrea and build a NEWS file with a list of recent changes.
2941 Andrea and build a NEWS file with a list of recent changes.
2938
2942
2939 * IPython/ColorANSI.py (__all__): changed terminal detection
2943 * IPython/ColorANSI.py (__all__): changed terminal detection
2940 code. Seems to work better for xterms without breaking
2944 code. Seems to work better for xterms without breaking
2941 konsole. Will need more testing to determine if WinXP and Mac OSX
2945 konsole. Will need more testing to determine if WinXP and Mac OSX
2942 also work ok.
2946 also work ok.
2943
2947
2944 2002-12-18 *** Released version 0.2.14pre49
2948 2002-12-18 *** Released version 0.2.14pre49
2945
2949
2946 2002-12-18 Fernando Perez <fperez@colorado.edu>
2950 2002-12-18 Fernando Perez <fperez@colorado.edu>
2947
2951
2948 * Docs: added new info about Mac OSX, from Andrea.
2952 * Docs: added new info about Mac OSX, from Andrea.
2949
2953
2950 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2954 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2951 allow direct plotting of python strings whose format is the same
2955 allow direct plotting of python strings whose format is the same
2952 of gnuplot data files.
2956 of gnuplot data files.
2953
2957
2954 2002-12-16 Fernando Perez <fperez@colorado.edu>
2958 2002-12-16 Fernando Perez <fperez@colorado.edu>
2955
2959
2956 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2960 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2957 value of exit question to be acknowledged.
2961 value of exit question to be acknowledged.
2958
2962
2959 2002-12-03 Fernando Perez <fperez@colorado.edu>
2963 2002-12-03 Fernando Perez <fperez@colorado.edu>
2960
2964
2961 * IPython/ipmaker.py: removed generators, which had been added
2965 * IPython/ipmaker.py: removed generators, which had been added
2962 by mistake in an earlier debugging run. This was causing trouble
2966 by mistake in an earlier debugging run. This was causing trouble
2963 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2967 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2964 for pointing this out.
2968 for pointing this out.
2965
2969
2966 2002-11-17 Fernando Perez <fperez@colorado.edu>
2970 2002-11-17 Fernando Perez <fperez@colorado.edu>
2967
2971
2968 * Manual: updated the Gnuplot section.
2972 * Manual: updated the Gnuplot section.
2969
2973
2970 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2974 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2971 a much better split of what goes in Runtime and what goes in
2975 a much better split of what goes in Runtime and what goes in
2972 Interactive.
2976 Interactive.
2973
2977
2974 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2978 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2975 being imported from iplib.
2979 being imported from iplib.
2976
2980
2977 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2981 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2978 for command-passing. Now the global Gnuplot instance is called
2982 for command-passing. Now the global Gnuplot instance is called
2979 'gp' instead of 'g', which was really a far too fragile and
2983 'gp' instead of 'g', which was really a far too fragile and
2980 common name.
2984 common name.
2981
2985
2982 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2986 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2983 bounding boxes generated by Gnuplot for square plots.
2987 bounding boxes generated by Gnuplot for square plots.
2984
2988
2985 * IPython/genutils.py (popkey): new function added. I should
2989 * IPython/genutils.py (popkey): new function added. I should
2986 suggest this on c.l.py as a dict method, it seems useful.
2990 suggest this on c.l.py as a dict method, it seems useful.
2987
2991
2988 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2992 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2989 to transparently handle PostScript generation. MUCH better than
2993 to transparently handle PostScript generation. MUCH better than
2990 the previous plot_eps/replot_eps (which I removed now). The code
2994 the previous plot_eps/replot_eps (which I removed now). The code
2991 is also fairly clean and well documented now (including
2995 is also fairly clean and well documented now (including
2992 docstrings).
2996 docstrings).
2993
2997
2994 2002-11-13 Fernando Perez <fperez@colorado.edu>
2998 2002-11-13 Fernando Perez <fperez@colorado.edu>
2995
2999
2996 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3000 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2997 (inconsistent with options).
3001 (inconsistent with options).
2998
3002
2999 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3003 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3000 manually disabled, I don't know why. Fixed it.
3004 manually disabled, I don't know why. Fixed it.
3001 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3005 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3002 eps output.
3006 eps output.
3003
3007
3004 2002-11-12 Fernando Perez <fperez@colorado.edu>
3008 2002-11-12 Fernando Perez <fperez@colorado.edu>
3005
3009
3006 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3010 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3007 don't propagate up to caller. Fixes crash reported by François
3011 don't propagate up to caller. Fixes crash reported by François
3008 Pinard.
3012 Pinard.
3009
3013
3010 2002-11-09 Fernando Perez <fperez@colorado.edu>
3014 2002-11-09 Fernando Perez <fperez@colorado.edu>
3011
3015
3012 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3016 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3013 history file for new users.
3017 history file for new users.
3014 (make_IPython): fixed bug where initial install would leave the
3018 (make_IPython): fixed bug where initial install would leave the
3015 user running in the .ipython dir.
3019 user running in the .ipython dir.
3016 (make_IPython): fixed bug where config dir .ipython would be
3020 (make_IPython): fixed bug where config dir .ipython would be
3017 created regardless of the given -ipythondir option. Thanks to Cory
3021 created regardless of the given -ipythondir option. Thanks to Cory
3018 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3022 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3019
3023
3020 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3024 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3021 type confirmations. Will need to use it in all of IPython's code
3025 type confirmations. Will need to use it in all of IPython's code
3022 consistently.
3026 consistently.
3023
3027
3024 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3028 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3025 context to print 31 lines instead of the default 5. This will make
3029 context to print 31 lines instead of the default 5. This will make
3026 the crash reports extremely detailed in case the problem is in
3030 the crash reports extremely detailed in case the problem is in
3027 libraries I don't have access to.
3031 libraries I don't have access to.
3028
3032
3029 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3033 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3030 line of defense' code to still crash, but giving users fair
3034 line of defense' code to still crash, but giving users fair
3031 warning. I don't want internal errors to go unreported: if there's
3035 warning. I don't want internal errors to go unreported: if there's
3032 an internal problem, IPython should crash and generate a full
3036 an internal problem, IPython should crash and generate a full
3033 report.
3037 report.
3034
3038
3035 2002-11-08 Fernando Perez <fperez@colorado.edu>
3039 2002-11-08 Fernando Perez <fperez@colorado.edu>
3036
3040
3037 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3041 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3038 otherwise uncaught exceptions which can appear if people set
3042 otherwise uncaught exceptions which can appear if people set
3039 sys.stdout to something badly broken. Thanks to a crash report
3043 sys.stdout to something badly broken. Thanks to a crash report
3040 from henni-AT-mail.brainbot.com.
3044 from henni-AT-mail.brainbot.com.
3041
3045
3042 2002-11-04 Fernando Perez <fperez@colorado.edu>
3046 2002-11-04 Fernando Perez <fperez@colorado.edu>
3043
3047
3044 * IPython/iplib.py (InteractiveShell.interact): added
3048 * IPython/iplib.py (InteractiveShell.interact): added
3045 __IPYTHON__active to the builtins. It's a flag which goes on when
3049 __IPYTHON__active to the builtins. It's a flag which goes on when
3046 the interaction starts and goes off again when it stops. This
3050 the interaction starts and goes off again when it stops. This
3047 allows embedding code to detect being inside IPython. Before this
3051 allows embedding code to detect being inside IPython. Before this
3048 was done via __IPYTHON__, but that only shows that an IPython
3052 was done via __IPYTHON__, but that only shows that an IPython
3049 instance has been created.
3053 instance has been created.
3050
3054
3051 * IPython/Magic.py (Magic.magic_env): I realized that in a
3055 * IPython/Magic.py (Magic.magic_env): I realized that in a
3052 UserDict, instance.data holds the data as a normal dict. So I
3056 UserDict, instance.data holds the data as a normal dict. So I
3053 modified @env to return os.environ.data instead of rebuilding a
3057 modified @env to return os.environ.data instead of rebuilding a
3054 dict by hand.
3058 dict by hand.
3055
3059
3056 2002-11-02 Fernando Perez <fperez@colorado.edu>
3060 2002-11-02 Fernando Perez <fperez@colorado.edu>
3057
3061
3058 * IPython/genutils.py (warn): changed so that level 1 prints no
3062 * IPython/genutils.py (warn): changed so that level 1 prints no
3059 header. Level 2 is now the default (with 'WARNING' header, as
3063 header. Level 2 is now the default (with 'WARNING' header, as
3060 before). I think I tracked all places where changes were needed in
3064 before). I think I tracked all places where changes were needed in
3061 IPython, but outside code using the old level numbering may have
3065 IPython, but outside code using the old level numbering may have
3062 broken.
3066 broken.
3063
3067
3064 * IPython/iplib.py (InteractiveShell.runcode): added this to
3068 * IPython/iplib.py (InteractiveShell.runcode): added this to
3065 handle the tracebacks in SystemExit traps correctly. The previous
3069 handle the tracebacks in SystemExit traps correctly. The previous
3066 code (through interact) was printing more of the stack than
3070 code (through interact) was printing more of the stack than
3067 necessary, showing IPython internal code to the user.
3071 necessary, showing IPython internal code to the user.
3068
3072
3069 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3073 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3070 default. Now that the default at the confirmation prompt is yes,
3074 default. Now that the default at the confirmation prompt is yes,
3071 it's not so intrusive. François' argument that ipython sessions
3075 it's not so intrusive. François' argument that ipython sessions
3072 tend to be complex enough not to lose them from an accidental C-d,
3076 tend to be complex enough not to lose them from an accidental C-d,
3073 is a valid one.
3077 is a valid one.
3074
3078
3075 * IPython/iplib.py (InteractiveShell.interact): added a
3079 * IPython/iplib.py (InteractiveShell.interact): added a
3076 showtraceback() call to the SystemExit trap, and modified the exit
3080 showtraceback() call to the SystemExit trap, and modified the exit
3077 confirmation to have yes as the default.
3081 confirmation to have yes as the default.
3078
3082
3079 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3083 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3080 this file. It's been gone from the code for a long time, this was
3084 this file. It's been gone from the code for a long time, this was
3081 simply leftover junk.
3085 simply leftover junk.
3082
3086
3083 2002-11-01 Fernando Perez <fperez@colorado.edu>
3087 2002-11-01 Fernando Perez <fperez@colorado.edu>
3084
3088
3085 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3089 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3086 added. If set, IPython now traps EOF and asks for
3090 added. If set, IPython now traps EOF and asks for
3087 confirmation. After a request by François Pinard.
3091 confirmation. After a request by François Pinard.
3088
3092
3089 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3093 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3090 of @abort, and with a new (better) mechanism for handling the
3094 of @abort, and with a new (better) mechanism for handling the
3091 exceptions.
3095 exceptions.
3092
3096
3093 2002-10-27 Fernando Perez <fperez@colorado.edu>
3097 2002-10-27 Fernando Perez <fperez@colorado.edu>
3094
3098
3095 * IPython/usage.py (__doc__): updated the --help information and
3099 * IPython/usage.py (__doc__): updated the --help information and
3096 the ipythonrc file to indicate that -log generates
3100 the ipythonrc file to indicate that -log generates
3097 ./ipython.log. Also fixed the corresponding info in @logstart.
3101 ./ipython.log. Also fixed the corresponding info in @logstart.
3098 This and several other fixes in the manuals thanks to reports by
3102 This and several other fixes in the manuals thanks to reports by
3099 François Pinard <pinard-AT-iro.umontreal.ca>.
3103 François Pinard <pinard-AT-iro.umontreal.ca>.
3100
3104
3101 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3105 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3102 refer to @logstart (instead of @log, which doesn't exist).
3106 refer to @logstart (instead of @log, which doesn't exist).
3103
3107
3104 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3108 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3105 AttributeError crash. Thanks to Christopher Armstrong
3109 AttributeError crash. Thanks to Christopher Armstrong
3106 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3110 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3107 introduced recently (in 0.2.14pre37) with the fix to the eval
3111 introduced recently (in 0.2.14pre37) with the fix to the eval
3108 problem mentioned below.
3112 problem mentioned below.
3109
3113
3110 2002-10-17 Fernando Perez <fperez@colorado.edu>
3114 2002-10-17 Fernando Perez <fperez@colorado.edu>
3111
3115
3112 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3116 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3113 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3117 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3114
3118
3115 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3119 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3116 this function to fix a problem reported by Alex Schmolck. He saw
3120 this function to fix a problem reported by Alex Schmolck. He saw
3117 it with list comprehensions and generators, which were getting
3121 it with list comprehensions and generators, which were getting
3118 called twice. The real problem was an 'eval' call in testing for
3122 called twice. The real problem was an 'eval' call in testing for
3119 automagic which was evaluating the input line silently.
3123 automagic which was evaluating the input line silently.
3120
3124
3121 This is a potentially very nasty bug, if the input has side
3125 This is a potentially very nasty bug, if the input has side
3122 effects which must not be repeated. The code is much cleaner now,
3126 effects which must not be repeated. The code is much cleaner now,
3123 without any blanket 'except' left and with a regexp test for
3127 without any blanket 'except' left and with a regexp test for
3124 actual function names.
3128 actual function names.
3125
3129
3126 But an eval remains, which I'm not fully comfortable with. I just
3130 But an eval remains, which I'm not fully comfortable with. I just
3127 don't know how to find out if an expression could be a callable in
3131 don't know how to find out if an expression could be a callable in
3128 the user's namespace without doing an eval on the string. However
3132 the user's namespace without doing an eval on the string. However
3129 that string is now much more strictly checked so that no code
3133 that string is now much more strictly checked so that no code
3130 slips by, so the eval should only happen for things that can
3134 slips by, so the eval should only happen for things that can
3131 really be only function/method names.
3135 really be only function/method names.
3132
3136
3133 2002-10-15 Fernando Perez <fperez@colorado.edu>
3137 2002-10-15 Fernando Perez <fperez@colorado.edu>
3134
3138
3135 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3139 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3136 OSX information to main manual, removed README_Mac_OSX file from
3140 OSX information to main manual, removed README_Mac_OSX file from
3137 distribution. Also updated credits for recent additions.
3141 distribution. Also updated credits for recent additions.
3138
3142
3139 2002-10-10 Fernando Perez <fperez@colorado.edu>
3143 2002-10-10 Fernando Perez <fperez@colorado.edu>
3140
3144
3141 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3145 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3142 terminal-related issues. Many thanks to Andrea Riciputi
3146 terminal-related issues. Many thanks to Andrea Riciputi
3143 <andrea.riciputi-AT-libero.it> for writing it.
3147 <andrea.riciputi-AT-libero.it> for writing it.
3144
3148
3145 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3149 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3146 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3150 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3147
3151
3148 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3152 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3149 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3153 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3150 <syver-en-AT-online.no> who both submitted patches for this problem.
3154 <syver-en-AT-online.no> who both submitted patches for this problem.
3151
3155
3152 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3156 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3153 global embedding to make sure that things don't overwrite user
3157 global embedding to make sure that things don't overwrite user
3154 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3158 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3155
3159
3156 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3160 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3157 compatibility. Thanks to Hayden Callow
3161 compatibility. Thanks to Hayden Callow
3158 <h.callow-AT-elec.canterbury.ac.nz>
3162 <h.callow-AT-elec.canterbury.ac.nz>
3159
3163
3160 2002-10-04 Fernando Perez <fperez@colorado.edu>
3164 2002-10-04 Fernando Perez <fperez@colorado.edu>
3161
3165
3162 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3166 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3163 Gnuplot.File objects.
3167 Gnuplot.File objects.
3164
3168
3165 2002-07-23 Fernando Perez <fperez@colorado.edu>
3169 2002-07-23 Fernando Perez <fperez@colorado.edu>
3166
3170
3167 * IPython/genutils.py (timing): Added timings() and timing() for
3171 * IPython/genutils.py (timing): Added timings() and timing() for
3168 quick access to the most commonly needed data, the execution
3172 quick access to the most commonly needed data, the execution
3169 times. Old timing() renamed to timings_out().
3173 times. Old timing() renamed to timings_out().
3170
3174
3171 2002-07-18 Fernando Perez <fperez@colorado.edu>
3175 2002-07-18 Fernando Perez <fperez@colorado.edu>
3172
3176
3173 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3177 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3174 bug with nested instances disrupting the parent's tab completion.
3178 bug with nested instances disrupting the parent's tab completion.
3175
3179
3176 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3180 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3177 all_completions code to begin the emacs integration.
3181 all_completions code to begin the emacs integration.
3178
3182
3179 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3183 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3180 argument to allow titling individual arrays when plotting.
3184 argument to allow titling individual arrays when plotting.
3181
3185
3182 2002-07-15 Fernando Perez <fperez@colorado.edu>
3186 2002-07-15 Fernando Perez <fperez@colorado.edu>
3183
3187
3184 * setup.py (make_shortcut): changed to retrieve the value of
3188 * setup.py (make_shortcut): changed to retrieve the value of
3185 'Program Files' directory from the registry (this value changes in
3189 'Program Files' directory from the registry (this value changes in
3186 non-english versions of Windows). Thanks to Thomas Fanslau
3190 non-english versions of Windows). Thanks to Thomas Fanslau
3187 <tfanslau-AT-gmx.de> for the report.
3191 <tfanslau-AT-gmx.de> for the report.
3188
3192
3189 2002-07-10 Fernando Perez <fperez@colorado.edu>
3193 2002-07-10 Fernando Perez <fperez@colorado.edu>
3190
3194
3191 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3195 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3192 a bug in pdb, which crashes if a line with only whitespace is
3196 a bug in pdb, which crashes if a line with only whitespace is
3193 entered. Bug report submitted to sourceforge.
3197 entered. Bug report submitted to sourceforge.
3194
3198
3195 2002-07-09 Fernando Perez <fperez@colorado.edu>
3199 2002-07-09 Fernando Perez <fperez@colorado.edu>
3196
3200
3197 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3201 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3198 reporting exceptions (it's a bug in inspect.py, I just set a
3202 reporting exceptions (it's a bug in inspect.py, I just set a
3199 workaround).
3203 workaround).
3200
3204
3201 2002-07-08 Fernando Perez <fperez@colorado.edu>
3205 2002-07-08 Fernando Perez <fperez@colorado.edu>
3202
3206
3203 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3207 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3204 __IPYTHON__ in __builtins__ to show up in user_ns.
3208 __IPYTHON__ in __builtins__ to show up in user_ns.
3205
3209
3206 2002-07-03 Fernando Perez <fperez@colorado.edu>
3210 2002-07-03 Fernando Perez <fperez@colorado.edu>
3207
3211
3208 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3212 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3209 name from @gp_set_instance to @gp_set_default.
3213 name from @gp_set_instance to @gp_set_default.
3210
3214
3211 * IPython/ipmaker.py (make_IPython): default editor value set to
3215 * IPython/ipmaker.py (make_IPython): default editor value set to
3212 '0' (a string), to match the rc file. Otherwise will crash when
3216 '0' (a string), to match the rc file. Otherwise will crash when
3213 .strip() is called on it.
3217 .strip() is called on it.
3214
3218
3215
3219
3216 2002-06-28 Fernando Perez <fperez@colorado.edu>
3220 2002-06-28 Fernando Perez <fperez@colorado.edu>
3217
3221
3218 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3222 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3219 of files in current directory when a file is executed via
3223 of files in current directory when a file is executed via
3220 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3224 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3221
3225
3222 * setup.py (manfiles): fix for rpm builds, submitted by RA
3226 * setup.py (manfiles): fix for rpm builds, submitted by RA
3223 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3227 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3224
3228
3225 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3229 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3226 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3230 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3227 string!). A. Schmolck caught this one.
3231 string!). A. Schmolck caught this one.
3228
3232
3229 2002-06-27 Fernando Perez <fperez@colorado.edu>
3233 2002-06-27 Fernando Perez <fperez@colorado.edu>
3230
3234
3231 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3235 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3232 defined files at the cmd line. __name__ wasn't being set to
3236 defined files at the cmd line. __name__ wasn't being set to
3233 __main__.
3237 __main__.
3234
3238
3235 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3239 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3236 regular lists and tuples besides Numeric arrays.
3240 regular lists and tuples besides Numeric arrays.
3237
3241
3238 * IPython/Prompts.py (CachedOutput.__call__): Added output
3242 * IPython/Prompts.py (CachedOutput.__call__): Added output
3239 supression for input ending with ';'. Similar to Mathematica and
3243 supression for input ending with ';'. Similar to Mathematica and
3240 Matlab. The _* vars and Out[] list are still updated, just like
3244 Matlab. The _* vars and Out[] list are still updated, just like
3241 Mathematica behaves.
3245 Mathematica behaves.
3242
3246
3243 2002-06-25 Fernando Perez <fperez@colorado.edu>
3247 2002-06-25 Fernando Perez <fperez@colorado.edu>
3244
3248
3245 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3249 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3246 .ini extensions for profiels under Windows.
3250 .ini extensions for profiels under Windows.
3247
3251
3248 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3252 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3249 string form. Fix contributed by Alexander Schmolck
3253 string form. Fix contributed by Alexander Schmolck
3250 <a.schmolck-AT-gmx.net>
3254 <a.schmolck-AT-gmx.net>
3251
3255
3252 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3256 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3253 pre-configured Gnuplot instance.
3257 pre-configured Gnuplot instance.
3254
3258
3255 2002-06-21 Fernando Perez <fperez@colorado.edu>
3259 2002-06-21 Fernando Perez <fperez@colorado.edu>
3256
3260
3257 * IPython/numutils.py (exp_safe): new function, works around the
3261 * IPython/numutils.py (exp_safe): new function, works around the
3258 underflow problems in Numeric.
3262 underflow problems in Numeric.
3259 (log2): New fn. Safe log in base 2: returns exact integer answer
3263 (log2): New fn. Safe log in base 2: returns exact integer answer
3260 for exact integer powers of 2.
3264 for exact integer powers of 2.
3261
3265
3262 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3266 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3263 properly.
3267 properly.
3264
3268
3265 2002-06-20 Fernando Perez <fperez@colorado.edu>
3269 2002-06-20 Fernando Perez <fperez@colorado.edu>
3266
3270
3267 * IPython/genutils.py (timing): new function like
3271 * IPython/genutils.py (timing): new function like
3268 Mathematica's. Similar to time_test, but returns more info.
3272 Mathematica's. Similar to time_test, but returns more info.
3269
3273
3270 2002-06-18 Fernando Perez <fperez@colorado.edu>
3274 2002-06-18 Fernando Perez <fperez@colorado.edu>
3271
3275
3272 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3276 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3273 according to Mike Heeter's suggestions.
3277 according to Mike Heeter's suggestions.
3274
3278
3275 2002-06-16 Fernando Perez <fperez@colorado.edu>
3279 2002-06-16 Fernando Perez <fperez@colorado.edu>
3276
3280
3277 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3281 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3278 system. GnuplotMagic is gone as a user-directory option. New files
3282 system. GnuplotMagic is gone as a user-directory option. New files
3279 make it easier to use all the gnuplot stuff both from external
3283 make it easier to use all the gnuplot stuff both from external
3280 programs as well as from IPython. Had to rewrite part of
3284 programs as well as from IPython. Had to rewrite part of
3281 hardcopy() b/c of a strange bug: often the ps files simply don't
3285 hardcopy() b/c of a strange bug: often the ps files simply don't
3282 get created, and require a repeat of the command (often several
3286 get created, and require a repeat of the command (often several
3283 times).
3287 times).
3284
3288
3285 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3289 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3286 resolve output channel at call time, so that if sys.stderr has
3290 resolve output channel at call time, so that if sys.stderr has
3287 been redirected by user this gets honored.
3291 been redirected by user this gets honored.
3288
3292
3289 2002-06-13 Fernando Perez <fperez@colorado.edu>
3293 2002-06-13 Fernando Perez <fperez@colorado.edu>
3290
3294
3291 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3295 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3292 IPShell. Kept a copy with the old names to avoid breaking people's
3296 IPShell. Kept a copy with the old names to avoid breaking people's
3293 embedded code.
3297 embedded code.
3294
3298
3295 * IPython/ipython: simplified it to the bare minimum after
3299 * IPython/ipython: simplified it to the bare minimum after
3296 Holger's suggestions. Added info about how to use it in
3300 Holger's suggestions. Added info about how to use it in
3297 PYTHONSTARTUP.
3301 PYTHONSTARTUP.
3298
3302
3299 * IPython/Shell.py (IPythonShell): changed the options passing
3303 * IPython/Shell.py (IPythonShell): changed the options passing
3300 from a string with funky %s replacements to a straight list. Maybe
3304 from a string with funky %s replacements to a straight list. Maybe
3301 a bit more typing, but it follows sys.argv conventions, so there's
3305 a bit more typing, but it follows sys.argv conventions, so there's
3302 less special-casing to remember.
3306 less special-casing to remember.
3303
3307
3304 2002-06-12 Fernando Perez <fperez@colorado.edu>
3308 2002-06-12 Fernando Perez <fperez@colorado.edu>
3305
3309
3306 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3310 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3307 command. Thanks to a suggestion by Mike Heeter.
3311 command. Thanks to a suggestion by Mike Heeter.
3308 (Magic.magic_pfile): added behavior to look at filenames if given
3312 (Magic.magic_pfile): added behavior to look at filenames if given
3309 arg is not a defined object.
3313 arg is not a defined object.
3310 (Magic.magic_save): New @save function to save code snippets. Also
3314 (Magic.magic_save): New @save function to save code snippets. Also
3311 a Mike Heeter idea.
3315 a Mike Heeter idea.
3312
3316
3313 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3317 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3314 plot() and replot(). Much more convenient now, especially for
3318 plot() and replot(). Much more convenient now, especially for
3315 interactive use.
3319 interactive use.
3316
3320
3317 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3321 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3318 filenames.
3322 filenames.
3319
3323
3320 2002-06-02 Fernando Perez <fperez@colorado.edu>
3324 2002-06-02 Fernando Perez <fperez@colorado.edu>
3321
3325
3322 * IPython/Struct.py (Struct.__init__): modified to admit
3326 * IPython/Struct.py (Struct.__init__): modified to admit
3323 initialization via another struct.
3327 initialization via another struct.
3324
3328
3325 * IPython/genutils.py (SystemExec.__init__): New stateful
3329 * IPython/genutils.py (SystemExec.__init__): New stateful
3326 interface to xsys and bq. Useful for writing system scripts.
3330 interface to xsys and bq. Useful for writing system scripts.
3327
3331
3328 2002-05-30 Fernando Perez <fperez@colorado.edu>
3332 2002-05-30 Fernando Perez <fperez@colorado.edu>
3329
3333
3330 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3334 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3331 documents. This will make the user download smaller (it's getting
3335 documents. This will make the user download smaller (it's getting
3332 too big).
3336 too big).
3333
3337
3334 2002-05-29 Fernando Perez <fperez@colorado.edu>
3338 2002-05-29 Fernando Perez <fperez@colorado.edu>
3335
3339
3336 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3340 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3337 fix problems with shelve and pickle. Seems to work, but I don't
3341 fix problems with shelve and pickle. Seems to work, but I don't
3338 know if corner cases break it. Thanks to Mike Heeter
3342 know if corner cases break it. Thanks to Mike Heeter
3339 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3343 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3340
3344
3341 2002-05-24 Fernando Perez <fperez@colorado.edu>
3345 2002-05-24 Fernando Perez <fperez@colorado.edu>
3342
3346
3343 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3347 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3344 macros having broken.
3348 macros having broken.
3345
3349
3346 2002-05-21 Fernando Perez <fperez@colorado.edu>
3350 2002-05-21 Fernando Perez <fperez@colorado.edu>
3347
3351
3348 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3352 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3349 introduced logging bug: all history before logging started was
3353 introduced logging bug: all history before logging started was
3350 being written one character per line! This came from the redesign
3354 being written one character per line! This came from the redesign
3351 of the input history as a special list which slices to strings,
3355 of the input history as a special list which slices to strings,
3352 not to lists.
3356 not to lists.
3353
3357
3354 2002-05-20 Fernando Perez <fperez@colorado.edu>
3358 2002-05-20 Fernando Perez <fperez@colorado.edu>
3355
3359
3356 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3360 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3357 be an attribute of all classes in this module. The design of these
3361 be an attribute of all classes in this module. The design of these
3358 classes needs some serious overhauling.
3362 classes needs some serious overhauling.
3359
3363
3360 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3364 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3361 which was ignoring '_' in option names.
3365 which was ignoring '_' in option names.
3362
3366
3363 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3367 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3364 'Verbose_novars' to 'Context' and made it the new default. It's a
3368 'Verbose_novars' to 'Context' and made it the new default. It's a
3365 bit more readable and also safer than verbose.
3369 bit more readable and also safer than verbose.
3366
3370
3367 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3371 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3368 triple-quoted strings.
3372 triple-quoted strings.
3369
3373
3370 * IPython/OInspect.py (__all__): new module exposing the object
3374 * IPython/OInspect.py (__all__): new module exposing the object
3371 introspection facilities. Now the corresponding magics are dummy
3375 introspection facilities. Now the corresponding magics are dummy
3372 wrappers around this. Having this module will make it much easier
3376 wrappers around this. Having this module will make it much easier
3373 to put these functions into our modified pdb.
3377 to put these functions into our modified pdb.
3374 This new object inspector system uses the new colorizing module,
3378 This new object inspector system uses the new colorizing module,
3375 so source code and other things are nicely syntax highlighted.
3379 so source code and other things are nicely syntax highlighted.
3376
3380
3377 2002-05-18 Fernando Perez <fperez@colorado.edu>
3381 2002-05-18 Fernando Perez <fperez@colorado.edu>
3378
3382
3379 * IPython/ColorANSI.py: Split the coloring tools into a separate
3383 * IPython/ColorANSI.py: Split the coloring tools into a separate
3380 module so I can use them in other code easier (they were part of
3384 module so I can use them in other code easier (they were part of
3381 ultraTB).
3385 ultraTB).
3382
3386
3383 2002-05-17 Fernando Perez <fperez@colorado.edu>
3387 2002-05-17 Fernando Perez <fperez@colorado.edu>
3384
3388
3385 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3389 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3386 fixed it to set the global 'g' also to the called instance, as
3390 fixed it to set the global 'g' also to the called instance, as
3387 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3391 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3388 user's 'g' variables).
3392 user's 'g' variables).
3389
3393
3390 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3394 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3391 global variables (aliases to _ih,_oh) so that users which expect
3395 global variables (aliases to _ih,_oh) so that users which expect
3392 In[5] or Out[7] to work aren't unpleasantly surprised.
3396 In[5] or Out[7] to work aren't unpleasantly surprised.
3393 (InputList.__getslice__): new class to allow executing slices of
3397 (InputList.__getslice__): new class to allow executing slices of
3394 input history directly. Very simple class, complements the use of
3398 input history directly. Very simple class, complements the use of
3395 macros.
3399 macros.
3396
3400
3397 2002-05-16 Fernando Perez <fperez@colorado.edu>
3401 2002-05-16 Fernando Perez <fperez@colorado.edu>
3398
3402
3399 * setup.py (docdirbase): make doc directory be just doc/IPython
3403 * setup.py (docdirbase): make doc directory be just doc/IPython
3400 without version numbers, it will reduce clutter for users.
3404 without version numbers, it will reduce clutter for users.
3401
3405
3402 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3406 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3403 execfile call to prevent possible memory leak. See for details:
3407 execfile call to prevent possible memory leak. See for details:
3404 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3408 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3405
3409
3406 2002-05-15 Fernando Perez <fperez@colorado.edu>
3410 2002-05-15 Fernando Perez <fperez@colorado.edu>
3407
3411
3408 * IPython/Magic.py (Magic.magic_psource): made the object
3412 * IPython/Magic.py (Magic.magic_psource): made the object
3409 introspection names be more standard: pdoc, pdef, pfile and
3413 introspection names be more standard: pdoc, pdef, pfile and
3410 psource. They all print/page their output, and it makes
3414 psource. They all print/page their output, and it makes
3411 remembering them easier. Kept old names for compatibility as
3415 remembering them easier. Kept old names for compatibility as
3412 aliases.
3416 aliases.
3413
3417
3414 2002-05-14 Fernando Perez <fperez@colorado.edu>
3418 2002-05-14 Fernando Perez <fperez@colorado.edu>
3415
3419
3416 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3420 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3417 what the mouse problem was. The trick is to use gnuplot with temp
3421 what the mouse problem was. The trick is to use gnuplot with temp
3418 files and NOT with pipes (for data communication), because having
3422 files and NOT with pipes (for data communication), because having
3419 both pipes and the mouse on is bad news.
3423 both pipes and the mouse on is bad news.
3420
3424
3421 2002-05-13 Fernando Perez <fperez@colorado.edu>
3425 2002-05-13 Fernando Perez <fperez@colorado.edu>
3422
3426
3423 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3427 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3424 bug. Information would be reported about builtins even when
3428 bug. Information would be reported about builtins even when
3425 user-defined functions overrode them.
3429 user-defined functions overrode them.
3426
3430
3427 2002-05-11 Fernando Perez <fperez@colorado.edu>
3431 2002-05-11 Fernando Perez <fperez@colorado.edu>
3428
3432
3429 * IPython/__init__.py (__all__): removed FlexCompleter from
3433 * IPython/__init__.py (__all__): removed FlexCompleter from
3430 __all__ so that things don't fail in platforms without readline.
3434 __all__ so that things don't fail in platforms without readline.
3431
3435
3432 2002-05-10 Fernando Perez <fperez@colorado.edu>
3436 2002-05-10 Fernando Perez <fperez@colorado.edu>
3433
3437
3434 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3438 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3435 it requires Numeric, effectively making Numeric a dependency for
3439 it requires Numeric, effectively making Numeric a dependency for
3436 IPython.
3440 IPython.
3437
3441
3438 * Released 0.2.13
3442 * Released 0.2.13
3439
3443
3440 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3444 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3441 profiler interface. Now all the major options from the profiler
3445 profiler interface. Now all the major options from the profiler
3442 module are directly supported in IPython, both for single
3446 module are directly supported in IPython, both for single
3443 expressions (@prun) and for full programs (@run -p).
3447 expressions (@prun) and for full programs (@run -p).
3444
3448
3445 2002-05-09 Fernando Perez <fperez@colorado.edu>
3449 2002-05-09 Fernando Perez <fperez@colorado.edu>
3446
3450
3447 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3451 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3448 magic properly formatted for screen.
3452 magic properly formatted for screen.
3449
3453
3450 * setup.py (make_shortcut): Changed things to put pdf version in
3454 * setup.py (make_shortcut): Changed things to put pdf version in
3451 doc/ instead of doc/manual (had to change lyxport a bit).
3455 doc/ instead of doc/manual (had to change lyxport a bit).
3452
3456
3453 * IPython/Magic.py (Profile.string_stats): made profile runs go
3457 * IPython/Magic.py (Profile.string_stats): made profile runs go
3454 through pager (they are long and a pager allows searching, saving,
3458 through pager (they are long and a pager allows searching, saving,
3455 etc.)
3459 etc.)
3456
3460
3457 2002-05-08 Fernando Perez <fperez@colorado.edu>
3461 2002-05-08 Fernando Perez <fperez@colorado.edu>
3458
3462
3459 * Released 0.2.12
3463 * Released 0.2.12
3460
3464
3461 2002-05-06 Fernando Perez <fperez@colorado.edu>
3465 2002-05-06 Fernando Perez <fperez@colorado.edu>
3462
3466
3463 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3467 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3464 introduced); 'hist n1 n2' was broken.
3468 introduced); 'hist n1 n2' was broken.
3465 (Magic.magic_pdb): added optional on/off arguments to @pdb
3469 (Magic.magic_pdb): added optional on/off arguments to @pdb
3466 (Magic.magic_run): added option -i to @run, which executes code in
3470 (Magic.magic_run): added option -i to @run, which executes code in
3467 the IPython namespace instead of a clean one. Also added @irun as
3471 the IPython namespace instead of a clean one. Also added @irun as
3468 an alias to @run -i.
3472 an alias to @run -i.
3469
3473
3470 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3474 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3471 fixed (it didn't really do anything, the namespaces were wrong).
3475 fixed (it didn't really do anything, the namespaces were wrong).
3472
3476
3473 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3477 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3474
3478
3475 * IPython/__init__.py (__all__): Fixed package namespace, now
3479 * IPython/__init__.py (__all__): Fixed package namespace, now
3476 'import IPython' does give access to IPython.<all> as
3480 'import IPython' does give access to IPython.<all> as
3477 expected. Also renamed __release__ to Release.
3481 expected. Also renamed __release__ to Release.
3478
3482
3479 * IPython/Debugger.py (__license__): created new Pdb class which
3483 * IPython/Debugger.py (__license__): created new Pdb class which
3480 functions like a drop-in for the normal pdb.Pdb but does NOT
3484 functions like a drop-in for the normal pdb.Pdb but does NOT
3481 import readline by default. This way it doesn't muck up IPython's
3485 import readline by default. This way it doesn't muck up IPython's
3482 readline handling, and now tab-completion finally works in the
3486 readline handling, and now tab-completion finally works in the
3483 debugger -- sort of. It completes things globally visible, but the
3487 debugger -- sort of. It completes things globally visible, but the
3484 completer doesn't track the stack as pdb walks it. That's a bit
3488 completer doesn't track the stack as pdb walks it. That's a bit
3485 tricky, and I'll have to implement it later.
3489 tricky, and I'll have to implement it later.
3486
3490
3487 2002-05-05 Fernando Perez <fperez@colorado.edu>
3491 2002-05-05 Fernando Perez <fperez@colorado.edu>
3488
3492
3489 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3493 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3490 magic docstrings when printed via ? (explicit \'s were being
3494 magic docstrings when printed via ? (explicit \'s were being
3491 printed).
3495 printed).
3492
3496
3493 * IPython/ipmaker.py (make_IPython): fixed namespace
3497 * IPython/ipmaker.py (make_IPython): fixed namespace
3494 identification bug. Now variables loaded via logs or command-line
3498 identification bug. Now variables loaded via logs or command-line
3495 files are recognized in the interactive namespace by @who.
3499 files are recognized in the interactive namespace by @who.
3496
3500
3497 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3501 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3498 log replay system stemming from the string form of Structs.
3502 log replay system stemming from the string form of Structs.
3499
3503
3500 * IPython/Magic.py (Macro.__init__): improved macros to properly
3504 * IPython/Magic.py (Macro.__init__): improved macros to properly
3501 handle magic commands in them.
3505 handle magic commands in them.
3502 (Magic.magic_logstart): usernames are now expanded so 'logstart
3506 (Magic.magic_logstart): usernames are now expanded so 'logstart
3503 ~/mylog' now works.
3507 ~/mylog' now works.
3504
3508
3505 * IPython/iplib.py (complete): fixed bug where paths starting with
3509 * IPython/iplib.py (complete): fixed bug where paths starting with
3506 '/' would be completed as magic names.
3510 '/' would be completed as magic names.
3507
3511
3508 2002-05-04 Fernando Perez <fperez@colorado.edu>
3512 2002-05-04 Fernando Perez <fperez@colorado.edu>
3509
3513
3510 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3514 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3511 allow running full programs under the profiler's control.
3515 allow running full programs under the profiler's control.
3512
3516
3513 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3517 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3514 mode to report exceptions verbosely but without formatting
3518 mode to report exceptions verbosely but without formatting
3515 variables. This addresses the issue of ipython 'freezing' (it's
3519 variables. This addresses the issue of ipython 'freezing' (it's
3516 not frozen, but caught in an expensive formatting loop) when huge
3520 not frozen, but caught in an expensive formatting loop) when huge
3517 variables are in the context of an exception.
3521 variables are in the context of an exception.
3518 (VerboseTB.text): Added '--->' markers at line where exception was
3522 (VerboseTB.text): Added '--->' markers at line where exception was
3519 triggered. Much clearer to read, especially in NoColor modes.
3523 triggered. Much clearer to read, especially in NoColor modes.
3520
3524
3521 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3525 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3522 implemented in reverse when changing to the new parse_options().
3526 implemented in reverse when changing to the new parse_options().
3523
3527
3524 2002-05-03 Fernando Perez <fperez@colorado.edu>
3528 2002-05-03 Fernando Perez <fperez@colorado.edu>
3525
3529
3526 * IPython/Magic.py (Magic.parse_options): new function so that
3530 * IPython/Magic.py (Magic.parse_options): new function so that
3527 magics can parse options easier.
3531 magics can parse options easier.
3528 (Magic.magic_prun): new function similar to profile.run(),
3532 (Magic.magic_prun): new function similar to profile.run(),
3529 suggested by Chris Hart.
3533 suggested by Chris Hart.
3530 (Magic.magic_cd): fixed behavior so that it only changes if
3534 (Magic.magic_cd): fixed behavior so that it only changes if
3531 directory actually is in history.
3535 directory actually is in history.
3532
3536
3533 * IPython/usage.py (__doc__): added information about potential
3537 * IPython/usage.py (__doc__): added information about potential
3534 slowness of Verbose exception mode when there are huge data
3538 slowness of Verbose exception mode when there are huge data
3535 structures to be formatted (thanks to Archie Paulson).
3539 structures to be formatted (thanks to Archie Paulson).
3536
3540
3537 * IPython/ipmaker.py (make_IPython): Changed default logging
3541 * IPython/ipmaker.py (make_IPython): Changed default logging
3538 (when simply called with -log) to use curr_dir/ipython.log in
3542 (when simply called with -log) to use curr_dir/ipython.log in
3539 rotate mode. Fixed crash which was occuring with -log before
3543 rotate mode. Fixed crash which was occuring with -log before
3540 (thanks to Jim Boyle).
3544 (thanks to Jim Boyle).
3541
3545
3542 2002-05-01 Fernando Perez <fperez@colorado.edu>
3546 2002-05-01 Fernando Perez <fperez@colorado.edu>
3543
3547
3544 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3548 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3545 was nasty -- though somewhat of a corner case).
3549 was nasty -- though somewhat of a corner case).
3546
3550
3547 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3551 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3548 text (was a bug).
3552 text (was a bug).
3549
3553
3550 2002-04-30 Fernando Perez <fperez@colorado.edu>
3554 2002-04-30 Fernando Perez <fperez@colorado.edu>
3551
3555
3552 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3556 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3553 a print after ^D or ^C from the user so that the In[] prompt
3557 a print after ^D or ^C from the user so that the In[] prompt
3554 doesn't over-run the gnuplot one.
3558 doesn't over-run the gnuplot one.
3555
3559
3556 2002-04-29 Fernando Perez <fperez@colorado.edu>
3560 2002-04-29 Fernando Perez <fperez@colorado.edu>
3557
3561
3558 * Released 0.2.10
3562 * Released 0.2.10
3559
3563
3560 * IPython/__release__.py (version): get date dynamically.
3564 * IPython/__release__.py (version): get date dynamically.
3561
3565
3562 * Misc. documentation updates thanks to Arnd's comments. Also ran
3566 * Misc. documentation updates thanks to Arnd's comments. Also ran
3563 a full spellcheck on the manual (hadn't been done in a while).
3567 a full spellcheck on the manual (hadn't been done in a while).
3564
3568
3565 2002-04-27 Fernando Perez <fperez@colorado.edu>
3569 2002-04-27 Fernando Perez <fperez@colorado.edu>
3566
3570
3567 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3571 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3568 starting a log in mid-session would reset the input history list.
3572 starting a log in mid-session would reset the input history list.
3569
3573
3570 2002-04-26 Fernando Perez <fperez@colorado.edu>
3574 2002-04-26 Fernando Perez <fperez@colorado.edu>
3571
3575
3572 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3576 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3573 all files were being included in an update. Now anything in
3577 all files were being included in an update. Now anything in
3574 UserConfig that matches [A-Za-z]*.py will go (this excludes
3578 UserConfig that matches [A-Za-z]*.py will go (this excludes
3575 __init__.py)
3579 __init__.py)
3576
3580
3577 2002-04-25 Fernando Perez <fperez@colorado.edu>
3581 2002-04-25 Fernando Perez <fperez@colorado.edu>
3578
3582
3579 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3583 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3580 to __builtins__ so that any form of embedded or imported code can
3584 to __builtins__ so that any form of embedded or imported code can
3581 test for being inside IPython.
3585 test for being inside IPython.
3582
3586
3583 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3587 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3584 changed to GnuplotMagic because it's now an importable module,
3588 changed to GnuplotMagic because it's now an importable module,
3585 this makes the name follow that of the standard Gnuplot module.
3589 this makes the name follow that of the standard Gnuplot module.
3586 GnuplotMagic can now be loaded at any time in mid-session.
3590 GnuplotMagic can now be loaded at any time in mid-session.
3587
3591
3588 2002-04-24 Fernando Perez <fperez@colorado.edu>
3592 2002-04-24 Fernando Perez <fperez@colorado.edu>
3589
3593
3590 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3594 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3591 the globals (IPython has its own namespace) and the
3595 the globals (IPython has its own namespace) and the
3592 PhysicalQuantity stuff is much better anyway.
3596 PhysicalQuantity stuff is much better anyway.
3593
3597
3594 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3598 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3595 embedding example to standard user directory for
3599 embedding example to standard user directory for
3596 distribution. Also put it in the manual.
3600 distribution. Also put it in the manual.
3597
3601
3598 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3602 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3599 instance as first argument (so it doesn't rely on some obscure
3603 instance as first argument (so it doesn't rely on some obscure
3600 hidden global).
3604 hidden global).
3601
3605
3602 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3606 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3603 delimiters. While it prevents ().TAB from working, it allows
3607 delimiters. While it prevents ().TAB from working, it allows
3604 completions in open (... expressions. This is by far a more common
3608 completions in open (... expressions. This is by far a more common
3605 case.
3609 case.
3606
3610
3607 2002-04-23 Fernando Perez <fperez@colorado.edu>
3611 2002-04-23 Fernando Perez <fperez@colorado.edu>
3608
3612
3609 * IPython/Extensions/InterpreterPasteInput.py: new
3613 * IPython/Extensions/InterpreterPasteInput.py: new
3610 syntax-processing module for pasting lines with >>> or ... at the
3614 syntax-processing module for pasting lines with >>> or ... at the
3611 start.
3615 start.
3612
3616
3613 * IPython/Extensions/PhysicalQ_Interactive.py
3617 * IPython/Extensions/PhysicalQ_Interactive.py
3614 (PhysicalQuantityInteractive.__int__): fixed to work with either
3618 (PhysicalQuantityInteractive.__int__): fixed to work with either
3615 Numeric or math.
3619 Numeric or math.
3616
3620
3617 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3621 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3618 provided profiles. Now we have:
3622 provided profiles. Now we have:
3619 -math -> math module as * and cmath with its own namespace.
3623 -math -> math module as * and cmath with its own namespace.
3620 -numeric -> Numeric as *, plus gnuplot & grace
3624 -numeric -> Numeric as *, plus gnuplot & grace
3621 -physics -> same as before
3625 -physics -> same as before
3622
3626
3623 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3627 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3624 user-defined magics wouldn't be found by @magic if they were
3628 user-defined magics wouldn't be found by @magic if they were
3625 defined as class methods. Also cleaned up the namespace search
3629 defined as class methods. Also cleaned up the namespace search
3626 logic and the string building (to use %s instead of many repeated
3630 logic and the string building (to use %s instead of many repeated
3627 string adds).
3631 string adds).
3628
3632
3629 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3633 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3630 of user-defined magics to operate with class methods (cleaner, in
3634 of user-defined magics to operate with class methods (cleaner, in
3631 line with the gnuplot code).
3635 line with the gnuplot code).
3632
3636
3633 2002-04-22 Fernando Perez <fperez@colorado.edu>
3637 2002-04-22 Fernando Perez <fperez@colorado.edu>
3634
3638
3635 * setup.py: updated dependency list so that manual is updated when
3639 * setup.py: updated dependency list so that manual is updated when
3636 all included files change.
3640 all included files change.
3637
3641
3638 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3642 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3639 the delimiter removal option (the fix is ugly right now).
3643 the delimiter removal option (the fix is ugly right now).
3640
3644
3641 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3645 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3642 all of the math profile (quicker loading, no conflict between
3646 all of the math profile (quicker loading, no conflict between
3643 g-9.8 and g-gnuplot).
3647 g-9.8 and g-gnuplot).
3644
3648
3645 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3649 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3646 name of post-mortem files to IPython_crash_report.txt.
3650 name of post-mortem files to IPython_crash_report.txt.
3647
3651
3648 * Cleanup/update of the docs. Added all the new readline info and
3652 * Cleanup/update of the docs. Added all the new readline info and
3649 formatted all lists as 'real lists'.
3653 formatted all lists as 'real lists'.
3650
3654
3651 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3655 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3652 tab-completion options, since the full readline parse_and_bind is
3656 tab-completion options, since the full readline parse_and_bind is
3653 now accessible.
3657 now accessible.
3654
3658
3655 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3659 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3656 handling of readline options. Now users can specify any string to
3660 handling of readline options. Now users can specify any string to
3657 be passed to parse_and_bind(), as well as the delimiters to be
3661 be passed to parse_and_bind(), as well as the delimiters to be
3658 removed.
3662 removed.
3659 (InteractiveShell.__init__): Added __name__ to the global
3663 (InteractiveShell.__init__): Added __name__ to the global
3660 namespace so that things like Itpl which rely on its existence
3664 namespace so that things like Itpl which rely on its existence
3661 don't crash.
3665 don't crash.
3662 (InteractiveShell._prefilter): Defined the default with a _ so
3666 (InteractiveShell._prefilter): Defined the default with a _ so
3663 that prefilter() is easier to override, while the default one
3667 that prefilter() is easier to override, while the default one
3664 remains available.
3668 remains available.
3665
3669
3666 2002-04-18 Fernando Perez <fperez@colorado.edu>
3670 2002-04-18 Fernando Perez <fperez@colorado.edu>
3667
3671
3668 * Added information about pdb in the docs.
3672 * Added information about pdb in the docs.
3669
3673
3670 2002-04-17 Fernando Perez <fperez@colorado.edu>
3674 2002-04-17 Fernando Perez <fperez@colorado.edu>
3671
3675
3672 * IPython/ipmaker.py (make_IPython): added rc_override option to
3676 * IPython/ipmaker.py (make_IPython): added rc_override option to
3673 allow passing config options at creation time which may override
3677 allow passing config options at creation time which may override
3674 anything set in the config files or command line. This is
3678 anything set in the config files or command line. This is
3675 particularly useful for configuring embedded instances.
3679 particularly useful for configuring embedded instances.
3676
3680
3677 2002-04-15 Fernando Perez <fperez@colorado.edu>
3681 2002-04-15 Fernando Perez <fperez@colorado.edu>
3678
3682
3679 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3683 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3680 crash embedded instances because of the input cache falling out of
3684 crash embedded instances because of the input cache falling out of
3681 sync with the output counter.
3685 sync with the output counter.
3682
3686
3683 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3687 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3684 mode which calls pdb after an uncaught exception in IPython itself.
3688 mode which calls pdb after an uncaught exception in IPython itself.
3685
3689
3686 2002-04-14 Fernando Perez <fperez@colorado.edu>
3690 2002-04-14 Fernando Perez <fperez@colorado.edu>
3687
3691
3688 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3692 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3689 readline, fix it back after each call.
3693 readline, fix it back after each call.
3690
3694
3691 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3695 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3692 method to force all access via __call__(), which guarantees that
3696 method to force all access via __call__(), which guarantees that
3693 traceback references are properly deleted.
3697 traceback references are properly deleted.
3694
3698
3695 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3699 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3696 improve printing when pprint is in use.
3700 improve printing when pprint is in use.
3697
3701
3698 2002-04-13 Fernando Perez <fperez@colorado.edu>
3702 2002-04-13 Fernando Perez <fperez@colorado.edu>
3699
3703
3700 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3704 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3701 exceptions aren't caught anymore. If the user triggers one, he
3705 exceptions aren't caught anymore. If the user triggers one, he
3702 should know why he's doing it and it should go all the way up,
3706 should know why he's doing it and it should go all the way up,
3703 just like any other exception. So now @abort will fully kill the
3707 just like any other exception. So now @abort will fully kill the
3704 embedded interpreter and the embedding code (unless that happens
3708 embedded interpreter and the embedding code (unless that happens
3705 to catch SystemExit).
3709 to catch SystemExit).
3706
3710
3707 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3711 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3708 and a debugger() method to invoke the interactive pdb debugger
3712 and a debugger() method to invoke the interactive pdb debugger
3709 after printing exception information. Also added the corresponding
3713 after printing exception information. Also added the corresponding
3710 -pdb option and @pdb magic to control this feature, and updated
3714 -pdb option and @pdb magic to control this feature, and updated
3711 the docs. After a suggestion from Christopher Hart
3715 the docs. After a suggestion from Christopher Hart
3712 (hart-AT-caltech.edu).
3716 (hart-AT-caltech.edu).
3713
3717
3714 2002-04-12 Fernando Perez <fperez@colorado.edu>
3718 2002-04-12 Fernando Perez <fperez@colorado.edu>
3715
3719
3716 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3720 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3717 the exception handlers defined by the user (not the CrashHandler)
3721 the exception handlers defined by the user (not the CrashHandler)
3718 so that user exceptions don't trigger an ipython bug report.
3722 so that user exceptions don't trigger an ipython bug report.
3719
3723
3720 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3724 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3721 configurable (it should have always been so).
3725 configurable (it should have always been so).
3722
3726
3723 2002-03-26 Fernando Perez <fperez@colorado.edu>
3727 2002-03-26 Fernando Perez <fperez@colorado.edu>
3724
3728
3725 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3729 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3726 and there to fix embedding namespace issues. This should all be
3730 and there to fix embedding namespace issues. This should all be
3727 done in a more elegant way.
3731 done in a more elegant way.
3728
3732
3729 2002-03-25 Fernando Perez <fperez@colorado.edu>
3733 2002-03-25 Fernando Perez <fperez@colorado.edu>
3730
3734
3731 * IPython/genutils.py (get_home_dir): Try to make it work under
3735 * IPython/genutils.py (get_home_dir): Try to make it work under
3732 win9x also.
3736 win9x also.
3733
3737
3734 2002-03-20 Fernando Perez <fperez@colorado.edu>
3738 2002-03-20 Fernando Perez <fperez@colorado.edu>
3735
3739
3736 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3740 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3737 sys.displayhook untouched upon __init__.
3741 sys.displayhook untouched upon __init__.
3738
3742
3739 2002-03-19 Fernando Perez <fperez@colorado.edu>
3743 2002-03-19 Fernando Perez <fperez@colorado.edu>
3740
3744
3741 * Released 0.2.9 (for embedding bug, basically).
3745 * Released 0.2.9 (for embedding bug, basically).
3742
3746
3743 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3747 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3744 exceptions so that enclosing shell's state can be restored.
3748 exceptions so that enclosing shell's state can be restored.
3745
3749
3746 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3750 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3747 naming conventions in the .ipython/ dir.
3751 naming conventions in the .ipython/ dir.
3748
3752
3749 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3753 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3750 from delimiters list so filenames with - in them get expanded.
3754 from delimiters list so filenames with - in them get expanded.
3751
3755
3752 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3756 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3753 sys.displayhook not being properly restored after an embedded call.
3757 sys.displayhook not being properly restored after an embedded call.
3754
3758
3755 2002-03-18 Fernando Perez <fperez@colorado.edu>
3759 2002-03-18 Fernando Perez <fperez@colorado.edu>
3756
3760
3757 * Released 0.2.8
3761 * Released 0.2.8
3758
3762
3759 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3763 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3760 some files weren't being included in a -upgrade.
3764 some files weren't being included in a -upgrade.
3761 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3765 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3762 on' so that the first tab completes.
3766 on' so that the first tab completes.
3763 (InteractiveShell.handle_magic): fixed bug with spaces around
3767 (InteractiveShell.handle_magic): fixed bug with spaces around
3764 quotes breaking many magic commands.
3768 quotes breaking many magic commands.
3765
3769
3766 * setup.py: added note about ignoring the syntax error messages at
3770 * setup.py: added note about ignoring the syntax error messages at
3767 installation.
3771 installation.
3768
3772
3769 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3773 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3770 streamlining the gnuplot interface, now there's only one magic @gp.
3774 streamlining the gnuplot interface, now there's only one magic @gp.
3771
3775
3772 2002-03-17 Fernando Perez <fperez@colorado.edu>
3776 2002-03-17 Fernando Perez <fperez@colorado.edu>
3773
3777
3774 * IPython/UserConfig/magic_gnuplot.py: new name for the
3778 * IPython/UserConfig/magic_gnuplot.py: new name for the
3775 example-magic_pm.py file. Much enhanced system, now with a shell
3779 example-magic_pm.py file. Much enhanced system, now with a shell
3776 for communicating directly with gnuplot, one command at a time.
3780 for communicating directly with gnuplot, one command at a time.
3777
3781
3778 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3782 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3779 setting __name__=='__main__'.
3783 setting __name__=='__main__'.
3780
3784
3781 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3785 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3782 mini-shell for accessing gnuplot from inside ipython. Should
3786 mini-shell for accessing gnuplot from inside ipython. Should
3783 extend it later for grace access too. Inspired by Arnd's
3787 extend it later for grace access too. Inspired by Arnd's
3784 suggestion.
3788 suggestion.
3785
3789
3786 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3790 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3787 calling magic functions with () in their arguments. Thanks to Arnd
3791 calling magic functions with () in their arguments. Thanks to Arnd
3788 Baecker for pointing this to me.
3792 Baecker for pointing this to me.
3789
3793
3790 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3794 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3791 infinitely for integer or complex arrays (only worked with floats).
3795 infinitely for integer or complex arrays (only worked with floats).
3792
3796
3793 2002-03-16 Fernando Perez <fperez@colorado.edu>
3797 2002-03-16 Fernando Perez <fperez@colorado.edu>
3794
3798
3795 * setup.py: Merged setup and setup_windows into a single script
3799 * setup.py: Merged setup and setup_windows into a single script
3796 which properly handles things for windows users.
3800 which properly handles things for windows users.
3797
3801
3798 2002-03-15 Fernando Perez <fperez@colorado.edu>
3802 2002-03-15 Fernando Perez <fperez@colorado.edu>
3799
3803
3800 * Big change to the manual: now the magics are all automatically
3804 * Big change to the manual: now the magics are all automatically
3801 documented. This information is generated from their docstrings
3805 documented. This information is generated from their docstrings
3802 and put in a latex file included by the manual lyx file. This way
3806 and put in a latex file included by the manual lyx file. This way
3803 we get always up to date information for the magics. The manual
3807 we get always up to date information for the magics. The manual
3804 now also has proper version information, also auto-synced.
3808 now also has proper version information, also auto-synced.
3805
3809
3806 For this to work, an undocumented --magic_docstrings option was added.
3810 For this to work, an undocumented --magic_docstrings option was added.
3807
3811
3808 2002-03-13 Fernando Perez <fperez@colorado.edu>
3812 2002-03-13 Fernando Perez <fperez@colorado.edu>
3809
3813
3810 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3814 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3811 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3815 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3812
3816
3813 2002-03-12 Fernando Perez <fperez@colorado.edu>
3817 2002-03-12 Fernando Perez <fperez@colorado.edu>
3814
3818
3815 * IPython/ultraTB.py (TermColors): changed color escapes again to
3819 * IPython/ultraTB.py (TermColors): changed color escapes again to
3816 fix the (old, reintroduced) line-wrapping bug. Basically, if
3820 fix the (old, reintroduced) line-wrapping bug. Basically, if
3817 \001..\002 aren't given in the color escapes, lines get wrapped
3821 \001..\002 aren't given in the color escapes, lines get wrapped
3818 weirdly. But giving those screws up old xterms and emacs terms. So
3822 weirdly. But giving those screws up old xterms and emacs terms. So
3819 I added some logic for emacs terms to be ok, but I can't identify old
3823 I added some logic for emacs terms to be ok, but I can't identify old
3820 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3824 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3821
3825
3822 2002-03-10 Fernando Perez <fperez@colorado.edu>
3826 2002-03-10 Fernando Perez <fperez@colorado.edu>
3823
3827
3824 * IPython/usage.py (__doc__): Various documentation cleanups and
3828 * IPython/usage.py (__doc__): Various documentation cleanups and
3825 updates, both in usage docstrings and in the manual.
3829 updates, both in usage docstrings and in the manual.
3826
3830
3827 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3831 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3828 handling of caching. Set minimum acceptabe value for having a
3832 handling of caching. Set minimum acceptabe value for having a
3829 cache at 20 values.
3833 cache at 20 values.
3830
3834
3831 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3835 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3832 install_first_time function to a method, renamed it and added an
3836 install_first_time function to a method, renamed it and added an
3833 'upgrade' mode. Now people can update their config directory with
3837 'upgrade' mode. Now people can update their config directory with
3834 a simple command line switch (-upgrade, also new).
3838 a simple command line switch (-upgrade, also new).
3835
3839
3836 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3840 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3837 @file (convenient for automagic users under Python >= 2.2).
3841 @file (convenient for automagic users under Python >= 2.2).
3838 Removed @files (it seemed more like a plural than an abbrev. of
3842 Removed @files (it seemed more like a plural than an abbrev. of
3839 'file show').
3843 'file show').
3840
3844
3841 * IPython/iplib.py (install_first_time): Fixed crash if there were
3845 * IPython/iplib.py (install_first_time): Fixed crash if there were
3842 backup files ('~') in .ipython/ install directory.
3846 backup files ('~') in .ipython/ install directory.
3843
3847
3844 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3848 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3845 system. Things look fine, but these changes are fairly
3849 system. Things look fine, but these changes are fairly
3846 intrusive. Test them for a few days.
3850 intrusive. Test them for a few days.
3847
3851
3848 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3852 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3849 the prompts system. Now all in/out prompt strings are user
3853 the prompts system. Now all in/out prompt strings are user
3850 controllable. This is particularly useful for embedding, as one
3854 controllable. This is particularly useful for embedding, as one
3851 can tag embedded instances with particular prompts.
3855 can tag embedded instances with particular prompts.
3852
3856
3853 Also removed global use of sys.ps1/2, which now allows nested
3857 Also removed global use of sys.ps1/2, which now allows nested
3854 embeddings without any problems. Added command-line options for
3858 embeddings without any problems. Added command-line options for
3855 the prompt strings.
3859 the prompt strings.
3856
3860
3857 2002-03-08 Fernando Perez <fperez@colorado.edu>
3861 2002-03-08 Fernando Perez <fperez@colorado.edu>
3858
3862
3859 * IPython/UserConfig/example-embed-short.py (ipshell): added
3863 * IPython/UserConfig/example-embed-short.py (ipshell): added
3860 example file with the bare minimum code for embedding.
3864 example file with the bare minimum code for embedding.
3861
3865
3862 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3866 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3863 functionality for the embeddable shell to be activated/deactivated
3867 functionality for the embeddable shell to be activated/deactivated
3864 either globally or at each call.
3868 either globally or at each call.
3865
3869
3866 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3870 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3867 rewriting the prompt with '--->' for auto-inputs with proper
3871 rewriting the prompt with '--->' for auto-inputs with proper
3868 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3872 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3869 this is handled by the prompts class itself, as it should.
3873 this is handled by the prompts class itself, as it should.
3870
3874
3871 2002-03-05 Fernando Perez <fperez@colorado.edu>
3875 2002-03-05 Fernando Perez <fperez@colorado.edu>
3872
3876
3873 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3877 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3874 @logstart to avoid name clashes with the math log function.
3878 @logstart to avoid name clashes with the math log function.
3875
3879
3876 * Big updates to X/Emacs section of the manual.
3880 * Big updates to X/Emacs section of the manual.
3877
3881
3878 * Removed ipython_emacs. Milan explained to me how to pass
3882 * Removed ipython_emacs. Milan explained to me how to pass
3879 arguments to ipython through Emacs. Some day I'm going to end up
3883 arguments to ipython through Emacs. Some day I'm going to end up
3880 learning some lisp...
3884 learning some lisp...
3881
3885
3882 2002-03-04 Fernando Perez <fperez@colorado.edu>
3886 2002-03-04 Fernando Perez <fperez@colorado.edu>
3883
3887
3884 * IPython/ipython_emacs: Created script to be used as the
3888 * IPython/ipython_emacs: Created script to be used as the
3885 py-python-command Emacs variable so we can pass IPython
3889 py-python-command Emacs variable so we can pass IPython
3886 parameters. I can't figure out how to tell Emacs directly to pass
3890 parameters. I can't figure out how to tell Emacs directly to pass
3887 parameters to IPython, so a dummy shell script will do it.
3891 parameters to IPython, so a dummy shell script will do it.
3888
3892
3889 Other enhancements made for things to work better under Emacs'
3893 Other enhancements made for things to work better under Emacs'
3890 various types of terminals. Many thanks to Milan Zamazal
3894 various types of terminals. Many thanks to Milan Zamazal
3891 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3895 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3892
3896
3893 2002-03-01 Fernando Perez <fperez@colorado.edu>
3897 2002-03-01 Fernando Perez <fperez@colorado.edu>
3894
3898
3895 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3899 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3896 that loading of readline is now optional. This gives better
3900 that loading of readline is now optional. This gives better
3897 control to emacs users.
3901 control to emacs users.
3898
3902
3899 * IPython/ultraTB.py (__date__): Modified color escape sequences
3903 * IPython/ultraTB.py (__date__): Modified color escape sequences
3900 and now things work fine under xterm and in Emacs' term buffers
3904 and now things work fine under xterm and in Emacs' term buffers
3901 (though not shell ones). Well, in emacs you get colors, but all
3905 (though not shell ones). Well, in emacs you get colors, but all
3902 seem to be 'light' colors (no difference between dark and light
3906 seem to be 'light' colors (no difference between dark and light
3903 ones). But the garbage chars are gone, and also in xterms. It
3907 ones). But the garbage chars are gone, and also in xterms. It
3904 seems that now I'm using 'cleaner' ansi sequences.
3908 seems that now I'm using 'cleaner' ansi sequences.
3905
3909
3906 2002-02-21 Fernando Perez <fperez@colorado.edu>
3910 2002-02-21 Fernando Perez <fperez@colorado.edu>
3907
3911
3908 * Released 0.2.7 (mainly to publish the scoping fix).
3912 * Released 0.2.7 (mainly to publish the scoping fix).
3909
3913
3910 * IPython/Logger.py (Logger.logstate): added. A corresponding
3914 * IPython/Logger.py (Logger.logstate): added. A corresponding
3911 @logstate magic was created.
3915 @logstate magic was created.
3912
3916
3913 * IPython/Magic.py: fixed nested scoping problem under Python
3917 * IPython/Magic.py: fixed nested scoping problem under Python
3914 2.1.x (automagic wasn't working).
3918 2.1.x (automagic wasn't working).
3915
3919
3916 2002-02-20 Fernando Perez <fperez@colorado.edu>
3920 2002-02-20 Fernando Perez <fperez@colorado.edu>
3917
3921
3918 * Released 0.2.6.
3922 * Released 0.2.6.
3919
3923
3920 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3924 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3921 option so that logs can come out without any headers at all.
3925 option so that logs can come out without any headers at all.
3922
3926
3923 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3927 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3924 SciPy.
3928 SciPy.
3925
3929
3926 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3930 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3927 that embedded IPython calls don't require vars() to be explicitly
3931 that embedded IPython calls don't require vars() to be explicitly
3928 passed. Now they are extracted from the caller's frame (code
3932 passed. Now they are extracted from the caller's frame (code
3929 snatched from Eric Jones' weave). Added better documentation to
3933 snatched from Eric Jones' weave). Added better documentation to
3930 the section on embedding and the example file.
3934 the section on embedding and the example file.
3931
3935
3932 * IPython/genutils.py (page): Changed so that under emacs, it just
3936 * IPython/genutils.py (page): Changed so that under emacs, it just
3933 prints the string. You can then page up and down in the emacs
3937 prints the string. You can then page up and down in the emacs
3934 buffer itself. This is how the builtin help() works.
3938 buffer itself. This is how the builtin help() works.
3935
3939
3936 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3940 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3937 macro scoping: macros need to be executed in the user's namespace
3941 macro scoping: macros need to be executed in the user's namespace
3938 to work as if they had been typed by the user.
3942 to work as if they had been typed by the user.
3939
3943
3940 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3944 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3941 execute automatically (no need to type 'exec...'). They then
3945 execute automatically (no need to type 'exec...'). They then
3942 behave like 'true macros'. The printing system was also modified
3946 behave like 'true macros'. The printing system was also modified
3943 for this to work.
3947 for this to work.
3944
3948
3945 2002-02-19 Fernando Perez <fperez@colorado.edu>
3949 2002-02-19 Fernando Perez <fperez@colorado.edu>
3946
3950
3947 * IPython/genutils.py (page_file): new function for paging files
3951 * IPython/genutils.py (page_file): new function for paging files
3948 in an OS-independent way. Also necessary for file viewing to work
3952 in an OS-independent way. Also necessary for file viewing to work
3949 well inside Emacs buffers.
3953 well inside Emacs buffers.
3950 (page): Added checks for being in an emacs buffer.
3954 (page): Added checks for being in an emacs buffer.
3951 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3955 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3952 same bug in iplib.
3956 same bug in iplib.
3953
3957
3954 2002-02-18 Fernando Perez <fperez@colorado.edu>
3958 2002-02-18 Fernando Perez <fperez@colorado.edu>
3955
3959
3956 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3960 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3957 of readline so that IPython can work inside an Emacs buffer.
3961 of readline so that IPython can work inside an Emacs buffer.
3958
3962
3959 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3963 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3960 method signatures (they weren't really bugs, but it looks cleaner
3964 method signatures (they weren't really bugs, but it looks cleaner
3961 and keeps PyChecker happy).
3965 and keeps PyChecker happy).
3962
3966
3963 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3967 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3964 for implementing various user-defined hooks. Currently only
3968 for implementing various user-defined hooks. Currently only
3965 display is done.
3969 display is done.
3966
3970
3967 * IPython/Prompts.py (CachedOutput._display): changed display
3971 * IPython/Prompts.py (CachedOutput._display): changed display
3968 functions so that they can be dynamically changed by users easily.
3972 functions so that they can be dynamically changed by users easily.
3969
3973
3970 * IPython/Extensions/numeric_formats.py (num_display): added an
3974 * IPython/Extensions/numeric_formats.py (num_display): added an
3971 extension for printing NumPy arrays in flexible manners. It
3975 extension for printing NumPy arrays in flexible manners. It
3972 doesn't do anything yet, but all the structure is in
3976 doesn't do anything yet, but all the structure is in
3973 place. Ultimately the plan is to implement output format control
3977 place. Ultimately the plan is to implement output format control
3974 like in Octave.
3978 like in Octave.
3975
3979
3976 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3980 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3977 methods are found at run-time by all the automatic machinery.
3981 methods are found at run-time by all the automatic machinery.
3978
3982
3979 2002-02-17 Fernando Perez <fperez@colorado.edu>
3983 2002-02-17 Fernando Perez <fperez@colorado.edu>
3980
3984
3981 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3985 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3982 whole file a little.
3986 whole file a little.
3983
3987
3984 * ToDo: closed this document. Now there's a new_design.lyx
3988 * ToDo: closed this document. Now there's a new_design.lyx
3985 document for all new ideas. Added making a pdf of it for the
3989 document for all new ideas. Added making a pdf of it for the
3986 end-user distro.
3990 end-user distro.
3987
3991
3988 * IPython/Logger.py (Logger.switch_log): Created this to replace
3992 * IPython/Logger.py (Logger.switch_log): Created this to replace
3989 logon() and logoff(). It also fixes a nasty crash reported by
3993 logon() and logoff(). It also fixes a nasty crash reported by
3990 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3994 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3991
3995
3992 * IPython/iplib.py (complete): got auto-completion to work with
3996 * IPython/iplib.py (complete): got auto-completion to work with
3993 automagic (I had wanted this for a long time).
3997 automagic (I had wanted this for a long time).
3994
3998
3995 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3999 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3996 to @file, since file() is now a builtin and clashes with automagic
4000 to @file, since file() is now a builtin and clashes with automagic
3997 for @file.
4001 for @file.
3998
4002
3999 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4003 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4000 of this was previously in iplib, which had grown to more than 2000
4004 of this was previously in iplib, which had grown to more than 2000
4001 lines, way too long. No new functionality, but it makes managing
4005 lines, way too long. No new functionality, but it makes managing
4002 the code a bit easier.
4006 the code a bit easier.
4003
4007
4004 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4008 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4005 information to crash reports.
4009 information to crash reports.
4006
4010
4007 2002-02-12 Fernando Perez <fperez@colorado.edu>
4011 2002-02-12 Fernando Perez <fperez@colorado.edu>
4008
4012
4009 * Released 0.2.5.
4013 * Released 0.2.5.
4010
4014
4011 2002-02-11 Fernando Perez <fperez@colorado.edu>
4015 2002-02-11 Fernando Perez <fperez@colorado.edu>
4012
4016
4013 * Wrote a relatively complete Windows installer. It puts
4017 * Wrote a relatively complete Windows installer. It puts
4014 everything in place, creates Start Menu entries and fixes the
4018 everything in place, creates Start Menu entries and fixes the
4015 color issues. Nothing fancy, but it works.
4019 color issues. Nothing fancy, but it works.
4016
4020
4017 2002-02-10 Fernando Perez <fperez@colorado.edu>
4021 2002-02-10 Fernando Perez <fperez@colorado.edu>
4018
4022
4019 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4023 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4020 os.path.expanduser() call so that we can type @run ~/myfile.py and
4024 os.path.expanduser() call so that we can type @run ~/myfile.py and
4021 have thigs work as expected.
4025 have thigs work as expected.
4022
4026
4023 * IPython/genutils.py (page): fixed exception handling so things
4027 * IPython/genutils.py (page): fixed exception handling so things
4024 work both in Unix and Windows correctly. Quitting a pager triggers
4028 work both in Unix and Windows correctly. Quitting a pager triggers
4025 an IOError/broken pipe in Unix, and in windows not finding a pager
4029 an IOError/broken pipe in Unix, and in windows not finding a pager
4026 is also an IOError, so I had to actually look at the return value
4030 is also an IOError, so I had to actually look at the return value
4027 of the exception, not just the exception itself. Should be ok now.
4031 of the exception, not just the exception itself. Should be ok now.
4028
4032
4029 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4033 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4030 modified to allow case-insensitive color scheme changes.
4034 modified to allow case-insensitive color scheme changes.
4031
4035
4032 2002-02-09 Fernando Perez <fperez@colorado.edu>
4036 2002-02-09 Fernando Perez <fperez@colorado.edu>
4033
4037
4034 * IPython/genutils.py (native_line_ends): new function to leave
4038 * IPython/genutils.py (native_line_ends): new function to leave
4035 user config files with os-native line-endings.
4039 user config files with os-native line-endings.
4036
4040
4037 * README and manual updates.
4041 * README and manual updates.
4038
4042
4039 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4043 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4040 instead of StringType to catch Unicode strings.
4044 instead of StringType to catch Unicode strings.
4041
4045
4042 * IPython/genutils.py (filefind): fixed bug for paths with
4046 * IPython/genutils.py (filefind): fixed bug for paths with
4043 embedded spaces (very common in Windows).
4047 embedded spaces (very common in Windows).
4044
4048
4045 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4049 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4046 files under Windows, so that they get automatically associated
4050 files under Windows, so that they get automatically associated
4047 with a text editor. Windows makes it a pain to handle
4051 with a text editor. Windows makes it a pain to handle
4048 extension-less files.
4052 extension-less files.
4049
4053
4050 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4054 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4051 warning about readline only occur for Posix. In Windows there's no
4055 warning about readline only occur for Posix. In Windows there's no
4052 way to get readline, so why bother with the warning.
4056 way to get readline, so why bother with the warning.
4053
4057
4054 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4058 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4055 for __str__ instead of dir(self), since dir() changed in 2.2.
4059 for __str__ instead of dir(self), since dir() changed in 2.2.
4056
4060
4057 * Ported to Windows! Tested on XP, I suspect it should work fine
4061 * Ported to Windows! Tested on XP, I suspect it should work fine
4058 on NT/2000, but I don't think it will work on 98 et al. That
4062 on NT/2000, but I don't think it will work on 98 et al. That
4059 series of Windows is such a piece of junk anyway that I won't try
4063 series of Windows is such a piece of junk anyway that I won't try
4060 porting it there. The XP port was straightforward, showed a few
4064 porting it there. The XP port was straightforward, showed a few
4061 bugs here and there (fixed all), in particular some string
4065 bugs here and there (fixed all), in particular some string
4062 handling stuff which required considering Unicode strings (which
4066 handling stuff which required considering Unicode strings (which
4063 Windows uses). This is good, but hasn't been too tested :) No
4067 Windows uses). This is good, but hasn't been too tested :) No
4064 fancy installer yet, I'll put a note in the manual so people at
4068 fancy installer yet, I'll put a note in the manual so people at
4065 least make manually a shortcut.
4069 least make manually a shortcut.
4066
4070
4067 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4071 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4068 into a single one, "colors". This now controls both prompt and
4072 into a single one, "colors". This now controls both prompt and
4069 exception color schemes, and can be changed both at startup
4073 exception color schemes, and can be changed both at startup
4070 (either via command-line switches or via ipythonrc files) and at
4074 (either via command-line switches or via ipythonrc files) and at
4071 runtime, with @colors.
4075 runtime, with @colors.
4072 (Magic.magic_run): renamed @prun to @run and removed the old
4076 (Magic.magic_run): renamed @prun to @run and removed the old
4073 @run. The two were too similar to warrant keeping both.
4077 @run. The two were too similar to warrant keeping both.
4074
4078
4075 2002-02-03 Fernando Perez <fperez@colorado.edu>
4079 2002-02-03 Fernando Perez <fperez@colorado.edu>
4076
4080
4077 * IPython/iplib.py (install_first_time): Added comment on how to
4081 * IPython/iplib.py (install_first_time): Added comment on how to
4078 configure the color options for first-time users. Put a <return>
4082 configure the color options for first-time users. Put a <return>
4079 request at the end so that small-terminal users get a chance to
4083 request at the end so that small-terminal users get a chance to
4080 read the startup info.
4084 read the startup info.
4081
4085
4082 2002-01-23 Fernando Perez <fperez@colorado.edu>
4086 2002-01-23 Fernando Perez <fperez@colorado.edu>
4083
4087
4084 * IPython/iplib.py (CachedOutput.update): Changed output memory
4088 * IPython/iplib.py (CachedOutput.update): Changed output memory
4085 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4089 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4086 input history we still use _i. Did this b/c these variable are
4090 input history we still use _i. Did this b/c these variable are
4087 very commonly used in interactive work, so the less we need to
4091 very commonly used in interactive work, so the less we need to
4088 type the better off we are.
4092 type the better off we are.
4089 (Magic.magic_prun): updated @prun to better handle the namespaces
4093 (Magic.magic_prun): updated @prun to better handle the namespaces
4090 the file will run in, including a fix for __name__ not being set
4094 the file will run in, including a fix for __name__ not being set
4091 before.
4095 before.
4092
4096
4093 2002-01-20 Fernando Perez <fperez@colorado.edu>
4097 2002-01-20 Fernando Perez <fperez@colorado.edu>
4094
4098
4095 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4099 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4096 extra garbage for Python 2.2. Need to look more carefully into
4100 extra garbage for Python 2.2. Need to look more carefully into
4097 this later.
4101 this later.
4098
4102
4099 2002-01-19 Fernando Perez <fperez@colorado.edu>
4103 2002-01-19 Fernando Perez <fperez@colorado.edu>
4100
4104
4101 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4105 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4102 display SyntaxError exceptions properly formatted when they occur
4106 display SyntaxError exceptions properly formatted when they occur
4103 (they can be triggered by imported code).
4107 (they can be triggered by imported code).
4104
4108
4105 2002-01-18 Fernando Perez <fperez@colorado.edu>
4109 2002-01-18 Fernando Perez <fperez@colorado.edu>
4106
4110
4107 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4111 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4108 SyntaxError exceptions are reported nicely formatted, instead of
4112 SyntaxError exceptions are reported nicely formatted, instead of
4109 spitting out only offset information as before.
4113 spitting out only offset information as before.
4110 (Magic.magic_prun): Added the @prun function for executing
4114 (Magic.magic_prun): Added the @prun function for executing
4111 programs with command line args inside IPython.
4115 programs with command line args inside IPython.
4112
4116
4113 2002-01-16 Fernando Perez <fperez@colorado.edu>
4117 2002-01-16 Fernando Perez <fperez@colorado.edu>
4114
4118
4115 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4119 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4116 to *not* include the last item given in a range. This brings their
4120 to *not* include the last item given in a range. This brings their
4117 behavior in line with Python's slicing:
4121 behavior in line with Python's slicing:
4118 a[n1:n2] -> a[n1]...a[n2-1]
4122 a[n1:n2] -> a[n1]...a[n2-1]
4119 It may be a bit less convenient, but I prefer to stick to Python's
4123 It may be a bit less convenient, but I prefer to stick to Python's
4120 conventions *everywhere*, so users never have to wonder.
4124 conventions *everywhere*, so users never have to wonder.
4121 (Magic.magic_macro): Added @macro function to ease the creation of
4125 (Magic.magic_macro): Added @macro function to ease the creation of
4122 macros.
4126 macros.
4123
4127
4124 2002-01-05 Fernando Perez <fperez@colorado.edu>
4128 2002-01-05 Fernando Perez <fperez@colorado.edu>
4125
4129
4126 * Released 0.2.4.
4130 * Released 0.2.4.
4127
4131
4128 * IPython/iplib.py (Magic.magic_pdef):
4132 * IPython/iplib.py (Magic.magic_pdef):
4129 (InteractiveShell.safe_execfile): report magic lines and error
4133 (InteractiveShell.safe_execfile): report magic lines and error
4130 lines without line numbers so one can easily copy/paste them for
4134 lines without line numbers so one can easily copy/paste them for
4131 re-execution.
4135 re-execution.
4132
4136
4133 * Updated manual with recent changes.
4137 * Updated manual with recent changes.
4134
4138
4135 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4139 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4136 docstring printing when class? is called. Very handy for knowing
4140 docstring printing when class? is called. Very handy for knowing
4137 how to create class instances (as long as __init__ is well
4141 how to create class instances (as long as __init__ is well
4138 documented, of course :)
4142 documented, of course :)
4139 (Magic.magic_doc): print both class and constructor docstrings.
4143 (Magic.magic_doc): print both class and constructor docstrings.
4140 (Magic.magic_pdef): give constructor info if passed a class and
4144 (Magic.magic_pdef): give constructor info if passed a class and
4141 __call__ info for callable object instances.
4145 __call__ info for callable object instances.
4142
4146
4143 2002-01-04 Fernando Perez <fperez@colorado.edu>
4147 2002-01-04 Fernando Perez <fperez@colorado.edu>
4144
4148
4145 * Made deep_reload() off by default. It doesn't always work
4149 * Made deep_reload() off by default. It doesn't always work
4146 exactly as intended, so it's probably safer to have it off. It's
4150 exactly as intended, so it's probably safer to have it off. It's
4147 still available as dreload() anyway, so nothing is lost.
4151 still available as dreload() anyway, so nothing is lost.
4148
4152
4149 2002-01-02 Fernando Perez <fperez@colorado.edu>
4153 2002-01-02 Fernando Perez <fperez@colorado.edu>
4150
4154
4151 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4155 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4152 so I wanted an updated release).
4156 so I wanted an updated release).
4153
4157
4154 2001-12-27 Fernando Perez <fperez@colorado.edu>
4158 2001-12-27 Fernando Perez <fperez@colorado.edu>
4155
4159
4156 * IPython/iplib.py (InteractiveShell.interact): Added the original
4160 * IPython/iplib.py (InteractiveShell.interact): Added the original
4157 code from 'code.py' for this module in order to change the
4161 code from 'code.py' for this module in order to change the
4158 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4162 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4159 the history cache would break when the user hit Ctrl-C, and
4163 the history cache would break when the user hit Ctrl-C, and
4160 interact() offers no way to add any hooks to it.
4164 interact() offers no way to add any hooks to it.
4161
4165
4162 2001-12-23 Fernando Perez <fperez@colorado.edu>
4166 2001-12-23 Fernando Perez <fperez@colorado.edu>
4163
4167
4164 * setup.py: added check for 'MANIFEST' before trying to remove
4168 * setup.py: added check for 'MANIFEST' before trying to remove
4165 it. Thanks to Sean Reifschneider.
4169 it. Thanks to Sean Reifschneider.
4166
4170
4167 2001-12-22 Fernando Perez <fperez@colorado.edu>
4171 2001-12-22 Fernando Perez <fperez@colorado.edu>
4168
4172
4169 * Released 0.2.2.
4173 * Released 0.2.2.
4170
4174
4171 * Finished (reasonably) writing the manual. Later will add the
4175 * Finished (reasonably) writing the manual. Later will add the
4172 python-standard navigation stylesheets, but for the time being
4176 python-standard navigation stylesheets, but for the time being
4173 it's fairly complete. Distribution will include html and pdf
4177 it's fairly complete. Distribution will include html and pdf
4174 versions.
4178 versions.
4175
4179
4176 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4180 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4177 (MayaVi author).
4181 (MayaVi author).
4178
4182
4179 2001-12-21 Fernando Perez <fperez@colorado.edu>
4183 2001-12-21 Fernando Perez <fperez@colorado.edu>
4180
4184
4181 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4185 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4182 good public release, I think (with the manual and the distutils
4186 good public release, I think (with the manual and the distutils
4183 installer). The manual can use some work, but that can go
4187 installer). The manual can use some work, but that can go
4184 slowly. Otherwise I think it's quite nice for end users. Next
4188 slowly. Otherwise I think it's quite nice for end users. Next
4185 summer, rewrite the guts of it...
4189 summer, rewrite the guts of it...
4186
4190
4187 * Changed format of ipythonrc files to use whitespace as the
4191 * Changed format of ipythonrc files to use whitespace as the
4188 separator instead of an explicit '='. Cleaner.
4192 separator instead of an explicit '='. Cleaner.
4189
4193
4190 2001-12-20 Fernando Perez <fperez@colorado.edu>
4194 2001-12-20 Fernando Perez <fperez@colorado.edu>
4191
4195
4192 * Started a manual in LyX. For now it's just a quick merge of the
4196 * Started a manual in LyX. For now it's just a quick merge of the
4193 various internal docstrings and READMEs. Later it may grow into a
4197 various internal docstrings and READMEs. Later it may grow into a
4194 nice, full-blown manual.
4198 nice, full-blown manual.
4195
4199
4196 * Set up a distutils based installer. Installation should now be
4200 * Set up a distutils based installer. Installation should now be
4197 trivially simple for end-users.
4201 trivially simple for end-users.
4198
4202
4199 2001-12-11 Fernando Perez <fperez@colorado.edu>
4203 2001-12-11 Fernando Perez <fperez@colorado.edu>
4200
4204
4201 * Released 0.2.0. First public release, announced it at
4205 * Released 0.2.0. First public release, announced it at
4202 comp.lang.python. From now on, just bugfixes...
4206 comp.lang.python. From now on, just bugfixes...
4203
4207
4204 * Went through all the files, set copyright/license notices and
4208 * Went through all the files, set copyright/license notices and
4205 cleaned up things. Ready for release.
4209 cleaned up things. Ready for release.
4206
4210
4207 2001-12-10 Fernando Perez <fperez@colorado.edu>
4211 2001-12-10 Fernando Perez <fperez@colorado.edu>
4208
4212
4209 * Changed the first-time installer not to use tarfiles. It's more
4213 * Changed the first-time installer not to use tarfiles. It's more
4210 robust now and less unix-dependent. Also makes it easier for
4214 robust now and less unix-dependent. Also makes it easier for
4211 people to later upgrade versions.
4215 people to later upgrade versions.
4212
4216
4213 * Changed @exit to @abort to reflect the fact that it's pretty
4217 * Changed @exit to @abort to reflect the fact that it's pretty
4214 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4218 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4215 becomes significant only when IPyhton is embedded: in that case,
4219 becomes significant only when IPyhton is embedded: in that case,
4216 C-D closes IPython only, but @abort kills the enclosing program
4220 C-D closes IPython only, but @abort kills the enclosing program
4217 too (unless it had called IPython inside a try catching
4221 too (unless it had called IPython inside a try catching
4218 SystemExit).
4222 SystemExit).
4219
4223
4220 * Created Shell module which exposes the actuall IPython Shell
4224 * Created Shell module which exposes the actuall IPython Shell
4221 classes, currently the normal and the embeddable one. This at
4225 classes, currently the normal and the embeddable one. This at
4222 least offers a stable interface we won't need to change when
4226 least offers a stable interface we won't need to change when
4223 (later) the internals are rewritten. That rewrite will be confined
4227 (later) the internals are rewritten. That rewrite will be confined
4224 to iplib and ipmaker, but the Shell interface should remain as is.
4228 to iplib and ipmaker, but the Shell interface should remain as is.
4225
4229
4226 * Added embed module which offers an embeddable IPShell object,
4230 * Added embed module which offers an embeddable IPShell object,
4227 useful to fire up IPython *inside* a running program. Great for
4231 useful to fire up IPython *inside* a running program. Great for
4228 debugging or dynamical data analysis.
4232 debugging or dynamical data analysis.
4229
4233
4230 2001-12-08 Fernando Perez <fperez@colorado.edu>
4234 2001-12-08 Fernando Perez <fperez@colorado.edu>
4231
4235
4232 * Fixed small bug preventing seeing info from methods of defined
4236 * Fixed small bug preventing seeing info from methods of defined
4233 objects (incorrect namespace in _ofind()).
4237 objects (incorrect namespace in _ofind()).
4234
4238
4235 * Documentation cleanup. Moved the main usage docstrings to a
4239 * Documentation cleanup. Moved the main usage docstrings to a
4236 separate file, usage.py (cleaner to maintain, and hopefully in the
4240 separate file, usage.py (cleaner to maintain, and hopefully in the
4237 future some perlpod-like way of producing interactive, man and
4241 future some perlpod-like way of producing interactive, man and
4238 html docs out of it will be found).
4242 html docs out of it will be found).
4239
4243
4240 * Added @profile to see your profile at any time.
4244 * Added @profile to see your profile at any time.
4241
4245
4242 * Added @p as an alias for 'print'. It's especially convenient if
4246 * Added @p as an alias for 'print'. It's especially convenient if
4243 using automagic ('p x' prints x).
4247 using automagic ('p x' prints x).
4244
4248
4245 * Small cleanups and fixes after a pychecker run.
4249 * Small cleanups and fixes after a pychecker run.
4246
4250
4247 * Changed the @cd command to handle @cd - and @cd -<n> for
4251 * Changed the @cd command to handle @cd - and @cd -<n> for
4248 visiting any directory in _dh.
4252 visiting any directory in _dh.
4249
4253
4250 * Introduced _dh, a history of visited directories. @dhist prints
4254 * Introduced _dh, a history of visited directories. @dhist prints
4251 it out with numbers.
4255 it out with numbers.
4252
4256
4253 2001-12-07 Fernando Perez <fperez@colorado.edu>
4257 2001-12-07 Fernando Perez <fperez@colorado.edu>
4254
4258
4255 * Released 0.1.22
4259 * Released 0.1.22
4256
4260
4257 * Made initialization a bit more robust against invalid color
4261 * Made initialization a bit more robust against invalid color
4258 options in user input (exit, not traceback-crash).
4262 options in user input (exit, not traceback-crash).
4259
4263
4260 * Changed the bug crash reporter to write the report only in the
4264 * Changed the bug crash reporter to write the report only in the
4261 user's .ipython directory. That way IPython won't litter people's
4265 user's .ipython directory. That way IPython won't litter people's
4262 hard disks with crash files all over the place. Also print on
4266 hard disks with crash files all over the place. Also print on
4263 screen the necessary mail command.
4267 screen the necessary mail command.
4264
4268
4265 * With the new ultraTB, implemented LightBG color scheme for light
4269 * With the new ultraTB, implemented LightBG color scheme for light
4266 background terminals. A lot of people like white backgrounds, so I
4270 background terminals. A lot of people like white backgrounds, so I
4267 guess we should at least give them something readable.
4271 guess we should at least give them something readable.
4268
4272
4269 2001-12-06 Fernando Perez <fperez@colorado.edu>
4273 2001-12-06 Fernando Perez <fperez@colorado.edu>
4270
4274
4271 * Modified the structure of ultraTB. Now there's a proper class
4275 * Modified the structure of ultraTB. Now there's a proper class
4272 for tables of color schemes which allow adding schemes easily and
4276 for tables of color schemes which allow adding schemes easily and
4273 switching the active scheme without creating a new instance every
4277 switching the active scheme without creating a new instance every
4274 time (which was ridiculous). The syntax for creating new schemes
4278 time (which was ridiculous). The syntax for creating new schemes
4275 is also cleaner. I think ultraTB is finally done, with a clean
4279 is also cleaner. I think ultraTB is finally done, with a clean
4276 class structure. Names are also much cleaner (now there's proper
4280 class structure. Names are also much cleaner (now there's proper
4277 color tables, no need for every variable to also have 'color' in
4281 color tables, no need for every variable to also have 'color' in
4278 its name).
4282 its name).
4279
4283
4280 * Broke down genutils into separate files. Now genutils only
4284 * Broke down genutils into separate files. Now genutils only
4281 contains utility functions, and classes have been moved to their
4285 contains utility functions, and classes have been moved to their
4282 own files (they had enough independent functionality to warrant
4286 own files (they had enough independent functionality to warrant
4283 it): ConfigLoader, OutputTrap, Struct.
4287 it): ConfigLoader, OutputTrap, Struct.
4284
4288
4285 2001-12-05 Fernando Perez <fperez@colorado.edu>
4289 2001-12-05 Fernando Perez <fperez@colorado.edu>
4286
4290
4287 * IPython turns 21! Released version 0.1.21, as a candidate for
4291 * IPython turns 21! Released version 0.1.21, as a candidate for
4288 public consumption. If all goes well, release in a few days.
4292 public consumption. If all goes well, release in a few days.
4289
4293
4290 * Fixed path bug (files in Extensions/ directory wouldn't be found
4294 * Fixed path bug (files in Extensions/ directory wouldn't be found
4291 unless IPython/ was explicitly in sys.path).
4295 unless IPython/ was explicitly in sys.path).
4292
4296
4293 * Extended the FlexCompleter class as MagicCompleter to allow
4297 * Extended the FlexCompleter class as MagicCompleter to allow
4294 completion of @-starting lines.
4298 completion of @-starting lines.
4295
4299
4296 * Created __release__.py file as a central repository for release
4300 * Created __release__.py file as a central repository for release
4297 info that other files can read from.
4301 info that other files can read from.
4298
4302
4299 * Fixed small bug in logging: when logging was turned on in
4303 * Fixed small bug in logging: when logging was turned on in
4300 mid-session, old lines with special meanings (!@?) were being
4304 mid-session, old lines with special meanings (!@?) were being
4301 logged without the prepended comment, which is necessary since
4305 logged without the prepended comment, which is necessary since
4302 they are not truly valid python syntax. This should make session
4306 they are not truly valid python syntax. This should make session
4303 restores produce less errors.
4307 restores produce less errors.
4304
4308
4305 * The namespace cleanup forced me to make a FlexCompleter class
4309 * The namespace cleanup forced me to make a FlexCompleter class
4306 which is nothing but a ripoff of rlcompleter, but with selectable
4310 which is nothing but a ripoff of rlcompleter, but with selectable
4307 namespace (rlcompleter only works in __main__.__dict__). I'll try
4311 namespace (rlcompleter only works in __main__.__dict__). I'll try
4308 to submit a note to the authors to see if this change can be
4312 to submit a note to the authors to see if this change can be
4309 incorporated in future rlcompleter releases (Dec.6: done)
4313 incorporated in future rlcompleter releases (Dec.6: done)
4310
4314
4311 * More fixes to namespace handling. It was a mess! Now all
4315 * More fixes to namespace handling. It was a mess! Now all
4312 explicit references to __main__.__dict__ are gone (except when
4316 explicit references to __main__.__dict__ are gone (except when
4313 really needed) and everything is handled through the namespace
4317 really needed) and everything is handled through the namespace
4314 dicts in the IPython instance. We seem to be getting somewhere
4318 dicts in the IPython instance. We seem to be getting somewhere
4315 with this, finally...
4319 with this, finally...
4316
4320
4317 * Small documentation updates.
4321 * Small documentation updates.
4318
4322
4319 * Created the Extensions directory under IPython (with an
4323 * Created the Extensions directory under IPython (with an
4320 __init__.py). Put the PhysicalQ stuff there. This directory should
4324 __init__.py). Put the PhysicalQ stuff there. This directory should
4321 be used for all special-purpose extensions.
4325 be used for all special-purpose extensions.
4322
4326
4323 * File renaming:
4327 * File renaming:
4324 ipythonlib --> ipmaker
4328 ipythonlib --> ipmaker
4325 ipplib --> iplib
4329 ipplib --> iplib
4326 This makes a bit more sense in terms of what these files actually do.
4330 This makes a bit more sense in terms of what these files actually do.
4327
4331
4328 * Moved all the classes and functions in ipythonlib to ipplib, so
4332 * Moved all the classes and functions in ipythonlib to ipplib, so
4329 now ipythonlib only has make_IPython(). This will ease up its
4333 now ipythonlib only has make_IPython(). This will ease up its
4330 splitting in smaller functional chunks later.
4334 splitting in smaller functional chunks later.
4331
4335
4332 * Cleaned up (done, I think) output of @whos. Better column
4336 * Cleaned up (done, I think) output of @whos. Better column
4333 formatting, and now shows str(var) for as much as it can, which is
4337 formatting, and now shows str(var) for as much as it can, which is
4334 typically what one gets with a 'print var'.
4338 typically what one gets with a 'print var'.
4335
4339
4336 2001-12-04 Fernando Perez <fperez@colorado.edu>
4340 2001-12-04 Fernando Perez <fperez@colorado.edu>
4337
4341
4338 * Fixed namespace problems. Now builtin/IPyhton/user names get
4342 * Fixed namespace problems. Now builtin/IPyhton/user names get
4339 properly reported in their namespace. Internal namespace handling
4343 properly reported in their namespace. Internal namespace handling
4340 is finally getting decent (not perfect yet, but much better than
4344 is finally getting decent (not perfect yet, but much better than
4341 the ad-hoc mess we had).
4345 the ad-hoc mess we had).
4342
4346
4343 * Removed -exit option. If people just want to run a python
4347 * Removed -exit option. If people just want to run a python
4344 script, that's what the normal interpreter is for. Less
4348 script, that's what the normal interpreter is for. Less
4345 unnecessary options, less chances for bugs.
4349 unnecessary options, less chances for bugs.
4346
4350
4347 * Added a crash handler which generates a complete post-mortem if
4351 * Added a crash handler which generates a complete post-mortem if
4348 IPython crashes. This will help a lot in tracking bugs down the
4352 IPython crashes. This will help a lot in tracking bugs down the
4349 road.
4353 road.
4350
4354
4351 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4355 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4352 which were boud to functions being reassigned would bypass the
4356 which were boud to functions being reassigned would bypass the
4353 logger, breaking the sync of _il with the prompt counter. This
4357 logger, breaking the sync of _il with the prompt counter. This
4354 would then crash IPython later when a new line was logged.
4358 would then crash IPython later when a new line was logged.
4355
4359
4356 2001-12-02 Fernando Perez <fperez@colorado.edu>
4360 2001-12-02 Fernando Perez <fperez@colorado.edu>
4357
4361
4358 * Made IPython a package. This means people don't have to clutter
4362 * Made IPython a package. This means people don't have to clutter
4359 their sys.path with yet another directory. Changed the INSTALL
4363 their sys.path with yet another directory. Changed the INSTALL
4360 file accordingly.
4364 file accordingly.
4361
4365
4362 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4366 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4363 sorts its output (so @who shows it sorted) and @whos formats the
4367 sorts its output (so @who shows it sorted) and @whos formats the
4364 table according to the width of the first column. Nicer, easier to
4368 table according to the width of the first column. Nicer, easier to
4365 read. Todo: write a generic table_format() which takes a list of
4369 read. Todo: write a generic table_format() which takes a list of
4366 lists and prints it nicely formatted, with optional row/column
4370 lists and prints it nicely formatted, with optional row/column
4367 separators and proper padding and justification.
4371 separators and proper padding and justification.
4368
4372
4369 * Released 0.1.20
4373 * Released 0.1.20
4370
4374
4371 * Fixed bug in @log which would reverse the inputcache list (a
4375 * Fixed bug in @log which would reverse the inputcache list (a
4372 copy operation was missing).
4376 copy operation was missing).
4373
4377
4374 * Code cleanup. @config was changed to use page(). Better, since
4378 * Code cleanup. @config was changed to use page(). Better, since
4375 its output is always quite long.
4379 its output is always quite long.
4376
4380
4377 * Itpl is back as a dependency. I was having too many problems
4381 * Itpl is back as a dependency. I was having too many problems
4378 getting the parametric aliases to work reliably, and it's just
4382 getting the parametric aliases to work reliably, and it's just
4379 easier to code weird string operations with it than playing %()s
4383 easier to code weird string operations with it than playing %()s
4380 games. It's only ~6k, so I don't think it's too big a deal.
4384 games. It's only ~6k, so I don't think it's too big a deal.
4381
4385
4382 * Found (and fixed) a very nasty bug with history. !lines weren't
4386 * Found (and fixed) a very nasty bug with history. !lines weren't
4383 getting cached, and the out of sync caches would crash
4387 getting cached, and the out of sync caches would crash
4384 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4388 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4385 division of labor a bit better. Bug fixed, cleaner structure.
4389 division of labor a bit better. Bug fixed, cleaner structure.
4386
4390
4387 2001-12-01 Fernando Perez <fperez@colorado.edu>
4391 2001-12-01 Fernando Perez <fperez@colorado.edu>
4388
4392
4389 * Released 0.1.19
4393 * Released 0.1.19
4390
4394
4391 * Added option -n to @hist to prevent line number printing. Much
4395 * Added option -n to @hist to prevent line number printing. Much
4392 easier to copy/paste code this way.
4396 easier to copy/paste code this way.
4393
4397
4394 * Created global _il to hold the input list. Allows easy
4398 * Created global _il to hold the input list. Allows easy
4395 re-execution of blocks of code by slicing it (inspired by Janko's
4399 re-execution of blocks of code by slicing it (inspired by Janko's
4396 comment on 'macros').
4400 comment on 'macros').
4397
4401
4398 * Small fixes and doc updates.
4402 * Small fixes and doc updates.
4399
4403
4400 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4404 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4401 much too fragile with automagic. Handles properly multi-line
4405 much too fragile with automagic. Handles properly multi-line
4402 statements and takes parameters.
4406 statements and takes parameters.
4403
4407
4404 2001-11-30 Fernando Perez <fperez@colorado.edu>
4408 2001-11-30 Fernando Perez <fperez@colorado.edu>
4405
4409
4406 * Version 0.1.18 released.
4410 * Version 0.1.18 released.
4407
4411
4408 * Fixed nasty namespace bug in initial module imports.
4412 * Fixed nasty namespace bug in initial module imports.
4409
4413
4410 * Added copyright/license notes to all code files (except
4414 * Added copyright/license notes to all code files (except
4411 DPyGetOpt). For the time being, LGPL. That could change.
4415 DPyGetOpt). For the time being, LGPL. That could change.
4412
4416
4413 * Rewrote a much nicer README, updated INSTALL, cleaned up
4417 * Rewrote a much nicer README, updated INSTALL, cleaned up
4414 ipythonrc-* samples.
4418 ipythonrc-* samples.
4415
4419
4416 * Overall code/documentation cleanup. Basically ready for
4420 * Overall code/documentation cleanup. Basically ready for
4417 release. Only remaining thing: licence decision (LGPL?).
4421 release. Only remaining thing: licence decision (LGPL?).
4418
4422
4419 * Converted load_config to a class, ConfigLoader. Now recursion
4423 * Converted load_config to a class, ConfigLoader. Now recursion
4420 control is better organized. Doesn't include the same file twice.
4424 control is better organized. Doesn't include the same file twice.
4421
4425
4422 2001-11-29 Fernando Perez <fperez@colorado.edu>
4426 2001-11-29 Fernando Perez <fperez@colorado.edu>
4423
4427
4424 * Got input history working. Changed output history variables from
4428 * Got input history working. Changed output history variables from
4425 _p to _o so that _i is for input and _o for output. Just cleaner
4429 _p to _o so that _i is for input and _o for output. Just cleaner
4426 convention.
4430 convention.
4427
4431
4428 * Implemented parametric aliases. This pretty much allows the
4432 * Implemented parametric aliases. This pretty much allows the
4429 alias system to offer full-blown shell convenience, I think.
4433 alias system to offer full-blown shell convenience, I think.
4430
4434
4431 * Version 0.1.17 released, 0.1.18 opened.
4435 * Version 0.1.17 released, 0.1.18 opened.
4432
4436
4433 * dot_ipython/ipythonrc (alias): added documentation.
4437 * dot_ipython/ipythonrc (alias): added documentation.
4434 (xcolor): Fixed small bug (xcolors -> xcolor)
4438 (xcolor): Fixed small bug (xcolors -> xcolor)
4435
4439
4436 * Changed the alias system. Now alias is a magic command to define
4440 * Changed the alias system. Now alias is a magic command to define
4437 aliases just like the shell. Rationale: the builtin magics should
4441 aliases just like the shell. Rationale: the builtin magics should
4438 be there for things deeply connected to IPython's
4442 be there for things deeply connected to IPython's
4439 architecture. And this is a much lighter system for what I think
4443 architecture. And this is a much lighter system for what I think
4440 is the really important feature: allowing users to define quickly
4444 is the really important feature: allowing users to define quickly
4441 magics that will do shell things for them, so they can customize
4445 magics that will do shell things for them, so they can customize
4442 IPython easily to match their work habits. If someone is really
4446 IPython easily to match their work habits. If someone is really
4443 desperate to have another name for a builtin alias, they can
4447 desperate to have another name for a builtin alias, they can
4444 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4448 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4445 works.
4449 works.
4446
4450
4447 2001-11-28 Fernando Perez <fperez@colorado.edu>
4451 2001-11-28 Fernando Perez <fperez@colorado.edu>
4448
4452
4449 * Changed @file so that it opens the source file at the proper
4453 * Changed @file so that it opens the source file at the proper
4450 line. Since it uses less, if your EDITOR environment is
4454 line. Since it uses less, if your EDITOR environment is
4451 configured, typing v will immediately open your editor of choice
4455 configured, typing v will immediately open your editor of choice
4452 right at the line where the object is defined. Not as quick as
4456 right at the line where the object is defined. Not as quick as
4453 having a direct @edit command, but for all intents and purposes it
4457 having a direct @edit command, but for all intents and purposes it
4454 works. And I don't have to worry about writing @edit to deal with
4458 works. And I don't have to worry about writing @edit to deal with
4455 all the editors, less does that.
4459 all the editors, less does that.
4456
4460
4457 * Version 0.1.16 released, 0.1.17 opened.
4461 * Version 0.1.16 released, 0.1.17 opened.
4458
4462
4459 * Fixed some nasty bugs in the page/page_dumb combo that could
4463 * Fixed some nasty bugs in the page/page_dumb combo that could
4460 crash IPython.
4464 crash IPython.
4461
4465
4462 2001-11-27 Fernando Perez <fperez@colorado.edu>
4466 2001-11-27 Fernando Perez <fperez@colorado.edu>
4463
4467
4464 * Version 0.1.15 released, 0.1.16 opened.
4468 * Version 0.1.15 released, 0.1.16 opened.
4465
4469
4466 * Finally got ? and ?? to work for undefined things: now it's
4470 * Finally got ? and ?? to work for undefined things: now it's
4467 possible to type {}.get? and get information about the get method
4471 possible to type {}.get? and get information about the get method
4468 of dicts, or os.path? even if only os is defined (so technically
4472 of dicts, or os.path? even if only os is defined (so technically
4469 os.path isn't). Works at any level. For example, after import os,
4473 os.path isn't). Works at any level. For example, after import os,
4470 os?, os.path?, os.path.abspath? all work. This is great, took some
4474 os?, os.path?, os.path.abspath? all work. This is great, took some
4471 work in _ofind.
4475 work in _ofind.
4472
4476
4473 * Fixed more bugs with logging. The sanest way to do it was to add
4477 * Fixed more bugs with logging. The sanest way to do it was to add
4474 to @log a 'mode' parameter. Killed two in one shot (this mode
4478 to @log a 'mode' parameter. Killed two in one shot (this mode
4475 option was a request of Janko's). I think it's finally clean
4479 option was a request of Janko's). I think it's finally clean
4476 (famous last words).
4480 (famous last words).
4477
4481
4478 * Added a page_dumb() pager which does a decent job of paging on
4482 * Added a page_dumb() pager which does a decent job of paging on
4479 screen, if better things (like less) aren't available. One less
4483 screen, if better things (like less) aren't available. One less
4480 unix dependency (someday maybe somebody will port this to
4484 unix dependency (someday maybe somebody will port this to
4481 windows).
4485 windows).
4482
4486
4483 * Fixed problem in magic_log: would lock of logging out if log
4487 * Fixed problem in magic_log: would lock of logging out if log
4484 creation failed (because it would still think it had succeeded).
4488 creation failed (because it would still think it had succeeded).
4485
4489
4486 * Improved the page() function using curses to auto-detect screen
4490 * Improved the page() function using curses to auto-detect screen
4487 size. Now it can make a much better decision on whether to print
4491 size. Now it can make a much better decision on whether to print
4488 or page a string. Option screen_length was modified: a value 0
4492 or page a string. Option screen_length was modified: a value 0
4489 means auto-detect, and that's the default now.
4493 means auto-detect, and that's the default now.
4490
4494
4491 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4495 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4492 go out. I'll test it for a few days, then talk to Janko about
4496 go out. I'll test it for a few days, then talk to Janko about
4493 licences and announce it.
4497 licences and announce it.
4494
4498
4495 * Fixed the length of the auto-generated ---> prompt which appears
4499 * Fixed the length of the auto-generated ---> prompt which appears
4496 for auto-parens and auto-quotes. Getting this right isn't trivial,
4500 for auto-parens and auto-quotes. Getting this right isn't trivial,
4497 with all the color escapes, different prompt types and optional
4501 with all the color escapes, different prompt types and optional
4498 separators. But it seems to be working in all the combinations.
4502 separators. But it seems to be working in all the combinations.
4499
4503
4500 2001-11-26 Fernando Perez <fperez@colorado.edu>
4504 2001-11-26 Fernando Perez <fperez@colorado.edu>
4501
4505
4502 * Wrote a regexp filter to get option types from the option names
4506 * Wrote a regexp filter to get option types from the option names
4503 string. This eliminates the need to manually keep two duplicate
4507 string. This eliminates the need to manually keep two duplicate
4504 lists.
4508 lists.
4505
4509
4506 * Removed the unneeded check_option_names. Now options are handled
4510 * Removed the unneeded check_option_names. Now options are handled
4507 in a much saner manner and it's easy to visually check that things
4511 in a much saner manner and it's easy to visually check that things
4508 are ok.
4512 are ok.
4509
4513
4510 * Updated version numbers on all files I modified to carry a
4514 * Updated version numbers on all files I modified to carry a
4511 notice so Janko and Nathan have clear version markers.
4515 notice so Janko and Nathan have clear version markers.
4512
4516
4513 * Updated docstring for ultraTB with my changes. I should send
4517 * Updated docstring for ultraTB with my changes. I should send
4514 this to Nathan.
4518 this to Nathan.
4515
4519
4516 * Lots of small fixes. Ran everything through pychecker again.
4520 * Lots of small fixes. Ran everything through pychecker again.
4517
4521
4518 * Made loading of deep_reload an cmd line option. If it's not too
4522 * Made loading of deep_reload an cmd line option. If it's not too
4519 kosher, now people can just disable it. With -nodeep_reload it's
4523 kosher, now people can just disable it. With -nodeep_reload it's
4520 still available as dreload(), it just won't overwrite reload().
4524 still available as dreload(), it just won't overwrite reload().
4521
4525
4522 * Moved many options to the no| form (-opt and -noopt
4526 * Moved many options to the no| form (-opt and -noopt
4523 accepted). Cleaner.
4527 accepted). Cleaner.
4524
4528
4525 * Changed magic_log so that if called with no parameters, it uses
4529 * Changed magic_log so that if called with no parameters, it uses
4526 'rotate' mode. That way auto-generated logs aren't automatically
4530 'rotate' mode. That way auto-generated logs aren't automatically
4527 over-written. For normal logs, now a backup is made if it exists
4531 over-written. For normal logs, now a backup is made if it exists
4528 (only 1 level of backups). A new 'backup' mode was added to the
4532 (only 1 level of backups). A new 'backup' mode was added to the
4529 Logger class to support this. This was a request by Janko.
4533 Logger class to support this. This was a request by Janko.
4530
4534
4531 * Added @logoff/@logon to stop/restart an active log.
4535 * Added @logoff/@logon to stop/restart an active log.
4532
4536
4533 * Fixed a lot of bugs in log saving/replay. It was pretty
4537 * Fixed a lot of bugs in log saving/replay. It was pretty
4534 broken. Now special lines (!@,/) appear properly in the command
4538 broken. Now special lines (!@,/) appear properly in the command
4535 history after a log replay.
4539 history after a log replay.
4536
4540
4537 * Tried and failed to implement full session saving via pickle. My
4541 * Tried and failed to implement full session saving via pickle. My
4538 idea was to pickle __main__.__dict__, but modules can't be
4542 idea was to pickle __main__.__dict__, but modules can't be
4539 pickled. This would be a better alternative to replaying logs, but
4543 pickled. This would be a better alternative to replaying logs, but
4540 seems quite tricky to get to work. Changed -session to be called
4544 seems quite tricky to get to work. Changed -session to be called
4541 -logplay, which more accurately reflects what it does. And if we
4545 -logplay, which more accurately reflects what it does. And if we
4542 ever get real session saving working, -session is now available.
4546 ever get real session saving working, -session is now available.
4543
4547
4544 * Implemented color schemes for prompts also. As for tracebacks,
4548 * Implemented color schemes for prompts also. As for tracebacks,
4545 currently only NoColor and Linux are supported. But now the
4549 currently only NoColor and Linux are supported. But now the
4546 infrastructure is in place, based on a generic ColorScheme
4550 infrastructure is in place, based on a generic ColorScheme
4547 class. So writing and activating new schemes both for the prompts
4551 class. So writing and activating new schemes both for the prompts
4548 and the tracebacks should be straightforward.
4552 and the tracebacks should be straightforward.
4549
4553
4550 * Version 0.1.13 released, 0.1.14 opened.
4554 * Version 0.1.13 released, 0.1.14 opened.
4551
4555
4552 * Changed handling of options for output cache. Now counter is
4556 * Changed handling of options for output cache. Now counter is
4553 hardwired starting at 1 and one specifies the maximum number of
4557 hardwired starting at 1 and one specifies the maximum number of
4554 entries *in the outcache* (not the max prompt counter). This is
4558 entries *in the outcache* (not the max prompt counter). This is
4555 much better, since many statements won't increase the cache
4559 much better, since many statements won't increase the cache
4556 count. It also eliminated some confusing options, now there's only
4560 count. It also eliminated some confusing options, now there's only
4557 one: cache_size.
4561 one: cache_size.
4558
4562
4559 * Added 'alias' magic function and magic_alias option in the
4563 * Added 'alias' magic function and magic_alias option in the
4560 ipythonrc file. Now the user can easily define whatever names he
4564 ipythonrc file. Now the user can easily define whatever names he
4561 wants for the magic functions without having to play weird
4565 wants for the magic functions without having to play weird
4562 namespace games. This gives IPython a real shell-like feel.
4566 namespace games. This gives IPython a real shell-like feel.
4563
4567
4564 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4568 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4565 @ or not).
4569 @ or not).
4566
4570
4567 This was one of the last remaining 'visible' bugs (that I know
4571 This was one of the last remaining 'visible' bugs (that I know
4568 of). I think if I can clean up the session loading so it works
4572 of). I think if I can clean up the session loading so it works
4569 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4573 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4570 about licensing).
4574 about licensing).
4571
4575
4572 2001-11-25 Fernando Perez <fperez@colorado.edu>
4576 2001-11-25 Fernando Perez <fperez@colorado.edu>
4573
4577
4574 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4578 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4575 there's a cleaner distinction between what ? and ?? show.
4579 there's a cleaner distinction between what ? and ?? show.
4576
4580
4577 * Added screen_length option. Now the user can define his own
4581 * Added screen_length option. Now the user can define his own
4578 screen size for page() operations.
4582 screen size for page() operations.
4579
4583
4580 * Implemented magic shell-like functions with automatic code
4584 * Implemented magic shell-like functions with automatic code
4581 generation. Now adding another function is just a matter of adding
4585 generation. Now adding another function is just a matter of adding
4582 an entry to a dict, and the function is dynamically generated at
4586 an entry to a dict, and the function is dynamically generated at
4583 run-time. Python has some really cool features!
4587 run-time. Python has some really cool features!
4584
4588
4585 * Renamed many options to cleanup conventions a little. Now all
4589 * Renamed many options to cleanup conventions a little. Now all
4586 are lowercase, and only underscores where needed. Also in the code
4590 are lowercase, and only underscores where needed. Also in the code
4587 option name tables are clearer.
4591 option name tables are clearer.
4588
4592
4589 * Changed prompts a little. Now input is 'In [n]:' instead of
4593 * Changed prompts a little. Now input is 'In [n]:' instead of
4590 'In[n]:='. This allows it the numbers to be aligned with the
4594 'In[n]:='. This allows it the numbers to be aligned with the
4591 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4595 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4592 Python (it was a Mathematica thing). The '...' continuation prompt
4596 Python (it was a Mathematica thing). The '...' continuation prompt
4593 was also changed a little to align better.
4597 was also changed a little to align better.
4594
4598
4595 * Fixed bug when flushing output cache. Not all _p<n> variables
4599 * Fixed bug when flushing output cache. Not all _p<n> variables
4596 exist, so their deletion needs to be wrapped in a try:
4600 exist, so their deletion needs to be wrapped in a try:
4597
4601
4598 * Figured out how to properly use inspect.formatargspec() (it
4602 * Figured out how to properly use inspect.formatargspec() (it
4599 requires the args preceded by *). So I removed all the code from
4603 requires the args preceded by *). So I removed all the code from
4600 _get_pdef in Magic, which was just replicating that.
4604 _get_pdef in Magic, which was just replicating that.
4601
4605
4602 * Added test to prefilter to allow redefining magic function names
4606 * Added test to prefilter to allow redefining magic function names
4603 as variables. This is ok, since the @ form is always available,
4607 as variables. This is ok, since the @ form is always available,
4604 but whe should allow the user to define a variable called 'ls' if
4608 but whe should allow the user to define a variable called 'ls' if
4605 he needs it.
4609 he needs it.
4606
4610
4607 * Moved the ToDo information from README into a separate ToDo.
4611 * Moved the ToDo information from README into a separate ToDo.
4608
4612
4609 * General code cleanup and small bugfixes. I think it's close to a
4613 * General code cleanup and small bugfixes. I think it's close to a
4610 state where it can be released, obviously with a big 'beta'
4614 state where it can be released, obviously with a big 'beta'
4611 warning on it.
4615 warning on it.
4612
4616
4613 * Got the magic function split to work. Now all magics are defined
4617 * Got the magic function split to work. Now all magics are defined
4614 in a separate class. It just organizes things a bit, and now
4618 in a separate class. It just organizes things a bit, and now
4615 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4619 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4616 was too long).
4620 was too long).
4617
4621
4618 * Changed @clear to @reset to avoid potential confusions with
4622 * Changed @clear to @reset to avoid potential confusions with
4619 the shell command clear. Also renamed @cl to @clear, which does
4623 the shell command clear. Also renamed @cl to @clear, which does
4620 exactly what people expect it to from their shell experience.
4624 exactly what people expect it to from their shell experience.
4621
4625
4622 Added a check to the @reset command (since it's so
4626 Added a check to the @reset command (since it's so
4623 destructive, it's probably a good idea to ask for confirmation).
4627 destructive, it's probably a good idea to ask for confirmation).
4624 But now reset only works for full namespace resetting. Since the
4628 But now reset only works for full namespace resetting. Since the
4625 del keyword is already there for deleting a few specific
4629 del keyword is already there for deleting a few specific
4626 variables, I don't see the point of having a redundant magic
4630 variables, I don't see the point of having a redundant magic
4627 function for the same task.
4631 function for the same task.
4628
4632
4629 2001-11-24 Fernando Perez <fperez@colorado.edu>
4633 2001-11-24 Fernando Perez <fperez@colorado.edu>
4630
4634
4631 * Updated the builtin docs (esp. the ? ones).
4635 * Updated the builtin docs (esp. the ? ones).
4632
4636
4633 * Ran all the code through pychecker. Not terribly impressed with
4637 * Ran all the code through pychecker. Not terribly impressed with
4634 it: lots of spurious warnings and didn't really find anything of
4638 it: lots of spurious warnings and didn't really find anything of
4635 substance (just a few modules being imported and not used).
4639 substance (just a few modules being imported and not used).
4636
4640
4637 * Implemented the new ultraTB functionality into IPython. New
4641 * Implemented the new ultraTB functionality into IPython. New
4638 option: xcolors. This chooses color scheme. xmode now only selects
4642 option: xcolors. This chooses color scheme. xmode now only selects
4639 between Plain and Verbose. Better orthogonality.
4643 between Plain and Verbose. Better orthogonality.
4640
4644
4641 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4645 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4642 mode and color scheme for the exception handlers. Now it's
4646 mode and color scheme for the exception handlers. Now it's
4643 possible to have the verbose traceback with no coloring.
4647 possible to have the verbose traceback with no coloring.
4644
4648
4645 2001-11-23 Fernando Perez <fperez@colorado.edu>
4649 2001-11-23 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * Version 0.1.12 released, 0.1.13 opened.
4651 * Version 0.1.12 released, 0.1.13 opened.
4648
4652
4649 * Removed option to set auto-quote and auto-paren escapes by
4653 * Removed option to set auto-quote and auto-paren escapes by
4650 user. The chances of breaking valid syntax are just too high. If
4654 user. The chances of breaking valid syntax are just too high. If
4651 someone *really* wants, they can always dig into the code.
4655 someone *really* wants, they can always dig into the code.
4652
4656
4653 * Made prompt separators configurable.
4657 * Made prompt separators configurable.
4654
4658
4655 2001-11-22 Fernando Perez <fperez@colorado.edu>
4659 2001-11-22 Fernando Perez <fperez@colorado.edu>
4656
4660
4657 * Small bugfixes in many places.
4661 * Small bugfixes in many places.
4658
4662
4659 * Removed the MyCompleter class from ipplib. It seemed redundant
4663 * Removed the MyCompleter class from ipplib. It seemed redundant
4660 with the C-p,C-n history search functionality. Less code to
4664 with the C-p,C-n history search functionality. Less code to
4661 maintain.
4665 maintain.
4662
4666
4663 * Moved all the original ipython.py code into ipythonlib.py. Right
4667 * Moved all the original ipython.py code into ipythonlib.py. Right
4664 now it's just one big dump into a function called make_IPython, so
4668 now it's just one big dump into a function called make_IPython, so
4665 no real modularity has been gained. But at least it makes the
4669 no real modularity has been gained. But at least it makes the
4666 wrapper script tiny, and since ipythonlib is a module, it gets
4670 wrapper script tiny, and since ipythonlib is a module, it gets
4667 compiled and startup is much faster.
4671 compiled and startup is much faster.
4668
4672
4669 This is a reasobably 'deep' change, so we should test it for a
4673 This is a reasobably 'deep' change, so we should test it for a
4670 while without messing too much more with the code.
4674 while without messing too much more with the code.
4671
4675
4672 2001-11-21 Fernando Perez <fperez@colorado.edu>
4676 2001-11-21 Fernando Perez <fperez@colorado.edu>
4673
4677
4674 * Version 0.1.11 released, 0.1.12 opened for further work.
4678 * Version 0.1.11 released, 0.1.12 opened for further work.
4675
4679
4676 * Removed dependency on Itpl. It was only needed in one place. It
4680 * Removed dependency on Itpl. It was only needed in one place. It
4677 would be nice if this became part of python, though. It makes life
4681 would be nice if this became part of python, though. It makes life
4678 *a lot* easier in some cases.
4682 *a lot* easier in some cases.
4679
4683
4680 * Simplified the prefilter code a bit. Now all handlers are
4684 * Simplified the prefilter code a bit. Now all handlers are
4681 expected to explicitly return a value (at least a blank string).
4685 expected to explicitly return a value (at least a blank string).
4682
4686
4683 * Heavy edits in ipplib. Removed the help system altogether. Now
4687 * Heavy edits in ipplib. Removed the help system altogether. Now
4684 obj?/?? is used for inspecting objects, a magic @doc prints
4688 obj?/?? is used for inspecting objects, a magic @doc prints
4685 docstrings, and full-blown Python help is accessed via the 'help'
4689 docstrings, and full-blown Python help is accessed via the 'help'
4686 keyword. This cleans up a lot of code (less to maintain) and does
4690 keyword. This cleans up a lot of code (less to maintain) and does
4687 the job. Since 'help' is now a standard Python component, might as
4691 the job. Since 'help' is now a standard Python component, might as
4688 well use it and remove duplicate functionality.
4692 well use it and remove duplicate functionality.
4689
4693
4690 Also removed the option to use ipplib as a standalone program. By
4694 Also removed the option to use ipplib as a standalone program. By
4691 now it's too dependent on other parts of IPython to function alone.
4695 now it's too dependent on other parts of IPython to function alone.
4692
4696
4693 * Fixed bug in genutils.pager. It would crash if the pager was
4697 * Fixed bug in genutils.pager. It would crash if the pager was
4694 exited immediately after opening (broken pipe).
4698 exited immediately after opening (broken pipe).
4695
4699
4696 * Trimmed down the VerboseTB reporting a little. The header is
4700 * Trimmed down the VerboseTB reporting a little. The header is
4697 much shorter now and the repeated exception arguments at the end
4701 much shorter now and the repeated exception arguments at the end
4698 have been removed. For interactive use the old header seemed a bit
4702 have been removed. For interactive use the old header seemed a bit
4699 excessive.
4703 excessive.
4700
4704
4701 * Fixed small bug in output of @whos for variables with multi-word
4705 * Fixed small bug in output of @whos for variables with multi-word
4702 types (only first word was displayed).
4706 types (only first word was displayed).
4703
4707
4704 2001-11-17 Fernando Perez <fperez@colorado.edu>
4708 2001-11-17 Fernando Perez <fperez@colorado.edu>
4705
4709
4706 * Version 0.1.10 released, 0.1.11 opened for further work.
4710 * Version 0.1.10 released, 0.1.11 opened for further work.
4707
4711
4708 * Modified dirs and friends. dirs now *returns* the stack (not
4712 * Modified dirs and friends. dirs now *returns* the stack (not
4709 prints), so one can manipulate it as a variable. Convenient to
4713 prints), so one can manipulate it as a variable. Convenient to
4710 travel along many directories.
4714 travel along many directories.
4711
4715
4712 * Fixed bug in magic_pdef: would only work with functions with
4716 * Fixed bug in magic_pdef: would only work with functions with
4713 arguments with default values.
4717 arguments with default values.
4714
4718
4715 2001-11-14 Fernando Perez <fperez@colorado.edu>
4719 2001-11-14 Fernando Perez <fperez@colorado.edu>
4716
4720
4717 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4721 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4718 example with IPython. Various other minor fixes and cleanups.
4722 example with IPython. Various other minor fixes and cleanups.
4719
4723
4720 * Version 0.1.9 released, 0.1.10 opened for further work.
4724 * Version 0.1.9 released, 0.1.10 opened for further work.
4721
4725
4722 * Added sys.path to the list of directories searched in the
4726 * Added sys.path to the list of directories searched in the
4723 execfile= option. It used to be the current directory and the
4727 execfile= option. It used to be the current directory and the
4724 user's IPYTHONDIR only.
4728 user's IPYTHONDIR only.
4725
4729
4726 2001-11-13 Fernando Perez <fperez@colorado.edu>
4730 2001-11-13 Fernando Perez <fperez@colorado.edu>
4727
4731
4728 * Reinstated the raw_input/prefilter separation that Janko had
4732 * Reinstated the raw_input/prefilter separation that Janko had
4729 initially. This gives a more convenient setup for extending the
4733 initially. This gives a more convenient setup for extending the
4730 pre-processor from the outside: raw_input always gets a string,
4734 pre-processor from the outside: raw_input always gets a string,
4731 and prefilter has to process it. We can then redefine prefilter
4735 and prefilter has to process it. We can then redefine prefilter
4732 from the outside and implement extensions for special
4736 from the outside and implement extensions for special
4733 purposes.
4737 purposes.
4734
4738
4735 Today I got one for inputting PhysicalQuantity objects
4739 Today I got one for inputting PhysicalQuantity objects
4736 (from Scientific) without needing any function calls at
4740 (from Scientific) without needing any function calls at
4737 all. Extremely convenient, and it's all done as a user-level
4741 all. Extremely convenient, and it's all done as a user-level
4738 extension (no IPython code was touched). Now instead of:
4742 extension (no IPython code was touched). Now instead of:
4739 a = PhysicalQuantity(4.2,'m/s**2')
4743 a = PhysicalQuantity(4.2,'m/s**2')
4740 one can simply say
4744 one can simply say
4741 a = 4.2 m/s**2
4745 a = 4.2 m/s**2
4742 or even
4746 or even
4743 a = 4.2 m/s^2
4747 a = 4.2 m/s^2
4744
4748
4745 I use this, but it's also a proof of concept: IPython really is
4749 I use this, but it's also a proof of concept: IPython really is
4746 fully user-extensible, even at the level of the parsing of the
4750 fully user-extensible, even at the level of the parsing of the
4747 command line. It's not trivial, but it's perfectly doable.
4751 command line. It's not trivial, but it's perfectly doable.
4748
4752
4749 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4753 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4750 the problem of modules being loaded in the inverse order in which
4754 the problem of modules being loaded in the inverse order in which
4751 they were defined in
4755 they were defined in
4752
4756
4753 * Version 0.1.8 released, 0.1.9 opened for further work.
4757 * Version 0.1.8 released, 0.1.9 opened for further work.
4754
4758
4755 * Added magics pdef, source and file. They respectively show the
4759 * Added magics pdef, source and file. They respectively show the
4756 definition line ('prototype' in C), source code and full python
4760 definition line ('prototype' in C), source code and full python
4757 file for any callable object. The object inspector oinfo uses
4761 file for any callable object. The object inspector oinfo uses
4758 these to show the same information.
4762 these to show the same information.
4759
4763
4760 * Version 0.1.7 released, 0.1.8 opened for further work.
4764 * Version 0.1.7 released, 0.1.8 opened for further work.
4761
4765
4762 * Separated all the magic functions into a class called Magic. The
4766 * Separated all the magic functions into a class called Magic. The
4763 InteractiveShell class was becoming too big for Xemacs to handle
4767 InteractiveShell class was becoming too big for Xemacs to handle
4764 (de-indenting a line would lock it up for 10 seconds while it
4768 (de-indenting a line would lock it up for 10 seconds while it
4765 backtracked on the whole class!)
4769 backtracked on the whole class!)
4766
4770
4767 FIXME: didn't work. It can be done, but right now namespaces are
4771 FIXME: didn't work. It can be done, but right now namespaces are
4768 all messed up. Do it later (reverted it for now, so at least
4772 all messed up. Do it later (reverted it for now, so at least
4769 everything works as before).
4773 everything works as before).
4770
4774
4771 * Got the object introspection system (magic_oinfo) working! I
4775 * Got the object introspection system (magic_oinfo) working! I
4772 think this is pretty much ready for release to Janko, so he can
4776 think this is pretty much ready for release to Janko, so he can
4773 test it for a while and then announce it. Pretty much 100% of what
4777 test it for a while and then announce it. Pretty much 100% of what
4774 I wanted for the 'phase 1' release is ready. Happy, tired.
4778 I wanted for the 'phase 1' release is ready. Happy, tired.
4775
4779
4776 2001-11-12 Fernando Perez <fperez@colorado.edu>
4780 2001-11-12 Fernando Perez <fperez@colorado.edu>
4777
4781
4778 * Version 0.1.6 released, 0.1.7 opened for further work.
4782 * Version 0.1.6 released, 0.1.7 opened for further work.
4779
4783
4780 * Fixed bug in printing: it used to test for truth before
4784 * Fixed bug in printing: it used to test for truth before
4781 printing, so 0 wouldn't print. Now checks for None.
4785 printing, so 0 wouldn't print. Now checks for None.
4782
4786
4783 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4787 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4784 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4788 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4785 reaches by hand into the outputcache. Think of a better way to do
4789 reaches by hand into the outputcache. Think of a better way to do
4786 this later.
4790 this later.
4787
4791
4788 * Various small fixes thanks to Nathan's comments.
4792 * Various small fixes thanks to Nathan's comments.
4789
4793
4790 * Changed magic_pprint to magic_Pprint. This way it doesn't
4794 * Changed magic_pprint to magic_Pprint. This way it doesn't
4791 collide with pprint() and the name is consistent with the command
4795 collide with pprint() and the name is consistent with the command
4792 line option.
4796 line option.
4793
4797
4794 * Changed prompt counter behavior to be fully like
4798 * Changed prompt counter behavior to be fully like
4795 Mathematica's. That is, even input that doesn't return a result
4799 Mathematica's. That is, even input that doesn't return a result
4796 raises the prompt counter. The old behavior was kind of confusing
4800 raises the prompt counter. The old behavior was kind of confusing
4797 (getting the same prompt number several times if the operation
4801 (getting the same prompt number several times if the operation
4798 didn't return a result).
4802 didn't return a result).
4799
4803
4800 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4804 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4801
4805
4802 * Fixed -Classic mode (wasn't working anymore).
4806 * Fixed -Classic mode (wasn't working anymore).
4803
4807
4804 * Added colored prompts using Nathan's new code. Colors are
4808 * Added colored prompts using Nathan's new code. Colors are
4805 currently hardwired, they can be user-configurable. For
4809 currently hardwired, they can be user-configurable. For
4806 developers, they can be chosen in file ipythonlib.py, at the
4810 developers, they can be chosen in file ipythonlib.py, at the
4807 beginning of the CachedOutput class def.
4811 beginning of the CachedOutput class def.
4808
4812
4809 2001-11-11 Fernando Perez <fperez@colorado.edu>
4813 2001-11-11 Fernando Perez <fperez@colorado.edu>
4810
4814
4811 * Version 0.1.5 released, 0.1.6 opened for further work.
4815 * Version 0.1.5 released, 0.1.6 opened for further work.
4812
4816
4813 * Changed magic_env to *return* the environment as a dict (not to
4817 * Changed magic_env to *return* the environment as a dict (not to
4814 print it). This way it prints, but it can also be processed.
4818 print it). This way it prints, but it can also be processed.
4815
4819
4816 * Added Verbose exception reporting to interactive
4820 * Added Verbose exception reporting to interactive
4817 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4821 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4818 traceback. Had to make some changes to the ultraTB file. This is
4822 traceback. Had to make some changes to the ultraTB file. This is
4819 probably the last 'big' thing in my mental todo list. This ties
4823 probably the last 'big' thing in my mental todo list. This ties
4820 in with the next entry:
4824 in with the next entry:
4821
4825
4822 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4826 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4823 has to specify is Plain, Color or Verbose for all exception
4827 has to specify is Plain, Color or Verbose for all exception
4824 handling.
4828 handling.
4825
4829
4826 * Removed ShellServices option. All this can really be done via
4830 * Removed ShellServices option. All this can really be done via
4827 the magic system. It's easier to extend, cleaner and has automatic
4831 the magic system. It's easier to extend, cleaner and has automatic
4828 namespace protection and documentation.
4832 namespace protection and documentation.
4829
4833
4830 2001-11-09 Fernando Perez <fperez@colorado.edu>
4834 2001-11-09 Fernando Perez <fperez@colorado.edu>
4831
4835
4832 * Fixed bug in output cache flushing (missing parameter to
4836 * Fixed bug in output cache flushing (missing parameter to
4833 __init__). Other small bugs fixed (found using pychecker).
4837 __init__). Other small bugs fixed (found using pychecker).
4834
4838
4835 * Version 0.1.4 opened for bugfixing.
4839 * Version 0.1.4 opened for bugfixing.
4836
4840
4837 2001-11-07 Fernando Perez <fperez@colorado.edu>
4841 2001-11-07 Fernando Perez <fperez@colorado.edu>
4838
4842
4839 * Version 0.1.3 released, mainly because of the raw_input bug.
4843 * Version 0.1.3 released, mainly because of the raw_input bug.
4840
4844
4841 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4845 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4842 and when testing for whether things were callable, a call could
4846 and when testing for whether things were callable, a call could
4843 actually be made to certain functions. They would get called again
4847 actually be made to certain functions. They would get called again
4844 once 'really' executed, with a resulting double call. A disaster
4848 once 'really' executed, with a resulting double call. A disaster
4845 in many cases (list.reverse() would never work!).
4849 in many cases (list.reverse() would never work!).
4846
4850
4847 * Removed prefilter() function, moved its code to raw_input (which
4851 * Removed prefilter() function, moved its code to raw_input (which
4848 after all was just a near-empty caller for prefilter). This saves
4852 after all was just a near-empty caller for prefilter). This saves
4849 a function call on every prompt, and simplifies the class a tiny bit.
4853 a function call on every prompt, and simplifies the class a tiny bit.
4850
4854
4851 * Fix _ip to __ip name in magic example file.
4855 * Fix _ip to __ip name in magic example file.
4852
4856
4853 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4857 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4854 work with non-gnu versions of tar.
4858 work with non-gnu versions of tar.
4855
4859
4856 2001-11-06 Fernando Perez <fperez@colorado.edu>
4860 2001-11-06 Fernando Perez <fperez@colorado.edu>
4857
4861
4858 * Version 0.1.2. Just to keep track of the recent changes.
4862 * Version 0.1.2. Just to keep track of the recent changes.
4859
4863
4860 * Fixed nasty bug in output prompt routine. It used to check 'if
4864 * Fixed nasty bug in output prompt routine. It used to check 'if
4861 arg != None...'. Problem is, this fails if arg implements a
4865 arg != None...'. Problem is, this fails if arg implements a
4862 special comparison (__cmp__) which disallows comparing to
4866 special comparison (__cmp__) which disallows comparing to
4863 None. Found it when trying to use the PhysicalQuantity module from
4867 None. Found it when trying to use the PhysicalQuantity module from
4864 ScientificPython.
4868 ScientificPython.
4865
4869
4866 2001-11-05 Fernando Perez <fperez@colorado.edu>
4870 2001-11-05 Fernando Perez <fperez@colorado.edu>
4867
4871
4868 * Also added dirs. Now the pushd/popd/dirs family functions
4872 * Also added dirs. Now the pushd/popd/dirs family functions
4869 basically like the shell, with the added convenience of going home
4873 basically like the shell, with the added convenience of going home
4870 when called with no args.
4874 when called with no args.
4871
4875
4872 * pushd/popd slightly modified to mimic shell behavior more
4876 * pushd/popd slightly modified to mimic shell behavior more
4873 closely.
4877 closely.
4874
4878
4875 * Added env,pushd,popd from ShellServices as magic functions. I
4879 * Added env,pushd,popd from ShellServices as magic functions. I
4876 think the cleanest will be to port all desired functions from
4880 think the cleanest will be to port all desired functions from
4877 ShellServices as magics and remove ShellServices altogether. This
4881 ShellServices as magics and remove ShellServices altogether. This
4878 will provide a single, clean way of adding functionality
4882 will provide a single, clean way of adding functionality
4879 (shell-type or otherwise) to IP.
4883 (shell-type or otherwise) to IP.
4880
4884
4881 2001-11-04 Fernando Perez <fperez@colorado.edu>
4885 2001-11-04 Fernando Perez <fperez@colorado.edu>
4882
4886
4883 * Added .ipython/ directory to sys.path. This way users can keep
4887 * Added .ipython/ directory to sys.path. This way users can keep
4884 customizations there and access them via import.
4888 customizations there and access them via import.
4885
4889
4886 2001-11-03 Fernando Perez <fperez@colorado.edu>
4890 2001-11-03 Fernando Perez <fperez@colorado.edu>
4887
4891
4888 * Opened version 0.1.1 for new changes.
4892 * Opened version 0.1.1 for new changes.
4889
4893
4890 * Changed version number to 0.1.0: first 'public' release, sent to
4894 * Changed version number to 0.1.0: first 'public' release, sent to
4891 Nathan and Janko.
4895 Nathan and Janko.
4892
4896
4893 * Lots of small fixes and tweaks.
4897 * Lots of small fixes and tweaks.
4894
4898
4895 * Minor changes to whos format. Now strings are shown, snipped if
4899 * Minor changes to whos format. Now strings are shown, snipped if
4896 too long.
4900 too long.
4897
4901
4898 * Changed ShellServices to work on __main__ so they show up in @who
4902 * Changed ShellServices to work on __main__ so they show up in @who
4899
4903
4900 * Help also works with ? at the end of a line:
4904 * Help also works with ? at the end of a line:
4901 ?sin and sin?
4905 ?sin and sin?
4902 both produce the same effect. This is nice, as often I use the
4906 both produce the same effect. This is nice, as often I use the
4903 tab-complete to find the name of a method, but I used to then have
4907 tab-complete to find the name of a method, but I used to then have
4904 to go to the beginning of the line to put a ? if I wanted more
4908 to go to the beginning of the line to put a ? if I wanted more
4905 info. Now I can just add the ? and hit return. Convenient.
4909 info. Now I can just add the ? and hit return. Convenient.
4906
4910
4907 2001-11-02 Fernando Perez <fperez@colorado.edu>
4911 2001-11-02 Fernando Perez <fperez@colorado.edu>
4908
4912
4909 * Python version check (>=2.1) added.
4913 * Python version check (>=2.1) added.
4910
4914
4911 * Added LazyPython documentation. At this point the docs are quite
4915 * Added LazyPython documentation. At this point the docs are quite
4912 a mess. A cleanup is in order.
4916 a mess. A cleanup is in order.
4913
4917
4914 * Auto-installer created. For some bizarre reason, the zipfiles
4918 * Auto-installer created. For some bizarre reason, the zipfiles
4915 module isn't working on my system. So I made a tar version
4919 module isn't working on my system. So I made a tar version
4916 (hopefully the command line options in various systems won't kill
4920 (hopefully the command line options in various systems won't kill
4917 me).
4921 me).
4918
4922
4919 * Fixes to Struct in genutils. Now all dictionary-like methods are
4923 * Fixes to Struct in genutils. Now all dictionary-like methods are
4920 protected (reasonably).
4924 protected (reasonably).
4921
4925
4922 * Added pager function to genutils and changed ? to print usage
4926 * Added pager function to genutils and changed ? to print usage
4923 note through it (it was too long).
4927 note through it (it was too long).
4924
4928
4925 * Added the LazyPython functionality. Works great! I changed the
4929 * Added the LazyPython functionality. Works great! I changed the
4926 auto-quote escape to ';', it's on home row and next to '. But
4930 auto-quote escape to ';', it's on home row and next to '. But
4927 both auto-quote and auto-paren (still /) escapes are command-line
4931 both auto-quote and auto-paren (still /) escapes are command-line
4928 parameters.
4932 parameters.
4929
4933
4930
4934
4931 2001-11-01 Fernando Perez <fperez@colorado.edu>
4935 2001-11-01 Fernando Perez <fperez@colorado.edu>
4932
4936
4933 * Version changed to 0.0.7. Fairly large change: configuration now
4937 * Version changed to 0.0.7. Fairly large change: configuration now
4934 is all stored in a directory, by default .ipython. There, all
4938 is all stored in a directory, by default .ipython. There, all
4935 config files have normal looking names (not .names)
4939 config files have normal looking names (not .names)
4936
4940
4937 * Version 0.0.6 Released first to Lucas and Archie as a test
4941 * Version 0.0.6 Released first to Lucas and Archie as a test
4938 run. Since it's the first 'semi-public' release, change version to
4942 run. Since it's the first 'semi-public' release, change version to
4939 > 0.0.6 for any changes now.
4943 > 0.0.6 for any changes now.
4940
4944
4941 * Stuff I had put in the ipplib.py changelog:
4945 * Stuff I had put in the ipplib.py changelog:
4942
4946
4943 Changes to InteractiveShell:
4947 Changes to InteractiveShell:
4944
4948
4945 - Made the usage message a parameter.
4949 - Made the usage message a parameter.
4946
4950
4947 - Require the name of the shell variable to be given. It's a bit
4951 - Require the name of the shell variable to be given. It's a bit
4948 of a hack, but allows the name 'shell' not to be hardwire in the
4952 of a hack, but allows the name 'shell' not to be hardwire in the
4949 magic (@) handler, which is problematic b/c it requires
4953 magic (@) handler, which is problematic b/c it requires
4950 polluting the global namespace with 'shell'. This in turn is
4954 polluting the global namespace with 'shell'. This in turn is
4951 fragile: if a user redefines a variable called shell, things
4955 fragile: if a user redefines a variable called shell, things
4952 break.
4956 break.
4953
4957
4954 - magic @: all functions available through @ need to be defined
4958 - magic @: all functions available through @ need to be defined
4955 as magic_<name>, even though they can be called simply as
4959 as magic_<name>, even though they can be called simply as
4956 @<name>. This allows the special command @magic to gather
4960 @<name>. This allows the special command @magic to gather
4957 information automatically about all existing magic functions,
4961 information automatically about all existing magic functions,
4958 even if they are run-time user extensions, by parsing the shell
4962 even if they are run-time user extensions, by parsing the shell
4959 instance __dict__ looking for special magic_ names.
4963 instance __dict__ looking for special magic_ names.
4960
4964
4961 - mainloop: added *two* local namespace parameters. This allows
4965 - mainloop: added *two* local namespace parameters. This allows
4962 the class to differentiate between parameters which were there
4966 the class to differentiate between parameters which were there
4963 before and after command line initialization was processed. This
4967 before and after command line initialization was processed. This
4964 way, later @who can show things loaded at startup by the
4968 way, later @who can show things loaded at startup by the
4965 user. This trick was necessary to make session saving/reloading
4969 user. This trick was necessary to make session saving/reloading
4966 really work: ideally after saving/exiting/reloading a session,
4970 really work: ideally after saving/exiting/reloading a session,
4967 *everythin* should look the same, including the output of @who. I
4971 *everythin* should look the same, including the output of @who. I
4968 was only able to make this work with this double namespace
4972 was only able to make this work with this double namespace
4969 trick.
4973 trick.
4970
4974
4971 - added a header to the logfile which allows (almost) full
4975 - added a header to the logfile which allows (almost) full
4972 session restoring.
4976 session restoring.
4973
4977
4974 - prepend lines beginning with @ or !, with a and log
4978 - prepend lines beginning with @ or !, with a and log
4975 them. Why? !lines: may be useful to know what you did @lines:
4979 them. Why? !lines: may be useful to know what you did @lines:
4976 they may affect session state. So when restoring a session, at
4980 they may affect session state. So when restoring a session, at
4977 least inform the user of their presence. I couldn't quite get
4981 least inform the user of their presence. I couldn't quite get
4978 them to properly re-execute, but at least the user is warned.
4982 them to properly re-execute, but at least the user is warned.
4979
4983
4980 * Started ChangeLog.
4984 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now