##// END OF EJS Templates
renamed rehash_dir.py to ext_rehashdir.py (a convention for naming...
vivainio -
Show More
1 NO CONTENT: file renamed from IPython/Extensions/rehash_dir.py to IPython/Extensions/ext_rehashdir.py
NO CONTENT: file renamed from IPython/Extensions/rehash_dir.py to IPython/Extensions/ext_rehashdir.py
@@ -1,4974 +1,4975 b''
1 2006-01-20 Ville Vainio <vivainio@gmail.com>
1 2006-01-20 Ville Vainio <vivainio@gmail.com>
2
2
3 * Ipython/Extensions/rehash_dir.py: Created a usable example
3 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
4 of how to extend ipython with new magics. Also added Extensions
4 (%rehashdir, very useful, try it out) of how to extend ipython
5 dir to pythonpath to make executing extensions easy.
5 with new magics. Also added Extensions dir to pythonpath to make
6 importing extensions easy.
6
7
7 * %store now complains when trying to store interactively declared
8 * %store now complains when trying to store interactively declared
8 classes / instances of those classes.
9 classes / instances of those classes.
9
10
10 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
11 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
11
12
12 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
13 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
13 multiline code with autoindent on working. But I am really not
14 multiline code with autoindent on working. But I am really not
14 sure, so this needs more testing. Will commit a debug-enabled
15 sure, so this needs more testing. Will commit a debug-enabled
15 version for now, while I test it some more, so that Ville and
16 version for now, while I test it some more, so that Ville and
16 others may also catch any problems. Also made
17 others may also catch any problems. Also made
17 self.indent_current_str() a method, to ensure that there's no
18 self.indent_current_str() a method, to ensure that there's no
18 chance of the indent space count and the corresponding string
19 chance of the indent space count and the corresponding string
19 falling out of sync. All code needing the string should just call
20 falling out of sync. All code needing the string should just call
20 the method.
21 the method.
21
22
22 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
23 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
23
24
24 * IPython/Magic.py (magic_edit): fix check for when users don't
25 * IPython/Magic.py (magic_edit): fix check for when users don't
25 save their output files, the try/except was in the wrong section.
26 save their output files, the try/except was in the wrong section.
26
27
27 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
28 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
28
29
29 * IPython/Magic.py (magic_run): fix __file__ global missing from
30 * IPython/Magic.py (magic_run): fix __file__ global missing from
30 script's namespace when executed via %run. After a report by
31 script's namespace when executed via %run. After a report by
31 Vivian.
32 Vivian.
32
33
33 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
34 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
34 when using python 2.4. The parent constructor changed in 2.4, and
35 when using python 2.4. The parent constructor changed in 2.4, and
35 we need to track it directly (we can't call it, as it messes up
36 we need to track it directly (we can't call it, as it messes up
36 readline and tab-completion inside our pdb would stop working).
37 readline and tab-completion inside our pdb would stop working).
37 After a bug report by R. Bernstein <rocky-AT-panix.com>.
38 After a bug report by R. Bernstein <rocky-AT-panix.com>.
38
39
39 2006-01-16 Ville Vainio <vivainio@gmail.com>
40 2006-01-16 Ville Vainio <vivainio@gmail.com>
40
41
41 * Ipython/magic.py:Reverted back to old %edit functionality
42 * Ipython/magic.py:Reverted back to old %edit functionality
42 that returns file contents on exit.
43 that returns file contents on exit.
43
44
44 * IPython/path.py: Added Jason Orendorff's "path" module to
45 * IPython/path.py: Added Jason Orendorff's "path" module to
45 IPython tree, http://www.jorendorff.com/articles/python/path/.
46 IPython tree, http://www.jorendorff.com/articles/python/path/.
46 You can get path objects conveniently through %sc, and !!, e.g.:
47 You can get path objects conveniently through %sc, and !!, e.g.:
47 sc files=ls
48 sc files=ls
48 for p in files.paths: # or files.p
49 for p in files.paths: # or files.p
49 print p,p.mtime
50 print p,p.mtime
50
51
51 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
52 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
52 now work again without considering the exclusion regexp -
53 now work again without considering the exclusion regexp -
53 hence, things like ',foo my/path' turn to 'foo("my/path")'
54 hence, things like ',foo my/path' turn to 'foo("my/path")'
54 instead of syntax error.
55 instead of syntax error.
55
56
56
57
57 2006-01-14 Ville Vainio <vivainio@gmail.com>
58 2006-01-14 Ville Vainio <vivainio@gmail.com>
58
59
59 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
60 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
60 ipapi decorators for python 2.4 users, options() provides access to rc
61 ipapi decorators for python 2.4 users, options() provides access to rc
61 data.
62 data.
62
63
63 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
64 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
64 as path separators (even on Linux ;-). Space character after
65 as path separators (even on Linux ;-). Space character after
65 backslash (as yielded by tab completer) is still space;
66 backslash (as yielded by tab completer) is still space;
66 "%cd long\ name" works as expected.
67 "%cd long\ name" works as expected.
67
68
68 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
69 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
69 as "chain of command", with priority. API stays the same,
70 as "chain of command", with priority. API stays the same,
70 TryNext exception raised by a hook function signals that
71 TryNext exception raised by a hook function signals that
71 current hook failed and next hook should try handling it, as
72 current hook failed and next hook should try handling it, as
72 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
73 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
73 requested configurable display hook, which is now implemented.
74 requested configurable display hook, which is now implemented.
74
75
75 2006-01-13 Ville Vainio <vivainio@gmail.com>
76 2006-01-13 Ville Vainio <vivainio@gmail.com>
76
77
77 * IPython/platutils*.py: platform specific utility functions,
78 * IPython/platutils*.py: platform specific utility functions,
78 so far only set_term_title is implemented (change terminal
79 so far only set_term_title is implemented (change terminal
79 label in windowing systems). %cd now changes the title to
80 label in windowing systems). %cd now changes the title to
80 current dir.
81 current dir.
81
82
82 * IPython/Release.py: Added myself to "authors" list,
83 * IPython/Release.py: Added myself to "authors" list,
83 had to create new files.
84 had to create new files.
84
85
85 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
86 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
86 shell escape; not a known bug but had potential to be one in the
87 shell escape; not a known bug but had potential to be one in the
87 future.
88 future.
88
89
89 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
90 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
90 extension API for IPython! See the module for usage example. Fix
91 extension API for IPython! See the module for usage example. Fix
91 OInspect for docstring-less magic functions.
92 OInspect for docstring-less magic functions.
92
93
93
94
94 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
95 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
95
96
96 * IPython/iplib.py (raw_input): temporarily deactivate all
97 * IPython/iplib.py (raw_input): temporarily deactivate all
97 attempts at allowing pasting of code with autoindent on. It
98 attempts at allowing pasting of code with autoindent on. It
98 introduced bugs (reported by Prabhu) and I can't seem to find a
99 introduced bugs (reported by Prabhu) and I can't seem to find a
99 robust combination which works in all cases. Will have to revisit
100 robust combination which works in all cases. Will have to revisit
100 later.
101 later.
101
102
102 * IPython/genutils.py: remove isspace() function. We've dropped
103 * IPython/genutils.py: remove isspace() function. We've dropped
103 2.2 compatibility, so it's OK to use the string method.
104 2.2 compatibility, so it's OK to use the string method.
104
105
105 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
106 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
106
107
107 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
108 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
108 matching what NOT to autocall on, to include all python binary
109 matching what NOT to autocall on, to include all python binary
109 operators (including things like 'and', 'or', 'is' and 'in').
110 operators (including things like 'and', 'or', 'is' and 'in').
110 Prompted by a bug report on 'foo & bar', but I realized we had
111 Prompted by a bug report on 'foo & bar', but I realized we had
111 many more potential bug cases with other operators. The regexp is
112 many more potential bug cases with other operators. The regexp is
112 self.re_exclude_auto, it's fairly commented.
113 self.re_exclude_auto, it's fairly commented.
113
114
114 2006-01-12 Ville Vainio <vivainio@gmail.com>
115 2006-01-12 Ville Vainio <vivainio@gmail.com>
115
116
116 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
117 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
117 Prettified and hardened string/backslash quoting with ipsystem(),
118 Prettified and hardened string/backslash quoting with ipsystem(),
118 ipalias() and ipmagic(). Now even \ characters are passed to
119 ipalias() and ipmagic(). Now even \ characters are passed to
119 %magics, !shell escapes and aliases exactly as they are in the
120 %magics, !shell escapes and aliases exactly as they are in the
120 ipython command line. Should improve backslash experience,
121 ipython command line. Should improve backslash experience,
121 particularly in Windows (path delimiter for some commands that
122 particularly in Windows (path delimiter for some commands that
122 won't understand '/'), but Unix benefits as well (regexps). %cd
123 won't understand '/'), but Unix benefits as well (regexps). %cd
123 magic still doesn't support backslash path delimiters, though. Also
124 magic still doesn't support backslash path delimiters, though. Also
124 deleted all pretense of supporting multiline command strings in
125 deleted all pretense of supporting multiline command strings in
125 !system or %magic commands. Thanks to Jerry McRae for suggestions.
126 !system or %magic commands. Thanks to Jerry McRae for suggestions.
126
127
127 * doc/build_doc_instructions.txt added. Documentation on how to
128 * doc/build_doc_instructions.txt added. Documentation on how to
128 use doc/update_manual.py, added yesterday. Both files contributed
129 use doc/update_manual.py, added yesterday. Both files contributed
129 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
130 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
130 doc/*.sh for deprecation at a later date.
131 doc/*.sh for deprecation at a later date.
131
132
132 * /ipython.py Added ipython.py to root directory for
133 * /ipython.py Added ipython.py to root directory for
133 zero-installation (tar xzvf ipython.tgz; cd ipython; python
134 zero-installation (tar xzvf ipython.tgz; cd ipython; python
134 ipython.py) and development convenience (no need to kee doing
135 ipython.py) and development convenience (no need to kee doing
135 "setup.py install" between changes).
136 "setup.py install" between changes).
136
137
137 * Made ! and !! shell escapes work (again) in multiline expressions:
138 * Made ! and !! shell escapes work (again) in multiline expressions:
138 if 1:
139 if 1:
139 !ls
140 !ls
140 !!ls
141 !!ls
141
142
142 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
143 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
143
144
144 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
145 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
145 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
146 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
146 module in case-insensitive installation. Was causing crashes
147 module in case-insensitive installation. Was causing crashes
147 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
148 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
148
149
149 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
150 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
150 <marienz-AT-gentoo.org>, closes
151 <marienz-AT-gentoo.org>, closes
151 http://www.scipy.net/roundup/ipython/issue51.
152 http://www.scipy.net/roundup/ipython/issue51.
152
153
153 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
154 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
154
155
155 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
156 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
156 problem of excessive CPU usage under *nix and keyboard lag under
157 problem of excessive CPU usage under *nix and keyboard lag under
157 win32.
158 win32.
158
159
159 2006-01-10 *** Released version 0.7.0
160 2006-01-10 *** Released version 0.7.0
160
161
161 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
162 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
162
163
163 * IPython/Release.py (revision): tag version number to 0.7.0,
164 * IPython/Release.py (revision): tag version number to 0.7.0,
164 ready for release.
165 ready for release.
165
166
166 * IPython/Magic.py (magic_edit): Add print statement to %edit so
167 * IPython/Magic.py (magic_edit): Add print statement to %edit so
167 it informs the user of the name of the temp. file used. This can
168 it informs the user of the name of the temp. file used. This can
168 help if you decide later to reuse that same file, so you know
169 help if you decide later to reuse that same file, so you know
169 where to copy the info from.
170 where to copy the info from.
170
171
171 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
172 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
172
173
173 * setup_bdist_egg.py: little script to build an egg. Added
174 * setup_bdist_egg.py: little script to build an egg. Added
174 support in the release tools as well.
175 support in the release tools as well.
175
176
176 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
177 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
177
178
178 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
179 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
179 version selection (new -wxversion command line and ipythonrc
180 version selection (new -wxversion command line and ipythonrc
180 parameter). Patch contributed by Arnd Baecker
181 parameter). Patch contributed by Arnd Baecker
181 <arnd.baecker-AT-web.de>.
182 <arnd.baecker-AT-web.de>.
182
183
183 * IPython/iplib.py (embed_mainloop): fix tab-completion in
184 * IPython/iplib.py (embed_mainloop): fix tab-completion in
184 embedded instances, for variables defined at the interactive
185 embedded instances, for variables defined at the interactive
185 prompt of the embedded ipython. Reported by Arnd.
186 prompt of the embedded ipython. Reported by Arnd.
186
187
187 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
188 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
188 it can be used as a (stateful) toggle, or with a direct parameter.
189 it can be used as a (stateful) toggle, or with a direct parameter.
189
190
190 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
191 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
191 could be triggered in certain cases and cause the traceback
192 could be triggered in certain cases and cause the traceback
192 printer not to work.
193 printer not to work.
193
194
194 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
195 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
195
196
196 * IPython/iplib.py (_should_recompile): Small fix, closes
197 * IPython/iplib.py (_should_recompile): Small fix, closes
197 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
198 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
198
199
199 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
200 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
200
201
201 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
202 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
202 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
203 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
203 Moad for help with tracking it down.
204 Moad for help with tracking it down.
204
205
205 * IPython/iplib.py (handle_auto): fix autocall handling for
206 * IPython/iplib.py (handle_auto): fix autocall handling for
206 objects which support BOTH __getitem__ and __call__ (so that f [x]
207 objects which support BOTH __getitem__ and __call__ (so that f [x]
207 is left alone, instead of becoming f([x]) automatically).
208 is left alone, instead of becoming f([x]) automatically).
208
209
209 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
210 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
210 Ville's patch.
211 Ville's patch.
211
212
212 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
213 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
213
214
214 * IPython/iplib.py (handle_auto): changed autocall semantics to
215 * IPython/iplib.py (handle_auto): changed autocall semantics to
215 include 'smart' mode, where the autocall transformation is NOT
216 include 'smart' mode, where the autocall transformation is NOT
216 applied if there are no arguments on the line. This allows you to
217 applied if there are no arguments on the line. This allows you to
217 just type 'foo' if foo is a callable to see its internal form,
218 just type 'foo' if foo is a callable to see its internal form,
218 instead of having it called with no arguments (typically a
219 instead of having it called with no arguments (typically a
219 mistake). The old 'full' autocall still exists: for that, you
220 mistake). The old 'full' autocall still exists: for that, you
220 need to set the 'autocall' parameter to 2 in your ipythonrc file.
221 need to set the 'autocall' parameter to 2 in your ipythonrc file.
221
222
222 * IPython/completer.py (Completer.attr_matches): add
223 * IPython/completer.py (Completer.attr_matches): add
223 tab-completion support for Enthoughts' traits. After a report by
224 tab-completion support for Enthoughts' traits. After a report by
224 Arnd and a patch by Prabhu.
225 Arnd and a patch by Prabhu.
225
226
226 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
227 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
227
228
228 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
229 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
229 Schmolck's patch to fix inspect.getinnerframes().
230 Schmolck's patch to fix inspect.getinnerframes().
230
231
231 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
232 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
232 for embedded instances, regarding handling of namespaces and items
233 for embedded instances, regarding handling of namespaces and items
233 added to the __builtin__ one. Multiple embedded instances and
234 added to the __builtin__ one. Multiple embedded instances and
234 recursive embeddings should work better now (though I'm not sure
235 recursive embeddings should work better now (though I'm not sure
235 I've got all the corner cases fixed, that code is a bit of a brain
236 I've got all the corner cases fixed, that code is a bit of a brain
236 twister).
237 twister).
237
238
238 * IPython/Magic.py (magic_edit): added support to edit in-memory
239 * IPython/Magic.py (magic_edit): added support to edit in-memory
239 macros (automatically creates the necessary temp files). %edit
240 macros (automatically creates the necessary temp files). %edit
240 also doesn't return the file contents anymore, it's just noise.
241 also doesn't return the file contents anymore, it's just noise.
241
242
242 * IPython/completer.py (Completer.attr_matches): revert change to
243 * IPython/completer.py (Completer.attr_matches): revert change to
243 complete only on attributes listed in __all__. I realized it
244 complete only on attributes listed in __all__. I realized it
244 cripples the tab-completion system as a tool for exploring the
245 cripples the tab-completion system as a tool for exploring the
245 internals of unknown libraries (it renders any non-__all__
246 internals of unknown libraries (it renders any non-__all__
246 attribute off-limits). I got bit by this when trying to see
247 attribute off-limits). I got bit by this when trying to see
247 something inside the dis module.
248 something inside the dis module.
248
249
249 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
250 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
250
251
251 * IPython/iplib.py (InteractiveShell.__init__): add .meta
252 * IPython/iplib.py (InteractiveShell.__init__): add .meta
252 namespace for users and extension writers to hold data in. This
253 namespace for users and extension writers to hold data in. This
253 follows the discussion in
254 follows the discussion in
254 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
255 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
255
256
256 * IPython/completer.py (IPCompleter.complete): small patch to help
257 * IPython/completer.py (IPCompleter.complete): small patch to help
257 tab-completion under Emacs, after a suggestion by John Barnard
258 tab-completion under Emacs, after a suggestion by John Barnard
258 <barnarj-AT-ccf.org>.
259 <barnarj-AT-ccf.org>.
259
260
260 * IPython/Magic.py (Magic.extract_input_slices): added support for
261 * IPython/Magic.py (Magic.extract_input_slices): added support for
261 the slice notation in magics to use N-M to represent numbers N...M
262 the slice notation in magics to use N-M to represent numbers N...M
262 (closed endpoints). This is used by %macro and %save.
263 (closed endpoints). This is used by %macro and %save.
263
264
264 * IPython/completer.py (Completer.attr_matches): for modules which
265 * IPython/completer.py (Completer.attr_matches): for modules which
265 define __all__, complete only on those. After a patch by Jeffrey
266 define __all__, complete only on those. After a patch by Jeffrey
266 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
267 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
267 speed up this routine.
268 speed up this routine.
268
269
269 * IPython/Logger.py (Logger.log): fix a history handling bug. I
270 * IPython/Logger.py (Logger.log): fix a history handling bug. I
270 don't know if this is the end of it, but the behavior now is
271 don't know if this is the end of it, but the behavior now is
271 certainly much more correct. Note that coupled with macros,
272 certainly much more correct. Note that coupled with macros,
272 slightly surprising (at first) behavior may occur: a macro will in
273 slightly surprising (at first) behavior may occur: a macro will in
273 general expand to multiple lines of input, so upon exiting, the
274 general expand to multiple lines of input, so upon exiting, the
274 in/out counters will both be bumped by the corresponding amount
275 in/out counters will both be bumped by the corresponding amount
275 (as if the macro's contents had been typed interactively). Typing
276 (as if the macro's contents had been typed interactively). Typing
276 %hist will reveal the intermediate (silently processed) lines.
277 %hist will reveal the intermediate (silently processed) lines.
277
278
278 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
279 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
279 pickle to fail (%run was overwriting __main__ and not restoring
280 pickle to fail (%run was overwriting __main__ and not restoring
280 it, but pickle relies on __main__ to operate).
281 it, but pickle relies on __main__ to operate).
281
282
282 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
283 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
283 using properties, but forgot to make the main InteractiveShell
284 using properties, but forgot to make the main InteractiveShell
284 class a new-style class. Properties fail silently, and
285 class a new-style class. Properties fail silently, and
285 misteriously, with old-style class (getters work, but
286 misteriously, with old-style class (getters work, but
286 setters don't do anything).
287 setters don't do anything).
287
288
288 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
289 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
289
290
290 * IPython/Magic.py (magic_history): fix history reporting bug (I
291 * IPython/Magic.py (magic_history): fix history reporting bug (I
291 know some nasties are still there, I just can't seem to find a
292 know some nasties are still there, I just can't seem to find a
292 reproducible test case to track them down; the input history is
293 reproducible test case to track them down; the input history is
293 falling out of sync...)
294 falling out of sync...)
294
295
295 * IPython/iplib.py (handle_shell_escape): fix bug where both
296 * IPython/iplib.py (handle_shell_escape): fix bug where both
296 aliases and system accesses where broken for indented code (such
297 aliases and system accesses where broken for indented code (such
297 as loops).
298 as loops).
298
299
299 * IPython/genutils.py (shell): fix small but critical bug for
300 * IPython/genutils.py (shell): fix small but critical bug for
300 win32 system access.
301 win32 system access.
301
302
302 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
303 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
303
304
304 * IPython/iplib.py (showtraceback): remove use of the
305 * IPython/iplib.py (showtraceback): remove use of the
305 sys.last_{type/value/traceback} structures, which are non
306 sys.last_{type/value/traceback} structures, which are non
306 thread-safe.
307 thread-safe.
307 (_prefilter): change control flow to ensure that we NEVER
308 (_prefilter): change control flow to ensure that we NEVER
308 introspect objects when autocall is off. This will guarantee that
309 introspect objects when autocall is off. This will guarantee that
309 having an input line of the form 'x.y', where access to attribute
310 having an input line of the form 'x.y', where access to attribute
310 'y' has side effects, doesn't trigger the side effect TWICE. It
311 'y' has side effects, doesn't trigger the side effect TWICE. It
311 is important to note that, with autocall on, these side effects
312 is important to note that, with autocall on, these side effects
312 can still happen.
313 can still happen.
313 (ipsystem): new builtin, to complete the ip{magic/alias/system}
314 (ipsystem): new builtin, to complete the ip{magic/alias/system}
314 trio. IPython offers these three kinds of special calls which are
315 trio. IPython offers these three kinds of special calls which are
315 not python code, and it's a good thing to have their call method
316 not python code, and it's a good thing to have their call method
316 be accessible as pure python functions (not just special syntax at
317 be accessible as pure python functions (not just special syntax at
317 the command line). It gives us a better internal implementation
318 the command line). It gives us a better internal implementation
318 structure, as well as exposing these for user scripting more
319 structure, as well as exposing these for user scripting more
319 cleanly.
320 cleanly.
320
321
321 * IPython/macro.py (Macro.__init__): moved macros to a standalone
322 * IPython/macro.py (Macro.__init__): moved macros to a standalone
322 file. Now that they'll be more likely to be used with the
323 file. Now that they'll be more likely to be used with the
323 persistance system (%store), I want to make sure their module path
324 persistance system (%store), I want to make sure their module path
324 doesn't change in the future, so that we don't break things for
325 doesn't change in the future, so that we don't break things for
325 users' persisted data.
326 users' persisted data.
326
327
327 * IPython/iplib.py (autoindent_update): move indentation
328 * IPython/iplib.py (autoindent_update): move indentation
328 management into the _text_ processing loop, not the keyboard
329 management into the _text_ processing loop, not the keyboard
329 interactive one. This is necessary to correctly process non-typed
330 interactive one. This is necessary to correctly process non-typed
330 multiline input (such as macros).
331 multiline input (such as macros).
331
332
332 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
333 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
333 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
334 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
334 which was producing problems in the resulting manual.
335 which was producing problems in the resulting manual.
335 (magic_whos): improve reporting of instances (show their class,
336 (magic_whos): improve reporting of instances (show their class,
336 instead of simply printing 'instance' which isn't terribly
337 instead of simply printing 'instance' which isn't terribly
337 informative).
338 informative).
338
339
339 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
340 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
340 (minor mods) to support network shares under win32.
341 (minor mods) to support network shares under win32.
341
342
342 * IPython/winconsole.py (get_console_size): add new winconsole
343 * IPython/winconsole.py (get_console_size): add new winconsole
343 module and fixes to page_dumb() to improve its behavior under
344 module and fixes to page_dumb() to improve its behavior under
344 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
345 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
345
346
346 * IPython/Magic.py (Macro): simplified Macro class to just
347 * IPython/Magic.py (Macro): simplified Macro class to just
347 subclass list. We've had only 2.2 compatibility for a very long
348 subclass list. We've had only 2.2 compatibility for a very long
348 time, yet I was still avoiding subclassing the builtin types. No
349 time, yet I was still avoiding subclassing the builtin types. No
349 more (I'm also starting to use properties, though I won't shift to
350 more (I'm also starting to use properties, though I won't shift to
350 2.3-specific features quite yet).
351 2.3-specific features quite yet).
351 (magic_store): added Ville's patch for lightweight variable
352 (magic_store): added Ville's patch for lightweight variable
352 persistence, after a request on the user list by Matt Wilkie
353 persistence, after a request on the user list by Matt Wilkie
353 <maphew-AT-gmail.com>. The new %store magic's docstring has full
354 <maphew-AT-gmail.com>. The new %store magic's docstring has full
354 details.
355 details.
355
356
356 * IPython/iplib.py (InteractiveShell.post_config_initialization):
357 * IPython/iplib.py (InteractiveShell.post_config_initialization):
357 changed the default logfile name from 'ipython.log' to
358 changed the default logfile name from 'ipython.log' to
358 'ipython_log.py'. These logs are real python files, and now that
359 'ipython_log.py'. These logs are real python files, and now that
359 we have much better multiline support, people are more likely to
360 we have much better multiline support, people are more likely to
360 want to use them as such. Might as well name them correctly.
361 want to use them as such. Might as well name them correctly.
361
362
362 * IPython/Magic.py: substantial cleanup. While we can't stop
363 * IPython/Magic.py: substantial cleanup. While we can't stop
363 using magics as mixins, due to the existing customizations 'out
364 using magics as mixins, due to the existing customizations 'out
364 there' which rely on the mixin naming conventions, at least I
365 there' which rely on the mixin naming conventions, at least I
365 cleaned out all cross-class name usage. So once we are OK with
366 cleaned out all cross-class name usage. So once we are OK with
366 breaking compatibility, the two systems can be separated.
367 breaking compatibility, the two systems can be separated.
367
368
368 * IPython/Logger.py: major cleanup. This one is NOT a mixin
369 * IPython/Logger.py: major cleanup. This one is NOT a mixin
369 anymore, and the class is a fair bit less hideous as well. New
370 anymore, and the class is a fair bit less hideous as well. New
370 features were also introduced: timestamping of input, and logging
371 features were also introduced: timestamping of input, and logging
371 of output results. These are user-visible with the -t and -o
372 of output results. These are user-visible with the -t and -o
372 options to %logstart. Closes
373 options to %logstart. Closes
373 http://www.scipy.net/roundup/ipython/issue11 and a request by
374 http://www.scipy.net/roundup/ipython/issue11 and a request by
374 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
375 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
375
376
376 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
377 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
377
378
378 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
379 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
379 better hadnle backslashes in paths. See the thread 'More Windows
380 better hadnle backslashes in paths. See the thread 'More Windows
380 questions part 2 - \/ characters revisited' on the iypthon user
381 questions part 2 - \/ characters revisited' on the iypthon user
381 list:
382 list:
382 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
383 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
383
384
384 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
385 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
385
386
386 (InteractiveShell.__init__): change threaded shells to not use the
387 (InteractiveShell.__init__): change threaded shells to not use the
387 ipython crash handler. This was causing more problems than not,
388 ipython crash handler. This was causing more problems than not,
388 as exceptions in the main thread (GUI code, typically) would
389 as exceptions in the main thread (GUI code, typically) would
389 always show up as a 'crash', when they really weren't.
390 always show up as a 'crash', when they really weren't.
390
391
391 The colors and exception mode commands (%colors/%xmode) have been
392 The colors and exception mode commands (%colors/%xmode) have been
392 synchronized to also take this into account, so users can get
393 synchronized to also take this into account, so users can get
393 verbose exceptions for their threaded code as well. I also added
394 verbose exceptions for their threaded code as well. I also added
394 support for activating pdb inside this exception handler as well,
395 support for activating pdb inside this exception handler as well,
395 so now GUI authors can use IPython's enhanced pdb at runtime.
396 so now GUI authors can use IPython's enhanced pdb at runtime.
396
397
397 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
398 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
398 true by default, and add it to the shipped ipythonrc file. Since
399 true by default, and add it to the shipped ipythonrc file. Since
399 this asks the user before proceeding, I think it's OK to make it
400 this asks the user before proceeding, I think it's OK to make it
400 true by default.
401 true by default.
401
402
402 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
403 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
403 of the previous special-casing of input in the eval loop. I think
404 of the previous special-casing of input in the eval loop. I think
404 this is cleaner, as they really are commands and shouldn't have
405 this is cleaner, as they really are commands and shouldn't have
405 a special role in the middle of the core code.
406 a special role in the middle of the core code.
406
407
407 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
408 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
408
409
409 * IPython/iplib.py (edit_syntax_error): added support for
410 * IPython/iplib.py (edit_syntax_error): added support for
410 automatically reopening the editor if the file had a syntax error
411 automatically reopening the editor if the file had a syntax error
411 in it. Thanks to scottt who provided the patch at:
412 in it. Thanks to scottt who provided the patch at:
412 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
413 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
413 version committed).
414 version committed).
414
415
415 * IPython/iplib.py (handle_normal): add suport for multi-line
416 * IPython/iplib.py (handle_normal): add suport for multi-line
416 input with emtpy lines. This fixes
417 input with emtpy lines. This fixes
417 http://www.scipy.net/roundup/ipython/issue43 and a similar
418 http://www.scipy.net/roundup/ipython/issue43 and a similar
418 discussion on the user list.
419 discussion on the user list.
419
420
420 WARNING: a behavior change is necessarily introduced to support
421 WARNING: a behavior change is necessarily introduced to support
421 blank lines: now a single blank line with whitespace does NOT
422 blank lines: now a single blank line with whitespace does NOT
422 break the input loop, which means that when autoindent is on, by
423 break the input loop, which means that when autoindent is on, by
423 default hitting return on the next (indented) line does NOT exit.
424 default hitting return on the next (indented) line does NOT exit.
424
425
425 Instead, to exit a multiline input you can either have:
426 Instead, to exit a multiline input you can either have:
426
427
427 - TWO whitespace lines (just hit return again), or
428 - TWO whitespace lines (just hit return again), or
428 - a single whitespace line of a different length than provided
429 - a single whitespace line of a different length than provided
429 by the autoindent (add or remove a space).
430 by the autoindent (add or remove a space).
430
431
431 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
432 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
432 module to better organize all readline-related functionality.
433 module to better organize all readline-related functionality.
433 I've deleted FlexCompleter and put all completion clases here.
434 I've deleted FlexCompleter and put all completion clases here.
434
435
435 * IPython/iplib.py (raw_input): improve indentation management.
436 * IPython/iplib.py (raw_input): improve indentation management.
436 It is now possible to paste indented code with autoindent on, and
437 It is now possible to paste indented code with autoindent on, and
437 the code is interpreted correctly (though it still looks bad on
438 the code is interpreted correctly (though it still looks bad on
438 screen, due to the line-oriented nature of ipython).
439 screen, due to the line-oriented nature of ipython).
439 (MagicCompleter.complete): change behavior so that a TAB key on an
440 (MagicCompleter.complete): change behavior so that a TAB key on an
440 otherwise empty line actually inserts a tab, instead of completing
441 otherwise empty line actually inserts a tab, instead of completing
441 on the entire global namespace. This makes it easier to use the
442 on the entire global namespace. This makes it easier to use the
442 TAB key for indentation. After a request by Hans Meine
443 TAB key for indentation. After a request by Hans Meine
443 <hans_meine-AT-gmx.net>
444 <hans_meine-AT-gmx.net>
444 (_prefilter): add support so that typing plain 'exit' or 'quit'
445 (_prefilter): add support so that typing plain 'exit' or 'quit'
445 does a sensible thing. Originally I tried to deviate as little as
446 does a sensible thing. Originally I tried to deviate as little as
446 possible from the default python behavior, but even that one may
447 possible from the default python behavior, but even that one may
447 change in this direction (thread on python-dev to that effect).
448 change in this direction (thread on python-dev to that effect).
448 Regardless, ipython should do the right thing even if CPython's
449 Regardless, ipython should do the right thing even if CPython's
449 '>>>' prompt doesn't.
450 '>>>' prompt doesn't.
450 (InteractiveShell): removed subclassing code.InteractiveConsole
451 (InteractiveShell): removed subclassing code.InteractiveConsole
451 class. By now we'd overridden just about all of its methods: I've
452 class. By now we'd overridden just about all of its methods: I've
452 copied the remaining two over, and now ipython is a standalone
453 copied the remaining two over, and now ipython is a standalone
453 class. This will provide a clearer picture for the chainsaw
454 class. This will provide a clearer picture for the chainsaw
454 branch refactoring.
455 branch refactoring.
455
456
456 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
457 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
457
458
458 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
459 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
459 failures for objects which break when dir() is called on them.
460 failures for objects which break when dir() is called on them.
460
461
461 * IPython/FlexCompleter.py (Completer.__init__): Added support for
462 * IPython/FlexCompleter.py (Completer.__init__): Added support for
462 distinct local and global namespaces in the completer API. This
463 distinct local and global namespaces in the completer API. This
463 change allows us top properly handle completion with distinct
464 change allows us top properly handle completion with distinct
464 scopes, including in embedded instances (this had never really
465 scopes, including in embedded instances (this had never really
465 worked correctly).
466 worked correctly).
466
467
467 Note: this introduces a change in the constructor for
468 Note: this introduces a change in the constructor for
468 MagicCompleter, as a new global_namespace parameter is now the
469 MagicCompleter, as a new global_namespace parameter is now the
469 second argument (the others were bumped one position).
470 second argument (the others were bumped one position).
470
471
471 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
472 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
472
473
473 * IPython/iplib.py (embed_mainloop): fix tab-completion in
474 * IPython/iplib.py (embed_mainloop): fix tab-completion in
474 embedded instances (which can be done now thanks to Vivian's
475 embedded instances (which can be done now thanks to Vivian's
475 frame-handling fixes for pdb).
476 frame-handling fixes for pdb).
476 (InteractiveShell.__init__): Fix namespace handling problem in
477 (InteractiveShell.__init__): Fix namespace handling problem in
477 embedded instances. We were overwriting __main__ unconditionally,
478 embedded instances. We were overwriting __main__ unconditionally,
478 and this should only be done for 'full' (non-embedded) IPython;
479 and this should only be done for 'full' (non-embedded) IPython;
479 embedded instances must respect the caller's __main__. Thanks to
480 embedded instances must respect the caller's __main__. Thanks to
480 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
481 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
481
482
482 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
483 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
483
484
484 * setup.py: added download_url to setup(). This registers the
485 * setup.py: added download_url to setup(). This registers the
485 download address at PyPI, which is not only useful to humans
486 download address at PyPI, which is not only useful to humans
486 browsing the site, but is also picked up by setuptools (the Eggs
487 browsing the site, but is also picked up by setuptools (the Eggs
487 machinery). Thanks to Ville and R. Kern for the info/discussion
488 machinery). Thanks to Ville and R. Kern for the info/discussion
488 on this.
489 on this.
489
490
490 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
491 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
491
492
492 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
493 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
493 This brings a lot of nice functionality to the pdb mode, which now
494 This brings a lot of nice functionality to the pdb mode, which now
494 has tab-completion, syntax highlighting, and better stack handling
495 has tab-completion, syntax highlighting, and better stack handling
495 than before. Many thanks to Vivian De Smedt
496 than before. Many thanks to Vivian De Smedt
496 <vivian-AT-vdesmedt.com> for the original patches.
497 <vivian-AT-vdesmedt.com> for the original patches.
497
498
498 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
499 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
499
500
500 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
501 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
501 sequence to consistently accept the banner argument. The
502 sequence to consistently accept the banner argument. The
502 inconsistency was tripping SAGE, thanks to Gary Zablackis
503 inconsistency was tripping SAGE, thanks to Gary Zablackis
503 <gzabl-AT-yahoo.com> for the report.
504 <gzabl-AT-yahoo.com> for the report.
504
505
505 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
506 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
506
507
507 * IPython/iplib.py (InteractiveShell.post_config_initialization):
508 * IPython/iplib.py (InteractiveShell.post_config_initialization):
508 Fix bug where a naked 'alias' call in the ipythonrc file would
509 Fix bug where a naked 'alias' call in the ipythonrc file would
509 cause a crash. Bug reported by Jorgen Stenarson.
510 cause a crash. Bug reported by Jorgen Stenarson.
510
511
511 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
512 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
512
513
513 * IPython/ipmaker.py (make_IPython): cleanups which should improve
514 * IPython/ipmaker.py (make_IPython): cleanups which should improve
514 startup time.
515 startup time.
515
516
516 * IPython/iplib.py (runcode): my globals 'fix' for embedded
517 * IPython/iplib.py (runcode): my globals 'fix' for embedded
517 instances had introduced a bug with globals in normal code. Now
518 instances had introduced a bug with globals in normal code. Now
518 it's working in all cases.
519 it's working in all cases.
519
520
520 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
521 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
521 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
522 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
522 has been introduced to set the default case sensitivity of the
523 has been introduced to set the default case sensitivity of the
523 searches. Users can still select either mode at runtime on a
524 searches. Users can still select either mode at runtime on a
524 per-search basis.
525 per-search basis.
525
526
526 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
527 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
527
528
528 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
529 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
529 attributes in wildcard searches for subclasses. Modified version
530 attributes in wildcard searches for subclasses. Modified version
530 of a patch by Jorgen.
531 of a patch by Jorgen.
531
532
532 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
533 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
533
534
534 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
535 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
535 embedded instances. I added a user_global_ns attribute to the
536 embedded instances. I added a user_global_ns attribute to the
536 InteractiveShell class to handle this.
537 InteractiveShell class to handle this.
537
538
538 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
539 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
539
540
540 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
541 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
541 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
542 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
542 (reported under win32, but may happen also in other platforms).
543 (reported under win32, but may happen also in other platforms).
543 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
544 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
544
545
545 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
546 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
546
547
547 * IPython/Magic.py (magic_psearch): new support for wildcard
548 * IPython/Magic.py (magic_psearch): new support for wildcard
548 patterns. Now, typing ?a*b will list all names which begin with a
549 patterns. Now, typing ?a*b will list all names which begin with a
549 and end in b, for example. The %psearch magic has full
550 and end in b, for example. The %psearch magic has full
550 docstrings. Many thanks to Jörgen Stenarson
551 docstrings. Many thanks to Jörgen Stenarson
551 <jorgen.stenarson-AT-bostream.nu>, author of the patches
552 <jorgen.stenarson-AT-bostream.nu>, author of the patches
552 implementing this functionality.
553 implementing this functionality.
553
554
554 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
555 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
555
556
556 * Manual: fixed long-standing annoyance of double-dashes (as in
557 * Manual: fixed long-standing annoyance of double-dashes (as in
557 --prefix=~, for example) being stripped in the HTML version. This
558 --prefix=~, for example) being stripped in the HTML version. This
558 is a latex2html bug, but a workaround was provided. Many thanks
559 is a latex2html bug, but a workaround was provided. Many thanks
559 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
560 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
560 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
561 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
561 rolling. This seemingly small issue had tripped a number of users
562 rolling. This seemingly small issue had tripped a number of users
562 when first installing, so I'm glad to see it gone.
563 when first installing, so I'm glad to see it gone.
563
564
564 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
565 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
565
566
566 * IPython/Extensions/numeric_formats.py: fix missing import,
567 * IPython/Extensions/numeric_formats.py: fix missing import,
567 reported by Stephen Walton.
568 reported by Stephen Walton.
568
569
569 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
570 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
570
571
571 * IPython/demo.py: finish demo module, fully documented now.
572 * IPython/demo.py: finish demo module, fully documented now.
572
573
573 * IPython/genutils.py (file_read): simple little utility to read a
574 * IPython/genutils.py (file_read): simple little utility to read a
574 file and ensure it's closed afterwards.
575 file and ensure it's closed afterwards.
575
576
576 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
577 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
577
578
578 * IPython/demo.py (Demo.__init__): added support for individually
579 * IPython/demo.py (Demo.__init__): added support for individually
579 tagging blocks for automatic execution.
580 tagging blocks for automatic execution.
580
581
581 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
582 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
582 syntax-highlighted python sources, requested by John.
583 syntax-highlighted python sources, requested by John.
583
584
584 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
585 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
585
586
586 * IPython/demo.py (Demo.again): fix bug where again() blocks after
587 * IPython/demo.py (Demo.again): fix bug where again() blocks after
587 finishing.
588 finishing.
588
589
589 * IPython/genutils.py (shlex_split): moved from Magic to here,
590 * IPython/genutils.py (shlex_split): moved from Magic to here,
590 where all 2.2 compatibility stuff lives. I needed it for demo.py.
591 where all 2.2 compatibility stuff lives. I needed it for demo.py.
591
592
592 * IPython/demo.py (Demo.__init__): added support for silent
593 * IPython/demo.py (Demo.__init__): added support for silent
593 blocks, improved marks as regexps, docstrings written.
594 blocks, improved marks as regexps, docstrings written.
594 (Demo.__init__): better docstring, added support for sys.argv.
595 (Demo.__init__): better docstring, added support for sys.argv.
595
596
596 * IPython/genutils.py (marquee): little utility used by the demo
597 * IPython/genutils.py (marquee): little utility used by the demo
597 code, handy in general.
598 code, handy in general.
598
599
599 * IPython/demo.py (Demo.__init__): new class for interactive
600 * IPython/demo.py (Demo.__init__): new class for interactive
600 demos. Not documented yet, I just wrote it in a hurry for
601 demos. Not documented yet, I just wrote it in a hurry for
601 scipy'05. Will docstring later.
602 scipy'05. Will docstring later.
602
603
603 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
604 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
604
605
605 * IPython/Shell.py (sigint_handler): Drastic simplification which
606 * IPython/Shell.py (sigint_handler): Drastic simplification which
606 also seems to make Ctrl-C work correctly across threads! This is
607 also seems to make Ctrl-C work correctly across threads! This is
607 so simple, that I can't beleive I'd missed it before. Needs more
608 so simple, that I can't beleive I'd missed it before. Needs more
608 testing, though.
609 testing, though.
609 (KBINT): Never mind, revert changes. I'm sure I'd tried something
610 (KBINT): Never mind, revert changes. I'm sure I'd tried something
610 like this before...
611 like this before...
611
612
612 * IPython/genutils.py (get_home_dir): add protection against
613 * IPython/genutils.py (get_home_dir): add protection against
613 non-dirs in win32 registry.
614 non-dirs in win32 registry.
614
615
615 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
616 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
616 bug where dict was mutated while iterating (pysh crash).
617 bug where dict was mutated while iterating (pysh crash).
617
618
618 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
619 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
619
620
620 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
621 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
621 spurious newlines added by this routine. After a report by
622 spurious newlines added by this routine. After a report by
622 F. Mantegazza.
623 F. Mantegazza.
623
624
624 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
625 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
625
626
626 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
627 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
627 calls. These were a leftover from the GTK 1.x days, and can cause
628 calls. These were a leftover from the GTK 1.x days, and can cause
628 problems in certain cases (after a report by John Hunter).
629 problems in certain cases (after a report by John Hunter).
629
630
630 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
631 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
631 os.getcwd() fails at init time. Thanks to patch from David Remahl
632 os.getcwd() fails at init time. Thanks to patch from David Remahl
632 <chmod007-AT-mac.com>.
633 <chmod007-AT-mac.com>.
633 (InteractiveShell.__init__): prevent certain special magics from
634 (InteractiveShell.__init__): prevent certain special magics from
634 being shadowed by aliases. Closes
635 being shadowed by aliases. Closes
635 http://www.scipy.net/roundup/ipython/issue41.
636 http://www.scipy.net/roundup/ipython/issue41.
636
637
637 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
638 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
638
639
639 * IPython/iplib.py (InteractiveShell.complete): Added new
640 * IPython/iplib.py (InteractiveShell.complete): Added new
640 top-level completion method to expose the completion mechanism
641 top-level completion method to expose the completion mechanism
641 beyond readline-based environments.
642 beyond readline-based environments.
642
643
643 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
644 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
644
645
645 * tools/ipsvnc (svnversion): fix svnversion capture.
646 * tools/ipsvnc (svnversion): fix svnversion capture.
646
647
647 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
648 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
648 attribute to self, which was missing. Before, it was set by a
649 attribute to self, which was missing. Before, it was set by a
649 routine which in certain cases wasn't being called, so the
650 routine which in certain cases wasn't being called, so the
650 instance could end up missing the attribute. This caused a crash.
651 instance could end up missing the attribute. This caused a crash.
651 Closes http://www.scipy.net/roundup/ipython/issue40.
652 Closes http://www.scipy.net/roundup/ipython/issue40.
652
653
653 2005-08-16 Fernando Perez <fperez@colorado.edu>
654 2005-08-16 Fernando Perez <fperez@colorado.edu>
654
655
655 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
656 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
656 contains non-string attribute. Closes
657 contains non-string attribute. Closes
657 http://www.scipy.net/roundup/ipython/issue38.
658 http://www.scipy.net/roundup/ipython/issue38.
658
659
659 2005-08-14 Fernando Perez <fperez@colorado.edu>
660 2005-08-14 Fernando Perez <fperez@colorado.edu>
660
661
661 * tools/ipsvnc: Minor improvements, to add changeset info.
662 * tools/ipsvnc: Minor improvements, to add changeset info.
662
663
663 2005-08-12 Fernando Perez <fperez@colorado.edu>
664 2005-08-12 Fernando Perez <fperez@colorado.edu>
664
665
665 * IPython/iplib.py (runsource): remove self.code_to_run_src
666 * IPython/iplib.py (runsource): remove self.code_to_run_src
666 attribute. I realized this is nothing more than
667 attribute. I realized this is nothing more than
667 '\n'.join(self.buffer), and having the same data in two different
668 '\n'.join(self.buffer), and having the same data in two different
668 places is just asking for synchronization bugs. This may impact
669 places is just asking for synchronization bugs. This may impact
669 people who have custom exception handlers, so I need to warn
670 people who have custom exception handlers, so I need to warn
670 ipython-dev about it (F. Mantegazza may use them).
671 ipython-dev about it (F. Mantegazza may use them).
671
672
672 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
673 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
673
674
674 * IPython/genutils.py: fix 2.2 compatibility (generators)
675 * IPython/genutils.py: fix 2.2 compatibility (generators)
675
676
676 2005-07-18 Fernando Perez <fperez@colorado.edu>
677 2005-07-18 Fernando Perez <fperez@colorado.edu>
677
678
678 * IPython/genutils.py (get_home_dir): fix to help users with
679 * IPython/genutils.py (get_home_dir): fix to help users with
679 invalid $HOME under win32.
680 invalid $HOME under win32.
680
681
681 2005-07-17 Fernando Perez <fperez@colorado.edu>
682 2005-07-17 Fernando Perez <fperez@colorado.edu>
682
683
683 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
684 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
684 some old hacks and clean up a bit other routines; code should be
685 some old hacks and clean up a bit other routines; code should be
685 simpler and a bit faster.
686 simpler and a bit faster.
686
687
687 * IPython/iplib.py (interact): removed some last-resort attempts
688 * IPython/iplib.py (interact): removed some last-resort attempts
688 to survive broken stdout/stderr. That code was only making it
689 to survive broken stdout/stderr. That code was only making it
689 harder to abstract out the i/o (necessary for gui integration),
690 harder to abstract out the i/o (necessary for gui integration),
690 and the crashes it could prevent were extremely rare in practice
691 and the crashes it could prevent were extremely rare in practice
691 (besides being fully user-induced in a pretty violent manner).
692 (besides being fully user-induced in a pretty violent manner).
692
693
693 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
694 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
694 Nothing major yet, but the code is simpler to read; this should
695 Nothing major yet, but the code is simpler to read; this should
695 make it easier to do more serious modifications in the future.
696 make it easier to do more serious modifications in the future.
696
697
697 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
698 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
698 which broke in .15 (thanks to a report by Ville).
699 which broke in .15 (thanks to a report by Ville).
699
700
700 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
701 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
701 be quite correct, I know next to nothing about unicode). This
702 be quite correct, I know next to nothing about unicode). This
702 will allow unicode strings to be used in prompts, amongst other
703 will allow unicode strings to be used in prompts, amongst other
703 cases. It also will prevent ipython from crashing when unicode
704 cases. It also will prevent ipython from crashing when unicode
704 shows up unexpectedly in many places. If ascii encoding fails, we
705 shows up unexpectedly in many places. If ascii encoding fails, we
705 assume utf_8. Currently the encoding is not a user-visible
706 assume utf_8. Currently the encoding is not a user-visible
706 setting, though it could be made so if there is demand for it.
707 setting, though it could be made so if there is demand for it.
707
708
708 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
709 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
709
710
710 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
711 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
711
712
712 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
713 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
713
714
714 * IPython/genutils.py: Add 2.2 compatibility here, so all other
715 * IPython/genutils.py: Add 2.2 compatibility here, so all other
715 code can work transparently for 2.2/2.3.
716 code can work transparently for 2.2/2.3.
716
717
717 2005-07-16 Fernando Perez <fperez@colorado.edu>
718 2005-07-16 Fernando Perez <fperez@colorado.edu>
718
719
719 * IPython/ultraTB.py (ExceptionColors): Make a global variable
720 * IPython/ultraTB.py (ExceptionColors): Make a global variable
720 out of the color scheme table used for coloring exception
721 out of the color scheme table used for coloring exception
721 tracebacks. This allows user code to add new schemes at runtime.
722 tracebacks. This allows user code to add new schemes at runtime.
722 This is a minimally modified version of the patch at
723 This is a minimally modified version of the patch at
723 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
724 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
724 for the contribution.
725 for the contribution.
725
726
726 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
727 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
727 slightly modified version of the patch in
728 slightly modified version of the patch in
728 http://www.scipy.net/roundup/ipython/issue34, which also allows me
729 http://www.scipy.net/roundup/ipython/issue34, which also allows me
729 to remove the previous try/except solution (which was costlier).
730 to remove the previous try/except solution (which was costlier).
730 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
731 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
731
732
732 2005-06-08 Fernando Perez <fperez@colorado.edu>
733 2005-06-08 Fernando Perez <fperez@colorado.edu>
733
734
734 * IPython/iplib.py (write/write_err): Add methods to abstract all
735 * IPython/iplib.py (write/write_err): Add methods to abstract all
735 I/O a bit more.
736 I/O a bit more.
736
737
737 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
738 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
738 warning, reported by Aric Hagberg, fix by JD Hunter.
739 warning, reported by Aric Hagberg, fix by JD Hunter.
739
740
740 2005-06-02 *** Released version 0.6.15
741 2005-06-02 *** Released version 0.6.15
741
742
742 2005-06-01 Fernando Perez <fperez@colorado.edu>
743 2005-06-01 Fernando Perez <fperez@colorado.edu>
743
744
744 * IPython/iplib.py (MagicCompleter.file_matches): Fix
745 * IPython/iplib.py (MagicCompleter.file_matches): Fix
745 tab-completion of filenames within open-quoted strings. Note that
746 tab-completion of filenames within open-quoted strings. Note that
746 this requires that in ~/.ipython/ipythonrc, users change the
747 this requires that in ~/.ipython/ipythonrc, users change the
747 readline delimiters configuration to read:
748 readline delimiters configuration to read:
748
749
749 readline_remove_delims -/~
750 readline_remove_delims -/~
750
751
751
752
752 2005-05-31 *** Released version 0.6.14
753 2005-05-31 *** Released version 0.6.14
753
754
754 2005-05-29 Fernando Perez <fperez@colorado.edu>
755 2005-05-29 Fernando Perez <fperez@colorado.edu>
755
756
756 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
757 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
757 with files not on the filesystem. Reported by Eliyahu Sandler
758 with files not on the filesystem. Reported by Eliyahu Sandler
758 <eli@gondolin.net>
759 <eli@gondolin.net>
759
760
760 2005-05-22 Fernando Perez <fperez@colorado.edu>
761 2005-05-22 Fernando Perez <fperez@colorado.edu>
761
762
762 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
763 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
763 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
764 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
764
765
765 2005-05-19 Fernando Perez <fperez@colorado.edu>
766 2005-05-19 Fernando Perez <fperez@colorado.edu>
766
767
767 * IPython/iplib.py (safe_execfile): close a file which could be
768 * IPython/iplib.py (safe_execfile): close a file which could be
768 left open (causing problems in win32, which locks open files).
769 left open (causing problems in win32, which locks open files).
769 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
770 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
770
771
771 2005-05-18 Fernando Perez <fperez@colorado.edu>
772 2005-05-18 Fernando Perez <fperez@colorado.edu>
772
773
773 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
774 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
774 keyword arguments correctly to safe_execfile().
775 keyword arguments correctly to safe_execfile().
775
776
776 2005-05-13 Fernando Perez <fperez@colorado.edu>
777 2005-05-13 Fernando Perez <fperez@colorado.edu>
777
778
778 * ipython.1: Added info about Qt to manpage, and threads warning
779 * ipython.1: Added info about Qt to manpage, and threads warning
779 to usage page (invoked with --help).
780 to usage page (invoked with --help).
780
781
781 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
782 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
782 new matcher (it goes at the end of the priority list) to do
783 new matcher (it goes at the end of the priority list) to do
783 tab-completion on named function arguments. Submitted by George
784 tab-completion on named function arguments. Submitted by George
784 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
785 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
785 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
786 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
786 for more details.
787 for more details.
787
788
788 * IPython/Magic.py (magic_run): Added new -e flag to ignore
789 * IPython/Magic.py (magic_run): Added new -e flag to ignore
789 SystemExit exceptions in the script being run. Thanks to a report
790 SystemExit exceptions in the script being run. Thanks to a report
790 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
791 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
791 producing very annoying behavior when running unit tests.
792 producing very annoying behavior when running unit tests.
792
793
793 2005-05-12 Fernando Perez <fperez@colorado.edu>
794 2005-05-12 Fernando Perez <fperez@colorado.edu>
794
795
795 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
796 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
796 which I'd broken (again) due to a changed regexp. In the process,
797 which I'd broken (again) due to a changed regexp. In the process,
797 added ';' as an escape to auto-quote the whole line without
798 added ';' as an escape to auto-quote the whole line without
798 splitting its arguments. Thanks to a report by Jerry McRae
799 splitting its arguments. Thanks to a report by Jerry McRae
799 <qrs0xyc02-AT-sneakemail.com>.
800 <qrs0xyc02-AT-sneakemail.com>.
800
801
801 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
802 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
802 possible crashes caused by a TokenError. Reported by Ed Schofield
803 possible crashes caused by a TokenError. Reported by Ed Schofield
803 <schofield-AT-ftw.at>.
804 <schofield-AT-ftw.at>.
804
805
805 2005-05-06 Fernando Perez <fperez@colorado.edu>
806 2005-05-06 Fernando Perez <fperez@colorado.edu>
806
807
807 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
808 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
808
809
809 2005-04-29 Fernando Perez <fperez@colorado.edu>
810 2005-04-29 Fernando Perez <fperez@colorado.edu>
810
811
811 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
812 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
812 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
813 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
813 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
814 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
814 which provides support for Qt interactive usage (similar to the
815 which provides support for Qt interactive usage (similar to the
815 existing one for WX and GTK). This had been often requested.
816 existing one for WX and GTK). This had been often requested.
816
817
817 2005-04-14 *** Released version 0.6.13
818 2005-04-14 *** Released version 0.6.13
818
819
819 2005-04-08 Fernando Perez <fperez@colorado.edu>
820 2005-04-08 Fernando Perez <fperez@colorado.edu>
820
821
821 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
822 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
822 from _ofind, which gets called on almost every input line. Now,
823 from _ofind, which gets called on almost every input line. Now,
823 we only try to get docstrings if they are actually going to be
824 we only try to get docstrings if they are actually going to be
824 used (the overhead of fetching unnecessary docstrings can be
825 used (the overhead of fetching unnecessary docstrings can be
825 noticeable for certain objects, such as Pyro proxies).
826 noticeable for certain objects, such as Pyro proxies).
826
827
827 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
828 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
828 for completers. For some reason I had been passing them the state
829 for completers. For some reason I had been passing them the state
829 variable, which completers never actually need, and was in
830 variable, which completers never actually need, and was in
830 conflict with the rlcompleter API. Custom completers ONLY need to
831 conflict with the rlcompleter API. Custom completers ONLY need to
831 take the text parameter.
832 take the text parameter.
832
833
833 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
834 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
834 work correctly in pysh. I've also moved all the logic which used
835 work correctly in pysh. I've also moved all the logic which used
835 to be in pysh.py here, which will prevent problems with future
836 to be in pysh.py here, which will prevent problems with future
836 upgrades. However, this time I must warn users to update their
837 upgrades. However, this time I must warn users to update their
837 pysh profile to include the line
838 pysh profile to include the line
838
839
839 import_all IPython.Extensions.InterpreterExec
840 import_all IPython.Extensions.InterpreterExec
840
841
841 because otherwise things won't work for them. They MUST also
842 because otherwise things won't work for them. They MUST also
842 delete pysh.py and the line
843 delete pysh.py and the line
843
844
844 execfile pysh.py
845 execfile pysh.py
845
846
846 from their ipythonrc-pysh.
847 from their ipythonrc-pysh.
847
848
848 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
849 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
849 robust in the face of objects whose dir() returns non-strings
850 robust in the face of objects whose dir() returns non-strings
850 (which it shouldn't, but some broken libs like ITK do). Thanks to
851 (which it shouldn't, but some broken libs like ITK do). Thanks to
851 a patch by John Hunter (implemented differently, though). Also
852 a patch by John Hunter (implemented differently, though). Also
852 minor improvements by using .extend instead of + on lists.
853 minor improvements by using .extend instead of + on lists.
853
854
854 * pysh.py:
855 * pysh.py:
855
856
856 2005-04-06 Fernando Perez <fperez@colorado.edu>
857 2005-04-06 Fernando Perez <fperez@colorado.edu>
857
858
858 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
859 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
859 by default, so that all users benefit from it. Those who don't
860 by default, so that all users benefit from it. Those who don't
860 want it can still turn it off.
861 want it can still turn it off.
861
862
862 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
863 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
863 config file, I'd forgotten about this, so users were getting it
864 config file, I'd forgotten about this, so users were getting it
864 off by default.
865 off by default.
865
866
866 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
867 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
867 consistency. Now magics can be called in multiline statements,
868 consistency. Now magics can be called in multiline statements,
868 and python variables can be expanded in magic calls via $var.
869 and python variables can be expanded in magic calls via $var.
869 This makes the magic system behave just like aliases or !system
870 This makes the magic system behave just like aliases or !system
870 calls.
871 calls.
871
872
872 2005-03-28 Fernando Perez <fperez@colorado.edu>
873 2005-03-28 Fernando Perez <fperez@colorado.edu>
873
874
874 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
875 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
875 expensive string additions for building command. Add support for
876 expensive string additions for building command. Add support for
876 trailing ';' when autocall is used.
877 trailing ';' when autocall is used.
877
878
878 2005-03-26 Fernando Perez <fperez@colorado.edu>
879 2005-03-26 Fernando Perez <fperez@colorado.edu>
879
880
880 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
881 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
881 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
882 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
882 ipython.el robust against prompts with any number of spaces
883 ipython.el robust against prompts with any number of spaces
883 (including 0) after the ':' character.
884 (including 0) after the ':' character.
884
885
885 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
886 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
886 continuation prompt, which misled users to think the line was
887 continuation prompt, which misled users to think the line was
887 already indented. Closes debian Bug#300847, reported to me by
888 already indented. Closes debian Bug#300847, reported to me by
888 Norbert Tretkowski <tretkowski-AT-inittab.de>.
889 Norbert Tretkowski <tretkowski-AT-inittab.de>.
889
890
890 2005-03-23 Fernando Perez <fperez@colorado.edu>
891 2005-03-23 Fernando Perez <fperez@colorado.edu>
891
892
892 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
893 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
893 properly aligned if they have embedded newlines.
894 properly aligned if they have embedded newlines.
894
895
895 * IPython/iplib.py (runlines): Add a public method to expose
896 * IPython/iplib.py (runlines): Add a public method to expose
896 IPython's code execution machinery, so that users can run strings
897 IPython's code execution machinery, so that users can run strings
897 as if they had been typed at the prompt interactively.
898 as if they had been typed at the prompt interactively.
898 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
899 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
899 methods which can call the system shell, but with python variable
900 methods which can call the system shell, but with python variable
900 expansion. The three such methods are: __IPYTHON__.system,
901 expansion. The three such methods are: __IPYTHON__.system,
901 .getoutput and .getoutputerror. These need to be documented in a
902 .getoutput and .getoutputerror. These need to be documented in a
902 'public API' section (to be written) of the manual.
903 'public API' section (to be written) of the manual.
903
904
904 2005-03-20 Fernando Perez <fperez@colorado.edu>
905 2005-03-20 Fernando Perez <fperez@colorado.edu>
905
906
906 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
907 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
907 for custom exception handling. This is quite powerful, and it
908 for custom exception handling. This is quite powerful, and it
908 allows for user-installable exception handlers which can trap
909 allows for user-installable exception handlers which can trap
909 custom exceptions at runtime and treat them separately from
910 custom exceptions at runtime and treat them separately from
910 IPython's default mechanisms. At the request of Frédéric
911 IPython's default mechanisms. At the request of Frédéric
911 Mantegazza <mantegazza-AT-ill.fr>.
912 Mantegazza <mantegazza-AT-ill.fr>.
912 (InteractiveShell.set_custom_completer): public API function to
913 (InteractiveShell.set_custom_completer): public API function to
913 add new completers at runtime.
914 add new completers at runtime.
914
915
915 2005-03-19 Fernando Perez <fperez@colorado.edu>
916 2005-03-19 Fernando Perez <fperez@colorado.edu>
916
917
917 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
918 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
918 allow objects which provide their docstrings via non-standard
919 allow objects which provide their docstrings via non-standard
919 mechanisms (like Pyro proxies) to still be inspected by ipython's
920 mechanisms (like Pyro proxies) to still be inspected by ipython's
920 ? system.
921 ? system.
921
922
922 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
923 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
923 automatic capture system. I tried quite hard to make it work
924 automatic capture system. I tried quite hard to make it work
924 reliably, and simply failed. I tried many combinations with the
925 reliably, and simply failed. I tried many combinations with the
925 subprocess module, but eventually nothing worked in all needed
926 subprocess module, but eventually nothing worked in all needed
926 cases (not blocking stdin for the child, duplicating stdout
927 cases (not blocking stdin for the child, duplicating stdout
927 without blocking, etc). The new %sc/%sx still do capture to these
928 without blocking, etc). The new %sc/%sx still do capture to these
928 magical list/string objects which make shell use much more
929 magical list/string objects which make shell use much more
929 conveninent, so not all is lost.
930 conveninent, so not all is lost.
930
931
931 XXX - FIX MANUAL for the change above!
932 XXX - FIX MANUAL for the change above!
932
933
933 (runsource): I copied code.py's runsource() into ipython to modify
934 (runsource): I copied code.py's runsource() into ipython to modify
934 it a bit. Now the code object and source to be executed are
935 it a bit. Now the code object and source to be executed are
935 stored in ipython. This makes this info accessible to third-party
936 stored in ipython. This makes this info accessible to third-party
936 tools, like custom exception handlers. After a request by Frédéric
937 tools, like custom exception handlers. After a request by Frédéric
937 Mantegazza <mantegazza-AT-ill.fr>.
938 Mantegazza <mantegazza-AT-ill.fr>.
938
939
939 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
940 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
940 history-search via readline (like C-p/C-n). I'd wanted this for a
941 history-search via readline (like C-p/C-n). I'd wanted this for a
941 long time, but only recently found out how to do it. For users
942 long time, but only recently found out how to do it. For users
942 who already have their ipythonrc files made and want this, just
943 who already have their ipythonrc files made and want this, just
943 add:
944 add:
944
945
945 readline_parse_and_bind "\e[A": history-search-backward
946 readline_parse_and_bind "\e[A": history-search-backward
946 readline_parse_and_bind "\e[B": history-search-forward
947 readline_parse_and_bind "\e[B": history-search-forward
947
948
948 2005-03-18 Fernando Perez <fperez@colorado.edu>
949 2005-03-18 Fernando Perez <fperez@colorado.edu>
949
950
950 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
951 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
951 LSString and SList classes which allow transparent conversions
952 LSString and SList classes which allow transparent conversions
952 between list mode and whitespace-separated string.
953 between list mode and whitespace-separated string.
953 (magic_r): Fix recursion problem in %r.
954 (magic_r): Fix recursion problem in %r.
954
955
955 * IPython/genutils.py (LSString): New class to be used for
956 * IPython/genutils.py (LSString): New class to be used for
956 automatic storage of the results of all alias/system calls in _o
957 automatic storage of the results of all alias/system calls in _o
957 and _e (stdout/err). These provide a .l/.list attribute which
958 and _e (stdout/err). These provide a .l/.list attribute which
958 does automatic splitting on newlines. This means that for most
959 does automatic splitting on newlines. This means that for most
959 uses, you'll never need to do capturing of output with %sc/%sx
960 uses, you'll never need to do capturing of output with %sc/%sx
960 anymore, since ipython keeps this always done for you. Note that
961 anymore, since ipython keeps this always done for you. Note that
961 only the LAST results are stored, the _o/e variables are
962 only the LAST results are stored, the _o/e variables are
962 overwritten on each call. If you need to save their contents
963 overwritten on each call. If you need to save their contents
963 further, simply bind them to any other name.
964 further, simply bind them to any other name.
964
965
965 2005-03-17 Fernando Perez <fperez@colorado.edu>
966 2005-03-17 Fernando Perez <fperez@colorado.edu>
966
967
967 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
968 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
968 prompt namespace handling.
969 prompt namespace handling.
969
970
970 2005-03-16 Fernando Perez <fperez@colorado.edu>
971 2005-03-16 Fernando Perez <fperez@colorado.edu>
971
972
972 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
973 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
973 classic prompts to be '>>> ' (final space was missing, and it
974 classic prompts to be '>>> ' (final space was missing, and it
974 trips the emacs python mode).
975 trips the emacs python mode).
975 (BasePrompt.__str__): Added safe support for dynamic prompt
976 (BasePrompt.__str__): Added safe support for dynamic prompt
976 strings. Now you can set your prompt string to be '$x', and the
977 strings. Now you can set your prompt string to be '$x', and the
977 value of x will be printed from your interactive namespace. The
978 value of x will be printed from your interactive namespace. The
978 interpolation syntax includes the full Itpl support, so
979 interpolation syntax includes the full Itpl support, so
979 ${foo()+x+bar()} is a valid prompt string now, and the function
980 ${foo()+x+bar()} is a valid prompt string now, and the function
980 calls will be made at runtime.
981 calls will be made at runtime.
981
982
982 2005-03-15 Fernando Perez <fperez@colorado.edu>
983 2005-03-15 Fernando Perez <fperez@colorado.edu>
983
984
984 * IPython/Magic.py (magic_history): renamed %hist to %history, to
985 * IPython/Magic.py (magic_history): renamed %hist to %history, to
985 avoid name clashes in pylab. %hist still works, it just forwards
986 avoid name clashes in pylab. %hist still works, it just forwards
986 the call to %history.
987 the call to %history.
987
988
988 2005-03-02 *** Released version 0.6.12
989 2005-03-02 *** Released version 0.6.12
989
990
990 2005-03-02 Fernando Perez <fperez@colorado.edu>
991 2005-03-02 Fernando Perez <fperez@colorado.edu>
991
992
992 * IPython/iplib.py (handle_magic): log magic calls properly as
993 * IPython/iplib.py (handle_magic): log magic calls properly as
993 ipmagic() function calls.
994 ipmagic() function calls.
994
995
995 * IPython/Magic.py (magic_time): Improved %time to support
996 * IPython/Magic.py (magic_time): Improved %time to support
996 statements and provide wall-clock as well as CPU time.
997 statements and provide wall-clock as well as CPU time.
997
998
998 2005-02-27 Fernando Perez <fperez@colorado.edu>
999 2005-02-27 Fernando Perez <fperez@colorado.edu>
999
1000
1000 * IPython/hooks.py: New hooks module, to expose user-modifiable
1001 * IPython/hooks.py: New hooks module, to expose user-modifiable
1001 IPython functionality in a clean manner. For now only the editor
1002 IPython functionality in a clean manner. For now only the editor
1002 hook is actually written, and other thigns which I intend to turn
1003 hook is actually written, and other thigns which I intend to turn
1003 into proper hooks aren't yet there. The display and prefilter
1004 into proper hooks aren't yet there. The display and prefilter
1004 stuff, for example, should be hooks. But at least now the
1005 stuff, for example, should be hooks. But at least now the
1005 framework is in place, and the rest can be moved here with more
1006 framework is in place, and the rest can be moved here with more
1006 time later. IPython had had a .hooks variable for a long time for
1007 time later. IPython had had a .hooks variable for a long time for
1007 this purpose, but I'd never actually used it for anything.
1008 this purpose, but I'd never actually used it for anything.
1008
1009
1009 2005-02-26 Fernando Perez <fperez@colorado.edu>
1010 2005-02-26 Fernando Perez <fperez@colorado.edu>
1010
1011
1011 * IPython/ipmaker.py (make_IPython): make the default ipython
1012 * IPython/ipmaker.py (make_IPython): make the default ipython
1012 directory be called _ipython under win32, to follow more the
1013 directory be called _ipython under win32, to follow more the
1013 naming peculiarities of that platform (where buggy software like
1014 naming peculiarities of that platform (where buggy software like
1014 Visual Sourcesafe breaks with .named directories). Reported by
1015 Visual Sourcesafe breaks with .named directories). Reported by
1015 Ville Vainio.
1016 Ville Vainio.
1016
1017
1017 2005-02-23 Fernando Perez <fperez@colorado.edu>
1018 2005-02-23 Fernando Perez <fperez@colorado.edu>
1018
1019
1019 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1020 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1020 auto_aliases for win32 which were causing problems. Users can
1021 auto_aliases for win32 which were causing problems. Users can
1021 define the ones they personally like.
1022 define the ones they personally like.
1022
1023
1023 2005-02-21 Fernando Perez <fperez@colorado.edu>
1024 2005-02-21 Fernando Perez <fperez@colorado.edu>
1024
1025
1025 * IPython/Magic.py (magic_time): new magic to time execution of
1026 * IPython/Magic.py (magic_time): new magic to time execution of
1026 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1027 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1027
1028
1028 2005-02-19 Fernando Perez <fperez@colorado.edu>
1029 2005-02-19 Fernando Perez <fperez@colorado.edu>
1029
1030
1030 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1031 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1031 into keys (for prompts, for example).
1032 into keys (for prompts, for example).
1032
1033
1033 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1034 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1034 prompts in case users want them. This introduces a small behavior
1035 prompts in case users want them. This introduces a small behavior
1035 change: ipython does not automatically add a space to all prompts
1036 change: ipython does not automatically add a space to all prompts
1036 anymore. To get the old prompts with a space, users should add it
1037 anymore. To get the old prompts with a space, users should add it
1037 manually to their ipythonrc file, so for example prompt_in1 should
1038 manually to their ipythonrc file, so for example prompt_in1 should
1038 now read 'In [\#]: ' instead of 'In [\#]:'.
1039 now read 'In [\#]: ' instead of 'In [\#]:'.
1039 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1040 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1040 file) to control left-padding of secondary prompts.
1041 file) to control left-padding of secondary prompts.
1041
1042
1042 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1043 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1043 the profiler can't be imported. Fix for Debian, which removed
1044 the profiler can't be imported. Fix for Debian, which removed
1044 profile.py because of License issues. I applied a slightly
1045 profile.py because of License issues. I applied a slightly
1045 modified version of the original Debian patch at
1046 modified version of the original Debian patch at
1046 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1047 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1047
1048
1048 2005-02-17 Fernando Perez <fperez@colorado.edu>
1049 2005-02-17 Fernando Perez <fperez@colorado.edu>
1049
1050
1050 * IPython/genutils.py (native_line_ends): Fix bug which would
1051 * IPython/genutils.py (native_line_ends): Fix bug which would
1051 cause improper line-ends under win32 b/c I was not opening files
1052 cause improper line-ends under win32 b/c I was not opening files
1052 in binary mode. Bug report and fix thanks to Ville.
1053 in binary mode. Bug report and fix thanks to Ville.
1053
1054
1054 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1055 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1055 trying to catch spurious foo[1] autocalls. My fix actually broke
1056 trying to catch spurious foo[1] autocalls. My fix actually broke
1056 ',/' autoquote/call with explicit escape (bad regexp).
1057 ',/' autoquote/call with explicit escape (bad regexp).
1057
1058
1058 2005-02-15 *** Released version 0.6.11
1059 2005-02-15 *** Released version 0.6.11
1059
1060
1060 2005-02-14 Fernando Perez <fperez@colorado.edu>
1061 2005-02-14 Fernando Perez <fperez@colorado.edu>
1061
1062
1062 * IPython/background_jobs.py: New background job management
1063 * IPython/background_jobs.py: New background job management
1063 subsystem. This is implemented via a new set of classes, and
1064 subsystem. This is implemented via a new set of classes, and
1064 IPython now provides a builtin 'jobs' object for background job
1065 IPython now provides a builtin 'jobs' object for background job
1065 execution. A convenience %bg magic serves as a lightweight
1066 execution. A convenience %bg magic serves as a lightweight
1066 frontend for starting the more common type of calls. This was
1067 frontend for starting the more common type of calls. This was
1067 inspired by discussions with B. Granger and the BackgroundCommand
1068 inspired by discussions with B. Granger and the BackgroundCommand
1068 class described in the book Python Scripting for Computational
1069 class described in the book Python Scripting for Computational
1069 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1070 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1070 (although ultimately no code from this text was used, as IPython's
1071 (although ultimately no code from this text was used, as IPython's
1071 system is a separate implementation).
1072 system is a separate implementation).
1072
1073
1073 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1074 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1074 to control the completion of single/double underscore names
1075 to control the completion of single/double underscore names
1075 separately. As documented in the example ipytonrc file, the
1076 separately. As documented in the example ipytonrc file, the
1076 readline_omit__names variable can now be set to 2, to omit even
1077 readline_omit__names variable can now be set to 2, to omit even
1077 single underscore names. Thanks to a patch by Brian Wong
1078 single underscore names. Thanks to a patch by Brian Wong
1078 <BrianWong-AT-AirgoNetworks.Com>.
1079 <BrianWong-AT-AirgoNetworks.Com>.
1079 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1080 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1080 be autocalled as foo([1]) if foo were callable. A problem for
1081 be autocalled as foo([1]) if foo were callable. A problem for
1081 things which are both callable and implement __getitem__.
1082 things which are both callable and implement __getitem__.
1082 (init_readline): Fix autoindentation for win32. Thanks to a patch
1083 (init_readline): Fix autoindentation for win32. Thanks to a patch
1083 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1084 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1084
1085
1085 2005-02-12 Fernando Perez <fperez@colorado.edu>
1086 2005-02-12 Fernando Perez <fperez@colorado.edu>
1086
1087
1087 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1088 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1088 which I had written long ago to sort out user error messages which
1089 which I had written long ago to sort out user error messages which
1089 may occur during startup. This seemed like a good idea initially,
1090 may occur during startup. This seemed like a good idea initially,
1090 but it has proven a disaster in retrospect. I don't want to
1091 but it has proven a disaster in retrospect. I don't want to
1091 change much code for now, so my fix is to set the internal 'debug'
1092 change much code for now, so my fix is to set the internal 'debug'
1092 flag to true everywhere, whose only job was precisely to control
1093 flag to true everywhere, whose only job was precisely to control
1093 this subsystem. This closes issue 28 (as well as avoiding all
1094 this subsystem. This closes issue 28 (as well as avoiding all
1094 sorts of strange hangups which occur from time to time).
1095 sorts of strange hangups which occur from time to time).
1095
1096
1096 2005-02-07 Fernando Perez <fperez@colorado.edu>
1097 2005-02-07 Fernando Perez <fperez@colorado.edu>
1097
1098
1098 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1099 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1099 previous call produced a syntax error.
1100 previous call produced a syntax error.
1100
1101
1101 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1102 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1102 classes without constructor.
1103 classes without constructor.
1103
1104
1104 2005-02-06 Fernando Perez <fperez@colorado.edu>
1105 2005-02-06 Fernando Perez <fperez@colorado.edu>
1105
1106
1106 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1107 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1107 completions with the results of each matcher, so we return results
1108 completions with the results of each matcher, so we return results
1108 to the user from all namespaces. This breaks with ipython
1109 to the user from all namespaces. This breaks with ipython
1109 tradition, but I think it's a nicer behavior. Now you get all
1110 tradition, but I think it's a nicer behavior. Now you get all
1110 possible completions listed, from all possible namespaces (python,
1111 possible completions listed, from all possible namespaces (python,
1111 filesystem, magics...) After a request by John Hunter
1112 filesystem, magics...) After a request by John Hunter
1112 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1113 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1113
1114
1114 2005-02-05 Fernando Perez <fperez@colorado.edu>
1115 2005-02-05 Fernando Perez <fperez@colorado.edu>
1115
1116
1116 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1117 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1117 the call had quote characters in it (the quotes were stripped).
1118 the call had quote characters in it (the quotes were stripped).
1118
1119
1119 2005-01-31 Fernando Perez <fperez@colorado.edu>
1120 2005-01-31 Fernando Perez <fperez@colorado.edu>
1120
1121
1121 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1122 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1122 Itpl.itpl() to make the code more robust against psyco
1123 Itpl.itpl() to make the code more robust against psyco
1123 optimizations.
1124 optimizations.
1124
1125
1125 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1126 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1126 of causing an exception. Quicker, cleaner.
1127 of causing an exception. Quicker, cleaner.
1127
1128
1128 2005-01-28 Fernando Perez <fperez@colorado.edu>
1129 2005-01-28 Fernando Perez <fperez@colorado.edu>
1129
1130
1130 * scripts/ipython_win_post_install.py (install): hardcode
1131 * scripts/ipython_win_post_install.py (install): hardcode
1131 sys.prefix+'python.exe' as the executable path. It turns out that
1132 sys.prefix+'python.exe' as the executable path. It turns out that
1132 during the post-installation run, sys.executable resolves to the
1133 during the post-installation run, sys.executable resolves to the
1133 name of the binary installer! I should report this as a distutils
1134 name of the binary installer! I should report this as a distutils
1134 bug, I think. I updated the .10 release with this tiny fix, to
1135 bug, I think. I updated the .10 release with this tiny fix, to
1135 avoid annoying the lists further.
1136 avoid annoying the lists further.
1136
1137
1137 2005-01-27 *** Released version 0.6.10
1138 2005-01-27 *** Released version 0.6.10
1138
1139
1139 2005-01-27 Fernando Perez <fperez@colorado.edu>
1140 2005-01-27 Fernando Perez <fperez@colorado.edu>
1140
1141
1141 * IPython/numutils.py (norm): Added 'inf' as optional name for
1142 * IPython/numutils.py (norm): Added 'inf' as optional name for
1142 L-infinity norm, included references to mathworld.com for vector
1143 L-infinity norm, included references to mathworld.com for vector
1143 norm definitions.
1144 norm definitions.
1144 (amin/amax): added amin/amax for array min/max. Similar to what
1145 (amin/amax): added amin/amax for array min/max. Similar to what
1145 pylab ships with after the recent reorganization of names.
1146 pylab ships with after the recent reorganization of names.
1146 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1147 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1147
1148
1148 * ipython.el: committed Alex's recent fixes and improvements.
1149 * ipython.el: committed Alex's recent fixes and improvements.
1149 Tested with python-mode from CVS, and it looks excellent. Since
1150 Tested with python-mode from CVS, and it looks excellent. Since
1150 python-mode hasn't released anything in a while, I'm temporarily
1151 python-mode hasn't released anything in a while, I'm temporarily
1151 putting a copy of today's CVS (v 4.70) of python-mode in:
1152 putting a copy of today's CVS (v 4.70) of python-mode in:
1152 http://ipython.scipy.org/tmp/python-mode.el
1153 http://ipython.scipy.org/tmp/python-mode.el
1153
1154
1154 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1155 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1155 sys.executable for the executable name, instead of assuming it's
1156 sys.executable for the executable name, instead of assuming it's
1156 called 'python.exe' (the post-installer would have produced broken
1157 called 'python.exe' (the post-installer would have produced broken
1157 setups on systems with a differently named python binary).
1158 setups on systems with a differently named python binary).
1158
1159
1159 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1160 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1160 references to os.linesep, to make the code more
1161 references to os.linesep, to make the code more
1161 platform-independent. This is also part of the win32 coloring
1162 platform-independent. This is also part of the win32 coloring
1162 fixes.
1163 fixes.
1163
1164
1164 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1165 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1165 lines, which actually cause coloring bugs because the length of
1166 lines, which actually cause coloring bugs because the length of
1166 the line is very difficult to correctly compute with embedded
1167 the line is very difficult to correctly compute with embedded
1167 escapes. This was the source of all the coloring problems under
1168 escapes. This was the source of all the coloring problems under
1168 Win32. I think that _finally_, Win32 users have a properly
1169 Win32. I think that _finally_, Win32 users have a properly
1169 working ipython in all respects. This would never have happened
1170 working ipython in all respects. This would never have happened
1170 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1171 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1171
1172
1172 2005-01-26 *** Released version 0.6.9
1173 2005-01-26 *** Released version 0.6.9
1173
1174
1174 2005-01-25 Fernando Perez <fperez@colorado.edu>
1175 2005-01-25 Fernando Perez <fperez@colorado.edu>
1175
1176
1176 * setup.py: finally, we have a true Windows installer, thanks to
1177 * setup.py: finally, we have a true Windows installer, thanks to
1177 the excellent work of Viktor Ransmayr
1178 the excellent work of Viktor Ransmayr
1178 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1179 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1179 Windows users. The setup routine is quite a bit cleaner thanks to
1180 Windows users. The setup routine is quite a bit cleaner thanks to
1180 this, and the post-install script uses the proper functions to
1181 this, and the post-install script uses the proper functions to
1181 allow a clean de-installation using the standard Windows Control
1182 allow a clean de-installation using the standard Windows Control
1182 Panel.
1183 Panel.
1183
1184
1184 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1185 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1185 environment variable under all OSes (including win32) if
1186 environment variable under all OSes (including win32) if
1186 available. This will give consistency to win32 users who have set
1187 available. This will give consistency to win32 users who have set
1187 this variable for any reason. If os.environ['HOME'] fails, the
1188 this variable for any reason. If os.environ['HOME'] fails, the
1188 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1189 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1189
1190
1190 2005-01-24 Fernando Perez <fperez@colorado.edu>
1191 2005-01-24 Fernando Perez <fperez@colorado.edu>
1191
1192
1192 * IPython/numutils.py (empty_like): add empty_like(), similar to
1193 * IPython/numutils.py (empty_like): add empty_like(), similar to
1193 zeros_like() but taking advantage of the new empty() Numeric routine.
1194 zeros_like() but taking advantage of the new empty() Numeric routine.
1194
1195
1195 2005-01-23 *** Released version 0.6.8
1196 2005-01-23 *** Released version 0.6.8
1196
1197
1197 2005-01-22 Fernando Perez <fperez@colorado.edu>
1198 2005-01-22 Fernando Perez <fperez@colorado.edu>
1198
1199
1199 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1200 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1200 automatic show() calls. After discussing things with JDH, it
1201 automatic show() calls. After discussing things with JDH, it
1201 turns out there are too many corner cases where this can go wrong.
1202 turns out there are too many corner cases where this can go wrong.
1202 It's best not to try to be 'too smart', and simply have ipython
1203 It's best not to try to be 'too smart', and simply have ipython
1203 reproduce as much as possible the default behavior of a normal
1204 reproduce as much as possible the default behavior of a normal
1204 python shell.
1205 python shell.
1205
1206
1206 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1207 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1207 line-splitting regexp and _prefilter() to avoid calling getattr()
1208 line-splitting regexp and _prefilter() to avoid calling getattr()
1208 on assignments. This closes
1209 on assignments. This closes
1209 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1210 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1210 readline uses getattr(), so a simple <TAB> keypress is still
1211 readline uses getattr(), so a simple <TAB> keypress is still
1211 enough to trigger getattr() calls on an object.
1212 enough to trigger getattr() calls on an object.
1212
1213
1213 2005-01-21 Fernando Perez <fperez@colorado.edu>
1214 2005-01-21 Fernando Perez <fperez@colorado.edu>
1214
1215
1215 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1216 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1216 docstring under pylab so it doesn't mask the original.
1217 docstring under pylab so it doesn't mask the original.
1217
1218
1218 2005-01-21 *** Released version 0.6.7
1219 2005-01-21 *** Released version 0.6.7
1219
1220
1220 2005-01-21 Fernando Perez <fperez@colorado.edu>
1221 2005-01-21 Fernando Perez <fperez@colorado.edu>
1221
1222
1222 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1223 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1223 signal handling for win32 users in multithreaded mode.
1224 signal handling for win32 users in multithreaded mode.
1224
1225
1225 2005-01-17 Fernando Perez <fperez@colorado.edu>
1226 2005-01-17 Fernando Perez <fperez@colorado.edu>
1226
1227
1227 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1228 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1228 instances with no __init__. After a crash report by Norbert Nemec
1229 instances with no __init__. After a crash report by Norbert Nemec
1229 <Norbert-AT-nemec-online.de>.
1230 <Norbert-AT-nemec-online.de>.
1230
1231
1231 2005-01-14 Fernando Perez <fperez@colorado.edu>
1232 2005-01-14 Fernando Perez <fperez@colorado.edu>
1232
1233
1233 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1234 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1234 names for verbose exceptions, when multiple dotted names and the
1235 names for verbose exceptions, when multiple dotted names and the
1235 'parent' object were present on the same line.
1236 'parent' object were present on the same line.
1236
1237
1237 2005-01-11 Fernando Perez <fperez@colorado.edu>
1238 2005-01-11 Fernando Perez <fperez@colorado.edu>
1238
1239
1239 * IPython/genutils.py (flag_calls): new utility to trap and flag
1240 * IPython/genutils.py (flag_calls): new utility to trap and flag
1240 calls in functions. I need it to clean up matplotlib support.
1241 calls in functions. I need it to clean up matplotlib support.
1241 Also removed some deprecated code in genutils.
1242 Also removed some deprecated code in genutils.
1242
1243
1243 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1244 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1244 that matplotlib scripts called with %run, which don't call show()
1245 that matplotlib scripts called with %run, which don't call show()
1245 themselves, still have their plotting windows open.
1246 themselves, still have their plotting windows open.
1246
1247
1247 2005-01-05 Fernando Perez <fperez@colorado.edu>
1248 2005-01-05 Fernando Perez <fperez@colorado.edu>
1248
1249
1249 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1250 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1250 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1251 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1251
1252
1252 2004-12-19 Fernando Perez <fperez@colorado.edu>
1253 2004-12-19 Fernando Perez <fperez@colorado.edu>
1253
1254
1254 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1255 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1255 parent_runcode, which was an eyesore. The same result can be
1256 parent_runcode, which was an eyesore. The same result can be
1256 obtained with Python's regular superclass mechanisms.
1257 obtained with Python's regular superclass mechanisms.
1257
1258
1258 2004-12-17 Fernando Perez <fperez@colorado.edu>
1259 2004-12-17 Fernando Perez <fperez@colorado.edu>
1259
1260
1260 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1261 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1261 reported by Prabhu.
1262 reported by Prabhu.
1262 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1263 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1263 sys.stderr) instead of explicitly calling sys.stderr. This helps
1264 sys.stderr) instead of explicitly calling sys.stderr. This helps
1264 maintain our I/O abstractions clean, for future GUI embeddings.
1265 maintain our I/O abstractions clean, for future GUI embeddings.
1265
1266
1266 * IPython/genutils.py (info): added new utility for sys.stderr
1267 * IPython/genutils.py (info): added new utility for sys.stderr
1267 unified info message handling (thin wrapper around warn()).
1268 unified info message handling (thin wrapper around warn()).
1268
1269
1269 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1270 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1270 composite (dotted) names on verbose exceptions.
1271 composite (dotted) names on verbose exceptions.
1271 (VerboseTB.nullrepr): harden against another kind of errors which
1272 (VerboseTB.nullrepr): harden against another kind of errors which
1272 Python's inspect module can trigger, and which were crashing
1273 Python's inspect module can trigger, and which were crashing
1273 IPython. Thanks to a report by Marco Lombardi
1274 IPython. Thanks to a report by Marco Lombardi
1274 <mlombard-AT-ma010192.hq.eso.org>.
1275 <mlombard-AT-ma010192.hq.eso.org>.
1275
1276
1276 2004-12-13 *** Released version 0.6.6
1277 2004-12-13 *** Released version 0.6.6
1277
1278
1278 2004-12-12 Fernando Perez <fperez@colorado.edu>
1279 2004-12-12 Fernando Perez <fperez@colorado.edu>
1279
1280
1280 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1281 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1281 generated by pygtk upon initialization if it was built without
1282 generated by pygtk upon initialization if it was built without
1282 threads (for matplotlib users). After a crash reported by
1283 threads (for matplotlib users). After a crash reported by
1283 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1284 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1284
1285
1285 * IPython/ipmaker.py (make_IPython): fix small bug in the
1286 * IPython/ipmaker.py (make_IPython): fix small bug in the
1286 import_some parameter for multiple imports.
1287 import_some parameter for multiple imports.
1287
1288
1288 * IPython/iplib.py (ipmagic): simplified the interface of
1289 * IPython/iplib.py (ipmagic): simplified the interface of
1289 ipmagic() to take a single string argument, just as it would be
1290 ipmagic() to take a single string argument, just as it would be
1290 typed at the IPython cmd line.
1291 typed at the IPython cmd line.
1291 (ipalias): Added new ipalias() with an interface identical to
1292 (ipalias): Added new ipalias() with an interface identical to
1292 ipmagic(). This completes exposing a pure python interface to the
1293 ipmagic(). This completes exposing a pure python interface to the
1293 alias and magic system, which can be used in loops or more complex
1294 alias and magic system, which can be used in loops or more complex
1294 code where IPython's automatic line mangling is not active.
1295 code where IPython's automatic line mangling is not active.
1295
1296
1296 * IPython/genutils.py (timing): changed interface of timing to
1297 * IPython/genutils.py (timing): changed interface of timing to
1297 simply run code once, which is the most common case. timings()
1298 simply run code once, which is the most common case. timings()
1298 remains unchanged, for the cases where you want multiple runs.
1299 remains unchanged, for the cases where you want multiple runs.
1299
1300
1300 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1301 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1301 bug where Python2.2 crashes with exec'ing code which does not end
1302 bug where Python2.2 crashes with exec'ing code which does not end
1302 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1303 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1303 before.
1304 before.
1304
1305
1305 2004-12-10 Fernando Perez <fperez@colorado.edu>
1306 2004-12-10 Fernando Perez <fperez@colorado.edu>
1306
1307
1307 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1308 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1308 -t to -T, to accomodate the new -t flag in %run (the %run and
1309 -t to -T, to accomodate the new -t flag in %run (the %run and
1309 %prun options are kind of intermixed, and it's not easy to change
1310 %prun options are kind of intermixed, and it's not easy to change
1310 this with the limitations of python's getopt).
1311 this with the limitations of python's getopt).
1311
1312
1312 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1313 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1313 the execution of scripts. It's not as fine-tuned as timeit.py,
1314 the execution of scripts. It's not as fine-tuned as timeit.py,
1314 but it works from inside ipython (and under 2.2, which lacks
1315 but it works from inside ipython (and under 2.2, which lacks
1315 timeit.py). Optionally a number of runs > 1 can be given for
1316 timeit.py). Optionally a number of runs > 1 can be given for
1316 timing very short-running code.
1317 timing very short-running code.
1317
1318
1318 * IPython/genutils.py (uniq_stable): new routine which returns a
1319 * IPython/genutils.py (uniq_stable): new routine which returns a
1319 list of unique elements in any iterable, but in stable order of
1320 list of unique elements in any iterable, but in stable order of
1320 appearance. I needed this for the ultraTB fixes, and it's a handy
1321 appearance. I needed this for the ultraTB fixes, and it's a handy
1321 utility.
1322 utility.
1322
1323
1323 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1324 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1324 dotted names in Verbose exceptions. This had been broken since
1325 dotted names in Verbose exceptions. This had been broken since
1325 the very start, now x.y will properly be printed in a Verbose
1326 the very start, now x.y will properly be printed in a Verbose
1326 traceback, instead of x being shown and y appearing always as an
1327 traceback, instead of x being shown and y appearing always as an
1327 'undefined global'. Getting this to work was a bit tricky,
1328 'undefined global'. Getting this to work was a bit tricky,
1328 because by default python tokenizers are stateless. Saved by
1329 because by default python tokenizers are stateless. Saved by
1329 python's ability to easily add a bit of state to an arbitrary
1330 python's ability to easily add a bit of state to an arbitrary
1330 function (without needing to build a full-blown callable object).
1331 function (without needing to build a full-blown callable object).
1331
1332
1332 Also big cleanup of this code, which had horrendous runtime
1333 Also big cleanup of this code, which had horrendous runtime
1333 lookups of zillions of attributes for colorization. Moved all
1334 lookups of zillions of attributes for colorization. Moved all
1334 this code into a few templates, which make it cleaner and quicker.
1335 this code into a few templates, which make it cleaner and quicker.
1335
1336
1336 Printout quality was also improved for Verbose exceptions: one
1337 Printout quality was also improved for Verbose exceptions: one
1337 variable per line, and memory addresses are printed (this can be
1338 variable per line, and memory addresses are printed (this can be
1338 quite handy in nasty debugging situations, which is what Verbose
1339 quite handy in nasty debugging situations, which is what Verbose
1339 is for).
1340 is for).
1340
1341
1341 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1342 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1342 the command line as scripts to be loaded by embedded instances.
1343 the command line as scripts to be loaded by embedded instances.
1343 Doing so has the potential for an infinite recursion if there are
1344 Doing so has the potential for an infinite recursion if there are
1344 exceptions thrown in the process. This fixes a strange crash
1345 exceptions thrown in the process. This fixes a strange crash
1345 reported by Philippe MULLER <muller-AT-irit.fr>.
1346 reported by Philippe MULLER <muller-AT-irit.fr>.
1346
1347
1347 2004-12-09 Fernando Perez <fperez@colorado.edu>
1348 2004-12-09 Fernando Perez <fperez@colorado.edu>
1348
1349
1349 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1350 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1350 to reflect new names in matplotlib, which now expose the
1351 to reflect new names in matplotlib, which now expose the
1351 matlab-compatible interface via a pylab module instead of the
1352 matlab-compatible interface via a pylab module instead of the
1352 'matlab' name. The new code is backwards compatible, so users of
1353 'matlab' name. The new code is backwards compatible, so users of
1353 all matplotlib versions are OK. Patch by J. Hunter.
1354 all matplotlib versions are OK. Patch by J. Hunter.
1354
1355
1355 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1356 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1356 of __init__ docstrings for instances (class docstrings are already
1357 of __init__ docstrings for instances (class docstrings are already
1357 automatically printed). Instances with customized docstrings
1358 automatically printed). Instances with customized docstrings
1358 (indep. of the class) are also recognized and all 3 separate
1359 (indep. of the class) are also recognized and all 3 separate
1359 docstrings are printed (instance, class, constructor). After some
1360 docstrings are printed (instance, class, constructor). After some
1360 comments/suggestions by J. Hunter.
1361 comments/suggestions by J. Hunter.
1361
1362
1362 2004-12-05 Fernando Perez <fperez@colorado.edu>
1363 2004-12-05 Fernando Perez <fperez@colorado.edu>
1363
1364
1364 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1365 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1365 warnings when tab-completion fails and triggers an exception.
1366 warnings when tab-completion fails and triggers an exception.
1366
1367
1367 2004-12-03 Fernando Perez <fperez@colorado.edu>
1368 2004-12-03 Fernando Perez <fperez@colorado.edu>
1368
1369
1369 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1370 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1370 be triggered when using 'run -p'. An incorrect option flag was
1371 be triggered when using 'run -p'. An incorrect option flag was
1371 being set ('d' instead of 'D').
1372 being set ('d' instead of 'D').
1372 (manpage): fix missing escaped \- sign.
1373 (manpage): fix missing escaped \- sign.
1373
1374
1374 2004-11-30 *** Released version 0.6.5
1375 2004-11-30 *** Released version 0.6.5
1375
1376
1376 2004-11-30 Fernando Perez <fperez@colorado.edu>
1377 2004-11-30 Fernando Perez <fperez@colorado.edu>
1377
1378
1378 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1379 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1379 setting with -d option.
1380 setting with -d option.
1380
1381
1381 * setup.py (docfiles): Fix problem where the doc glob I was using
1382 * setup.py (docfiles): Fix problem where the doc glob I was using
1382 was COMPLETELY BROKEN. It was giving the right files by pure
1383 was COMPLETELY BROKEN. It was giving the right files by pure
1383 accident, but failed once I tried to include ipython.el. Note:
1384 accident, but failed once I tried to include ipython.el. Note:
1384 glob() does NOT allow you to do exclusion on multiple endings!
1385 glob() does NOT allow you to do exclusion on multiple endings!
1385
1386
1386 2004-11-29 Fernando Perez <fperez@colorado.edu>
1387 2004-11-29 Fernando Perez <fperez@colorado.edu>
1387
1388
1388 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1389 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1389 the manpage as the source. Better formatting & consistency.
1390 the manpage as the source. Better formatting & consistency.
1390
1391
1391 * IPython/Magic.py (magic_run): Added new -d option, to run
1392 * IPython/Magic.py (magic_run): Added new -d option, to run
1392 scripts under the control of the python pdb debugger. Note that
1393 scripts under the control of the python pdb debugger. Note that
1393 this required changing the %prun option -d to -D, to avoid a clash
1394 this required changing the %prun option -d to -D, to avoid a clash
1394 (since %run must pass options to %prun, and getopt is too dumb to
1395 (since %run must pass options to %prun, and getopt is too dumb to
1395 handle options with string values with embedded spaces). Thanks
1396 handle options with string values with embedded spaces). Thanks
1396 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1397 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1397 (magic_who_ls): added type matching to %who and %whos, so that one
1398 (magic_who_ls): added type matching to %who and %whos, so that one
1398 can filter their output to only include variables of certain
1399 can filter their output to only include variables of certain
1399 types. Another suggestion by Matthew.
1400 types. Another suggestion by Matthew.
1400 (magic_whos): Added memory summaries in kb and Mb for arrays.
1401 (magic_whos): Added memory summaries in kb and Mb for arrays.
1401 (magic_who): Improve formatting (break lines every 9 vars).
1402 (magic_who): Improve formatting (break lines every 9 vars).
1402
1403
1403 2004-11-28 Fernando Perez <fperez@colorado.edu>
1404 2004-11-28 Fernando Perez <fperez@colorado.edu>
1404
1405
1405 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1406 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1406 cache when empty lines were present.
1407 cache when empty lines were present.
1407
1408
1408 2004-11-24 Fernando Perez <fperez@colorado.edu>
1409 2004-11-24 Fernando Perez <fperez@colorado.edu>
1409
1410
1410 * IPython/usage.py (__doc__): document the re-activated threading
1411 * IPython/usage.py (__doc__): document the re-activated threading
1411 options for WX and GTK.
1412 options for WX and GTK.
1412
1413
1413 2004-11-23 Fernando Perez <fperez@colorado.edu>
1414 2004-11-23 Fernando Perez <fperez@colorado.edu>
1414
1415
1415 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1416 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1416 the -wthread and -gthread options, along with a new -tk one to try
1417 the -wthread and -gthread options, along with a new -tk one to try
1417 and coordinate Tk threading with wx/gtk. The tk support is very
1418 and coordinate Tk threading with wx/gtk. The tk support is very
1418 platform dependent, since it seems to require Tcl and Tk to be
1419 platform dependent, since it seems to require Tcl and Tk to be
1419 built with threads (Fedora1/2 appears NOT to have it, but in
1420 built with threads (Fedora1/2 appears NOT to have it, but in
1420 Prabhu's Debian boxes it works OK). But even with some Tk
1421 Prabhu's Debian boxes it works OK). But even with some Tk
1421 limitations, this is a great improvement.
1422 limitations, this is a great improvement.
1422
1423
1423 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1424 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1424 info in user prompts. Patch by Prabhu.
1425 info in user prompts. Patch by Prabhu.
1425
1426
1426 2004-11-18 Fernando Perez <fperez@colorado.edu>
1427 2004-11-18 Fernando Perez <fperez@colorado.edu>
1427
1428
1428 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1429 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1429 EOFErrors and bail, to avoid infinite loops if a non-terminating
1430 EOFErrors and bail, to avoid infinite loops if a non-terminating
1430 file is fed into ipython. Patch submitted in issue 19 by user,
1431 file is fed into ipython. Patch submitted in issue 19 by user,
1431 many thanks.
1432 many thanks.
1432
1433
1433 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1434 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1434 autoquote/parens in continuation prompts, which can cause lots of
1435 autoquote/parens in continuation prompts, which can cause lots of
1435 problems. Closes roundup issue 20.
1436 problems. Closes roundup issue 20.
1436
1437
1437 2004-11-17 Fernando Perez <fperez@colorado.edu>
1438 2004-11-17 Fernando Perez <fperez@colorado.edu>
1438
1439
1439 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1440 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1440 reported as debian bug #280505. I'm not sure my local changelog
1441 reported as debian bug #280505. I'm not sure my local changelog
1441 entry has the proper debian format (Jack?).
1442 entry has the proper debian format (Jack?).
1442
1443
1443 2004-11-08 *** Released version 0.6.4
1444 2004-11-08 *** Released version 0.6.4
1444
1445
1445 2004-11-08 Fernando Perez <fperez@colorado.edu>
1446 2004-11-08 Fernando Perez <fperez@colorado.edu>
1446
1447
1447 * IPython/iplib.py (init_readline): Fix exit message for Windows
1448 * IPython/iplib.py (init_readline): Fix exit message for Windows
1448 when readline is active. Thanks to a report by Eric Jones
1449 when readline is active. Thanks to a report by Eric Jones
1449 <eric-AT-enthought.com>.
1450 <eric-AT-enthought.com>.
1450
1451
1451 2004-11-07 Fernando Perez <fperez@colorado.edu>
1452 2004-11-07 Fernando Perez <fperez@colorado.edu>
1452
1453
1453 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1454 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1454 sometimes seen by win2k/cygwin users.
1455 sometimes seen by win2k/cygwin users.
1455
1456
1456 2004-11-06 Fernando Perez <fperez@colorado.edu>
1457 2004-11-06 Fernando Perez <fperez@colorado.edu>
1457
1458
1458 * IPython/iplib.py (interact): Change the handling of %Exit from
1459 * IPython/iplib.py (interact): Change the handling of %Exit from
1459 trying to propagate a SystemExit to an internal ipython flag.
1460 trying to propagate a SystemExit to an internal ipython flag.
1460 This is less elegant than using Python's exception mechanism, but
1461 This is less elegant than using Python's exception mechanism, but
1461 I can't get that to work reliably with threads, so under -pylab
1462 I can't get that to work reliably with threads, so under -pylab
1462 %Exit was hanging IPython. Cross-thread exception handling is
1463 %Exit was hanging IPython. Cross-thread exception handling is
1463 really a bitch. Thaks to a bug report by Stephen Walton
1464 really a bitch. Thaks to a bug report by Stephen Walton
1464 <stephen.walton-AT-csun.edu>.
1465 <stephen.walton-AT-csun.edu>.
1465
1466
1466 2004-11-04 Fernando Perez <fperez@colorado.edu>
1467 2004-11-04 Fernando Perez <fperez@colorado.edu>
1467
1468
1468 * IPython/iplib.py (raw_input_original): store a pointer to the
1469 * IPython/iplib.py (raw_input_original): store a pointer to the
1469 true raw_input to harden against code which can modify it
1470 true raw_input to harden against code which can modify it
1470 (wx.py.PyShell does this and would otherwise crash ipython).
1471 (wx.py.PyShell does this and would otherwise crash ipython).
1471 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1472 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1472
1473
1473 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1474 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1474 Ctrl-C problem, which does not mess up the input line.
1475 Ctrl-C problem, which does not mess up the input line.
1475
1476
1476 2004-11-03 Fernando Perez <fperez@colorado.edu>
1477 2004-11-03 Fernando Perez <fperez@colorado.edu>
1477
1478
1478 * IPython/Release.py: Changed licensing to BSD, in all files.
1479 * IPython/Release.py: Changed licensing to BSD, in all files.
1479 (name): lowercase name for tarball/RPM release.
1480 (name): lowercase name for tarball/RPM release.
1480
1481
1481 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1482 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1482 use throughout ipython.
1483 use throughout ipython.
1483
1484
1484 * IPython/Magic.py (Magic._ofind): Switch to using the new
1485 * IPython/Magic.py (Magic._ofind): Switch to using the new
1485 OInspect.getdoc() function.
1486 OInspect.getdoc() function.
1486
1487
1487 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1488 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1488 of the line currently being canceled via Ctrl-C. It's extremely
1489 of the line currently being canceled via Ctrl-C. It's extremely
1489 ugly, but I don't know how to do it better (the problem is one of
1490 ugly, but I don't know how to do it better (the problem is one of
1490 handling cross-thread exceptions).
1491 handling cross-thread exceptions).
1491
1492
1492 2004-10-28 Fernando Perez <fperez@colorado.edu>
1493 2004-10-28 Fernando Perez <fperez@colorado.edu>
1493
1494
1494 * IPython/Shell.py (signal_handler): add signal handlers to trap
1495 * IPython/Shell.py (signal_handler): add signal handlers to trap
1495 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1496 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1496 report by Francesc Alted.
1497 report by Francesc Alted.
1497
1498
1498 2004-10-21 Fernando Perez <fperez@colorado.edu>
1499 2004-10-21 Fernando Perez <fperez@colorado.edu>
1499
1500
1500 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1501 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1501 to % for pysh syntax extensions.
1502 to % for pysh syntax extensions.
1502
1503
1503 2004-10-09 Fernando Perez <fperez@colorado.edu>
1504 2004-10-09 Fernando Perez <fperez@colorado.edu>
1504
1505
1505 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1506 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1506 arrays to print a more useful summary, without calling str(arr).
1507 arrays to print a more useful summary, without calling str(arr).
1507 This avoids the problem of extremely lengthy computations which
1508 This avoids the problem of extremely lengthy computations which
1508 occur if arr is large, and appear to the user as a system lockup
1509 occur if arr is large, and appear to the user as a system lockup
1509 with 100% cpu activity. After a suggestion by Kristian Sandberg
1510 with 100% cpu activity. After a suggestion by Kristian Sandberg
1510 <Kristian.Sandberg@colorado.edu>.
1511 <Kristian.Sandberg@colorado.edu>.
1511 (Magic.__init__): fix bug in global magic escapes not being
1512 (Magic.__init__): fix bug in global magic escapes not being
1512 correctly set.
1513 correctly set.
1513
1514
1514 2004-10-08 Fernando Perez <fperez@colorado.edu>
1515 2004-10-08 Fernando Perez <fperez@colorado.edu>
1515
1516
1516 * IPython/Magic.py (__license__): change to absolute imports of
1517 * IPython/Magic.py (__license__): change to absolute imports of
1517 ipython's own internal packages, to start adapting to the absolute
1518 ipython's own internal packages, to start adapting to the absolute
1518 import requirement of PEP-328.
1519 import requirement of PEP-328.
1519
1520
1520 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1521 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1521 files, and standardize author/license marks through the Release
1522 files, and standardize author/license marks through the Release
1522 module instead of having per/file stuff (except for files with
1523 module instead of having per/file stuff (except for files with
1523 particular licenses, like the MIT/PSF-licensed codes).
1524 particular licenses, like the MIT/PSF-licensed codes).
1524
1525
1525 * IPython/Debugger.py: remove dead code for python 2.1
1526 * IPython/Debugger.py: remove dead code for python 2.1
1526
1527
1527 2004-10-04 Fernando Perez <fperez@colorado.edu>
1528 2004-10-04 Fernando Perez <fperez@colorado.edu>
1528
1529
1529 * IPython/iplib.py (ipmagic): New function for accessing magics
1530 * IPython/iplib.py (ipmagic): New function for accessing magics
1530 via a normal python function call.
1531 via a normal python function call.
1531
1532
1532 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1533 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1533 from '@' to '%', to accomodate the new @decorator syntax of python
1534 from '@' to '%', to accomodate the new @decorator syntax of python
1534 2.4.
1535 2.4.
1535
1536
1536 2004-09-29 Fernando Perez <fperez@colorado.edu>
1537 2004-09-29 Fernando Perez <fperez@colorado.edu>
1537
1538
1538 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1539 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1539 matplotlib.use to prevent running scripts which try to switch
1540 matplotlib.use to prevent running scripts which try to switch
1540 interactive backends from within ipython. This will just crash
1541 interactive backends from within ipython. This will just crash
1541 the python interpreter, so we can't allow it (but a detailed error
1542 the python interpreter, so we can't allow it (but a detailed error
1542 is given to the user).
1543 is given to the user).
1543
1544
1544 2004-09-28 Fernando Perez <fperez@colorado.edu>
1545 2004-09-28 Fernando Perez <fperez@colorado.edu>
1545
1546
1546 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1547 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1547 matplotlib-related fixes so that using @run with non-matplotlib
1548 matplotlib-related fixes so that using @run with non-matplotlib
1548 scripts doesn't pop up spurious plot windows. This requires
1549 scripts doesn't pop up spurious plot windows. This requires
1549 matplotlib >= 0.63, where I had to make some changes as well.
1550 matplotlib >= 0.63, where I had to make some changes as well.
1550
1551
1551 * IPython/ipmaker.py (make_IPython): update version requirement to
1552 * IPython/ipmaker.py (make_IPython): update version requirement to
1552 python 2.2.
1553 python 2.2.
1553
1554
1554 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1555 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1555 banner arg for embedded customization.
1556 banner arg for embedded customization.
1556
1557
1557 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1558 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1558 explicit uses of __IP as the IPython's instance name. Now things
1559 explicit uses of __IP as the IPython's instance name. Now things
1559 are properly handled via the shell.name value. The actual code
1560 are properly handled via the shell.name value. The actual code
1560 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1561 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1561 is much better than before. I'll clean things completely when the
1562 is much better than before. I'll clean things completely when the
1562 magic stuff gets a real overhaul.
1563 magic stuff gets a real overhaul.
1563
1564
1564 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1565 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1565 minor changes to debian dir.
1566 minor changes to debian dir.
1566
1567
1567 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1568 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1568 pointer to the shell itself in the interactive namespace even when
1569 pointer to the shell itself in the interactive namespace even when
1569 a user-supplied dict is provided. This is needed for embedding
1570 a user-supplied dict is provided. This is needed for embedding
1570 purposes (found by tests with Michel Sanner).
1571 purposes (found by tests with Michel Sanner).
1571
1572
1572 2004-09-27 Fernando Perez <fperez@colorado.edu>
1573 2004-09-27 Fernando Perez <fperez@colorado.edu>
1573
1574
1574 * IPython/UserConfig/ipythonrc: remove []{} from
1575 * IPython/UserConfig/ipythonrc: remove []{} from
1575 readline_remove_delims, so that things like [modname.<TAB> do
1576 readline_remove_delims, so that things like [modname.<TAB> do
1576 proper completion. This disables [].TAB, but that's a less common
1577 proper completion. This disables [].TAB, but that's a less common
1577 case than module names in list comprehensions, for example.
1578 case than module names in list comprehensions, for example.
1578 Thanks to a report by Andrea Riciputi.
1579 Thanks to a report by Andrea Riciputi.
1579
1580
1580 2004-09-09 Fernando Perez <fperez@colorado.edu>
1581 2004-09-09 Fernando Perez <fperez@colorado.edu>
1581
1582
1582 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1583 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1583 blocking problems in win32 and osx. Fix by John.
1584 blocking problems in win32 and osx. Fix by John.
1584
1585
1585 2004-09-08 Fernando Perez <fperez@colorado.edu>
1586 2004-09-08 Fernando Perez <fperez@colorado.edu>
1586
1587
1587 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1588 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1588 for Win32 and OSX. Fix by John Hunter.
1589 for Win32 and OSX. Fix by John Hunter.
1589
1590
1590 2004-08-30 *** Released version 0.6.3
1591 2004-08-30 *** Released version 0.6.3
1591
1592
1592 2004-08-30 Fernando Perez <fperez@colorado.edu>
1593 2004-08-30 Fernando Perez <fperez@colorado.edu>
1593
1594
1594 * setup.py (isfile): Add manpages to list of dependent files to be
1595 * setup.py (isfile): Add manpages to list of dependent files to be
1595 updated.
1596 updated.
1596
1597
1597 2004-08-27 Fernando Perez <fperez@colorado.edu>
1598 2004-08-27 Fernando Perez <fperez@colorado.edu>
1598
1599
1599 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1600 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1600 for now. They don't really work with standalone WX/GTK code
1601 for now. They don't really work with standalone WX/GTK code
1601 (though matplotlib IS working fine with both of those backends).
1602 (though matplotlib IS working fine with both of those backends).
1602 This will neeed much more testing. I disabled most things with
1603 This will neeed much more testing. I disabled most things with
1603 comments, so turning it back on later should be pretty easy.
1604 comments, so turning it back on later should be pretty easy.
1604
1605
1605 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1606 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1606 autocalling of expressions like r'foo', by modifying the line
1607 autocalling of expressions like r'foo', by modifying the line
1607 split regexp. Closes
1608 split regexp. Closes
1608 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1609 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1609 Riley <ipythonbugs-AT-sabi.net>.
1610 Riley <ipythonbugs-AT-sabi.net>.
1610 (InteractiveShell.mainloop): honor --nobanner with banner
1611 (InteractiveShell.mainloop): honor --nobanner with banner
1611 extensions.
1612 extensions.
1612
1613
1613 * IPython/Shell.py: Significant refactoring of all classes, so
1614 * IPython/Shell.py: Significant refactoring of all classes, so
1614 that we can really support ALL matplotlib backends and threading
1615 that we can really support ALL matplotlib backends and threading
1615 models (John spotted a bug with Tk which required this). Now we
1616 models (John spotted a bug with Tk which required this). Now we
1616 should support single-threaded, WX-threads and GTK-threads, both
1617 should support single-threaded, WX-threads and GTK-threads, both
1617 for generic code and for matplotlib.
1618 for generic code and for matplotlib.
1618
1619
1619 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1620 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1620 -pylab, to simplify things for users. Will also remove the pylab
1621 -pylab, to simplify things for users. Will also remove the pylab
1621 profile, since now all of matplotlib configuration is directly
1622 profile, since now all of matplotlib configuration is directly
1622 handled here. This also reduces startup time.
1623 handled here. This also reduces startup time.
1623
1624
1624 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1625 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1625 shell wasn't being correctly called. Also in IPShellWX.
1626 shell wasn't being correctly called. Also in IPShellWX.
1626
1627
1627 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1628 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1628 fine-tune banner.
1629 fine-tune banner.
1629
1630
1630 * IPython/numutils.py (spike): Deprecate these spike functions,
1631 * IPython/numutils.py (spike): Deprecate these spike functions,
1631 delete (long deprecated) gnuplot_exec handler.
1632 delete (long deprecated) gnuplot_exec handler.
1632
1633
1633 2004-08-26 Fernando Perez <fperez@colorado.edu>
1634 2004-08-26 Fernando Perez <fperez@colorado.edu>
1634
1635
1635 * ipython.1: Update for threading options, plus some others which
1636 * ipython.1: Update for threading options, plus some others which
1636 were missing.
1637 were missing.
1637
1638
1638 * IPython/ipmaker.py (__call__): Added -wthread option for
1639 * IPython/ipmaker.py (__call__): Added -wthread option for
1639 wxpython thread handling. Make sure threading options are only
1640 wxpython thread handling. Make sure threading options are only
1640 valid at the command line.
1641 valid at the command line.
1641
1642
1642 * scripts/ipython: moved shell selection into a factory function
1643 * scripts/ipython: moved shell selection into a factory function
1643 in Shell.py, to keep the starter script to a minimum.
1644 in Shell.py, to keep the starter script to a minimum.
1644
1645
1645 2004-08-25 Fernando Perez <fperez@colorado.edu>
1646 2004-08-25 Fernando Perez <fperez@colorado.edu>
1646
1647
1647 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1648 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1648 John. Along with some recent changes he made to matplotlib, the
1649 John. Along with some recent changes he made to matplotlib, the
1649 next versions of both systems should work very well together.
1650 next versions of both systems should work very well together.
1650
1651
1651 2004-08-24 Fernando Perez <fperez@colorado.edu>
1652 2004-08-24 Fernando Perez <fperez@colorado.edu>
1652
1653
1653 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1654 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1654 tried to switch the profiling to using hotshot, but I'm getting
1655 tried to switch the profiling to using hotshot, but I'm getting
1655 strange errors from prof.runctx() there. I may be misreading the
1656 strange errors from prof.runctx() there. I may be misreading the
1656 docs, but it looks weird. For now the profiling code will
1657 docs, but it looks weird. For now the profiling code will
1657 continue to use the standard profiler.
1658 continue to use the standard profiler.
1658
1659
1659 2004-08-23 Fernando Perez <fperez@colorado.edu>
1660 2004-08-23 Fernando Perez <fperez@colorado.edu>
1660
1661
1661 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1662 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1662 threaded shell, by John Hunter. It's not quite ready yet, but
1663 threaded shell, by John Hunter. It's not quite ready yet, but
1663 close.
1664 close.
1664
1665
1665 2004-08-22 Fernando Perez <fperez@colorado.edu>
1666 2004-08-22 Fernando Perez <fperez@colorado.edu>
1666
1667
1667 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1668 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1668 in Magic and ultraTB.
1669 in Magic and ultraTB.
1669
1670
1670 * ipython.1: document threading options in manpage.
1671 * ipython.1: document threading options in manpage.
1671
1672
1672 * scripts/ipython: Changed name of -thread option to -gthread,
1673 * scripts/ipython: Changed name of -thread option to -gthread,
1673 since this is GTK specific. I want to leave the door open for a
1674 since this is GTK specific. I want to leave the door open for a
1674 -wthread option for WX, which will most likely be necessary. This
1675 -wthread option for WX, which will most likely be necessary. This
1675 change affects usage and ipmaker as well.
1676 change affects usage and ipmaker as well.
1676
1677
1677 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1678 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1678 handle the matplotlib shell issues. Code by John Hunter
1679 handle the matplotlib shell issues. Code by John Hunter
1679 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1680 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1680 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1681 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1681 broken (and disabled for end users) for now, but it puts the
1682 broken (and disabled for end users) for now, but it puts the
1682 infrastructure in place.
1683 infrastructure in place.
1683
1684
1684 2004-08-21 Fernando Perez <fperez@colorado.edu>
1685 2004-08-21 Fernando Perez <fperez@colorado.edu>
1685
1686
1686 * ipythonrc-pylab: Add matplotlib support.
1687 * ipythonrc-pylab: Add matplotlib support.
1687
1688
1688 * matplotlib_config.py: new files for matplotlib support, part of
1689 * matplotlib_config.py: new files for matplotlib support, part of
1689 the pylab profile.
1690 the pylab profile.
1690
1691
1691 * IPython/usage.py (__doc__): documented the threading options.
1692 * IPython/usage.py (__doc__): documented the threading options.
1692
1693
1693 2004-08-20 Fernando Perez <fperez@colorado.edu>
1694 2004-08-20 Fernando Perez <fperez@colorado.edu>
1694
1695
1695 * ipython: Modified the main calling routine to handle the -thread
1696 * ipython: Modified the main calling routine to handle the -thread
1696 and -mpthread options. This needs to be done as a top-level hack,
1697 and -mpthread options. This needs to be done as a top-level hack,
1697 because it determines which class to instantiate for IPython
1698 because it determines which class to instantiate for IPython
1698 itself.
1699 itself.
1699
1700
1700 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1701 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1701 classes to support multithreaded GTK operation without blocking,
1702 classes to support multithreaded GTK operation without blocking,
1702 and matplotlib with all backends. This is a lot of still very
1703 and matplotlib with all backends. This is a lot of still very
1703 experimental code, and threads are tricky. So it may still have a
1704 experimental code, and threads are tricky. So it may still have a
1704 few rough edges... This code owes a lot to
1705 few rough edges... This code owes a lot to
1705 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1706 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1706 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1707 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1707 to John Hunter for all the matplotlib work.
1708 to John Hunter for all the matplotlib work.
1708
1709
1709 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1710 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1710 options for gtk thread and matplotlib support.
1711 options for gtk thread and matplotlib support.
1711
1712
1712 2004-08-16 Fernando Perez <fperez@colorado.edu>
1713 2004-08-16 Fernando Perez <fperez@colorado.edu>
1713
1714
1714 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1715 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1715 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1716 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1716 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1717 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1717
1718
1718 2004-08-11 Fernando Perez <fperez@colorado.edu>
1719 2004-08-11 Fernando Perez <fperez@colorado.edu>
1719
1720
1720 * setup.py (isfile): Fix build so documentation gets updated for
1721 * setup.py (isfile): Fix build so documentation gets updated for
1721 rpms (it was only done for .tgz builds).
1722 rpms (it was only done for .tgz builds).
1722
1723
1723 2004-08-10 Fernando Perez <fperez@colorado.edu>
1724 2004-08-10 Fernando Perez <fperez@colorado.edu>
1724
1725
1725 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1726 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1726
1727
1727 * iplib.py : Silence syntax error exceptions in tab-completion.
1728 * iplib.py : Silence syntax error exceptions in tab-completion.
1728
1729
1729 2004-08-05 Fernando Perez <fperez@colorado.edu>
1730 2004-08-05 Fernando Perez <fperez@colorado.edu>
1730
1731
1731 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1732 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1732 'color off' mark for continuation prompts. This was causing long
1733 'color off' mark for continuation prompts. This was causing long
1733 continuation lines to mis-wrap.
1734 continuation lines to mis-wrap.
1734
1735
1735 2004-08-01 Fernando Perez <fperez@colorado.edu>
1736 2004-08-01 Fernando Perez <fperez@colorado.edu>
1736
1737
1737 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1738 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1738 for building ipython to be a parameter. All this is necessary
1739 for building ipython to be a parameter. All this is necessary
1739 right now to have a multithreaded version, but this insane
1740 right now to have a multithreaded version, but this insane
1740 non-design will be cleaned up soon. For now, it's a hack that
1741 non-design will be cleaned up soon. For now, it's a hack that
1741 works.
1742 works.
1742
1743
1743 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1744 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1744 args in various places. No bugs so far, but it's a dangerous
1745 args in various places. No bugs so far, but it's a dangerous
1745 practice.
1746 practice.
1746
1747
1747 2004-07-31 Fernando Perez <fperez@colorado.edu>
1748 2004-07-31 Fernando Perez <fperez@colorado.edu>
1748
1749
1749 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1750 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1750 fix completion of files with dots in their names under most
1751 fix completion of files with dots in their names under most
1751 profiles (pysh was OK because the completion order is different).
1752 profiles (pysh was OK because the completion order is different).
1752
1753
1753 2004-07-27 Fernando Perez <fperez@colorado.edu>
1754 2004-07-27 Fernando Perez <fperez@colorado.edu>
1754
1755
1755 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1756 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1756 keywords manually, b/c the one in keyword.py was removed in python
1757 keywords manually, b/c the one in keyword.py was removed in python
1757 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1758 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1758 This is NOT a bug under python 2.3 and earlier.
1759 This is NOT a bug under python 2.3 and earlier.
1759
1760
1760 2004-07-26 Fernando Perez <fperez@colorado.edu>
1761 2004-07-26 Fernando Perez <fperez@colorado.edu>
1761
1762
1762 * IPython/ultraTB.py (VerboseTB.text): Add another
1763 * IPython/ultraTB.py (VerboseTB.text): Add another
1763 linecache.checkcache() call to try to prevent inspect.py from
1764 linecache.checkcache() call to try to prevent inspect.py from
1764 crashing under python 2.3. I think this fixes
1765 crashing under python 2.3. I think this fixes
1765 http://www.scipy.net/roundup/ipython/issue17.
1766 http://www.scipy.net/roundup/ipython/issue17.
1766
1767
1767 2004-07-26 *** Released version 0.6.2
1768 2004-07-26 *** Released version 0.6.2
1768
1769
1769 2004-07-26 Fernando Perez <fperez@colorado.edu>
1770 2004-07-26 Fernando Perez <fperez@colorado.edu>
1770
1771
1771 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1772 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1772 fail for any number.
1773 fail for any number.
1773 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1774 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1774 empty bookmarks.
1775 empty bookmarks.
1775
1776
1776 2004-07-26 *** Released version 0.6.1
1777 2004-07-26 *** Released version 0.6.1
1777
1778
1778 2004-07-26 Fernando Perez <fperez@colorado.edu>
1779 2004-07-26 Fernando Perez <fperez@colorado.edu>
1779
1780
1780 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1781 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1781
1782
1782 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1783 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1783 escaping '()[]{}' in filenames.
1784 escaping '()[]{}' in filenames.
1784
1785
1785 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1786 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1786 Python 2.2 users who lack a proper shlex.split.
1787 Python 2.2 users who lack a proper shlex.split.
1787
1788
1788 2004-07-19 Fernando Perez <fperez@colorado.edu>
1789 2004-07-19 Fernando Perez <fperez@colorado.edu>
1789
1790
1790 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1791 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1791 for reading readline's init file. I follow the normal chain:
1792 for reading readline's init file. I follow the normal chain:
1792 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1793 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1793 report by Mike Heeter. This closes
1794 report by Mike Heeter. This closes
1794 http://www.scipy.net/roundup/ipython/issue16.
1795 http://www.scipy.net/roundup/ipython/issue16.
1795
1796
1796 2004-07-18 Fernando Perez <fperez@colorado.edu>
1797 2004-07-18 Fernando Perez <fperez@colorado.edu>
1797
1798
1798 * IPython/iplib.py (__init__): Add better handling of '\' under
1799 * IPython/iplib.py (__init__): Add better handling of '\' under
1799 Win32 for filenames. After a patch by Ville.
1800 Win32 for filenames. After a patch by Ville.
1800
1801
1801 2004-07-17 Fernando Perez <fperez@colorado.edu>
1802 2004-07-17 Fernando Perez <fperez@colorado.edu>
1802
1803
1803 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1804 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1804 autocalling would be triggered for 'foo is bar' if foo is
1805 autocalling would be triggered for 'foo is bar' if foo is
1805 callable. I also cleaned up the autocall detection code to use a
1806 callable. I also cleaned up the autocall detection code to use a
1806 regexp, which is faster. Bug reported by Alexander Schmolck.
1807 regexp, which is faster. Bug reported by Alexander Schmolck.
1807
1808
1808 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1809 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1809 '?' in them would confuse the help system. Reported by Alex
1810 '?' in them would confuse the help system. Reported by Alex
1810 Schmolck.
1811 Schmolck.
1811
1812
1812 2004-07-16 Fernando Perez <fperez@colorado.edu>
1813 2004-07-16 Fernando Perez <fperez@colorado.edu>
1813
1814
1814 * IPython/GnuplotInteractive.py (__all__): added plot2.
1815 * IPython/GnuplotInteractive.py (__all__): added plot2.
1815
1816
1816 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1817 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1817 plotting dictionaries, lists or tuples of 1d arrays.
1818 plotting dictionaries, lists or tuples of 1d arrays.
1818
1819
1819 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1820 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1820 optimizations.
1821 optimizations.
1821
1822
1822 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1823 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1823 the information which was there from Janko's original IPP code:
1824 the information which was there from Janko's original IPP code:
1824
1825
1825 03.05.99 20:53 porto.ifm.uni-kiel.de
1826 03.05.99 20:53 porto.ifm.uni-kiel.de
1826 --Started changelog.
1827 --Started changelog.
1827 --make clear do what it say it does
1828 --make clear do what it say it does
1828 --added pretty output of lines from inputcache
1829 --added pretty output of lines from inputcache
1829 --Made Logger a mixin class, simplifies handling of switches
1830 --Made Logger a mixin class, simplifies handling of switches
1830 --Added own completer class. .string<TAB> expands to last history
1831 --Added own completer class. .string<TAB> expands to last history
1831 line which starts with string. The new expansion is also present
1832 line which starts with string. The new expansion is also present
1832 with Ctrl-r from the readline library. But this shows, who this
1833 with Ctrl-r from the readline library. But this shows, who this
1833 can be done for other cases.
1834 can be done for other cases.
1834 --Added convention that all shell functions should accept a
1835 --Added convention that all shell functions should accept a
1835 parameter_string This opens the door for different behaviour for
1836 parameter_string This opens the door for different behaviour for
1836 each function. @cd is a good example of this.
1837 each function. @cd is a good example of this.
1837
1838
1838 04.05.99 12:12 porto.ifm.uni-kiel.de
1839 04.05.99 12:12 porto.ifm.uni-kiel.de
1839 --added logfile rotation
1840 --added logfile rotation
1840 --added new mainloop method which freezes first the namespace
1841 --added new mainloop method which freezes first the namespace
1841
1842
1842 07.05.99 21:24 porto.ifm.uni-kiel.de
1843 07.05.99 21:24 porto.ifm.uni-kiel.de
1843 --added the docreader classes. Now there is a help system.
1844 --added the docreader classes. Now there is a help system.
1844 -This is only a first try. Currently it's not easy to put new
1845 -This is only a first try. Currently it's not easy to put new
1845 stuff in the indices. But this is the way to go. Info would be
1846 stuff in the indices. But this is the way to go. Info would be
1846 better, but HTML is every where and not everybody has an info
1847 better, but HTML is every where and not everybody has an info
1847 system installed and it's not so easy to change html-docs to info.
1848 system installed and it's not so easy to change html-docs to info.
1848 --added global logfile option
1849 --added global logfile option
1849 --there is now a hook for object inspection method pinfo needs to
1850 --there is now a hook for object inspection method pinfo needs to
1850 be provided for this. Can be reached by two '??'.
1851 be provided for this. Can be reached by two '??'.
1851
1852
1852 08.05.99 20:51 porto.ifm.uni-kiel.de
1853 08.05.99 20:51 porto.ifm.uni-kiel.de
1853 --added a README
1854 --added a README
1854 --bug in rc file. Something has changed so functions in the rc
1855 --bug in rc file. Something has changed so functions in the rc
1855 file need to reference the shell and not self. Not clear if it's a
1856 file need to reference the shell and not self. Not clear if it's a
1856 bug or feature.
1857 bug or feature.
1857 --changed rc file for new behavior
1858 --changed rc file for new behavior
1858
1859
1859 2004-07-15 Fernando Perez <fperez@colorado.edu>
1860 2004-07-15 Fernando Perez <fperez@colorado.edu>
1860
1861
1861 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1862 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1862 cache was falling out of sync in bizarre manners when multi-line
1863 cache was falling out of sync in bizarre manners when multi-line
1863 input was present. Minor optimizations and cleanup.
1864 input was present. Minor optimizations and cleanup.
1864
1865
1865 (Logger): Remove old Changelog info for cleanup. This is the
1866 (Logger): Remove old Changelog info for cleanup. This is the
1866 information which was there from Janko's original code:
1867 information which was there from Janko's original code:
1867
1868
1868 Changes to Logger: - made the default log filename a parameter
1869 Changes to Logger: - made the default log filename a parameter
1869
1870
1870 - put a check for lines beginning with !@? in log(). Needed
1871 - put a check for lines beginning with !@? in log(). Needed
1871 (even if the handlers properly log their lines) for mid-session
1872 (even if the handlers properly log their lines) for mid-session
1872 logging activation to work properly. Without this, lines logged
1873 logging activation to work properly. Without this, lines logged
1873 in mid session, which get read from the cache, would end up
1874 in mid session, which get read from the cache, would end up
1874 'bare' (with !@? in the open) in the log. Now they are caught
1875 'bare' (with !@? in the open) in the log. Now they are caught
1875 and prepended with a #.
1876 and prepended with a #.
1876
1877
1877 * IPython/iplib.py (InteractiveShell.init_readline): added check
1878 * IPython/iplib.py (InteractiveShell.init_readline): added check
1878 in case MagicCompleter fails to be defined, so we don't crash.
1879 in case MagicCompleter fails to be defined, so we don't crash.
1879
1880
1880 2004-07-13 Fernando Perez <fperez@colorado.edu>
1881 2004-07-13 Fernando Perez <fperez@colorado.edu>
1881
1882
1882 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1883 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1883 of EPS if the requested filename ends in '.eps'.
1884 of EPS if the requested filename ends in '.eps'.
1884
1885
1885 2004-07-04 Fernando Perez <fperez@colorado.edu>
1886 2004-07-04 Fernando Perez <fperez@colorado.edu>
1886
1887
1887 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1888 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1888 escaping of quotes when calling the shell.
1889 escaping of quotes when calling the shell.
1889
1890
1890 2004-07-02 Fernando Perez <fperez@colorado.edu>
1891 2004-07-02 Fernando Perez <fperez@colorado.edu>
1891
1892
1892 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1893 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1893 gettext not working because we were clobbering '_'. Fixes
1894 gettext not working because we were clobbering '_'. Fixes
1894 http://www.scipy.net/roundup/ipython/issue6.
1895 http://www.scipy.net/roundup/ipython/issue6.
1895
1896
1896 2004-07-01 Fernando Perez <fperez@colorado.edu>
1897 2004-07-01 Fernando Perez <fperez@colorado.edu>
1897
1898
1898 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1899 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1899 into @cd. Patch by Ville.
1900 into @cd. Patch by Ville.
1900
1901
1901 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1902 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1902 new function to store things after ipmaker runs. Patch by Ville.
1903 new function to store things after ipmaker runs. Patch by Ville.
1903 Eventually this will go away once ipmaker is removed and the class
1904 Eventually this will go away once ipmaker is removed and the class
1904 gets cleaned up, but for now it's ok. Key functionality here is
1905 gets cleaned up, but for now it's ok. Key functionality here is
1905 the addition of the persistent storage mechanism, a dict for
1906 the addition of the persistent storage mechanism, a dict for
1906 keeping data across sessions (for now just bookmarks, but more can
1907 keeping data across sessions (for now just bookmarks, but more can
1907 be implemented later).
1908 be implemented later).
1908
1909
1909 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1910 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1910 persistent across sections. Patch by Ville, I modified it
1911 persistent across sections. Patch by Ville, I modified it
1911 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1912 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1912 added a '-l' option to list all bookmarks.
1913 added a '-l' option to list all bookmarks.
1913
1914
1914 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1915 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1915 center for cleanup. Registered with atexit.register(). I moved
1916 center for cleanup. Registered with atexit.register(). I moved
1916 here the old exit_cleanup(). After a patch by Ville.
1917 here the old exit_cleanup(). After a patch by Ville.
1917
1918
1918 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1919 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1919 characters in the hacked shlex_split for python 2.2.
1920 characters in the hacked shlex_split for python 2.2.
1920
1921
1921 * IPython/iplib.py (file_matches): more fixes to filenames with
1922 * IPython/iplib.py (file_matches): more fixes to filenames with
1922 whitespace in them. It's not perfect, but limitations in python's
1923 whitespace in them. It's not perfect, but limitations in python's
1923 readline make it impossible to go further.
1924 readline make it impossible to go further.
1924
1925
1925 2004-06-29 Fernando Perez <fperez@colorado.edu>
1926 2004-06-29 Fernando Perez <fperez@colorado.edu>
1926
1927
1927 * IPython/iplib.py (file_matches): escape whitespace correctly in
1928 * IPython/iplib.py (file_matches): escape whitespace correctly in
1928 filename completions. Bug reported by Ville.
1929 filename completions. Bug reported by Ville.
1929
1930
1930 2004-06-28 Fernando Perez <fperez@colorado.edu>
1931 2004-06-28 Fernando Perez <fperez@colorado.edu>
1931
1932
1932 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1933 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1933 the history file will be called 'history-PROFNAME' (or just
1934 the history file will be called 'history-PROFNAME' (or just
1934 'history' if no profile is loaded). I was getting annoyed at
1935 'history' if no profile is loaded). I was getting annoyed at
1935 getting my Numerical work history clobbered by pysh sessions.
1936 getting my Numerical work history clobbered by pysh sessions.
1936
1937
1937 * IPython/iplib.py (InteractiveShell.__init__): Internal
1938 * IPython/iplib.py (InteractiveShell.__init__): Internal
1938 getoutputerror() function so that we can honor the system_verbose
1939 getoutputerror() function so that we can honor the system_verbose
1939 flag for _all_ system calls. I also added escaping of #
1940 flag for _all_ system calls. I also added escaping of #
1940 characters here to avoid confusing Itpl.
1941 characters here to avoid confusing Itpl.
1941
1942
1942 * IPython/Magic.py (shlex_split): removed call to shell in
1943 * IPython/Magic.py (shlex_split): removed call to shell in
1943 parse_options and replaced it with shlex.split(). The annoying
1944 parse_options and replaced it with shlex.split(). The annoying
1944 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1945 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1945 to backport it from 2.3, with several frail hacks (the shlex
1946 to backport it from 2.3, with several frail hacks (the shlex
1946 module is rather limited in 2.2). Thanks to a suggestion by Ville
1947 module is rather limited in 2.2). Thanks to a suggestion by Ville
1947 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1948 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1948 problem.
1949 problem.
1949
1950
1950 (Magic.magic_system_verbose): new toggle to print the actual
1951 (Magic.magic_system_verbose): new toggle to print the actual
1951 system calls made by ipython. Mainly for debugging purposes.
1952 system calls made by ipython. Mainly for debugging purposes.
1952
1953
1953 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1954 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1954 doesn't support persistence. Reported (and fix suggested) by
1955 doesn't support persistence. Reported (and fix suggested) by
1955 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1956 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1956
1957
1957 2004-06-26 Fernando Perez <fperez@colorado.edu>
1958 2004-06-26 Fernando Perez <fperez@colorado.edu>
1958
1959
1959 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1960 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1960 continue prompts.
1961 continue prompts.
1961
1962
1962 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1963 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1963 function (basically a big docstring) and a few more things here to
1964 function (basically a big docstring) and a few more things here to
1964 speedup startup. pysh.py is now very lightweight. We want because
1965 speedup startup. pysh.py is now very lightweight. We want because
1965 it gets execfile'd, while InterpreterExec gets imported, so
1966 it gets execfile'd, while InterpreterExec gets imported, so
1966 byte-compilation saves time.
1967 byte-compilation saves time.
1967
1968
1968 2004-06-25 Fernando Perez <fperez@colorado.edu>
1969 2004-06-25 Fernando Perez <fperez@colorado.edu>
1969
1970
1970 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1971 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1971 -NUM', which was recently broken.
1972 -NUM', which was recently broken.
1972
1973
1973 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1974 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1974 in multi-line input (but not !!, which doesn't make sense there).
1975 in multi-line input (but not !!, which doesn't make sense there).
1975
1976
1976 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1977 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1977 It's just too useful, and people can turn it off in the less
1978 It's just too useful, and people can turn it off in the less
1978 common cases where it's a problem.
1979 common cases where it's a problem.
1979
1980
1980 2004-06-24 Fernando Perez <fperez@colorado.edu>
1981 2004-06-24 Fernando Perez <fperez@colorado.edu>
1981
1982
1982 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1983 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1983 special syntaxes (like alias calling) is now allied in multi-line
1984 special syntaxes (like alias calling) is now allied in multi-line
1984 input. This is still _very_ experimental, but it's necessary for
1985 input. This is still _very_ experimental, but it's necessary for
1985 efficient shell usage combining python looping syntax with system
1986 efficient shell usage combining python looping syntax with system
1986 calls. For now it's restricted to aliases, I don't think it
1987 calls. For now it's restricted to aliases, I don't think it
1987 really even makes sense to have this for magics.
1988 really even makes sense to have this for magics.
1988
1989
1989 2004-06-23 Fernando Perez <fperez@colorado.edu>
1990 2004-06-23 Fernando Perez <fperez@colorado.edu>
1990
1991
1991 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1992 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1992 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1993 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1993
1994
1994 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1995 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1995 extensions under Windows (after code sent by Gary Bishop). The
1996 extensions under Windows (after code sent by Gary Bishop). The
1996 extensions considered 'executable' are stored in IPython's rc
1997 extensions considered 'executable' are stored in IPython's rc
1997 structure as win_exec_ext.
1998 structure as win_exec_ext.
1998
1999
1999 * IPython/genutils.py (shell): new function, like system() but
2000 * IPython/genutils.py (shell): new function, like system() but
2000 without return value. Very useful for interactive shell work.
2001 without return value. Very useful for interactive shell work.
2001
2002
2002 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2003 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2003 delete aliases.
2004 delete aliases.
2004
2005
2005 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2006 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2006 sure that the alias table doesn't contain python keywords.
2007 sure that the alias table doesn't contain python keywords.
2007
2008
2008 2004-06-21 Fernando Perez <fperez@colorado.edu>
2009 2004-06-21 Fernando Perez <fperez@colorado.edu>
2009
2010
2010 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2011 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2011 non-existent items are found in $PATH. Reported by Thorsten.
2012 non-existent items are found in $PATH. Reported by Thorsten.
2012
2013
2013 2004-06-20 Fernando Perez <fperez@colorado.edu>
2014 2004-06-20 Fernando Perez <fperez@colorado.edu>
2014
2015
2015 * IPython/iplib.py (complete): modified the completer so that the
2016 * IPython/iplib.py (complete): modified the completer so that the
2016 order of priorities can be easily changed at runtime.
2017 order of priorities can be easily changed at runtime.
2017
2018
2018 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2019 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2019 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2020 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2020
2021
2021 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2022 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2022 expand Python variables prepended with $ in all system calls. The
2023 expand Python variables prepended with $ in all system calls. The
2023 same was done to InteractiveShell.handle_shell_escape. Now all
2024 same was done to InteractiveShell.handle_shell_escape. Now all
2024 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2025 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2025 expansion of python variables and expressions according to the
2026 expansion of python variables and expressions according to the
2026 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2027 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2027
2028
2028 Though PEP-215 has been rejected, a similar (but simpler) one
2029 Though PEP-215 has been rejected, a similar (but simpler) one
2029 seems like it will go into Python 2.4, PEP-292 -
2030 seems like it will go into Python 2.4, PEP-292 -
2030 http://www.python.org/peps/pep-0292.html.
2031 http://www.python.org/peps/pep-0292.html.
2031
2032
2032 I'll keep the full syntax of PEP-215, since IPython has since the
2033 I'll keep the full syntax of PEP-215, since IPython has since the
2033 start used Ka-Ping Yee's reference implementation discussed there
2034 start used Ka-Ping Yee's reference implementation discussed there
2034 (Itpl), and I actually like the powerful semantics it offers.
2035 (Itpl), and I actually like the powerful semantics it offers.
2035
2036
2036 In order to access normal shell variables, the $ has to be escaped
2037 In order to access normal shell variables, the $ has to be escaped
2037 via an extra $. For example:
2038 via an extra $. For example:
2038
2039
2039 In [7]: PATH='a python variable'
2040 In [7]: PATH='a python variable'
2040
2041
2041 In [8]: !echo $PATH
2042 In [8]: !echo $PATH
2042 a python variable
2043 a python variable
2043
2044
2044 In [9]: !echo $$PATH
2045 In [9]: !echo $$PATH
2045 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2046 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2046
2047
2047 (Magic.parse_options): escape $ so the shell doesn't evaluate
2048 (Magic.parse_options): escape $ so the shell doesn't evaluate
2048 things prematurely.
2049 things prematurely.
2049
2050
2050 * IPython/iplib.py (InteractiveShell.call_alias): added the
2051 * IPython/iplib.py (InteractiveShell.call_alias): added the
2051 ability for aliases to expand python variables via $.
2052 ability for aliases to expand python variables via $.
2052
2053
2053 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2054 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2054 system, now there's a @rehash/@rehashx pair of magics. These work
2055 system, now there's a @rehash/@rehashx pair of magics. These work
2055 like the csh rehash command, and can be invoked at any time. They
2056 like the csh rehash command, and can be invoked at any time. They
2056 build a table of aliases to everything in the user's $PATH
2057 build a table of aliases to everything in the user's $PATH
2057 (@rehash uses everything, @rehashx is slower but only adds
2058 (@rehash uses everything, @rehashx is slower but only adds
2058 executable files). With this, the pysh.py-based shell profile can
2059 executable files). With this, the pysh.py-based shell profile can
2059 now simply call rehash upon startup, and full access to all
2060 now simply call rehash upon startup, and full access to all
2060 programs in the user's path is obtained.
2061 programs in the user's path is obtained.
2061
2062
2062 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2063 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2063 functionality is now fully in place. I removed the old dynamic
2064 functionality is now fully in place. I removed the old dynamic
2064 code generation based approach, in favor of a much lighter one
2065 code generation based approach, in favor of a much lighter one
2065 based on a simple dict. The advantage is that this allows me to
2066 based on a simple dict. The advantage is that this allows me to
2066 now have thousands of aliases with negligible cost (unthinkable
2067 now have thousands of aliases with negligible cost (unthinkable
2067 with the old system).
2068 with the old system).
2068
2069
2069 2004-06-19 Fernando Perez <fperez@colorado.edu>
2070 2004-06-19 Fernando Perez <fperez@colorado.edu>
2070
2071
2071 * IPython/iplib.py (__init__): extended MagicCompleter class to
2072 * IPython/iplib.py (__init__): extended MagicCompleter class to
2072 also complete (last in priority) on user aliases.
2073 also complete (last in priority) on user aliases.
2073
2074
2074 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2075 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2075 call to eval.
2076 call to eval.
2076 (ItplNS.__init__): Added a new class which functions like Itpl,
2077 (ItplNS.__init__): Added a new class which functions like Itpl,
2077 but allows configuring the namespace for the evaluation to occur
2078 but allows configuring the namespace for the evaluation to occur
2078 in.
2079 in.
2079
2080
2080 2004-06-18 Fernando Perez <fperez@colorado.edu>
2081 2004-06-18 Fernando Perez <fperez@colorado.edu>
2081
2082
2082 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2083 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2083 better message when 'exit' or 'quit' are typed (a common newbie
2084 better message when 'exit' or 'quit' are typed (a common newbie
2084 confusion).
2085 confusion).
2085
2086
2086 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2087 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2087 check for Windows users.
2088 check for Windows users.
2088
2089
2089 * IPython/iplib.py (InteractiveShell.user_setup): removed
2090 * IPython/iplib.py (InteractiveShell.user_setup): removed
2090 disabling of colors for Windows. I'll test at runtime and issue a
2091 disabling of colors for Windows. I'll test at runtime and issue a
2091 warning if Gary's readline isn't found, as to nudge users to
2092 warning if Gary's readline isn't found, as to nudge users to
2092 download it.
2093 download it.
2093
2094
2094 2004-06-16 Fernando Perez <fperez@colorado.edu>
2095 2004-06-16 Fernando Perez <fperez@colorado.edu>
2095
2096
2096 * IPython/genutils.py (Stream.__init__): changed to print errors
2097 * IPython/genutils.py (Stream.__init__): changed to print errors
2097 to sys.stderr. I had a circular dependency here. Now it's
2098 to sys.stderr. I had a circular dependency here. Now it's
2098 possible to run ipython as IDLE's shell (consider this pre-alpha,
2099 possible to run ipython as IDLE's shell (consider this pre-alpha,
2099 since true stdout things end up in the starting terminal instead
2100 since true stdout things end up in the starting terminal instead
2100 of IDLE's out).
2101 of IDLE's out).
2101
2102
2102 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2103 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2103 users who haven't # updated their prompt_in2 definitions. Remove
2104 users who haven't # updated their prompt_in2 definitions. Remove
2104 eventually.
2105 eventually.
2105 (multiple_replace): added credit to original ASPN recipe.
2106 (multiple_replace): added credit to original ASPN recipe.
2106
2107
2107 2004-06-15 Fernando Perez <fperez@colorado.edu>
2108 2004-06-15 Fernando Perez <fperez@colorado.edu>
2108
2109
2109 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2110 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2110 list of auto-defined aliases.
2111 list of auto-defined aliases.
2111
2112
2112 2004-06-13 Fernando Perez <fperez@colorado.edu>
2113 2004-06-13 Fernando Perez <fperez@colorado.edu>
2113
2114
2114 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2115 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2115 install was really requested (so setup.py can be used for other
2116 install was really requested (so setup.py can be used for other
2116 things under Windows).
2117 things under Windows).
2117
2118
2118 2004-06-10 Fernando Perez <fperez@colorado.edu>
2119 2004-06-10 Fernando Perez <fperez@colorado.edu>
2119
2120
2120 * IPython/Logger.py (Logger.create_log): Manually remove any old
2121 * IPython/Logger.py (Logger.create_log): Manually remove any old
2121 backup, since os.remove may fail under Windows. Fixes bug
2122 backup, since os.remove may fail under Windows. Fixes bug
2122 reported by Thorsten.
2123 reported by Thorsten.
2123
2124
2124 2004-06-09 Fernando Perez <fperez@colorado.edu>
2125 2004-06-09 Fernando Perez <fperez@colorado.edu>
2125
2126
2126 * examples/example-embed.py: fixed all references to %n (replaced
2127 * examples/example-embed.py: fixed all references to %n (replaced
2127 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2128 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2128 for all examples and the manual as well.
2129 for all examples and the manual as well.
2129
2130
2130 2004-06-08 Fernando Perez <fperez@colorado.edu>
2131 2004-06-08 Fernando Perez <fperez@colorado.edu>
2131
2132
2132 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2133 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2133 alignment and color management. All 3 prompt subsystems now
2134 alignment and color management. All 3 prompt subsystems now
2134 inherit from BasePrompt.
2135 inherit from BasePrompt.
2135
2136
2136 * tools/release: updates for windows installer build and tag rpms
2137 * tools/release: updates for windows installer build and tag rpms
2137 with python version (since paths are fixed).
2138 with python version (since paths are fixed).
2138
2139
2139 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2140 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2140 which will become eventually obsolete. Also fixed the default
2141 which will become eventually obsolete. Also fixed the default
2141 prompt_in2 to use \D, so at least new users start with the correct
2142 prompt_in2 to use \D, so at least new users start with the correct
2142 defaults.
2143 defaults.
2143 WARNING: Users with existing ipythonrc files will need to apply
2144 WARNING: Users with existing ipythonrc files will need to apply
2144 this fix manually!
2145 this fix manually!
2145
2146
2146 * setup.py: make windows installer (.exe). This is finally the
2147 * setup.py: make windows installer (.exe). This is finally the
2147 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2148 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2148 which I hadn't included because it required Python 2.3 (or recent
2149 which I hadn't included because it required Python 2.3 (or recent
2149 distutils).
2150 distutils).
2150
2151
2151 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2152 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2152 usage of new '\D' escape.
2153 usage of new '\D' escape.
2153
2154
2154 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2155 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2155 lacks os.getuid())
2156 lacks os.getuid())
2156 (CachedOutput.set_colors): Added the ability to turn coloring
2157 (CachedOutput.set_colors): Added the ability to turn coloring
2157 on/off with @colors even for manually defined prompt colors. It
2158 on/off with @colors even for manually defined prompt colors. It
2158 uses a nasty global, but it works safely and via the generic color
2159 uses a nasty global, but it works safely and via the generic color
2159 handling mechanism.
2160 handling mechanism.
2160 (Prompt2.__init__): Introduced new escape '\D' for continuation
2161 (Prompt2.__init__): Introduced new escape '\D' for continuation
2161 prompts. It represents the counter ('\#') as dots.
2162 prompts. It represents the counter ('\#') as dots.
2162 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2163 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2163 need to update their ipythonrc files and replace '%n' with '\D' in
2164 need to update their ipythonrc files and replace '%n' with '\D' in
2164 their prompt_in2 settings everywhere. Sorry, but there's
2165 their prompt_in2 settings everywhere. Sorry, but there's
2165 otherwise no clean way to get all prompts to properly align. The
2166 otherwise no clean way to get all prompts to properly align. The
2166 ipythonrc shipped with IPython has been updated.
2167 ipythonrc shipped with IPython has been updated.
2167
2168
2168 2004-06-07 Fernando Perez <fperez@colorado.edu>
2169 2004-06-07 Fernando Perez <fperez@colorado.edu>
2169
2170
2170 * setup.py (isfile): Pass local_icons option to latex2html, so the
2171 * setup.py (isfile): Pass local_icons option to latex2html, so the
2171 resulting HTML file is self-contained. Thanks to
2172 resulting HTML file is self-contained. Thanks to
2172 dryice-AT-liu.com.cn for the tip.
2173 dryice-AT-liu.com.cn for the tip.
2173
2174
2174 * pysh.py: I created a new profile 'shell', which implements a
2175 * pysh.py: I created a new profile 'shell', which implements a
2175 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2176 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2176 system shell, nor will it become one anytime soon. It's mainly
2177 system shell, nor will it become one anytime soon. It's mainly
2177 meant to illustrate the use of the new flexible bash-like prompts.
2178 meant to illustrate the use of the new flexible bash-like prompts.
2178 I guess it could be used by hardy souls for true shell management,
2179 I guess it could be used by hardy souls for true shell management,
2179 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2180 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2180 profile. This uses the InterpreterExec extension provided by
2181 profile. This uses the InterpreterExec extension provided by
2181 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2182 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2182
2183
2183 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2184 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2184 auto-align itself with the length of the previous input prompt
2185 auto-align itself with the length of the previous input prompt
2185 (taking into account the invisible color escapes).
2186 (taking into account the invisible color escapes).
2186 (CachedOutput.__init__): Large restructuring of this class. Now
2187 (CachedOutput.__init__): Large restructuring of this class. Now
2187 all three prompts (primary1, primary2, output) are proper objects,
2188 all three prompts (primary1, primary2, output) are proper objects,
2188 managed by the 'parent' CachedOutput class. The code is still a
2189 managed by the 'parent' CachedOutput class. The code is still a
2189 bit hackish (all prompts share state via a pointer to the cache),
2190 bit hackish (all prompts share state via a pointer to the cache),
2190 but it's overall far cleaner than before.
2191 but it's overall far cleaner than before.
2191
2192
2192 * IPython/genutils.py (getoutputerror): modified to add verbose,
2193 * IPython/genutils.py (getoutputerror): modified to add verbose,
2193 debug and header options. This makes the interface of all getout*
2194 debug and header options. This makes the interface of all getout*
2194 functions uniform.
2195 functions uniform.
2195 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2196 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2196
2197
2197 * IPython/Magic.py (Magic.default_option): added a function to
2198 * IPython/Magic.py (Magic.default_option): added a function to
2198 allow registering default options for any magic command. This
2199 allow registering default options for any magic command. This
2199 makes it easy to have profiles which customize the magics globally
2200 makes it easy to have profiles which customize the magics globally
2200 for a certain use. The values set through this function are
2201 for a certain use. The values set through this function are
2201 picked up by the parse_options() method, which all magics should
2202 picked up by the parse_options() method, which all magics should
2202 use to parse their options.
2203 use to parse their options.
2203
2204
2204 * IPython/genutils.py (warn): modified the warnings framework to
2205 * IPython/genutils.py (warn): modified the warnings framework to
2205 use the Term I/O class. I'm trying to slowly unify all of
2206 use the Term I/O class. I'm trying to slowly unify all of
2206 IPython's I/O operations to pass through Term.
2207 IPython's I/O operations to pass through Term.
2207
2208
2208 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2209 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2209 the secondary prompt to correctly match the length of the primary
2210 the secondary prompt to correctly match the length of the primary
2210 one for any prompt. Now multi-line code will properly line up
2211 one for any prompt. Now multi-line code will properly line up
2211 even for path dependent prompts, such as the new ones available
2212 even for path dependent prompts, such as the new ones available
2212 via the prompt_specials.
2213 via the prompt_specials.
2213
2214
2214 2004-06-06 Fernando Perez <fperez@colorado.edu>
2215 2004-06-06 Fernando Perez <fperez@colorado.edu>
2215
2216
2216 * IPython/Prompts.py (prompt_specials): Added the ability to have
2217 * IPython/Prompts.py (prompt_specials): Added the ability to have
2217 bash-like special sequences in the prompts, which get
2218 bash-like special sequences in the prompts, which get
2218 automatically expanded. Things like hostname, current working
2219 automatically expanded. Things like hostname, current working
2219 directory and username are implemented already, but it's easy to
2220 directory and username are implemented already, but it's easy to
2220 add more in the future. Thanks to a patch by W.J. van der Laan
2221 add more in the future. Thanks to a patch by W.J. van der Laan
2221 <gnufnork-AT-hetdigitalegat.nl>
2222 <gnufnork-AT-hetdigitalegat.nl>
2222 (prompt_specials): Added color support for prompt strings, so
2223 (prompt_specials): Added color support for prompt strings, so
2223 users can define arbitrary color setups for their prompts.
2224 users can define arbitrary color setups for their prompts.
2224
2225
2225 2004-06-05 Fernando Perez <fperez@colorado.edu>
2226 2004-06-05 Fernando Perez <fperez@colorado.edu>
2226
2227
2227 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2228 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2228 code to load Gary Bishop's readline and configure it
2229 code to load Gary Bishop's readline and configure it
2229 automatically. Thanks to Gary for help on this.
2230 automatically. Thanks to Gary for help on this.
2230
2231
2231 2004-06-01 Fernando Perez <fperez@colorado.edu>
2232 2004-06-01 Fernando Perez <fperez@colorado.edu>
2232
2233
2233 * IPython/Logger.py (Logger.create_log): fix bug for logging
2234 * IPython/Logger.py (Logger.create_log): fix bug for logging
2234 with no filename (previous fix was incomplete).
2235 with no filename (previous fix was incomplete).
2235
2236
2236 2004-05-25 Fernando Perez <fperez@colorado.edu>
2237 2004-05-25 Fernando Perez <fperez@colorado.edu>
2237
2238
2238 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2239 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2239 parens would get passed to the shell.
2240 parens would get passed to the shell.
2240
2241
2241 2004-05-20 Fernando Perez <fperez@colorado.edu>
2242 2004-05-20 Fernando Perez <fperez@colorado.edu>
2242
2243
2243 * IPython/Magic.py (Magic.magic_prun): changed default profile
2244 * IPython/Magic.py (Magic.magic_prun): changed default profile
2244 sort order to 'time' (the more common profiling need).
2245 sort order to 'time' (the more common profiling need).
2245
2246
2246 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2247 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2247 so that source code shown is guaranteed in sync with the file on
2248 so that source code shown is guaranteed in sync with the file on
2248 disk (also changed in psource). Similar fix to the one for
2249 disk (also changed in psource). Similar fix to the one for
2249 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2250 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2250 <yann.ledu-AT-noos.fr>.
2251 <yann.ledu-AT-noos.fr>.
2251
2252
2252 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2253 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2253 with a single option would not be correctly parsed. Closes
2254 with a single option would not be correctly parsed. Closes
2254 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2255 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2255 introduced in 0.6.0 (on 2004-05-06).
2256 introduced in 0.6.0 (on 2004-05-06).
2256
2257
2257 2004-05-13 *** Released version 0.6.0
2258 2004-05-13 *** Released version 0.6.0
2258
2259
2259 2004-05-13 Fernando Perez <fperez@colorado.edu>
2260 2004-05-13 Fernando Perez <fperez@colorado.edu>
2260
2261
2261 * debian/: Added debian/ directory to CVS, so that debian support
2262 * debian/: Added debian/ directory to CVS, so that debian support
2262 is publicly accessible. The debian package is maintained by Jack
2263 is publicly accessible. The debian package is maintained by Jack
2263 Moffit <jack-AT-xiph.org>.
2264 Moffit <jack-AT-xiph.org>.
2264
2265
2265 * Documentation: included the notes about an ipython-based system
2266 * Documentation: included the notes about an ipython-based system
2266 shell (the hypothetical 'pysh') into the new_design.pdf document,
2267 shell (the hypothetical 'pysh') into the new_design.pdf document,
2267 so that these ideas get distributed to users along with the
2268 so that these ideas get distributed to users along with the
2268 official documentation.
2269 official documentation.
2269
2270
2270 2004-05-10 Fernando Perez <fperez@colorado.edu>
2271 2004-05-10 Fernando Perez <fperez@colorado.edu>
2271
2272
2272 * IPython/Logger.py (Logger.create_log): fix recently introduced
2273 * IPython/Logger.py (Logger.create_log): fix recently introduced
2273 bug (misindented line) where logstart would fail when not given an
2274 bug (misindented line) where logstart would fail when not given an
2274 explicit filename.
2275 explicit filename.
2275
2276
2276 2004-05-09 Fernando Perez <fperez@colorado.edu>
2277 2004-05-09 Fernando Perez <fperez@colorado.edu>
2277
2278
2278 * IPython/Magic.py (Magic.parse_options): skip system call when
2279 * IPython/Magic.py (Magic.parse_options): skip system call when
2279 there are no options to look for. Faster, cleaner for the common
2280 there are no options to look for. Faster, cleaner for the common
2280 case.
2281 case.
2281
2282
2282 * Documentation: many updates to the manual: describing Windows
2283 * Documentation: many updates to the manual: describing Windows
2283 support better, Gnuplot updates, credits, misc small stuff. Also
2284 support better, Gnuplot updates, credits, misc small stuff. Also
2284 updated the new_design doc a bit.
2285 updated the new_design doc a bit.
2285
2286
2286 2004-05-06 *** Released version 0.6.0.rc1
2287 2004-05-06 *** Released version 0.6.0.rc1
2287
2288
2288 2004-05-06 Fernando Perez <fperez@colorado.edu>
2289 2004-05-06 Fernando Perez <fperez@colorado.edu>
2289
2290
2290 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2291 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2291 operations to use the vastly more efficient list/''.join() method.
2292 operations to use the vastly more efficient list/''.join() method.
2292 (FormattedTB.text): Fix
2293 (FormattedTB.text): Fix
2293 http://www.scipy.net/roundup/ipython/issue12 - exception source
2294 http://www.scipy.net/roundup/ipython/issue12 - exception source
2294 extract not updated after reload. Thanks to Mike Salib
2295 extract not updated after reload. Thanks to Mike Salib
2295 <msalib-AT-mit.edu> for pinning the source of the problem.
2296 <msalib-AT-mit.edu> for pinning the source of the problem.
2296 Fortunately, the solution works inside ipython and doesn't require
2297 Fortunately, the solution works inside ipython and doesn't require
2297 any changes to python proper.
2298 any changes to python proper.
2298
2299
2299 * IPython/Magic.py (Magic.parse_options): Improved to process the
2300 * IPython/Magic.py (Magic.parse_options): Improved to process the
2300 argument list as a true shell would (by actually using the
2301 argument list as a true shell would (by actually using the
2301 underlying system shell). This way, all @magics automatically get
2302 underlying system shell). This way, all @magics automatically get
2302 shell expansion for variables. Thanks to a comment by Alex
2303 shell expansion for variables. Thanks to a comment by Alex
2303 Schmolck.
2304 Schmolck.
2304
2305
2305 2004-04-04 Fernando Perez <fperez@colorado.edu>
2306 2004-04-04 Fernando Perez <fperez@colorado.edu>
2306
2307
2307 * IPython/iplib.py (InteractiveShell.interact): Added a special
2308 * IPython/iplib.py (InteractiveShell.interact): Added a special
2308 trap for a debugger quit exception, which is basically impossible
2309 trap for a debugger quit exception, which is basically impossible
2309 to handle by normal mechanisms, given what pdb does to the stack.
2310 to handle by normal mechanisms, given what pdb does to the stack.
2310 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2311 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2311
2312
2312 2004-04-03 Fernando Perez <fperez@colorado.edu>
2313 2004-04-03 Fernando Perez <fperez@colorado.edu>
2313
2314
2314 * IPython/genutils.py (Term): Standardized the names of the Term
2315 * IPython/genutils.py (Term): Standardized the names of the Term
2315 class streams to cin/cout/cerr, following C++ naming conventions
2316 class streams to cin/cout/cerr, following C++ naming conventions
2316 (I can't use in/out/err because 'in' is not a valid attribute
2317 (I can't use in/out/err because 'in' is not a valid attribute
2317 name).
2318 name).
2318
2319
2319 * IPython/iplib.py (InteractiveShell.interact): don't increment
2320 * IPython/iplib.py (InteractiveShell.interact): don't increment
2320 the prompt if there's no user input. By Daniel 'Dang' Griffith
2321 the prompt if there's no user input. By Daniel 'Dang' Griffith
2321 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2322 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2322 Francois Pinard.
2323 Francois Pinard.
2323
2324
2324 2004-04-02 Fernando Perez <fperez@colorado.edu>
2325 2004-04-02 Fernando Perez <fperez@colorado.edu>
2325
2326
2326 * IPython/genutils.py (Stream.__init__): Modified to survive at
2327 * IPython/genutils.py (Stream.__init__): Modified to survive at
2327 least importing in contexts where stdin/out/err aren't true file
2328 least importing in contexts where stdin/out/err aren't true file
2328 objects, such as PyCrust (they lack fileno() and mode). However,
2329 objects, such as PyCrust (they lack fileno() and mode). However,
2329 the recovery facilities which rely on these things existing will
2330 the recovery facilities which rely on these things existing will
2330 not work.
2331 not work.
2331
2332
2332 2004-04-01 Fernando Perez <fperez@colorado.edu>
2333 2004-04-01 Fernando Perez <fperez@colorado.edu>
2333
2334
2334 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2335 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2335 use the new getoutputerror() function, so it properly
2336 use the new getoutputerror() function, so it properly
2336 distinguishes stdout/err.
2337 distinguishes stdout/err.
2337
2338
2338 * IPython/genutils.py (getoutputerror): added a function to
2339 * IPython/genutils.py (getoutputerror): added a function to
2339 capture separately the standard output and error of a command.
2340 capture separately the standard output and error of a command.
2340 After a comment from dang on the mailing lists. This code is
2341 After a comment from dang on the mailing lists. This code is
2341 basically a modified version of commands.getstatusoutput(), from
2342 basically a modified version of commands.getstatusoutput(), from
2342 the standard library.
2343 the standard library.
2343
2344
2344 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2345 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2345 '!!' as a special syntax (shorthand) to access @sx.
2346 '!!' as a special syntax (shorthand) to access @sx.
2346
2347
2347 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2348 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2348 command and return its output as a list split on '\n'.
2349 command and return its output as a list split on '\n'.
2349
2350
2350 2004-03-31 Fernando Perez <fperez@colorado.edu>
2351 2004-03-31 Fernando Perez <fperez@colorado.edu>
2351
2352
2352 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2353 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2353 method to dictionaries used as FakeModule instances if they lack
2354 method to dictionaries used as FakeModule instances if they lack
2354 it. At least pydoc in python2.3 breaks for runtime-defined
2355 it. At least pydoc in python2.3 breaks for runtime-defined
2355 functions without this hack. At some point I need to _really_
2356 functions without this hack. At some point I need to _really_
2356 understand what FakeModule is doing, because it's a gross hack.
2357 understand what FakeModule is doing, because it's a gross hack.
2357 But it solves Arnd's problem for now...
2358 But it solves Arnd's problem for now...
2358
2359
2359 2004-02-27 Fernando Perez <fperez@colorado.edu>
2360 2004-02-27 Fernando Perez <fperez@colorado.edu>
2360
2361
2361 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2362 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2362 mode would behave erratically. Also increased the number of
2363 mode would behave erratically. Also increased the number of
2363 possible logs in rotate mod to 999. Thanks to Rod Holland
2364 possible logs in rotate mod to 999. Thanks to Rod Holland
2364 <rhh@StructureLABS.com> for the report and fixes.
2365 <rhh@StructureLABS.com> for the report and fixes.
2365
2366
2366 2004-02-26 Fernando Perez <fperez@colorado.edu>
2367 2004-02-26 Fernando Perez <fperez@colorado.edu>
2367
2368
2368 * IPython/genutils.py (page): Check that the curses module really
2369 * IPython/genutils.py (page): Check that the curses module really
2369 has the initscr attribute before trying to use it. For some
2370 has the initscr attribute before trying to use it. For some
2370 reason, the Solaris curses module is missing this. I think this
2371 reason, the Solaris curses module is missing this. I think this
2371 should be considered a Solaris python bug, but I'm not sure.
2372 should be considered a Solaris python bug, but I'm not sure.
2372
2373
2373 2004-01-17 Fernando Perez <fperez@colorado.edu>
2374 2004-01-17 Fernando Perez <fperez@colorado.edu>
2374
2375
2375 * IPython/genutils.py (Stream.__init__): Changes to try to make
2376 * IPython/genutils.py (Stream.__init__): Changes to try to make
2376 ipython robust against stdin/out/err being closed by the user.
2377 ipython robust against stdin/out/err being closed by the user.
2377 This is 'user error' (and blocks a normal python session, at least
2378 This is 'user error' (and blocks a normal python session, at least
2378 the stdout case). However, Ipython should be able to survive such
2379 the stdout case). However, Ipython should be able to survive such
2379 instances of abuse as gracefully as possible. To simplify the
2380 instances of abuse as gracefully as possible. To simplify the
2380 coding and maintain compatibility with Gary Bishop's Term
2381 coding and maintain compatibility with Gary Bishop's Term
2381 contributions, I've made use of classmethods for this. I think
2382 contributions, I've made use of classmethods for this. I think
2382 this introduces a dependency on python 2.2.
2383 this introduces a dependency on python 2.2.
2383
2384
2384 2004-01-13 Fernando Perez <fperez@colorado.edu>
2385 2004-01-13 Fernando Perez <fperez@colorado.edu>
2385
2386
2386 * IPython/numutils.py (exp_safe): simplified the code a bit and
2387 * IPython/numutils.py (exp_safe): simplified the code a bit and
2387 removed the need for importing the kinds module altogether.
2388 removed the need for importing the kinds module altogether.
2388
2389
2389 2004-01-06 Fernando Perez <fperez@colorado.edu>
2390 2004-01-06 Fernando Perez <fperez@colorado.edu>
2390
2391
2391 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2392 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2392 a magic function instead, after some community feedback. No
2393 a magic function instead, after some community feedback. No
2393 special syntax will exist for it, but its name is deliberately
2394 special syntax will exist for it, but its name is deliberately
2394 very short.
2395 very short.
2395
2396
2396 2003-12-20 Fernando Perez <fperez@colorado.edu>
2397 2003-12-20 Fernando Perez <fperez@colorado.edu>
2397
2398
2398 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2399 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2399 new functionality, to automagically assign the result of a shell
2400 new functionality, to automagically assign the result of a shell
2400 command to a variable. I'll solicit some community feedback on
2401 command to a variable. I'll solicit some community feedback on
2401 this before making it permanent.
2402 this before making it permanent.
2402
2403
2403 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2404 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2404 requested about callables for which inspect couldn't obtain a
2405 requested about callables for which inspect couldn't obtain a
2405 proper argspec. Thanks to a crash report sent by Etienne
2406 proper argspec. Thanks to a crash report sent by Etienne
2406 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2407 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2407
2408
2408 2003-12-09 Fernando Perez <fperez@colorado.edu>
2409 2003-12-09 Fernando Perez <fperez@colorado.edu>
2409
2410
2410 * IPython/genutils.py (page): patch for the pager to work across
2411 * IPython/genutils.py (page): patch for the pager to work across
2411 various versions of Windows. By Gary Bishop.
2412 various versions of Windows. By Gary Bishop.
2412
2413
2413 2003-12-04 Fernando Perez <fperez@colorado.edu>
2414 2003-12-04 Fernando Perez <fperez@colorado.edu>
2414
2415
2415 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2416 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2416 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2417 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2417 While I tested this and it looks ok, there may still be corner
2418 While I tested this and it looks ok, there may still be corner
2418 cases I've missed.
2419 cases I've missed.
2419
2420
2420 2003-12-01 Fernando Perez <fperez@colorado.edu>
2421 2003-12-01 Fernando Perez <fperez@colorado.edu>
2421
2422
2422 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2423 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2423 where a line like 'p,q=1,2' would fail because the automagic
2424 where a line like 'p,q=1,2' would fail because the automagic
2424 system would be triggered for @p.
2425 system would be triggered for @p.
2425
2426
2426 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2427 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2427 cleanups, code unmodified.
2428 cleanups, code unmodified.
2428
2429
2429 * IPython/genutils.py (Term): added a class for IPython to handle
2430 * IPython/genutils.py (Term): added a class for IPython to handle
2430 output. In most cases it will just be a proxy for stdout/err, but
2431 output. In most cases it will just be a proxy for stdout/err, but
2431 having this allows modifications to be made for some platforms,
2432 having this allows modifications to be made for some platforms,
2432 such as handling color escapes under Windows. All of this code
2433 such as handling color escapes under Windows. All of this code
2433 was contributed by Gary Bishop, with minor modifications by me.
2434 was contributed by Gary Bishop, with minor modifications by me.
2434 The actual changes affect many files.
2435 The actual changes affect many files.
2435
2436
2436 2003-11-30 Fernando Perez <fperez@colorado.edu>
2437 2003-11-30 Fernando Perez <fperez@colorado.edu>
2437
2438
2438 * IPython/iplib.py (file_matches): new completion code, courtesy
2439 * IPython/iplib.py (file_matches): new completion code, courtesy
2439 of Jeff Collins. This enables filename completion again under
2440 of Jeff Collins. This enables filename completion again under
2440 python 2.3, which disabled it at the C level.
2441 python 2.3, which disabled it at the C level.
2441
2442
2442 2003-11-11 Fernando Perez <fperez@colorado.edu>
2443 2003-11-11 Fernando Perez <fperez@colorado.edu>
2443
2444
2444 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2445 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2445 for Numeric.array(map(...)), but often convenient.
2446 for Numeric.array(map(...)), but often convenient.
2446
2447
2447 2003-11-05 Fernando Perez <fperez@colorado.edu>
2448 2003-11-05 Fernando Perez <fperez@colorado.edu>
2448
2449
2449 * IPython/numutils.py (frange): Changed a call from int() to
2450 * IPython/numutils.py (frange): Changed a call from int() to
2450 int(round()) to prevent a problem reported with arange() in the
2451 int(round()) to prevent a problem reported with arange() in the
2451 numpy list.
2452 numpy list.
2452
2453
2453 2003-10-06 Fernando Perez <fperez@colorado.edu>
2454 2003-10-06 Fernando Perez <fperez@colorado.edu>
2454
2455
2455 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2456 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2456 prevent crashes if sys lacks an argv attribute (it happens with
2457 prevent crashes if sys lacks an argv attribute (it happens with
2457 embedded interpreters which build a bare-bones sys module).
2458 embedded interpreters which build a bare-bones sys module).
2458 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2459 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2459
2460
2460 2003-09-24 Fernando Perez <fperez@colorado.edu>
2461 2003-09-24 Fernando Perez <fperez@colorado.edu>
2461
2462
2462 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2463 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2463 to protect against poorly written user objects where __getattr__
2464 to protect against poorly written user objects where __getattr__
2464 raises exceptions other than AttributeError. Thanks to a bug
2465 raises exceptions other than AttributeError. Thanks to a bug
2465 report by Oliver Sander <osander-AT-gmx.de>.
2466 report by Oliver Sander <osander-AT-gmx.de>.
2466
2467
2467 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2468 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2468 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2469 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2469
2470
2470 2003-09-09 Fernando Perez <fperez@colorado.edu>
2471 2003-09-09 Fernando Perez <fperez@colorado.edu>
2471
2472
2472 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2473 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2473 unpacking a list whith a callable as first element would
2474 unpacking a list whith a callable as first element would
2474 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2475 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2475 Collins.
2476 Collins.
2476
2477
2477 2003-08-25 *** Released version 0.5.0
2478 2003-08-25 *** Released version 0.5.0
2478
2479
2479 2003-08-22 Fernando Perez <fperez@colorado.edu>
2480 2003-08-22 Fernando Perez <fperez@colorado.edu>
2480
2481
2481 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2482 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2482 improperly defined user exceptions. Thanks to feedback from Mark
2483 improperly defined user exceptions. Thanks to feedback from Mark
2483 Russell <mrussell-AT-verio.net>.
2484 Russell <mrussell-AT-verio.net>.
2484
2485
2485 2003-08-20 Fernando Perez <fperez@colorado.edu>
2486 2003-08-20 Fernando Perez <fperez@colorado.edu>
2486
2487
2487 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2488 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2488 printing so that it would print multi-line string forms starting
2489 printing so that it would print multi-line string forms starting
2489 with a new line. This way the formatting is better respected for
2490 with a new line. This way the formatting is better respected for
2490 objects which work hard to make nice string forms.
2491 objects which work hard to make nice string forms.
2491
2492
2492 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2493 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2493 autocall would overtake data access for objects with both
2494 autocall would overtake data access for objects with both
2494 __getitem__ and __call__.
2495 __getitem__ and __call__.
2495
2496
2496 2003-08-19 *** Released version 0.5.0-rc1
2497 2003-08-19 *** Released version 0.5.0-rc1
2497
2498
2498 2003-08-19 Fernando Perez <fperez@colorado.edu>
2499 2003-08-19 Fernando Perez <fperez@colorado.edu>
2499
2500
2500 * IPython/deep_reload.py (load_tail): single tiny change here
2501 * IPython/deep_reload.py (load_tail): single tiny change here
2501 seems to fix the long-standing bug of dreload() failing to work
2502 seems to fix the long-standing bug of dreload() failing to work
2502 for dotted names. But this module is pretty tricky, so I may have
2503 for dotted names. But this module is pretty tricky, so I may have
2503 missed some subtlety. Needs more testing!.
2504 missed some subtlety. Needs more testing!.
2504
2505
2505 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2506 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2506 exceptions which have badly implemented __str__ methods.
2507 exceptions which have badly implemented __str__ methods.
2507 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2508 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2508 which I've been getting reports about from Python 2.3 users. I
2509 which I've been getting reports about from Python 2.3 users. I
2509 wish I had a simple test case to reproduce the problem, so I could
2510 wish I had a simple test case to reproduce the problem, so I could
2510 either write a cleaner workaround or file a bug report if
2511 either write a cleaner workaround or file a bug report if
2511 necessary.
2512 necessary.
2512
2513
2513 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2514 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2514 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2515 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2515 a bug report by Tjabo Kloppenburg.
2516 a bug report by Tjabo Kloppenburg.
2516
2517
2517 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2518 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2518 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2519 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2519 seems rather unstable. Thanks to a bug report by Tjabo
2520 seems rather unstable. Thanks to a bug report by Tjabo
2520 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2521 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2521
2522
2522 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2523 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2523 this out soon because of the critical fixes in the inner loop for
2524 this out soon because of the critical fixes in the inner loop for
2524 generators.
2525 generators.
2525
2526
2526 * IPython/Magic.py (Magic.getargspec): removed. This (and
2527 * IPython/Magic.py (Magic.getargspec): removed. This (and
2527 _get_def) have been obsoleted by OInspect for a long time, I
2528 _get_def) have been obsoleted by OInspect for a long time, I
2528 hadn't noticed that they were dead code.
2529 hadn't noticed that they were dead code.
2529 (Magic._ofind): restored _ofind functionality for a few literals
2530 (Magic._ofind): restored _ofind functionality for a few literals
2530 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2531 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2531 for things like "hello".capitalize?, since that would require a
2532 for things like "hello".capitalize?, since that would require a
2532 potentially dangerous eval() again.
2533 potentially dangerous eval() again.
2533
2534
2534 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2535 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2535 logic a bit more to clean up the escapes handling and minimize the
2536 logic a bit more to clean up the escapes handling and minimize the
2536 use of _ofind to only necessary cases. The interactive 'feel' of
2537 use of _ofind to only necessary cases. The interactive 'feel' of
2537 IPython should have improved quite a bit with the changes in
2538 IPython should have improved quite a bit with the changes in
2538 _prefilter and _ofind (besides being far safer than before).
2539 _prefilter and _ofind (besides being far safer than before).
2539
2540
2540 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2541 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2541 obscure, never reported). Edit would fail to find the object to
2542 obscure, never reported). Edit would fail to find the object to
2542 edit under some circumstances.
2543 edit under some circumstances.
2543 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2544 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2544 which were causing double-calling of generators. Those eval calls
2545 which were causing double-calling of generators. Those eval calls
2545 were _very_ dangerous, since code with side effects could be
2546 were _very_ dangerous, since code with side effects could be
2546 triggered. As they say, 'eval is evil'... These were the
2547 triggered. As they say, 'eval is evil'... These were the
2547 nastiest evals in IPython. Besides, _ofind is now far simpler,
2548 nastiest evals in IPython. Besides, _ofind is now far simpler,
2548 and it should also be quite a bit faster. Its use of inspect is
2549 and it should also be quite a bit faster. Its use of inspect is
2549 also safer, so perhaps some of the inspect-related crashes I've
2550 also safer, so perhaps some of the inspect-related crashes I've
2550 seen lately with Python 2.3 might be taken care of. That will
2551 seen lately with Python 2.3 might be taken care of. That will
2551 need more testing.
2552 need more testing.
2552
2553
2553 2003-08-17 Fernando Perez <fperez@colorado.edu>
2554 2003-08-17 Fernando Perez <fperez@colorado.edu>
2554
2555
2555 * IPython/iplib.py (InteractiveShell._prefilter): significant
2556 * IPython/iplib.py (InteractiveShell._prefilter): significant
2556 simplifications to the logic for handling user escapes. Faster
2557 simplifications to the logic for handling user escapes. Faster
2557 and simpler code.
2558 and simpler code.
2558
2559
2559 2003-08-14 Fernando Perez <fperez@colorado.edu>
2560 2003-08-14 Fernando Perez <fperez@colorado.edu>
2560
2561
2561 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2562 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2562 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2563 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2563 but it should be quite a bit faster. And the recursive version
2564 but it should be quite a bit faster. And the recursive version
2564 generated O(log N) intermediate storage for all rank>1 arrays,
2565 generated O(log N) intermediate storage for all rank>1 arrays,
2565 even if they were contiguous.
2566 even if they were contiguous.
2566 (l1norm): Added this function.
2567 (l1norm): Added this function.
2567 (norm): Added this function for arbitrary norms (including
2568 (norm): Added this function for arbitrary norms (including
2568 l-infinity). l1 and l2 are still special cases for convenience
2569 l-infinity). l1 and l2 are still special cases for convenience
2569 and speed.
2570 and speed.
2570
2571
2571 2003-08-03 Fernando Perez <fperez@colorado.edu>
2572 2003-08-03 Fernando Perez <fperez@colorado.edu>
2572
2573
2573 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2574 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2574 exceptions, which now raise PendingDeprecationWarnings in Python
2575 exceptions, which now raise PendingDeprecationWarnings in Python
2575 2.3. There were some in Magic and some in Gnuplot2.
2576 2.3. There were some in Magic and some in Gnuplot2.
2576
2577
2577 2003-06-30 Fernando Perez <fperez@colorado.edu>
2578 2003-06-30 Fernando Perez <fperez@colorado.edu>
2578
2579
2579 * IPython/genutils.py (page): modified to call curses only for
2580 * IPython/genutils.py (page): modified to call curses only for
2580 terminals where TERM=='xterm'. After problems under many other
2581 terminals where TERM=='xterm'. After problems under many other
2581 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2582 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2582
2583
2583 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2584 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2584 would be triggered when readline was absent. This was just an old
2585 would be triggered when readline was absent. This was just an old
2585 debugging statement I'd forgotten to take out.
2586 debugging statement I'd forgotten to take out.
2586
2587
2587 2003-06-20 Fernando Perez <fperez@colorado.edu>
2588 2003-06-20 Fernando Perez <fperez@colorado.edu>
2588
2589
2589 * IPython/genutils.py (clock): modified to return only user time
2590 * IPython/genutils.py (clock): modified to return only user time
2590 (not counting system time), after a discussion on scipy. While
2591 (not counting system time), after a discussion on scipy. While
2591 system time may be a useful quantity occasionally, it may much
2592 system time may be a useful quantity occasionally, it may much
2592 more easily be skewed by occasional swapping or other similar
2593 more easily be skewed by occasional swapping or other similar
2593 activity.
2594 activity.
2594
2595
2595 2003-06-05 Fernando Perez <fperez@colorado.edu>
2596 2003-06-05 Fernando Perez <fperez@colorado.edu>
2596
2597
2597 * IPython/numutils.py (identity): new function, for building
2598 * IPython/numutils.py (identity): new function, for building
2598 arbitrary rank Kronecker deltas (mostly backwards compatible with
2599 arbitrary rank Kronecker deltas (mostly backwards compatible with
2599 Numeric.identity)
2600 Numeric.identity)
2600
2601
2601 2003-06-03 Fernando Perez <fperez@colorado.edu>
2602 2003-06-03 Fernando Perez <fperez@colorado.edu>
2602
2603
2603 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2604 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2604 arguments passed to magics with spaces, to allow trailing '\' to
2605 arguments passed to magics with spaces, to allow trailing '\' to
2605 work normally (mainly for Windows users).
2606 work normally (mainly for Windows users).
2606
2607
2607 2003-05-29 Fernando Perez <fperez@colorado.edu>
2608 2003-05-29 Fernando Perez <fperez@colorado.edu>
2608
2609
2609 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2610 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2610 instead of pydoc.help. This fixes a bizarre behavior where
2611 instead of pydoc.help. This fixes a bizarre behavior where
2611 printing '%s' % locals() would trigger the help system. Now
2612 printing '%s' % locals() would trigger the help system. Now
2612 ipython behaves like normal python does.
2613 ipython behaves like normal python does.
2613
2614
2614 Note that if one does 'from pydoc import help', the bizarre
2615 Note that if one does 'from pydoc import help', the bizarre
2615 behavior returns, but this will also happen in normal python, so
2616 behavior returns, but this will also happen in normal python, so
2616 it's not an ipython bug anymore (it has to do with how pydoc.help
2617 it's not an ipython bug anymore (it has to do with how pydoc.help
2617 is implemented).
2618 is implemented).
2618
2619
2619 2003-05-22 Fernando Perez <fperez@colorado.edu>
2620 2003-05-22 Fernando Perez <fperez@colorado.edu>
2620
2621
2621 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2622 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2622 return [] instead of None when nothing matches, also match to end
2623 return [] instead of None when nothing matches, also match to end
2623 of line. Patch by Gary Bishop.
2624 of line. Patch by Gary Bishop.
2624
2625
2625 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2626 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2626 protection as before, for files passed on the command line. This
2627 protection as before, for files passed on the command line. This
2627 prevents the CrashHandler from kicking in if user files call into
2628 prevents the CrashHandler from kicking in if user files call into
2628 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2629 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2629 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2630 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2630
2631
2631 2003-05-20 *** Released version 0.4.0
2632 2003-05-20 *** Released version 0.4.0
2632
2633
2633 2003-05-20 Fernando Perez <fperez@colorado.edu>
2634 2003-05-20 Fernando Perez <fperez@colorado.edu>
2634
2635
2635 * setup.py: added support for manpages. It's a bit hackish b/c of
2636 * setup.py: added support for manpages. It's a bit hackish b/c of
2636 a bug in the way the bdist_rpm distutils target handles gzipped
2637 a bug in the way the bdist_rpm distutils target handles gzipped
2637 manpages, but it works. After a patch by Jack.
2638 manpages, but it works. After a patch by Jack.
2638
2639
2639 2003-05-19 Fernando Perez <fperez@colorado.edu>
2640 2003-05-19 Fernando Perez <fperez@colorado.edu>
2640
2641
2641 * IPython/numutils.py: added a mockup of the kinds module, since
2642 * IPython/numutils.py: added a mockup of the kinds module, since
2642 it was recently removed from Numeric. This way, numutils will
2643 it was recently removed from Numeric. This way, numutils will
2643 work for all users even if they are missing kinds.
2644 work for all users even if they are missing kinds.
2644
2645
2645 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2646 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2646 failure, which can occur with SWIG-wrapped extensions. After a
2647 failure, which can occur with SWIG-wrapped extensions. After a
2647 crash report from Prabhu.
2648 crash report from Prabhu.
2648
2649
2649 2003-05-16 Fernando Perez <fperez@colorado.edu>
2650 2003-05-16 Fernando Perez <fperez@colorado.edu>
2650
2651
2651 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2652 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2652 protect ipython from user code which may call directly
2653 protect ipython from user code which may call directly
2653 sys.excepthook (this looks like an ipython crash to the user, even
2654 sys.excepthook (this looks like an ipython crash to the user, even
2654 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2655 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2655 This is especially important to help users of WxWindows, but may
2656 This is especially important to help users of WxWindows, but may
2656 also be useful in other cases.
2657 also be useful in other cases.
2657
2658
2658 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2659 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2659 an optional tb_offset to be specified, and to preserve exception
2660 an optional tb_offset to be specified, and to preserve exception
2660 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2661 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2661
2662
2662 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2663 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2663
2664
2664 2003-05-15 Fernando Perez <fperez@colorado.edu>
2665 2003-05-15 Fernando Perez <fperez@colorado.edu>
2665
2666
2666 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2667 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2667 installing for a new user under Windows.
2668 installing for a new user under Windows.
2668
2669
2669 2003-05-12 Fernando Perez <fperez@colorado.edu>
2670 2003-05-12 Fernando Perez <fperez@colorado.edu>
2670
2671
2671 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2672 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2672 handler for Emacs comint-based lines. Currently it doesn't do
2673 handler for Emacs comint-based lines. Currently it doesn't do
2673 much (but importantly, it doesn't update the history cache). In
2674 much (but importantly, it doesn't update the history cache). In
2674 the future it may be expanded if Alex needs more functionality
2675 the future it may be expanded if Alex needs more functionality
2675 there.
2676 there.
2676
2677
2677 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2678 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2678 info to crash reports.
2679 info to crash reports.
2679
2680
2680 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2681 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2681 just like Python's -c. Also fixed crash with invalid -color
2682 just like Python's -c. Also fixed crash with invalid -color
2682 option value at startup. Thanks to Will French
2683 option value at startup. Thanks to Will French
2683 <wfrench-AT-bestweb.net> for the bug report.
2684 <wfrench-AT-bestweb.net> for the bug report.
2684
2685
2685 2003-05-09 Fernando Perez <fperez@colorado.edu>
2686 2003-05-09 Fernando Perez <fperez@colorado.edu>
2686
2687
2687 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2688 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2688 to EvalDict (it's a mapping, after all) and simplified its code
2689 to EvalDict (it's a mapping, after all) and simplified its code
2689 quite a bit, after a nice discussion on c.l.py where Gustavo
2690 quite a bit, after a nice discussion on c.l.py where Gustavo
2690 Córdova <gcordova-AT-sismex.com> suggested the new version.
2691 Córdova <gcordova-AT-sismex.com> suggested the new version.
2691
2692
2692 2003-04-30 Fernando Perez <fperez@colorado.edu>
2693 2003-04-30 Fernando Perez <fperez@colorado.edu>
2693
2694
2694 * IPython/genutils.py (timings_out): modified it to reduce its
2695 * IPython/genutils.py (timings_out): modified it to reduce its
2695 overhead in the common reps==1 case.
2696 overhead in the common reps==1 case.
2696
2697
2697 2003-04-29 Fernando Perez <fperez@colorado.edu>
2698 2003-04-29 Fernando Perez <fperez@colorado.edu>
2698
2699
2699 * IPython/genutils.py (timings_out): Modified to use the resource
2700 * IPython/genutils.py (timings_out): Modified to use the resource
2700 module, which avoids the wraparound problems of time.clock().
2701 module, which avoids the wraparound problems of time.clock().
2701
2702
2702 2003-04-17 *** Released version 0.2.15pre4
2703 2003-04-17 *** Released version 0.2.15pre4
2703
2704
2704 2003-04-17 Fernando Perez <fperez@colorado.edu>
2705 2003-04-17 Fernando Perez <fperez@colorado.edu>
2705
2706
2706 * setup.py (scriptfiles): Split windows-specific stuff over to a
2707 * setup.py (scriptfiles): Split windows-specific stuff over to a
2707 separate file, in an attempt to have a Windows GUI installer.
2708 separate file, in an attempt to have a Windows GUI installer.
2708 That didn't work, but part of the groundwork is done.
2709 That didn't work, but part of the groundwork is done.
2709
2710
2710 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2711 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2711 indent/unindent with 4 spaces. Particularly useful in combination
2712 indent/unindent with 4 spaces. Particularly useful in combination
2712 with the new auto-indent option.
2713 with the new auto-indent option.
2713
2714
2714 2003-04-16 Fernando Perez <fperez@colorado.edu>
2715 2003-04-16 Fernando Perez <fperez@colorado.edu>
2715
2716
2716 * IPython/Magic.py: various replacements of self.rc for
2717 * IPython/Magic.py: various replacements of self.rc for
2717 self.shell.rc. A lot more remains to be done to fully disentangle
2718 self.shell.rc. A lot more remains to be done to fully disentangle
2718 this class from the main Shell class.
2719 this class from the main Shell class.
2719
2720
2720 * IPython/GnuplotRuntime.py: added checks for mouse support so
2721 * IPython/GnuplotRuntime.py: added checks for mouse support so
2721 that we don't try to enable it if the current gnuplot doesn't
2722 that we don't try to enable it if the current gnuplot doesn't
2722 really support it. Also added checks so that we don't try to
2723 really support it. Also added checks so that we don't try to
2723 enable persist under Windows (where Gnuplot doesn't recognize the
2724 enable persist under Windows (where Gnuplot doesn't recognize the
2724 option).
2725 option).
2725
2726
2726 * IPython/iplib.py (InteractiveShell.interact): Added optional
2727 * IPython/iplib.py (InteractiveShell.interact): Added optional
2727 auto-indenting code, after a patch by King C. Shu
2728 auto-indenting code, after a patch by King C. Shu
2728 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2729 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2729 get along well with pasting indented code. If I ever figure out
2730 get along well with pasting indented code. If I ever figure out
2730 how to make that part go well, it will become on by default.
2731 how to make that part go well, it will become on by default.
2731
2732
2732 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2733 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2733 crash ipython if there was an unmatched '%' in the user's prompt
2734 crash ipython if there was an unmatched '%' in the user's prompt
2734 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2735 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2735
2736
2736 * IPython/iplib.py (InteractiveShell.interact): removed the
2737 * IPython/iplib.py (InteractiveShell.interact): removed the
2737 ability to ask the user whether he wants to crash or not at the
2738 ability to ask the user whether he wants to crash or not at the
2738 'last line' exception handler. Calling functions at that point
2739 'last line' exception handler. Calling functions at that point
2739 changes the stack, and the error reports would have incorrect
2740 changes the stack, and the error reports would have incorrect
2740 tracebacks.
2741 tracebacks.
2741
2742
2742 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2743 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2743 pass through a peger a pretty-printed form of any object. After a
2744 pass through a peger a pretty-printed form of any object. After a
2744 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2745 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2745
2746
2746 2003-04-14 Fernando Perez <fperez@colorado.edu>
2747 2003-04-14 Fernando Perez <fperez@colorado.edu>
2747
2748
2748 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2749 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2749 all files in ~ would be modified at first install (instead of
2750 all files in ~ would be modified at first install (instead of
2750 ~/.ipython). This could be potentially disastrous, as the
2751 ~/.ipython). This could be potentially disastrous, as the
2751 modification (make line-endings native) could damage binary files.
2752 modification (make line-endings native) could damage binary files.
2752
2753
2753 2003-04-10 Fernando Perez <fperez@colorado.edu>
2754 2003-04-10 Fernando Perez <fperez@colorado.edu>
2754
2755
2755 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2756 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2756 handle only lines which are invalid python. This now means that
2757 handle only lines which are invalid python. This now means that
2757 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2758 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2758 for the bug report.
2759 for the bug report.
2759
2760
2760 2003-04-01 Fernando Perez <fperez@colorado.edu>
2761 2003-04-01 Fernando Perez <fperez@colorado.edu>
2761
2762
2762 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2763 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2763 where failing to set sys.last_traceback would crash pdb.pm().
2764 where failing to set sys.last_traceback would crash pdb.pm().
2764 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2765 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2765 report.
2766 report.
2766
2767
2767 2003-03-25 Fernando Perez <fperez@colorado.edu>
2768 2003-03-25 Fernando Perez <fperez@colorado.edu>
2768
2769
2769 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2770 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2770 before printing it (it had a lot of spurious blank lines at the
2771 before printing it (it had a lot of spurious blank lines at the
2771 end).
2772 end).
2772
2773
2773 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2774 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2774 output would be sent 21 times! Obviously people don't use this
2775 output would be sent 21 times! Obviously people don't use this
2775 too often, or I would have heard about it.
2776 too often, or I would have heard about it.
2776
2777
2777 2003-03-24 Fernando Perez <fperez@colorado.edu>
2778 2003-03-24 Fernando Perez <fperez@colorado.edu>
2778
2779
2779 * setup.py (scriptfiles): renamed the data_files parameter from
2780 * setup.py (scriptfiles): renamed the data_files parameter from
2780 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2781 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2781 for the patch.
2782 for the patch.
2782
2783
2783 2003-03-20 Fernando Perez <fperez@colorado.edu>
2784 2003-03-20 Fernando Perez <fperez@colorado.edu>
2784
2785
2785 * IPython/genutils.py (error): added error() and fatal()
2786 * IPython/genutils.py (error): added error() and fatal()
2786 functions.
2787 functions.
2787
2788
2788 2003-03-18 *** Released version 0.2.15pre3
2789 2003-03-18 *** Released version 0.2.15pre3
2789
2790
2790 2003-03-18 Fernando Perez <fperez@colorado.edu>
2791 2003-03-18 Fernando Perez <fperez@colorado.edu>
2791
2792
2792 * setupext/install_data_ext.py
2793 * setupext/install_data_ext.py
2793 (install_data_ext.initialize_options): Class contributed by Jack
2794 (install_data_ext.initialize_options): Class contributed by Jack
2794 Moffit for fixing the old distutils hack. He is sending this to
2795 Moffit for fixing the old distutils hack. He is sending this to
2795 the distutils folks so in the future we may not need it as a
2796 the distutils folks so in the future we may not need it as a
2796 private fix.
2797 private fix.
2797
2798
2798 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2799 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2799 changes for Debian packaging. See his patch for full details.
2800 changes for Debian packaging. See his patch for full details.
2800 The old distutils hack of making the ipythonrc* files carry a
2801 The old distutils hack of making the ipythonrc* files carry a
2801 bogus .py extension is gone, at last. Examples were moved to a
2802 bogus .py extension is gone, at last. Examples were moved to a
2802 separate subdir under doc/, and the separate executable scripts
2803 separate subdir under doc/, and the separate executable scripts
2803 now live in their own directory. Overall a great cleanup. The
2804 now live in their own directory. Overall a great cleanup. The
2804 manual was updated to use the new files, and setup.py has been
2805 manual was updated to use the new files, and setup.py has been
2805 fixed for this setup.
2806 fixed for this setup.
2806
2807
2807 * IPython/PyColorize.py (Parser.usage): made non-executable and
2808 * IPython/PyColorize.py (Parser.usage): made non-executable and
2808 created a pycolor wrapper around it to be included as a script.
2809 created a pycolor wrapper around it to be included as a script.
2809
2810
2810 2003-03-12 *** Released version 0.2.15pre2
2811 2003-03-12 *** Released version 0.2.15pre2
2811
2812
2812 2003-03-12 Fernando Perez <fperez@colorado.edu>
2813 2003-03-12 Fernando Perez <fperez@colorado.edu>
2813
2814
2814 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2815 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2815 long-standing problem with garbage characters in some terminals.
2816 long-standing problem with garbage characters in some terminals.
2816 The issue was really that the \001 and \002 escapes must _only_ be
2817 The issue was really that the \001 and \002 escapes must _only_ be
2817 passed to input prompts (which call readline), but _never_ to
2818 passed to input prompts (which call readline), but _never_ to
2818 normal text to be printed on screen. I changed ColorANSI to have
2819 normal text to be printed on screen. I changed ColorANSI to have
2819 two classes: TermColors and InputTermColors, each with the
2820 two classes: TermColors and InputTermColors, each with the
2820 appropriate escapes for input prompts or normal text. The code in
2821 appropriate escapes for input prompts or normal text. The code in
2821 Prompts.py got slightly more complicated, but this very old and
2822 Prompts.py got slightly more complicated, but this very old and
2822 annoying bug is finally fixed.
2823 annoying bug is finally fixed.
2823
2824
2824 All the credit for nailing down the real origin of this problem
2825 All the credit for nailing down the real origin of this problem
2825 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2826 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2826 *Many* thanks to him for spending quite a bit of effort on this.
2827 *Many* thanks to him for spending quite a bit of effort on this.
2827
2828
2828 2003-03-05 *** Released version 0.2.15pre1
2829 2003-03-05 *** Released version 0.2.15pre1
2829
2830
2830 2003-03-03 Fernando Perez <fperez@colorado.edu>
2831 2003-03-03 Fernando Perez <fperez@colorado.edu>
2831
2832
2832 * IPython/FakeModule.py: Moved the former _FakeModule to a
2833 * IPython/FakeModule.py: Moved the former _FakeModule to a
2833 separate file, because it's also needed by Magic (to fix a similar
2834 separate file, because it's also needed by Magic (to fix a similar
2834 pickle-related issue in @run).
2835 pickle-related issue in @run).
2835
2836
2836 2003-03-02 Fernando Perez <fperez@colorado.edu>
2837 2003-03-02 Fernando Perez <fperez@colorado.edu>
2837
2838
2838 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2839 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2839 the autocall option at runtime.
2840 the autocall option at runtime.
2840 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2841 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2841 across Magic.py to start separating Magic from InteractiveShell.
2842 across Magic.py to start separating Magic from InteractiveShell.
2842 (Magic._ofind): Fixed to return proper namespace for dotted
2843 (Magic._ofind): Fixed to return proper namespace for dotted
2843 names. Before, a dotted name would always return 'not currently
2844 names. Before, a dotted name would always return 'not currently
2844 defined', because it would find the 'parent'. s.x would be found,
2845 defined', because it would find the 'parent'. s.x would be found,
2845 but since 'x' isn't defined by itself, it would get confused.
2846 but since 'x' isn't defined by itself, it would get confused.
2846 (Magic.magic_run): Fixed pickling problems reported by Ralf
2847 (Magic.magic_run): Fixed pickling problems reported by Ralf
2847 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2848 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2848 that I'd used when Mike Heeter reported similar issues at the
2849 that I'd used when Mike Heeter reported similar issues at the
2849 top-level, but now for @run. It boils down to injecting the
2850 top-level, but now for @run. It boils down to injecting the
2850 namespace where code is being executed with something that looks
2851 namespace where code is being executed with something that looks
2851 enough like a module to fool pickle.dump(). Since a pickle stores
2852 enough like a module to fool pickle.dump(). Since a pickle stores
2852 a named reference to the importing module, we need this for
2853 a named reference to the importing module, we need this for
2853 pickles to save something sensible.
2854 pickles to save something sensible.
2854
2855
2855 * IPython/ipmaker.py (make_IPython): added an autocall option.
2856 * IPython/ipmaker.py (make_IPython): added an autocall option.
2856
2857
2857 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2858 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2858 the auto-eval code. Now autocalling is an option, and the code is
2859 the auto-eval code. Now autocalling is an option, and the code is
2859 also vastly safer. There is no more eval() involved at all.
2860 also vastly safer. There is no more eval() involved at all.
2860
2861
2861 2003-03-01 Fernando Perez <fperez@colorado.edu>
2862 2003-03-01 Fernando Perez <fperez@colorado.edu>
2862
2863
2863 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2864 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2864 dict with named keys instead of a tuple.
2865 dict with named keys instead of a tuple.
2865
2866
2866 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2867 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2867
2868
2868 * setup.py (make_shortcut): Fixed message about directories
2869 * setup.py (make_shortcut): Fixed message about directories
2869 created during Windows installation (the directories were ok, just
2870 created during Windows installation (the directories were ok, just
2870 the printed message was misleading). Thanks to Chris Liechti
2871 the printed message was misleading). Thanks to Chris Liechti
2871 <cliechti-AT-gmx.net> for the heads up.
2872 <cliechti-AT-gmx.net> for the heads up.
2872
2873
2873 2003-02-21 Fernando Perez <fperez@colorado.edu>
2874 2003-02-21 Fernando Perez <fperez@colorado.edu>
2874
2875
2875 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2876 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2876 of ValueError exception when checking for auto-execution. This
2877 of ValueError exception when checking for auto-execution. This
2877 one is raised by things like Numeric arrays arr.flat when the
2878 one is raised by things like Numeric arrays arr.flat when the
2878 array is non-contiguous.
2879 array is non-contiguous.
2879
2880
2880 2003-01-31 Fernando Perez <fperez@colorado.edu>
2881 2003-01-31 Fernando Perez <fperez@colorado.edu>
2881
2882
2882 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2883 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2883 not return any value at all (even though the command would get
2884 not return any value at all (even though the command would get
2884 executed).
2885 executed).
2885 (xsys): Flush stdout right after printing the command to ensure
2886 (xsys): Flush stdout right after printing the command to ensure
2886 proper ordering of commands and command output in the total
2887 proper ordering of commands and command output in the total
2887 output.
2888 output.
2888 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2889 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2889 system/getoutput as defaults. The old ones are kept for
2890 system/getoutput as defaults. The old ones are kept for
2890 compatibility reasons, so no code which uses this library needs
2891 compatibility reasons, so no code which uses this library needs
2891 changing.
2892 changing.
2892
2893
2893 2003-01-27 *** Released version 0.2.14
2894 2003-01-27 *** Released version 0.2.14
2894
2895
2895 2003-01-25 Fernando Perez <fperez@colorado.edu>
2896 2003-01-25 Fernando Perez <fperez@colorado.edu>
2896
2897
2897 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2898 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2898 functions defined in previous edit sessions could not be re-edited
2899 functions defined in previous edit sessions could not be re-edited
2899 (because the temp files were immediately removed). Now temp files
2900 (because the temp files were immediately removed). Now temp files
2900 are removed only at IPython's exit.
2901 are removed only at IPython's exit.
2901 (Magic.magic_run): Improved @run to perform shell-like expansions
2902 (Magic.magic_run): Improved @run to perform shell-like expansions
2902 on its arguments (~users and $VARS). With this, @run becomes more
2903 on its arguments (~users and $VARS). With this, @run becomes more
2903 like a normal command-line.
2904 like a normal command-line.
2904
2905
2905 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2906 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2906 bugs related to embedding and cleaned up that code. A fairly
2907 bugs related to embedding and cleaned up that code. A fairly
2907 important one was the impossibility to access the global namespace
2908 important one was the impossibility to access the global namespace
2908 through the embedded IPython (only local variables were visible).
2909 through the embedded IPython (only local variables were visible).
2909
2910
2910 2003-01-14 Fernando Perez <fperez@colorado.edu>
2911 2003-01-14 Fernando Perez <fperez@colorado.edu>
2911
2912
2912 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2913 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2913 auto-calling to be a bit more conservative. Now it doesn't get
2914 auto-calling to be a bit more conservative. Now it doesn't get
2914 triggered if any of '!=()<>' are in the rest of the input line, to
2915 triggered if any of '!=()<>' are in the rest of the input line, to
2915 allow comparing callables. Thanks to Alex for the heads up.
2916 allow comparing callables. Thanks to Alex for the heads up.
2916
2917
2917 2003-01-07 Fernando Perez <fperez@colorado.edu>
2918 2003-01-07 Fernando Perez <fperez@colorado.edu>
2918
2919
2919 * IPython/genutils.py (page): fixed estimation of the number of
2920 * IPython/genutils.py (page): fixed estimation of the number of
2920 lines in a string to be paged to simply count newlines. This
2921 lines in a string to be paged to simply count newlines. This
2921 prevents over-guessing due to embedded escape sequences. A better
2922 prevents over-guessing due to embedded escape sequences. A better
2922 long-term solution would involve stripping out the control chars
2923 long-term solution would involve stripping out the control chars
2923 for the count, but it's potentially so expensive I just don't
2924 for the count, but it's potentially so expensive I just don't
2924 think it's worth doing.
2925 think it's worth doing.
2925
2926
2926 2002-12-19 *** Released version 0.2.14pre50
2927 2002-12-19 *** Released version 0.2.14pre50
2927
2928
2928 2002-12-19 Fernando Perez <fperez@colorado.edu>
2929 2002-12-19 Fernando Perez <fperez@colorado.edu>
2929
2930
2930 * tools/release (version): Changed release scripts to inform
2931 * tools/release (version): Changed release scripts to inform
2931 Andrea and build a NEWS file with a list of recent changes.
2932 Andrea and build a NEWS file with a list of recent changes.
2932
2933
2933 * IPython/ColorANSI.py (__all__): changed terminal detection
2934 * IPython/ColorANSI.py (__all__): changed terminal detection
2934 code. Seems to work better for xterms without breaking
2935 code. Seems to work better for xterms without breaking
2935 konsole. Will need more testing to determine if WinXP and Mac OSX
2936 konsole. Will need more testing to determine if WinXP and Mac OSX
2936 also work ok.
2937 also work ok.
2937
2938
2938 2002-12-18 *** Released version 0.2.14pre49
2939 2002-12-18 *** Released version 0.2.14pre49
2939
2940
2940 2002-12-18 Fernando Perez <fperez@colorado.edu>
2941 2002-12-18 Fernando Perez <fperez@colorado.edu>
2941
2942
2942 * Docs: added new info about Mac OSX, from Andrea.
2943 * Docs: added new info about Mac OSX, from Andrea.
2943
2944
2944 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2945 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2945 allow direct plotting of python strings whose format is the same
2946 allow direct plotting of python strings whose format is the same
2946 of gnuplot data files.
2947 of gnuplot data files.
2947
2948
2948 2002-12-16 Fernando Perez <fperez@colorado.edu>
2949 2002-12-16 Fernando Perez <fperez@colorado.edu>
2949
2950
2950 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2951 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2951 value of exit question to be acknowledged.
2952 value of exit question to be acknowledged.
2952
2953
2953 2002-12-03 Fernando Perez <fperez@colorado.edu>
2954 2002-12-03 Fernando Perez <fperez@colorado.edu>
2954
2955
2955 * IPython/ipmaker.py: removed generators, which had been added
2956 * IPython/ipmaker.py: removed generators, which had been added
2956 by mistake in an earlier debugging run. This was causing trouble
2957 by mistake in an earlier debugging run. This was causing trouble
2957 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2958 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2958 for pointing this out.
2959 for pointing this out.
2959
2960
2960 2002-11-17 Fernando Perez <fperez@colorado.edu>
2961 2002-11-17 Fernando Perez <fperez@colorado.edu>
2961
2962
2962 * Manual: updated the Gnuplot section.
2963 * Manual: updated the Gnuplot section.
2963
2964
2964 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2965 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2965 a much better split of what goes in Runtime and what goes in
2966 a much better split of what goes in Runtime and what goes in
2966 Interactive.
2967 Interactive.
2967
2968
2968 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2969 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2969 being imported from iplib.
2970 being imported from iplib.
2970
2971
2971 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2972 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2972 for command-passing. Now the global Gnuplot instance is called
2973 for command-passing. Now the global Gnuplot instance is called
2973 'gp' instead of 'g', which was really a far too fragile and
2974 'gp' instead of 'g', which was really a far too fragile and
2974 common name.
2975 common name.
2975
2976
2976 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2977 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2977 bounding boxes generated by Gnuplot for square plots.
2978 bounding boxes generated by Gnuplot for square plots.
2978
2979
2979 * IPython/genutils.py (popkey): new function added. I should
2980 * IPython/genutils.py (popkey): new function added. I should
2980 suggest this on c.l.py as a dict method, it seems useful.
2981 suggest this on c.l.py as a dict method, it seems useful.
2981
2982
2982 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2983 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2983 to transparently handle PostScript generation. MUCH better than
2984 to transparently handle PostScript generation. MUCH better than
2984 the previous plot_eps/replot_eps (which I removed now). The code
2985 the previous plot_eps/replot_eps (which I removed now). The code
2985 is also fairly clean and well documented now (including
2986 is also fairly clean and well documented now (including
2986 docstrings).
2987 docstrings).
2987
2988
2988 2002-11-13 Fernando Perez <fperez@colorado.edu>
2989 2002-11-13 Fernando Perez <fperez@colorado.edu>
2989
2990
2990 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2991 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2991 (inconsistent with options).
2992 (inconsistent with options).
2992
2993
2993 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2994 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2994 manually disabled, I don't know why. Fixed it.
2995 manually disabled, I don't know why. Fixed it.
2995 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2996 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2996 eps output.
2997 eps output.
2997
2998
2998 2002-11-12 Fernando Perez <fperez@colorado.edu>
2999 2002-11-12 Fernando Perez <fperez@colorado.edu>
2999
3000
3000 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3001 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3001 don't propagate up to caller. Fixes crash reported by François
3002 don't propagate up to caller. Fixes crash reported by François
3002 Pinard.
3003 Pinard.
3003
3004
3004 2002-11-09 Fernando Perez <fperez@colorado.edu>
3005 2002-11-09 Fernando Perez <fperez@colorado.edu>
3005
3006
3006 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3007 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3007 history file for new users.
3008 history file for new users.
3008 (make_IPython): fixed bug where initial install would leave the
3009 (make_IPython): fixed bug where initial install would leave the
3009 user running in the .ipython dir.
3010 user running in the .ipython dir.
3010 (make_IPython): fixed bug where config dir .ipython would be
3011 (make_IPython): fixed bug where config dir .ipython would be
3011 created regardless of the given -ipythondir option. Thanks to Cory
3012 created regardless of the given -ipythondir option. Thanks to Cory
3012 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3013 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3013
3014
3014 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3015 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3015 type confirmations. Will need to use it in all of IPython's code
3016 type confirmations. Will need to use it in all of IPython's code
3016 consistently.
3017 consistently.
3017
3018
3018 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3019 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3019 context to print 31 lines instead of the default 5. This will make
3020 context to print 31 lines instead of the default 5. This will make
3020 the crash reports extremely detailed in case the problem is in
3021 the crash reports extremely detailed in case the problem is in
3021 libraries I don't have access to.
3022 libraries I don't have access to.
3022
3023
3023 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3024 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3024 line of defense' code to still crash, but giving users fair
3025 line of defense' code to still crash, but giving users fair
3025 warning. I don't want internal errors to go unreported: if there's
3026 warning. I don't want internal errors to go unreported: if there's
3026 an internal problem, IPython should crash and generate a full
3027 an internal problem, IPython should crash and generate a full
3027 report.
3028 report.
3028
3029
3029 2002-11-08 Fernando Perez <fperez@colorado.edu>
3030 2002-11-08 Fernando Perez <fperez@colorado.edu>
3030
3031
3031 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3032 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3032 otherwise uncaught exceptions which can appear if people set
3033 otherwise uncaught exceptions which can appear if people set
3033 sys.stdout to something badly broken. Thanks to a crash report
3034 sys.stdout to something badly broken. Thanks to a crash report
3034 from henni-AT-mail.brainbot.com.
3035 from henni-AT-mail.brainbot.com.
3035
3036
3036 2002-11-04 Fernando Perez <fperez@colorado.edu>
3037 2002-11-04 Fernando Perez <fperez@colorado.edu>
3037
3038
3038 * IPython/iplib.py (InteractiveShell.interact): added
3039 * IPython/iplib.py (InteractiveShell.interact): added
3039 __IPYTHON__active to the builtins. It's a flag which goes on when
3040 __IPYTHON__active to the builtins. It's a flag which goes on when
3040 the interaction starts and goes off again when it stops. This
3041 the interaction starts and goes off again when it stops. This
3041 allows embedding code to detect being inside IPython. Before this
3042 allows embedding code to detect being inside IPython. Before this
3042 was done via __IPYTHON__, but that only shows that an IPython
3043 was done via __IPYTHON__, but that only shows that an IPython
3043 instance has been created.
3044 instance has been created.
3044
3045
3045 * IPython/Magic.py (Magic.magic_env): I realized that in a
3046 * IPython/Magic.py (Magic.magic_env): I realized that in a
3046 UserDict, instance.data holds the data as a normal dict. So I
3047 UserDict, instance.data holds the data as a normal dict. So I
3047 modified @env to return os.environ.data instead of rebuilding a
3048 modified @env to return os.environ.data instead of rebuilding a
3048 dict by hand.
3049 dict by hand.
3049
3050
3050 2002-11-02 Fernando Perez <fperez@colorado.edu>
3051 2002-11-02 Fernando Perez <fperez@colorado.edu>
3051
3052
3052 * IPython/genutils.py (warn): changed so that level 1 prints no
3053 * IPython/genutils.py (warn): changed so that level 1 prints no
3053 header. Level 2 is now the default (with 'WARNING' header, as
3054 header. Level 2 is now the default (with 'WARNING' header, as
3054 before). I think I tracked all places where changes were needed in
3055 before). I think I tracked all places where changes were needed in
3055 IPython, but outside code using the old level numbering may have
3056 IPython, but outside code using the old level numbering may have
3056 broken.
3057 broken.
3057
3058
3058 * IPython/iplib.py (InteractiveShell.runcode): added this to
3059 * IPython/iplib.py (InteractiveShell.runcode): added this to
3059 handle the tracebacks in SystemExit traps correctly. The previous
3060 handle the tracebacks in SystemExit traps correctly. The previous
3060 code (through interact) was printing more of the stack than
3061 code (through interact) was printing more of the stack than
3061 necessary, showing IPython internal code to the user.
3062 necessary, showing IPython internal code to the user.
3062
3063
3063 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3064 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3064 default. Now that the default at the confirmation prompt is yes,
3065 default. Now that the default at the confirmation prompt is yes,
3065 it's not so intrusive. François' argument that ipython sessions
3066 it's not so intrusive. François' argument that ipython sessions
3066 tend to be complex enough not to lose them from an accidental C-d,
3067 tend to be complex enough not to lose them from an accidental C-d,
3067 is a valid one.
3068 is a valid one.
3068
3069
3069 * IPython/iplib.py (InteractiveShell.interact): added a
3070 * IPython/iplib.py (InteractiveShell.interact): added a
3070 showtraceback() call to the SystemExit trap, and modified the exit
3071 showtraceback() call to the SystemExit trap, and modified the exit
3071 confirmation to have yes as the default.
3072 confirmation to have yes as the default.
3072
3073
3073 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3074 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3074 this file. It's been gone from the code for a long time, this was
3075 this file. It's been gone from the code for a long time, this was
3075 simply leftover junk.
3076 simply leftover junk.
3076
3077
3077 2002-11-01 Fernando Perez <fperez@colorado.edu>
3078 2002-11-01 Fernando Perez <fperez@colorado.edu>
3078
3079
3079 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3080 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3080 added. If set, IPython now traps EOF and asks for
3081 added. If set, IPython now traps EOF and asks for
3081 confirmation. After a request by François Pinard.
3082 confirmation. After a request by François Pinard.
3082
3083
3083 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3084 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3084 of @abort, and with a new (better) mechanism for handling the
3085 of @abort, and with a new (better) mechanism for handling the
3085 exceptions.
3086 exceptions.
3086
3087
3087 2002-10-27 Fernando Perez <fperez@colorado.edu>
3088 2002-10-27 Fernando Perez <fperez@colorado.edu>
3088
3089
3089 * IPython/usage.py (__doc__): updated the --help information and
3090 * IPython/usage.py (__doc__): updated the --help information and
3090 the ipythonrc file to indicate that -log generates
3091 the ipythonrc file to indicate that -log generates
3091 ./ipython.log. Also fixed the corresponding info in @logstart.
3092 ./ipython.log. Also fixed the corresponding info in @logstart.
3092 This and several other fixes in the manuals thanks to reports by
3093 This and several other fixes in the manuals thanks to reports by
3093 François Pinard <pinard-AT-iro.umontreal.ca>.
3094 François Pinard <pinard-AT-iro.umontreal.ca>.
3094
3095
3095 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3096 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3096 refer to @logstart (instead of @log, which doesn't exist).
3097 refer to @logstart (instead of @log, which doesn't exist).
3097
3098
3098 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3099 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3099 AttributeError crash. Thanks to Christopher Armstrong
3100 AttributeError crash. Thanks to Christopher Armstrong
3100 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3101 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3101 introduced recently (in 0.2.14pre37) with the fix to the eval
3102 introduced recently (in 0.2.14pre37) with the fix to the eval
3102 problem mentioned below.
3103 problem mentioned below.
3103
3104
3104 2002-10-17 Fernando Perez <fperez@colorado.edu>
3105 2002-10-17 Fernando Perez <fperez@colorado.edu>
3105
3106
3106 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3107 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3107 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3108 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3108
3109
3109 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3110 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3110 this function to fix a problem reported by Alex Schmolck. He saw
3111 this function to fix a problem reported by Alex Schmolck. He saw
3111 it with list comprehensions and generators, which were getting
3112 it with list comprehensions and generators, which were getting
3112 called twice. The real problem was an 'eval' call in testing for
3113 called twice. The real problem was an 'eval' call in testing for
3113 automagic which was evaluating the input line silently.
3114 automagic which was evaluating the input line silently.
3114
3115
3115 This is a potentially very nasty bug, if the input has side
3116 This is a potentially very nasty bug, if the input has side
3116 effects which must not be repeated. The code is much cleaner now,
3117 effects which must not be repeated. The code is much cleaner now,
3117 without any blanket 'except' left and with a regexp test for
3118 without any blanket 'except' left and with a regexp test for
3118 actual function names.
3119 actual function names.
3119
3120
3120 But an eval remains, which I'm not fully comfortable with. I just
3121 But an eval remains, which I'm not fully comfortable with. I just
3121 don't know how to find out if an expression could be a callable in
3122 don't know how to find out if an expression could be a callable in
3122 the user's namespace without doing an eval on the string. However
3123 the user's namespace without doing an eval on the string. However
3123 that string is now much more strictly checked so that no code
3124 that string is now much more strictly checked so that no code
3124 slips by, so the eval should only happen for things that can
3125 slips by, so the eval should only happen for things that can
3125 really be only function/method names.
3126 really be only function/method names.
3126
3127
3127 2002-10-15 Fernando Perez <fperez@colorado.edu>
3128 2002-10-15 Fernando Perez <fperez@colorado.edu>
3128
3129
3129 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3130 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3130 OSX information to main manual, removed README_Mac_OSX file from
3131 OSX information to main manual, removed README_Mac_OSX file from
3131 distribution. Also updated credits for recent additions.
3132 distribution. Also updated credits for recent additions.
3132
3133
3133 2002-10-10 Fernando Perez <fperez@colorado.edu>
3134 2002-10-10 Fernando Perez <fperez@colorado.edu>
3134
3135
3135 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3136 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3136 terminal-related issues. Many thanks to Andrea Riciputi
3137 terminal-related issues. Many thanks to Andrea Riciputi
3137 <andrea.riciputi-AT-libero.it> for writing it.
3138 <andrea.riciputi-AT-libero.it> for writing it.
3138
3139
3139 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3140 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3140 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3141 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3141
3142
3142 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3143 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3143 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3144 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3144 <syver-en-AT-online.no> who both submitted patches for this problem.
3145 <syver-en-AT-online.no> who both submitted patches for this problem.
3145
3146
3146 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3147 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3147 global embedding to make sure that things don't overwrite user
3148 global embedding to make sure that things don't overwrite user
3148 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3149 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3149
3150
3150 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3151 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3151 compatibility. Thanks to Hayden Callow
3152 compatibility. Thanks to Hayden Callow
3152 <h.callow-AT-elec.canterbury.ac.nz>
3153 <h.callow-AT-elec.canterbury.ac.nz>
3153
3154
3154 2002-10-04 Fernando Perez <fperez@colorado.edu>
3155 2002-10-04 Fernando Perez <fperez@colorado.edu>
3155
3156
3156 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3157 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3157 Gnuplot.File objects.
3158 Gnuplot.File objects.
3158
3159
3159 2002-07-23 Fernando Perez <fperez@colorado.edu>
3160 2002-07-23 Fernando Perez <fperez@colorado.edu>
3160
3161
3161 * IPython/genutils.py (timing): Added timings() and timing() for
3162 * IPython/genutils.py (timing): Added timings() and timing() for
3162 quick access to the most commonly needed data, the execution
3163 quick access to the most commonly needed data, the execution
3163 times. Old timing() renamed to timings_out().
3164 times. Old timing() renamed to timings_out().
3164
3165
3165 2002-07-18 Fernando Perez <fperez@colorado.edu>
3166 2002-07-18 Fernando Perez <fperez@colorado.edu>
3166
3167
3167 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3168 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3168 bug with nested instances disrupting the parent's tab completion.
3169 bug with nested instances disrupting the parent's tab completion.
3169
3170
3170 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3171 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3171 all_completions code to begin the emacs integration.
3172 all_completions code to begin the emacs integration.
3172
3173
3173 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3174 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3174 argument to allow titling individual arrays when plotting.
3175 argument to allow titling individual arrays when plotting.
3175
3176
3176 2002-07-15 Fernando Perez <fperez@colorado.edu>
3177 2002-07-15 Fernando Perez <fperez@colorado.edu>
3177
3178
3178 * setup.py (make_shortcut): changed to retrieve the value of
3179 * setup.py (make_shortcut): changed to retrieve the value of
3179 'Program Files' directory from the registry (this value changes in
3180 'Program Files' directory from the registry (this value changes in
3180 non-english versions of Windows). Thanks to Thomas Fanslau
3181 non-english versions of Windows). Thanks to Thomas Fanslau
3181 <tfanslau-AT-gmx.de> for the report.
3182 <tfanslau-AT-gmx.de> for the report.
3182
3183
3183 2002-07-10 Fernando Perez <fperez@colorado.edu>
3184 2002-07-10 Fernando Perez <fperez@colorado.edu>
3184
3185
3185 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3186 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3186 a bug in pdb, which crashes if a line with only whitespace is
3187 a bug in pdb, which crashes if a line with only whitespace is
3187 entered. Bug report submitted to sourceforge.
3188 entered. Bug report submitted to sourceforge.
3188
3189
3189 2002-07-09 Fernando Perez <fperez@colorado.edu>
3190 2002-07-09 Fernando Perez <fperez@colorado.edu>
3190
3191
3191 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3192 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3192 reporting exceptions (it's a bug in inspect.py, I just set a
3193 reporting exceptions (it's a bug in inspect.py, I just set a
3193 workaround).
3194 workaround).
3194
3195
3195 2002-07-08 Fernando Perez <fperez@colorado.edu>
3196 2002-07-08 Fernando Perez <fperez@colorado.edu>
3196
3197
3197 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3198 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3198 __IPYTHON__ in __builtins__ to show up in user_ns.
3199 __IPYTHON__ in __builtins__ to show up in user_ns.
3199
3200
3200 2002-07-03 Fernando Perez <fperez@colorado.edu>
3201 2002-07-03 Fernando Perez <fperez@colorado.edu>
3201
3202
3202 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3203 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3203 name from @gp_set_instance to @gp_set_default.
3204 name from @gp_set_instance to @gp_set_default.
3204
3205
3205 * IPython/ipmaker.py (make_IPython): default editor value set to
3206 * IPython/ipmaker.py (make_IPython): default editor value set to
3206 '0' (a string), to match the rc file. Otherwise will crash when
3207 '0' (a string), to match the rc file. Otherwise will crash when
3207 .strip() is called on it.
3208 .strip() is called on it.
3208
3209
3209
3210
3210 2002-06-28 Fernando Perez <fperez@colorado.edu>
3211 2002-06-28 Fernando Perez <fperez@colorado.edu>
3211
3212
3212 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3213 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3213 of files in current directory when a file is executed via
3214 of files in current directory when a file is executed via
3214 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3215 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3215
3216
3216 * setup.py (manfiles): fix for rpm builds, submitted by RA
3217 * setup.py (manfiles): fix for rpm builds, submitted by RA
3217 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3218 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3218
3219
3219 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3220 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3220 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3221 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3221 string!). A. Schmolck caught this one.
3222 string!). A. Schmolck caught this one.
3222
3223
3223 2002-06-27 Fernando Perez <fperez@colorado.edu>
3224 2002-06-27 Fernando Perez <fperez@colorado.edu>
3224
3225
3225 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3226 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3226 defined files at the cmd line. __name__ wasn't being set to
3227 defined files at the cmd line. __name__ wasn't being set to
3227 __main__.
3228 __main__.
3228
3229
3229 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3230 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3230 regular lists and tuples besides Numeric arrays.
3231 regular lists and tuples besides Numeric arrays.
3231
3232
3232 * IPython/Prompts.py (CachedOutput.__call__): Added output
3233 * IPython/Prompts.py (CachedOutput.__call__): Added output
3233 supression for input ending with ';'. Similar to Mathematica and
3234 supression for input ending with ';'. Similar to Mathematica and
3234 Matlab. The _* vars and Out[] list are still updated, just like
3235 Matlab. The _* vars and Out[] list are still updated, just like
3235 Mathematica behaves.
3236 Mathematica behaves.
3236
3237
3237 2002-06-25 Fernando Perez <fperez@colorado.edu>
3238 2002-06-25 Fernando Perez <fperez@colorado.edu>
3238
3239
3239 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3240 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3240 .ini extensions for profiels under Windows.
3241 .ini extensions for profiels under Windows.
3241
3242
3242 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3243 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3243 string form. Fix contributed by Alexander Schmolck
3244 string form. Fix contributed by Alexander Schmolck
3244 <a.schmolck-AT-gmx.net>
3245 <a.schmolck-AT-gmx.net>
3245
3246
3246 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3247 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3247 pre-configured Gnuplot instance.
3248 pre-configured Gnuplot instance.
3248
3249
3249 2002-06-21 Fernando Perez <fperez@colorado.edu>
3250 2002-06-21 Fernando Perez <fperez@colorado.edu>
3250
3251
3251 * IPython/numutils.py (exp_safe): new function, works around the
3252 * IPython/numutils.py (exp_safe): new function, works around the
3252 underflow problems in Numeric.
3253 underflow problems in Numeric.
3253 (log2): New fn. Safe log in base 2: returns exact integer answer
3254 (log2): New fn. Safe log in base 2: returns exact integer answer
3254 for exact integer powers of 2.
3255 for exact integer powers of 2.
3255
3256
3256 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3257 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3257 properly.
3258 properly.
3258
3259
3259 2002-06-20 Fernando Perez <fperez@colorado.edu>
3260 2002-06-20 Fernando Perez <fperez@colorado.edu>
3260
3261
3261 * IPython/genutils.py (timing): new function like
3262 * IPython/genutils.py (timing): new function like
3262 Mathematica's. Similar to time_test, but returns more info.
3263 Mathematica's. Similar to time_test, but returns more info.
3263
3264
3264 2002-06-18 Fernando Perez <fperez@colorado.edu>
3265 2002-06-18 Fernando Perez <fperez@colorado.edu>
3265
3266
3266 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3267 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3267 according to Mike Heeter's suggestions.
3268 according to Mike Heeter's suggestions.
3268
3269
3269 2002-06-16 Fernando Perez <fperez@colorado.edu>
3270 2002-06-16 Fernando Perez <fperez@colorado.edu>
3270
3271
3271 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3272 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3272 system. GnuplotMagic is gone as a user-directory option. New files
3273 system. GnuplotMagic is gone as a user-directory option. New files
3273 make it easier to use all the gnuplot stuff both from external
3274 make it easier to use all the gnuplot stuff both from external
3274 programs as well as from IPython. Had to rewrite part of
3275 programs as well as from IPython. Had to rewrite part of
3275 hardcopy() b/c of a strange bug: often the ps files simply don't
3276 hardcopy() b/c of a strange bug: often the ps files simply don't
3276 get created, and require a repeat of the command (often several
3277 get created, and require a repeat of the command (often several
3277 times).
3278 times).
3278
3279
3279 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3280 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3280 resolve output channel at call time, so that if sys.stderr has
3281 resolve output channel at call time, so that if sys.stderr has
3281 been redirected by user this gets honored.
3282 been redirected by user this gets honored.
3282
3283
3283 2002-06-13 Fernando Perez <fperez@colorado.edu>
3284 2002-06-13 Fernando Perez <fperez@colorado.edu>
3284
3285
3285 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3286 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3286 IPShell. Kept a copy with the old names to avoid breaking people's
3287 IPShell. Kept a copy with the old names to avoid breaking people's
3287 embedded code.
3288 embedded code.
3288
3289
3289 * IPython/ipython: simplified it to the bare minimum after
3290 * IPython/ipython: simplified it to the bare minimum after
3290 Holger's suggestions. Added info about how to use it in
3291 Holger's suggestions. Added info about how to use it in
3291 PYTHONSTARTUP.
3292 PYTHONSTARTUP.
3292
3293
3293 * IPython/Shell.py (IPythonShell): changed the options passing
3294 * IPython/Shell.py (IPythonShell): changed the options passing
3294 from a string with funky %s replacements to a straight list. Maybe
3295 from a string with funky %s replacements to a straight list. Maybe
3295 a bit more typing, but it follows sys.argv conventions, so there's
3296 a bit more typing, but it follows sys.argv conventions, so there's
3296 less special-casing to remember.
3297 less special-casing to remember.
3297
3298
3298 2002-06-12 Fernando Perez <fperez@colorado.edu>
3299 2002-06-12 Fernando Perez <fperez@colorado.edu>
3299
3300
3300 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3301 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3301 command. Thanks to a suggestion by Mike Heeter.
3302 command. Thanks to a suggestion by Mike Heeter.
3302 (Magic.magic_pfile): added behavior to look at filenames if given
3303 (Magic.magic_pfile): added behavior to look at filenames if given
3303 arg is not a defined object.
3304 arg is not a defined object.
3304 (Magic.magic_save): New @save function to save code snippets. Also
3305 (Magic.magic_save): New @save function to save code snippets. Also
3305 a Mike Heeter idea.
3306 a Mike Heeter idea.
3306
3307
3307 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3308 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3308 plot() and replot(). Much more convenient now, especially for
3309 plot() and replot(). Much more convenient now, especially for
3309 interactive use.
3310 interactive use.
3310
3311
3311 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3312 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3312 filenames.
3313 filenames.
3313
3314
3314 2002-06-02 Fernando Perez <fperez@colorado.edu>
3315 2002-06-02 Fernando Perez <fperez@colorado.edu>
3315
3316
3316 * IPython/Struct.py (Struct.__init__): modified to admit
3317 * IPython/Struct.py (Struct.__init__): modified to admit
3317 initialization via another struct.
3318 initialization via another struct.
3318
3319
3319 * IPython/genutils.py (SystemExec.__init__): New stateful
3320 * IPython/genutils.py (SystemExec.__init__): New stateful
3320 interface to xsys and bq. Useful for writing system scripts.
3321 interface to xsys and bq. Useful for writing system scripts.
3321
3322
3322 2002-05-30 Fernando Perez <fperez@colorado.edu>
3323 2002-05-30 Fernando Perez <fperez@colorado.edu>
3323
3324
3324 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3325 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3325 documents. This will make the user download smaller (it's getting
3326 documents. This will make the user download smaller (it's getting
3326 too big).
3327 too big).
3327
3328
3328 2002-05-29 Fernando Perez <fperez@colorado.edu>
3329 2002-05-29 Fernando Perez <fperez@colorado.edu>
3329
3330
3330 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3331 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3331 fix problems with shelve and pickle. Seems to work, but I don't
3332 fix problems with shelve and pickle. Seems to work, but I don't
3332 know if corner cases break it. Thanks to Mike Heeter
3333 know if corner cases break it. Thanks to Mike Heeter
3333 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3334 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3334
3335
3335 2002-05-24 Fernando Perez <fperez@colorado.edu>
3336 2002-05-24 Fernando Perez <fperez@colorado.edu>
3336
3337
3337 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3338 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3338 macros having broken.
3339 macros having broken.
3339
3340
3340 2002-05-21 Fernando Perez <fperez@colorado.edu>
3341 2002-05-21 Fernando Perez <fperez@colorado.edu>
3341
3342
3342 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3343 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3343 introduced logging bug: all history before logging started was
3344 introduced logging bug: all history before logging started was
3344 being written one character per line! This came from the redesign
3345 being written one character per line! This came from the redesign
3345 of the input history as a special list which slices to strings,
3346 of the input history as a special list which slices to strings,
3346 not to lists.
3347 not to lists.
3347
3348
3348 2002-05-20 Fernando Perez <fperez@colorado.edu>
3349 2002-05-20 Fernando Perez <fperez@colorado.edu>
3349
3350
3350 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3351 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3351 be an attribute of all classes in this module. The design of these
3352 be an attribute of all classes in this module. The design of these
3352 classes needs some serious overhauling.
3353 classes needs some serious overhauling.
3353
3354
3354 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3355 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3355 which was ignoring '_' in option names.
3356 which was ignoring '_' in option names.
3356
3357
3357 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3358 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3358 'Verbose_novars' to 'Context' and made it the new default. It's a
3359 'Verbose_novars' to 'Context' and made it the new default. It's a
3359 bit more readable and also safer than verbose.
3360 bit more readable and also safer than verbose.
3360
3361
3361 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3362 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3362 triple-quoted strings.
3363 triple-quoted strings.
3363
3364
3364 * IPython/OInspect.py (__all__): new module exposing the object
3365 * IPython/OInspect.py (__all__): new module exposing the object
3365 introspection facilities. Now the corresponding magics are dummy
3366 introspection facilities. Now the corresponding magics are dummy
3366 wrappers around this. Having this module will make it much easier
3367 wrappers around this. Having this module will make it much easier
3367 to put these functions into our modified pdb.
3368 to put these functions into our modified pdb.
3368 This new object inspector system uses the new colorizing module,
3369 This new object inspector system uses the new colorizing module,
3369 so source code and other things are nicely syntax highlighted.
3370 so source code and other things are nicely syntax highlighted.
3370
3371
3371 2002-05-18 Fernando Perez <fperez@colorado.edu>
3372 2002-05-18 Fernando Perez <fperez@colorado.edu>
3372
3373
3373 * IPython/ColorANSI.py: Split the coloring tools into a separate
3374 * IPython/ColorANSI.py: Split the coloring tools into a separate
3374 module so I can use them in other code easier (they were part of
3375 module so I can use them in other code easier (they were part of
3375 ultraTB).
3376 ultraTB).
3376
3377
3377 2002-05-17 Fernando Perez <fperez@colorado.edu>
3378 2002-05-17 Fernando Perez <fperez@colorado.edu>
3378
3379
3379 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3380 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3380 fixed it to set the global 'g' also to the called instance, as
3381 fixed it to set the global 'g' also to the called instance, as
3381 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3382 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3382 user's 'g' variables).
3383 user's 'g' variables).
3383
3384
3384 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3385 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3385 global variables (aliases to _ih,_oh) so that users which expect
3386 global variables (aliases to _ih,_oh) so that users which expect
3386 In[5] or Out[7] to work aren't unpleasantly surprised.
3387 In[5] or Out[7] to work aren't unpleasantly surprised.
3387 (InputList.__getslice__): new class to allow executing slices of
3388 (InputList.__getslice__): new class to allow executing slices of
3388 input history directly. Very simple class, complements the use of
3389 input history directly. Very simple class, complements the use of
3389 macros.
3390 macros.
3390
3391
3391 2002-05-16 Fernando Perez <fperez@colorado.edu>
3392 2002-05-16 Fernando Perez <fperez@colorado.edu>
3392
3393
3393 * setup.py (docdirbase): make doc directory be just doc/IPython
3394 * setup.py (docdirbase): make doc directory be just doc/IPython
3394 without version numbers, it will reduce clutter for users.
3395 without version numbers, it will reduce clutter for users.
3395
3396
3396 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3397 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3397 execfile call to prevent possible memory leak. See for details:
3398 execfile call to prevent possible memory leak. See for details:
3398 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3399 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3399
3400
3400 2002-05-15 Fernando Perez <fperez@colorado.edu>
3401 2002-05-15 Fernando Perez <fperez@colorado.edu>
3401
3402
3402 * IPython/Magic.py (Magic.magic_psource): made the object
3403 * IPython/Magic.py (Magic.magic_psource): made the object
3403 introspection names be more standard: pdoc, pdef, pfile and
3404 introspection names be more standard: pdoc, pdef, pfile and
3404 psource. They all print/page their output, and it makes
3405 psource. They all print/page their output, and it makes
3405 remembering them easier. Kept old names for compatibility as
3406 remembering them easier. Kept old names for compatibility as
3406 aliases.
3407 aliases.
3407
3408
3408 2002-05-14 Fernando Perez <fperez@colorado.edu>
3409 2002-05-14 Fernando Perez <fperez@colorado.edu>
3409
3410
3410 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3411 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3411 what the mouse problem was. The trick is to use gnuplot with temp
3412 what the mouse problem was. The trick is to use gnuplot with temp
3412 files and NOT with pipes (for data communication), because having
3413 files and NOT with pipes (for data communication), because having
3413 both pipes and the mouse on is bad news.
3414 both pipes and the mouse on is bad news.
3414
3415
3415 2002-05-13 Fernando Perez <fperez@colorado.edu>
3416 2002-05-13 Fernando Perez <fperez@colorado.edu>
3416
3417
3417 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3418 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3418 bug. Information would be reported about builtins even when
3419 bug. Information would be reported about builtins even when
3419 user-defined functions overrode them.
3420 user-defined functions overrode them.
3420
3421
3421 2002-05-11 Fernando Perez <fperez@colorado.edu>
3422 2002-05-11 Fernando Perez <fperez@colorado.edu>
3422
3423
3423 * IPython/__init__.py (__all__): removed FlexCompleter from
3424 * IPython/__init__.py (__all__): removed FlexCompleter from
3424 __all__ so that things don't fail in platforms without readline.
3425 __all__ so that things don't fail in platforms without readline.
3425
3426
3426 2002-05-10 Fernando Perez <fperez@colorado.edu>
3427 2002-05-10 Fernando Perez <fperez@colorado.edu>
3427
3428
3428 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3429 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3429 it requires Numeric, effectively making Numeric a dependency for
3430 it requires Numeric, effectively making Numeric a dependency for
3430 IPython.
3431 IPython.
3431
3432
3432 * Released 0.2.13
3433 * Released 0.2.13
3433
3434
3434 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3435 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3435 profiler interface. Now all the major options from the profiler
3436 profiler interface. Now all the major options from the profiler
3436 module are directly supported in IPython, both for single
3437 module are directly supported in IPython, both for single
3437 expressions (@prun) and for full programs (@run -p).
3438 expressions (@prun) and for full programs (@run -p).
3438
3439
3439 2002-05-09 Fernando Perez <fperez@colorado.edu>
3440 2002-05-09 Fernando Perez <fperez@colorado.edu>
3440
3441
3441 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3442 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3442 magic properly formatted for screen.
3443 magic properly formatted for screen.
3443
3444
3444 * setup.py (make_shortcut): Changed things to put pdf version in
3445 * setup.py (make_shortcut): Changed things to put pdf version in
3445 doc/ instead of doc/manual (had to change lyxport a bit).
3446 doc/ instead of doc/manual (had to change lyxport a bit).
3446
3447
3447 * IPython/Magic.py (Profile.string_stats): made profile runs go
3448 * IPython/Magic.py (Profile.string_stats): made profile runs go
3448 through pager (they are long and a pager allows searching, saving,
3449 through pager (they are long and a pager allows searching, saving,
3449 etc.)
3450 etc.)
3450
3451
3451 2002-05-08 Fernando Perez <fperez@colorado.edu>
3452 2002-05-08 Fernando Perez <fperez@colorado.edu>
3452
3453
3453 * Released 0.2.12
3454 * Released 0.2.12
3454
3455
3455 2002-05-06 Fernando Perez <fperez@colorado.edu>
3456 2002-05-06 Fernando Perez <fperez@colorado.edu>
3456
3457
3457 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3458 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3458 introduced); 'hist n1 n2' was broken.
3459 introduced); 'hist n1 n2' was broken.
3459 (Magic.magic_pdb): added optional on/off arguments to @pdb
3460 (Magic.magic_pdb): added optional on/off arguments to @pdb
3460 (Magic.magic_run): added option -i to @run, which executes code in
3461 (Magic.magic_run): added option -i to @run, which executes code in
3461 the IPython namespace instead of a clean one. Also added @irun as
3462 the IPython namespace instead of a clean one. Also added @irun as
3462 an alias to @run -i.
3463 an alias to @run -i.
3463
3464
3464 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3465 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3465 fixed (it didn't really do anything, the namespaces were wrong).
3466 fixed (it didn't really do anything, the namespaces were wrong).
3466
3467
3467 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3468 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3468
3469
3469 * IPython/__init__.py (__all__): Fixed package namespace, now
3470 * IPython/__init__.py (__all__): Fixed package namespace, now
3470 'import IPython' does give access to IPython.<all> as
3471 'import IPython' does give access to IPython.<all> as
3471 expected. Also renamed __release__ to Release.
3472 expected. Also renamed __release__ to Release.
3472
3473
3473 * IPython/Debugger.py (__license__): created new Pdb class which
3474 * IPython/Debugger.py (__license__): created new Pdb class which
3474 functions like a drop-in for the normal pdb.Pdb but does NOT
3475 functions like a drop-in for the normal pdb.Pdb but does NOT
3475 import readline by default. This way it doesn't muck up IPython's
3476 import readline by default. This way it doesn't muck up IPython's
3476 readline handling, and now tab-completion finally works in the
3477 readline handling, and now tab-completion finally works in the
3477 debugger -- sort of. It completes things globally visible, but the
3478 debugger -- sort of. It completes things globally visible, but the
3478 completer doesn't track the stack as pdb walks it. That's a bit
3479 completer doesn't track the stack as pdb walks it. That's a bit
3479 tricky, and I'll have to implement it later.
3480 tricky, and I'll have to implement it later.
3480
3481
3481 2002-05-05 Fernando Perez <fperez@colorado.edu>
3482 2002-05-05 Fernando Perez <fperez@colorado.edu>
3482
3483
3483 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3484 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3484 magic docstrings when printed via ? (explicit \'s were being
3485 magic docstrings when printed via ? (explicit \'s were being
3485 printed).
3486 printed).
3486
3487
3487 * IPython/ipmaker.py (make_IPython): fixed namespace
3488 * IPython/ipmaker.py (make_IPython): fixed namespace
3488 identification bug. Now variables loaded via logs or command-line
3489 identification bug. Now variables loaded via logs or command-line
3489 files are recognized in the interactive namespace by @who.
3490 files are recognized in the interactive namespace by @who.
3490
3491
3491 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3492 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3492 log replay system stemming from the string form of Structs.
3493 log replay system stemming from the string form of Structs.
3493
3494
3494 * IPython/Magic.py (Macro.__init__): improved macros to properly
3495 * IPython/Magic.py (Macro.__init__): improved macros to properly
3495 handle magic commands in them.
3496 handle magic commands in them.
3496 (Magic.magic_logstart): usernames are now expanded so 'logstart
3497 (Magic.magic_logstart): usernames are now expanded so 'logstart
3497 ~/mylog' now works.
3498 ~/mylog' now works.
3498
3499
3499 * IPython/iplib.py (complete): fixed bug where paths starting with
3500 * IPython/iplib.py (complete): fixed bug where paths starting with
3500 '/' would be completed as magic names.
3501 '/' would be completed as magic names.
3501
3502
3502 2002-05-04 Fernando Perez <fperez@colorado.edu>
3503 2002-05-04 Fernando Perez <fperez@colorado.edu>
3503
3504
3504 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3505 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3505 allow running full programs under the profiler's control.
3506 allow running full programs under the profiler's control.
3506
3507
3507 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3508 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3508 mode to report exceptions verbosely but without formatting
3509 mode to report exceptions verbosely but without formatting
3509 variables. This addresses the issue of ipython 'freezing' (it's
3510 variables. This addresses the issue of ipython 'freezing' (it's
3510 not frozen, but caught in an expensive formatting loop) when huge
3511 not frozen, but caught in an expensive formatting loop) when huge
3511 variables are in the context of an exception.
3512 variables are in the context of an exception.
3512 (VerboseTB.text): Added '--->' markers at line where exception was
3513 (VerboseTB.text): Added '--->' markers at line where exception was
3513 triggered. Much clearer to read, especially in NoColor modes.
3514 triggered. Much clearer to read, especially in NoColor modes.
3514
3515
3515 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3516 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3516 implemented in reverse when changing to the new parse_options().
3517 implemented in reverse when changing to the new parse_options().
3517
3518
3518 2002-05-03 Fernando Perez <fperez@colorado.edu>
3519 2002-05-03 Fernando Perez <fperez@colorado.edu>
3519
3520
3520 * IPython/Magic.py (Magic.parse_options): new function so that
3521 * IPython/Magic.py (Magic.parse_options): new function so that
3521 magics can parse options easier.
3522 magics can parse options easier.
3522 (Magic.magic_prun): new function similar to profile.run(),
3523 (Magic.magic_prun): new function similar to profile.run(),
3523 suggested by Chris Hart.
3524 suggested by Chris Hart.
3524 (Magic.magic_cd): fixed behavior so that it only changes if
3525 (Magic.magic_cd): fixed behavior so that it only changes if
3525 directory actually is in history.
3526 directory actually is in history.
3526
3527
3527 * IPython/usage.py (__doc__): added information about potential
3528 * IPython/usage.py (__doc__): added information about potential
3528 slowness of Verbose exception mode when there are huge data
3529 slowness of Verbose exception mode when there are huge data
3529 structures to be formatted (thanks to Archie Paulson).
3530 structures to be formatted (thanks to Archie Paulson).
3530
3531
3531 * IPython/ipmaker.py (make_IPython): Changed default logging
3532 * IPython/ipmaker.py (make_IPython): Changed default logging
3532 (when simply called with -log) to use curr_dir/ipython.log in
3533 (when simply called with -log) to use curr_dir/ipython.log in
3533 rotate mode. Fixed crash which was occuring with -log before
3534 rotate mode. Fixed crash which was occuring with -log before
3534 (thanks to Jim Boyle).
3535 (thanks to Jim Boyle).
3535
3536
3536 2002-05-01 Fernando Perez <fperez@colorado.edu>
3537 2002-05-01 Fernando Perez <fperez@colorado.edu>
3537
3538
3538 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3539 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3539 was nasty -- though somewhat of a corner case).
3540 was nasty -- though somewhat of a corner case).
3540
3541
3541 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3542 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3542 text (was a bug).
3543 text (was a bug).
3543
3544
3544 2002-04-30 Fernando Perez <fperez@colorado.edu>
3545 2002-04-30 Fernando Perez <fperez@colorado.edu>
3545
3546
3546 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3547 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3547 a print after ^D or ^C from the user so that the In[] prompt
3548 a print after ^D or ^C from the user so that the In[] prompt
3548 doesn't over-run the gnuplot one.
3549 doesn't over-run the gnuplot one.
3549
3550
3550 2002-04-29 Fernando Perez <fperez@colorado.edu>
3551 2002-04-29 Fernando Perez <fperez@colorado.edu>
3551
3552
3552 * Released 0.2.10
3553 * Released 0.2.10
3553
3554
3554 * IPython/__release__.py (version): get date dynamically.
3555 * IPython/__release__.py (version): get date dynamically.
3555
3556
3556 * Misc. documentation updates thanks to Arnd's comments. Also ran
3557 * Misc. documentation updates thanks to Arnd's comments. Also ran
3557 a full spellcheck on the manual (hadn't been done in a while).
3558 a full spellcheck on the manual (hadn't been done in a while).
3558
3559
3559 2002-04-27 Fernando Perez <fperez@colorado.edu>
3560 2002-04-27 Fernando Perez <fperez@colorado.edu>
3560
3561
3561 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3562 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3562 starting a log in mid-session would reset the input history list.
3563 starting a log in mid-session would reset the input history list.
3563
3564
3564 2002-04-26 Fernando Perez <fperez@colorado.edu>
3565 2002-04-26 Fernando Perez <fperez@colorado.edu>
3565
3566
3566 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3567 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3567 all files were being included in an update. Now anything in
3568 all files were being included in an update. Now anything in
3568 UserConfig that matches [A-Za-z]*.py will go (this excludes
3569 UserConfig that matches [A-Za-z]*.py will go (this excludes
3569 __init__.py)
3570 __init__.py)
3570
3571
3571 2002-04-25 Fernando Perez <fperez@colorado.edu>
3572 2002-04-25 Fernando Perez <fperez@colorado.edu>
3572
3573
3573 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3574 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3574 to __builtins__ so that any form of embedded or imported code can
3575 to __builtins__ so that any form of embedded or imported code can
3575 test for being inside IPython.
3576 test for being inside IPython.
3576
3577
3577 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3578 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3578 changed to GnuplotMagic because it's now an importable module,
3579 changed to GnuplotMagic because it's now an importable module,
3579 this makes the name follow that of the standard Gnuplot module.
3580 this makes the name follow that of the standard Gnuplot module.
3580 GnuplotMagic can now be loaded at any time in mid-session.
3581 GnuplotMagic can now be loaded at any time in mid-session.
3581
3582
3582 2002-04-24 Fernando Perez <fperez@colorado.edu>
3583 2002-04-24 Fernando Perez <fperez@colorado.edu>
3583
3584
3584 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3585 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3585 the globals (IPython has its own namespace) and the
3586 the globals (IPython has its own namespace) and the
3586 PhysicalQuantity stuff is much better anyway.
3587 PhysicalQuantity stuff is much better anyway.
3587
3588
3588 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3589 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3589 embedding example to standard user directory for
3590 embedding example to standard user directory for
3590 distribution. Also put it in the manual.
3591 distribution. Also put it in the manual.
3591
3592
3592 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3593 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3593 instance as first argument (so it doesn't rely on some obscure
3594 instance as first argument (so it doesn't rely on some obscure
3594 hidden global).
3595 hidden global).
3595
3596
3596 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3597 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3597 delimiters. While it prevents ().TAB from working, it allows
3598 delimiters. While it prevents ().TAB from working, it allows
3598 completions in open (... expressions. This is by far a more common
3599 completions in open (... expressions. This is by far a more common
3599 case.
3600 case.
3600
3601
3601 2002-04-23 Fernando Perez <fperez@colorado.edu>
3602 2002-04-23 Fernando Perez <fperez@colorado.edu>
3602
3603
3603 * IPython/Extensions/InterpreterPasteInput.py: new
3604 * IPython/Extensions/InterpreterPasteInput.py: new
3604 syntax-processing module for pasting lines with >>> or ... at the
3605 syntax-processing module for pasting lines with >>> or ... at the
3605 start.
3606 start.
3606
3607
3607 * IPython/Extensions/PhysicalQ_Interactive.py
3608 * IPython/Extensions/PhysicalQ_Interactive.py
3608 (PhysicalQuantityInteractive.__int__): fixed to work with either
3609 (PhysicalQuantityInteractive.__int__): fixed to work with either
3609 Numeric or math.
3610 Numeric or math.
3610
3611
3611 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3612 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3612 provided profiles. Now we have:
3613 provided profiles. Now we have:
3613 -math -> math module as * and cmath with its own namespace.
3614 -math -> math module as * and cmath with its own namespace.
3614 -numeric -> Numeric as *, plus gnuplot & grace
3615 -numeric -> Numeric as *, plus gnuplot & grace
3615 -physics -> same as before
3616 -physics -> same as before
3616
3617
3617 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3618 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3618 user-defined magics wouldn't be found by @magic if they were
3619 user-defined magics wouldn't be found by @magic if they were
3619 defined as class methods. Also cleaned up the namespace search
3620 defined as class methods. Also cleaned up the namespace search
3620 logic and the string building (to use %s instead of many repeated
3621 logic and the string building (to use %s instead of many repeated
3621 string adds).
3622 string adds).
3622
3623
3623 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3624 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3624 of user-defined magics to operate with class methods (cleaner, in
3625 of user-defined magics to operate with class methods (cleaner, in
3625 line with the gnuplot code).
3626 line with the gnuplot code).
3626
3627
3627 2002-04-22 Fernando Perez <fperez@colorado.edu>
3628 2002-04-22 Fernando Perez <fperez@colorado.edu>
3628
3629
3629 * setup.py: updated dependency list so that manual is updated when
3630 * setup.py: updated dependency list so that manual is updated when
3630 all included files change.
3631 all included files change.
3631
3632
3632 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3633 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3633 the delimiter removal option (the fix is ugly right now).
3634 the delimiter removal option (the fix is ugly right now).
3634
3635
3635 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3636 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3636 all of the math profile (quicker loading, no conflict between
3637 all of the math profile (quicker loading, no conflict between
3637 g-9.8 and g-gnuplot).
3638 g-9.8 and g-gnuplot).
3638
3639
3639 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3640 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3640 name of post-mortem files to IPython_crash_report.txt.
3641 name of post-mortem files to IPython_crash_report.txt.
3641
3642
3642 * Cleanup/update of the docs. Added all the new readline info and
3643 * Cleanup/update of the docs. Added all the new readline info and
3643 formatted all lists as 'real lists'.
3644 formatted all lists as 'real lists'.
3644
3645
3645 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3646 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3646 tab-completion options, since the full readline parse_and_bind is
3647 tab-completion options, since the full readline parse_and_bind is
3647 now accessible.
3648 now accessible.
3648
3649
3649 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3650 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3650 handling of readline options. Now users can specify any string to
3651 handling of readline options. Now users can specify any string to
3651 be passed to parse_and_bind(), as well as the delimiters to be
3652 be passed to parse_and_bind(), as well as the delimiters to be
3652 removed.
3653 removed.
3653 (InteractiveShell.__init__): Added __name__ to the global
3654 (InteractiveShell.__init__): Added __name__ to the global
3654 namespace so that things like Itpl which rely on its existence
3655 namespace so that things like Itpl which rely on its existence
3655 don't crash.
3656 don't crash.
3656 (InteractiveShell._prefilter): Defined the default with a _ so
3657 (InteractiveShell._prefilter): Defined the default with a _ so
3657 that prefilter() is easier to override, while the default one
3658 that prefilter() is easier to override, while the default one
3658 remains available.
3659 remains available.
3659
3660
3660 2002-04-18 Fernando Perez <fperez@colorado.edu>
3661 2002-04-18 Fernando Perez <fperez@colorado.edu>
3661
3662
3662 * Added information about pdb in the docs.
3663 * Added information about pdb in the docs.
3663
3664
3664 2002-04-17 Fernando Perez <fperez@colorado.edu>
3665 2002-04-17 Fernando Perez <fperez@colorado.edu>
3665
3666
3666 * IPython/ipmaker.py (make_IPython): added rc_override option to
3667 * IPython/ipmaker.py (make_IPython): added rc_override option to
3667 allow passing config options at creation time which may override
3668 allow passing config options at creation time which may override
3668 anything set in the config files or command line. This is
3669 anything set in the config files or command line. This is
3669 particularly useful for configuring embedded instances.
3670 particularly useful for configuring embedded instances.
3670
3671
3671 2002-04-15 Fernando Perez <fperez@colorado.edu>
3672 2002-04-15 Fernando Perez <fperez@colorado.edu>
3672
3673
3673 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3674 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3674 crash embedded instances because of the input cache falling out of
3675 crash embedded instances because of the input cache falling out of
3675 sync with the output counter.
3676 sync with the output counter.
3676
3677
3677 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3678 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3678 mode which calls pdb after an uncaught exception in IPython itself.
3679 mode which calls pdb after an uncaught exception in IPython itself.
3679
3680
3680 2002-04-14 Fernando Perez <fperez@colorado.edu>
3681 2002-04-14 Fernando Perez <fperez@colorado.edu>
3681
3682
3682 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3683 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3683 readline, fix it back after each call.
3684 readline, fix it back after each call.
3684
3685
3685 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3686 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3686 method to force all access via __call__(), which guarantees that
3687 method to force all access via __call__(), which guarantees that
3687 traceback references are properly deleted.
3688 traceback references are properly deleted.
3688
3689
3689 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3690 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3690 improve printing when pprint is in use.
3691 improve printing when pprint is in use.
3691
3692
3692 2002-04-13 Fernando Perez <fperez@colorado.edu>
3693 2002-04-13 Fernando Perez <fperez@colorado.edu>
3693
3694
3694 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3695 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3695 exceptions aren't caught anymore. If the user triggers one, he
3696 exceptions aren't caught anymore. If the user triggers one, he
3696 should know why he's doing it and it should go all the way up,
3697 should know why he's doing it and it should go all the way up,
3697 just like any other exception. So now @abort will fully kill the
3698 just like any other exception. So now @abort will fully kill the
3698 embedded interpreter and the embedding code (unless that happens
3699 embedded interpreter and the embedding code (unless that happens
3699 to catch SystemExit).
3700 to catch SystemExit).
3700
3701
3701 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3702 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3702 and a debugger() method to invoke the interactive pdb debugger
3703 and a debugger() method to invoke the interactive pdb debugger
3703 after printing exception information. Also added the corresponding
3704 after printing exception information. Also added the corresponding
3704 -pdb option and @pdb magic to control this feature, and updated
3705 -pdb option and @pdb magic to control this feature, and updated
3705 the docs. After a suggestion from Christopher Hart
3706 the docs. After a suggestion from Christopher Hart
3706 (hart-AT-caltech.edu).
3707 (hart-AT-caltech.edu).
3707
3708
3708 2002-04-12 Fernando Perez <fperez@colorado.edu>
3709 2002-04-12 Fernando Perez <fperez@colorado.edu>
3709
3710
3710 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3711 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3711 the exception handlers defined by the user (not the CrashHandler)
3712 the exception handlers defined by the user (not the CrashHandler)
3712 so that user exceptions don't trigger an ipython bug report.
3713 so that user exceptions don't trigger an ipython bug report.
3713
3714
3714 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3715 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3715 configurable (it should have always been so).
3716 configurable (it should have always been so).
3716
3717
3717 2002-03-26 Fernando Perez <fperez@colorado.edu>
3718 2002-03-26 Fernando Perez <fperez@colorado.edu>
3718
3719
3719 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3720 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3720 and there to fix embedding namespace issues. This should all be
3721 and there to fix embedding namespace issues. This should all be
3721 done in a more elegant way.
3722 done in a more elegant way.
3722
3723
3723 2002-03-25 Fernando Perez <fperez@colorado.edu>
3724 2002-03-25 Fernando Perez <fperez@colorado.edu>
3724
3725
3725 * IPython/genutils.py (get_home_dir): Try to make it work under
3726 * IPython/genutils.py (get_home_dir): Try to make it work under
3726 win9x also.
3727 win9x also.
3727
3728
3728 2002-03-20 Fernando Perez <fperez@colorado.edu>
3729 2002-03-20 Fernando Perez <fperez@colorado.edu>
3729
3730
3730 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3731 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3731 sys.displayhook untouched upon __init__.
3732 sys.displayhook untouched upon __init__.
3732
3733
3733 2002-03-19 Fernando Perez <fperez@colorado.edu>
3734 2002-03-19 Fernando Perez <fperez@colorado.edu>
3734
3735
3735 * Released 0.2.9 (for embedding bug, basically).
3736 * Released 0.2.9 (for embedding bug, basically).
3736
3737
3737 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3738 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3738 exceptions so that enclosing shell's state can be restored.
3739 exceptions so that enclosing shell's state can be restored.
3739
3740
3740 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3741 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3741 naming conventions in the .ipython/ dir.
3742 naming conventions in the .ipython/ dir.
3742
3743
3743 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3744 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3744 from delimiters list so filenames with - in them get expanded.
3745 from delimiters list so filenames with - in them get expanded.
3745
3746
3746 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3747 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3747 sys.displayhook not being properly restored after an embedded call.
3748 sys.displayhook not being properly restored after an embedded call.
3748
3749
3749 2002-03-18 Fernando Perez <fperez@colorado.edu>
3750 2002-03-18 Fernando Perez <fperez@colorado.edu>
3750
3751
3751 * Released 0.2.8
3752 * Released 0.2.8
3752
3753
3753 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3754 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3754 some files weren't being included in a -upgrade.
3755 some files weren't being included in a -upgrade.
3755 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3756 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3756 on' so that the first tab completes.
3757 on' so that the first tab completes.
3757 (InteractiveShell.handle_magic): fixed bug with spaces around
3758 (InteractiveShell.handle_magic): fixed bug with spaces around
3758 quotes breaking many magic commands.
3759 quotes breaking many magic commands.
3759
3760
3760 * setup.py: added note about ignoring the syntax error messages at
3761 * setup.py: added note about ignoring the syntax error messages at
3761 installation.
3762 installation.
3762
3763
3763 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3764 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3764 streamlining the gnuplot interface, now there's only one magic @gp.
3765 streamlining the gnuplot interface, now there's only one magic @gp.
3765
3766
3766 2002-03-17 Fernando Perez <fperez@colorado.edu>
3767 2002-03-17 Fernando Perez <fperez@colorado.edu>
3767
3768
3768 * IPython/UserConfig/magic_gnuplot.py: new name for the
3769 * IPython/UserConfig/magic_gnuplot.py: new name for the
3769 example-magic_pm.py file. Much enhanced system, now with a shell
3770 example-magic_pm.py file. Much enhanced system, now with a shell
3770 for communicating directly with gnuplot, one command at a time.
3771 for communicating directly with gnuplot, one command at a time.
3771
3772
3772 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3773 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3773 setting __name__=='__main__'.
3774 setting __name__=='__main__'.
3774
3775
3775 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3776 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3776 mini-shell for accessing gnuplot from inside ipython. Should
3777 mini-shell for accessing gnuplot from inside ipython. Should
3777 extend it later for grace access too. Inspired by Arnd's
3778 extend it later for grace access too. Inspired by Arnd's
3778 suggestion.
3779 suggestion.
3779
3780
3780 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3781 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3781 calling magic functions with () in their arguments. Thanks to Arnd
3782 calling magic functions with () in their arguments. Thanks to Arnd
3782 Baecker for pointing this to me.
3783 Baecker for pointing this to me.
3783
3784
3784 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3785 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3785 infinitely for integer or complex arrays (only worked with floats).
3786 infinitely for integer or complex arrays (only worked with floats).
3786
3787
3787 2002-03-16 Fernando Perez <fperez@colorado.edu>
3788 2002-03-16 Fernando Perez <fperez@colorado.edu>
3788
3789
3789 * setup.py: Merged setup and setup_windows into a single script
3790 * setup.py: Merged setup and setup_windows into a single script
3790 which properly handles things for windows users.
3791 which properly handles things for windows users.
3791
3792
3792 2002-03-15 Fernando Perez <fperez@colorado.edu>
3793 2002-03-15 Fernando Perez <fperez@colorado.edu>
3793
3794
3794 * Big change to the manual: now the magics are all automatically
3795 * Big change to the manual: now the magics are all automatically
3795 documented. This information is generated from their docstrings
3796 documented. This information is generated from their docstrings
3796 and put in a latex file included by the manual lyx file. This way
3797 and put in a latex file included by the manual lyx file. This way
3797 we get always up to date information for the magics. The manual
3798 we get always up to date information for the magics. The manual
3798 now also has proper version information, also auto-synced.
3799 now also has proper version information, also auto-synced.
3799
3800
3800 For this to work, an undocumented --magic_docstrings option was added.
3801 For this to work, an undocumented --magic_docstrings option was added.
3801
3802
3802 2002-03-13 Fernando Perez <fperez@colorado.edu>
3803 2002-03-13 Fernando Perez <fperez@colorado.edu>
3803
3804
3804 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3805 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3805 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3806 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3806
3807
3807 2002-03-12 Fernando Perez <fperez@colorado.edu>
3808 2002-03-12 Fernando Perez <fperez@colorado.edu>
3808
3809
3809 * IPython/ultraTB.py (TermColors): changed color escapes again to
3810 * IPython/ultraTB.py (TermColors): changed color escapes again to
3810 fix the (old, reintroduced) line-wrapping bug. Basically, if
3811 fix the (old, reintroduced) line-wrapping bug. Basically, if
3811 \001..\002 aren't given in the color escapes, lines get wrapped
3812 \001..\002 aren't given in the color escapes, lines get wrapped
3812 weirdly. But giving those screws up old xterms and emacs terms. So
3813 weirdly. But giving those screws up old xterms and emacs terms. So
3813 I added some logic for emacs terms to be ok, but I can't identify old
3814 I added some logic for emacs terms to be ok, but I can't identify old
3814 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3815 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3815
3816
3816 2002-03-10 Fernando Perez <fperez@colorado.edu>
3817 2002-03-10 Fernando Perez <fperez@colorado.edu>
3817
3818
3818 * IPython/usage.py (__doc__): Various documentation cleanups and
3819 * IPython/usage.py (__doc__): Various documentation cleanups and
3819 updates, both in usage docstrings and in the manual.
3820 updates, both in usage docstrings and in the manual.
3820
3821
3821 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3822 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3822 handling of caching. Set minimum acceptabe value for having a
3823 handling of caching. Set minimum acceptabe value for having a
3823 cache at 20 values.
3824 cache at 20 values.
3824
3825
3825 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3826 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3826 install_first_time function to a method, renamed it and added an
3827 install_first_time function to a method, renamed it and added an
3827 'upgrade' mode. Now people can update their config directory with
3828 'upgrade' mode. Now people can update their config directory with
3828 a simple command line switch (-upgrade, also new).
3829 a simple command line switch (-upgrade, also new).
3829
3830
3830 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3831 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3831 @file (convenient for automagic users under Python >= 2.2).
3832 @file (convenient for automagic users under Python >= 2.2).
3832 Removed @files (it seemed more like a plural than an abbrev. of
3833 Removed @files (it seemed more like a plural than an abbrev. of
3833 'file show').
3834 'file show').
3834
3835
3835 * IPython/iplib.py (install_first_time): Fixed crash if there were
3836 * IPython/iplib.py (install_first_time): Fixed crash if there were
3836 backup files ('~') in .ipython/ install directory.
3837 backup files ('~') in .ipython/ install directory.
3837
3838
3838 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3839 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3839 system. Things look fine, but these changes are fairly
3840 system. Things look fine, but these changes are fairly
3840 intrusive. Test them for a few days.
3841 intrusive. Test them for a few days.
3841
3842
3842 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3843 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3843 the prompts system. Now all in/out prompt strings are user
3844 the prompts system. Now all in/out prompt strings are user
3844 controllable. This is particularly useful for embedding, as one
3845 controllable. This is particularly useful for embedding, as one
3845 can tag embedded instances with particular prompts.
3846 can tag embedded instances with particular prompts.
3846
3847
3847 Also removed global use of sys.ps1/2, which now allows nested
3848 Also removed global use of sys.ps1/2, which now allows nested
3848 embeddings without any problems. Added command-line options for
3849 embeddings without any problems. Added command-line options for
3849 the prompt strings.
3850 the prompt strings.
3850
3851
3851 2002-03-08 Fernando Perez <fperez@colorado.edu>
3852 2002-03-08 Fernando Perez <fperez@colorado.edu>
3852
3853
3853 * IPython/UserConfig/example-embed-short.py (ipshell): added
3854 * IPython/UserConfig/example-embed-short.py (ipshell): added
3854 example file with the bare minimum code for embedding.
3855 example file with the bare minimum code for embedding.
3855
3856
3856 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3857 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3857 functionality for the embeddable shell to be activated/deactivated
3858 functionality for the embeddable shell to be activated/deactivated
3858 either globally or at each call.
3859 either globally or at each call.
3859
3860
3860 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3861 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3861 rewriting the prompt with '--->' for auto-inputs with proper
3862 rewriting the prompt with '--->' for auto-inputs with proper
3862 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3863 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3863 this is handled by the prompts class itself, as it should.
3864 this is handled by the prompts class itself, as it should.
3864
3865
3865 2002-03-05 Fernando Perez <fperez@colorado.edu>
3866 2002-03-05 Fernando Perez <fperez@colorado.edu>
3866
3867
3867 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3868 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3868 @logstart to avoid name clashes with the math log function.
3869 @logstart to avoid name clashes with the math log function.
3869
3870
3870 * Big updates to X/Emacs section of the manual.
3871 * Big updates to X/Emacs section of the manual.
3871
3872
3872 * Removed ipython_emacs. Milan explained to me how to pass
3873 * Removed ipython_emacs. Milan explained to me how to pass
3873 arguments to ipython through Emacs. Some day I'm going to end up
3874 arguments to ipython through Emacs. Some day I'm going to end up
3874 learning some lisp...
3875 learning some lisp...
3875
3876
3876 2002-03-04 Fernando Perez <fperez@colorado.edu>
3877 2002-03-04 Fernando Perez <fperez@colorado.edu>
3877
3878
3878 * IPython/ipython_emacs: Created script to be used as the
3879 * IPython/ipython_emacs: Created script to be used as the
3879 py-python-command Emacs variable so we can pass IPython
3880 py-python-command Emacs variable so we can pass IPython
3880 parameters. I can't figure out how to tell Emacs directly to pass
3881 parameters. I can't figure out how to tell Emacs directly to pass
3881 parameters to IPython, so a dummy shell script will do it.
3882 parameters to IPython, so a dummy shell script will do it.
3882
3883
3883 Other enhancements made for things to work better under Emacs'
3884 Other enhancements made for things to work better under Emacs'
3884 various types of terminals. Many thanks to Milan Zamazal
3885 various types of terminals. Many thanks to Milan Zamazal
3885 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3886 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3886
3887
3887 2002-03-01 Fernando Perez <fperez@colorado.edu>
3888 2002-03-01 Fernando Perez <fperez@colorado.edu>
3888
3889
3889 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3890 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3890 that loading of readline is now optional. This gives better
3891 that loading of readline is now optional. This gives better
3891 control to emacs users.
3892 control to emacs users.
3892
3893
3893 * IPython/ultraTB.py (__date__): Modified color escape sequences
3894 * IPython/ultraTB.py (__date__): Modified color escape sequences
3894 and now things work fine under xterm and in Emacs' term buffers
3895 and now things work fine under xterm and in Emacs' term buffers
3895 (though not shell ones). Well, in emacs you get colors, but all
3896 (though not shell ones). Well, in emacs you get colors, but all
3896 seem to be 'light' colors (no difference between dark and light
3897 seem to be 'light' colors (no difference between dark and light
3897 ones). But the garbage chars are gone, and also in xterms. It
3898 ones). But the garbage chars are gone, and also in xterms. It
3898 seems that now I'm using 'cleaner' ansi sequences.
3899 seems that now I'm using 'cleaner' ansi sequences.
3899
3900
3900 2002-02-21 Fernando Perez <fperez@colorado.edu>
3901 2002-02-21 Fernando Perez <fperez@colorado.edu>
3901
3902
3902 * Released 0.2.7 (mainly to publish the scoping fix).
3903 * Released 0.2.7 (mainly to publish the scoping fix).
3903
3904
3904 * IPython/Logger.py (Logger.logstate): added. A corresponding
3905 * IPython/Logger.py (Logger.logstate): added. A corresponding
3905 @logstate magic was created.
3906 @logstate magic was created.
3906
3907
3907 * IPython/Magic.py: fixed nested scoping problem under Python
3908 * IPython/Magic.py: fixed nested scoping problem under Python
3908 2.1.x (automagic wasn't working).
3909 2.1.x (automagic wasn't working).
3909
3910
3910 2002-02-20 Fernando Perez <fperez@colorado.edu>
3911 2002-02-20 Fernando Perez <fperez@colorado.edu>
3911
3912
3912 * Released 0.2.6.
3913 * Released 0.2.6.
3913
3914
3914 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3915 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3915 option so that logs can come out without any headers at all.
3916 option so that logs can come out without any headers at all.
3916
3917
3917 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3918 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3918 SciPy.
3919 SciPy.
3919
3920
3920 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3921 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3921 that embedded IPython calls don't require vars() to be explicitly
3922 that embedded IPython calls don't require vars() to be explicitly
3922 passed. Now they are extracted from the caller's frame (code
3923 passed. Now they are extracted from the caller's frame (code
3923 snatched from Eric Jones' weave). Added better documentation to
3924 snatched from Eric Jones' weave). Added better documentation to
3924 the section on embedding and the example file.
3925 the section on embedding and the example file.
3925
3926
3926 * IPython/genutils.py (page): Changed so that under emacs, it just
3927 * IPython/genutils.py (page): Changed so that under emacs, it just
3927 prints the string. You can then page up and down in the emacs
3928 prints the string. You can then page up and down in the emacs
3928 buffer itself. This is how the builtin help() works.
3929 buffer itself. This is how the builtin help() works.
3929
3930
3930 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3931 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3931 macro scoping: macros need to be executed in the user's namespace
3932 macro scoping: macros need to be executed in the user's namespace
3932 to work as if they had been typed by the user.
3933 to work as if they had been typed by the user.
3933
3934
3934 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3935 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3935 execute automatically (no need to type 'exec...'). They then
3936 execute automatically (no need to type 'exec...'). They then
3936 behave like 'true macros'. The printing system was also modified
3937 behave like 'true macros'. The printing system was also modified
3937 for this to work.
3938 for this to work.
3938
3939
3939 2002-02-19 Fernando Perez <fperez@colorado.edu>
3940 2002-02-19 Fernando Perez <fperez@colorado.edu>
3940
3941
3941 * IPython/genutils.py (page_file): new function for paging files
3942 * IPython/genutils.py (page_file): new function for paging files
3942 in an OS-independent way. Also necessary for file viewing to work
3943 in an OS-independent way. Also necessary for file viewing to work
3943 well inside Emacs buffers.
3944 well inside Emacs buffers.
3944 (page): Added checks for being in an emacs buffer.
3945 (page): Added checks for being in an emacs buffer.
3945 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3946 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3946 same bug in iplib.
3947 same bug in iplib.
3947
3948
3948 2002-02-18 Fernando Perez <fperez@colorado.edu>
3949 2002-02-18 Fernando Perez <fperez@colorado.edu>
3949
3950
3950 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3951 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3951 of readline so that IPython can work inside an Emacs buffer.
3952 of readline so that IPython can work inside an Emacs buffer.
3952
3953
3953 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3954 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3954 method signatures (they weren't really bugs, but it looks cleaner
3955 method signatures (they weren't really bugs, but it looks cleaner
3955 and keeps PyChecker happy).
3956 and keeps PyChecker happy).
3956
3957
3957 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3958 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3958 for implementing various user-defined hooks. Currently only
3959 for implementing various user-defined hooks. Currently only
3959 display is done.
3960 display is done.
3960
3961
3961 * IPython/Prompts.py (CachedOutput._display): changed display
3962 * IPython/Prompts.py (CachedOutput._display): changed display
3962 functions so that they can be dynamically changed by users easily.
3963 functions so that they can be dynamically changed by users easily.
3963
3964
3964 * IPython/Extensions/numeric_formats.py (num_display): added an
3965 * IPython/Extensions/numeric_formats.py (num_display): added an
3965 extension for printing NumPy arrays in flexible manners. It
3966 extension for printing NumPy arrays in flexible manners. It
3966 doesn't do anything yet, but all the structure is in
3967 doesn't do anything yet, but all the structure is in
3967 place. Ultimately the plan is to implement output format control
3968 place. Ultimately the plan is to implement output format control
3968 like in Octave.
3969 like in Octave.
3969
3970
3970 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3971 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3971 methods are found at run-time by all the automatic machinery.
3972 methods are found at run-time by all the automatic machinery.
3972
3973
3973 2002-02-17 Fernando Perez <fperez@colorado.edu>
3974 2002-02-17 Fernando Perez <fperez@colorado.edu>
3974
3975
3975 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3976 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3976 whole file a little.
3977 whole file a little.
3977
3978
3978 * ToDo: closed this document. Now there's a new_design.lyx
3979 * ToDo: closed this document. Now there's a new_design.lyx
3979 document for all new ideas. Added making a pdf of it for the
3980 document for all new ideas. Added making a pdf of it for the
3980 end-user distro.
3981 end-user distro.
3981
3982
3982 * IPython/Logger.py (Logger.switch_log): Created this to replace
3983 * IPython/Logger.py (Logger.switch_log): Created this to replace
3983 logon() and logoff(). It also fixes a nasty crash reported by
3984 logon() and logoff(). It also fixes a nasty crash reported by
3984 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3985 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3985
3986
3986 * IPython/iplib.py (complete): got auto-completion to work with
3987 * IPython/iplib.py (complete): got auto-completion to work with
3987 automagic (I had wanted this for a long time).
3988 automagic (I had wanted this for a long time).
3988
3989
3989 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3990 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3990 to @file, since file() is now a builtin and clashes with automagic
3991 to @file, since file() is now a builtin and clashes with automagic
3991 for @file.
3992 for @file.
3992
3993
3993 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3994 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3994 of this was previously in iplib, which had grown to more than 2000
3995 of this was previously in iplib, which had grown to more than 2000
3995 lines, way too long. No new functionality, but it makes managing
3996 lines, way too long. No new functionality, but it makes managing
3996 the code a bit easier.
3997 the code a bit easier.
3997
3998
3998 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3999 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3999 information to crash reports.
4000 information to crash reports.
4000
4001
4001 2002-02-12 Fernando Perez <fperez@colorado.edu>
4002 2002-02-12 Fernando Perez <fperez@colorado.edu>
4002
4003
4003 * Released 0.2.5.
4004 * Released 0.2.5.
4004
4005
4005 2002-02-11 Fernando Perez <fperez@colorado.edu>
4006 2002-02-11 Fernando Perez <fperez@colorado.edu>
4006
4007
4007 * Wrote a relatively complete Windows installer. It puts
4008 * Wrote a relatively complete Windows installer. It puts
4008 everything in place, creates Start Menu entries and fixes the
4009 everything in place, creates Start Menu entries and fixes the
4009 color issues. Nothing fancy, but it works.
4010 color issues. Nothing fancy, but it works.
4010
4011
4011 2002-02-10 Fernando Perez <fperez@colorado.edu>
4012 2002-02-10 Fernando Perez <fperez@colorado.edu>
4012
4013
4013 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4014 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4014 os.path.expanduser() call so that we can type @run ~/myfile.py and
4015 os.path.expanduser() call so that we can type @run ~/myfile.py and
4015 have thigs work as expected.
4016 have thigs work as expected.
4016
4017
4017 * IPython/genutils.py (page): fixed exception handling so things
4018 * IPython/genutils.py (page): fixed exception handling so things
4018 work both in Unix and Windows correctly. Quitting a pager triggers
4019 work both in Unix and Windows correctly. Quitting a pager triggers
4019 an IOError/broken pipe in Unix, and in windows not finding a pager
4020 an IOError/broken pipe in Unix, and in windows not finding a pager
4020 is also an IOError, so I had to actually look at the return value
4021 is also an IOError, so I had to actually look at the return value
4021 of the exception, not just the exception itself. Should be ok now.
4022 of the exception, not just the exception itself. Should be ok now.
4022
4023
4023 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4024 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4024 modified to allow case-insensitive color scheme changes.
4025 modified to allow case-insensitive color scheme changes.
4025
4026
4026 2002-02-09 Fernando Perez <fperez@colorado.edu>
4027 2002-02-09 Fernando Perez <fperez@colorado.edu>
4027
4028
4028 * IPython/genutils.py (native_line_ends): new function to leave
4029 * IPython/genutils.py (native_line_ends): new function to leave
4029 user config files with os-native line-endings.
4030 user config files with os-native line-endings.
4030
4031
4031 * README and manual updates.
4032 * README and manual updates.
4032
4033
4033 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4034 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4034 instead of StringType to catch Unicode strings.
4035 instead of StringType to catch Unicode strings.
4035
4036
4036 * IPython/genutils.py (filefind): fixed bug for paths with
4037 * IPython/genutils.py (filefind): fixed bug for paths with
4037 embedded spaces (very common in Windows).
4038 embedded spaces (very common in Windows).
4038
4039
4039 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4040 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4040 files under Windows, so that they get automatically associated
4041 files under Windows, so that they get automatically associated
4041 with a text editor. Windows makes it a pain to handle
4042 with a text editor. Windows makes it a pain to handle
4042 extension-less files.
4043 extension-less files.
4043
4044
4044 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4045 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4045 warning about readline only occur for Posix. In Windows there's no
4046 warning about readline only occur for Posix. In Windows there's no
4046 way to get readline, so why bother with the warning.
4047 way to get readline, so why bother with the warning.
4047
4048
4048 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4049 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4049 for __str__ instead of dir(self), since dir() changed in 2.2.
4050 for __str__ instead of dir(self), since dir() changed in 2.2.
4050
4051
4051 * Ported to Windows! Tested on XP, I suspect it should work fine
4052 * Ported to Windows! Tested on XP, I suspect it should work fine
4052 on NT/2000, but I don't think it will work on 98 et al. That
4053 on NT/2000, but I don't think it will work on 98 et al. That
4053 series of Windows is such a piece of junk anyway that I won't try
4054 series of Windows is such a piece of junk anyway that I won't try
4054 porting it there. The XP port was straightforward, showed a few
4055 porting it there. The XP port was straightforward, showed a few
4055 bugs here and there (fixed all), in particular some string
4056 bugs here and there (fixed all), in particular some string
4056 handling stuff which required considering Unicode strings (which
4057 handling stuff which required considering Unicode strings (which
4057 Windows uses). This is good, but hasn't been too tested :) No
4058 Windows uses). This is good, but hasn't been too tested :) No
4058 fancy installer yet, I'll put a note in the manual so people at
4059 fancy installer yet, I'll put a note in the manual so people at
4059 least make manually a shortcut.
4060 least make manually a shortcut.
4060
4061
4061 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4062 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4062 into a single one, "colors". This now controls both prompt and
4063 into a single one, "colors". This now controls both prompt and
4063 exception color schemes, and can be changed both at startup
4064 exception color schemes, and can be changed both at startup
4064 (either via command-line switches or via ipythonrc files) and at
4065 (either via command-line switches or via ipythonrc files) and at
4065 runtime, with @colors.
4066 runtime, with @colors.
4066 (Magic.magic_run): renamed @prun to @run and removed the old
4067 (Magic.magic_run): renamed @prun to @run and removed the old
4067 @run. The two were too similar to warrant keeping both.
4068 @run. The two were too similar to warrant keeping both.
4068
4069
4069 2002-02-03 Fernando Perez <fperez@colorado.edu>
4070 2002-02-03 Fernando Perez <fperez@colorado.edu>
4070
4071
4071 * IPython/iplib.py (install_first_time): Added comment on how to
4072 * IPython/iplib.py (install_first_time): Added comment on how to
4072 configure the color options for first-time users. Put a <return>
4073 configure the color options for first-time users. Put a <return>
4073 request at the end so that small-terminal users get a chance to
4074 request at the end so that small-terminal users get a chance to
4074 read the startup info.
4075 read the startup info.
4075
4076
4076 2002-01-23 Fernando Perez <fperez@colorado.edu>
4077 2002-01-23 Fernando Perez <fperez@colorado.edu>
4077
4078
4078 * IPython/iplib.py (CachedOutput.update): Changed output memory
4079 * IPython/iplib.py (CachedOutput.update): Changed output memory
4079 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4080 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4080 input history we still use _i. Did this b/c these variable are
4081 input history we still use _i. Did this b/c these variable are
4081 very commonly used in interactive work, so the less we need to
4082 very commonly used in interactive work, so the less we need to
4082 type the better off we are.
4083 type the better off we are.
4083 (Magic.magic_prun): updated @prun to better handle the namespaces
4084 (Magic.magic_prun): updated @prun to better handle the namespaces
4084 the file will run in, including a fix for __name__ not being set
4085 the file will run in, including a fix for __name__ not being set
4085 before.
4086 before.
4086
4087
4087 2002-01-20 Fernando Perez <fperez@colorado.edu>
4088 2002-01-20 Fernando Perez <fperez@colorado.edu>
4088
4089
4089 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4090 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4090 extra garbage for Python 2.2. Need to look more carefully into
4091 extra garbage for Python 2.2. Need to look more carefully into
4091 this later.
4092 this later.
4092
4093
4093 2002-01-19 Fernando Perez <fperez@colorado.edu>
4094 2002-01-19 Fernando Perez <fperez@colorado.edu>
4094
4095
4095 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4096 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4096 display SyntaxError exceptions properly formatted when they occur
4097 display SyntaxError exceptions properly formatted when they occur
4097 (they can be triggered by imported code).
4098 (they can be triggered by imported code).
4098
4099
4099 2002-01-18 Fernando Perez <fperez@colorado.edu>
4100 2002-01-18 Fernando Perez <fperez@colorado.edu>
4100
4101
4101 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4102 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4102 SyntaxError exceptions are reported nicely formatted, instead of
4103 SyntaxError exceptions are reported nicely formatted, instead of
4103 spitting out only offset information as before.
4104 spitting out only offset information as before.
4104 (Magic.magic_prun): Added the @prun function for executing
4105 (Magic.magic_prun): Added the @prun function for executing
4105 programs with command line args inside IPython.
4106 programs with command line args inside IPython.
4106
4107
4107 2002-01-16 Fernando Perez <fperez@colorado.edu>
4108 2002-01-16 Fernando Perez <fperez@colorado.edu>
4108
4109
4109 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4110 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4110 to *not* include the last item given in a range. This brings their
4111 to *not* include the last item given in a range. This brings their
4111 behavior in line with Python's slicing:
4112 behavior in line with Python's slicing:
4112 a[n1:n2] -> a[n1]...a[n2-1]
4113 a[n1:n2] -> a[n1]...a[n2-1]
4113 It may be a bit less convenient, but I prefer to stick to Python's
4114 It may be a bit less convenient, but I prefer to stick to Python's
4114 conventions *everywhere*, so users never have to wonder.
4115 conventions *everywhere*, so users never have to wonder.
4115 (Magic.magic_macro): Added @macro function to ease the creation of
4116 (Magic.magic_macro): Added @macro function to ease the creation of
4116 macros.
4117 macros.
4117
4118
4118 2002-01-05 Fernando Perez <fperez@colorado.edu>
4119 2002-01-05 Fernando Perez <fperez@colorado.edu>
4119
4120
4120 * Released 0.2.4.
4121 * Released 0.2.4.
4121
4122
4122 * IPython/iplib.py (Magic.magic_pdef):
4123 * IPython/iplib.py (Magic.magic_pdef):
4123 (InteractiveShell.safe_execfile): report magic lines and error
4124 (InteractiveShell.safe_execfile): report magic lines and error
4124 lines without line numbers so one can easily copy/paste them for
4125 lines without line numbers so one can easily copy/paste them for
4125 re-execution.
4126 re-execution.
4126
4127
4127 * Updated manual with recent changes.
4128 * Updated manual with recent changes.
4128
4129
4129 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4130 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4130 docstring printing when class? is called. Very handy for knowing
4131 docstring printing when class? is called. Very handy for knowing
4131 how to create class instances (as long as __init__ is well
4132 how to create class instances (as long as __init__ is well
4132 documented, of course :)
4133 documented, of course :)
4133 (Magic.magic_doc): print both class and constructor docstrings.
4134 (Magic.magic_doc): print both class and constructor docstrings.
4134 (Magic.magic_pdef): give constructor info if passed a class and
4135 (Magic.magic_pdef): give constructor info if passed a class and
4135 __call__ info for callable object instances.
4136 __call__ info for callable object instances.
4136
4137
4137 2002-01-04 Fernando Perez <fperez@colorado.edu>
4138 2002-01-04 Fernando Perez <fperez@colorado.edu>
4138
4139
4139 * Made deep_reload() off by default. It doesn't always work
4140 * Made deep_reload() off by default. It doesn't always work
4140 exactly as intended, so it's probably safer to have it off. It's
4141 exactly as intended, so it's probably safer to have it off. It's
4141 still available as dreload() anyway, so nothing is lost.
4142 still available as dreload() anyway, so nothing is lost.
4142
4143
4143 2002-01-02 Fernando Perez <fperez@colorado.edu>
4144 2002-01-02 Fernando Perez <fperez@colorado.edu>
4144
4145
4145 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4146 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4146 so I wanted an updated release).
4147 so I wanted an updated release).
4147
4148
4148 2001-12-27 Fernando Perez <fperez@colorado.edu>
4149 2001-12-27 Fernando Perez <fperez@colorado.edu>
4149
4150
4150 * IPython/iplib.py (InteractiveShell.interact): Added the original
4151 * IPython/iplib.py (InteractiveShell.interact): Added the original
4151 code from 'code.py' for this module in order to change the
4152 code from 'code.py' for this module in order to change the
4152 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4153 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4153 the history cache would break when the user hit Ctrl-C, and
4154 the history cache would break when the user hit Ctrl-C, and
4154 interact() offers no way to add any hooks to it.
4155 interact() offers no way to add any hooks to it.
4155
4156
4156 2001-12-23 Fernando Perez <fperez@colorado.edu>
4157 2001-12-23 Fernando Perez <fperez@colorado.edu>
4157
4158
4158 * setup.py: added check for 'MANIFEST' before trying to remove
4159 * setup.py: added check for 'MANIFEST' before trying to remove
4159 it. Thanks to Sean Reifschneider.
4160 it. Thanks to Sean Reifschneider.
4160
4161
4161 2001-12-22 Fernando Perez <fperez@colorado.edu>
4162 2001-12-22 Fernando Perez <fperez@colorado.edu>
4162
4163
4163 * Released 0.2.2.
4164 * Released 0.2.2.
4164
4165
4165 * Finished (reasonably) writing the manual. Later will add the
4166 * Finished (reasonably) writing the manual. Later will add the
4166 python-standard navigation stylesheets, but for the time being
4167 python-standard navigation stylesheets, but for the time being
4167 it's fairly complete. Distribution will include html and pdf
4168 it's fairly complete. Distribution will include html and pdf
4168 versions.
4169 versions.
4169
4170
4170 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4171 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4171 (MayaVi author).
4172 (MayaVi author).
4172
4173
4173 2001-12-21 Fernando Perez <fperez@colorado.edu>
4174 2001-12-21 Fernando Perez <fperez@colorado.edu>
4174
4175
4175 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4176 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4176 good public release, I think (with the manual and the distutils
4177 good public release, I think (with the manual and the distutils
4177 installer). The manual can use some work, but that can go
4178 installer). The manual can use some work, but that can go
4178 slowly. Otherwise I think it's quite nice for end users. Next
4179 slowly. Otherwise I think it's quite nice for end users. Next
4179 summer, rewrite the guts of it...
4180 summer, rewrite the guts of it...
4180
4181
4181 * Changed format of ipythonrc files to use whitespace as the
4182 * Changed format of ipythonrc files to use whitespace as the
4182 separator instead of an explicit '='. Cleaner.
4183 separator instead of an explicit '='. Cleaner.
4183
4184
4184 2001-12-20 Fernando Perez <fperez@colorado.edu>
4185 2001-12-20 Fernando Perez <fperez@colorado.edu>
4185
4186
4186 * Started a manual in LyX. For now it's just a quick merge of the
4187 * Started a manual in LyX. For now it's just a quick merge of the
4187 various internal docstrings and READMEs. Later it may grow into a
4188 various internal docstrings and READMEs. Later it may grow into a
4188 nice, full-blown manual.
4189 nice, full-blown manual.
4189
4190
4190 * Set up a distutils based installer. Installation should now be
4191 * Set up a distutils based installer. Installation should now be
4191 trivially simple for end-users.
4192 trivially simple for end-users.
4192
4193
4193 2001-12-11 Fernando Perez <fperez@colorado.edu>
4194 2001-12-11 Fernando Perez <fperez@colorado.edu>
4194
4195
4195 * Released 0.2.0. First public release, announced it at
4196 * Released 0.2.0. First public release, announced it at
4196 comp.lang.python. From now on, just bugfixes...
4197 comp.lang.python. From now on, just bugfixes...
4197
4198
4198 * Went through all the files, set copyright/license notices and
4199 * Went through all the files, set copyright/license notices and
4199 cleaned up things. Ready for release.
4200 cleaned up things. Ready for release.
4200
4201
4201 2001-12-10 Fernando Perez <fperez@colorado.edu>
4202 2001-12-10 Fernando Perez <fperez@colorado.edu>
4202
4203
4203 * Changed the first-time installer not to use tarfiles. It's more
4204 * Changed the first-time installer not to use tarfiles. It's more
4204 robust now and less unix-dependent. Also makes it easier for
4205 robust now and less unix-dependent. Also makes it easier for
4205 people to later upgrade versions.
4206 people to later upgrade versions.
4206
4207
4207 * Changed @exit to @abort to reflect the fact that it's pretty
4208 * Changed @exit to @abort to reflect the fact that it's pretty
4208 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4209 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4209 becomes significant only when IPyhton is embedded: in that case,
4210 becomes significant only when IPyhton is embedded: in that case,
4210 C-D closes IPython only, but @abort kills the enclosing program
4211 C-D closes IPython only, but @abort kills the enclosing program
4211 too (unless it had called IPython inside a try catching
4212 too (unless it had called IPython inside a try catching
4212 SystemExit).
4213 SystemExit).
4213
4214
4214 * Created Shell module which exposes the actuall IPython Shell
4215 * Created Shell module which exposes the actuall IPython Shell
4215 classes, currently the normal and the embeddable one. This at
4216 classes, currently the normal and the embeddable one. This at
4216 least offers a stable interface we won't need to change when
4217 least offers a stable interface we won't need to change when
4217 (later) the internals are rewritten. That rewrite will be confined
4218 (later) the internals are rewritten. That rewrite will be confined
4218 to iplib and ipmaker, but the Shell interface should remain as is.
4219 to iplib and ipmaker, but the Shell interface should remain as is.
4219
4220
4220 * Added embed module which offers an embeddable IPShell object,
4221 * Added embed module which offers an embeddable IPShell object,
4221 useful to fire up IPython *inside* a running program. Great for
4222 useful to fire up IPython *inside* a running program. Great for
4222 debugging or dynamical data analysis.
4223 debugging or dynamical data analysis.
4223
4224
4224 2001-12-08 Fernando Perez <fperez@colorado.edu>
4225 2001-12-08 Fernando Perez <fperez@colorado.edu>
4225
4226
4226 * Fixed small bug preventing seeing info from methods of defined
4227 * Fixed small bug preventing seeing info from methods of defined
4227 objects (incorrect namespace in _ofind()).
4228 objects (incorrect namespace in _ofind()).
4228
4229
4229 * Documentation cleanup. Moved the main usage docstrings to a
4230 * Documentation cleanup. Moved the main usage docstrings to a
4230 separate file, usage.py (cleaner to maintain, and hopefully in the
4231 separate file, usage.py (cleaner to maintain, and hopefully in the
4231 future some perlpod-like way of producing interactive, man and
4232 future some perlpod-like way of producing interactive, man and
4232 html docs out of it will be found).
4233 html docs out of it will be found).
4233
4234
4234 * Added @profile to see your profile at any time.
4235 * Added @profile to see your profile at any time.
4235
4236
4236 * Added @p as an alias for 'print'. It's especially convenient if
4237 * Added @p as an alias for 'print'. It's especially convenient if
4237 using automagic ('p x' prints x).
4238 using automagic ('p x' prints x).
4238
4239
4239 * Small cleanups and fixes after a pychecker run.
4240 * Small cleanups and fixes after a pychecker run.
4240
4241
4241 * Changed the @cd command to handle @cd - and @cd -<n> for
4242 * Changed the @cd command to handle @cd - and @cd -<n> for
4242 visiting any directory in _dh.
4243 visiting any directory in _dh.
4243
4244
4244 * Introduced _dh, a history of visited directories. @dhist prints
4245 * Introduced _dh, a history of visited directories. @dhist prints
4245 it out with numbers.
4246 it out with numbers.
4246
4247
4247 2001-12-07 Fernando Perez <fperez@colorado.edu>
4248 2001-12-07 Fernando Perez <fperez@colorado.edu>
4248
4249
4249 * Released 0.1.22
4250 * Released 0.1.22
4250
4251
4251 * Made initialization a bit more robust against invalid color
4252 * Made initialization a bit more robust against invalid color
4252 options in user input (exit, not traceback-crash).
4253 options in user input (exit, not traceback-crash).
4253
4254
4254 * Changed the bug crash reporter to write the report only in the
4255 * Changed the bug crash reporter to write the report only in the
4255 user's .ipython directory. That way IPython won't litter people's
4256 user's .ipython directory. That way IPython won't litter people's
4256 hard disks with crash files all over the place. Also print on
4257 hard disks with crash files all over the place. Also print on
4257 screen the necessary mail command.
4258 screen the necessary mail command.
4258
4259
4259 * With the new ultraTB, implemented LightBG color scheme for light
4260 * With the new ultraTB, implemented LightBG color scheme for light
4260 background terminals. A lot of people like white backgrounds, so I
4261 background terminals. A lot of people like white backgrounds, so I
4261 guess we should at least give them something readable.
4262 guess we should at least give them something readable.
4262
4263
4263 2001-12-06 Fernando Perez <fperez@colorado.edu>
4264 2001-12-06 Fernando Perez <fperez@colorado.edu>
4264
4265
4265 * Modified the structure of ultraTB. Now there's a proper class
4266 * Modified the structure of ultraTB. Now there's a proper class
4266 for tables of color schemes which allow adding schemes easily and
4267 for tables of color schemes which allow adding schemes easily and
4267 switching the active scheme without creating a new instance every
4268 switching the active scheme without creating a new instance every
4268 time (which was ridiculous). The syntax for creating new schemes
4269 time (which was ridiculous). The syntax for creating new schemes
4269 is also cleaner. I think ultraTB is finally done, with a clean
4270 is also cleaner. I think ultraTB is finally done, with a clean
4270 class structure. Names are also much cleaner (now there's proper
4271 class structure. Names are also much cleaner (now there's proper
4271 color tables, no need for every variable to also have 'color' in
4272 color tables, no need for every variable to also have 'color' in
4272 its name).
4273 its name).
4273
4274
4274 * Broke down genutils into separate files. Now genutils only
4275 * Broke down genutils into separate files. Now genutils only
4275 contains utility functions, and classes have been moved to their
4276 contains utility functions, and classes have been moved to their
4276 own files (they had enough independent functionality to warrant
4277 own files (they had enough independent functionality to warrant
4277 it): ConfigLoader, OutputTrap, Struct.
4278 it): ConfigLoader, OutputTrap, Struct.
4278
4279
4279 2001-12-05 Fernando Perez <fperez@colorado.edu>
4280 2001-12-05 Fernando Perez <fperez@colorado.edu>
4280
4281
4281 * IPython turns 21! Released version 0.1.21, as a candidate for
4282 * IPython turns 21! Released version 0.1.21, as a candidate for
4282 public consumption. If all goes well, release in a few days.
4283 public consumption. If all goes well, release in a few days.
4283
4284
4284 * Fixed path bug (files in Extensions/ directory wouldn't be found
4285 * Fixed path bug (files in Extensions/ directory wouldn't be found
4285 unless IPython/ was explicitly in sys.path).
4286 unless IPython/ was explicitly in sys.path).
4286
4287
4287 * Extended the FlexCompleter class as MagicCompleter to allow
4288 * Extended the FlexCompleter class as MagicCompleter to allow
4288 completion of @-starting lines.
4289 completion of @-starting lines.
4289
4290
4290 * Created __release__.py file as a central repository for release
4291 * Created __release__.py file as a central repository for release
4291 info that other files can read from.
4292 info that other files can read from.
4292
4293
4293 * Fixed small bug in logging: when logging was turned on in
4294 * Fixed small bug in logging: when logging was turned on in
4294 mid-session, old lines with special meanings (!@?) were being
4295 mid-session, old lines with special meanings (!@?) were being
4295 logged without the prepended comment, which is necessary since
4296 logged without the prepended comment, which is necessary since
4296 they are not truly valid python syntax. This should make session
4297 they are not truly valid python syntax. This should make session
4297 restores produce less errors.
4298 restores produce less errors.
4298
4299
4299 * The namespace cleanup forced me to make a FlexCompleter class
4300 * The namespace cleanup forced me to make a FlexCompleter class
4300 which is nothing but a ripoff of rlcompleter, but with selectable
4301 which is nothing but a ripoff of rlcompleter, but with selectable
4301 namespace (rlcompleter only works in __main__.__dict__). I'll try
4302 namespace (rlcompleter only works in __main__.__dict__). I'll try
4302 to submit a note to the authors to see if this change can be
4303 to submit a note to the authors to see if this change can be
4303 incorporated in future rlcompleter releases (Dec.6: done)
4304 incorporated in future rlcompleter releases (Dec.6: done)
4304
4305
4305 * More fixes to namespace handling. It was a mess! Now all
4306 * More fixes to namespace handling. It was a mess! Now all
4306 explicit references to __main__.__dict__ are gone (except when
4307 explicit references to __main__.__dict__ are gone (except when
4307 really needed) and everything is handled through the namespace
4308 really needed) and everything is handled through the namespace
4308 dicts in the IPython instance. We seem to be getting somewhere
4309 dicts in the IPython instance. We seem to be getting somewhere
4309 with this, finally...
4310 with this, finally...
4310
4311
4311 * Small documentation updates.
4312 * Small documentation updates.
4312
4313
4313 * Created the Extensions directory under IPython (with an
4314 * Created the Extensions directory under IPython (with an
4314 __init__.py). Put the PhysicalQ stuff there. This directory should
4315 __init__.py). Put the PhysicalQ stuff there. This directory should
4315 be used for all special-purpose extensions.
4316 be used for all special-purpose extensions.
4316
4317
4317 * File renaming:
4318 * File renaming:
4318 ipythonlib --> ipmaker
4319 ipythonlib --> ipmaker
4319 ipplib --> iplib
4320 ipplib --> iplib
4320 This makes a bit more sense in terms of what these files actually do.
4321 This makes a bit more sense in terms of what these files actually do.
4321
4322
4322 * Moved all the classes and functions in ipythonlib to ipplib, so
4323 * Moved all the classes and functions in ipythonlib to ipplib, so
4323 now ipythonlib only has make_IPython(). This will ease up its
4324 now ipythonlib only has make_IPython(). This will ease up its
4324 splitting in smaller functional chunks later.
4325 splitting in smaller functional chunks later.
4325
4326
4326 * Cleaned up (done, I think) output of @whos. Better column
4327 * Cleaned up (done, I think) output of @whos. Better column
4327 formatting, and now shows str(var) for as much as it can, which is
4328 formatting, and now shows str(var) for as much as it can, which is
4328 typically what one gets with a 'print var'.
4329 typically what one gets with a 'print var'.
4329
4330
4330 2001-12-04 Fernando Perez <fperez@colorado.edu>
4331 2001-12-04 Fernando Perez <fperez@colorado.edu>
4331
4332
4332 * Fixed namespace problems. Now builtin/IPyhton/user names get
4333 * Fixed namespace problems. Now builtin/IPyhton/user names get
4333 properly reported in their namespace. Internal namespace handling
4334 properly reported in their namespace. Internal namespace handling
4334 is finally getting decent (not perfect yet, but much better than
4335 is finally getting decent (not perfect yet, but much better than
4335 the ad-hoc mess we had).
4336 the ad-hoc mess we had).
4336
4337
4337 * Removed -exit option. If people just want to run a python
4338 * Removed -exit option. If people just want to run a python
4338 script, that's what the normal interpreter is for. Less
4339 script, that's what the normal interpreter is for. Less
4339 unnecessary options, less chances for bugs.
4340 unnecessary options, less chances for bugs.
4340
4341
4341 * Added a crash handler which generates a complete post-mortem if
4342 * Added a crash handler which generates a complete post-mortem if
4342 IPython crashes. This will help a lot in tracking bugs down the
4343 IPython crashes. This will help a lot in tracking bugs down the
4343 road.
4344 road.
4344
4345
4345 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4346 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4346 which were boud to functions being reassigned would bypass the
4347 which were boud to functions being reassigned would bypass the
4347 logger, breaking the sync of _il with the prompt counter. This
4348 logger, breaking the sync of _il with the prompt counter. This
4348 would then crash IPython later when a new line was logged.
4349 would then crash IPython later when a new line was logged.
4349
4350
4350 2001-12-02 Fernando Perez <fperez@colorado.edu>
4351 2001-12-02 Fernando Perez <fperez@colorado.edu>
4351
4352
4352 * Made IPython a package. This means people don't have to clutter
4353 * Made IPython a package. This means people don't have to clutter
4353 their sys.path with yet another directory. Changed the INSTALL
4354 their sys.path with yet another directory. Changed the INSTALL
4354 file accordingly.
4355 file accordingly.
4355
4356
4356 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4357 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4357 sorts its output (so @who shows it sorted) and @whos formats the
4358 sorts its output (so @who shows it sorted) and @whos formats the
4358 table according to the width of the first column. Nicer, easier to
4359 table according to the width of the first column. Nicer, easier to
4359 read. Todo: write a generic table_format() which takes a list of
4360 read. Todo: write a generic table_format() which takes a list of
4360 lists and prints it nicely formatted, with optional row/column
4361 lists and prints it nicely formatted, with optional row/column
4361 separators and proper padding and justification.
4362 separators and proper padding and justification.
4362
4363
4363 * Released 0.1.20
4364 * Released 0.1.20
4364
4365
4365 * Fixed bug in @log which would reverse the inputcache list (a
4366 * Fixed bug in @log which would reverse the inputcache list (a
4366 copy operation was missing).
4367 copy operation was missing).
4367
4368
4368 * Code cleanup. @config was changed to use page(). Better, since
4369 * Code cleanup. @config was changed to use page(). Better, since
4369 its output is always quite long.
4370 its output is always quite long.
4370
4371
4371 * Itpl is back as a dependency. I was having too many problems
4372 * Itpl is back as a dependency. I was having too many problems
4372 getting the parametric aliases to work reliably, and it's just
4373 getting the parametric aliases to work reliably, and it's just
4373 easier to code weird string operations with it than playing %()s
4374 easier to code weird string operations with it than playing %()s
4374 games. It's only ~6k, so I don't think it's too big a deal.
4375 games. It's only ~6k, so I don't think it's too big a deal.
4375
4376
4376 * Found (and fixed) a very nasty bug with history. !lines weren't
4377 * Found (and fixed) a very nasty bug with history. !lines weren't
4377 getting cached, and the out of sync caches would crash
4378 getting cached, and the out of sync caches would crash
4378 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4379 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4379 division of labor a bit better. Bug fixed, cleaner structure.
4380 division of labor a bit better. Bug fixed, cleaner structure.
4380
4381
4381 2001-12-01 Fernando Perez <fperez@colorado.edu>
4382 2001-12-01 Fernando Perez <fperez@colorado.edu>
4382
4383
4383 * Released 0.1.19
4384 * Released 0.1.19
4384
4385
4385 * Added option -n to @hist to prevent line number printing. Much
4386 * Added option -n to @hist to prevent line number printing. Much
4386 easier to copy/paste code this way.
4387 easier to copy/paste code this way.
4387
4388
4388 * Created global _il to hold the input list. Allows easy
4389 * Created global _il to hold the input list. Allows easy
4389 re-execution of blocks of code by slicing it (inspired by Janko's
4390 re-execution of blocks of code by slicing it (inspired by Janko's
4390 comment on 'macros').
4391 comment on 'macros').
4391
4392
4392 * Small fixes and doc updates.
4393 * Small fixes and doc updates.
4393
4394
4394 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4395 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4395 much too fragile with automagic. Handles properly multi-line
4396 much too fragile with automagic. Handles properly multi-line
4396 statements and takes parameters.
4397 statements and takes parameters.
4397
4398
4398 2001-11-30 Fernando Perez <fperez@colorado.edu>
4399 2001-11-30 Fernando Perez <fperez@colorado.edu>
4399
4400
4400 * Version 0.1.18 released.
4401 * Version 0.1.18 released.
4401
4402
4402 * Fixed nasty namespace bug in initial module imports.
4403 * Fixed nasty namespace bug in initial module imports.
4403
4404
4404 * Added copyright/license notes to all code files (except
4405 * Added copyright/license notes to all code files (except
4405 DPyGetOpt). For the time being, LGPL. That could change.
4406 DPyGetOpt). For the time being, LGPL. That could change.
4406
4407
4407 * Rewrote a much nicer README, updated INSTALL, cleaned up
4408 * Rewrote a much nicer README, updated INSTALL, cleaned up
4408 ipythonrc-* samples.
4409 ipythonrc-* samples.
4409
4410
4410 * Overall code/documentation cleanup. Basically ready for
4411 * Overall code/documentation cleanup. Basically ready for
4411 release. Only remaining thing: licence decision (LGPL?).
4412 release. Only remaining thing: licence decision (LGPL?).
4412
4413
4413 * Converted load_config to a class, ConfigLoader. Now recursion
4414 * Converted load_config to a class, ConfigLoader. Now recursion
4414 control is better organized. Doesn't include the same file twice.
4415 control is better organized. Doesn't include the same file twice.
4415
4416
4416 2001-11-29 Fernando Perez <fperez@colorado.edu>
4417 2001-11-29 Fernando Perez <fperez@colorado.edu>
4417
4418
4418 * Got input history working. Changed output history variables from
4419 * Got input history working. Changed output history variables from
4419 _p to _o so that _i is for input and _o for output. Just cleaner
4420 _p to _o so that _i is for input and _o for output. Just cleaner
4420 convention.
4421 convention.
4421
4422
4422 * Implemented parametric aliases. This pretty much allows the
4423 * Implemented parametric aliases. This pretty much allows the
4423 alias system to offer full-blown shell convenience, I think.
4424 alias system to offer full-blown shell convenience, I think.
4424
4425
4425 * Version 0.1.17 released, 0.1.18 opened.
4426 * Version 0.1.17 released, 0.1.18 opened.
4426
4427
4427 * dot_ipython/ipythonrc (alias): added documentation.
4428 * dot_ipython/ipythonrc (alias): added documentation.
4428 (xcolor): Fixed small bug (xcolors -> xcolor)
4429 (xcolor): Fixed small bug (xcolors -> xcolor)
4429
4430
4430 * Changed the alias system. Now alias is a magic command to define
4431 * Changed the alias system. Now alias is a magic command to define
4431 aliases just like the shell. Rationale: the builtin magics should
4432 aliases just like the shell. Rationale: the builtin magics should
4432 be there for things deeply connected to IPython's
4433 be there for things deeply connected to IPython's
4433 architecture. And this is a much lighter system for what I think
4434 architecture. And this is a much lighter system for what I think
4434 is the really important feature: allowing users to define quickly
4435 is the really important feature: allowing users to define quickly
4435 magics that will do shell things for them, so they can customize
4436 magics that will do shell things for them, so they can customize
4436 IPython easily to match their work habits. If someone is really
4437 IPython easily to match their work habits. If someone is really
4437 desperate to have another name for a builtin alias, they can
4438 desperate to have another name for a builtin alias, they can
4438 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4439 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4439 works.
4440 works.
4440
4441
4441 2001-11-28 Fernando Perez <fperez@colorado.edu>
4442 2001-11-28 Fernando Perez <fperez@colorado.edu>
4442
4443
4443 * Changed @file so that it opens the source file at the proper
4444 * Changed @file so that it opens the source file at the proper
4444 line. Since it uses less, if your EDITOR environment is
4445 line. Since it uses less, if your EDITOR environment is
4445 configured, typing v will immediately open your editor of choice
4446 configured, typing v will immediately open your editor of choice
4446 right at the line where the object is defined. Not as quick as
4447 right at the line where the object is defined. Not as quick as
4447 having a direct @edit command, but for all intents and purposes it
4448 having a direct @edit command, but for all intents and purposes it
4448 works. And I don't have to worry about writing @edit to deal with
4449 works. And I don't have to worry about writing @edit to deal with
4449 all the editors, less does that.
4450 all the editors, less does that.
4450
4451
4451 * Version 0.1.16 released, 0.1.17 opened.
4452 * Version 0.1.16 released, 0.1.17 opened.
4452
4453
4453 * Fixed some nasty bugs in the page/page_dumb combo that could
4454 * Fixed some nasty bugs in the page/page_dumb combo that could
4454 crash IPython.
4455 crash IPython.
4455
4456
4456 2001-11-27 Fernando Perez <fperez@colorado.edu>
4457 2001-11-27 Fernando Perez <fperez@colorado.edu>
4457
4458
4458 * Version 0.1.15 released, 0.1.16 opened.
4459 * Version 0.1.15 released, 0.1.16 opened.
4459
4460
4460 * Finally got ? and ?? to work for undefined things: now it's
4461 * Finally got ? and ?? to work for undefined things: now it's
4461 possible to type {}.get? and get information about the get method
4462 possible to type {}.get? and get information about the get method
4462 of dicts, or os.path? even if only os is defined (so technically
4463 of dicts, or os.path? even if only os is defined (so technically
4463 os.path isn't). Works at any level. For example, after import os,
4464 os.path isn't). Works at any level. For example, after import os,
4464 os?, os.path?, os.path.abspath? all work. This is great, took some
4465 os?, os.path?, os.path.abspath? all work. This is great, took some
4465 work in _ofind.
4466 work in _ofind.
4466
4467
4467 * Fixed more bugs with logging. The sanest way to do it was to add
4468 * Fixed more bugs with logging. The sanest way to do it was to add
4468 to @log a 'mode' parameter. Killed two in one shot (this mode
4469 to @log a 'mode' parameter. Killed two in one shot (this mode
4469 option was a request of Janko's). I think it's finally clean
4470 option was a request of Janko's). I think it's finally clean
4470 (famous last words).
4471 (famous last words).
4471
4472
4472 * Added a page_dumb() pager which does a decent job of paging on
4473 * Added a page_dumb() pager which does a decent job of paging on
4473 screen, if better things (like less) aren't available. One less
4474 screen, if better things (like less) aren't available. One less
4474 unix dependency (someday maybe somebody will port this to
4475 unix dependency (someday maybe somebody will port this to
4475 windows).
4476 windows).
4476
4477
4477 * Fixed problem in magic_log: would lock of logging out if log
4478 * Fixed problem in magic_log: would lock of logging out if log
4478 creation failed (because it would still think it had succeeded).
4479 creation failed (because it would still think it had succeeded).
4479
4480
4480 * Improved the page() function using curses to auto-detect screen
4481 * Improved the page() function using curses to auto-detect screen
4481 size. Now it can make a much better decision on whether to print
4482 size. Now it can make a much better decision on whether to print
4482 or page a string. Option screen_length was modified: a value 0
4483 or page a string. Option screen_length was modified: a value 0
4483 means auto-detect, and that's the default now.
4484 means auto-detect, and that's the default now.
4484
4485
4485 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4486 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4486 go out. I'll test it for a few days, then talk to Janko about
4487 go out. I'll test it for a few days, then talk to Janko about
4487 licences and announce it.
4488 licences and announce it.
4488
4489
4489 * Fixed the length of the auto-generated ---> prompt which appears
4490 * Fixed the length of the auto-generated ---> prompt which appears
4490 for auto-parens and auto-quotes. Getting this right isn't trivial,
4491 for auto-parens and auto-quotes. Getting this right isn't trivial,
4491 with all the color escapes, different prompt types and optional
4492 with all the color escapes, different prompt types and optional
4492 separators. But it seems to be working in all the combinations.
4493 separators. But it seems to be working in all the combinations.
4493
4494
4494 2001-11-26 Fernando Perez <fperez@colorado.edu>
4495 2001-11-26 Fernando Perez <fperez@colorado.edu>
4495
4496
4496 * Wrote a regexp filter to get option types from the option names
4497 * Wrote a regexp filter to get option types from the option names
4497 string. This eliminates the need to manually keep two duplicate
4498 string. This eliminates the need to manually keep two duplicate
4498 lists.
4499 lists.
4499
4500
4500 * Removed the unneeded check_option_names. Now options are handled
4501 * Removed the unneeded check_option_names. Now options are handled
4501 in a much saner manner and it's easy to visually check that things
4502 in a much saner manner and it's easy to visually check that things
4502 are ok.
4503 are ok.
4503
4504
4504 * Updated version numbers on all files I modified to carry a
4505 * Updated version numbers on all files I modified to carry a
4505 notice so Janko and Nathan have clear version markers.
4506 notice so Janko and Nathan have clear version markers.
4506
4507
4507 * Updated docstring for ultraTB with my changes. I should send
4508 * Updated docstring for ultraTB with my changes. I should send
4508 this to Nathan.
4509 this to Nathan.
4509
4510
4510 * Lots of small fixes. Ran everything through pychecker again.
4511 * Lots of small fixes. Ran everything through pychecker again.
4511
4512
4512 * Made loading of deep_reload an cmd line option. If it's not too
4513 * Made loading of deep_reload an cmd line option. If it's not too
4513 kosher, now people can just disable it. With -nodeep_reload it's
4514 kosher, now people can just disable it. With -nodeep_reload it's
4514 still available as dreload(), it just won't overwrite reload().
4515 still available as dreload(), it just won't overwrite reload().
4515
4516
4516 * Moved many options to the no| form (-opt and -noopt
4517 * Moved many options to the no| form (-opt and -noopt
4517 accepted). Cleaner.
4518 accepted). Cleaner.
4518
4519
4519 * Changed magic_log so that if called with no parameters, it uses
4520 * Changed magic_log so that if called with no parameters, it uses
4520 'rotate' mode. That way auto-generated logs aren't automatically
4521 'rotate' mode. That way auto-generated logs aren't automatically
4521 over-written. For normal logs, now a backup is made if it exists
4522 over-written. For normal logs, now a backup is made if it exists
4522 (only 1 level of backups). A new 'backup' mode was added to the
4523 (only 1 level of backups). A new 'backup' mode was added to the
4523 Logger class to support this. This was a request by Janko.
4524 Logger class to support this. This was a request by Janko.
4524
4525
4525 * Added @logoff/@logon to stop/restart an active log.
4526 * Added @logoff/@logon to stop/restart an active log.
4526
4527
4527 * Fixed a lot of bugs in log saving/replay. It was pretty
4528 * Fixed a lot of bugs in log saving/replay. It was pretty
4528 broken. Now special lines (!@,/) appear properly in the command
4529 broken. Now special lines (!@,/) appear properly in the command
4529 history after a log replay.
4530 history after a log replay.
4530
4531
4531 * Tried and failed to implement full session saving via pickle. My
4532 * Tried and failed to implement full session saving via pickle. My
4532 idea was to pickle __main__.__dict__, but modules can't be
4533 idea was to pickle __main__.__dict__, but modules can't be
4533 pickled. This would be a better alternative to replaying logs, but
4534 pickled. This would be a better alternative to replaying logs, but
4534 seems quite tricky to get to work. Changed -session to be called
4535 seems quite tricky to get to work. Changed -session to be called
4535 -logplay, which more accurately reflects what it does. And if we
4536 -logplay, which more accurately reflects what it does. And if we
4536 ever get real session saving working, -session is now available.
4537 ever get real session saving working, -session is now available.
4537
4538
4538 * Implemented color schemes for prompts also. As for tracebacks,
4539 * Implemented color schemes for prompts also. As for tracebacks,
4539 currently only NoColor and Linux are supported. But now the
4540 currently only NoColor and Linux are supported. But now the
4540 infrastructure is in place, based on a generic ColorScheme
4541 infrastructure is in place, based on a generic ColorScheme
4541 class. So writing and activating new schemes both for the prompts
4542 class. So writing and activating new schemes both for the prompts
4542 and the tracebacks should be straightforward.
4543 and the tracebacks should be straightforward.
4543
4544
4544 * Version 0.1.13 released, 0.1.14 opened.
4545 * Version 0.1.13 released, 0.1.14 opened.
4545
4546
4546 * Changed handling of options for output cache. Now counter is
4547 * Changed handling of options for output cache. Now counter is
4547 hardwired starting at 1 and one specifies the maximum number of
4548 hardwired starting at 1 and one specifies the maximum number of
4548 entries *in the outcache* (not the max prompt counter). This is
4549 entries *in the outcache* (not the max prompt counter). This is
4549 much better, since many statements won't increase the cache
4550 much better, since many statements won't increase the cache
4550 count. It also eliminated some confusing options, now there's only
4551 count. It also eliminated some confusing options, now there's only
4551 one: cache_size.
4552 one: cache_size.
4552
4553
4553 * Added 'alias' magic function and magic_alias option in the
4554 * Added 'alias' magic function and magic_alias option in the
4554 ipythonrc file. Now the user can easily define whatever names he
4555 ipythonrc file. Now the user can easily define whatever names he
4555 wants for the magic functions without having to play weird
4556 wants for the magic functions without having to play weird
4556 namespace games. This gives IPython a real shell-like feel.
4557 namespace games. This gives IPython a real shell-like feel.
4557
4558
4558 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4559 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4559 @ or not).
4560 @ or not).
4560
4561
4561 This was one of the last remaining 'visible' bugs (that I know
4562 This was one of the last remaining 'visible' bugs (that I know
4562 of). I think if I can clean up the session loading so it works
4563 of). I think if I can clean up the session loading so it works
4563 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4564 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4564 about licensing).
4565 about licensing).
4565
4566
4566 2001-11-25 Fernando Perez <fperez@colorado.edu>
4567 2001-11-25 Fernando Perez <fperez@colorado.edu>
4567
4568
4568 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4569 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4569 there's a cleaner distinction between what ? and ?? show.
4570 there's a cleaner distinction between what ? and ?? show.
4570
4571
4571 * Added screen_length option. Now the user can define his own
4572 * Added screen_length option. Now the user can define his own
4572 screen size for page() operations.
4573 screen size for page() operations.
4573
4574
4574 * Implemented magic shell-like functions with automatic code
4575 * Implemented magic shell-like functions with automatic code
4575 generation. Now adding another function is just a matter of adding
4576 generation. Now adding another function is just a matter of adding
4576 an entry to a dict, and the function is dynamically generated at
4577 an entry to a dict, and the function is dynamically generated at
4577 run-time. Python has some really cool features!
4578 run-time. Python has some really cool features!
4578
4579
4579 * Renamed many options to cleanup conventions a little. Now all
4580 * Renamed many options to cleanup conventions a little. Now all
4580 are lowercase, and only underscores where needed. Also in the code
4581 are lowercase, and only underscores where needed. Also in the code
4581 option name tables are clearer.
4582 option name tables are clearer.
4582
4583
4583 * Changed prompts a little. Now input is 'In [n]:' instead of
4584 * Changed prompts a little. Now input is 'In [n]:' instead of
4584 'In[n]:='. This allows it the numbers to be aligned with the
4585 'In[n]:='. This allows it the numbers to be aligned with the
4585 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4586 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4586 Python (it was a Mathematica thing). The '...' continuation prompt
4587 Python (it was a Mathematica thing). The '...' continuation prompt
4587 was also changed a little to align better.
4588 was also changed a little to align better.
4588
4589
4589 * Fixed bug when flushing output cache. Not all _p<n> variables
4590 * Fixed bug when flushing output cache. Not all _p<n> variables
4590 exist, so their deletion needs to be wrapped in a try:
4591 exist, so their deletion needs to be wrapped in a try:
4591
4592
4592 * Figured out how to properly use inspect.formatargspec() (it
4593 * Figured out how to properly use inspect.formatargspec() (it
4593 requires the args preceded by *). So I removed all the code from
4594 requires the args preceded by *). So I removed all the code from
4594 _get_pdef in Magic, which was just replicating that.
4595 _get_pdef in Magic, which was just replicating that.
4595
4596
4596 * Added test to prefilter to allow redefining magic function names
4597 * Added test to prefilter to allow redefining magic function names
4597 as variables. This is ok, since the @ form is always available,
4598 as variables. This is ok, since the @ form is always available,
4598 but whe should allow the user to define a variable called 'ls' if
4599 but whe should allow the user to define a variable called 'ls' if
4599 he needs it.
4600 he needs it.
4600
4601
4601 * Moved the ToDo information from README into a separate ToDo.
4602 * Moved the ToDo information from README into a separate ToDo.
4602
4603
4603 * General code cleanup and small bugfixes. I think it's close to a
4604 * General code cleanup and small bugfixes. I think it's close to a
4604 state where it can be released, obviously with a big 'beta'
4605 state where it can be released, obviously with a big 'beta'
4605 warning on it.
4606 warning on it.
4606
4607
4607 * Got the magic function split to work. Now all magics are defined
4608 * Got the magic function split to work. Now all magics are defined
4608 in a separate class. It just organizes things a bit, and now
4609 in a separate class. It just organizes things a bit, and now
4609 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4610 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4610 was too long).
4611 was too long).
4611
4612
4612 * Changed @clear to @reset to avoid potential confusions with
4613 * Changed @clear to @reset to avoid potential confusions with
4613 the shell command clear. Also renamed @cl to @clear, which does
4614 the shell command clear. Also renamed @cl to @clear, which does
4614 exactly what people expect it to from their shell experience.
4615 exactly what people expect it to from their shell experience.
4615
4616
4616 Added a check to the @reset command (since it's so
4617 Added a check to the @reset command (since it's so
4617 destructive, it's probably a good idea to ask for confirmation).
4618 destructive, it's probably a good idea to ask for confirmation).
4618 But now reset only works for full namespace resetting. Since the
4619 But now reset only works for full namespace resetting. Since the
4619 del keyword is already there for deleting a few specific
4620 del keyword is already there for deleting a few specific
4620 variables, I don't see the point of having a redundant magic
4621 variables, I don't see the point of having a redundant magic
4621 function for the same task.
4622 function for the same task.
4622
4623
4623 2001-11-24 Fernando Perez <fperez@colorado.edu>
4624 2001-11-24 Fernando Perez <fperez@colorado.edu>
4624
4625
4625 * Updated the builtin docs (esp. the ? ones).
4626 * Updated the builtin docs (esp. the ? ones).
4626
4627
4627 * Ran all the code through pychecker. Not terribly impressed with
4628 * Ran all the code through pychecker. Not terribly impressed with
4628 it: lots of spurious warnings and didn't really find anything of
4629 it: lots of spurious warnings and didn't really find anything of
4629 substance (just a few modules being imported and not used).
4630 substance (just a few modules being imported and not used).
4630
4631
4631 * Implemented the new ultraTB functionality into IPython. New
4632 * Implemented the new ultraTB functionality into IPython. New
4632 option: xcolors. This chooses color scheme. xmode now only selects
4633 option: xcolors. This chooses color scheme. xmode now only selects
4633 between Plain and Verbose. Better orthogonality.
4634 between Plain and Verbose. Better orthogonality.
4634
4635
4635 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4636 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4636 mode and color scheme for the exception handlers. Now it's
4637 mode and color scheme for the exception handlers. Now it's
4637 possible to have the verbose traceback with no coloring.
4638 possible to have the verbose traceback with no coloring.
4638
4639
4639 2001-11-23 Fernando Perez <fperez@colorado.edu>
4640 2001-11-23 Fernando Perez <fperez@colorado.edu>
4640
4641
4641 * Version 0.1.12 released, 0.1.13 opened.
4642 * Version 0.1.12 released, 0.1.13 opened.
4642
4643
4643 * Removed option to set auto-quote and auto-paren escapes by
4644 * Removed option to set auto-quote and auto-paren escapes by
4644 user. The chances of breaking valid syntax are just too high. If
4645 user. The chances of breaking valid syntax are just too high. If
4645 someone *really* wants, they can always dig into the code.
4646 someone *really* wants, they can always dig into the code.
4646
4647
4647 * Made prompt separators configurable.
4648 * Made prompt separators configurable.
4648
4649
4649 2001-11-22 Fernando Perez <fperez@colorado.edu>
4650 2001-11-22 Fernando Perez <fperez@colorado.edu>
4650
4651
4651 * Small bugfixes in many places.
4652 * Small bugfixes in many places.
4652
4653
4653 * Removed the MyCompleter class from ipplib. It seemed redundant
4654 * Removed the MyCompleter class from ipplib. It seemed redundant
4654 with the C-p,C-n history search functionality. Less code to
4655 with the C-p,C-n history search functionality. Less code to
4655 maintain.
4656 maintain.
4656
4657
4657 * Moved all the original ipython.py code into ipythonlib.py. Right
4658 * Moved all the original ipython.py code into ipythonlib.py. Right
4658 now it's just one big dump into a function called make_IPython, so
4659 now it's just one big dump into a function called make_IPython, so
4659 no real modularity has been gained. But at least it makes the
4660 no real modularity has been gained. But at least it makes the
4660 wrapper script tiny, and since ipythonlib is a module, it gets
4661 wrapper script tiny, and since ipythonlib is a module, it gets
4661 compiled and startup is much faster.
4662 compiled and startup is much faster.
4662
4663
4663 This is a reasobably 'deep' change, so we should test it for a
4664 This is a reasobably 'deep' change, so we should test it for a
4664 while without messing too much more with the code.
4665 while without messing too much more with the code.
4665
4666
4666 2001-11-21 Fernando Perez <fperez@colorado.edu>
4667 2001-11-21 Fernando Perez <fperez@colorado.edu>
4667
4668
4668 * Version 0.1.11 released, 0.1.12 opened for further work.
4669 * Version 0.1.11 released, 0.1.12 opened for further work.
4669
4670
4670 * Removed dependency on Itpl. It was only needed in one place. It
4671 * Removed dependency on Itpl. It was only needed in one place. It
4671 would be nice if this became part of python, though. It makes life
4672 would be nice if this became part of python, though. It makes life
4672 *a lot* easier in some cases.
4673 *a lot* easier in some cases.
4673
4674
4674 * Simplified the prefilter code a bit. Now all handlers are
4675 * Simplified the prefilter code a bit. Now all handlers are
4675 expected to explicitly return a value (at least a blank string).
4676 expected to explicitly return a value (at least a blank string).
4676
4677
4677 * Heavy edits in ipplib. Removed the help system altogether. Now
4678 * Heavy edits in ipplib. Removed the help system altogether. Now
4678 obj?/?? is used for inspecting objects, a magic @doc prints
4679 obj?/?? is used for inspecting objects, a magic @doc prints
4679 docstrings, and full-blown Python help is accessed via the 'help'
4680 docstrings, and full-blown Python help is accessed via the 'help'
4680 keyword. This cleans up a lot of code (less to maintain) and does
4681 keyword. This cleans up a lot of code (less to maintain) and does
4681 the job. Since 'help' is now a standard Python component, might as
4682 the job. Since 'help' is now a standard Python component, might as
4682 well use it and remove duplicate functionality.
4683 well use it and remove duplicate functionality.
4683
4684
4684 Also removed the option to use ipplib as a standalone program. By
4685 Also removed the option to use ipplib as a standalone program. By
4685 now it's too dependent on other parts of IPython to function alone.
4686 now it's too dependent on other parts of IPython to function alone.
4686
4687
4687 * Fixed bug in genutils.pager. It would crash if the pager was
4688 * Fixed bug in genutils.pager. It would crash if the pager was
4688 exited immediately after opening (broken pipe).
4689 exited immediately after opening (broken pipe).
4689
4690
4690 * Trimmed down the VerboseTB reporting a little. The header is
4691 * Trimmed down the VerboseTB reporting a little. The header is
4691 much shorter now and the repeated exception arguments at the end
4692 much shorter now and the repeated exception arguments at the end
4692 have been removed. For interactive use the old header seemed a bit
4693 have been removed. For interactive use the old header seemed a bit
4693 excessive.
4694 excessive.
4694
4695
4695 * Fixed small bug in output of @whos for variables with multi-word
4696 * Fixed small bug in output of @whos for variables with multi-word
4696 types (only first word was displayed).
4697 types (only first word was displayed).
4697
4698
4698 2001-11-17 Fernando Perez <fperez@colorado.edu>
4699 2001-11-17 Fernando Perez <fperez@colorado.edu>
4699
4700
4700 * Version 0.1.10 released, 0.1.11 opened for further work.
4701 * Version 0.1.10 released, 0.1.11 opened for further work.
4701
4702
4702 * Modified dirs and friends. dirs now *returns* the stack (not
4703 * Modified dirs and friends. dirs now *returns* the stack (not
4703 prints), so one can manipulate it as a variable. Convenient to
4704 prints), so one can manipulate it as a variable. Convenient to
4704 travel along many directories.
4705 travel along many directories.
4705
4706
4706 * Fixed bug in magic_pdef: would only work with functions with
4707 * Fixed bug in magic_pdef: would only work with functions with
4707 arguments with default values.
4708 arguments with default values.
4708
4709
4709 2001-11-14 Fernando Perez <fperez@colorado.edu>
4710 2001-11-14 Fernando Perez <fperez@colorado.edu>
4710
4711
4711 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4712 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4712 example with IPython. Various other minor fixes and cleanups.
4713 example with IPython. Various other minor fixes and cleanups.
4713
4714
4714 * Version 0.1.9 released, 0.1.10 opened for further work.
4715 * Version 0.1.9 released, 0.1.10 opened for further work.
4715
4716
4716 * Added sys.path to the list of directories searched in the
4717 * Added sys.path to the list of directories searched in the
4717 execfile= option. It used to be the current directory and the
4718 execfile= option. It used to be the current directory and the
4718 user's IPYTHONDIR only.
4719 user's IPYTHONDIR only.
4719
4720
4720 2001-11-13 Fernando Perez <fperez@colorado.edu>
4721 2001-11-13 Fernando Perez <fperez@colorado.edu>
4721
4722
4722 * Reinstated the raw_input/prefilter separation that Janko had
4723 * Reinstated the raw_input/prefilter separation that Janko had
4723 initially. This gives a more convenient setup for extending the
4724 initially. This gives a more convenient setup for extending the
4724 pre-processor from the outside: raw_input always gets a string,
4725 pre-processor from the outside: raw_input always gets a string,
4725 and prefilter has to process it. We can then redefine prefilter
4726 and prefilter has to process it. We can then redefine prefilter
4726 from the outside and implement extensions for special
4727 from the outside and implement extensions for special
4727 purposes.
4728 purposes.
4728
4729
4729 Today I got one for inputting PhysicalQuantity objects
4730 Today I got one for inputting PhysicalQuantity objects
4730 (from Scientific) without needing any function calls at
4731 (from Scientific) without needing any function calls at
4731 all. Extremely convenient, and it's all done as a user-level
4732 all. Extremely convenient, and it's all done as a user-level
4732 extension (no IPython code was touched). Now instead of:
4733 extension (no IPython code was touched). Now instead of:
4733 a = PhysicalQuantity(4.2,'m/s**2')
4734 a = PhysicalQuantity(4.2,'m/s**2')
4734 one can simply say
4735 one can simply say
4735 a = 4.2 m/s**2
4736 a = 4.2 m/s**2
4736 or even
4737 or even
4737 a = 4.2 m/s^2
4738 a = 4.2 m/s^2
4738
4739
4739 I use this, but it's also a proof of concept: IPython really is
4740 I use this, but it's also a proof of concept: IPython really is
4740 fully user-extensible, even at the level of the parsing of the
4741 fully user-extensible, even at the level of the parsing of the
4741 command line. It's not trivial, but it's perfectly doable.
4742 command line. It's not trivial, but it's perfectly doable.
4742
4743
4743 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4744 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4744 the problem of modules being loaded in the inverse order in which
4745 the problem of modules being loaded in the inverse order in which
4745 they were defined in
4746 they were defined in
4746
4747
4747 * Version 0.1.8 released, 0.1.9 opened for further work.
4748 * Version 0.1.8 released, 0.1.9 opened for further work.
4748
4749
4749 * Added magics pdef, source and file. They respectively show the
4750 * Added magics pdef, source and file. They respectively show the
4750 definition line ('prototype' in C), source code and full python
4751 definition line ('prototype' in C), source code and full python
4751 file for any callable object. The object inspector oinfo uses
4752 file for any callable object. The object inspector oinfo uses
4752 these to show the same information.
4753 these to show the same information.
4753
4754
4754 * Version 0.1.7 released, 0.1.8 opened for further work.
4755 * Version 0.1.7 released, 0.1.8 opened for further work.
4755
4756
4756 * Separated all the magic functions into a class called Magic. The
4757 * Separated all the magic functions into a class called Magic. The
4757 InteractiveShell class was becoming too big for Xemacs to handle
4758 InteractiveShell class was becoming too big for Xemacs to handle
4758 (de-indenting a line would lock it up for 10 seconds while it
4759 (de-indenting a line would lock it up for 10 seconds while it
4759 backtracked on the whole class!)
4760 backtracked on the whole class!)
4760
4761
4761 FIXME: didn't work. It can be done, but right now namespaces are
4762 FIXME: didn't work. It can be done, but right now namespaces are
4762 all messed up. Do it later (reverted it for now, so at least
4763 all messed up. Do it later (reverted it for now, so at least
4763 everything works as before).
4764 everything works as before).
4764
4765
4765 * Got the object introspection system (magic_oinfo) working! I
4766 * Got the object introspection system (magic_oinfo) working! I
4766 think this is pretty much ready for release to Janko, so he can
4767 think this is pretty much ready for release to Janko, so he can
4767 test it for a while and then announce it. Pretty much 100% of what
4768 test it for a while and then announce it. Pretty much 100% of what
4768 I wanted for the 'phase 1' release is ready. Happy, tired.
4769 I wanted for the 'phase 1' release is ready. Happy, tired.
4769
4770
4770 2001-11-12 Fernando Perez <fperez@colorado.edu>
4771 2001-11-12 Fernando Perez <fperez@colorado.edu>
4771
4772
4772 * Version 0.1.6 released, 0.1.7 opened for further work.
4773 * Version 0.1.6 released, 0.1.7 opened for further work.
4773
4774
4774 * Fixed bug in printing: it used to test for truth before
4775 * Fixed bug in printing: it used to test for truth before
4775 printing, so 0 wouldn't print. Now checks for None.
4776 printing, so 0 wouldn't print. Now checks for None.
4776
4777
4777 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4778 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4778 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4779 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4779 reaches by hand into the outputcache. Think of a better way to do
4780 reaches by hand into the outputcache. Think of a better way to do
4780 this later.
4781 this later.
4781
4782
4782 * Various small fixes thanks to Nathan's comments.
4783 * Various small fixes thanks to Nathan's comments.
4783
4784
4784 * Changed magic_pprint to magic_Pprint. This way it doesn't
4785 * Changed magic_pprint to magic_Pprint. This way it doesn't
4785 collide with pprint() and the name is consistent with the command
4786 collide with pprint() and the name is consistent with the command
4786 line option.
4787 line option.
4787
4788
4788 * Changed prompt counter behavior to be fully like
4789 * Changed prompt counter behavior to be fully like
4789 Mathematica's. That is, even input that doesn't return a result
4790 Mathematica's. That is, even input that doesn't return a result
4790 raises the prompt counter. The old behavior was kind of confusing
4791 raises the prompt counter. The old behavior was kind of confusing
4791 (getting the same prompt number several times if the operation
4792 (getting the same prompt number several times if the operation
4792 didn't return a result).
4793 didn't return a result).
4793
4794
4794 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4795 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4795
4796
4796 * Fixed -Classic mode (wasn't working anymore).
4797 * Fixed -Classic mode (wasn't working anymore).
4797
4798
4798 * Added colored prompts using Nathan's new code. Colors are
4799 * Added colored prompts using Nathan's new code. Colors are
4799 currently hardwired, they can be user-configurable. For
4800 currently hardwired, they can be user-configurable. For
4800 developers, they can be chosen in file ipythonlib.py, at the
4801 developers, they can be chosen in file ipythonlib.py, at the
4801 beginning of the CachedOutput class def.
4802 beginning of the CachedOutput class def.
4802
4803
4803 2001-11-11 Fernando Perez <fperez@colorado.edu>
4804 2001-11-11 Fernando Perez <fperez@colorado.edu>
4804
4805
4805 * Version 0.1.5 released, 0.1.6 opened for further work.
4806 * Version 0.1.5 released, 0.1.6 opened for further work.
4806
4807
4807 * Changed magic_env to *return* the environment as a dict (not to
4808 * Changed magic_env to *return* the environment as a dict (not to
4808 print it). This way it prints, but it can also be processed.
4809 print it). This way it prints, but it can also be processed.
4809
4810
4810 * Added Verbose exception reporting to interactive
4811 * Added Verbose exception reporting to interactive
4811 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4812 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4812 traceback. Had to make some changes to the ultraTB file. This is
4813 traceback. Had to make some changes to the ultraTB file. This is
4813 probably the last 'big' thing in my mental todo list. This ties
4814 probably the last 'big' thing in my mental todo list. This ties
4814 in with the next entry:
4815 in with the next entry:
4815
4816
4816 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4817 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4817 has to specify is Plain, Color or Verbose for all exception
4818 has to specify is Plain, Color or Verbose for all exception
4818 handling.
4819 handling.
4819
4820
4820 * Removed ShellServices option. All this can really be done via
4821 * Removed ShellServices option. All this can really be done via
4821 the magic system. It's easier to extend, cleaner and has automatic
4822 the magic system. It's easier to extend, cleaner and has automatic
4822 namespace protection and documentation.
4823 namespace protection and documentation.
4823
4824
4824 2001-11-09 Fernando Perez <fperez@colorado.edu>
4825 2001-11-09 Fernando Perez <fperez@colorado.edu>
4825
4826
4826 * Fixed bug in output cache flushing (missing parameter to
4827 * Fixed bug in output cache flushing (missing parameter to
4827 __init__). Other small bugs fixed (found using pychecker).
4828 __init__). Other small bugs fixed (found using pychecker).
4828
4829
4829 * Version 0.1.4 opened for bugfixing.
4830 * Version 0.1.4 opened for bugfixing.
4830
4831
4831 2001-11-07 Fernando Perez <fperez@colorado.edu>
4832 2001-11-07 Fernando Perez <fperez@colorado.edu>
4832
4833
4833 * Version 0.1.3 released, mainly because of the raw_input bug.
4834 * Version 0.1.3 released, mainly because of the raw_input bug.
4834
4835
4835 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4836 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4836 and when testing for whether things were callable, a call could
4837 and when testing for whether things were callable, a call could
4837 actually be made to certain functions. They would get called again
4838 actually be made to certain functions. They would get called again
4838 once 'really' executed, with a resulting double call. A disaster
4839 once 'really' executed, with a resulting double call. A disaster
4839 in many cases (list.reverse() would never work!).
4840 in many cases (list.reverse() would never work!).
4840
4841
4841 * Removed prefilter() function, moved its code to raw_input (which
4842 * Removed prefilter() function, moved its code to raw_input (which
4842 after all was just a near-empty caller for prefilter). This saves
4843 after all was just a near-empty caller for prefilter). This saves
4843 a function call on every prompt, and simplifies the class a tiny bit.
4844 a function call on every prompt, and simplifies the class a tiny bit.
4844
4845
4845 * Fix _ip to __ip name in magic example file.
4846 * Fix _ip to __ip name in magic example file.
4846
4847
4847 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4848 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4848 work with non-gnu versions of tar.
4849 work with non-gnu versions of tar.
4849
4850
4850 2001-11-06 Fernando Perez <fperez@colorado.edu>
4851 2001-11-06 Fernando Perez <fperez@colorado.edu>
4851
4852
4852 * Version 0.1.2. Just to keep track of the recent changes.
4853 * Version 0.1.2. Just to keep track of the recent changes.
4853
4854
4854 * Fixed nasty bug in output prompt routine. It used to check 'if
4855 * Fixed nasty bug in output prompt routine. It used to check 'if
4855 arg != None...'. Problem is, this fails if arg implements a
4856 arg != None...'. Problem is, this fails if arg implements a
4856 special comparison (__cmp__) which disallows comparing to
4857 special comparison (__cmp__) which disallows comparing to
4857 None. Found it when trying to use the PhysicalQuantity module from
4858 None. Found it when trying to use the PhysicalQuantity module from
4858 ScientificPython.
4859 ScientificPython.
4859
4860
4860 2001-11-05 Fernando Perez <fperez@colorado.edu>
4861 2001-11-05 Fernando Perez <fperez@colorado.edu>
4861
4862
4862 * Also added dirs. Now the pushd/popd/dirs family functions
4863 * Also added dirs. Now the pushd/popd/dirs family functions
4863 basically like the shell, with the added convenience of going home
4864 basically like the shell, with the added convenience of going home
4864 when called with no args.
4865 when called with no args.
4865
4866
4866 * pushd/popd slightly modified to mimic shell behavior more
4867 * pushd/popd slightly modified to mimic shell behavior more
4867 closely.
4868 closely.
4868
4869
4869 * Added env,pushd,popd from ShellServices as magic functions. I
4870 * Added env,pushd,popd from ShellServices as magic functions. I
4870 think the cleanest will be to port all desired functions from
4871 think the cleanest will be to port all desired functions from
4871 ShellServices as magics and remove ShellServices altogether. This
4872 ShellServices as magics and remove ShellServices altogether. This
4872 will provide a single, clean way of adding functionality
4873 will provide a single, clean way of adding functionality
4873 (shell-type or otherwise) to IP.
4874 (shell-type or otherwise) to IP.
4874
4875
4875 2001-11-04 Fernando Perez <fperez@colorado.edu>
4876 2001-11-04 Fernando Perez <fperez@colorado.edu>
4876
4877
4877 * Added .ipython/ directory to sys.path. This way users can keep
4878 * Added .ipython/ directory to sys.path. This way users can keep
4878 customizations there and access them via import.
4879 customizations there and access them via import.
4879
4880
4880 2001-11-03 Fernando Perez <fperez@colorado.edu>
4881 2001-11-03 Fernando Perez <fperez@colorado.edu>
4881
4882
4882 * Opened version 0.1.1 for new changes.
4883 * Opened version 0.1.1 for new changes.
4883
4884
4884 * Changed version number to 0.1.0: first 'public' release, sent to
4885 * Changed version number to 0.1.0: first 'public' release, sent to
4885 Nathan and Janko.
4886 Nathan and Janko.
4886
4887
4887 * Lots of small fixes and tweaks.
4888 * Lots of small fixes and tweaks.
4888
4889
4889 * Minor changes to whos format. Now strings are shown, snipped if
4890 * Minor changes to whos format. Now strings are shown, snipped if
4890 too long.
4891 too long.
4891
4892
4892 * Changed ShellServices to work on __main__ so they show up in @who
4893 * Changed ShellServices to work on __main__ so they show up in @who
4893
4894
4894 * Help also works with ? at the end of a line:
4895 * Help also works with ? at the end of a line:
4895 ?sin and sin?
4896 ?sin and sin?
4896 both produce the same effect. This is nice, as often I use the
4897 both produce the same effect. This is nice, as often I use the
4897 tab-complete to find the name of a method, but I used to then have
4898 tab-complete to find the name of a method, but I used to then have
4898 to go to the beginning of the line to put a ? if I wanted more
4899 to go to the beginning of the line to put a ? if I wanted more
4899 info. Now I can just add the ? and hit return. Convenient.
4900 info. Now I can just add the ? and hit return. Convenient.
4900
4901
4901 2001-11-02 Fernando Perez <fperez@colorado.edu>
4902 2001-11-02 Fernando Perez <fperez@colorado.edu>
4902
4903
4903 * Python version check (>=2.1) added.
4904 * Python version check (>=2.1) added.
4904
4905
4905 * Added LazyPython documentation. At this point the docs are quite
4906 * Added LazyPython documentation. At this point the docs are quite
4906 a mess. A cleanup is in order.
4907 a mess. A cleanup is in order.
4907
4908
4908 * Auto-installer created. For some bizarre reason, the zipfiles
4909 * Auto-installer created. For some bizarre reason, the zipfiles
4909 module isn't working on my system. So I made a tar version
4910 module isn't working on my system. So I made a tar version
4910 (hopefully the command line options in various systems won't kill
4911 (hopefully the command line options in various systems won't kill
4911 me).
4912 me).
4912
4913
4913 * Fixes to Struct in genutils. Now all dictionary-like methods are
4914 * Fixes to Struct in genutils. Now all dictionary-like methods are
4914 protected (reasonably).
4915 protected (reasonably).
4915
4916
4916 * Added pager function to genutils and changed ? to print usage
4917 * Added pager function to genutils and changed ? to print usage
4917 note through it (it was too long).
4918 note through it (it was too long).
4918
4919
4919 * Added the LazyPython functionality. Works great! I changed the
4920 * Added the LazyPython functionality. Works great! I changed the
4920 auto-quote escape to ';', it's on home row and next to '. But
4921 auto-quote escape to ';', it's on home row and next to '. But
4921 both auto-quote and auto-paren (still /) escapes are command-line
4922 both auto-quote and auto-paren (still /) escapes are command-line
4922 parameters.
4923 parameters.
4923
4924
4924
4925
4925 2001-11-01 Fernando Perez <fperez@colorado.edu>
4926 2001-11-01 Fernando Perez <fperez@colorado.edu>
4926
4927
4927 * Version changed to 0.0.7. Fairly large change: configuration now
4928 * Version changed to 0.0.7. Fairly large change: configuration now
4928 is all stored in a directory, by default .ipython. There, all
4929 is all stored in a directory, by default .ipython. There, all
4929 config files have normal looking names (not .names)
4930 config files have normal looking names (not .names)
4930
4931
4931 * Version 0.0.6 Released first to Lucas and Archie as a test
4932 * Version 0.0.6 Released first to Lucas and Archie as a test
4932 run. Since it's the first 'semi-public' release, change version to
4933 run. Since it's the first 'semi-public' release, change version to
4933 > 0.0.6 for any changes now.
4934 > 0.0.6 for any changes now.
4934
4935
4935 * Stuff I had put in the ipplib.py changelog:
4936 * Stuff I had put in the ipplib.py changelog:
4936
4937
4937 Changes to InteractiveShell:
4938 Changes to InteractiveShell:
4938
4939
4939 - Made the usage message a parameter.
4940 - Made the usage message a parameter.
4940
4941
4941 - Require the name of the shell variable to be given. It's a bit
4942 - Require the name of the shell variable to be given. It's a bit
4942 of a hack, but allows the name 'shell' not to be hardwire in the
4943 of a hack, but allows the name 'shell' not to be hardwire in the
4943 magic (@) handler, which is problematic b/c it requires
4944 magic (@) handler, which is problematic b/c it requires
4944 polluting the global namespace with 'shell'. This in turn is
4945 polluting the global namespace with 'shell'. This in turn is
4945 fragile: if a user redefines a variable called shell, things
4946 fragile: if a user redefines a variable called shell, things
4946 break.
4947 break.
4947
4948
4948 - magic @: all functions available through @ need to be defined
4949 - magic @: all functions available through @ need to be defined
4949 as magic_<name>, even though they can be called simply as
4950 as magic_<name>, even though they can be called simply as
4950 @<name>. This allows the special command @magic to gather
4951 @<name>. This allows the special command @magic to gather
4951 information automatically about all existing magic functions,
4952 information automatically about all existing magic functions,
4952 even if they are run-time user extensions, by parsing the shell
4953 even if they are run-time user extensions, by parsing the shell
4953 instance __dict__ looking for special magic_ names.
4954 instance __dict__ looking for special magic_ names.
4954
4955
4955 - mainloop: added *two* local namespace parameters. This allows
4956 - mainloop: added *two* local namespace parameters. This allows
4956 the class to differentiate between parameters which were there
4957 the class to differentiate between parameters which were there
4957 before and after command line initialization was processed. This
4958 before and after command line initialization was processed. This
4958 way, later @who can show things loaded at startup by the
4959 way, later @who can show things loaded at startup by the
4959 user. This trick was necessary to make session saving/reloading
4960 user. This trick was necessary to make session saving/reloading
4960 really work: ideally after saving/exiting/reloading a session,
4961 really work: ideally after saving/exiting/reloading a session,
4961 *everythin* should look the same, including the output of @who. I
4962 *everythin* should look the same, including the output of @who. I
4962 was only able to make this work with this double namespace
4963 was only able to make this work with this double namespace
4963 trick.
4964 trick.
4964
4965
4965 - added a header to the logfile which allows (almost) full
4966 - added a header to the logfile which allows (almost) full
4966 session restoring.
4967 session restoring.
4967
4968
4968 - prepend lines beginning with @ or !, with a and log
4969 - prepend lines beginning with @ or !, with a and log
4969 them. Why? !lines: may be useful to know what you did @lines:
4970 them. Why? !lines: may be useful to know what you did @lines:
4970 they may affect session state. So when restoring a session, at
4971 they may affect session state. So when restoring a session, at
4971 least inform the user of their presence. I couldn't quite get
4972 least inform the user of their presence. I couldn't quite get
4972 them to properly re-execute, but at least the user is warned.
4973 them to properly re-execute, but at least the user is warned.
4973
4974
4974 * Started ChangeLog.
4975 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now