##// END OF EJS Templates
Note about reverting to old %edit functionality in changelog
vivainio -
Show More
@@ -1,4918 +1,4923 b''
1 2006-01-16 Ville Vainio <vivainio@gmail.com>
2
3 * Reverted back to old %edit functionality that returns
4 file contents on exit.
5
1 2006-01-14 Ville Vainio <vivainio@gmail.com>
6 2006-01-14 Ville Vainio <vivainio@gmail.com>
2
7
3 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
8 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
4 ipapi decorators for python 2.4 users, options() provides access to rc
9 ipapi decorators for python 2.4 users, options() provides access to rc
5 data.
10 data.
6
11
7 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
12 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
8 as path separators (even on Linux ;-). Space character after
13 as path separators (even on Linux ;-). Space character after
9 backslash (as yielded by tab completer) is still space;
14 backslash (as yielded by tab completer) is still space;
10 "%cd long\ name" works as expected.
15 "%cd long\ name" works as expected.
11
16
12 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
17 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
13 as "chain of command", with priority. API stays the same,
18 as "chain of command", with priority. API stays the same,
14 TryNext exception raised by a hook function signals that
19 TryNext exception raised by a hook function signals that
15 current hook failed and next hook should try handling it, as
20 current hook failed and next hook should try handling it, as
16 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
21 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
17 requested configurable display hook, which is now implemented.
22 requested configurable display hook, which is now implemented.
18
23
19 2006-01-13 Ville Vainio <vivainio@gmail.com>
24 2006-01-13 Ville Vainio <vivainio@gmail.com>
20
25
21 * IPython/platutils*.py: platform specific utility functions,
26 * IPython/platutils*.py: platform specific utility functions,
22 so far only set_term_title is implemented (change terminal
27 so far only set_term_title is implemented (change terminal
23 label in windowing systems). %cd now changes the title to
28 label in windowing systems). %cd now changes the title to
24 current dir.
29 current dir.
25
30
26 * IPython/Release.py: Added myself to "authors" list,
31 * IPython/Release.py: Added myself to "authors" list,
27 had to create new files.
32 had to create new files.
28
33
29 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
34 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
30 shell escape; not a known bug but had potential to be one in the
35 shell escape; not a known bug but had potential to be one in the
31 future.
36 future.
32
37
33 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
38 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
34 extension API for IPython! See the module for usage example. Fix
39 extension API for IPython! See the module for usage example. Fix
35 OInspect for docstring-less magic functions.
40 OInspect for docstring-less magic functions.
36
41
37
42
38 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
43 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
39
44
40 * IPython/iplib.py (raw_input): temporarily deactivate all
45 * IPython/iplib.py (raw_input): temporarily deactivate all
41 attempts at allowing pasting of code with autoindent on. It
46 attempts at allowing pasting of code with autoindent on. It
42 introduced bugs (reported by Prabhu) and I can't seem to find a
47 introduced bugs (reported by Prabhu) and I can't seem to find a
43 robust combination which works in all cases. Will have to revisit
48 robust combination which works in all cases. Will have to revisit
44 later.
49 later.
45
50
46 * IPython/genutils.py: remove isspace() function. We've dropped
51 * IPython/genutils.py: remove isspace() function. We've dropped
47 2.2 compatibility, so it's OK to use the string method.
52 2.2 compatibility, so it's OK to use the string method.
48
53
49 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
54 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
50
55
51 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
56 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
52 matching what NOT to autocall on, to include all python binary
57 matching what NOT to autocall on, to include all python binary
53 operators (including things like 'and', 'or', 'is' and 'in').
58 operators (including things like 'and', 'or', 'is' and 'in').
54 Prompted by a bug report on 'foo & bar', but I realized we had
59 Prompted by a bug report on 'foo & bar', but I realized we had
55 many more potential bug cases with other operators. The regexp is
60 many more potential bug cases with other operators. The regexp is
56 self.re_exclude_auto, it's fairly commented.
61 self.re_exclude_auto, it's fairly commented.
57
62
58 2006-01-12 Ville Vainio <vivainio@gmail.com>
63 2006-01-12 Ville Vainio <vivainio@gmail.com>
59
64
60 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
65 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
61 Prettified and hardened string/backslash quoting with ipsystem(),
66 Prettified and hardened string/backslash quoting with ipsystem(),
62 ipalias() and ipmagic(). Now even \ characters are passed to
67 ipalias() and ipmagic(). Now even \ characters are passed to
63 %magics, !shell escapes and aliases exactly as they are in the
68 %magics, !shell escapes and aliases exactly as they are in the
64 ipython command line. Should improve backslash experience,
69 ipython command line. Should improve backslash experience,
65 particularly in Windows (path delimiter for some commands that
70 particularly in Windows (path delimiter for some commands that
66 won't understand '/'), but Unix benefits as well (regexps). %cd
71 won't understand '/'), but Unix benefits as well (regexps). %cd
67 magic still doesn't support backslash path delimiters, though. Also
72 magic still doesn't support backslash path delimiters, though. Also
68 deleted all pretense of supporting multiline command strings in
73 deleted all pretense of supporting multiline command strings in
69 !system or %magic commands. Thanks to Jerry McRae for suggestions.
74 !system or %magic commands. Thanks to Jerry McRae for suggestions.
70
75
71 * doc/build_doc_instructions.txt added. Documentation on how to
76 * doc/build_doc_instructions.txt added. Documentation on how to
72 use doc/update_manual.py, added yesterday. Both files contributed
77 use doc/update_manual.py, added yesterday. Both files contributed
73 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
78 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
74 doc/*.sh for deprecation at a later date.
79 doc/*.sh for deprecation at a later date.
75
80
76 * /ipython.py Added ipython.py to root directory for
81 * /ipython.py Added ipython.py to root directory for
77 zero-installation (tar xzvf ipython.tgz; cd ipython; python
82 zero-installation (tar xzvf ipython.tgz; cd ipython; python
78 ipython.py) and development convenience (no need to kee doing
83 ipython.py) and development convenience (no need to kee doing
79 "setup.py install" between changes).
84 "setup.py install" between changes).
80
85
81 * Made ! and !! shell escapes work (again) in multiline expressions:
86 * Made ! and !! shell escapes work (again) in multiline expressions:
82 if 1:
87 if 1:
83 !ls
88 !ls
84 !!ls
89 !!ls
85
90
86 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
91 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
87
92
88 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
93 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
89 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
94 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
90 module in case-insensitive installation. Was causing crashes
95 module in case-insensitive installation. Was causing crashes
91 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
96 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
92
97
93 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
98 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
94 <marienz-AT-gentoo.org>, closes
99 <marienz-AT-gentoo.org>, closes
95 http://www.scipy.net/roundup/ipython/issue51.
100 http://www.scipy.net/roundup/ipython/issue51.
96
101
97 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
102 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
98
103
99 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
104 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
100 problem of excessive CPU usage under *nix and keyboard lag under
105 problem of excessive CPU usage under *nix and keyboard lag under
101 win32.
106 win32.
102
107
103 2006-01-10 *** Released version 0.7.0
108 2006-01-10 *** Released version 0.7.0
104
109
105 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
110 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
106
111
107 * IPython/Release.py (revision): tag version number to 0.7.0,
112 * IPython/Release.py (revision): tag version number to 0.7.0,
108 ready for release.
113 ready for release.
109
114
110 * IPython/Magic.py (magic_edit): Add print statement to %edit so
115 * IPython/Magic.py (magic_edit): Add print statement to %edit so
111 it informs the user of the name of the temp. file used. This can
116 it informs the user of the name of the temp. file used. This can
112 help if you decide later to reuse that same file, so you know
117 help if you decide later to reuse that same file, so you know
113 where to copy the info from.
118 where to copy the info from.
114
119
115 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
120 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
116
121
117 * setup_bdist_egg.py: little script to build an egg. Added
122 * setup_bdist_egg.py: little script to build an egg. Added
118 support in the release tools as well.
123 support in the release tools as well.
119
124
120 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
125 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
121
126
122 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
127 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
123 version selection (new -wxversion command line and ipythonrc
128 version selection (new -wxversion command line and ipythonrc
124 parameter). Patch contributed by Arnd Baecker
129 parameter). Patch contributed by Arnd Baecker
125 <arnd.baecker-AT-web.de>.
130 <arnd.baecker-AT-web.de>.
126
131
127 * IPython/iplib.py (embed_mainloop): fix tab-completion in
132 * IPython/iplib.py (embed_mainloop): fix tab-completion in
128 embedded instances, for variables defined at the interactive
133 embedded instances, for variables defined at the interactive
129 prompt of the embedded ipython. Reported by Arnd.
134 prompt of the embedded ipython. Reported by Arnd.
130
135
131 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
136 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
132 it can be used as a (stateful) toggle, or with a direct parameter.
137 it can be used as a (stateful) toggle, or with a direct parameter.
133
138
134 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
139 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
135 could be triggered in certain cases and cause the traceback
140 could be triggered in certain cases and cause the traceback
136 printer not to work.
141 printer not to work.
137
142
138 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
143 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
139
144
140 * IPython/iplib.py (_should_recompile): Small fix, closes
145 * IPython/iplib.py (_should_recompile): Small fix, closes
141 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
146 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
142
147
143 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
148 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
144
149
145 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
150 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
146 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
151 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
147 Moad for help with tracking it down.
152 Moad for help with tracking it down.
148
153
149 * IPython/iplib.py (handle_auto): fix autocall handling for
154 * IPython/iplib.py (handle_auto): fix autocall handling for
150 objects which support BOTH __getitem__ and __call__ (so that f [x]
155 objects which support BOTH __getitem__ and __call__ (so that f [x]
151 is left alone, instead of becoming f([x]) automatically).
156 is left alone, instead of becoming f([x]) automatically).
152
157
153 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
158 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
154 Ville's patch.
159 Ville's patch.
155
160
156 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
161 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
157
162
158 * IPython/iplib.py (handle_auto): changed autocall semantics to
163 * IPython/iplib.py (handle_auto): changed autocall semantics to
159 include 'smart' mode, where the autocall transformation is NOT
164 include 'smart' mode, where the autocall transformation is NOT
160 applied if there are no arguments on the line. This allows you to
165 applied if there are no arguments on the line. This allows you to
161 just type 'foo' if foo is a callable to see its internal form,
166 just type 'foo' if foo is a callable to see its internal form,
162 instead of having it called with no arguments (typically a
167 instead of having it called with no arguments (typically a
163 mistake). The old 'full' autocall still exists: for that, you
168 mistake). The old 'full' autocall still exists: for that, you
164 need to set the 'autocall' parameter to 2 in your ipythonrc file.
169 need to set the 'autocall' parameter to 2 in your ipythonrc file.
165
170
166 * IPython/completer.py (Completer.attr_matches): add
171 * IPython/completer.py (Completer.attr_matches): add
167 tab-completion support for Enthoughts' traits. After a report by
172 tab-completion support for Enthoughts' traits. After a report by
168 Arnd and a patch by Prabhu.
173 Arnd and a patch by Prabhu.
169
174
170 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
175 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
171
176
172 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
177 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
173 Schmolck's patch to fix inspect.getinnerframes().
178 Schmolck's patch to fix inspect.getinnerframes().
174
179
175 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
180 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
176 for embedded instances, regarding handling of namespaces and items
181 for embedded instances, regarding handling of namespaces and items
177 added to the __builtin__ one. Multiple embedded instances and
182 added to the __builtin__ one. Multiple embedded instances and
178 recursive embeddings should work better now (though I'm not sure
183 recursive embeddings should work better now (though I'm not sure
179 I've got all the corner cases fixed, that code is a bit of a brain
184 I've got all the corner cases fixed, that code is a bit of a brain
180 twister).
185 twister).
181
186
182 * IPython/Magic.py (magic_edit): added support to edit in-memory
187 * IPython/Magic.py (magic_edit): added support to edit in-memory
183 macros (automatically creates the necessary temp files). %edit
188 macros (automatically creates the necessary temp files). %edit
184 also doesn't return the file contents anymore, it's just noise.
189 also doesn't return the file contents anymore, it's just noise.
185
190
186 * IPython/completer.py (Completer.attr_matches): revert change to
191 * IPython/completer.py (Completer.attr_matches): revert change to
187 complete only on attributes listed in __all__. I realized it
192 complete only on attributes listed in __all__. I realized it
188 cripples the tab-completion system as a tool for exploring the
193 cripples the tab-completion system as a tool for exploring the
189 internals of unknown libraries (it renders any non-__all__
194 internals of unknown libraries (it renders any non-__all__
190 attribute off-limits). I got bit by this when trying to see
195 attribute off-limits). I got bit by this when trying to see
191 something inside the dis module.
196 something inside the dis module.
192
197
193 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
198 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
194
199
195 * IPython/iplib.py (InteractiveShell.__init__): add .meta
200 * IPython/iplib.py (InteractiveShell.__init__): add .meta
196 namespace for users and extension writers to hold data in. This
201 namespace for users and extension writers to hold data in. This
197 follows the discussion in
202 follows the discussion in
198 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
203 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
199
204
200 * IPython/completer.py (IPCompleter.complete): small patch to help
205 * IPython/completer.py (IPCompleter.complete): small patch to help
201 tab-completion under Emacs, after a suggestion by John Barnard
206 tab-completion under Emacs, after a suggestion by John Barnard
202 <barnarj-AT-ccf.org>.
207 <barnarj-AT-ccf.org>.
203
208
204 * IPython/Magic.py (Magic.extract_input_slices): added support for
209 * IPython/Magic.py (Magic.extract_input_slices): added support for
205 the slice notation in magics to use N-M to represent numbers N...M
210 the slice notation in magics to use N-M to represent numbers N...M
206 (closed endpoints). This is used by %macro and %save.
211 (closed endpoints). This is used by %macro and %save.
207
212
208 * IPython/completer.py (Completer.attr_matches): for modules which
213 * IPython/completer.py (Completer.attr_matches): for modules which
209 define __all__, complete only on those. After a patch by Jeffrey
214 define __all__, complete only on those. After a patch by Jeffrey
210 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
215 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
211 speed up this routine.
216 speed up this routine.
212
217
213 * IPython/Logger.py (Logger.log): fix a history handling bug. I
218 * IPython/Logger.py (Logger.log): fix a history handling bug. I
214 don't know if this is the end of it, but the behavior now is
219 don't know if this is the end of it, but the behavior now is
215 certainly much more correct. Note that coupled with macros,
220 certainly much more correct. Note that coupled with macros,
216 slightly surprising (at first) behavior may occur: a macro will in
221 slightly surprising (at first) behavior may occur: a macro will in
217 general expand to multiple lines of input, so upon exiting, the
222 general expand to multiple lines of input, so upon exiting, the
218 in/out counters will both be bumped by the corresponding amount
223 in/out counters will both be bumped by the corresponding amount
219 (as if the macro's contents had been typed interactively). Typing
224 (as if the macro's contents had been typed interactively). Typing
220 %hist will reveal the intermediate (silently processed) lines.
225 %hist will reveal the intermediate (silently processed) lines.
221
226
222 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
227 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
223 pickle to fail (%run was overwriting __main__ and not restoring
228 pickle to fail (%run was overwriting __main__ and not restoring
224 it, but pickle relies on __main__ to operate).
229 it, but pickle relies on __main__ to operate).
225
230
226 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
231 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
227 using properties, but forgot to make the main InteractiveShell
232 using properties, but forgot to make the main InteractiveShell
228 class a new-style class. Properties fail silently, and
233 class a new-style class. Properties fail silently, and
229 misteriously, with old-style class (getters work, but
234 misteriously, with old-style class (getters work, but
230 setters don't do anything).
235 setters don't do anything).
231
236
232 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
237 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
233
238
234 * IPython/Magic.py (magic_history): fix history reporting bug (I
239 * IPython/Magic.py (magic_history): fix history reporting bug (I
235 know some nasties are still there, I just can't seem to find a
240 know some nasties are still there, I just can't seem to find a
236 reproducible test case to track them down; the input history is
241 reproducible test case to track them down; the input history is
237 falling out of sync...)
242 falling out of sync...)
238
243
239 * IPython/iplib.py (handle_shell_escape): fix bug where both
244 * IPython/iplib.py (handle_shell_escape): fix bug where both
240 aliases and system accesses where broken for indented code (such
245 aliases and system accesses where broken for indented code (such
241 as loops).
246 as loops).
242
247
243 * IPython/genutils.py (shell): fix small but critical bug for
248 * IPython/genutils.py (shell): fix small but critical bug for
244 win32 system access.
249 win32 system access.
245
250
246 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
251 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
247
252
248 * IPython/iplib.py (showtraceback): remove use of the
253 * IPython/iplib.py (showtraceback): remove use of the
249 sys.last_{type/value/traceback} structures, which are non
254 sys.last_{type/value/traceback} structures, which are non
250 thread-safe.
255 thread-safe.
251 (_prefilter): change control flow to ensure that we NEVER
256 (_prefilter): change control flow to ensure that we NEVER
252 introspect objects when autocall is off. This will guarantee that
257 introspect objects when autocall is off. This will guarantee that
253 having an input line of the form 'x.y', where access to attribute
258 having an input line of the form 'x.y', where access to attribute
254 'y' has side effects, doesn't trigger the side effect TWICE. It
259 'y' has side effects, doesn't trigger the side effect TWICE. It
255 is important to note that, with autocall on, these side effects
260 is important to note that, with autocall on, these side effects
256 can still happen.
261 can still happen.
257 (ipsystem): new builtin, to complete the ip{magic/alias/system}
262 (ipsystem): new builtin, to complete the ip{magic/alias/system}
258 trio. IPython offers these three kinds of special calls which are
263 trio. IPython offers these three kinds of special calls which are
259 not python code, and it's a good thing to have their call method
264 not python code, and it's a good thing to have their call method
260 be accessible as pure python functions (not just special syntax at
265 be accessible as pure python functions (not just special syntax at
261 the command line). It gives us a better internal implementation
266 the command line). It gives us a better internal implementation
262 structure, as well as exposing these for user scripting more
267 structure, as well as exposing these for user scripting more
263 cleanly.
268 cleanly.
264
269
265 * IPython/macro.py (Macro.__init__): moved macros to a standalone
270 * IPython/macro.py (Macro.__init__): moved macros to a standalone
266 file. Now that they'll be more likely to be used with the
271 file. Now that they'll be more likely to be used with the
267 persistance system (%store), I want to make sure their module path
272 persistance system (%store), I want to make sure their module path
268 doesn't change in the future, so that we don't break things for
273 doesn't change in the future, so that we don't break things for
269 users' persisted data.
274 users' persisted data.
270
275
271 * IPython/iplib.py (autoindent_update): move indentation
276 * IPython/iplib.py (autoindent_update): move indentation
272 management into the _text_ processing loop, not the keyboard
277 management into the _text_ processing loop, not the keyboard
273 interactive one. This is necessary to correctly process non-typed
278 interactive one. This is necessary to correctly process non-typed
274 multiline input (such as macros).
279 multiline input (such as macros).
275
280
276 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
281 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
277 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
282 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
278 which was producing problems in the resulting manual.
283 which was producing problems in the resulting manual.
279 (magic_whos): improve reporting of instances (show their class,
284 (magic_whos): improve reporting of instances (show their class,
280 instead of simply printing 'instance' which isn't terribly
285 instead of simply printing 'instance' which isn't terribly
281 informative).
286 informative).
282
287
283 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
288 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
284 (minor mods) to support network shares under win32.
289 (minor mods) to support network shares under win32.
285
290
286 * IPython/winconsole.py (get_console_size): add new winconsole
291 * IPython/winconsole.py (get_console_size): add new winconsole
287 module and fixes to page_dumb() to improve its behavior under
292 module and fixes to page_dumb() to improve its behavior under
288 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
293 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
289
294
290 * IPython/Magic.py (Macro): simplified Macro class to just
295 * IPython/Magic.py (Macro): simplified Macro class to just
291 subclass list. We've had only 2.2 compatibility for a very long
296 subclass list. We've had only 2.2 compatibility for a very long
292 time, yet I was still avoiding subclassing the builtin types. No
297 time, yet I was still avoiding subclassing the builtin types. No
293 more (I'm also starting to use properties, though I won't shift to
298 more (I'm also starting to use properties, though I won't shift to
294 2.3-specific features quite yet).
299 2.3-specific features quite yet).
295 (magic_store): added Ville's patch for lightweight variable
300 (magic_store): added Ville's patch for lightweight variable
296 persistence, after a request on the user list by Matt Wilkie
301 persistence, after a request on the user list by Matt Wilkie
297 <maphew-AT-gmail.com>. The new %store magic's docstring has full
302 <maphew-AT-gmail.com>. The new %store magic's docstring has full
298 details.
303 details.
299
304
300 * IPython/iplib.py (InteractiveShell.post_config_initialization):
305 * IPython/iplib.py (InteractiveShell.post_config_initialization):
301 changed the default logfile name from 'ipython.log' to
306 changed the default logfile name from 'ipython.log' to
302 'ipython_log.py'. These logs are real python files, and now that
307 'ipython_log.py'. These logs are real python files, and now that
303 we have much better multiline support, people are more likely to
308 we have much better multiline support, people are more likely to
304 want to use them as such. Might as well name them correctly.
309 want to use them as such. Might as well name them correctly.
305
310
306 * IPython/Magic.py: substantial cleanup. While we can't stop
311 * IPython/Magic.py: substantial cleanup. While we can't stop
307 using magics as mixins, due to the existing customizations 'out
312 using magics as mixins, due to the existing customizations 'out
308 there' which rely on the mixin naming conventions, at least I
313 there' which rely on the mixin naming conventions, at least I
309 cleaned out all cross-class name usage. So once we are OK with
314 cleaned out all cross-class name usage. So once we are OK with
310 breaking compatibility, the two systems can be separated.
315 breaking compatibility, the two systems can be separated.
311
316
312 * IPython/Logger.py: major cleanup. This one is NOT a mixin
317 * IPython/Logger.py: major cleanup. This one is NOT a mixin
313 anymore, and the class is a fair bit less hideous as well. New
318 anymore, and the class is a fair bit less hideous as well. New
314 features were also introduced: timestamping of input, and logging
319 features were also introduced: timestamping of input, and logging
315 of output results. These are user-visible with the -t and -o
320 of output results. These are user-visible with the -t and -o
316 options to %logstart. Closes
321 options to %logstart. Closes
317 http://www.scipy.net/roundup/ipython/issue11 and a request by
322 http://www.scipy.net/roundup/ipython/issue11 and a request by
318 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
323 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
319
324
320 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
325 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
321
326
322 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
327 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
323 better hadnle backslashes in paths. See the thread 'More Windows
328 better hadnle backslashes in paths. See the thread 'More Windows
324 questions part 2 - \/ characters revisited' on the iypthon user
329 questions part 2 - \/ characters revisited' on the iypthon user
325 list:
330 list:
326 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
331 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
327
332
328 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
333 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
329
334
330 (InteractiveShell.__init__): change threaded shells to not use the
335 (InteractiveShell.__init__): change threaded shells to not use the
331 ipython crash handler. This was causing more problems than not,
336 ipython crash handler. This was causing more problems than not,
332 as exceptions in the main thread (GUI code, typically) would
337 as exceptions in the main thread (GUI code, typically) would
333 always show up as a 'crash', when they really weren't.
338 always show up as a 'crash', when they really weren't.
334
339
335 The colors and exception mode commands (%colors/%xmode) have been
340 The colors and exception mode commands (%colors/%xmode) have been
336 synchronized to also take this into account, so users can get
341 synchronized to also take this into account, so users can get
337 verbose exceptions for their threaded code as well. I also added
342 verbose exceptions for their threaded code as well. I also added
338 support for activating pdb inside this exception handler as well,
343 support for activating pdb inside this exception handler as well,
339 so now GUI authors can use IPython's enhanced pdb at runtime.
344 so now GUI authors can use IPython's enhanced pdb at runtime.
340
345
341 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
346 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
342 true by default, and add it to the shipped ipythonrc file. Since
347 true by default, and add it to the shipped ipythonrc file. Since
343 this asks the user before proceeding, I think it's OK to make it
348 this asks the user before proceeding, I think it's OK to make it
344 true by default.
349 true by default.
345
350
346 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
351 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
347 of the previous special-casing of input in the eval loop. I think
352 of the previous special-casing of input in the eval loop. I think
348 this is cleaner, as they really are commands and shouldn't have
353 this is cleaner, as they really are commands and shouldn't have
349 a special role in the middle of the core code.
354 a special role in the middle of the core code.
350
355
351 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
356 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
352
357
353 * IPython/iplib.py (edit_syntax_error): added support for
358 * IPython/iplib.py (edit_syntax_error): added support for
354 automatically reopening the editor if the file had a syntax error
359 automatically reopening the editor if the file had a syntax error
355 in it. Thanks to scottt who provided the patch at:
360 in it. Thanks to scottt who provided the patch at:
356 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
361 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
357 version committed).
362 version committed).
358
363
359 * IPython/iplib.py (handle_normal): add suport for multi-line
364 * IPython/iplib.py (handle_normal): add suport for multi-line
360 input with emtpy lines. This fixes
365 input with emtpy lines. This fixes
361 http://www.scipy.net/roundup/ipython/issue43 and a similar
366 http://www.scipy.net/roundup/ipython/issue43 and a similar
362 discussion on the user list.
367 discussion on the user list.
363
368
364 WARNING: a behavior change is necessarily introduced to support
369 WARNING: a behavior change is necessarily introduced to support
365 blank lines: now a single blank line with whitespace does NOT
370 blank lines: now a single blank line with whitespace does NOT
366 break the input loop, which means that when autoindent is on, by
371 break the input loop, which means that when autoindent is on, by
367 default hitting return on the next (indented) line does NOT exit.
372 default hitting return on the next (indented) line does NOT exit.
368
373
369 Instead, to exit a multiline input you can either have:
374 Instead, to exit a multiline input you can either have:
370
375
371 - TWO whitespace lines (just hit return again), or
376 - TWO whitespace lines (just hit return again), or
372 - a single whitespace line of a different length than provided
377 - a single whitespace line of a different length than provided
373 by the autoindent (add or remove a space).
378 by the autoindent (add or remove a space).
374
379
375 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
380 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
376 module to better organize all readline-related functionality.
381 module to better organize all readline-related functionality.
377 I've deleted FlexCompleter and put all completion clases here.
382 I've deleted FlexCompleter and put all completion clases here.
378
383
379 * IPython/iplib.py (raw_input): improve indentation management.
384 * IPython/iplib.py (raw_input): improve indentation management.
380 It is now possible to paste indented code with autoindent on, and
385 It is now possible to paste indented code with autoindent on, and
381 the code is interpreted correctly (though it still looks bad on
386 the code is interpreted correctly (though it still looks bad on
382 screen, due to the line-oriented nature of ipython).
387 screen, due to the line-oriented nature of ipython).
383 (MagicCompleter.complete): change behavior so that a TAB key on an
388 (MagicCompleter.complete): change behavior so that a TAB key on an
384 otherwise empty line actually inserts a tab, instead of completing
389 otherwise empty line actually inserts a tab, instead of completing
385 on the entire global namespace. This makes it easier to use the
390 on the entire global namespace. This makes it easier to use the
386 TAB key for indentation. After a request by Hans Meine
391 TAB key for indentation. After a request by Hans Meine
387 <hans_meine-AT-gmx.net>
392 <hans_meine-AT-gmx.net>
388 (_prefilter): add support so that typing plain 'exit' or 'quit'
393 (_prefilter): add support so that typing plain 'exit' or 'quit'
389 does a sensible thing. Originally I tried to deviate as little as
394 does a sensible thing. Originally I tried to deviate as little as
390 possible from the default python behavior, but even that one may
395 possible from the default python behavior, but even that one may
391 change in this direction (thread on python-dev to that effect).
396 change in this direction (thread on python-dev to that effect).
392 Regardless, ipython should do the right thing even if CPython's
397 Regardless, ipython should do the right thing even if CPython's
393 '>>>' prompt doesn't.
398 '>>>' prompt doesn't.
394 (InteractiveShell): removed subclassing code.InteractiveConsole
399 (InteractiveShell): removed subclassing code.InteractiveConsole
395 class. By now we'd overridden just about all of its methods: I've
400 class. By now we'd overridden just about all of its methods: I've
396 copied the remaining two over, and now ipython is a standalone
401 copied the remaining two over, and now ipython is a standalone
397 class. This will provide a clearer picture for the chainsaw
402 class. This will provide a clearer picture for the chainsaw
398 branch refactoring.
403 branch refactoring.
399
404
400 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
405 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
401
406
402 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
407 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
403 failures for objects which break when dir() is called on them.
408 failures for objects which break when dir() is called on them.
404
409
405 * IPython/FlexCompleter.py (Completer.__init__): Added support for
410 * IPython/FlexCompleter.py (Completer.__init__): Added support for
406 distinct local and global namespaces in the completer API. This
411 distinct local and global namespaces in the completer API. This
407 change allows us top properly handle completion with distinct
412 change allows us top properly handle completion with distinct
408 scopes, including in embedded instances (this had never really
413 scopes, including in embedded instances (this had never really
409 worked correctly).
414 worked correctly).
410
415
411 Note: this introduces a change in the constructor for
416 Note: this introduces a change in the constructor for
412 MagicCompleter, as a new global_namespace parameter is now the
417 MagicCompleter, as a new global_namespace parameter is now the
413 second argument (the others were bumped one position).
418 second argument (the others were bumped one position).
414
419
415 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
420 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
416
421
417 * IPython/iplib.py (embed_mainloop): fix tab-completion in
422 * IPython/iplib.py (embed_mainloop): fix tab-completion in
418 embedded instances (which can be done now thanks to Vivian's
423 embedded instances (which can be done now thanks to Vivian's
419 frame-handling fixes for pdb).
424 frame-handling fixes for pdb).
420 (InteractiveShell.__init__): Fix namespace handling problem in
425 (InteractiveShell.__init__): Fix namespace handling problem in
421 embedded instances. We were overwriting __main__ unconditionally,
426 embedded instances. We were overwriting __main__ unconditionally,
422 and this should only be done for 'full' (non-embedded) IPython;
427 and this should only be done for 'full' (non-embedded) IPython;
423 embedded instances must respect the caller's __main__. Thanks to
428 embedded instances must respect the caller's __main__. Thanks to
424 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
429 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
425
430
426 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
431 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
427
432
428 * setup.py: added download_url to setup(). This registers the
433 * setup.py: added download_url to setup(). This registers the
429 download address at PyPI, which is not only useful to humans
434 download address at PyPI, which is not only useful to humans
430 browsing the site, but is also picked up by setuptools (the Eggs
435 browsing the site, but is also picked up by setuptools (the Eggs
431 machinery). Thanks to Ville and R. Kern for the info/discussion
436 machinery). Thanks to Ville and R. Kern for the info/discussion
432 on this.
437 on this.
433
438
434 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
439 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
435
440
436 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
441 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
437 This brings a lot of nice functionality to the pdb mode, which now
442 This brings a lot of nice functionality to the pdb mode, which now
438 has tab-completion, syntax highlighting, and better stack handling
443 has tab-completion, syntax highlighting, and better stack handling
439 than before. Many thanks to Vivian De Smedt
444 than before. Many thanks to Vivian De Smedt
440 <vivian-AT-vdesmedt.com> for the original patches.
445 <vivian-AT-vdesmedt.com> for the original patches.
441
446
442 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
447 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
443
448
444 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
449 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
445 sequence to consistently accept the banner argument. The
450 sequence to consistently accept the banner argument. The
446 inconsistency was tripping SAGE, thanks to Gary Zablackis
451 inconsistency was tripping SAGE, thanks to Gary Zablackis
447 <gzabl-AT-yahoo.com> for the report.
452 <gzabl-AT-yahoo.com> for the report.
448
453
449 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
454 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
450
455
451 * IPython/iplib.py (InteractiveShell.post_config_initialization):
456 * IPython/iplib.py (InteractiveShell.post_config_initialization):
452 Fix bug where a naked 'alias' call in the ipythonrc file would
457 Fix bug where a naked 'alias' call in the ipythonrc file would
453 cause a crash. Bug reported by Jorgen Stenarson.
458 cause a crash. Bug reported by Jorgen Stenarson.
454
459
455 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
460 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
456
461
457 * IPython/ipmaker.py (make_IPython): cleanups which should improve
462 * IPython/ipmaker.py (make_IPython): cleanups which should improve
458 startup time.
463 startup time.
459
464
460 * IPython/iplib.py (runcode): my globals 'fix' for embedded
465 * IPython/iplib.py (runcode): my globals 'fix' for embedded
461 instances had introduced a bug with globals in normal code. Now
466 instances had introduced a bug with globals in normal code. Now
462 it's working in all cases.
467 it's working in all cases.
463
468
464 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
469 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
465 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
470 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
466 has been introduced to set the default case sensitivity of the
471 has been introduced to set the default case sensitivity of the
467 searches. Users can still select either mode at runtime on a
472 searches. Users can still select either mode at runtime on a
468 per-search basis.
473 per-search basis.
469
474
470 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
475 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
471
476
472 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
477 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
473 attributes in wildcard searches for subclasses. Modified version
478 attributes in wildcard searches for subclasses. Modified version
474 of a patch by Jorgen.
479 of a patch by Jorgen.
475
480
476 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
481 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
477
482
478 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
483 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
479 embedded instances. I added a user_global_ns attribute to the
484 embedded instances. I added a user_global_ns attribute to the
480 InteractiveShell class to handle this.
485 InteractiveShell class to handle this.
481
486
482 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
487 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
483
488
484 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
489 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
485 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
490 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
486 (reported under win32, but may happen also in other platforms).
491 (reported under win32, but may happen also in other platforms).
487 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
492 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
488
493
489 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
494 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
490
495
491 * IPython/Magic.py (magic_psearch): new support for wildcard
496 * IPython/Magic.py (magic_psearch): new support for wildcard
492 patterns. Now, typing ?a*b will list all names which begin with a
497 patterns. Now, typing ?a*b will list all names which begin with a
493 and end in b, for example. The %psearch magic has full
498 and end in b, for example. The %psearch magic has full
494 docstrings. Many thanks to JΓΆrgen Stenarson
499 docstrings. Many thanks to JΓΆrgen Stenarson
495 <jorgen.stenarson-AT-bostream.nu>, author of the patches
500 <jorgen.stenarson-AT-bostream.nu>, author of the patches
496 implementing this functionality.
501 implementing this functionality.
497
502
498 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
503 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
499
504
500 * Manual: fixed long-standing annoyance of double-dashes (as in
505 * Manual: fixed long-standing annoyance of double-dashes (as in
501 --prefix=~, for example) being stripped in the HTML version. This
506 --prefix=~, for example) being stripped in the HTML version. This
502 is a latex2html bug, but a workaround was provided. Many thanks
507 is a latex2html bug, but a workaround was provided. Many thanks
503 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
508 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
504 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
509 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
505 rolling. This seemingly small issue had tripped a number of users
510 rolling. This seemingly small issue had tripped a number of users
506 when first installing, so I'm glad to see it gone.
511 when first installing, so I'm glad to see it gone.
507
512
508 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
513 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
509
514
510 * IPython/Extensions/numeric_formats.py: fix missing import,
515 * IPython/Extensions/numeric_formats.py: fix missing import,
511 reported by Stephen Walton.
516 reported by Stephen Walton.
512
517
513 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
518 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
514
519
515 * IPython/demo.py: finish demo module, fully documented now.
520 * IPython/demo.py: finish demo module, fully documented now.
516
521
517 * IPython/genutils.py (file_read): simple little utility to read a
522 * IPython/genutils.py (file_read): simple little utility to read a
518 file and ensure it's closed afterwards.
523 file and ensure it's closed afterwards.
519
524
520 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
525 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
521
526
522 * IPython/demo.py (Demo.__init__): added support for individually
527 * IPython/demo.py (Demo.__init__): added support for individually
523 tagging blocks for automatic execution.
528 tagging blocks for automatic execution.
524
529
525 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
530 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
526 syntax-highlighted python sources, requested by John.
531 syntax-highlighted python sources, requested by John.
527
532
528 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
533 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
529
534
530 * IPython/demo.py (Demo.again): fix bug where again() blocks after
535 * IPython/demo.py (Demo.again): fix bug where again() blocks after
531 finishing.
536 finishing.
532
537
533 * IPython/genutils.py (shlex_split): moved from Magic to here,
538 * IPython/genutils.py (shlex_split): moved from Magic to here,
534 where all 2.2 compatibility stuff lives. I needed it for demo.py.
539 where all 2.2 compatibility stuff lives. I needed it for demo.py.
535
540
536 * IPython/demo.py (Demo.__init__): added support for silent
541 * IPython/demo.py (Demo.__init__): added support for silent
537 blocks, improved marks as regexps, docstrings written.
542 blocks, improved marks as regexps, docstrings written.
538 (Demo.__init__): better docstring, added support for sys.argv.
543 (Demo.__init__): better docstring, added support for sys.argv.
539
544
540 * IPython/genutils.py (marquee): little utility used by the demo
545 * IPython/genutils.py (marquee): little utility used by the demo
541 code, handy in general.
546 code, handy in general.
542
547
543 * IPython/demo.py (Demo.__init__): new class for interactive
548 * IPython/demo.py (Demo.__init__): new class for interactive
544 demos. Not documented yet, I just wrote it in a hurry for
549 demos. Not documented yet, I just wrote it in a hurry for
545 scipy'05. Will docstring later.
550 scipy'05. Will docstring later.
546
551
547 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
552 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
548
553
549 * IPython/Shell.py (sigint_handler): Drastic simplification which
554 * IPython/Shell.py (sigint_handler): Drastic simplification which
550 also seems to make Ctrl-C work correctly across threads! This is
555 also seems to make Ctrl-C work correctly across threads! This is
551 so simple, that I can't beleive I'd missed it before. Needs more
556 so simple, that I can't beleive I'd missed it before. Needs more
552 testing, though.
557 testing, though.
553 (KBINT): Never mind, revert changes. I'm sure I'd tried something
558 (KBINT): Never mind, revert changes. I'm sure I'd tried something
554 like this before...
559 like this before...
555
560
556 * IPython/genutils.py (get_home_dir): add protection against
561 * IPython/genutils.py (get_home_dir): add protection against
557 non-dirs in win32 registry.
562 non-dirs in win32 registry.
558
563
559 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
564 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
560 bug where dict was mutated while iterating (pysh crash).
565 bug where dict was mutated while iterating (pysh crash).
561
566
562 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
567 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
563
568
564 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
569 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
565 spurious newlines added by this routine. After a report by
570 spurious newlines added by this routine. After a report by
566 F. Mantegazza.
571 F. Mantegazza.
567
572
568 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
573 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
569
574
570 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
575 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
571 calls. These were a leftover from the GTK 1.x days, and can cause
576 calls. These were a leftover from the GTK 1.x days, and can cause
572 problems in certain cases (after a report by John Hunter).
577 problems in certain cases (after a report by John Hunter).
573
578
574 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
579 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
575 os.getcwd() fails at init time. Thanks to patch from David Remahl
580 os.getcwd() fails at init time. Thanks to patch from David Remahl
576 <chmod007-AT-mac.com>.
581 <chmod007-AT-mac.com>.
577 (InteractiveShell.__init__): prevent certain special magics from
582 (InteractiveShell.__init__): prevent certain special magics from
578 being shadowed by aliases. Closes
583 being shadowed by aliases. Closes
579 http://www.scipy.net/roundup/ipython/issue41.
584 http://www.scipy.net/roundup/ipython/issue41.
580
585
581 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
586 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
582
587
583 * IPython/iplib.py (InteractiveShell.complete): Added new
588 * IPython/iplib.py (InteractiveShell.complete): Added new
584 top-level completion method to expose the completion mechanism
589 top-level completion method to expose the completion mechanism
585 beyond readline-based environments.
590 beyond readline-based environments.
586
591
587 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
592 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
588
593
589 * tools/ipsvnc (svnversion): fix svnversion capture.
594 * tools/ipsvnc (svnversion): fix svnversion capture.
590
595
591 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
596 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
592 attribute to self, which was missing. Before, it was set by a
597 attribute to self, which was missing. Before, it was set by a
593 routine which in certain cases wasn't being called, so the
598 routine which in certain cases wasn't being called, so the
594 instance could end up missing the attribute. This caused a crash.
599 instance could end up missing the attribute. This caused a crash.
595 Closes http://www.scipy.net/roundup/ipython/issue40.
600 Closes http://www.scipy.net/roundup/ipython/issue40.
596
601
597 2005-08-16 Fernando Perez <fperez@colorado.edu>
602 2005-08-16 Fernando Perez <fperez@colorado.edu>
598
603
599 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
604 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
600 contains non-string attribute. Closes
605 contains non-string attribute. Closes
601 http://www.scipy.net/roundup/ipython/issue38.
606 http://www.scipy.net/roundup/ipython/issue38.
602
607
603 2005-08-14 Fernando Perez <fperez@colorado.edu>
608 2005-08-14 Fernando Perez <fperez@colorado.edu>
604
609
605 * tools/ipsvnc: Minor improvements, to add changeset info.
610 * tools/ipsvnc: Minor improvements, to add changeset info.
606
611
607 2005-08-12 Fernando Perez <fperez@colorado.edu>
612 2005-08-12 Fernando Perez <fperez@colorado.edu>
608
613
609 * IPython/iplib.py (runsource): remove self.code_to_run_src
614 * IPython/iplib.py (runsource): remove self.code_to_run_src
610 attribute. I realized this is nothing more than
615 attribute. I realized this is nothing more than
611 '\n'.join(self.buffer), and having the same data in two different
616 '\n'.join(self.buffer), and having the same data in two different
612 places is just asking for synchronization bugs. This may impact
617 places is just asking for synchronization bugs. This may impact
613 people who have custom exception handlers, so I need to warn
618 people who have custom exception handlers, so I need to warn
614 ipython-dev about it (F. Mantegazza may use them).
619 ipython-dev about it (F. Mantegazza may use them).
615
620
616 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
621 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
617
622
618 * IPython/genutils.py: fix 2.2 compatibility (generators)
623 * IPython/genutils.py: fix 2.2 compatibility (generators)
619
624
620 2005-07-18 Fernando Perez <fperez@colorado.edu>
625 2005-07-18 Fernando Perez <fperez@colorado.edu>
621
626
622 * IPython/genutils.py (get_home_dir): fix to help users with
627 * IPython/genutils.py (get_home_dir): fix to help users with
623 invalid $HOME under win32.
628 invalid $HOME under win32.
624
629
625 2005-07-17 Fernando Perez <fperez@colorado.edu>
630 2005-07-17 Fernando Perez <fperez@colorado.edu>
626
631
627 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
632 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
628 some old hacks and clean up a bit other routines; code should be
633 some old hacks and clean up a bit other routines; code should be
629 simpler and a bit faster.
634 simpler and a bit faster.
630
635
631 * IPython/iplib.py (interact): removed some last-resort attempts
636 * IPython/iplib.py (interact): removed some last-resort attempts
632 to survive broken stdout/stderr. That code was only making it
637 to survive broken stdout/stderr. That code was only making it
633 harder to abstract out the i/o (necessary for gui integration),
638 harder to abstract out the i/o (necessary for gui integration),
634 and the crashes it could prevent were extremely rare in practice
639 and the crashes it could prevent were extremely rare in practice
635 (besides being fully user-induced in a pretty violent manner).
640 (besides being fully user-induced in a pretty violent manner).
636
641
637 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
642 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
638 Nothing major yet, but the code is simpler to read; this should
643 Nothing major yet, but the code is simpler to read; this should
639 make it easier to do more serious modifications in the future.
644 make it easier to do more serious modifications in the future.
640
645
641 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
646 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
642 which broke in .15 (thanks to a report by Ville).
647 which broke in .15 (thanks to a report by Ville).
643
648
644 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
649 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
645 be quite correct, I know next to nothing about unicode). This
650 be quite correct, I know next to nothing about unicode). This
646 will allow unicode strings to be used in prompts, amongst other
651 will allow unicode strings to be used in prompts, amongst other
647 cases. It also will prevent ipython from crashing when unicode
652 cases. It also will prevent ipython from crashing when unicode
648 shows up unexpectedly in many places. If ascii encoding fails, we
653 shows up unexpectedly in many places. If ascii encoding fails, we
649 assume utf_8. Currently the encoding is not a user-visible
654 assume utf_8. Currently the encoding is not a user-visible
650 setting, though it could be made so if there is demand for it.
655 setting, though it could be made so if there is demand for it.
651
656
652 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
657 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
653
658
654 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
659 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
655
660
656 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
661 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
657
662
658 * IPython/genutils.py: Add 2.2 compatibility here, so all other
663 * IPython/genutils.py: Add 2.2 compatibility here, so all other
659 code can work transparently for 2.2/2.3.
664 code can work transparently for 2.2/2.3.
660
665
661 2005-07-16 Fernando Perez <fperez@colorado.edu>
666 2005-07-16 Fernando Perez <fperez@colorado.edu>
662
667
663 * IPython/ultraTB.py (ExceptionColors): Make a global variable
668 * IPython/ultraTB.py (ExceptionColors): Make a global variable
664 out of the color scheme table used for coloring exception
669 out of the color scheme table used for coloring exception
665 tracebacks. This allows user code to add new schemes at runtime.
670 tracebacks. This allows user code to add new schemes at runtime.
666 This is a minimally modified version of the patch at
671 This is a minimally modified version of the patch at
667 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
672 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
668 for the contribution.
673 for the contribution.
669
674
670 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
675 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
671 slightly modified version of the patch in
676 slightly modified version of the patch in
672 http://www.scipy.net/roundup/ipython/issue34, which also allows me
677 http://www.scipy.net/roundup/ipython/issue34, which also allows me
673 to remove the previous try/except solution (which was costlier).
678 to remove the previous try/except solution (which was costlier).
674 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
679 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
675
680
676 2005-06-08 Fernando Perez <fperez@colorado.edu>
681 2005-06-08 Fernando Perez <fperez@colorado.edu>
677
682
678 * IPython/iplib.py (write/write_err): Add methods to abstract all
683 * IPython/iplib.py (write/write_err): Add methods to abstract all
679 I/O a bit more.
684 I/O a bit more.
680
685
681 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
686 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
682 warning, reported by Aric Hagberg, fix by JD Hunter.
687 warning, reported by Aric Hagberg, fix by JD Hunter.
683
688
684 2005-06-02 *** Released version 0.6.15
689 2005-06-02 *** Released version 0.6.15
685
690
686 2005-06-01 Fernando Perez <fperez@colorado.edu>
691 2005-06-01 Fernando Perez <fperez@colorado.edu>
687
692
688 * IPython/iplib.py (MagicCompleter.file_matches): Fix
693 * IPython/iplib.py (MagicCompleter.file_matches): Fix
689 tab-completion of filenames within open-quoted strings. Note that
694 tab-completion of filenames within open-quoted strings. Note that
690 this requires that in ~/.ipython/ipythonrc, users change the
695 this requires that in ~/.ipython/ipythonrc, users change the
691 readline delimiters configuration to read:
696 readline delimiters configuration to read:
692
697
693 readline_remove_delims -/~
698 readline_remove_delims -/~
694
699
695
700
696 2005-05-31 *** Released version 0.6.14
701 2005-05-31 *** Released version 0.6.14
697
702
698 2005-05-29 Fernando Perez <fperez@colorado.edu>
703 2005-05-29 Fernando Perez <fperez@colorado.edu>
699
704
700 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
705 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
701 with files not on the filesystem. Reported by Eliyahu Sandler
706 with files not on the filesystem. Reported by Eliyahu Sandler
702 <eli@gondolin.net>
707 <eli@gondolin.net>
703
708
704 2005-05-22 Fernando Perez <fperez@colorado.edu>
709 2005-05-22 Fernando Perez <fperez@colorado.edu>
705
710
706 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
711 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
707 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
712 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
708
713
709 2005-05-19 Fernando Perez <fperez@colorado.edu>
714 2005-05-19 Fernando Perez <fperez@colorado.edu>
710
715
711 * IPython/iplib.py (safe_execfile): close a file which could be
716 * IPython/iplib.py (safe_execfile): close a file which could be
712 left open (causing problems in win32, which locks open files).
717 left open (causing problems in win32, which locks open files).
713 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
718 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
714
719
715 2005-05-18 Fernando Perez <fperez@colorado.edu>
720 2005-05-18 Fernando Perez <fperez@colorado.edu>
716
721
717 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
722 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
718 keyword arguments correctly to safe_execfile().
723 keyword arguments correctly to safe_execfile().
719
724
720 2005-05-13 Fernando Perez <fperez@colorado.edu>
725 2005-05-13 Fernando Perez <fperez@colorado.edu>
721
726
722 * ipython.1: Added info about Qt to manpage, and threads warning
727 * ipython.1: Added info about Qt to manpage, and threads warning
723 to usage page (invoked with --help).
728 to usage page (invoked with --help).
724
729
725 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
730 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
726 new matcher (it goes at the end of the priority list) to do
731 new matcher (it goes at the end of the priority list) to do
727 tab-completion on named function arguments. Submitted by George
732 tab-completion on named function arguments. Submitted by George
728 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
733 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
729 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
734 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
730 for more details.
735 for more details.
731
736
732 * IPython/Magic.py (magic_run): Added new -e flag to ignore
737 * IPython/Magic.py (magic_run): Added new -e flag to ignore
733 SystemExit exceptions in the script being run. Thanks to a report
738 SystemExit exceptions in the script being run. Thanks to a report
734 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
739 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
735 producing very annoying behavior when running unit tests.
740 producing very annoying behavior when running unit tests.
736
741
737 2005-05-12 Fernando Perez <fperez@colorado.edu>
742 2005-05-12 Fernando Perez <fperez@colorado.edu>
738
743
739 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
744 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
740 which I'd broken (again) due to a changed regexp. In the process,
745 which I'd broken (again) due to a changed regexp. In the process,
741 added ';' as an escape to auto-quote the whole line without
746 added ';' as an escape to auto-quote the whole line without
742 splitting its arguments. Thanks to a report by Jerry McRae
747 splitting its arguments. Thanks to a report by Jerry McRae
743 <qrs0xyc02-AT-sneakemail.com>.
748 <qrs0xyc02-AT-sneakemail.com>.
744
749
745 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
750 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
746 possible crashes caused by a TokenError. Reported by Ed Schofield
751 possible crashes caused by a TokenError. Reported by Ed Schofield
747 <schofield-AT-ftw.at>.
752 <schofield-AT-ftw.at>.
748
753
749 2005-05-06 Fernando Perez <fperez@colorado.edu>
754 2005-05-06 Fernando Perez <fperez@colorado.edu>
750
755
751 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
756 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
752
757
753 2005-04-29 Fernando Perez <fperez@colorado.edu>
758 2005-04-29 Fernando Perez <fperez@colorado.edu>
754
759
755 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
760 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
756 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
761 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
757 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
762 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
758 which provides support for Qt interactive usage (similar to the
763 which provides support for Qt interactive usage (similar to the
759 existing one for WX and GTK). This had been often requested.
764 existing one for WX and GTK). This had been often requested.
760
765
761 2005-04-14 *** Released version 0.6.13
766 2005-04-14 *** Released version 0.6.13
762
767
763 2005-04-08 Fernando Perez <fperez@colorado.edu>
768 2005-04-08 Fernando Perez <fperez@colorado.edu>
764
769
765 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
770 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
766 from _ofind, which gets called on almost every input line. Now,
771 from _ofind, which gets called on almost every input line. Now,
767 we only try to get docstrings if they are actually going to be
772 we only try to get docstrings if they are actually going to be
768 used (the overhead of fetching unnecessary docstrings can be
773 used (the overhead of fetching unnecessary docstrings can be
769 noticeable for certain objects, such as Pyro proxies).
774 noticeable for certain objects, such as Pyro proxies).
770
775
771 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
776 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
772 for completers. For some reason I had been passing them the state
777 for completers. For some reason I had been passing them the state
773 variable, which completers never actually need, and was in
778 variable, which completers never actually need, and was in
774 conflict with the rlcompleter API. Custom completers ONLY need to
779 conflict with the rlcompleter API. Custom completers ONLY need to
775 take the text parameter.
780 take the text parameter.
776
781
777 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
782 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
778 work correctly in pysh. I've also moved all the logic which used
783 work correctly in pysh. I've also moved all the logic which used
779 to be in pysh.py here, which will prevent problems with future
784 to be in pysh.py here, which will prevent problems with future
780 upgrades. However, this time I must warn users to update their
785 upgrades. However, this time I must warn users to update their
781 pysh profile to include the line
786 pysh profile to include the line
782
787
783 import_all IPython.Extensions.InterpreterExec
788 import_all IPython.Extensions.InterpreterExec
784
789
785 because otherwise things won't work for them. They MUST also
790 because otherwise things won't work for them. They MUST also
786 delete pysh.py and the line
791 delete pysh.py and the line
787
792
788 execfile pysh.py
793 execfile pysh.py
789
794
790 from their ipythonrc-pysh.
795 from their ipythonrc-pysh.
791
796
792 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
797 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
793 robust in the face of objects whose dir() returns non-strings
798 robust in the face of objects whose dir() returns non-strings
794 (which it shouldn't, but some broken libs like ITK do). Thanks to
799 (which it shouldn't, but some broken libs like ITK do). Thanks to
795 a patch by John Hunter (implemented differently, though). Also
800 a patch by John Hunter (implemented differently, though). Also
796 minor improvements by using .extend instead of + on lists.
801 minor improvements by using .extend instead of + on lists.
797
802
798 * pysh.py:
803 * pysh.py:
799
804
800 2005-04-06 Fernando Perez <fperez@colorado.edu>
805 2005-04-06 Fernando Perez <fperez@colorado.edu>
801
806
802 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
807 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
803 by default, so that all users benefit from it. Those who don't
808 by default, so that all users benefit from it. Those who don't
804 want it can still turn it off.
809 want it can still turn it off.
805
810
806 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
811 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
807 config file, I'd forgotten about this, so users were getting it
812 config file, I'd forgotten about this, so users were getting it
808 off by default.
813 off by default.
809
814
810 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
815 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
811 consistency. Now magics can be called in multiline statements,
816 consistency. Now magics can be called in multiline statements,
812 and python variables can be expanded in magic calls via $var.
817 and python variables can be expanded in magic calls via $var.
813 This makes the magic system behave just like aliases or !system
818 This makes the magic system behave just like aliases or !system
814 calls.
819 calls.
815
820
816 2005-03-28 Fernando Perez <fperez@colorado.edu>
821 2005-03-28 Fernando Perez <fperez@colorado.edu>
817
822
818 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
823 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
819 expensive string additions for building command. Add support for
824 expensive string additions for building command. Add support for
820 trailing ';' when autocall is used.
825 trailing ';' when autocall is used.
821
826
822 2005-03-26 Fernando Perez <fperez@colorado.edu>
827 2005-03-26 Fernando Perez <fperez@colorado.edu>
823
828
824 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
829 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
825 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
830 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
826 ipython.el robust against prompts with any number of spaces
831 ipython.el robust against prompts with any number of spaces
827 (including 0) after the ':' character.
832 (including 0) after the ':' character.
828
833
829 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
834 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
830 continuation prompt, which misled users to think the line was
835 continuation prompt, which misled users to think the line was
831 already indented. Closes debian Bug#300847, reported to me by
836 already indented. Closes debian Bug#300847, reported to me by
832 Norbert Tretkowski <tretkowski-AT-inittab.de>.
837 Norbert Tretkowski <tretkowski-AT-inittab.de>.
833
838
834 2005-03-23 Fernando Perez <fperez@colorado.edu>
839 2005-03-23 Fernando Perez <fperez@colorado.edu>
835
840
836 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
841 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
837 properly aligned if they have embedded newlines.
842 properly aligned if they have embedded newlines.
838
843
839 * IPython/iplib.py (runlines): Add a public method to expose
844 * IPython/iplib.py (runlines): Add a public method to expose
840 IPython's code execution machinery, so that users can run strings
845 IPython's code execution machinery, so that users can run strings
841 as if they had been typed at the prompt interactively.
846 as if they had been typed at the prompt interactively.
842 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
847 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
843 methods which can call the system shell, but with python variable
848 methods which can call the system shell, but with python variable
844 expansion. The three such methods are: __IPYTHON__.system,
849 expansion. The three such methods are: __IPYTHON__.system,
845 .getoutput and .getoutputerror. These need to be documented in a
850 .getoutput and .getoutputerror. These need to be documented in a
846 'public API' section (to be written) of the manual.
851 'public API' section (to be written) of the manual.
847
852
848 2005-03-20 Fernando Perez <fperez@colorado.edu>
853 2005-03-20 Fernando Perez <fperez@colorado.edu>
849
854
850 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
855 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
851 for custom exception handling. This is quite powerful, and it
856 for custom exception handling. This is quite powerful, and it
852 allows for user-installable exception handlers which can trap
857 allows for user-installable exception handlers which can trap
853 custom exceptions at runtime and treat them separately from
858 custom exceptions at runtime and treat them separately from
854 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
859 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
855 Mantegazza <mantegazza-AT-ill.fr>.
860 Mantegazza <mantegazza-AT-ill.fr>.
856 (InteractiveShell.set_custom_completer): public API function to
861 (InteractiveShell.set_custom_completer): public API function to
857 add new completers at runtime.
862 add new completers at runtime.
858
863
859 2005-03-19 Fernando Perez <fperez@colorado.edu>
864 2005-03-19 Fernando Perez <fperez@colorado.edu>
860
865
861 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
866 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
862 allow objects which provide their docstrings via non-standard
867 allow objects which provide their docstrings via non-standard
863 mechanisms (like Pyro proxies) to still be inspected by ipython's
868 mechanisms (like Pyro proxies) to still be inspected by ipython's
864 ? system.
869 ? system.
865
870
866 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
871 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
867 automatic capture system. I tried quite hard to make it work
872 automatic capture system. I tried quite hard to make it work
868 reliably, and simply failed. I tried many combinations with the
873 reliably, and simply failed. I tried many combinations with the
869 subprocess module, but eventually nothing worked in all needed
874 subprocess module, but eventually nothing worked in all needed
870 cases (not blocking stdin for the child, duplicating stdout
875 cases (not blocking stdin for the child, duplicating stdout
871 without blocking, etc). The new %sc/%sx still do capture to these
876 without blocking, etc). The new %sc/%sx still do capture to these
872 magical list/string objects which make shell use much more
877 magical list/string objects which make shell use much more
873 conveninent, so not all is lost.
878 conveninent, so not all is lost.
874
879
875 XXX - FIX MANUAL for the change above!
880 XXX - FIX MANUAL for the change above!
876
881
877 (runsource): I copied code.py's runsource() into ipython to modify
882 (runsource): I copied code.py's runsource() into ipython to modify
878 it a bit. Now the code object and source to be executed are
883 it a bit. Now the code object and source to be executed are
879 stored in ipython. This makes this info accessible to third-party
884 stored in ipython. This makes this info accessible to third-party
880 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
885 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
881 Mantegazza <mantegazza-AT-ill.fr>.
886 Mantegazza <mantegazza-AT-ill.fr>.
882
887
883 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
888 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
884 history-search via readline (like C-p/C-n). I'd wanted this for a
889 history-search via readline (like C-p/C-n). I'd wanted this for a
885 long time, but only recently found out how to do it. For users
890 long time, but only recently found out how to do it. For users
886 who already have their ipythonrc files made and want this, just
891 who already have their ipythonrc files made and want this, just
887 add:
892 add:
888
893
889 readline_parse_and_bind "\e[A": history-search-backward
894 readline_parse_and_bind "\e[A": history-search-backward
890 readline_parse_and_bind "\e[B": history-search-forward
895 readline_parse_and_bind "\e[B": history-search-forward
891
896
892 2005-03-18 Fernando Perez <fperez@colorado.edu>
897 2005-03-18 Fernando Perez <fperez@colorado.edu>
893
898
894 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
899 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
895 LSString and SList classes which allow transparent conversions
900 LSString and SList classes which allow transparent conversions
896 between list mode and whitespace-separated string.
901 between list mode and whitespace-separated string.
897 (magic_r): Fix recursion problem in %r.
902 (magic_r): Fix recursion problem in %r.
898
903
899 * IPython/genutils.py (LSString): New class to be used for
904 * IPython/genutils.py (LSString): New class to be used for
900 automatic storage of the results of all alias/system calls in _o
905 automatic storage of the results of all alias/system calls in _o
901 and _e (stdout/err). These provide a .l/.list attribute which
906 and _e (stdout/err). These provide a .l/.list attribute which
902 does automatic splitting on newlines. This means that for most
907 does automatic splitting on newlines. This means that for most
903 uses, you'll never need to do capturing of output with %sc/%sx
908 uses, you'll never need to do capturing of output with %sc/%sx
904 anymore, since ipython keeps this always done for you. Note that
909 anymore, since ipython keeps this always done for you. Note that
905 only the LAST results are stored, the _o/e variables are
910 only the LAST results are stored, the _o/e variables are
906 overwritten on each call. If you need to save their contents
911 overwritten on each call. If you need to save their contents
907 further, simply bind them to any other name.
912 further, simply bind them to any other name.
908
913
909 2005-03-17 Fernando Perez <fperez@colorado.edu>
914 2005-03-17 Fernando Perez <fperez@colorado.edu>
910
915
911 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
916 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
912 prompt namespace handling.
917 prompt namespace handling.
913
918
914 2005-03-16 Fernando Perez <fperez@colorado.edu>
919 2005-03-16 Fernando Perez <fperez@colorado.edu>
915
920
916 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
921 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
917 classic prompts to be '>>> ' (final space was missing, and it
922 classic prompts to be '>>> ' (final space was missing, and it
918 trips the emacs python mode).
923 trips the emacs python mode).
919 (BasePrompt.__str__): Added safe support for dynamic prompt
924 (BasePrompt.__str__): Added safe support for dynamic prompt
920 strings. Now you can set your prompt string to be '$x', and the
925 strings. Now you can set your prompt string to be '$x', and the
921 value of x will be printed from your interactive namespace. The
926 value of x will be printed from your interactive namespace. The
922 interpolation syntax includes the full Itpl support, so
927 interpolation syntax includes the full Itpl support, so
923 ${foo()+x+bar()} is a valid prompt string now, and the function
928 ${foo()+x+bar()} is a valid prompt string now, and the function
924 calls will be made at runtime.
929 calls will be made at runtime.
925
930
926 2005-03-15 Fernando Perez <fperez@colorado.edu>
931 2005-03-15 Fernando Perez <fperez@colorado.edu>
927
932
928 * IPython/Magic.py (magic_history): renamed %hist to %history, to
933 * IPython/Magic.py (magic_history): renamed %hist to %history, to
929 avoid name clashes in pylab. %hist still works, it just forwards
934 avoid name clashes in pylab. %hist still works, it just forwards
930 the call to %history.
935 the call to %history.
931
936
932 2005-03-02 *** Released version 0.6.12
937 2005-03-02 *** Released version 0.6.12
933
938
934 2005-03-02 Fernando Perez <fperez@colorado.edu>
939 2005-03-02 Fernando Perez <fperez@colorado.edu>
935
940
936 * IPython/iplib.py (handle_magic): log magic calls properly as
941 * IPython/iplib.py (handle_magic): log magic calls properly as
937 ipmagic() function calls.
942 ipmagic() function calls.
938
943
939 * IPython/Magic.py (magic_time): Improved %time to support
944 * IPython/Magic.py (magic_time): Improved %time to support
940 statements and provide wall-clock as well as CPU time.
945 statements and provide wall-clock as well as CPU time.
941
946
942 2005-02-27 Fernando Perez <fperez@colorado.edu>
947 2005-02-27 Fernando Perez <fperez@colorado.edu>
943
948
944 * IPython/hooks.py: New hooks module, to expose user-modifiable
949 * IPython/hooks.py: New hooks module, to expose user-modifiable
945 IPython functionality in a clean manner. For now only the editor
950 IPython functionality in a clean manner. For now only the editor
946 hook is actually written, and other thigns which I intend to turn
951 hook is actually written, and other thigns which I intend to turn
947 into proper hooks aren't yet there. The display and prefilter
952 into proper hooks aren't yet there. The display and prefilter
948 stuff, for example, should be hooks. But at least now the
953 stuff, for example, should be hooks. But at least now the
949 framework is in place, and the rest can be moved here with more
954 framework is in place, and the rest can be moved here with more
950 time later. IPython had had a .hooks variable for a long time for
955 time later. IPython had had a .hooks variable for a long time for
951 this purpose, but I'd never actually used it for anything.
956 this purpose, but I'd never actually used it for anything.
952
957
953 2005-02-26 Fernando Perez <fperez@colorado.edu>
958 2005-02-26 Fernando Perez <fperez@colorado.edu>
954
959
955 * IPython/ipmaker.py (make_IPython): make the default ipython
960 * IPython/ipmaker.py (make_IPython): make the default ipython
956 directory be called _ipython under win32, to follow more the
961 directory be called _ipython under win32, to follow more the
957 naming peculiarities of that platform (where buggy software like
962 naming peculiarities of that platform (where buggy software like
958 Visual Sourcesafe breaks with .named directories). Reported by
963 Visual Sourcesafe breaks with .named directories). Reported by
959 Ville Vainio.
964 Ville Vainio.
960
965
961 2005-02-23 Fernando Perez <fperez@colorado.edu>
966 2005-02-23 Fernando Perez <fperez@colorado.edu>
962
967
963 * IPython/iplib.py (InteractiveShell.__init__): removed a few
968 * IPython/iplib.py (InteractiveShell.__init__): removed a few
964 auto_aliases for win32 which were causing problems. Users can
969 auto_aliases for win32 which were causing problems. Users can
965 define the ones they personally like.
970 define the ones they personally like.
966
971
967 2005-02-21 Fernando Perez <fperez@colorado.edu>
972 2005-02-21 Fernando Perez <fperez@colorado.edu>
968
973
969 * IPython/Magic.py (magic_time): new magic to time execution of
974 * IPython/Magic.py (magic_time): new magic to time execution of
970 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
975 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
971
976
972 2005-02-19 Fernando Perez <fperez@colorado.edu>
977 2005-02-19 Fernando Perez <fperez@colorado.edu>
973
978
974 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
979 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
975 into keys (for prompts, for example).
980 into keys (for prompts, for example).
976
981
977 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
982 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
978 prompts in case users want them. This introduces a small behavior
983 prompts in case users want them. This introduces a small behavior
979 change: ipython does not automatically add a space to all prompts
984 change: ipython does not automatically add a space to all prompts
980 anymore. To get the old prompts with a space, users should add it
985 anymore. To get the old prompts with a space, users should add it
981 manually to their ipythonrc file, so for example prompt_in1 should
986 manually to their ipythonrc file, so for example prompt_in1 should
982 now read 'In [\#]: ' instead of 'In [\#]:'.
987 now read 'In [\#]: ' instead of 'In [\#]:'.
983 (BasePrompt.__init__): New option prompts_pad_left (only in rc
988 (BasePrompt.__init__): New option prompts_pad_left (only in rc
984 file) to control left-padding of secondary prompts.
989 file) to control left-padding of secondary prompts.
985
990
986 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
991 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
987 the profiler can't be imported. Fix for Debian, which removed
992 the profiler can't be imported. Fix for Debian, which removed
988 profile.py because of License issues. I applied a slightly
993 profile.py because of License issues. I applied a slightly
989 modified version of the original Debian patch at
994 modified version of the original Debian patch at
990 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
995 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
991
996
992 2005-02-17 Fernando Perez <fperez@colorado.edu>
997 2005-02-17 Fernando Perez <fperez@colorado.edu>
993
998
994 * IPython/genutils.py (native_line_ends): Fix bug which would
999 * IPython/genutils.py (native_line_ends): Fix bug which would
995 cause improper line-ends under win32 b/c I was not opening files
1000 cause improper line-ends under win32 b/c I was not opening files
996 in binary mode. Bug report and fix thanks to Ville.
1001 in binary mode. Bug report and fix thanks to Ville.
997
1002
998 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1003 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
999 trying to catch spurious foo[1] autocalls. My fix actually broke
1004 trying to catch spurious foo[1] autocalls. My fix actually broke
1000 ',/' autoquote/call with explicit escape (bad regexp).
1005 ',/' autoquote/call with explicit escape (bad regexp).
1001
1006
1002 2005-02-15 *** Released version 0.6.11
1007 2005-02-15 *** Released version 0.6.11
1003
1008
1004 2005-02-14 Fernando Perez <fperez@colorado.edu>
1009 2005-02-14 Fernando Perez <fperez@colorado.edu>
1005
1010
1006 * IPython/background_jobs.py: New background job management
1011 * IPython/background_jobs.py: New background job management
1007 subsystem. This is implemented via a new set of classes, and
1012 subsystem. This is implemented via a new set of classes, and
1008 IPython now provides a builtin 'jobs' object for background job
1013 IPython now provides a builtin 'jobs' object for background job
1009 execution. A convenience %bg magic serves as a lightweight
1014 execution. A convenience %bg magic serves as a lightweight
1010 frontend for starting the more common type of calls. This was
1015 frontend for starting the more common type of calls. This was
1011 inspired by discussions with B. Granger and the BackgroundCommand
1016 inspired by discussions with B. Granger and the BackgroundCommand
1012 class described in the book Python Scripting for Computational
1017 class described in the book Python Scripting for Computational
1013 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1018 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1014 (although ultimately no code from this text was used, as IPython's
1019 (although ultimately no code from this text was used, as IPython's
1015 system is a separate implementation).
1020 system is a separate implementation).
1016
1021
1017 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1022 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1018 to control the completion of single/double underscore names
1023 to control the completion of single/double underscore names
1019 separately. As documented in the example ipytonrc file, the
1024 separately. As documented in the example ipytonrc file, the
1020 readline_omit__names variable can now be set to 2, to omit even
1025 readline_omit__names variable can now be set to 2, to omit even
1021 single underscore names. Thanks to a patch by Brian Wong
1026 single underscore names. Thanks to a patch by Brian Wong
1022 <BrianWong-AT-AirgoNetworks.Com>.
1027 <BrianWong-AT-AirgoNetworks.Com>.
1023 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1028 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1024 be autocalled as foo([1]) if foo were callable. A problem for
1029 be autocalled as foo([1]) if foo were callable. A problem for
1025 things which are both callable and implement __getitem__.
1030 things which are both callable and implement __getitem__.
1026 (init_readline): Fix autoindentation for win32. Thanks to a patch
1031 (init_readline): Fix autoindentation for win32. Thanks to a patch
1027 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1032 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1028
1033
1029 2005-02-12 Fernando Perez <fperez@colorado.edu>
1034 2005-02-12 Fernando Perez <fperez@colorado.edu>
1030
1035
1031 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1036 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1032 which I had written long ago to sort out user error messages which
1037 which I had written long ago to sort out user error messages which
1033 may occur during startup. This seemed like a good idea initially,
1038 may occur during startup. This seemed like a good idea initially,
1034 but it has proven a disaster in retrospect. I don't want to
1039 but it has proven a disaster in retrospect. I don't want to
1035 change much code for now, so my fix is to set the internal 'debug'
1040 change much code for now, so my fix is to set the internal 'debug'
1036 flag to true everywhere, whose only job was precisely to control
1041 flag to true everywhere, whose only job was precisely to control
1037 this subsystem. This closes issue 28 (as well as avoiding all
1042 this subsystem. This closes issue 28 (as well as avoiding all
1038 sorts of strange hangups which occur from time to time).
1043 sorts of strange hangups which occur from time to time).
1039
1044
1040 2005-02-07 Fernando Perez <fperez@colorado.edu>
1045 2005-02-07 Fernando Perez <fperez@colorado.edu>
1041
1046
1042 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1047 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1043 previous call produced a syntax error.
1048 previous call produced a syntax error.
1044
1049
1045 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1050 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1046 classes without constructor.
1051 classes without constructor.
1047
1052
1048 2005-02-06 Fernando Perez <fperez@colorado.edu>
1053 2005-02-06 Fernando Perez <fperez@colorado.edu>
1049
1054
1050 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1055 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1051 completions with the results of each matcher, so we return results
1056 completions with the results of each matcher, so we return results
1052 to the user from all namespaces. This breaks with ipython
1057 to the user from all namespaces. This breaks with ipython
1053 tradition, but I think it's a nicer behavior. Now you get all
1058 tradition, but I think it's a nicer behavior. Now you get all
1054 possible completions listed, from all possible namespaces (python,
1059 possible completions listed, from all possible namespaces (python,
1055 filesystem, magics...) After a request by John Hunter
1060 filesystem, magics...) After a request by John Hunter
1056 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1061 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1057
1062
1058 2005-02-05 Fernando Perez <fperez@colorado.edu>
1063 2005-02-05 Fernando Perez <fperez@colorado.edu>
1059
1064
1060 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1065 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1061 the call had quote characters in it (the quotes were stripped).
1066 the call had quote characters in it (the quotes were stripped).
1062
1067
1063 2005-01-31 Fernando Perez <fperez@colorado.edu>
1068 2005-01-31 Fernando Perez <fperez@colorado.edu>
1064
1069
1065 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1070 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1066 Itpl.itpl() to make the code more robust against psyco
1071 Itpl.itpl() to make the code more robust against psyco
1067 optimizations.
1072 optimizations.
1068
1073
1069 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1074 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1070 of causing an exception. Quicker, cleaner.
1075 of causing an exception. Quicker, cleaner.
1071
1076
1072 2005-01-28 Fernando Perez <fperez@colorado.edu>
1077 2005-01-28 Fernando Perez <fperez@colorado.edu>
1073
1078
1074 * scripts/ipython_win_post_install.py (install): hardcode
1079 * scripts/ipython_win_post_install.py (install): hardcode
1075 sys.prefix+'python.exe' as the executable path. It turns out that
1080 sys.prefix+'python.exe' as the executable path. It turns out that
1076 during the post-installation run, sys.executable resolves to the
1081 during the post-installation run, sys.executable resolves to the
1077 name of the binary installer! I should report this as a distutils
1082 name of the binary installer! I should report this as a distutils
1078 bug, I think. I updated the .10 release with this tiny fix, to
1083 bug, I think. I updated the .10 release with this tiny fix, to
1079 avoid annoying the lists further.
1084 avoid annoying the lists further.
1080
1085
1081 2005-01-27 *** Released version 0.6.10
1086 2005-01-27 *** Released version 0.6.10
1082
1087
1083 2005-01-27 Fernando Perez <fperez@colorado.edu>
1088 2005-01-27 Fernando Perez <fperez@colorado.edu>
1084
1089
1085 * IPython/numutils.py (norm): Added 'inf' as optional name for
1090 * IPython/numutils.py (norm): Added 'inf' as optional name for
1086 L-infinity norm, included references to mathworld.com for vector
1091 L-infinity norm, included references to mathworld.com for vector
1087 norm definitions.
1092 norm definitions.
1088 (amin/amax): added amin/amax for array min/max. Similar to what
1093 (amin/amax): added amin/amax for array min/max. Similar to what
1089 pylab ships with after the recent reorganization of names.
1094 pylab ships with after the recent reorganization of names.
1090 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1095 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1091
1096
1092 * ipython.el: committed Alex's recent fixes and improvements.
1097 * ipython.el: committed Alex's recent fixes and improvements.
1093 Tested with python-mode from CVS, and it looks excellent. Since
1098 Tested with python-mode from CVS, and it looks excellent. Since
1094 python-mode hasn't released anything in a while, I'm temporarily
1099 python-mode hasn't released anything in a while, I'm temporarily
1095 putting a copy of today's CVS (v 4.70) of python-mode in:
1100 putting a copy of today's CVS (v 4.70) of python-mode in:
1096 http://ipython.scipy.org/tmp/python-mode.el
1101 http://ipython.scipy.org/tmp/python-mode.el
1097
1102
1098 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1103 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1099 sys.executable for the executable name, instead of assuming it's
1104 sys.executable for the executable name, instead of assuming it's
1100 called 'python.exe' (the post-installer would have produced broken
1105 called 'python.exe' (the post-installer would have produced broken
1101 setups on systems with a differently named python binary).
1106 setups on systems with a differently named python binary).
1102
1107
1103 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1108 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1104 references to os.linesep, to make the code more
1109 references to os.linesep, to make the code more
1105 platform-independent. This is also part of the win32 coloring
1110 platform-independent. This is also part of the win32 coloring
1106 fixes.
1111 fixes.
1107
1112
1108 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1113 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1109 lines, which actually cause coloring bugs because the length of
1114 lines, which actually cause coloring bugs because the length of
1110 the line is very difficult to correctly compute with embedded
1115 the line is very difficult to correctly compute with embedded
1111 escapes. This was the source of all the coloring problems under
1116 escapes. This was the source of all the coloring problems under
1112 Win32. I think that _finally_, Win32 users have a properly
1117 Win32. I think that _finally_, Win32 users have a properly
1113 working ipython in all respects. This would never have happened
1118 working ipython in all respects. This would never have happened
1114 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1119 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1115
1120
1116 2005-01-26 *** Released version 0.6.9
1121 2005-01-26 *** Released version 0.6.9
1117
1122
1118 2005-01-25 Fernando Perez <fperez@colorado.edu>
1123 2005-01-25 Fernando Perez <fperez@colorado.edu>
1119
1124
1120 * setup.py: finally, we have a true Windows installer, thanks to
1125 * setup.py: finally, we have a true Windows installer, thanks to
1121 the excellent work of Viktor Ransmayr
1126 the excellent work of Viktor Ransmayr
1122 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1127 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1123 Windows users. The setup routine is quite a bit cleaner thanks to
1128 Windows users. The setup routine is quite a bit cleaner thanks to
1124 this, and the post-install script uses the proper functions to
1129 this, and the post-install script uses the proper functions to
1125 allow a clean de-installation using the standard Windows Control
1130 allow a clean de-installation using the standard Windows Control
1126 Panel.
1131 Panel.
1127
1132
1128 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1133 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1129 environment variable under all OSes (including win32) if
1134 environment variable under all OSes (including win32) if
1130 available. This will give consistency to win32 users who have set
1135 available. This will give consistency to win32 users who have set
1131 this variable for any reason. If os.environ['HOME'] fails, the
1136 this variable for any reason. If os.environ['HOME'] fails, the
1132 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1137 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1133
1138
1134 2005-01-24 Fernando Perez <fperez@colorado.edu>
1139 2005-01-24 Fernando Perez <fperez@colorado.edu>
1135
1140
1136 * IPython/numutils.py (empty_like): add empty_like(), similar to
1141 * IPython/numutils.py (empty_like): add empty_like(), similar to
1137 zeros_like() but taking advantage of the new empty() Numeric routine.
1142 zeros_like() but taking advantage of the new empty() Numeric routine.
1138
1143
1139 2005-01-23 *** Released version 0.6.8
1144 2005-01-23 *** Released version 0.6.8
1140
1145
1141 2005-01-22 Fernando Perez <fperez@colorado.edu>
1146 2005-01-22 Fernando Perez <fperez@colorado.edu>
1142
1147
1143 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1148 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1144 automatic show() calls. After discussing things with JDH, it
1149 automatic show() calls. After discussing things with JDH, it
1145 turns out there are too many corner cases where this can go wrong.
1150 turns out there are too many corner cases where this can go wrong.
1146 It's best not to try to be 'too smart', and simply have ipython
1151 It's best not to try to be 'too smart', and simply have ipython
1147 reproduce as much as possible the default behavior of a normal
1152 reproduce as much as possible the default behavior of a normal
1148 python shell.
1153 python shell.
1149
1154
1150 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1155 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1151 line-splitting regexp and _prefilter() to avoid calling getattr()
1156 line-splitting regexp and _prefilter() to avoid calling getattr()
1152 on assignments. This closes
1157 on assignments. This closes
1153 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1158 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1154 readline uses getattr(), so a simple <TAB> keypress is still
1159 readline uses getattr(), so a simple <TAB> keypress is still
1155 enough to trigger getattr() calls on an object.
1160 enough to trigger getattr() calls on an object.
1156
1161
1157 2005-01-21 Fernando Perez <fperez@colorado.edu>
1162 2005-01-21 Fernando Perez <fperez@colorado.edu>
1158
1163
1159 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1164 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1160 docstring under pylab so it doesn't mask the original.
1165 docstring under pylab so it doesn't mask the original.
1161
1166
1162 2005-01-21 *** Released version 0.6.7
1167 2005-01-21 *** Released version 0.6.7
1163
1168
1164 2005-01-21 Fernando Perez <fperez@colorado.edu>
1169 2005-01-21 Fernando Perez <fperez@colorado.edu>
1165
1170
1166 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1171 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1167 signal handling for win32 users in multithreaded mode.
1172 signal handling for win32 users in multithreaded mode.
1168
1173
1169 2005-01-17 Fernando Perez <fperez@colorado.edu>
1174 2005-01-17 Fernando Perez <fperez@colorado.edu>
1170
1175
1171 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1176 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1172 instances with no __init__. After a crash report by Norbert Nemec
1177 instances with no __init__. After a crash report by Norbert Nemec
1173 <Norbert-AT-nemec-online.de>.
1178 <Norbert-AT-nemec-online.de>.
1174
1179
1175 2005-01-14 Fernando Perez <fperez@colorado.edu>
1180 2005-01-14 Fernando Perez <fperez@colorado.edu>
1176
1181
1177 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1182 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1178 names for verbose exceptions, when multiple dotted names and the
1183 names for verbose exceptions, when multiple dotted names and the
1179 'parent' object were present on the same line.
1184 'parent' object were present on the same line.
1180
1185
1181 2005-01-11 Fernando Perez <fperez@colorado.edu>
1186 2005-01-11 Fernando Perez <fperez@colorado.edu>
1182
1187
1183 * IPython/genutils.py (flag_calls): new utility to trap and flag
1188 * IPython/genutils.py (flag_calls): new utility to trap and flag
1184 calls in functions. I need it to clean up matplotlib support.
1189 calls in functions. I need it to clean up matplotlib support.
1185 Also removed some deprecated code in genutils.
1190 Also removed some deprecated code in genutils.
1186
1191
1187 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1192 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1188 that matplotlib scripts called with %run, which don't call show()
1193 that matplotlib scripts called with %run, which don't call show()
1189 themselves, still have their plotting windows open.
1194 themselves, still have their plotting windows open.
1190
1195
1191 2005-01-05 Fernando Perez <fperez@colorado.edu>
1196 2005-01-05 Fernando Perez <fperez@colorado.edu>
1192
1197
1193 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1198 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1194 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1199 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1195
1200
1196 2004-12-19 Fernando Perez <fperez@colorado.edu>
1201 2004-12-19 Fernando Perez <fperez@colorado.edu>
1197
1202
1198 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1203 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1199 parent_runcode, which was an eyesore. The same result can be
1204 parent_runcode, which was an eyesore. The same result can be
1200 obtained with Python's regular superclass mechanisms.
1205 obtained with Python's regular superclass mechanisms.
1201
1206
1202 2004-12-17 Fernando Perez <fperez@colorado.edu>
1207 2004-12-17 Fernando Perez <fperez@colorado.edu>
1203
1208
1204 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1209 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1205 reported by Prabhu.
1210 reported by Prabhu.
1206 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1211 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1207 sys.stderr) instead of explicitly calling sys.stderr. This helps
1212 sys.stderr) instead of explicitly calling sys.stderr. This helps
1208 maintain our I/O abstractions clean, for future GUI embeddings.
1213 maintain our I/O abstractions clean, for future GUI embeddings.
1209
1214
1210 * IPython/genutils.py (info): added new utility for sys.stderr
1215 * IPython/genutils.py (info): added new utility for sys.stderr
1211 unified info message handling (thin wrapper around warn()).
1216 unified info message handling (thin wrapper around warn()).
1212
1217
1213 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1218 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1214 composite (dotted) names on verbose exceptions.
1219 composite (dotted) names on verbose exceptions.
1215 (VerboseTB.nullrepr): harden against another kind of errors which
1220 (VerboseTB.nullrepr): harden against another kind of errors which
1216 Python's inspect module can trigger, and which were crashing
1221 Python's inspect module can trigger, and which were crashing
1217 IPython. Thanks to a report by Marco Lombardi
1222 IPython. Thanks to a report by Marco Lombardi
1218 <mlombard-AT-ma010192.hq.eso.org>.
1223 <mlombard-AT-ma010192.hq.eso.org>.
1219
1224
1220 2004-12-13 *** Released version 0.6.6
1225 2004-12-13 *** Released version 0.6.6
1221
1226
1222 2004-12-12 Fernando Perez <fperez@colorado.edu>
1227 2004-12-12 Fernando Perez <fperez@colorado.edu>
1223
1228
1224 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1229 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1225 generated by pygtk upon initialization if it was built without
1230 generated by pygtk upon initialization if it was built without
1226 threads (for matplotlib users). After a crash reported by
1231 threads (for matplotlib users). After a crash reported by
1227 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1232 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1228
1233
1229 * IPython/ipmaker.py (make_IPython): fix small bug in the
1234 * IPython/ipmaker.py (make_IPython): fix small bug in the
1230 import_some parameter for multiple imports.
1235 import_some parameter for multiple imports.
1231
1236
1232 * IPython/iplib.py (ipmagic): simplified the interface of
1237 * IPython/iplib.py (ipmagic): simplified the interface of
1233 ipmagic() to take a single string argument, just as it would be
1238 ipmagic() to take a single string argument, just as it would be
1234 typed at the IPython cmd line.
1239 typed at the IPython cmd line.
1235 (ipalias): Added new ipalias() with an interface identical to
1240 (ipalias): Added new ipalias() with an interface identical to
1236 ipmagic(). This completes exposing a pure python interface to the
1241 ipmagic(). This completes exposing a pure python interface to the
1237 alias and magic system, which can be used in loops or more complex
1242 alias and magic system, which can be used in loops or more complex
1238 code where IPython's automatic line mangling is not active.
1243 code where IPython's automatic line mangling is not active.
1239
1244
1240 * IPython/genutils.py (timing): changed interface of timing to
1245 * IPython/genutils.py (timing): changed interface of timing to
1241 simply run code once, which is the most common case. timings()
1246 simply run code once, which is the most common case. timings()
1242 remains unchanged, for the cases where you want multiple runs.
1247 remains unchanged, for the cases where you want multiple runs.
1243
1248
1244 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1249 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1245 bug where Python2.2 crashes with exec'ing code which does not end
1250 bug where Python2.2 crashes with exec'ing code which does not end
1246 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1251 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1247 before.
1252 before.
1248
1253
1249 2004-12-10 Fernando Perez <fperez@colorado.edu>
1254 2004-12-10 Fernando Perez <fperez@colorado.edu>
1250
1255
1251 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1256 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1252 -t to -T, to accomodate the new -t flag in %run (the %run and
1257 -t to -T, to accomodate the new -t flag in %run (the %run and
1253 %prun options are kind of intermixed, and it's not easy to change
1258 %prun options are kind of intermixed, and it's not easy to change
1254 this with the limitations of python's getopt).
1259 this with the limitations of python's getopt).
1255
1260
1256 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1261 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1257 the execution of scripts. It's not as fine-tuned as timeit.py,
1262 the execution of scripts. It's not as fine-tuned as timeit.py,
1258 but it works from inside ipython (and under 2.2, which lacks
1263 but it works from inside ipython (and under 2.2, which lacks
1259 timeit.py). Optionally a number of runs > 1 can be given for
1264 timeit.py). Optionally a number of runs > 1 can be given for
1260 timing very short-running code.
1265 timing very short-running code.
1261
1266
1262 * IPython/genutils.py (uniq_stable): new routine which returns a
1267 * IPython/genutils.py (uniq_stable): new routine which returns a
1263 list of unique elements in any iterable, but in stable order of
1268 list of unique elements in any iterable, but in stable order of
1264 appearance. I needed this for the ultraTB fixes, and it's a handy
1269 appearance. I needed this for the ultraTB fixes, and it's a handy
1265 utility.
1270 utility.
1266
1271
1267 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1272 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1268 dotted names in Verbose exceptions. This had been broken since
1273 dotted names in Verbose exceptions. This had been broken since
1269 the very start, now x.y will properly be printed in a Verbose
1274 the very start, now x.y will properly be printed in a Verbose
1270 traceback, instead of x being shown and y appearing always as an
1275 traceback, instead of x being shown and y appearing always as an
1271 'undefined global'. Getting this to work was a bit tricky,
1276 'undefined global'. Getting this to work was a bit tricky,
1272 because by default python tokenizers are stateless. Saved by
1277 because by default python tokenizers are stateless. Saved by
1273 python's ability to easily add a bit of state to an arbitrary
1278 python's ability to easily add a bit of state to an arbitrary
1274 function (without needing to build a full-blown callable object).
1279 function (without needing to build a full-blown callable object).
1275
1280
1276 Also big cleanup of this code, which had horrendous runtime
1281 Also big cleanup of this code, which had horrendous runtime
1277 lookups of zillions of attributes for colorization. Moved all
1282 lookups of zillions of attributes for colorization. Moved all
1278 this code into a few templates, which make it cleaner and quicker.
1283 this code into a few templates, which make it cleaner and quicker.
1279
1284
1280 Printout quality was also improved for Verbose exceptions: one
1285 Printout quality was also improved for Verbose exceptions: one
1281 variable per line, and memory addresses are printed (this can be
1286 variable per line, and memory addresses are printed (this can be
1282 quite handy in nasty debugging situations, which is what Verbose
1287 quite handy in nasty debugging situations, which is what Verbose
1283 is for).
1288 is for).
1284
1289
1285 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1290 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1286 the command line as scripts to be loaded by embedded instances.
1291 the command line as scripts to be loaded by embedded instances.
1287 Doing so has the potential for an infinite recursion if there are
1292 Doing so has the potential for an infinite recursion if there are
1288 exceptions thrown in the process. This fixes a strange crash
1293 exceptions thrown in the process. This fixes a strange crash
1289 reported by Philippe MULLER <muller-AT-irit.fr>.
1294 reported by Philippe MULLER <muller-AT-irit.fr>.
1290
1295
1291 2004-12-09 Fernando Perez <fperez@colorado.edu>
1296 2004-12-09 Fernando Perez <fperez@colorado.edu>
1292
1297
1293 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1298 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1294 to reflect new names in matplotlib, which now expose the
1299 to reflect new names in matplotlib, which now expose the
1295 matlab-compatible interface via a pylab module instead of the
1300 matlab-compatible interface via a pylab module instead of the
1296 'matlab' name. The new code is backwards compatible, so users of
1301 'matlab' name. The new code is backwards compatible, so users of
1297 all matplotlib versions are OK. Patch by J. Hunter.
1302 all matplotlib versions are OK. Patch by J. Hunter.
1298
1303
1299 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1304 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1300 of __init__ docstrings for instances (class docstrings are already
1305 of __init__ docstrings for instances (class docstrings are already
1301 automatically printed). Instances with customized docstrings
1306 automatically printed). Instances with customized docstrings
1302 (indep. of the class) are also recognized and all 3 separate
1307 (indep. of the class) are also recognized and all 3 separate
1303 docstrings are printed (instance, class, constructor). After some
1308 docstrings are printed (instance, class, constructor). After some
1304 comments/suggestions by J. Hunter.
1309 comments/suggestions by J. Hunter.
1305
1310
1306 2004-12-05 Fernando Perez <fperez@colorado.edu>
1311 2004-12-05 Fernando Perez <fperez@colorado.edu>
1307
1312
1308 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1313 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1309 warnings when tab-completion fails and triggers an exception.
1314 warnings when tab-completion fails and triggers an exception.
1310
1315
1311 2004-12-03 Fernando Perez <fperez@colorado.edu>
1316 2004-12-03 Fernando Perez <fperez@colorado.edu>
1312
1317
1313 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1318 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1314 be triggered when using 'run -p'. An incorrect option flag was
1319 be triggered when using 'run -p'. An incorrect option flag was
1315 being set ('d' instead of 'D').
1320 being set ('d' instead of 'D').
1316 (manpage): fix missing escaped \- sign.
1321 (manpage): fix missing escaped \- sign.
1317
1322
1318 2004-11-30 *** Released version 0.6.5
1323 2004-11-30 *** Released version 0.6.5
1319
1324
1320 2004-11-30 Fernando Perez <fperez@colorado.edu>
1325 2004-11-30 Fernando Perez <fperez@colorado.edu>
1321
1326
1322 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1327 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1323 setting with -d option.
1328 setting with -d option.
1324
1329
1325 * setup.py (docfiles): Fix problem where the doc glob I was using
1330 * setup.py (docfiles): Fix problem where the doc glob I was using
1326 was COMPLETELY BROKEN. It was giving the right files by pure
1331 was COMPLETELY BROKEN. It was giving the right files by pure
1327 accident, but failed once I tried to include ipython.el. Note:
1332 accident, but failed once I tried to include ipython.el. Note:
1328 glob() does NOT allow you to do exclusion on multiple endings!
1333 glob() does NOT allow you to do exclusion on multiple endings!
1329
1334
1330 2004-11-29 Fernando Perez <fperez@colorado.edu>
1335 2004-11-29 Fernando Perez <fperez@colorado.edu>
1331
1336
1332 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1337 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1333 the manpage as the source. Better formatting & consistency.
1338 the manpage as the source. Better formatting & consistency.
1334
1339
1335 * IPython/Magic.py (magic_run): Added new -d option, to run
1340 * IPython/Magic.py (magic_run): Added new -d option, to run
1336 scripts under the control of the python pdb debugger. Note that
1341 scripts under the control of the python pdb debugger. Note that
1337 this required changing the %prun option -d to -D, to avoid a clash
1342 this required changing the %prun option -d to -D, to avoid a clash
1338 (since %run must pass options to %prun, and getopt is too dumb to
1343 (since %run must pass options to %prun, and getopt is too dumb to
1339 handle options with string values with embedded spaces). Thanks
1344 handle options with string values with embedded spaces). Thanks
1340 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1345 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1341 (magic_who_ls): added type matching to %who and %whos, so that one
1346 (magic_who_ls): added type matching to %who and %whos, so that one
1342 can filter their output to only include variables of certain
1347 can filter their output to only include variables of certain
1343 types. Another suggestion by Matthew.
1348 types. Another suggestion by Matthew.
1344 (magic_whos): Added memory summaries in kb and Mb for arrays.
1349 (magic_whos): Added memory summaries in kb and Mb for arrays.
1345 (magic_who): Improve formatting (break lines every 9 vars).
1350 (magic_who): Improve formatting (break lines every 9 vars).
1346
1351
1347 2004-11-28 Fernando Perez <fperez@colorado.edu>
1352 2004-11-28 Fernando Perez <fperez@colorado.edu>
1348
1353
1349 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1354 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1350 cache when empty lines were present.
1355 cache when empty lines were present.
1351
1356
1352 2004-11-24 Fernando Perez <fperez@colorado.edu>
1357 2004-11-24 Fernando Perez <fperez@colorado.edu>
1353
1358
1354 * IPython/usage.py (__doc__): document the re-activated threading
1359 * IPython/usage.py (__doc__): document the re-activated threading
1355 options for WX and GTK.
1360 options for WX and GTK.
1356
1361
1357 2004-11-23 Fernando Perez <fperez@colorado.edu>
1362 2004-11-23 Fernando Perez <fperez@colorado.edu>
1358
1363
1359 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1364 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1360 the -wthread and -gthread options, along with a new -tk one to try
1365 the -wthread and -gthread options, along with a new -tk one to try
1361 and coordinate Tk threading with wx/gtk. The tk support is very
1366 and coordinate Tk threading with wx/gtk. The tk support is very
1362 platform dependent, since it seems to require Tcl and Tk to be
1367 platform dependent, since it seems to require Tcl and Tk to be
1363 built with threads (Fedora1/2 appears NOT to have it, but in
1368 built with threads (Fedora1/2 appears NOT to have it, but in
1364 Prabhu's Debian boxes it works OK). But even with some Tk
1369 Prabhu's Debian boxes it works OK). But even with some Tk
1365 limitations, this is a great improvement.
1370 limitations, this is a great improvement.
1366
1371
1367 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1372 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1368 info in user prompts. Patch by Prabhu.
1373 info in user prompts. Patch by Prabhu.
1369
1374
1370 2004-11-18 Fernando Perez <fperez@colorado.edu>
1375 2004-11-18 Fernando Perez <fperez@colorado.edu>
1371
1376
1372 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1377 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1373 EOFErrors and bail, to avoid infinite loops if a non-terminating
1378 EOFErrors and bail, to avoid infinite loops if a non-terminating
1374 file is fed into ipython. Patch submitted in issue 19 by user,
1379 file is fed into ipython. Patch submitted in issue 19 by user,
1375 many thanks.
1380 many thanks.
1376
1381
1377 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1382 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1378 autoquote/parens in continuation prompts, which can cause lots of
1383 autoquote/parens in continuation prompts, which can cause lots of
1379 problems. Closes roundup issue 20.
1384 problems. Closes roundup issue 20.
1380
1385
1381 2004-11-17 Fernando Perez <fperez@colorado.edu>
1386 2004-11-17 Fernando Perez <fperez@colorado.edu>
1382
1387
1383 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1388 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1384 reported as debian bug #280505. I'm not sure my local changelog
1389 reported as debian bug #280505. I'm not sure my local changelog
1385 entry has the proper debian format (Jack?).
1390 entry has the proper debian format (Jack?).
1386
1391
1387 2004-11-08 *** Released version 0.6.4
1392 2004-11-08 *** Released version 0.6.4
1388
1393
1389 2004-11-08 Fernando Perez <fperez@colorado.edu>
1394 2004-11-08 Fernando Perez <fperez@colorado.edu>
1390
1395
1391 * IPython/iplib.py (init_readline): Fix exit message for Windows
1396 * IPython/iplib.py (init_readline): Fix exit message for Windows
1392 when readline is active. Thanks to a report by Eric Jones
1397 when readline is active. Thanks to a report by Eric Jones
1393 <eric-AT-enthought.com>.
1398 <eric-AT-enthought.com>.
1394
1399
1395 2004-11-07 Fernando Perez <fperez@colorado.edu>
1400 2004-11-07 Fernando Perez <fperez@colorado.edu>
1396
1401
1397 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1402 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1398 sometimes seen by win2k/cygwin users.
1403 sometimes seen by win2k/cygwin users.
1399
1404
1400 2004-11-06 Fernando Perez <fperez@colorado.edu>
1405 2004-11-06 Fernando Perez <fperez@colorado.edu>
1401
1406
1402 * IPython/iplib.py (interact): Change the handling of %Exit from
1407 * IPython/iplib.py (interact): Change the handling of %Exit from
1403 trying to propagate a SystemExit to an internal ipython flag.
1408 trying to propagate a SystemExit to an internal ipython flag.
1404 This is less elegant than using Python's exception mechanism, but
1409 This is less elegant than using Python's exception mechanism, but
1405 I can't get that to work reliably with threads, so under -pylab
1410 I can't get that to work reliably with threads, so under -pylab
1406 %Exit was hanging IPython. Cross-thread exception handling is
1411 %Exit was hanging IPython. Cross-thread exception handling is
1407 really a bitch. Thaks to a bug report by Stephen Walton
1412 really a bitch. Thaks to a bug report by Stephen Walton
1408 <stephen.walton-AT-csun.edu>.
1413 <stephen.walton-AT-csun.edu>.
1409
1414
1410 2004-11-04 Fernando Perez <fperez@colorado.edu>
1415 2004-11-04 Fernando Perez <fperez@colorado.edu>
1411
1416
1412 * IPython/iplib.py (raw_input_original): store a pointer to the
1417 * IPython/iplib.py (raw_input_original): store a pointer to the
1413 true raw_input to harden against code which can modify it
1418 true raw_input to harden against code which can modify it
1414 (wx.py.PyShell does this and would otherwise crash ipython).
1419 (wx.py.PyShell does this and would otherwise crash ipython).
1415 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1420 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1416
1421
1417 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1422 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1418 Ctrl-C problem, which does not mess up the input line.
1423 Ctrl-C problem, which does not mess up the input line.
1419
1424
1420 2004-11-03 Fernando Perez <fperez@colorado.edu>
1425 2004-11-03 Fernando Perez <fperez@colorado.edu>
1421
1426
1422 * IPython/Release.py: Changed licensing to BSD, in all files.
1427 * IPython/Release.py: Changed licensing to BSD, in all files.
1423 (name): lowercase name for tarball/RPM release.
1428 (name): lowercase name for tarball/RPM release.
1424
1429
1425 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1430 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1426 use throughout ipython.
1431 use throughout ipython.
1427
1432
1428 * IPython/Magic.py (Magic._ofind): Switch to using the new
1433 * IPython/Magic.py (Magic._ofind): Switch to using the new
1429 OInspect.getdoc() function.
1434 OInspect.getdoc() function.
1430
1435
1431 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1436 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1432 of the line currently being canceled via Ctrl-C. It's extremely
1437 of the line currently being canceled via Ctrl-C. It's extremely
1433 ugly, but I don't know how to do it better (the problem is one of
1438 ugly, but I don't know how to do it better (the problem is one of
1434 handling cross-thread exceptions).
1439 handling cross-thread exceptions).
1435
1440
1436 2004-10-28 Fernando Perez <fperez@colorado.edu>
1441 2004-10-28 Fernando Perez <fperez@colorado.edu>
1437
1442
1438 * IPython/Shell.py (signal_handler): add signal handlers to trap
1443 * IPython/Shell.py (signal_handler): add signal handlers to trap
1439 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1444 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1440 report by Francesc Alted.
1445 report by Francesc Alted.
1441
1446
1442 2004-10-21 Fernando Perez <fperez@colorado.edu>
1447 2004-10-21 Fernando Perez <fperez@colorado.edu>
1443
1448
1444 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1449 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1445 to % for pysh syntax extensions.
1450 to % for pysh syntax extensions.
1446
1451
1447 2004-10-09 Fernando Perez <fperez@colorado.edu>
1452 2004-10-09 Fernando Perez <fperez@colorado.edu>
1448
1453
1449 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1454 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1450 arrays to print a more useful summary, without calling str(arr).
1455 arrays to print a more useful summary, without calling str(arr).
1451 This avoids the problem of extremely lengthy computations which
1456 This avoids the problem of extremely lengthy computations which
1452 occur if arr is large, and appear to the user as a system lockup
1457 occur if arr is large, and appear to the user as a system lockup
1453 with 100% cpu activity. After a suggestion by Kristian Sandberg
1458 with 100% cpu activity. After a suggestion by Kristian Sandberg
1454 <Kristian.Sandberg@colorado.edu>.
1459 <Kristian.Sandberg@colorado.edu>.
1455 (Magic.__init__): fix bug in global magic escapes not being
1460 (Magic.__init__): fix bug in global magic escapes not being
1456 correctly set.
1461 correctly set.
1457
1462
1458 2004-10-08 Fernando Perez <fperez@colorado.edu>
1463 2004-10-08 Fernando Perez <fperez@colorado.edu>
1459
1464
1460 * IPython/Magic.py (__license__): change to absolute imports of
1465 * IPython/Magic.py (__license__): change to absolute imports of
1461 ipython's own internal packages, to start adapting to the absolute
1466 ipython's own internal packages, to start adapting to the absolute
1462 import requirement of PEP-328.
1467 import requirement of PEP-328.
1463
1468
1464 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1469 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1465 files, and standardize author/license marks through the Release
1470 files, and standardize author/license marks through the Release
1466 module instead of having per/file stuff (except for files with
1471 module instead of having per/file stuff (except for files with
1467 particular licenses, like the MIT/PSF-licensed codes).
1472 particular licenses, like the MIT/PSF-licensed codes).
1468
1473
1469 * IPython/Debugger.py: remove dead code for python 2.1
1474 * IPython/Debugger.py: remove dead code for python 2.1
1470
1475
1471 2004-10-04 Fernando Perez <fperez@colorado.edu>
1476 2004-10-04 Fernando Perez <fperez@colorado.edu>
1472
1477
1473 * IPython/iplib.py (ipmagic): New function for accessing magics
1478 * IPython/iplib.py (ipmagic): New function for accessing magics
1474 via a normal python function call.
1479 via a normal python function call.
1475
1480
1476 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1481 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1477 from '@' to '%', to accomodate the new @decorator syntax of python
1482 from '@' to '%', to accomodate the new @decorator syntax of python
1478 2.4.
1483 2.4.
1479
1484
1480 2004-09-29 Fernando Perez <fperez@colorado.edu>
1485 2004-09-29 Fernando Perez <fperez@colorado.edu>
1481
1486
1482 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1487 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1483 matplotlib.use to prevent running scripts which try to switch
1488 matplotlib.use to prevent running scripts which try to switch
1484 interactive backends from within ipython. This will just crash
1489 interactive backends from within ipython. This will just crash
1485 the python interpreter, so we can't allow it (but a detailed error
1490 the python interpreter, so we can't allow it (but a detailed error
1486 is given to the user).
1491 is given to the user).
1487
1492
1488 2004-09-28 Fernando Perez <fperez@colorado.edu>
1493 2004-09-28 Fernando Perez <fperez@colorado.edu>
1489
1494
1490 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1495 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1491 matplotlib-related fixes so that using @run with non-matplotlib
1496 matplotlib-related fixes so that using @run with non-matplotlib
1492 scripts doesn't pop up spurious plot windows. This requires
1497 scripts doesn't pop up spurious plot windows. This requires
1493 matplotlib >= 0.63, where I had to make some changes as well.
1498 matplotlib >= 0.63, where I had to make some changes as well.
1494
1499
1495 * IPython/ipmaker.py (make_IPython): update version requirement to
1500 * IPython/ipmaker.py (make_IPython): update version requirement to
1496 python 2.2.
1501 python 2.2.
1497
1502
1498 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1503 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1499 banner arg for embedded customization.
1504 banner arg for embedded customization.
1500
1505
1501 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1506 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1502 explicit uses of __IP as the IPython's instance name. Now things
1507 explicit uses of __IP as the IPython's instance name. Now things
1503 are properly handled via the shell.name value. The actual code
1508 are properly handled via the shell.name value. The actual code
1504 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1509 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1505 is much better than before. I'll clean things completely when the
1510 is much better than before. I'll clean things completely when the
1506 magic stuff gets a real overhaul.
1511 magic stuff gets a real overhaul.
1507
1512
1508 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1513 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1509 minor changes to debian dir.
1514 minor changes to debian dir.
1510
1515
1511 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1516 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1512 pointer to the shell itself in the interactive namespace even when
1517 pointer to the shell itself in the interactive namespace even when
1513 a user-supplied dict is provided. This is needed for embedding
1518 a user-supplied dict is provided. This is needed for embedding
1514 purposes (found by tests with Michel Sanner).
1519 purposes (found by tests with Michel Sanner).
1515
1520
1516 2004-09-27 Fernando Perez <fperez@colorado.edu>
1521 2004-09-27 Fernando Perez <fperez@colorado.edu>
1517
1522
1518 * IPython/UserConfig/ipythonrc: remove []{} from
1523 * IPython/UserConfig/ipythonrc: remove []{} from
1519 readline_remove_delims, so that things like [modname.<TAB> do
1524 readline_remove_delims, so that things like [modname.<TAB> do
1520 proper completion. This disables [].TAB, but that's a less common
1525 proper completion. This disables [].TAB, but that's a less common
1521 case than module names in list comprehensions, for example.
1526 case than module names in list comprehensions, for example.
1522 Thanks to a report by Andrea Riciputi.
1527 Thanks to a report by Andrea Riciputi.
1523
1528
1524 2004-09-09 Fernando Perez <fperez@colorado.edu>
1529 2004-09-09 Fernando Perez <fperez@colorado.edu>
1525
1530
1526 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1531 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1527 blocking problems in win32 and osx. Fix by John.
1532 blocking problems in win32 and osx. Fix by John.
1528
1533
1529 2004-09-08 Fernando Perez <fperez@colorado.edu>
1534 2004-09-08 Fernando Perez <fperez@colorado.edu>
1530
1535
1531 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1536 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1532 for Win32 and OSX. Fix by John Hunter.
1537 for Win32 and OSX. Fix by John Hunter.
1533
1538
1534 2004-08-30 *** Released version 0.6.3
1539 2004-08-30 *** Released version 0.6.3
1535
1540
1536 2004-08-30 Fernando Perez <fperez@colorado.edu>
1541 2004-08-30 Fernando Perez <fperez@colorado.edu>
1537
1542
1538 * setup.py (isfile): Add manpages to list of dependent files to be
1543 * setup.py (isfile): Add manpages to list of dependent files to be
1539 updated.
1544 updated.
1540
1545
1541 2004-08-27 Fernando Perez <fperez@colorado.edu>
1546 2004-08-27 Fernando Perez <fperez@colorado.edu>
1542
1547
1543 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1548 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1544 for now. They don't really work with standalone WX/GTK code
1549 for now. They don't really work with standalone WX/GTK code
1545 (though matplotlib IS working fine with both of those backends).
1550 (though matplotlib IS working fine with both of those backends).
1546 This will neeed much more testing. I disabled most things with
1551 This will neeed much more testing. I disabled most things with
1547 comments, so turning it back on later should be pretty easy.
1552 comments, so turning it back on later should be pretty easy.
1548
1553
1549 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1554 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1550 autocalling of expressions like r'foo', by modifying the line
1555 autocalling of expressions like r'foo', by modifying the line
1551 split regexp. Closes
1556 split regexp. Closes
1552 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1557 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1553 Riley <ipythonbugs-AT-sabi.net>.
1558 Riley <ipythonbugs-AT-sabi.net>.
1554 (InteractiveShell.mainloop): honor --nobanner with banner
1559 (InteractiveShell.mainloop): honor --nobanner with banner
1555 extensions.
1560 extensions.
1556
1561
1557 * IPython/Shell.py: Significant refactoring of all classes, so
1562 * IPython/Shell.py: Significant refactoring of all classes, so
1558 that we can really support ALL matplotlib backends and threading
1563 that we can really support ALL matplotlib backends and threading
1559 models (John spotted a bug with Tk which required this). Now we
1564 models (John spotted a bug with Tk which required this). Now we
1560 should support single-threaded, WX-threads and GTK-threads, both
1565 should support single-threaded, WX-threads and GTK-threads, both
1561 for generic code and for matplotlib.
1566 for generic code and for matplotlib.
1562
1567
1563 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1568 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1564 -pylab, to simplify things for users. Will also remove the pylab
1569 -pylab, to simplify things for users. Will also remove the pylab
1565 profile, since now all of matplotlib configuration is directly
1570 profile, since now all of matplotlib configuration is directly
1566 handled here. This also reduces startup time.
1571 handled here. This also reduces startup time.
1567
1572
1568 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1573 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1569 shell wasn't being correctly called. Also in IPShellWX.
1574 shell wasn't being correctly called. Also in IPShellWX.
1570
1575
1571 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1576 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1572 fine-tune banner.
1577 fine-tune banner.
1573
1578
1574 * IPython/numutils.py (spike): Deprecate these spike functions,
1579 * IPython/numutils.py (spike): Deprecate these spike functions,
1575 delete (long deprecated) gnuplot_exec handler.
1580 delete (long deprecated) gnuplot_exec handler.
1576
1581
1577 2004-08-26 Fernando Perez <fperez@colorado.edu>
1582 2004-08-26 Fernando Perez <fperez@colorado.edu>
1578
1583
1579 * ipython.1: Update for threading options, plus some others which
1584 * ipython.1: Update for threading options, plus some others which
1580 were missing.
1585 were missing.
1581
1586
1582 * IPython/ipmaker.py (__call__): Added -wthread option for
1587 * IPython/ipmaker.py (__call__): Added -wthread option for
1583 wxpython thread handling. Make sure threading options are only
1588 wxpython thread handling. Make sure threading options are only
1584 valid at the command line.
1589 valid at the command line.
1585
1590
1586 * scripts/ipython: moved shell selection into a factory function
1591 * scripts/ipython: moved shell selection into a factory function
1587 in Shell.py, to keep the starter script to a minimum.
1592 in Shell.py, to keep the starter script to a minimum.
1588
1593
1589 2004-08-25 Fernando Perez <fperez@colorado.edu>
1594 2004-08-25 Fernando Perez <fperez@colorado.edu>
1590
1595
1591 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1596 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1592 John. Along with some recent changes he made to matplotlib, the
1597 John. Along with some recent changes he made to matplotlib, the
1593 next versions of both systems should work very well together.
1598 next versions of both systems should work very well together.
1594
1599
1595 2004-08-24 Fernando Perez <fperez@colorado.edu>
1600 2004-08-24 Fernando Perez <fperez@colorado.edu>
1596
1601
1597 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1602 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1598 tried to switch the profiling to using hotshot, but I'm getting
1603 tried to switch the profiling to using hotshot, but I'm getting
1599 strange errors from prof.runctx() there. I may be misreading the
1604 strange errors from prof.runctx() there. I may be misreading the
1600 docs, but it looks weird. For now the profiling code will
1605 docs, but it looks weird. For now the profiling code will
1601 continue to use the standard profiler.
1606 continue to use the standard profiler.
1602
1607
1603 2004-08-23 Fernando Perez <fperez@colorado.edu>
1608 2004-08-23 Fernando Perez <fperez@colorado.edu>
1604
1609
1605 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1610 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1606 threaded shell, by John Hunter. It's not quite ready yet, but
1611 threaded shell, by John Hunter. It's not quite ready yet, but
1607 close.
1612 close.
1608
1613
1609 2004-08-22 Fernando Perez <fperez@colorado.edu>
1614 2004-08-22 Fernando Perez <fperez@colorado.edu>
1610
1615
1611 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1616 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1612 in Magic and ultraTB.
1617 in Magic and ultraTB.
1613
1618
1614 * ipython.1: document threading options in manpage.
1619 * ipython.1: document threading options in manpage.
1615
1620
1616 * scripts/ipython: Changed name of -thread option to -gthread,
1621 * scripts/ipython: Changed name of -thread option to -gthread,
1617 since this is GTK specific. I want to leave the door open for a
1622 since this is GTK specific. I want to leave the door open for a
1618 -wthread option for WX, which will most likely be necessary. This
1623 -wthread option for WX, which will most likely be necessary. This
1619 change affects usage and ipmaker as well.
1624 change affects usage and ipmaker as well.
1620
1625
1621 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1626 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1622 handle the matplotlib shell issues. Code by John Hunter
1627 handle the matplotlib shell issues. Code by John Hunter
1623 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1628 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1624 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1629 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1625 broken (and disabled for end users) for now, but it puts the
1630 broken (and disabled for end users) for now, but it puts the
1626 infrastructure in place.
1631 infrastructure in place.
1627
1632
1628 2004-08-21 Fernando Perez <fperez@colorado.edu>
1633 2004-08-21 Fernando Perez <fperez@colorado.edu>
1629
1634
1630 * ipythonrc-pylab: Add matplotlib support.
1635 * ipythonrc-pylab: Add matplotlib support.
1631
1636
1632 * matplotlib_config.py: new files for matplotlib support, part of
1637 * matplotlib_config.py: new files for matplotlib support, part of
1633 the pylab profile.
1638 the pylab profile.
1634
1639
1635 * IPython/usage.py (__doc__): documented the threading options.
1640 * IPython/usage.py (__doc__): documented the threading options.
1636
1641
1637 2004-08-20 Fernando Perez <fperez@colorado.edu>
1642 2004-08-20 Fernando Perez <fperez@colorado.edu>
1638
1643
1639 * ipython: Modified the main calling routine to handle the -thread
1644 * ipython: Modified the main calling routine to handle the -thread
1640 and -mpthread options. This needs to be done as a top-level hack,
1645 and -mpthread options. This needs to be done as a top-level hack,
1641 because it determines which class to instantiate for IPython
1646 because it determines which class to instantiate for IPython
1642 itself.
1647 itself.
1643
1648
1644 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1649 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1645 classes to support multithreaded GTK operation without blocking,
1650 classes to support multithreaded GTK operation without blocking,
1646 and matplotlib with all backends. This is a lot of still very
1651 and matplotlib with all backends. This is a lot of still very
1647 experimental code, and threads are tricky. So it may still have a
1652 experimental code, and threads are tricky. So it may still have a
1648 few rough edges... This code owes a lot to
1653 few rough edges... This code owes a lot to
1649 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1654 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1650 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1655 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1651 to John Hunter for all the matplotlib work.
1656 to John Hunter for all the matplotlib work.
1652
1657
1653 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1658 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1654 options for gtk thread and matplotlib support.
1659 options for gtk thread and matplotlib support.
1655
1660
1656 2004-08-16 Fernando Perez <fperez@colorado.edu>
1661 2004-08-16 Fernando Perez <fperez@colorado.edu>
1657
1662
1658 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1663 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1659 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1664 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1660 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1665 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1661
1666
1662 2004-08-11 Fernando Perez <fperez@colorado.edu>
1667 2004-08-11 Fernando Perez <fperez@colorado.edu>
1663
1668
1664 * setup.py (isfile): Fix build so documentation gets updated for
1669 * setup.py (isfile): Fix build so documentation gets updated for
1665 rpms (it was only done for .tgz builds).
1670 rpms (it was only done for .tgz builds).
1666
1671
1667 2004-08-10 Fernando Perez <fperez@colorado.edu>
1672 2004-08-10 Fernando Perez <fperez@colorado.edu>
1668
1673
1669 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1674 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1670
1675
1671 * iplib.py : Silence syntax error exceptions in tab-completion.
1676 * iplib.py : Silence syntax error exceptions in tab-completion.
1672
1677
1673 2004-08-05 Fernando Perez <fperez@colorado.edu>
1678 2004-08-05 Fernando Perez <fperez@colorado.edu>
1674
1679
1675 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1680 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1676 'color off' mark for continuation prompts. This was causing long
1681 'color off' mark for continuation prompts. This was causing long
1677 continuation lines to mis-wrap.
1682 continuation lines to mis-wrap.
1678
1683
1679 2004-08-01 Fernando Perez <fperez@colorado.edu>
1684 2004-08-01 Fernando Perez <fperez@colorado.edu>
1680
1685
1681 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1686 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1682 for building ipython to be a parameter. All this is necessary
1687 for building ipython to be a parameter. All this is necessary
1683 right now to have a multithreaded version, but this insane
1688 right now to have a multithreaded version, but this insane
1684 non-design will be cleaned up soon. For now, it's a hack that
1689 non-design will be cleaned up soon. For now, it's a hack that
1685 works.
1690 works.
1686
1691
1687 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1692 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1688 args in various places. No bugs so far, but it's a dangerous
1693 args in various places. No bugs so far, but it's a dangerous
1689 practice.
1694 practice.
1690
1695
1691 2004-07-31 Fernando Perez <fperez@colorado.edu>
1696 2004-07-31 Fernando Perez <fperez@colorado.edu>
1692
1697
1693 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1698 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1694 fix completion of files with dots in their names under most
1699 fix completion of files with dots in their names under most
1695 profiles (pysh was OK because the completion order is different).
1700 profiles (pysh was OK because the completion order is different).
1696
1701
1697 2004-07-27 Fernando Perez <fperez@colorado.edu>
1702 2004-07-27 Fernando Perez <fperez@colorado.edu>
1698
1703
1699 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1704 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1700 keywords manually, b/c the one in keyword.py was removed in python
1705 keywords manually, b/c the one in keyword.py was removed in python
1701 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1706 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1702 This is NOT a bug under python 2.3 and earlier.
1707 This is NOT a bug under python 2.3 and earlier.
1703
1708
1704 2004-07-26 Fernando Perez <fperez@colorado.edu>
1709 2004-07-26 Fernando Perez <fperez@colorado.edu>
1705
1710
1706 * IPython/ultraTB.py (VerboseTB.text): Add another
1711 * IPython/ultraTB.py (VerboseTB.text): Add another
1707 linecache.checkcache() call to try to prevent inspect.py from
1712 linecache.checkcache() call to try to prevent inspect.py from
1708 crashing under python 2.3. I think this fixes
1713 crashing under python 2.3. I think this fixes
1709 http://www.scipy.net/roundup/ipython/issue17.
1714 http://www.scipy.net/roundup/ipython/issue17.
1710
1715
1711 2004-07-26 *** Released version 0.6.2
1716 2004-07-26 *** Released version 0.6.2
1712
1717
1713 2004-07-26 Fernando Perez <fperez@colorado.edu>
1718 2004-07-26 Fernando Perez <fperez@colorado.edu>
1714
1719
1715 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1720 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1716 fail for any number.
1721 fail for any number.
1717 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1722 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1718 empty bookmarks.
1723 empty bookmarks.
1719
1724
1720 2004-07-26 *** Released version 0.6.1
1725 2004-07-26 *** Released version 0.6.1
1721
1726
1722 2004-07-26 Fernando Perez <fperez@colorado.edu>
1727 2004-07-26 Fernando Perez <fperez@colorado.edu>
1723
1728
1724 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1729 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1725
1730
1726 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1731 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1727 escaping '()[]{}' in filenames.
1732 escaping '()[]{}' in filenames.
1728
1733
1729 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1734 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1730 Python 2.2 users who lack a proper shlex.split.
1735 Python 2.2 users who lack a proper shlex.split.
1731
1736
1732 2004-07-19 Fernando Perez <fperez@colorado.edu>
1737 2004-07-19 Fernando Perez <fperez@colorado.edu>
1733
1738
1734 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1739 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1735 for reading readline's init file. I follow the normal chain:
1740 for reading readline's init file. I follow the normal chain:
1736 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1741 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1737 report by Mike Heeter. This closes
1742 report by Mike Heeter. This closes
1738 http://www.scipy.net/roundup/ipython/issue16.
1743 http://www.scipy.net/roundup/ipython/issue16.
1739
1744
1740 2004-07-18 Fernando Perez <fperez@colorado.edu>
1745 2004-07-18 Fernando Perez <fperez@colorado.edu>
1741
1746
1742 * IPython/iplib.py (__init__): Add better handling of '\' under
1747 * IPython/iplib.py (__init__): Add better handling of '\' under
1743 Win32 for filenames. After a patch by Ville.
1748 Win32 for filenames. After a patch by Ville.
1744
1749
1745 2004-07-17 Fernando Perez <fperez@colorado.edu>
1750 2004-07-17 Fernando Perez <fperez@colorado.edu>
1746
1751
1747 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1752 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1748 autocalling would be triggered for 'foo is bar' if foo is
1753 autocalling would be triggered for 'foo is bar' if foo is
1749 callable. I also cleaned up the autocall detection code to use a
1754 callable. I also cleaned up the autocall detection code to use a
1750 regexp, which is faster. Bug reported by Alexander Schmolck.
1755 regexp, which is faster. Bug reported by Alexander Schmolck.
1751
1756
1752 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1757 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1753 '?' in them would confuse the help system. Reported by Alex
1758 '?' in them would confuse the help system. Reported by Alex
1754 Schmolck.
1759 Schmolck.
1755
1760
1756 2004-07-16 Fernando Perez <fperez@colorado.edu>
1761 2004-07-16 Fernando Perez <fperez@colorado.edu>
1757
1762
1758 * IPython/GnuplotInteractive.py (__all__): added plot2.
1763 * IPython/GnuplotInteractive.py (__all__): added plot2.
1759
1764
1760 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1765 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1761 plotting dictionaries, lists or tuples of 1d arrays.
1766 plotting dictionaries, lists or tuples of 1d arrays.
1762
1767
1763 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1768 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1764 optimizations.
1769 optimizations.
1765
1770
1766 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1771 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1767 the information which was there from Janko's original IPP code:
1772 the information which was there from Janko's original IPP code:
1768
1773
1769 03.05.99 20:53 porto.ifm.uni-kiel.de
1774 03.05.99 20:53 porto.ifm.uni-kiel.de
1770 --Started changelog.
1775 --Started changelog.
1771 --make clear do what it say it does
1776 --make clear do what it say it does
1772 --added pretty output of lines from inputcache
1777 --added pretty output of lines from inputcache
1773 --Made Logger a mixin class, simplifies handling of switches
1778 --Made Logger a mixin class, simplifies handling of switches
1774 --Added own completer class. .string<TAB> expands to last history
1779 --Added own completer class. .string<TAB> expands to last history
1775 line which starts with string. The new expansion is also present
1780 line which starts with string. The new expansion is also present
1776 with Ctrl-r from the readline library. But this shows, who this
1781 with Ctrl-r from the readline library. But this shows, who this
1777 can be done for other cases.
1782 can be done for other cases.
1778 --Added convention that all shell functions should accept a
1783 --Added convention that all shell functions should accept a
1779 parameter_string This opens the door for different behaviour for
1784 parameter_string This opens the door for different behaviour for
1780 each function. @cd is a good example of this.
1785 each function. @cd is a good example of this.
1781
1786
1782 04.05.99 12:12 porto.ifm.uni-kiel.de
1787 04.05.99 12:12 porto.ifm.uni-kiel.de
1783 --added logfile rotation
1788 --added logfile rotation
1784 --added new mainloop method which freezes first the namespace
1789 --added new mainloop method which freezes first the namespace
1785
1790
1786 07.05.99 21:24 porto.ifm.uni-kiel.de
1791 07.05.99 21:24 porto.ifm.uni-kiel.de
1787 --added the docreader classes. Now there is a help system.
1792 --added the docreader classes. Now there is a help system.
1788 -This is only a first try. Currently it's not easy to put new
1793 -This is only a first try. Currently it's not easy to put new
1789 stuff in the indices. But this is the way to go. Info would be
1794 stuff in the indices. But this is the way to go. Info would be
1790 better, but HTML is every where and not everybody has an info
1795 better, but HTML is every where and not everybody has an info
1791 system installed and it's not so easy to change html-docs to info.
1796 system installed and it's not so easy to change html-docs to info.
1792 --added global logfile option
1797 --added global logfile option
1793 --there is now a hook for object inspection method pinfo needs to
1798 --there is now a hook for object inspection method pinfo needs to
1794 be provided for this. Can be reached by two '??'.
1799 be provided for this. Can be reached by two '??'.
1795
1800
1796 08.05.99 20:51 porto.ifm.uni-kiel.de
1801 08.05.99 20:51 porto.ifm.uni-kiel.de
1797 --added a README
1802 --added a README
1798 --bug in rc file. Something has changed so functions in the rc
1803 --bug in rc file. Something has changed so functions in the rc
1799 file need to reference the shell and not self. Not clear if it's a
1804 file need to reference the shell and not self. Not clear if it's a
1800 bug or feature.
1805 bug or feature.
1801 --changed rc file for new behavior
1806 --changed rc file for new behavior
1802
1807
1803 2004-07-15 Fernando Perez <fperez@colorado.edu>
1808 2004-07-15 Fernando Perez <fperez@colorado.edu>
1804
1809
1805 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1810 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1806 cache was falling out of sync in bizarre manners when multi-line
1811 cache was falling out of sync in bizarre manners when multi-line
1807 input was present. Minor optimizations and cleanup.
1812 input was present. Minor optimizations and cleanup.
1808
1813
1809 (Logger): Remove old Changelog info for cleanup. This is the
1814 (Logger): Remove old Changelog info for cleanup. This is the
1810 information which was there from Janko's original code:
1815 information which was there from Janko's original code:
1811
1816
1812 Changes to Logger: - made the default log filename a parameter
1817 Changes to Logger: - made the default log filename a parameter
1813
1818
1814 - put a check for lines beginning with !@? in log(). Needed
1819 - put a check for lines beginning with !@? in log(). Needed
1815 (even if the handlers properly log their lines) for mid-session
1820 (even if the handlers properly log their lines) for mid-session
1816 logging activation to work properly. Without this, lines logged
1821 logging activation to work properly. Without this, lines logged
1817 in mid session, which get read from the cache, would end up
1822 in mid session, which get read from the cache, would end up
1818 'bare' (with !@? in the open) in the log. Now they are caught
1823 'bare' (with !@? in the open) in the log. Now they are caught
1819 and prepended with a #.
1824 and prepended with a #.
1820
1825
1821 * IPython/iplib.py (InteractiveShell.init_readline): added check
1826 * IPython/iplib.py (InteractiveShell.init_readline): added check
1822 in case MagicCompleter fails to be defined, so we don't crash.
1827 in case MagicCompleter fails to be defined, so we don't crash.
1823
1828
1824 2004-07-13 Fernando Perez <fperez@colorado.edu>
1829 2004-07-13 Fernando Perez <fperez@colorado.edu>
1825
1830
1826 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1831 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1827 of EPS if the requested filename ends in '.eps'.
1832 of EPS if the requested filename ends in '.eps'.
1828
1833
1829 2004-07-04 Fernando Perez <fperez@colorado.edu>
1834 2004-07-04 Fernando Perez <fperez@colorado.edu>
1830
1835
1831 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1836 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1832 escaping of quotes when calling the shell.
1837 escaping of quotes when calling the shell.
1833
1838
1834 2004-07-02 Fernando Perez <fperez@colorado.edu>
1839 2004-07-02 Fernando Perez <fperez@colorado.edu>
1835
1840
1836 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1841 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1837 gettext not working because we were clobbering '_'. Fixes
1842 gettext not working because we were clobbering '_'. Fixes
1838 http://www.scipy.net/roundup/ipython/issue6.
1843 http://www.scipy.net/roundup/ipython/issue6.
1839
1844
1840 2004-07-01 Fernando Perez <fperez@colorado.edu>
1845 2004-07-01 Fernando Perez <fperez@colorado.edu>
1841
1846
1842 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1847 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1843 into @cd. Patch by Ville.
1848 into @cd. Patch by Ville.
1844
1849
1845 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1850 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1846 new function to store things after ipmaker runs. Patch by Ville.
1851 new function to store things after ipmaker runs. Patch by Ville.
1847 Eventually this will go away once ipmaker is removed and the class
1852 Eventually this will go away once ipmaker is removed and the class
1848 gets cleaned up, but for now it's ok. Key functionality here is
1853 gets cleaned up, but for now it's ok. Key functionality here is
1849 the addition of the persistent storage mechanism, a dict for
1854 the addition of the persistent storage mechanism, a dict for
1850 keeping data across sessions (for now just bookmarks, but more can
1855 keeping data across sessions (for now just bookmarks, but more can
1851 be implemented later).
1856 be implemented later).
1852
1857
1853 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1858 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1854 persistent across sections. Patch by Ville, I modified it
1859 persistent across sections. Patch by Ville, I modified it
1855 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1860 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1856 added a '-l' option to list all bookmarks.
1861 added a '-l' option to list all bookmarks.
1857
1862
1858 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1863 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1859 center for cleanup. Registered with atexit.register(). I moved
1864 center for cleanup. Registered with atexit.register(). I moved
1860 here the old exit_cleanup(). After a patch by Ville.
1865 here the old exit_cleanup(). After a patch by Ville.
1861
1866
1862 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1867 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1863 characters in the hacked shlex_split for python 2.2.
1868 characters in the hacked shlex_split for python 2.2.
1864
1869
1865 * IPython/iplib.py (file_matches): more fixes to filenames with
1870 * IPython/iplib.py (file_matches): more fixes to filenames with
1866 whitespace in them. It's not perfect, but limitations in python's
1871 whitespace in them. It's not perfect, but limitations in python's
1867 readline make it impossible to go further.
1872 readline make it impossible to go further.
1868
1873
1869 2004-06-29 Fernando Perez <fperez@colorado.edu>
1874 2004-06-29 Fernando Perez <fperez@colorado.edu>
1870
1875
1871 * IPython/iplib.py (file_matches): escape whitespace correctly in
1876 * IPython/iplib.py (file_matches): escape whitespace correctly in
1872 filename completions. Bug reported by Ville.
1877 filename completions. Bug reported by Ville.
1873
1878
1874 2004-06-28 Fernando Perez <fperez@colorado.edu>
1879 2004-06-28 Fernando Perez <fperez@colorado.edu>
1875
1880
1876 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1881 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1877 the history file will be called 'history-PROFNAME' (or just
1882 the history file will be called 'history-PROFNAME' (or just
1878 'history' if no profile is loaded). I was getting annoyed at
1883 'history' if no profile is loaded). I was getting annoyed at
1879 getting my Numerical work history clobbered by pysh sessions.
1884 getting my Numerical work history clobbered by pysh sessions.
1880
1885
1881 * IPython/iplib.py (InteractiveShell.__init__): Internal
1886 * IPython/iplib.py (InteractiveShell.__init__): Internal
1882 getoutputerror() function so that we can honor the system_verbose
1887 getoutputerror() function so that we can honor the system_verbose
1883 flag for _all_ system calls. I also added escaping of #
1888 flag for _all_ system calls. I also added escaping of #
1884 characters here to avoid confusing Itpl.
1889 characters here to avoid confusing Itpl.
1885
1890
1886 * IPython/Magic.py (shlex_split): removed call to shell in
1891 * IPython/Magic.py (shlex_split): removed call to shell in
1887 parse_options and replaced it with shlex.split(). The annoying
1892 parse_options and replaced it with shlex.split(). The annoying
1888 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1893 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1889 to backport it from 2.3, with several frail hacks (the shlex
1894 to backport it from 2.3, with several frail hacks (the shlex
1890 module is rather limited in 2.2). Thanks to a suggestion by Ville
1895 module is rather limited in 2.2). Thanks to a suggestion by Ville
1891 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1896 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1892 problem.
1897 problem.
1893
1898
1894 (Magic.magic_system_verbose): new toggle to print the actual
1899 (Magic.magic_system_verbose): new toggle to print the actual
1895 system calls made by ipython. Mainly for debugging purposes.
1900 system calls made by ipython. Mainly for debugging purposes.
1896
1901
1897 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1902 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1898 doesn't support persistence. Reported (and fix suggested) by
1903 doesn't support persistence. Reported (and fix suggested) by
1899 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1904 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1900
1905
1901 2004-06-26 Fernando Perez <fperez@colorado.edu>
1906 2004-06-26 Fernando Perez <fperez@colorado.edu>
1902
1907
1903 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1908 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1904 continue prompts.
1909 continue prompts.
1905
1910
1906 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1911 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1907 function (basically a big docstring) and a few more things here to
1912 function (basically a big docstring) and a few more things here to
1908 speedup startup. pysh.py is now very lightweight. We want because
1913 speedup startup. pysh.py is now very lightweight. We want because
1909 it gets execfile'd, while InterpreterExec gets imported, so
1914 it gets execfile'd, while InterpreterExec gets imported, so
1910 byte-compilation saves time.
1915 byte-compilation saves time.
1911
1916
1912 2004-06-25 Fernando Perez <fperez@colorado.edu>
1917 2004-06-25 Fernando Perez <fperez@colorado.edu>
1913
1918
1914 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1919 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1915 -NUM', which was recently broken.
1920 -NUM', which was recently broken.
1916
1921
1917 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1922 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1918 in multi-line input (but not !!, which doesn't make sense there).
1923 in multi-line input (but not !!, which doesn't make sense there).
1919
1924
1920 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1925 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1921 It's just too useful, and people can turn it off in the less
1926 It's just too useful, and people can turn it off in the less
1922 common cases where it's a problem.
1927 common cases where it's a problem.
1923
1928
1924 2004-06-24 Fernando Perez <fperez@colorado.edu>
1929 2004-06-24 Fernando Perez <fperez@colorado.edu>
1925
1930
1926 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1931 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1927 special syntaxes (like alias calling) is now allied in multi-line
1932 special syntaxes (like alias calling) is now allied in multi-line
1928 input. This is still _very_ experimental, but it's necessary for
1933 input. This is still _very_ experimental, but it's necessary for
1929 efficient shell usage combining python looping syntax with system
1934 efficient shell usage combining python looping syntax with system
1930 calls. For now it's restricted to aliases, I don't think it
1935 calls. For now it's restricted to aliases, I don't think it
1931 really even makes sense to have this for magics.
1936 really even makes sense to have this for magics.
1932
1937
1933 2004-06-23 Fernando Perez <fperez@colorado.edu>
1938 2004-06-23 Fernando Perez <fperez@colorado.edu>
1934
1939
1935 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1940 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1936 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1941 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1937
1942
1938 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1943 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1939 extensions under Windows (after code sent by Gary Bishop). The
1944 extensions under Windows (after code sent by Gary Bishop). The
1940 extensions considered 'executable' are stored in IPython's rc
1945 extensions considered 'executable' are stored in IPython's rc
1941 structure as win_exec_ext.
1946 structure as win_exec_ext.
1942
1947
1943 * IPython/genutils.py (shell): new function, like system() but
1948 * IPython/genutils.py (shell): new function, like system() but
1944 without return value. Very useful for interactive shell work.
1949 without return value. Very useful for interactive shell work.
1945
1950
1946 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1951 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1947 delete aliases.
1952 delete aliases.
1948
1953
1949 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1954 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1950 sure that the alias table doesn't contain python keywords.
1955 sure that the alias table doesn't contain python keywords.
1951
1956
1952 2004-06-21 Fernando Perez <fperez@colorado.edu>
1957 2004-06-21 Fernando Perez <fperez@colorado.edu>
1953
1958
1954 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1959 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1955 non-existent items are found in $PATH. Reported by Thorsten.
1960 non-existent items are found in $PATH. Reported by Thorsten.
1956
1961
1957 2004-06-20 Fernando Perez <fperez@colorado.edu>
1962 2004-06-20 Fernando Perez <fperez@colorado.edu>
1958
1963
1959 * IPython/iplib.py (complete): modified the completer so that the
1964 * IPython/iplib.py (complete): modified the completer so that the
1960 order of priorities can be easily changed at runtime.
1965 order of priorities can be easily changed at runtime.
1961
1966
1962 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1967 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1963 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1968 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1964
1969
1965 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1970 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1966 expand Python variables prepended with $ in all system calls. The
1971 expand Python variables prepended with $ in all system calls. The
1967 same was done to InteractiveShell.handle_shell_escape. Now all
1972 same was done to InteractiveShell.handle_shell_escape. Now all
1968 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1973 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1969 expansion of python variables and expressions according to the
1974 expansion of python variables and expressions according to the
1970 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1975 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1971
1976
1972 Though PEP-215 has been rejected, a similar (but simpler) one
1977 Though PEP-215 has been rejected, a similar (but simpler) one
1973 seems like it will go into Python 2.4, PEP-292 -
1978 seems like it will go into Python 2.4, PEP-292 -
1974 http://www.python.org/peps/pep-0292.html.
1979 http://www.python.org/peps/pep-0292.html.
1975
1980
1976 I'll keep the full syntax of PEP-215, since IPython has since the
1981 I'll keep the full syntax of PEP-215, since IPython has since the
1977 start used Ka-Ping Yee's reference implementation discussed there
1982 start used Ka-Ping Yee's reference implementation discussed there
1978 (Itpl), and I actually like the powerful semantics it offers.
1983 (Itpl), and I actually like the powerful semantics it offers.
1979
1984
1980 In order to access normal shell variables, the $ has to be escaped
1985 In order to access normal shell variables, the $ has to be escaped
1981 via an extra $. For example:
1986 via an extra $. For example:
1982
1987
1983 In [7]: PATH='a python variable'
1988 In [7]: PATH='a python variable'
1984
1989
1985 In [8]: !echo $PATH
1990 In [8]: !echo $PATH
1986 a python variable
1991 a python variable
1987
1992
1988 In [9]: !echo $$PATH
1993 In [9]: !echo $$PATH
1989 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1994 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1990
1995
1991 (Magic.parse_options): escape $ so the shell doesn't evaluate
1996 (Magic.parse_options): escape $ so the shell doesn't evaluate
1992 things prematurely.
1997 things prematurely.
1993
1998
1994 * IPython/iplib.py (InteractiveShell.call_alias): added the
1999 * IPython/iplib.py (InteractiveShell.call_alias): added the
1995 ability for aliases to expand python variables via $.
2000 ability for aliases to expand python variables via $.
1996
2001
1997 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2002 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1998 system, now there's a @rehash/@rehashx pair of magics. These work
2003 system, now there's a @rehash/@rehashx pair of magics. These work
1999 like the csh rehash command, and can be invoked at any time. They
2004 like the csh rehash command, and can be invoked at any time. They
2000 build a table of aliases to everything in the user's $PATH
2005 build a table of aliases to everything in the user's $PATH
2001 (@rehash uses everything, @rehashx is slower but only adds
2006 (@rehash uses everything, @rehashx is slower but only adds
2002 executable files). With this, the pysh.py-based shell profile can
2007 executable files). With this, the pysh.py-based shell profile can
2003 now simply call rehash upon startup, and full access to all
2008 now simply call rehash upon startup, and full access to all
2004 programs in the user's path is obtained.
2009 programs in the user's path is obtained.
2005
2010
2006 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2011 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2007 functionality is now fully in place. I removed the old dynamic
2012 functionality is now fully in place. I removed the old dynamic
2008 code generation based approach, in favor of a much lighter one
2013 code generation based approach, in favor of a much lighter one
2009 based on a simple dict. The advantage is that this allows me to
2014 based on a simple dict. The advantage is that this allows me to
2010 now have thousands of aliases with negligible cost (unthinkable
2015 now have thousands of aliases with negligible cost (unthinkable
2011 with the old system).
2016 with the old system).
2012
2017
2013 2004-06-19 Fernando Perez <fperez@colorado.edu>
2018 2004-06-19 Fernando Perez <fperez@colorado.edu>
2014
2019
2015 * IPython/iplib.py (__init__): extended MagicCompleter class to
2020 * IPython/iplib.py (__init__): extended MagicCompleter class to
2016 also complete (last in priority) on user aliases.
2021 also complete (last in priority) on user aliases.
2017
2022
2018 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2023 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2019 call to eval.
2024 call to eval.
2020 (ItplNS.__init__): Added a new class which functions like Itpl,
2025 (ItplNS.__init__): Added a new class which functions like Itpl,
2021 but allows configuring the namespace for the evaluation to occur
2026 but allows configuring the namespace for the evaluation to occur
2022 in.
2027 in.
2023
2028
2024 2004-06-18 Fernando Perez <fperez@colorado.edu>
2029 2004-06-18 Fernando Perez <fperez@colorado.edu>
2025
2030
2026 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2031 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2027 better message when 'exit' or 'quit' are typed (a common newbie
2032 better message when 'exit' or 'quit' are typed (a common newbie
2028 confusion).
2033 confusion).
2029
2034
2030 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2035 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2031 check for Windows users.
2036 check for Windows users.
2032
2037
2033 * IPython/iplib.py (InteractiveShell.user_setup): removed
2038 * IPython/iplib.py (InteractiveShell.user_setup): removed
2034 disabling of colors for Windows. I'll test at runtime and issue a
2039 disabling of colors for Windows. I'll test at runtime and issue a
2035 warning if Gary's readline isn't found, as to nudge users to
2040 warning if Gary's readline isn't found, as to nudge users to
2036 download it.
2041 download it.
2037
2042
2038 2004-06-16 Fernando Perez <fperez@colorado.edu>
2043 2004-06-16 Fernando Perez <fperez@colorado.edu>
2039
2044
2040 * IPython/genutils.py (Stream.__init__): changed to print errors
2045 * IPython/genutils.py (Stream.__init__): changed to print errors
2041 to sys.stderr. I had a circular dependency here. Now it's
2046 to sys.stderr. I had a circular dependency here. Now it's
2042 possible to run ipython as IDLE's shell (consider this pre-alpha,
2047 possible to run ipython as IDLE's shell (consider this pre-alpha,
2043 since true stdout things end up in the starting terminal instead
2048 since true stdout things end up in the starting terminal instead
2044 of IDLE's out).
2049 of IDLE's out).
2045
2050
2046 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2051 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2047 users who haven't # updated their prompt_in2 definitions. Remove
2052 users who haven't # updated their prompt_in2 definitions. Remove
2048 eventually.
2053 eventually.
2049 (multiple_replace): added credit to original ASPN recipe.
2054 (multiple_replace): added credit to original ASPN recipe.
2050
2055
2051 2004-06-15 Fernando Perez <fperez@colorado.edu>
2056 2004-06-15 Fernando Perez <fperez@colorado.edu>
2052
2057
2053 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2058 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2054 list of auto-defined aliases.
2059 list of auto-defined aliases.
2055
2060
2056 2004-06-13 Fernando Perez <fperez@colorado.edu>
2061 2004-06-13 Fernando Perez <fperez@colorado.edu>
2057
2062
2058 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2063 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2059 install was really requested (so setup.py can be used for other
2064 install was really requested (so setup.py can be used for other
2060 things under Windows).
2065 things under Windows).
2061
2066
2062 2004-06-10 Fernando Perez <fperez@colorado.edu>
2067 2004-06-10 Fernando Perez <fperez@colorado.edu>
2063
2068
2064 * IPython/Logger.py (Logger.create_log): Manually remove any old
2069 * IPython/Logger.py (Logger.create_log): Manually remove any old
2065 backup, since os.remove may fail under Windows. Fixes bug
2070 backup, since os.remove may fail under Windows. Fixes bug
2066 reported by Thorsten.
2071 reported by Thorsten.
2067
2072
2068 2004-06-09 Fernando Perez <fperez@colorado.edu>
2073 2004-06-09 Fernando Perez <fperez@colorado.edu>
2069
2074
2070 * examples/example-embed.py: fixed all references to %n (replaced
2075 * examples/example-embed.py: fixed all references to %n (replaced
2071 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2076 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2072 for all examples and the manual as well.
2077 for all examples and the manual as well.
2073
2078
2074 2004-06-08 Fernando Perez <fperez@colorado.edu>
2079 2004-06-08 Fernando Perez <fperez@colorado.edu>
2075
2080
2076 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2081 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2077 alignment and color management. All 3 prompt subsystems now
2082 alignment and color management. All 3 prompt subsystems now
2078 inherit from BasePrompt.
2083 inherit from BasePrompt.
2079
2084
2080 * tools/release: updates for windows installer build and tag rpms
2085 * tools/release: updates for windows installer build and tag rpms
2081 with python version (since paths are fixed).
2086 with python version (since paths are fixed).
2082
2087
2083 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2088 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2084 which will become eventually obsolete. Also fixed the default
2089 which will become eventually obsolete. Also fixed the default
2085 prompt_in2 to use \D, so at least new users start with the correct
2090 prompt_in2 to use \D, so at least new users start with the correct
2086 defaults.
2091 defaults.
2087 WARNING: Users with existing ipythonrc files will need to apply
2092 WARNING: Users with existing ipythonrc files will need to apply
2088 this fix manually!
2093 this fix manually!
2089
2094
2090 * setup.py: make windows installer (.exe). This is finally the
2095 * setup.py: make windows installer (.exe). This is finally the
2091 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2096 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2092 which I hadn't included because it required Python 2.3 (or recent
2097 which I hadn't included because it required Python 2.3 (or recent
2093 distutils).
2098 distutils).
2094
2099
2095 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2100 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2096 usage of new '\D' escape.
2101 usage of new '\D' escape.
2097
2102
2098 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2103 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2099 lacks os.getuid())
2104 lacks os.getuid())
2100 (CachedOutput.set_colors): Added the ability to turn coloring
2105 (CachedOutput.set_colors): Added the ability to turn coloring
2101 on/off with @colors even for manually defined prompt colors. It
2106 on/off with @colors even for manually defined prompt colors. It
2102 uses a nasty global, but it works safely and via the generic color
2107 uses a nasty global, but it works safely and via the generic color
2103 handling mechanism.
2108 handling mechanism.
2104 (Prompt2.__init__): Introduced new escape '\D' for continuation
2109 (Prompt2.__init__): Introduced new escape '\D' for continuation
2105 prompts. It represents the counter ('\#') as dots.
2110 prompts. It represents the counter ('\#') as dots.
2106 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2111 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2107 need to update their ipythonrc files and replace '%n' with '\D' in
2112 need to update their ipythonrc files and replace '%n' with '\D' in
2108 their prompt_in2 settings everywhere. Sorry, but there's
2113 their prompt_in2 settings everywhere. Sorry, but there's
2109 otherwise no clean way to get all prompts to properly align. The
2114 otherwise no clean way to get all prompts to properly align. The
2110 ipythonrc shipped with IPython has been updated.
2115 ipythonrc shipped with IPython has been updated.
2111
2116
2112 2004-06-07 Fernando Perez <fperez@colorado.edu>
2117 2004-06-07 Fernando Perez <fperez@colorado.edu>
2113
2118
2114 * setup.py (isfile): Pass local_icons option to latex2html, so the
2119 * setup.py (isfile): Pass local_icons option to latex2html, so the
2115 resulting HTML file is self-contained. Thanks to
2120 resulting HTML file is self-contained. Thanks to
2116 dryice-AT-liu.com.cn for the tip.
2121 dryice-AT-liu.com.cn for the tip.
2117
2122
2118 * pysh.py: I created a new profile 'shell', which implements a
2123 * pysh.py: I created a new profile 'shell', which implements a
2119 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2124 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2120 system shell, nor will it become one anytime soon. It's mainly
2125 system shell, nor will it become one anytime soon. It's mainly
2121 meant to illustrate the use of the new flexible bash-like prompts.
2126 meant to illustrate the use of the new flexible bash-like prompts.
2122 I guess it could be used by hardy souls for true shell management,
2127 I guess it could be used by hardy souls for true shell management,
2123 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2128 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2124 profile. This uses the InterpreterExec extension provided by
2129 profile. This uses the InterpreterExec extension provided by
2125 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2130 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2126
2131
2127 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2132 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2128 auto-align itself with the length of the previous input prompt
2133 auto-align itself with the length of the previous input prompt
2129 (taking into account the invisible color escapes).
2134 (taking into account the invisible color escapes).
2130 (CachedOutput.__init__): Large restructuring of this class. Now
2135 (CachedOutput.__init__): Large restructuring of this class. Now
2131 all three prompts (primary1, primary2, output) are proper objects,
2136 all three prompts (primary1, primary2, output) are proper objects,
2132 managed by the 'parent' CachedOutput class. The code is still a
2137 managed by the 'parent' CachedOutput class. The code is still a
2133 bit hackish (all prompts share state via a pointer to the cache),
2138 bit hackish (all prompts share state via a pointer to the cache),
2134 but it's overall far cleaner than before.
2139 but it's overall far cleaner than before.
2135
2140
2136 * IPython/genutils.py (getoutputerror): modified to add verbose,
2141 * IPython/genutils.py (getoutputerror): modified to add verbose,
2137 debug and header options. This makes the interface of all getout*
2142 debug and header options. This makes the interface of all getout*
2138 functions uniform.
2143 functions uniform.
2139 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2144 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2140
2145
2141 * IPython/Magic.py (Magic.default_option): added a function to
2146 * IPython/Magic.py (Magic.default_option): added a function to
2142 allow registering default options for any magic command. This
2147 allow registering default options for any magic command. This
2143 makes it easy to have profiles which customize the magics globally
2148 makes it easy to have profiles which customize the magics globally
2144 for a certain use. The values set through this function are
2149 for a certain use. The values set through this function are
2145 picked up by the parse_options() method, which all magics should
2150 picked up by the parse_options() method, which all magics should
2146 use to parse their options.
2151 use to parse their options.
2147
2152
2148 * IPython/genutils.py (warn): modified the warnings framework to
2153 * IPython/genutils.py (warn): modified the warnings framework to
2149 use the Term I/O class. I'm trying to slowly unify all of
2154 use the Term I/O class. I'm trying to slowly unify all of
2150 IPython's I/O operations to pass through Term.
2155 IPython's I/O operations to pass through Term.
2151
2156
2152 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2157 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2153 the secondary prompt to correctly match the length of the primary
2158 the secondary prompt to correctly match the length of the primary
2154 one for any prompt. Now multi-line code will properly line up
2159 one for any prompt. Now multi-line code will properly line up
2155 even for path dependent prompts, such as the new ones available
2160 even for path dependent prompts, such as the new ones available
2156 via the prompt_specials.
2161 via the prompt_specials.
2157
2162
2158 2004-06-06 Fernando Perez <fperez@colorado.edu>
2163 2004-06-06 Fernando Perez <fperez@colorado.edu>
2159
2164
2160 * IPython/Prompts.py (prompt_specials): Added the ability to have
2165 * IPython/Prompts.py (prompt_specials): Added the ability to have
2161 bash-like special sequences in the prompts, which get
2166 bash-like special sequences in the prompts, which get
2162 automatically expanded. Things like hostname, current working
2167 automatically expanded. Things like hostname, current working
2163 directory and username are implemented already, but it's easy to
2168 directory and username are implemented already, but it's easy to
2164 add more in the future. Thanks to a patch by W.J. van der Laan
2169 add more in the future. Thanks to a patch by W.J. van der Laan
2165 <gnufnork-AT-hetdigitalegat.nl>
2170 <gnufnork-AT-hetdigitalegat.nl>
2166 (prompt_specials): Added color support for prompt strings, so
2171 (prompt_specials): Added color support for prompt strings, so
2167 users can define arbitrary color setups for their prompts.
2172 users can define arbitrary color setups for their prompts.
2168
2173
2169 2004-06-05 Fernando Perez <fperez@colorado.edu>
2174 2004-06-05 Fernando Perez <fperez@colorado.edu>
2170
2175
2171 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2176 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2172 code to load Gary Bishop's readline and configure it
2177 code to load Gary Bishop's readline and configure it
2173 automatically. Thanks to Gary for help on this.
2178 automatically. Thanks to Gary for help on this.
2174
2179
2175 2004-06-01 Fernando Perez <fperez@colorado.edu>
2180 2004-06-01 Fernando Perez <fperez@colorado.edu>
2176
2181
2177 * IPython/Logger.py (Logger.create_log): fix bug for logging
2182 * IPython/Logger.py (Logger.create_log): fix bug for logging
2178 with no filename (previous fix was incomplete).
2183 with no filename (previous fix was incomplete).
2179
2184
2180 2004-05-25 Fernando Perez <fperez@colorado.edu>
2185 2004-05-25 Fernando Perez <fperez@colorado.edu>
2181
2186
2182 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2187 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2183 parens would get passed to the shell.
2188 parens would get passed to the shell.
2184
2189
2185 2004-05-20 Fernando Perez <fperez@colorado.edu>
2190 2004-05-20 Fernando Perez <fperez@colorado.edu>
2186
2191
2187 * IPython/Magic.py (Magic.magic_prun): changed default profile
2192 * IPython/Magic.py (Magic.magic_prun): changed default profile
2188 sort order to 'time' (the more common profiling need).
2193 sort order to 'time' (the more common profiling need).
2189
2194
2190 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2195 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2191 so that source code shown is guaranteed in sync with the file on
2196 so that source code shown is guaranteed in sync with the file on
2192 disk (also changed in psource). Similar fix to the one for
2197 disk (also changed in psource). Similar fix to the one for
2193 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2198 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2194 <yann.ledu-AT-noos.fr>.
2199 <yann.ledu-AT-noos.fr>.
2195
2200
2196 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2201 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2197 with a single option would not be correctly parsed. Closes
2202 with a single option would not be correctly parsed. Closes
2198 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2203 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2199 introduced in 0.6.0 (on 2004-05-06).
2204 introduced in 0.6.0 (on 2004-05-06).
2200
2205
2201 2004-05-13 *** Released version 0.6.0
2206 2004-05-13 *** Released version 0.6.0
2202
2207
2203 2004-05-13 Fernando Perez <fperez@colorado.edu>
2208 2004-05-13 Fernando Perez <fperez@colorado.edu>
2204
2209
2205 * debian/: Added debian/ directory to CVS, so that debian support
2210 * debian/: Added debian/ directory to CVS, so that debian support
2206 is publicly accessible. The debian package is maintained by Jack
2211 is publicly accessible. The debian package is maintained by Jack
2207 Moffit <jack-AT-xiph.org>.
2212 Moffit <jack-AT-xiph.org>.
2208
2213
2209 * Documentation: included the notes about an ipython-based system
2214 * Documentation: included the notes about an ipython-based system
2210 shell (the hypothetical 'pysh') into the new_design.pdf document,
2215 shell (the hypothetical 'pysh') into the new_design.pdf document,
2211 so that these ideas get distributed to users along with the
2216 so that these ideas get distributed to users along with the
2212 official documentation.
2217 official documentation.
2213
2218
2214 2004-05-10 Fernando Perez <fperez@colorado.edu>
2219 2004-05-10 Fernando Perez <fperez@colorado.edu>
2215
2220
2216 * IPython/Logger.py (Logger.create_log): fix recently introduced
2221 * IPython/Logger.py (Logger.create_log): fix recently introduced
2217 bug (misindented line) where logstart would fail when not given an
2222 bug (misindented line) where logstart would fail when not given an
2218 explicit filename.
2223 explicit filename.
2219
2224
2220 2004-05-09 Fernando Perez <fperez@colorado.edu>
2225 2004-05-09 Fernando Perez <fperez@colorado.edu>
2221
2226
2222 * IPython/Magic.py (Magic.parse_options): skip system call when
2227 * IPython/Magic.py (Magic.parse_options): skip system call when
2223 there are no options to look for. Faster, cleaner for the common
2228 there are no options to look for. Faster, cleaner for the common
2224 case.
2229 case.
2225
2230
2226 * Documentation: many updates to the manual: describing Windows
2231 * Documentation: many updates to the manual: describing Windows
2227 support better, Gnuplot updates, credits, misc small stuff. Also
2232 support better, Gnuplot updates, credits, misc small stuff. Also
2228 updated the new_design doc a bit.
2233 updated the new_design doc a bit.
2229
2234
2230 2004-05-06 *** Released version 0.6.0.rc1
2235 2004-05-06 *** Released version 0.6.0.rc1
2231
2236
2232 2004-05-06 Fernando Perez <fperez@colorado.edu>
2237 2004-05-06 Fernando Perez <fperez@colorado.edu>
2233
2238
2234 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2239 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2235 operations to use the vastly more efficient list/''.join() method.
2240 operations to use the vastly more efficient list/''.join() method.
2236 (FormattedTB.text): Fix
2241 (FormattedTB.text): Fix
2237 http://www.scipy.net/roundup/ipython/issue12 - exception source
2242 http://www.scipy.net/roundup/ipython/issue12 - exception source
2238 extract not updated after reload. Thanks to Mike Salib
2243 extract not updated after reload. Thanks to Mike Salib
2239 <msalib-AT-mit.edu> for pinning the source of the problem.
2244 <msalib-AT-mit.edu> for pinning the source of the problem.
2240 Fortunately, the solution works inside ipython and doesn't require
2245 Fortunately, the solution works inside ipython and doesn't require
2241 any changes to python proper.
2246 any changes to python proper.
2242
2247
2243 * IPython/Magic.py (Magic.parse_options): Improved to process the
2248 * IPython/Magic.py (Magic.parse_options): Improved to process the
2244 argument list as a true shell would (by actually using the
2249 argument list as a true shell would (by actually using the
2245 underlying system shell). This way, all @magics automatically get
2250 underlying system shell). This way, all @magics automatically get
2246 shell expansion for variables. Thanks to a comment by Alex
2251 shell expansion for variables. Thanks to a comment by Alex
2247 Schmolck.
2252 Schmolck.
2248
2253
2249 2004-04-04 Fernando Perez <fperez@colorado.edu>
2254 2004-04-04 Fernando Perez <fperez@colorado.edu>
2250
2255
2251 * IPython/iplib.py (InteractiveShell.interact): Added a special
2256 * IPython/iplib.py (InteractiveShell.interact): Added a special
2252 trap for a debugger quit exception, which is basically impossible
2257 trap for a debugger quit exception, which is basically impossible
2253 to handle by normal mechanisms, given what pdb does to the stack.
2258 to handle by normal mechanisms, given what pdb does to the stack.
2254 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2259 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2255
2260
2256 2004-04-03 Fernando Perez <fperez@colorado.edu>
2261 2004-04-03 Fernando Perez <fperez@colorado.edu>
2257
2262
2258 * IPython/genutils.py (Term): Standardized the names of the Term
2263 * IPython/genutils.py (Term): Standardized the names of the Term
2259 class streams to cin/cout/cerr, following C++ naming conventions
2264 class streams to cin/cout/cerr, following C++ naming conventions
2260 (I can't use in/out/err because 'in' is not a valid attribute
2265 (I can't use in/out/err because 'in' is not a valid attribute
2261 name).
2266 name).
2262
2267
2263 * IPython/iplib.py (InteractiveShell.interact): don't increment
2268 * IPython/iplib.py (InteractiveShell.interact): don't increment
2264 the prompt if there's no user input. By Daniel 'Dang' Griffith
2269 the prompt if there's no user input. By Daniel 'Dang' Griffith
2265 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2270 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2266 Francois Pinard.
2271 Francois Pinard.
2267
2272
2268 2004-04-02 Fernando Perez <fperez@colorado.edu>
2273 2004-04-02 Fernando Perez <fperez@colorado.edu>
2269
2274
2270 * IPython/genutils.py (Stream.__init__): Modified to survive at
2275 * IPython/genutils.py (Stream.__init__): Modified to survive at
2271 least importing in contexts where stdin/out/err aren't true file
2276 least importing in contexts where stdin/out/err aren't true file
2272 objects, such as PyCrust (they lack fileno() and mode). However,
2277 objects, such as PyCrust (they lack fileno() and mode). However,
2273 the recovery facilities which rely on these things existing will
2278 the recovery facilities which rely on these things existing will
2274 not work.
2279 not work.
2275
2280
2276 2004-04-01 Fernando Perez <fperez@colorado.edu>
2281 2004-04-01 Fernando Perez <fperez@colorado.edu>
2277
2282
2278 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2283 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2279 use the new getoutputerror() function, so it properly
2284 use the new getoutputerror() function, so it properly
2280 distinguishes stdout/err.
2285 distinguishes stdout/err.
2281
2286
2282 * IPython/genutils.py (getoutputerror): added a function to
2287 * IPython/genutils.py (getoutputerror): added a function to
2283 capture separately the standard output and error of a command.
2288 capture separately the standard output and error of a command.
2284 After a comment from dang on the mailing lists. This code is
2289 After a comment from dang on the mailing lists. This code is
2285 basically a modified version of commands.getstatusoutput(), from
2290 basically a modified version of commands.getstatusoutput(), from
2286 the standard library.
2291 the standard library.
2287
2292
2288 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2293 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2289 '!!' as a special syntax (shorthand) to access @sx.
2294 '!!' as a special syntax (shorthand) to access @sx.
2290
2295
2291 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2296 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2292 command and return its output as a list split on '\n'.
2297 command and return its output as a list split on '\n'.
2293
2298
2294 2004-03-31 Fernando Perez <fperez@colorado.edu>
2299 2004-03-31 Fernando Perez <fperez@colorado.edu>
2295
2300
2296 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2301 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2297 method to dictionaries used as FakeModule instances if they lack
2302 method to dictionaries used as FakeModule instances if they lack
2298 it. At least pydoc in python2.3 breaks for runtime-defined
2303 it. At least pydoc in python2.3 breaks for runtime-defined
2299 functions without this hack. At some point I need to _really_
2304 functions without this hack. At some point I need to _really_
2300 understand what FakeModule is doing, because it's a gross hack.
2305 understand what FakeModule is doing, because it's a gross hack.
2301 But it solves Arnd's problem for now...
2306 But it solves Arnd's problem for now...
2302
2307
2303 2004-02-27 Fernando Perez <fperez@colorado.edu>
2308 2004-02-27 Fernando Perez <fperez@colorado.edu>
2304
2309
2305 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2310 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2306 mode would behave erratically. Also increased the number of
2311 mode would behave erratically. Also increased the number of
2307 possible logs in rotate mod to 999. Thanks to Rod Holland
2312 possible logs in rotate mod to 999. Thanks to Rod Holland
2308 <rhh@StructureLABS.com> for the report and fixes.
2313 <rhh@StructureLABS.com> for the report and fixes.
2309
2314
2310 2004-02-26 Fernando Perez <fperez@colorado.edu>
2315 2004-02-26 Fernando Perez <fperez@colorado.edu>
2311
2316
2312 * IPython/genutils.py (page): Check that the curses module really
2317 * IPython/genutils.py (page): Check that the curses module really
2313 has the initscr attribute before trying to use it. For some
2318 has the initscr attribute before trying to use it. For some
2314 reason, the Solaris curses module is missing this. I think this
2319 reason, the Solaris curses module is missing this. I think this
2315 should be considered a Solaris python bug, but I'm not sure.
2320 should be considered a Solaris python bug, but I'm not sure.
2316
2321
2317 2004-01-17 Fernando Perez <fperez@colorado.edu>
2322 2004-01-17 Fernando Perez <fperez@colorado.edu>
2318
2323
2319 * IPython/genutils.py (Stream.__init__): Changes to try to make
2324 * IPython/genutils.py (Stream.__init__): Changes to try to make
2320 ipython robust against stdin/out/err being closed by the user.
2325 ipython robust against stdin/out/err being closed by the user.
2321 This is 'user error' (and blocks a normal python session, at least
2326 This is 'user error' (and blocks a normal python session, at least
2322 the stdout case). However, Ipython should be able to survive such
2327 the stdout case). However, Ipython should be able to survive such
2323 instances of abuse as gracefully as possible. To simplify the
2328 instances of abuse as gracefully as possible. To simplify the
2324 coding and maintain compatibility with Gary Bishop's Term
2329 coding and maintain compatibility with Gary Bishop's Term
2325 contributions, I've made use of classmethods for this. I think
2330 contributions, I've made use of classmethods for this. I think
2326 this introduces a dependency on python 2.2.
2331 this introduces a dependency on python 2.2.
2327
2332
2328 2004-01-13 Fernando Perez <fperez@colorado.edu>
2333 2004-01-13 Fernando Perez <fperez@colorado.edu>
2329
2334
2330 * IPython/numutils.py (exp_safe): simplified the code a bit and
2335 * IPython/numutils.py (exp_safe): simplified the code a bit and
2331 removed the need for importing the kinds module altogether.
2336 removed the need for importing the kinds module altogether.
2332
2337
2333 2004-01-06 Fernando Perez <fperez@colorado.edu>
2338 2004-01-06 Fernando Perez <fperez@colorado.edu>
2334
2339
2335 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2340 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2336 a magic function instead, after some community feedback. No
2341 a magic function instead, after some community feedback. No
2337 special syntax will exist for it, but its name is deliberately
2342 special syntax will exist for it, but its name is deliberately
2338 very short.
2343 very short.
2339
2344
2340 2003-12-20 Fernando Perez <fperez@colorado.edu>
2345 2003-12-20 Fernando Perez <fperez@colorado.edu>
2341
2346
2342 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2347 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2343 new functionality, to automagically assign the result of a shell
2348 new functionality, to automagically assign the result of a shell
2344 command to a variable. I'll solicit some community feedback on
2349 command to a variable. I'll solicit some community feedback on
2345 this before making it permanent.
2350 this before making it permanent.
2346
2351
2347 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2352 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2348 requested about callables for which inspect couldn't obtain a
2353 requested about callables for which inspect couldn't obtain a
2349 proper argspec. Thanks to a crash report sent by Etienne
2354 proper argspec. Thanks to a crash report sent by Etienne
2350 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2355 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2351
2356
2352 2003-12-09 Fernando Perez <fperez@colorado.edu>
2357 2003-12-09 Fernando Perez <fperez@colorado.edu>
2353
2358
2354 * IPython/genutils.py (page): patch for the pager to work across
2359 * IPython/genutils.py (page): patch for the pager to work across
2355 various versions of Windows. By Gary Bishop.
2360 various versions of Windows. By Gary Bishop.
2356
2361
2357 2003-12-04 Fernando Perez <fperez@colorado.edu>
2362 2003-12-04 Fernando Perez <fperez@colorado.edu>
2358
2363
2359 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2364 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2360 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2365 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2361 While I tested this and it looks ok, there may still be corner
2366 While I tested this and it looks ok, there may still be corner
2362 cases I've missed.
2367 cases I've missed.
2363
2368
2364 2003-12-01 Fernando Perez <fperez@colorado.edu>
2369 2003-12-01 Fernando Perez <fperez@colorado.edu>
2365
2370
2366 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2371 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2367 where a line like 'p,q=1,2' would fail because the automagic
2372 where a line like 'p,q=1,2' would fail because the automagic
2368 system would be triggered for @p.
2373 system would be triggered for @p.
2369
2374
2370 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2375 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2371 cleanups, code unmodified.
2376 cleanups, code unmodified.
2372
2377
2373 * IPython/genutils.py (Term): added a class for IPython to handle
2378 * IPython/genutils.py (Term): added a class for IPython to handle
2374 output. In most cases it will just be a proxy for stdout/err, but
2379 output. In most cases it will just be a proxy for stdout/err, but
2375 having this allows modifications to be made for some platforms,
2380 having this allows modifications to be made for some platforms,
2376 such as handling color escapes under Windows. All of this code
2381 such as handling color escapes under Windows. All of this code
2377 was contributed by Gary Bishop, with minor modifications by me.
2382 was contributed by Gary Bishop, with minor modifications by me.
2378 The actual changes affect many files.
2383 The actual changes affect many files.
2379
2384
2380 2003-11-30 Fernando Perez <fperez@colorado.edu>
2385 2003-11-30 Fernando Perez <fperez@colorado.edu>
2381
2386
2382 * IPython/iplib.py (file_matches): new completion code, courtesy
2387 * IPython/iplib.py (file_matches): new completion code, courtesy
2383 of Jeff Collins. This enables filename completion again under
2388 of Jeff Collins. This enables filename completion again under
2384 python 2.3, which disabled it at the C level.
2389 python 2.3, which disabled it at the C level.
2385
2390
2386 2003-11-11 Fernando Perez <fperez@colorado.edu>
2391 2003-11-11 Fernando Perez <fperez@colorado.edu>
2387
2392
2388 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2393 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2389 for Numeric.array(map(...)), but often convenient.
2394 for Numeric.array(map(...)), but often convenient.
2390
2395
2391 2003-11-05 Fernando Perez <fperez@colorado.edu>
2396 2003-11-05 Fernando Perez <fperez@colorado.edu>
2392
2397
2393 * IPython/numutils.py (frange): Changed a call from int() to
2398 * IPython/numutils.py (frange): Changed a call from int() to
2394 int(round()) to prevent a problem reported with arange() in the
2399 int(round()) to prevent a problem reported with arange() in the
2395 numpy list.
2400 numpy list.
2396
2401
2397 2003-10-06 Fernando Perez <fperez@colorado.edu>
2402 2003-10-06 Fernando Perez <fperez@colorado.edu>
2398
2403
2399 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2404 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2400 prevent crashes if sys lacks an argv attribute (it happens with
2405 prevent crashes if sys lacks an argv attribute (it happens with
2401 embedded interpreters which build a bare-bones sys module).
2406 embedded interpreters which build a bare-bones sys module).
2402 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2407 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2403
2408
2404 2003-09-24 Fernando Perez <fperez@colorado.edu>
2409 2003-09-24 Fernando Perez <fperez@colorado.edu>
2405
2410
2406 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2411 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2407 to protect against poorly written user objects where __getattr__
2412 to protect against poorly written user objects where __getattr__
2408 raises exceptions other than AttributeError. Thanks to a bug
2413 raises exceptions other than AttributeError. Thanks to a bug
2409 report by Oliver Sander <osander-AT-gmx.de>.
2414 report by Oliver Sander <osander-AT-gmx.de>.
2410
2415
2411 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2416 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2412 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2417 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2413
2418
2414 2003-09-09 Fernando Perez <fperez@colorado.edu>
2419 2003-09-09 Fernando Perez <fperez@colorado.edu>
2415
2420
2416 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2421 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2417 unpacking a list whith a callable as first element would
2422 unpacking a list whith a callable as first element would
2418 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2423 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2419 Collins.
2424 Collins.
2420
2425
2421 2003-08-25 *** Released version 0.5.0
2426 2003-08-25 *** Released version 0.5.0
2422
2427
2423 2003-08-22 Fernando Perez <fperez@colorado.edu>
2428 2003-08-22 Fernando Perez <fperez@colorado.edu>
2424
2429
2425 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2430 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2426 improperly defined user exceptions. Thanks to feedback from Mark
2431 improperly defined user exceptions. Thanks to feedback from Mark
2427 Russell <mrussell-AT-verio.net>.
2432 Russell <mrussell-AT-verio.net>.
2428
2433
2429 2003-08-20 Fernando Perez <fperez@colorado.edu>
2434 2003-08-20 Fernando Perez <fperez@colorado.edu>
2430
2435
2431 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2436 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2432 printing so that it would print multi-line string forms starting
2437 printing so that it would print multi-line string forms starting
2433 with a new line. This way the formatting is better respected for
2438 with a new line. This way the formatting is better respected for
2434 objects which work hard to make nice string forms.
2439 objects which work hard to make nice string forms.
2435
2440
2436 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2441 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2437 autocall would overtake data access for objects with both
2442 autocall would overtake data access for objects with both
2438 __getitem__ and __call__.
2443 __getitem__ and __call__.
2439
2444
2440 2003-08-19 *** Released version 0.5.0-rc1
2445 2003-08-19 *** Released version 0.5.0-rc1
2441
2446
2442 2003-08-19 Fernando Perez <fperez@colorado.edu>
2447 2003-08-19 Fernando Perez <fperez@colorado.edu>
2443
2448
2444 * IPython/deep_reload.py (load_tail): single tiny change here
2449 * IPython/deep_reload.py (load_tail): single tiny change here
2445 seems to fix the long-standing bug of dreload() failing to work
2450 seems to fix the long-standing bug of dreload() failing to work
2446 for dotted names. But this module is pretty tricky, so I may have
2451 for dotted names. But this module is pretty tricky, so I may have
2447 missed some subtlety. Needs more testing!.
2452 missed some subtlety. Needs more testing!.
2448
2453
2449 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2454 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2450 exceptions which have badly implemented __str__ methods.
2455 exceptions which have badly implemented __str__ methods.
2451 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2456 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2452 which I've been getting reports about from Python 2.3 users. I
2457 which I've been getting reports about from Python 2.3 users. I
2453 wish I had a simple test case to reproduce the problem, so I could
2458 wish I had a simple test case to reproduce the problem, so I could
2454 either write a cleaner workaround or file a bug report if
2459 either write a cleaner workaround or file a bug report if
2455 necessary.
2460 necessary.
2456
2461
2457 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2462 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2458 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2463 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2459 a bug report by Tjabo Kloppenburg.
2464 a bug report by Tjabo Kloppenburg.
2460
2465
2461 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2466 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2462 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2467 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2463 seems rather unstable. Thanks to a bug report by Tjabo
2468 seems rather unstable. Thanks to a bug report by Tjabo
2464 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2469 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2465
2470
2466 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2471 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2467 this out soon because of the critical fixes in the inner loop for
2472 this out soon because of the critical fixes in the inner loop for
2468 generators.
2473 generators.
2469
2474
2470 * IPython/Magic.py (Magic.getargspec): removed. This (and
2475 * IPython/Magic.py (Magic.getargspec): removed. This (and
2471 _get_def) have been obsoleted by OInspect for a long time, I
2476 _get_def) have been obsoleted by OInspect for a long time, I
2472 hadn't noticed that they were dead code.
2477 hadn't noticed that they were dead code.
2473 (Magic._ofind): restored _ofind functionality for a few literals
2478 (Magic._ofind): restored _ofind functionality for a few literals
2474 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2479 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2475 for things like "hello".capitalize?, since that would require a
2480 for things like "hello".capitalize?, since that would require a
2476 potentially dangerous eval() again.
2481 potentially dangerous eval() again.
2477
2482
2478 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2483 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2479 logic a bit more to clean up the escapes handling and minimize the
2484 logic a bit more to clean up the escapes handling and minimize the
2480 use of _ofind to only necessary cases. The interactive 'feel' of
2485 use of _ofind to only necessary cases. The interactive 'feel' of
2481 IPython should have improved quite a bit with the changes in
2486 IPython should have improved quite a bit with the changes in
2482 _prefilter and _ofind (besides being far safer than before).
2487 _prefilter and _ofind (besides being far safer than before).
2483
2488
2484 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2489 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2485 obscure, never reported). Edit would fail to find the object to
2490 obscure, never reported). Edit would fail to find the object to
2486 edit under some circumstances.
2491 edit under some circumstances.
2487 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2492 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2488 which were causing double-calling of generators. Those eval calls
2493 which were causing double-calling of generators. Those eval calls
2489 were _very_ dangerous, since code with side effects could be
2494 were _very_ dangerous, since code with side effects could be
2490 triggered. As they say, 'eval is evil'... These were the
2495 triggered. As they say, 'eval is evil'... These were the
2491 nastiest evals in IPython. Besides, _ofind is now far simpler,
2496 nastiest evals in IPython. Besides, _ofind is now far simpler,
2492 and it should also be quite a bit faster. Its use of inspect is
2497 and it should also be quite a bit faster. Its use of inspect is
2493 also safer, so perhaps some of the inspect-related crashes I've
2498 also safer, so perhaps some of the inspect-related crashes I've
2494 seen lately with Python 2.3 might be taken care of. That will
2499 seen lately with Python 2.3 might be taken care of. That will
2495 need more testing.
2500 need more testing.
2496
2501
2497 2003-08-17 Fernando Perez <fperez@colorado.edu>
2502 2003-08-17 Fernando Perez <fperez@colorado.edu>
2498
2503
2499 * IPython/iplib.py (InteractiveShell._prefilter): significant
2504 * IPython/iplib.py (InteractiveShell._prefilter): significant
2500 simplifications to the logic for handling user escapes. Faster
2505 simplifications to the logic for handling user escapes. Faster
2501 and simpler code.
2506 and simpler code.
2502
2507
2503 2003-08-14 Fernando Perez <fperez@colorado.edu>
2508 2003-08-14 Fernando Perez <fperez@colorado.edu>
2504
2509
2505 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2510 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2506 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2511 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2507 but it should be quite a bit faster. And the recursive version
2512 but it should be quite a bit faster. And the recursive version
2508 generated O(log N) intermediate storage for all rank>1 arrays,
2513 generated O(log N) intermediate storage for all rank>1 arrays,
2509 even if they were contiguous.
2514 even if they were contiguous.
2510 (l1norm): Added this function.
2515 (l1norm): Added this function.
2511 (norm): Added this function for arbitrary norms (including
2516 (norm): Added this function for arbitrary norms (including
2512 l-infinity). l1 and l2 are still special cases for convenience
2517 l-infinity). l1 and l2 are still special cases for convenience
2513 and speed.
2518 and speed.
2514
2519
2515 2003-08-03 Fernando Perez <fperez@colorado.edu>
2520 2003-08-03 Fernando Perez <fperez@colorado.edu>
2516
2521
2517 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2522 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2518 exceptions, which now raise PendingDeprecationWarnings in Python
2523 exceptions, which now raise PendingDeprecationWarnings in Python
2519 2.3. There were some in Magic and some in Gnuplot2.
2524 2.3. There were some in Magic and some in Gnuplot2.
2520
2525
2521 2003-06-30 Fernando Perez <fperez@colorado.edu>
2526 2003-06-30 Fernando Perez <fperez@colorado.edu>
2522
2527
2523 * IPython/genutils.py (page): modified to call curses only for
2528 * IPython/genutils.py (page): modified to call curses only for
2524 terminals where TERM=='xterm'. After problems under many other
2529 terminals where TERM=='xterm'. After problems under many other
2525 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2530 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2526
2531
2527 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2532 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2528 would be triggered when readline was absent. This was just an old
2533 would be triggered when readline was absent. This was just an old
2529 debugging statement I'd forgotten to take out.
2534 debugging statement I'd forgotten to take out.
2530
2535
2531 2003-06-20 Fernando Perez <fperez@colorado.edu>
2536 2003-06-20 Fernando Perez <fperez@colorado.edu>
2532
2537
2533 * IPython/genutils.py (clock): modified to return only user time
2538 * IPython/genutils.py (clock): modified to return only user time
2534 (not counting system time), after a discussion on scipy. While
2539 (not counting system time), after a discussion on scipy. While
2535 system time may be a useful quantity occasionally, it may much
2540 system time may be a useful quantity occasionally, it may much
2536 more easily be skewed by occasional swapping or other similar
2541 more easily be skewed by occasional swapping or other similar
2537 activity.
2542 activity.
2538
2543
2539 2003-06-05 Fernando Perez <fperez@colorado.edu>
2544 2003-06-05 Fernando Perez <fperez@colorado.edu>
2540
2545
2541 * IPython/numutils.py (identity): new function, for building
2546 * IPython/numutils.py (identity): new function, for building
2542 arbitrary rank Kronecker deltas (mostly backwards compatible with
2547 arbitrary rank Kronecker deltas (mostly backwards compatible with
2543 Numeric.identity)
2548 Numeric.identity)
2544
2549
2545 2003-06-03 Fernando Perez <fperez@colorado.edu>
2550 2003-06-03 Fernando Perez <fperez@colorado.edu>
2546
2551
2547 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2552 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2548 arguments passed to magics with spaces, to allow trailing '\' to
2553 arguments passed to magics with spaces, to allow trailing '\' to
2549 work normally (mainly for Windows users).
2554 work normally (mainly for Windows users).
2550
2555
2551 2003-05-29 Fernando Perez <fperez@colorado.edu>
2556 2003-05-29 Fernando Perez <fperez@colorado.edu>
2552
2557
2553 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2558 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2554 instead of pydoc.help. This fixes a bizarre behavior where
2559 instead of pydoc.help. This fixes a bizarre behavior where
2555 printing '%s' % locals() would trigger the help system. Now
2560 printing '%s' % locals() would trigger the help system. Now
2556 ipython behaves like normal python does.
2561 ipython behaves like normal python does.
2557
2562
2558 Note that if one does 'from pydoc import help', the bizarre
2563 Note that if one does 'from pydoc import help', the bizarre
2559 behavior returns, but this will also happen in normal python, so
2564 behavior returns, but this will also happen in normal python, so
2560 it's not an ipython bug anymore (it has to do with how pydoc.help
2565 it's not an ipython bug anymore (it has to do with how pydoc.help
2561 is implemented).
2566 is implemented).
2562
2567
2563 2003-05-22 Fernando Perez <fperez@colorado.edu>
2568 2003-05-22 Fernando Perez <fperez@colorado.edu>
2564
2569
2565 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2570 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2566 return [] instead of None when nothing matches, also match to end
2571 return [] instead of None when nothing matches, also match to end
2567 of line. Patch by Gary Bishop.
2572 of line. Patch by Gary Bishop.
2568
2573
2569 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2574 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2570 protection as before, for files passed on the command line. This
2575 protection as before, for files passed on the command line. This
2571 prevents the CrashHandler from kicking in if user files call into
2576 prevents the CrashHandler from kicking in if user files call into
2572 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2577 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2573 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2578 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2574
2579
2575 2003-05-20 *** Released version 0.4.0
2580 2003-05-20 *** Released version 0.4.0
2576
2581
2577 2003-05-20 Fernando Perez <fperez@colorado.edu>
2582 2003-05-20 Fernando Perez <fperez@colorado.edu>
2578
2583
2579 * setup.py: added support for manpages. It's a bit hackish b/c of
2584 * setup.py: added support for manpages. It's a bit hackish b/c of
2580 a bug in the way the bdist_rpm distutils target handles gzipped
2585 a bug in the way the bdist_rpm distutils target handles gzipped
2581 manpages, but it works. After a patch by Jack.
2586 manpages, but it works. After a patch by Jack.
2582
2587
2583 2003-05-19 Fernando Perez <fperez@colorado.edu>
2588 2003-05-19 Fernando Perez <fperez@colorado.edu>
2584
2589
2585 * IPython/numutils.py: added a mockup of the kinds module, since
2590 * IPython/numutils.py: added a mockup of the kinds module, since
2586 it was recently removed from Numeric. This way, numutils will
2591 it was recently removed from Numeric. This way, numutils will
2587 work for all users even if they are missing kinds.
2592 work for all users even if they are missing kinds.
2588
2593
2589 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2594 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2590 failure, which can occur with SWIG-wrapped extensions. After a
2595 failure, which can occur with SWIG-wrapped extensions. After a
2591 crash report from Prabhu.
2596 crash report from Prabhu.
2592
2597
2593 2003-05-16 Fernando Perez <fperez@colorado.edu>
2598 2003-05-16 Fernando Perez <fperez@colorado.edu>
2594
2599
2595 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2600 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2596 protect ipython from user code which may call directly
2601 protect ipython from user code which may call directly
2597 sys.excepthook (this looks like an ipython crash to the user, even
2602 sys.excepthook (this looks like an ipython crash to the user, even
2598 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2603 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2599 This is especially important to help users of WxWindows, but may
2604 This is especially important to help users of WxWindows, but may
2600 also be useful in other cases.
2605 also be useful in other cases.
2601
2606
2602 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2607 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2603 an optional tb_offset to be specified, and to preserve exception
2608 an optional tb_offset to be specified, and to preserve exception
2604 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2609 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2605
2610
2606 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2611 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2607
2612
2608 2003-05-15 Fernando Perez <fperez@colorado.edu>
2613 2003-05-15 Fernando Perez <fperez@colorado.edu>
2609
2614
2610 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2615 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2611 installing for a new user under Windows.
2616 installing for a new user under Windows.
2612
2617
2613 2003-05-12 Fernando Perez <fperez@colorado.edu>
2618 2003-05-12 Fernando Perez <fperez@colorado.edu>
2614
2619
2615 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2620 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2616 handler for Emacs comint-based lines. Currently it doesn't do
2621 handler for Emacs comint-based lines. Currently it doesn't do
2617 much (but importantly, it doesn't update the history cache). In
2622 much (but importantly, it doesn't update the history cache). In
2618 the future it may be expanded if Alex needs more functionality
2623 the future it may be expanded if Alex needs more functionality
2619 there.
2624 there.
2620
2625
2621 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2626 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2622 info to crash reports.
2627 info to crash reports.
2623
2628
2624 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2629 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2625 just like Python's -c. Also fixed crash with invalid -color
2630 just like Python's -c. Also fixed crash with invalid -color
2626 option value at startup. Thanks to Will French
2631 option value at startup. Thanks to Will French
2627 <wfrench-AT-bestweb.net> for the bug report.
2632 <wfrench-AT-bestweb.net> for the bug report.
2628
2633
2629 2003-05-09 Fernando Perez <fperez@colorado.edu>
2634 2003-05-09 Fernando Perez <fperez@colorado.edu>
2630
2635
2631 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2636 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2632 to EvalDict (it's a mapping, after all) and simplified its code
2637 to EvalDict (it's a mapping, after all) and simplified its code
2633 quite a bit, after a nice discussion on c.l.py where Gustavo
2638 quite a bit, after a nice discussion on c.l.py where Gustavo
2634 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2639 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2635
2640
2636 2003-04-30 Fernando Perez <fperez@colorado.edu>
2641 2003-04-30 Fernando Perez <fperez@colorado.edu>
2637
2642
2638 * IPython/genutils.py (timings_out): modified it to reduce its
2643 * IPython/genutils.py (timings_out): modified it to reduce its
2639 overhead in the common reps==1 case.
2644 overhead in the common reps==1 case.
2640
2645
2641 2003-04-29 Fernando Perez <fperez@colorado.edu>
2646 2003-04-29 Fernando Perez <fperez@colorado.edu>
2642
2647
2643 * IPython/genutils.py (timings_out): Modified to use the resource
2648 * IPython/genutils.py (timings_out): Modified to use the resource
2644 module, which avoids the wraparound problems of time.clock().
2649 module, which avoids the wraparound problems of time.clock().
2645
2650
2646 2003-04-17 *** Released version 0.2.15pre4
2651 2003-04-17 *** Released version 0.2.15pre4
2647
2652
2648 2003-04-17 Fernando Perez <fperez@colorado.edu>
2653 2003-04-17 Fernando Perez <fperez@colorado.edu>
2649
2654
2650 * setup.py (scriptfiles): Split windows-specific stuff over to a
2655 * setup.py (scriptfiles): Split windows-specific stuff over to a
2651 separate file, in an attempt to have a Windows GUI installer.
2656 separate file, in an attempt to have a Windows GUI installer.
2652 That didn't work, but part of the groundwork is done.
2657 That didn't work, but part of the groundwork is done.
2653
2658
2654 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2659 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2655 indent/unindent with 4 spaces. Particularly useful in combination
2660 indent/unindent with 4 spaces. Particularly useful in combination
2656 with the new auto-indent option.
2661 with the new auto-indent option.
2657
2662
2658 2003-04-16 Fernando Perez <fperez@colorado.edu>
2663 2003-04-16 Fernando Perez <fperez@colorado.edu>
2659
2664
2660 * IPython/Magic.py: various replacements of self.rc for
2665 * IPython/Magic.py: various replacements of self.rc for
2661 self.shell.rc. A lot more remains to be done to fully disentangle
2666 self.shell.rc. A lot more remains to be done to fully disentangle
2662 this class from the main Shell class.
2667 this class from the main Shell class.
2663
2668
2664 * IPython/GnuplotRuntime.py: added checks for mouse support so
2669 * IPython/GnuplotRuntime.py: added checks for mouse support so
2665 that we don't try to enable it if the current gnuplot doesn't
2670 that we don't try to enable it if the current gnuplot doesn't
2666 really support it. Also added checks so that we don't try to
2671 really support it. Also added checks so that we don't try to
2667 enable persist under Windows (where Gnuplot doesn't recognize the
2672 enable persist under Windows (where Gnuplot doesn't recognize the
2668 option).
2673 option).
2669
2674
2670 * IPython/iplib.py (InteractiveShell.interact): Added optional
2675 * IPython/iplib.py (InteractiveShell.interact): Added optional
2671 auto-indenting code, after a patch by King C. Shu
2676 auto-indenting code, after a patch by King C. Shu
2672 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2677 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2673 get along well with pasting indented code. If I ever figure out
2678 get along well with pasting indented code. If I ever figure out
2674 how to make that part go well, it will become on by default.
2679 how to make that part go well, it will become on by default.
2675
2680
2676 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2681 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2677 crash ipython if there was an unmatched '%' in the user's prompt
2682 crash ipython if there was an unmatched '%' in the user's prompt
2678 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2683 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2679
2684
2680 * IPython/iplib.py (InteractiveShell.interact): removed the
2685 * IPython/iplib.py (InteractiveShell.interact): removed the
2681 ability to ask the user whether he wants to crash or not at the
2686 ability to ask the user whether he wants to crash or not at the
2682 'last line' exception handler. Calling functions at that point
2687 'last line' exception handler. Calling functions at that point
2683 changes the stack, and the error reports would have incorrect
2688 changes the stack, and the error reports would have incorrect
2684 tracebacks.
2689 tracebacks.
2685
2690
2686 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2691 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2687 pass through a peger a pretty-printed form of any object. After a
2692 pass through a peger a pretty-printed form of any object. After a
2688 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2693 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2689
2694
2690 2003-04-14 Fernando Perez <fperez@colorado.edu>
2695 2003-04-14 Fernando Perez <fperez@colorado.edu>
2691
2696
2692 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2697 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2693 all files in ~ would be modified at first install (instead of
2698 all files in ~ would be modified at first install (instead of
2694 ~/.ipython). This could be potentially disastrous, as the
2699 ~/.ipython). This could be potentially disastrous, as the
2695 modification (make line-endings native) could damage binary files.
2700 modification (make line-endings native) could damage binary files.
2696
2701
2697 2003-04-10 Fernando Perez <fperez@colorado.edu>
2702 2003-04-10 Fernando Perez <fperez@colorado.edu>
2698
2703
2699 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2704 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2700 handle only lines which are invalid python. This now means that
2705 handle only lines which are invalid python. This now means that
2701 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2706 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2702 for the bug report.
2707 for the bug report.
2703
2708
2704 2003-04-01 Fernando Perez <fperez@colorado.edu>
2709 2003-04-01 Fernando Perez <fperez@colorado.edu>
2705
2710
2706 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2711 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2707 where failing to set sys.last_traceback would crash pdb.pm().
2712 where failing to set sys.last_traceback would crash pdb.pm().
2708 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2713 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2709 report.
2714 report.
2710
2715
2711 2003-03-25 Fernando Perez <fperez@colorado.edu>
2716 2003-03-25 Fernando Perez <fperez@colorado.edu>
2712
2717
2713 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2718 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2714 before printing it (it had a lot of spurious blank lines at the
2719 before printing it (it had a lot of spurious blank lines at the
2715 end).
2720 end).
2716
2721
2717 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2722 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2718 output would be sent 21 times! Obviously people don't use this
2723 output would be sent 21 times! Obviously people don't use this
2719 too often, or I would have heard about it.
2724 too often, or I would have heard about it.
2720
2725
2721 2003-03-24 Fernando Perez <fperez@colorado.edu>
2726 2003-03-24 Fernando Perez <fperez@colorado.edu>
2722
2727
2723 * setup.py (scriptfiles): renamed the data_files parameter from
2728 * setup.py (scriptfiles): renamed the data_files parameter from
2724 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2729 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2725 for the patch.
2730 for the patch.
2726
2731
2727 2003-03-20 Fernando Perez <fperez@colorado.edu>
2732 2003-03-20 Fernando Perez <fperez@colorado.edu>
2728
2733
2729 * IPython/genutils.py (error): added error() and fatal()
2734 * IPython/genutils.py (error): added error() and fatal()
2730 functions.
2735 functions.
2731
2736
2732 2003-03-18 *** Released version 0.2.15pre3
2737 2003-03-18 *** Released version 0.2.15pre3
2733
2738
2734 2003-03-18 Fernando Perez <fperez@colorado.edu>
2739 2003-03-18 Fernando Perez <fperez@colorado.edu>
2735
2740
2736 * setupext/install_data_ext.py
2741 * setupext/install_data_ext.py
2737 (install_data_ext.initialize_options): Class contributed by Jack
2742 (install_data_ext.initialize_options): Class contributed by Jack
2738 Moffit for fixing the old distutils hack. He is sending this to
2743 Moffit for fixing the old distutils hack. He is sending this to
2739 the distutils folks so in the future we may not need it as a
2744 the distutils folks so in the future we may not need it as a
2740 private fix.
2745 private fix.
2741
2746
2742 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2747 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2743 changes for Debian packaging. See his patch for full details.
2748 changes for Debian packaging. See his patch for full details.
2744 The old distutils hack of making the ipythonrc* files carry a
2749 The old distutils hack of making the ipythonrc* files carry a
2745 bogus .py extension is gone, at last. Examples were moved to a
2750 bogus .py extension is gone, at last. Examples were moved to a
2746 separate subdir under doc/, and the separate executable scripts
2751 separate subdir under doc/, and the separate executable scripts
2747 now live in their own directory. Overall a great cleanup. The
2752 now live in their own directory. Overall a great cleanup. The
2748 manual was updated to use the new files, and setup.py has been
2753 manual was updated to use the new files, and setup.py has been
2749 fixed for this setup.
2754 fixed for this setup.
2750
2755
2751 * IPython/PyColorize.py (Parser.usage): made non-executable and
2756 * IPython/PyColorize.py (Parser.usage): made non-executable and
2752 created a pycolor wrapper around it to be included as a script.
2757 created a pycolor wrapper around it to be included as a script.
2753
2758
2754 2003-03-12 *** Released version 0.2.15pre2
2759 2003-03-12 *** Released version 0.2.15pre2
2755
2760
2756 2003-03-12 Fernando Perez <fperez@colorado.edu>
2761 2003-03-12 Fernando Perez <fperez@colorado.edu>
2757
2762
2758 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2763 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2759 long-standing problem with garbage characters in some terminals.
2764 long-standing problem with garbage characters in some terminals.
2760 The issue was really that the \001 and \002 escapes must _only_ be
2765 The issue was really that the \001 and \002 escapes must _only_ be
2761 passed to input prompts (which call readline), but _never_ to
2766 passed to input prompts (which call readline), but _never_ to
2762 normal text to be printed on screen. I changed ColorANSI to have
2767 normal text to be printed on screen. I changed ColorANSI to have
2763 two classes: TermColors and InputTermColors, each with the
2768 two classes: TermColors and InputTermColors, each with the
2764 appropriate escapes for input prompts or normal text. The code in
2769 appropriate escapes for input prompts or normal text. The code in
2765 Prompts.py got slightly more complicated, but this very old and
2770 Prompts.py got slightly more complicated, but this very old and
2766 annoying bug is finally fixed.
2771 annoying bug is finally fixed.
2767
2772
2768 All the credit for nailing down the real origin of this problem
2773 All the credit for nailing down the real origin of this problem
2769 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2774 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2770 *Many* thanks to him for spending quite a bit of effort on this.
2775 *Many* thanks to him for spending quite a bit of effort on this.
2771
2776
2772 2003-03-05 *** Released version 0.2.15pre1
2777 2003-03-05 *** Released version 0.2.15pre1
2773
2778
2774 2003-03-03 Fernando Perez <fperez@colorado.edu>
2779 2003-03-03 Fernando Perez <fperez@colorado.edu>
2775
2780
2776 * IPython/FakeModule.py: Moved the former _FakeModule to a
2781 * IPython/FakeModule.py: Moved the former _FakeModule to a
2777 separate file, because it's also needed by Magic (to fix a similar
2782 separate file, because it's also needed by Magic (to fix a similar
2778 pickle-related issue in @run).
2783 pickle-related issue in @run).
2779
2784
2780 2003-03-02 Fernando Perez <fperez@colorado.edu>
2785 2003-03-02 Fernando Perez <fperez@colorado.edu>
2781
2786
2782 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2787 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2783 the autocall option at runtime.
2788 the autocall option at runtime.
2784 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2789 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2785 across Magic.py to start separating Magic from InteractiveShell.
2790 across Magic.py to start separating Magic from InteractiveShell.
2786 (Magic._ofind): Fixed to return proper namespace for dotted
2791 (Magic._ofind): Fixed to return proper namespace for dotted
2787 names. Before, a dotted name would always return 'not currently
2792 names. Before, a dotted name would always return 'not currently
2788 defined', because it would find the 'parent'. s.x would be found,
2793 defined', because it would find the 'parent'. s.x would be found,
2789 but since 'x' isn't defined by itself, it would get confused.
2794 but since 'x' isn't defined by itself, it would get confused.
2790 (Magic.magic_run): Fixed pickling problems reported by Ralf
2795 (Magic.magic_run): Fixed pickling problems reported by Ralf
2791 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2796 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2792 that I'd used when Mike Heeter reported similar issues at the
2797 that I'd used when Mike Heeter reported similar issues at the
2793 top-level, but now for @run. It boils down to injecting the
2798 top-level, but now for @run. It boils down to injecting the
2794 namespace where code is being executed with something that looks
2799 namespace where code is being executed with something that looks
2795 enough like a module to fool pickle.dump(). Since a pickle stores
2800 enough like a module to fool pickle.dump(). Since a pickle stores
2796 a named reference to the importing module, we need this for
2801 a named reference to the importing module, we need this for
2797 pickles to save something sensible.
2802 pickles to save something sensible.
2798
2803
2799 * IPython/ipmaker.py (make_IPython): added an autocall option.
2804 * IPython/ipmaker.py (make_IPython): added an autocall option.
2800
2805
2801 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2806 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2802 the auto-eval code. Now autocalling is an option, and the code is
2807 the auto-eval code. Now autocalling is an option, and the code is
2803 also vastly safer. There is no more eval() involved at all.
2808 also vastly safer. There is no more eval() involved at all.
2804
2809
2805 2003-03-01 Fernando Perez <fperez@colorado.edu>
2810 2003-03-01 Fernando Perez <fperez@colorado.edu>
2806
2811
2807 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2812 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2808 dict with named keys instead of a tuple.
2813 dict with named keys instead of a tuple.
2809
2814
2810 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2815 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2811
2816
2812 * setup.py (make_shortcut): Fixed message about directories
2817 * setup.py (make_shortcut): Fixed message about directories
2813 created during Windows installation (the directories were ok, just
2818 created during Windows installation (the directories were ok, just
2814 the printed message was misleading). Thanks to Chris Liechti
2819 the printed message was misleading). Thanks to Chris Liechti
2815 <cliechti-AT-gmx.net> for the heads up.
2820 <cliechti-AT-gmx.net> for the heads up.
2816
2821
2817 2003-02-21 Fernando Perez <fperez@colorado.edu>
2822 2003-02-21 Fernando Perez <fperez@colorado.edu>
2818
2823
2819 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2824 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2820 of ValueError exception when checking for auto-execution. This
2825 of ValueError exception when checking for auto-execution. This
2821 one is raised by things like Numeric arrays arr.flat when the
2826 one is raised by things like Numeric arrays arr.flat when the
2822 array is non-contiguous.
2827 array is non-contiguous.
2823
2828
2824 2003-01-31 Fernando Perez <fperez@colorado.edu>
2829 2003-01-31 Fernando Perez <fperez@colorado.edu>
2825
2830
2826 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2831 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2827 not return any value at all (even though the command would get
2832 not return any value at all (even though the command would get
2828 executed).
2833 executed).
2829 (xsys): Flush stdout right after printing the command to ensure
2834 (xsys): Flush stdout right after printing the command to ensure
2830 proper ordering of commands and command output in the total
2835 proper ordering of commands and command output in the total
2831 output.
2836 output.
2832 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2837 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2833 system/getoutput as defaults. The old ones are kept for
2838 system/getoutput as defaults. The old ones are kept for
2834 compatibility reasons, so no code which uses this library needs
2839 compatibility reasons, so no code which uses this library needs
2835 changing.
2840 changing.
2836
2841
2837 2003-01-27 *** Released version 0.2.14
2842 2003-01-27 *** Released version 0.2.14
2838
2843
2839 2003-01-25 Fernando Perez <fperez@colorado.edu>
2844 2003-01-25 Fernando Perez <fperez@colorado.edu>
2840
2845
2841 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2846 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2842 functions defined in previous edit sessions could not be re-edited
2847 functions defined in previous edit sessions could not be re-edited
2843 (because the temp files were immediately removed). Now temp files
2848 (because the temp files were immediately removed). Now temp files
2844 are removed only at IPython's exit.
2849 are removed only at IPython's exit.
2845 (Magic.magic_run): Improved @run to perform shell-like expansions
2850 (Magic.magic_run): Improved @run to perform shell-like expansions
2846 on its arguments (~users and $VARS). With this, @run becomes more
2851 on its arguments (~users and $VARS). With this, @run becomes more
2847 like a normal command-line.
2852 like a normal command-line.
2848
2853
2849 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2854 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2850 bugs related to embedding and cleaned up that code. A fairly
2855 bugs related to embedding and cleaned up that code. A fairly
2851 important one was the impossibility to access the global namespace
2856 important one was the impossibility to access the global namespace
2852 through the embedded IPython (only local variables were visible).
2857 through the embedded IPython (only local variables were visible).
2853
2858
2854 2003-01-14 Fernando Perez <fperez@colorado.edu>
2859 2003-01-14 Fernando Perez <fperez@colorado.edu>
2855
2860
2856 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2861 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2857 auto-calling to be a bit more conservative. Now it doesn't get
2862 auto-calling to be a bit more conservative. Now it doesn't get
2858 triggered if any of '!=()<>' are in the rest of the input line, to
2863 triggered if any of '!=()<>' are in the rest of the input line, to
2859 allow comparing callables. Thanks to Alex for the heads up.
2864 allow comparing callables. Thanks to Alex for the heads up.
2860
2865
2861 2003-01-07 Fernando Perez <fperez@colorado.edu>
2866 2003-01-07 Fernando Perez <fperez@colorado.edu>
2862
2867
2863 * IPython/genutils.py (page): fixed estimation of the number of
2868 * IPython/genutils.py (page): fixed estimation of the number of
2864 lines in a string to be paged to simply count newlines. This
2869 lines in a string to be paged to simply count newlines. This
2865 prevents over-guessing due to embedded escape sequences. A better
2870 prevents over-guessing due to embedded escape sequences. A better
2866 long-term solution would involve stripping out the control chars
2871 long-term solution would involve stripping out the control chars
2867 for the count, but it's potentially so expensive I just don't
2872 for the count, but it's potentially so expensive I just don't
2868 think it's worth doing.
2873 think it's worth doing.
2869
2874
2870 2002-12-19 *** Released version 0.2.14pre50
2875 2002-12-19 *** Released version 0.2.14pre50
2871
2876
2872 2002-12-19 Fernando Perez <fperez@colorado.edu>
2877 2002-12-19 Fernando Perez <fperez@colorado.edu>
2873
2878
2874 * tools/release (version): Changed release scripts to inform
2879 * tools/release (version): Changed release scripts to inform
2875 Andrea and build a NEWS file with a list of recent changes.
2880 Andrea and build a NEWS file with a list of recent changes.
2876
2881
2877 * IPython/ColorANSI.py (__all__): changed terminal detection
2882 * IPython/ColorANSI.py (__all__): changed terminal detection
2878 code. Seems to work better for xterms without breaking
2883 code. Seems to work better for xterms without breaking
2879 konsole. Will need more testing to determine if WinXP and Mac OSX
2884 konsole. Will need more testing to determine if WinXP and Mac OSX
2880 also work ok.
2885 also work ok.
2881
2886
2882 2002-12-18 *** Released version 0.2.14pre49
2887 2002-12-18 *** Released version 0.2.14pre49
2883
2888
2884 2002-12-18 Fernando Perez <fperez@colorado.edu>
2889 2002-12-18 Fernando Perez <fperez@colorado.edu>
2885
2890
2886 * Docs: added new info about Mac OSX, from Andrea.
2891 * Docs: added new info about Mac OSX, from Andrea.
2887
2892
2888 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2893 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2889 allow direct plotting of python strings whose format is the same
2894 allow direct plotting of python strings whose format is the same
2890 of gnuplot data files.
2895 of gnuplot data files.
2891
2896
2892 2002-12-16 Fernando Perez <fperez@colorado.edu>
2897 2002-12-16 Fernando Perez <fperez@colorado.edu>
2893
2898
2894 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2899 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2895 value of exit question to be acknowledged.
2900 value of exit question to be acknowledged.
2896
2901
2897 2002-12-03 Fernando Perez <fperez@colorado.edu>
2902 2002-12-03 Fernando Perez <fperez@colorado.edu>
2898
2903
2899 * IPython/ipmaker.py: removed generators, which had been added
2904 * IPython/ipmaker.py: removed generators, which had been added
2900 by mistake in an earlier debugging run. This was causing trouble
2905 by mistake in an earlier debugging run. This was causing trouble
2901 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2906 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2902 for pointing this out.
2907 for pointing this out.
2903
2908
2904 2002-11-17 Fernando Perez <fperez@colorado.edu>
2909 2002-11-17 Fernando Perez <fperez@colorado.edu>
2905
2910
2906 * Manual: updated the Gnuplot section.
2911 * Manual: updated the Gnuplot section.
2907
2912
2908 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2913 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2909 a much better split of what goes in Runtime and what goes in
2914 a much better split of what goes in Runtime and what goes in
2910 Interactive.
2915 Interactive.
2911
2916
2912 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2917 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2913 being imported from iplib.
2918 being imported from iplib.
2914
2919
2915 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2920 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2916 for command-passing. Now the global Gnuplot instance is called
2921 for command-passing. Now the global Gnuplot instance is called
2917 'gp' instead of 'g', which was really a far too fragile and
2922 'gp' instead of 'g', which was really a far too fragile and
2918 common name.
2923 common name.
2919
2924
2920 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2925 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2921 bounding boxes generated by Gnuplot for square plots.
2926 bounding boxes generated by Gnuplot for square plots.
2922
2927
2923 * IPython/genutils.py (popkey): new function added. I should
2928 * IPython/genutils.py (popkey): new function added. I should
2924 suggest this on c.l.py as a dict method, it seems useful.
2929 suggest this on c.l.py as a dict method, it seems useful.
2925
2930
2926 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2931 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2927 to transparently handle PostScript generation. MUCH better than
2932 to transparently handle PostScript generation. MUCH better than
2928 the previous plot_eps/replot_eps (which I removed now). The code
2933 the previous plot_eps/replot_eps (which I removed now). The code
2929 is also fairly clean and well documented now (including
2934 is also fairly clean and well documented now (including
2930 docstrings).
2935 docstrings).
2931
2936
2932 2002-11-13 Fernando Perez <fperez@colorado.edu>
2937 2002-11-13 Fernando Perez <fperez@colorado.edu>
2933
2938
2934 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2939 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2935 (inconsistent with options).
2940 (inconsistent with options).
2936
2941
2937 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2942 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2938 manually disabled, I don't know why. Fixed it.
2943 manually disabled, I don't know why. Fixed it.
2939 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2944 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2940 eps output.
2945 eps output.
2941
2946
2942 2002-11-12 Fernando Perez <fperez@colorado.edu>
2947 2002-11-12 Fernando Perez <fperez@colorado.edu>
2943
2948
2944 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2949 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2945 don't propagate up to caller. Fixes crash reported by François
2950 don't propagate up to caller. Fixes crash reported by François
2946 Pinard.
2951 Pinard.
2947
2952
2948 2002-11-09 Fernando Perez <fperez@colorado.edu>
2953 2002-11-09 Fernando Perez <fperez@colorado.edu>
2949
2954
2950 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2955 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2951 history file for new users.
2956 history file for new users.
2952 (make_IPython): fixed bug where initial install would leave the
2957 (make_IPython): fixed bug where initial install would leave the
2953 user running in the .ipython dir.
2958 user running in the .ipython dir.
2954 (make_IPython): fixed bug where config dir .ipython would be
2959 (make_IPython): fixed bug where config dir .ipython would be
2955 created regardless of the given -ipythondir option. Thanks to Cory
2960 created regardless of the given -ipythondir option. Thanks to Cory
2956 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2961 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2957
2962
2958 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2963 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2959 type confirmations. Will need to use it in all of IPython's code
2964 type confirmations. Will need to use it in all of IPython's code
2960 consistently.
2965 consistently.
2961
2966
2962 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2967 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2963 context to print 31 lines instead of the default 5. This will make
2968 context to print 31 lines instead of the default 5. This will make
2964 the crash reports extremely detailed in case the problem is in
2969 the crash reports extremely detailed in case the problem is in
2965 libraries I don't have access to.
2970 libraries I don't have access to.
2966
2971
2967 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2972 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2968 line of defense' code to still crash, but giving users fair
2973 line of defense' code to still crash, but giving users fair
2969 warning. I don't want internal errors to go unreported: if there's
2974 warning. I don't want internal errors to go unreported: if there's
2970 an internal problem, IPython should crash and generate a full
2975 an internal problem, IPython should crash and generate a full
2971 report.
2976 report.
2972
2977
2973 2002-11-08 Fernando Perez <fperez@colorado.edu>
2978 2002-11-08 Fernando Perez <fperez@colorado.edu>
2974
2979
2975 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2980 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2976 otherwise uncaught exceptions which can appear if people set
2981 otherwise uncaught exceptions which can appear if people set
2977 sys.stdout to something badly broken. Thanks to a crash report
2982 sys.stdout to something badly broken. Thanks to a crash report
2978 from henni-AT-mail.brainbot.com.
2983 from henni-AT-mail.brainbot.com.
2979
2984
2980 2002-11-04 Fernando Perez <fperez@colorado.edu>
2985 2002-11-04 Fernando Perez <fperez@colorado.edu>
2981
2986
2982 * IPython/iplib.py (InteractiveShell.interact): added
2987 * IPython/iplib.py (InteractiveShell.interact): added
2983 __IPYTHON__active to the builtins. It's a flag which goes on when
2988 __IPYTHON__active to the builtins. It's a flag which goes on when
2984 the interaction starts and goes off again when it stops. This
2989 the interaction starts and goes off again when it stops. This
2985 allows embedding code to detect being inside IPython. Before this
2990 allows embedding code to detect being inside IPython. Before this
2986 was done via __IPYTHON__, but that only shows that an IPython
2991 was done via __IPYTHON__, but that only shows that an IPython
2987 instance has been created.
2992 instance has been created.
2988
2993
2989 * IPython/Magic.py (Magic.magic_env): I realized that in a
2994 * IPython/Magic.py (Magic.magic_env): I realized that in a
2990 UserDict, instance.data holds the data as a normal dict. So I
2995 UserDict, instance.data holds the data as a normal dict. So I
2991 modified @env to return os.environ.data instead of rebuilding a
2996 modified @env to return os.environ.data instead of rebuilding a
2992 dict by hand.
2997 dict by hand.
2993
2998
2994 2002-11-02 Fernando Perez <fperez@colorado.edu>
2999 2002-11-02 Fernando Perez <fperez@colorado.edu>
2995
3000
2996 * IPython/genutils.py (warn): changed so that level 1 prints no
3001 * IPython/genutils.py (warn): changed so that level 1 prints no
2997 header. Level 2 is now the default (with 'WARNING' header, as
3002 header. Level 2 is now the default (with 'WARNING' header, as
2998 before). I think I tracked all places where changes were needed in
3003 before). I think I tracked all places where changes were needed in
2999 IPython, but outside code using the old level numbering may have
3004 IPython, but outside code using the old level numbering may have
3000 broken.
3005 broken.
3001
3006
3002 * IPython/iplib.py (InteractiveShell.runcode): added this to
3007 * IPython/iplib.py (InteractiveShell.runcode): added this to
3003 handle the tracebacks in SystemExit traps correctly. The previous
3008 handle the tracebacks in SystemExit traps correctly. The previous
3004 code (through interact) was printing more of the stack than
3009 code (through interact) was printing more of the stack than
3005 necessary, showing IPython internal code to the user.
3010 necessary, showing IPython internal code to the user.
3006
3011
3007 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3012 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3008 default. Now that the default at the confirmation prompt is yes,
3013 default. Now that the default at the confirmation prompt is yes,
3009 it's not so intrusive. François' argument that ipython sessions
3014 it's not so intrusive. François' argument that ipython sessions
3010 tend to be complex enough not to lose them from an accidental C-d,
3015 tend to be complex enough not to lose them from an accidental C-d,
3011 is a valid one.
3016 is a valid one.
3012
3017
3013 * IPython/iplib.py (InteractiveShell.interact): added a
3018 * IPython/iplib.py (InteractiveShell.interact): added a
3014 showtraceback() call to the SystemExit trap, and modified the exit
3019 showtraceback() call to the SystemExit trap, and modified the exit
3015 confirmation to have yes as the default.
3020 confirmation to have yes as the default.
3016
3021
3017 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3022 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3018 this file. It's been gone from the code for a long time, this was
3023 this file. It's been gone from the code for a long time, this was
3019 simply leftover junk.
3024 simply leftover junk.
3020
3025
3021 2002-11-01 Fernando Perez <fperez@colorado.edu>
3026 2002-11-01 Fernando Perez <fperez@colorado.edu>
3022
3027
3023 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3028 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3024 added. If set, IPython now traps EOF and asks for
3029 added. If set, IPython now traps EOF and asks for
3025 confirmation. After a request by François Pinard.
3030 confirmation. After a request by François Pinard.
3026
3031
3027 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3032 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3028 of @abort, and with a new (better) mechanism for handling the
3033 of @abort, and with a new (better) mechanism for handling the
3029 exceptions.
3034 exceptions.
3030
3035
3031 2002-10-27 Fernando Perez <fperez@colorado.edu>
3036 2002-10-27 Fernando Perez <fperez@colorado.edu>
3032
3037
3033 * IPython/usage.py (__doc__): updated the --help information and
3038 * IPython/usage.py (__doc__): updated the --help information and
3034 the ipythonrc file to indicate that -log generates
3039 the ipythonrc file to indicate that -log generates
3035 ./ipython.log. Also fixed the corresponding info in @logstart.
3040 ./ipython.log. Also fixed the corresponding info in @logstart.
3036 This and several other fixes in the manuals thanks to reports by
3041 This and several other fixes in the manuals thanks to reports by
3037 François Pinard <pinard-AT-iro.umontreal.ca>.
3042 François Pinard <pinard-AT-iro.umontreal.ca>.
3038
3043
3039 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3044 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3040 refer to @logstart (instead of @log, which doesn't exist).
3045 refer to @logstart (instead of @log, which doesn't exist).
3041
3046
3042 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3047 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3043 AttributeError crash. Thanks to Christopher Armstrong
3048 AttributeError crash. Thanks to Christopher Armstrong
3044 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3049 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3045 introduced recently (in 0.2.14pre37) with the fix to the eval
3050 introduced recently (in 0.2.14pre37) with the fix to the eval
3046 problem mentioned below.
3051 problem mentioned below.
3047
3052
3048 2002-10-17 Fernando Perez <fperez@colorado.edu>
3053 2002-10-17 Fernando Perez <fperez@colorado.edu>
3049
3054
3050 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3055 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3051 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3056 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3052
3057
3053 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3058 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3054 this function to fix a problem reported by Alex Schmolck. He saw
3059 this function to fix a problem reported by Alex Schmolck. He saw
3055 it with list comprehensions and generators, which were getting
3060 it with list comprehensions and generators, which were getting
3056 called twice. The real problem was an 'eval' call in testing for
3061 called twice. The real problem was an 'eval' call in testing for
3057 automagic which was evaluating the input line silently.
3062 automagic which was evaluating the input line silently.
3058
3063
3059 This is a potentially very nasty bug, if the input has side
3064 This is a potentially very nasty bug, if the input has side
3060 effects which must not be repeated. The code is much cleaner now,
3065 effects which must not be repeated. The code is much cleaner now,
3061 without any blanket 'except' left and with a regexp test for
3066 without any blanket 'except' left and with a regexp test for
3062 actual function names.
3067 actual function names.
3063
3068
3064 But an eval remains, which I'm not fully comfortable with. I just
3069 But an eval remains, which I'm not fully comfortable with. I just
3065 don't know how to find out if an expression could be a callable in
3070 don't know how to find out if an expression could be a callable in
3066 the user's namespace without doing an eval on the string. However
3071 the user's namespace without doing an eval on the string. However
3067 that string is now much more strictly checked so that no code
3072 that string is now much more strictly checked so that no code
3068 slips by, so the eval should only happen for things that can
3073 slips by, so the eval should only happen for things that can
3069 really be only function/method names.
3074 really be only function/method names.
3070
3075
3071 2002-10-15 Fernando Perez <fperez@colorado.edu>
3076 2002-10-15 Fernando Perez <fperez@colorado.edu>
3072
3077
3073 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3078 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3074 OSX information to main manual, removed README_Mac_OSX file from
3079 OSX information to main manual, removed README_Mac_OSX file from
3075 distribution. Also updated credits for recent additions.
3080 distribution. Also updated credits for recent additions.
3076
3081
3077 2002-10-10 Fernando Perez <fperez@colorado.edu>
3082 2002-10-10 Fernando Perez <fperez@colorado.edu>
3078
3083
3079 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3084 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3080 terminal-related issues. Many thanks to Andrea Riciputi
3085 terminal-related issues. Many thanks to Andrea Riciputi
3081 <andrea.riciputi-AT-libero.it> for writing it.
3086 <andrea.riciputi-AT-libero.it> for writing it.
3082
3087
3083 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3088 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3084 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3089 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3085
3090
3086 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3091 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3087 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3092 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3088 <syver-en-AT-online.no> who both submitted patches for this problem.
3093 <syver-en-AT-online.no> who both submitted patches for this problem.
3089
3094
3090 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3095 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3091 global embedding to make sure that things don't overwrite user
3096 global embedding to make sure that things don't overwrite user
3092 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3097 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3093
3098
3094 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3099 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3095 compatibility. Thanks to Hayden Callow
3100 compatibility. Thanks to Hayden Callow
3096 <h.callow-AT-elec.canterbury.ac.nz>
3101 <h.callow-AT-elec.canterbury.ac.nz>
3097
3102
3098 2002-10-04 Fernando Perez <fperez@colorado.edu>
3103 2002-10-04 Fernando Perez <fperez@colorado.edu>
3099
3104
3100 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3105 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3101 Gnuplot.File objects.
3106 Gnuplot.File objects.
3102
3107
3103 2002-07-23 Fernando Perez <fperez@colorado.edu>
3108 2002-07-23 Fernando Perez <fperez@colorado.edu>
3104
3109
3105 * IPython/genutils.py (timing): Added timings() and timing() for
3110 * IPython/genutils.py (timing): Added timings() and timing() for
3106 quick access to the most commonly needed data, the execution
3111 quick access to the most commonly needed data, the execution
3107 times. Old timing() renamed to timings_out().
3112 times. Old timing() renamed to timings_out().
3108
3113
3109 2002-07-18 Fernando Perez <fperez@colorado.edu>
3114 2002-07-18 Fernando Perez <fperez@colorado.edu>
3110
3115
3111 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3116 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3112 bug with nested instances disrupting the parent's tab completion.
3117 bug with nested instances disrupting the parent's tab completion.
3113
3118
3114 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3119 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3115 all_completions code to begin the emacs integration.
3120 all_completions code to begin the emacs integration.
3116
3121
3117 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3122 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3118 argument to allow titling individual arrays when plotting.
3123 argument to allow titling individual arrays when plotting.
3119
3124
3120 2002-07-15 Fernando Perez <fperez@colorado.edu>
3125 2002-07-15 Fernando Perez <fperez@colorado.edu>
3121
3126
3122 * setup.py (make_shortcut): changed to retrieve the value of
3127 * setup.py (make_shortcut): changed to retrieve the value of
3123 'Program Files' directory from the registry (this value changes in
3128 'Program Files' directory from the registry (this value changes in
3124 non-english versions of Windows). Thanks to Thomas Fanslau
3129 non-english versions of Windows). Thanks to Thomas Fanslau
3125 <tfanslau-AT-gmx.de> for the report.
3130 <tfanslau-AT-gmx.de> for the report.
3126
3131
3127 2002-07-10 Fernando Perez <fperez@colorado.edu>
3132 2002-07-10 Fernando Perez <fperez@colorado.edu>
3128
3133
3129 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3134 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3130 a bug in pdb, which crashes if a line with only whitespace is
3135 a bug in pdb, which crashes if a line with only whitespace is
3131 entered. Bug report submitted to sourceforge.
3136 entered. Bug report submitted to sourceforge.
3132
3137
3133 2002-07-09 Fernando Perez <fperez@colorado.edu>
3138 2002-07-09 Fernando Perez <fperez@colorado.edu>
3134
3139
3135 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3140 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3136 reporting exceptions (it's a bug in inspect.py, I just set a
3141 reporting exceptions (it's a bug in inspect.py, I just set a
3137 workaround).
3142 workaround).
3138
3143
3139 2002-07-08 Fernando Perez <fperez@colorado.edu>
3144 2002-07-08 Fernando Perez <fperez@colorado.edu>
3140
3145
3141 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3146 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3142 __IPYTHON__ in __builtins__ to show up in user_ns.
3147 __IPYTHON__ in __builtins__ to show up in user_ns.
3143
3148
3144 2002-07-03 Fernando Perez <fperez@colorado.edu>
3149 2002-07-03 Fernando Perez <fperez@colorado.edu>
3145
3150
3146 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3151 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3147 name from @gp_set_instance to @gp_set_default.
3152 name from @gp_set_instance to @gp_set_default.
3148
3153
3149 * IPython/ipmaker.py (make_IPython): default editor value set to
3154 * IPython/ipmaker.py (make_IPython): default editor value set to
3150 '0' (a string), to match the rc file. Otherwise will crash when
3155 '0' (a string), to match the rc file. Otherwise will crash when
3151 .strip() is called on it.
3156 .strip() is called on it.
3152
3157
3153
3158
3154 2002-06-28 Fernando Perez <fperez@colorado.edu>
3159 2002-06-28 Fernando Perez <fperez@colorado.edu>
3155
3160
3156 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3161 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3157 of files in current directory when a file is executed via
3162 of files in current directory when a file is executed via
3158 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3163 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3159
3164
3160 * setup.py (manfiles): fix for rpm builds, submitted by RA
3165 * setup.py (manfiles): fix for rpm builds, submitted by RA
3161 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3166 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3162
3167
3163 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3168 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3164 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3169 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3165 string!). A. Schmolck caught this one.
3170 string!). A. Schmolck caught this one.
3166
3171
3167 2002-06-27 Fernando Perez <fperez@colorado.edu>
3172 2002-06-27 Fernando Perez <fperez@colorado.edu>
3168
3173
3169 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3174 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3170 defined files at the cmd line. __name__ wasn't being set to
3175 defined files at the cmd line. __name__ wasn't being set to
3171 __main__.
3176 __main__.
3172
3177
3173 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3178 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3174 regular lists and tuples besides Numeric arrays.
3179 regular lists and tuples besides Numeric arrays.
3175
3180
3176 * IPython/Prompts.py (CachedOutput.__call__): Added output
3181 * IPython/Prompts.py (CachedOutput.__call__): Added output
3177 supression for input ending with ';'. Similar to Mathematica and
3182 supression for input ending with ';'. Similar to Mathematica and
3178 Matlab. The _* vars and Out[] list are still updated, just like
3183 Matlab. The _* vars and Out[] list are still updated, just like
3179 Mathematica behaves.
3184 Mathematica behaves.
3180
3185
3181 2002-06-25 Fernando Perez <fperez@colorado.edu>
3186 2002-06-25 Fernando Perez <fperez@colorado.edu>
3182
3187
3183 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3188 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3184 .ini extensions for profiels under Windows.
3189 .ini extensions for profiels under Windows.
3185
3190
3186 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3191 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3187 string form. Fix contributed by Alexander Schmolck
3192 string form. Fix contributed by Alexander Schmolck
3188 <a.schmolck-AT-gmx.net>
3193 <a.schmolck-AT-gmx.net>
3189
3194
3190 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3195 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3191 pre-configured Gnuplot instance.
3196 pre-configured Gnuplot instance.
3192
3197
3193 2002-06-21 Fernando Perez <fperez@colorado.edu>
3198 2002-06-21 Fernando Perez <fperez@colorado.edu>
3194
3199
3195 * IPython/numutils.py (exp_safe): new function, works around the
3200 * IPython/numutils.py (exp_safe): new function, works around the
3196 underflow problems in Numeric.
3201 underflow problems in Numeric.
3197 (log2): New fn. Safe log in base 2: returns exact integer answer
3202 (log2): New fn. Safe log in base 2: returns exact integer answer
3198 for exact integer powers of 2.
3203 for exact integer powers of 2.
3199
3204
3200 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3205 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3201 properly.
3206 properly.
3202
3207
3203 2002-06-20 Fernando Perez <fperez@colorado.edu>
3208 2002-06-20 Fernando Perez <fperez@colorado.edu>
3204
3209
3205 * IPython/genutils.py (timing): new function like
3210 * IPython/genutils.py (timing): new function like
3206 Mathematica's. Similar to time_test, but returns more info.
3211 Mathematica's. Similar to time_test, but returns more info.
3207
3212
3208 2002-06-18 Fernando Perez <fperez@colorado.edu>
3213 2002-06-18 Fernando Perez <fperez@colorado.edu>
3209
3214
3210 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3215 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3211 according to Mike Heeter's suggestions.
3216 according to Mike Heeter's suggestions.
3212
3217
3213 2002-06-16 Fernando Perez <fperez@colorado.edu>
3218 2002-06-16 Fernando Perez <fperez@colorado.edu>
3214
3219
3215 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3220 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3216 system. GnuplotMagic is gone as a user-directory option. New files
3221 system. GnuplotMagic is gone as a user-directory option. New files
3217 make it easier to use all the gnuplot stuff both from external
3222 make it easier to use all the gnuplot stuff both from external
3218 programs as well as from IPython. Had to rewrite part of
3223 programs as well as from IPython. Had to rewrite part of
3219 hardcopy() b/c of a strange bug: often the ps files simply don't
3224 hardcopy() b/c of a strange bug: often the ps files simply don't
3220 get created, and require a repeat of the command (often several
3225 get created, and require a repeat of the command (often several
3221 times).
3226 times).
3222
3227
3223 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3228 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3224 resolve output channel at call time, so that if sys.stderr has
3229 resolve output channel at call time, so that if sys.stderr has
3225 been redirected by user this gets honored.
3230 been redirected by user this gets honored.
3226
3231
3227 2002-06-13 Fernando Perez <fperez@colorado.edu>
3232 2002-06-13 Fernando Perez <fperez@colorado.edu>
3228
3233
3229 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3234 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3230 IPShell. Kept a copy with the old names to avoid breaking people's
3235 IPShell. Kept a copy with the old names to avoid breaking people's
3231 embedded code.
3236 embedded code.
3232
3237
3233 * IPython/ipython: simplified it to the bare minimum after
3238 * IPython/ipython: simplified it to the bare minimum after
3234 Holger's suggestions. Added info about how to use it in
3239 Holger's suggestions. Added info about how to use it in
3235 PYTHONSTARTUP.
3240 PYTHONSTARTUP.
3236
3241
3237 * IPython/Shell.py (IPythonShell): changed the options passing
3242 * IPython/Shell.py (IPythonShell): changed the options passing
3238 from a string with funky %s replacements to a straight list. Maybe
3243 from a string with funky %s replacements to a straight list. Maybe
3239 a bit more typing, but it follows sys.argv conventions, so there's
3244 a bit more typing, but it follows sys.argv conventions, so there's
3240 less special-casing to remember.
3245 less special-casing to remember.
3241
3246
3242 2002-06-12 Fernando Perez <fperez@colorado.edu>
3247 2002-06-12 Fernando Perez <fperez@colorado.edu>
3243
3248
3244 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3249 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3245 command. Thanks to a suggestion by Mike Heeter.
3250 command. Thanks to a suggestion by Mike Heeter.
3246 (Magic.magic_pfile): added behavior to look at filenames if given
3251 (Magic.magic_pfile): added behavior to look at filenames if given
3247 arg is not a defined object.
3252 arg is not a defined object.
3248 (Magic.magic_save): New @save function to save code snippets. Also
3253 (Magic.magic_save): New @save function to save code snippets. Also
3249 a Mike Heeter idea.
3254 a Mike Heeter idea.
3250
3255
3251 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3256 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3252 plot() and replot(). Much more convenient now, especially for
3257 plot() and replot(). Much more convenient now, especially for
3253 interactive use.
3258 interactive use.
3254
3259
3255 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3260 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3256 filenames.
3261 filenames.
3257
3262
3258 2002-06-02 Fernando Perez <fperez@colorado.edu>
3263 2002-06-02 Fernando Perez <fperez@colorado.edu>
3259
3264
3260 * IPython/Struct.py (Struct.__init__): modified to admit
3265 * IPython/Struct.py (Struct.__init__): modified to admit
3261 initialization via another struct.
3266 initialization via another struct.
3262
3267
3263 * IPython/genutils.py (SystemExec.__init__): New stateful
3268 * IPython/genutils.py (SystemExec.__init__): New stateful
3264 interface to xsys and bq. Useful for writing system scripts.
3269 interface to xsys and bq. Useful for writing system scripts.
3265
3270
3266 2002-05-30 Fernando Perez <fperez@colorado.edu>
3271 2002-05-30 Fernando Perez <fperez@colorado.edu>
3267
3272
3268 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3273 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3269 documents. This will make the user download smaller (it's getting
3274 documents. This will make the user download smaller (it's getting
3270 too big).
3275 too big).
3271
3276
3272 2002-05-29 Fernando Perez <fperez@colorado.edu>
3277 2002-05-29 Fernando Perez <fperez@colorado.edu>
3273
3278
3274 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3279 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3275 fix problems with shelve and pickle. Seems to work, but I don't
3280 fix problems with shelve and pickle. Seems to work, but I don't
3276 know if corner cases break it. Thanks to Mike Heeter
3281 know if corner cases break it. Thanks to Mike Heeter
3277 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3282 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3278
3283
3279 2002-05-24 Fernando Perez <fperez@colorado.edu>
3284 2002-05-24 Fernando Perez <fperez@colorado.edu>
3280
3285
3281 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3286 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3282 macros having broken.
3287 macros having broken.
3283
3288
3284 2002-05-21 Fernando Perez <fperez@colorado.edu>
3289 2002-05-21 Fernando Perez <fperez@colorado.edu>
3285
3290
3286 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3291 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3287 introduced logging bug: all history before logging started was
3292 introduced logging bug: all history before logging started was
3288 being written one character per line! This came from the redesign
3293 being written one character per line! This came from the redesign
3289 of the input history as a special list which slices to strings,
3294 of the input history as a special list which slices to strings,
3290 not to lists.
3295 not to lists.
3291
3296
3292 2002-05-20 Fernando Perez <fperez@colorado.edu>
3297 2002-05-20 Fernando Perez <fperez@colorado.edu>
3293
3298
3294 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3299 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3295 be an attribute of all classes in this module. The design of these
3300 be an attribute of all classes in this module. The design of these
3296 classes needs some serious overhauling.
3301 classes needs some serious overhauling.
3297
3302
3298 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3303 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3299 which was ignoring '_' in option names.
3304 which was ignoring '_' in option names.
3300
3305
3301 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3306 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3302 'Verbose_novars' to 'Context' and made it the new default. It's a
3307 'Verbose_novars' to 'Context' and made it the new default. It's a
3303 bit more readable and also safer than verbose.
3308 bit more readable and also safer than verbose.
3304
3309
3305 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3310 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3306 triple-quoted strings.
3311 triple-quoted strings.
3307
3312
3308 * IPython/OInspect.py (__all__): new module exposing the object
3313 * IPython/OInspect.py (__all__): new module exposing the object
3309 introspection facilities. Now the corresponding magics are dummy
3314 introspection facilities. Now the corresponding magics are dummy
3310 wrappers around this. Having this module will make it much easier
3315 wrappers around this. Having this module will make it much easier
3311 to put these functions into our modified pdb.
3316 to put these functions into our modified pdb.
3312 This new object inspector system uses the new colorizing module,
3317 This new object inspector system uses the new colorizing module,
3313 so source code and other things are nicely syntax highlighted.
3318 so source code and other things are nicely syntax highlighted.
3314
3319
3315 2002-05-18 Fernando Perez <fperez@colorado.edu>
3320 2002-05-18 Fernando Perez <fperez@colorado.edu>
3316
3321
3317 * IPython/ColorANSI.py: Split the coloring tools into a separate
3322 * IPython/ColorANSI.py: Split the coloring tools into a separate
3318 module so I can use them in other code easier (they were part of
3323 module so I can use them in other code easier (they were part of
3319 ultraTB).
3324 ultraTB).
3320
3325
3321 2002-05-17 Fernando Perez <fperez@colorado.edu>
3326 2002-05-17 Fernando Perez <fperez@colorado.edu>
3322
3327
3323 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3328 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3324 fixed it to set the global 'g' also to the called instance, as
3329 fixed it to set the global 'g' also to the called instance, as
3325 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3330 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3326 user's 'g' variables).
3331 user's 'g' variables).
3327
3332
3328 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3333 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3329 global variables (aliases to _ih,_oh) so that users which expect
3334 global variables (aliases to _ih,_oh) so that users which expect
3330 In[5] or Out[7] to work aren't unpleasantly surprised.
3335 In[5] or Out[7] to work aren't unpleasantly surprised.
3331 (InputList.__getslice__): new class to allow executing slices of
3336 (InputList.__getslice__): new class to allow executing slices of
3332 input history directly. Very simple class, complements the use of
3337 input history directly. Very simple class, complements the use of
3333 macros.
3338 macros.
3334
3339
3335 2002-05-16 Fernando Perez <fperez@colorado.edu>
3340 2002-05-16 Fernando Perez <fperez@colorado.edu>
3336
3341
3337 * setup.py (docdirbase): make doc directory be just doc/IPython
3342 * setup.py (docdirbase): make doc directory be just doc/IPython
3338 without version numbers, it will reduce clutter for users.
3343 without version numbers, it will reduce clutter for users.
3339
3344
3340 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3345 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3341 execfile call to prevent possible memory leak. See for details:
3346 execfile call to prevent possible memory leak. See for details:
3342 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3347 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3343
3348
3344 2002-05-15 Fernando Perez <fperez@colorado.edu>
3349 2002-05-15 Fernando Perez <fperez@colorado.edu>
3345
3350
3346 * IPython/Magic.py (Magic.magic_psource): made the object
3351 * IPython/Magic.py (Magic.magic_psource): made the object
3347 introspection names be more standard: pdoc, pdef, pfile and
3352 introspection names be more standard: pdoc, pdef, pfile and
3348 psource. They all print/page their output, and it makes
3353 psource. They all print/page their output, and it makes
3349 remembering them easier. Kept old names for compatibility as
3354 remembering them easier. Kept old names for compatibility as
3350 aliases.
3355 aliases.
3351
3356
3352 2002-05-14 Fernando Perez <fperez@colorado.edu>
3357 2002-05-14 Fernando Perez <fperez@colorado.edu>
3353
3358
3354 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3359 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3355 what the mouse problem was. The trick is to use gnuplot with temp
3360 what the mouse problem was. The trick is to use gnuplot with temp
3356 files and NOT with pipes (for data communication), because having
3361 files and NOT with pipes (for data communication), because having
3357 both pipes and the mouse on is bad news.
3362 both pipes and the mouse on is bad news.
3358
3363
3359 2002-05-13 Fernando Perez <fperez@colorado.edu>
3364 2002-05-13 Fernando Perez <fperez@colorado.edu>
3360
3365
3361 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3366 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3362 bug. Information would be reported about builtins even when
3367 bug. Information would be reported about builtins even when
3363 user-defined functions overrode them.
3368 user-defined functions overrode them.
3364
3369
3365 2002-05-11 Fernando Perez <fperez@colorado.edu>
3370 2002-05-11 Fernando Perez <fperez@colorado.edu>
3366
3371
3367 * IPython/__init__.py (__all__): removed FlexCompleter from
3372 * IPython/__init__.py (__all__): removed FlexCompleter from
3368 __all__ so that things don't fail in platforms without readline.
3373 __all__ so that things don't fail in platforms without readline.
3369
3374
3370 2002-05-10 Fernando Perez <fperez@colorado.edu>
3375 2002-05-10 Fernando Perez <fperez@colorado.edu>
3371
3376
3372 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3377 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3373 it requires Numeric, effectively making Numeric a dependency for
3378 it requires Numeric, effectively making Numeric a dependency for
3374 IPython.
3379 IPython.
3375
3380
3376 * Released 0.2.13
3381 * Released 0.2.13
3377
3382
3378 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3383 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3379 profiler interface. Now all the major options from the profiler
3384 profiler interface. Now all the major options from the profiler
3380 module are directly supported in IPython, both for single
3385 module are directly supported in IPython, both for single
3381 expressions (@prun) and for full programs (@run -p).
3386 expressions (@prun) and for full programs (@run -p).
3382
3387
3383 2002-05-09 Fernando Perez <fperez@colorado.edu>
3388 2002-05-09 Fernando Perez <fperez@colorado.edu>
3384
3389
3385 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3390 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3386 magic properly formatted for screen.
3391 magic properly formatted for screen.
3387
3392
3388 * setup.py (make_shortcut): Changed things to put pdf version in
3393 * setup.py (make_shortcut): Changed things to put pdf version in
3389 doc/ instead of doc/manual (had to change lyxport a bit).
3394 doc/ instead of doc/manual (had to change lyxport a bit).
3390
3395
3391 * IPython/Magic.py (Profile.string_stats): made profile runs go
3396 * IPython/Magic.py (Profile.string_stats): made profile runs go
3392 through pager (they are long and a pager allows searching, saving,
3397 through pager (they are long and a pager allows searching, saving,
3393 etc.)
3398 etc.)
3394
3399
3395 2002-05-08 Fernando Perez <fperez@colorado.edu>
3400 2002-05-08 Fernando Perez <fperez@colorado.edu>
3396
3401
3397 * Released 0.2.12
3402 * Released 0.2.12
3398
3403
3399 2002-05-06 Fernando Perez <fperez@colorado.edu>
3404 2002-05-06 Fernando Perez <fperez@colorado.edu>
3400
3405
3401 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3406 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3402 introduced); 'hist n1 n2' was broken.
3407 introduced); 'hist n1 n2' was broken.
3403 (Magic.magic_pdb): added optional on/off arguments to @pdb
3408 (Magic.magic_pdb): added optional on/off arguments to @pdb
3404 (Magic.magic_run): added option -i to @run, which executes code in
3409 (Magic.magic_run): added option -i to @run, which executes code in
3405 the IPython namespace instead of a clean one. Also added @irun as
3410 the IPython namespace instead of a clean one. Also added @irun as
3406 an alias to @run -i.
3411 an alias to @run -i.
3407
3412
3408 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3413 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3409 fixed (it didn't really do anything, the namespaces were wrong).
3414 fixed (it didn't really do anything, the namespaces were wrong).
3410
3415
3411 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3416 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3412
3417
3413 * IPython/__init__.py (__all__): Fixed package namespace, now
3418 * IPython/__init__.py (__all__): Fixed package namespace, now
3414 'import IPython' does give access to IPython.<all> as
3419 'import IPython' does give access to IPython.<all> as
3415 expected. Also renamed __release__ to Release.
3420 expected. Also renamed __release__ to Release.
3416
3421
3417 * IPython/Debugger.py (__license__): created new Pdb class which
3422 * IPython/Debugger.py (__license__): created new Pdb class which
3418 functions like a drop-in for the normal pdb.Pdb but does NOT
3423 functions like a drop-in for the normal pdb.Pdb but does NOT
3419 import readline by default. This way it doesn't muck up IPython's
3424 import readline by default. This way it doesn't muck up IPython's
3420 readline handling, and now tab-completion finally works in the
3425 readline handling, and now tab-completion finally works in the
3421 debugger -- sort of. It completes things globally visible, but the
3426 debugger -- sort of. It completes things globally visible, but the
3422 completer doesn't track the stack as pdb walks it. That's a bit
3427 completer doesn't track the stack as pdb walks it. That's a bit
3423 tricky, and I'll have to implement it later.
3428 tricky, and I'll have to implement it later.
3424
3429
3425 2002-05-05 Fernando Perez <fperez@colorado.edu>
3430 2002-05-05 Fernando Perez <fperez@colorado.edu>
3426
3431
3427 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3432 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3428 magic docstrings when printed via ? (explicit \'s were being
3433 magic docstrings when printed via ? (explicit \'s were being
3429 printed).
3434 printed).
3430
3435
3431 * IPython/ipmaker.py (make_IPython): fixed namespace
3436 * IPython/ipmaker.py (make_IPython): fixed namespace
3432 identification bug. Now variables loaded via logs or command-line
3437 identification bug. Now variables loaded via logs or command-line
3433 files are recognized in the interactive namespace by @who.
3438 files are recognized in the interactive namespace by @who.
3434
3439
3435 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3440 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3436 log replay system stemming from the string form of Structs.
3441 log replay system stemming from the string form of Structs.
3437
3442
3438 * IPython/Magic.py (Macro.__init__): improved macros to properly
3443 * IPython/Magic.py (Macro.__init__): improved macros to properly
3439 handle magic commands in them.
3444 handle magic commands in them.
3440 (Magic.magic_logstart): usernames are now expanded so 'logstart
3445 (Magic.magic_logstart): usernames are now expanded so 'logstart
3441 ~/mylog' now works.
3446 ~/mylog' now works.
3442
3447
3443 * IPython/iplib.py (complete): fixed bug where paths starting with
3448 * IPython/iplib.py (complete): fixed bug where paths starting with
3444 '/' would be completed as magic names.
3449 '/' would be completed as magic names.
3445
3450
3446 2002-05-04 Fernando Perez <fperez@colorado.edu>
3451 2002-05-04 Fernando Perez <fperez@colorado.edu>
3447
3452
3448 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3453 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3449 allow running full programs under the profiler's control.
3454 allow running full programs under the profiler's control.
3450
3455
3451 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3456 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3452 mode to report exceptions verbosely but without formatting
3457 mode to report exceptions verbosely but without formatting
3453 variables. This addresses the issue of ipython 'freezing' (it's
3458 variables. This addresses the issue of ipython 'freezing' (it's
3454 not frozen, but caught in an expensive formatting loop) when huge
3459 not frozen, but caught in an expensive formatting loop) when huge
3455 variables are in the context of an exception.
3460 variables are in the context of an exception.
3456 (VerboseTB.text): Added '--->' markers at line where exception was
3461 (VerboseTB.text): Added '--->' markers at line where exception was
3457 triggered. Much clearer to read, especially in NoColor modes.
3462 triggered. Much clearer to read, especially in NoColor modes.
3458
3463
3459 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3464 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3460 implemented in reverse when changing to the new parse_options().
3465 implemented in reverse when changing to the new parse_options().
3461
3466
3462 2002-05-03 Fernando Perez <fperez@colorado.edu>
3467 2002-05-03 Fernando Perez <fperez@colorado.edu>
3463
3468
3464 * IPython/Magic.py (Magic.parse_options): new function so that
3469 * IPython/Magic.py (Magic.parse_options): new function so that
3465 magics can parse options easier.
3470 magics can parse options easier.
3466 (Magic.magic_prun): new function similar to profile.run(),
3471 (Magic.magic_prun): new function similar to profile.run(),
3467 suggested by Chris Hart.
3472 suggested by Chris Hart.
3468 (Magic.magic_cd): fixed behavior so that it only changes if
3473 (Magic.magic_cd): fixed behavior so that it only changes if
3469 directory actually is in history.
3474 directory actually is in history.
3470
3475
3471 * IPython/usage.py (__doc__): added information about potential
3476 * IPython/usage.py (__doc__): added information about potential
3472 slowness of Verbose exception mode when there are huge data
3477 slowness of Verbose exception mode when there are huge data
3473 structures to be formatted (thanks to Archie Paulson).
3478 structures to be formatted (thanks to Archie Paulson).
3474
3479
3475 * IPython/ipmaker.py (make_IPython): Changed default logging
3480 * IPython/ipmaker.py (make_IPython): Changed default logging
3476 (when simply called with -log) to use curr_dir/ipython.log in
3481 (when simply called with -log) to use curr_dir/ipython.log in
3477 rotate mode. Fixed crash which was occuring with -log before
3482 rotate mode. Fixed crash which was occuring with -log before
3478 (thanks to Jim Boyle).
3483 (thanks to Jim Boyle).
3479
3484
3480 2002-05-01 Fernando Perez <fperez@colorado.edu>
3485 2002-05-01 Fernando Perez <fperez@colorado.edu>
3481
3486
3482 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3487 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3483 was nasty -- though somewhat of a corner case).
3488 was nasty -- though somewhat of a corner case).
3484
3489
3485 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3490 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3486 text (was a bug).
3491 text (was a bug).
3487
3492
3488 2002-04-30 Fernando Perez <fperez@colorado.edu>
3493 2002-04-30 Fernando Perez <fperez@colorado.edu>
3489
3494
3490 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3495 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3491 a print after ^D or ^C from the user so that the In[] prompt
3496 a print after ^D or ^C from the user so that the In[] prompt
3492 doesn't over-run the gnuplot one.
3497 doesn't over-run the gnuplot one.
3493
3498
3494 2002-04-29 Fernando Perez <fperez@colorado.edu>
3499 2002-04-29 Fernando Perez <fperez@colorado.edu>
3495
3500
3496 * Released 0.2.10
3501 * Released 0.2.10
3497
3502
3498 * IPython/__release__.py (version): get date dynamically.
3503 * IPython/__release__.py (version): get date dynamically.
3499
3504
3500 * Misc. documentation updates thanks to Arnd's comments. Also ran
3505 * Misc. documentation updates thanks to Arnd's comments. Also ran
3501 a full spellcheck on the manual (hadn't been done in a while).
3506 a full spellcheck on the manual (hadn't been done in a while).
3502
3507
3503 2002-04-27 Fernando Perez <fperez@colorado.edu>
3508 2002-04-27 Fernando Perez <fperez@colorado.edu>
3504
3509
3505 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3510 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3506 starting a log in mid-session would reset the input history list.
3511 starting a log in mid-session would reset the input history list.
3507
3512
3508 2002-04-26 Fernando Perez <fperez@colorado.edu>
3513 2002-04-26 Fernando Perez <fperez@colorado.edu>
3509
3514
3510 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3515 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3511 all files were being included in an update. Now anything in
3516 all files were being included in an update. Now anything in
3512 UserConfig that matches [A-Za-z]*.py will go (this excludes
3517 UserConfig that matches [A-Za-z]*.py will go (this excludes
3513 __init__.py)
3518 __init__.py)
3514
3519
3515 2002-04-25 Fernando Perez <fperez@colorado.edu>
3520 2002-04-25 Fernando Perez <fperez@colorado.edu>
3516
3521
3517 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3522 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3518 to __builtins__ so that any form of embedded or imported code can
3523 to __builtins__ so that any form of embedded or imported code can
3519 test for being inside IPython.
3524 test for being inside IPython.
3520
3525
3521 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3526 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3522 changed to GnuplotMagic because it's now an importable module,
3527 changed to GnuplotMagic because it's now an importable module,
3523 this makes the name follow that of the standard Gnuplot module.
3528 this makes the name follow that of the standard Gnuplot module.
3524 GnuplotMagic can now be loaded at any time in mid-session.
3529 GnuplotMagic can now be loaded at any time in mid-session.
3525
3530
3526 2002-04-24 Fernando Perez <fperez@colorado.edu>
3531 2002-04-24 Fernando Perez <fperez@colorado.edu>
3527
3532
3528 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3533 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3529 the globals (IPython has its own namespace) and the
3534 the globals (IPython has its own namespace) and the
3530 PhysicalQuantity stuff is much better anyway.
3535 PhysicalQuantity stuff is much better anyway.
3531
3536
3532 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3537 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3533 embedding example to standard user directory for
3538 embedding example to standard user directory for
3534 distribution. Also put it in the manual.
3539 distribution. Also put it in the manual.
3535
3540
3536 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3541 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3537 instance as first argument (so it doesn't rely on some obscure
3542 instance as first argument (so it doesn't rely on some obscure
3538 hidden global).
3543 hidden global).
3539
3544
3540 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3545 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3541 delimiters. While it prevents ().TAB from working, it allows
3546 delimiters. While it prevents ().TAB from working, it allows
3542 completions in open (... expressions. This is by far a more common
3547 completions in open (... expressions. This is by far a more common
3543 case.
3548 case.
3544
3549
3545 2002-04-23 Fernando Perez <fperez@colorado.edu>
3550 2002-04-23 Fernando Perez <fperez@colorado.edu>
3546
3551
3547 * IPython/Extensions/InterpreterPasteInput.py: new
3552 * IPython/Extensions/InterpreterPasteInput.py: new
3548 syntax-processing module for pasting lines with >>> or ... at the
3553 syntax-processing module for pasting lines with >>> or ... at the
3549 start.
3554 start.
3550
3555
3551 * IPython/Extensions/PhysicalQ_Interactive.py
3556 * IPython/Extensions/PhysicalQ_Interactive.py
3552 (PhysicalQuantityInteractive.__int__): fixed to work with either
3557 (PhysicalQuantityInteractive.__int__): fixed to work with either
3553 Numeric or math.
3558 Numeric or math.
3554
3559
3555 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3560 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3556 provided profiles. Now we have:
3561 provided profiles. Now we have:
3557 -math -> math module as * and cmath with its own namespace.
3562 -math -> math module as * and cmath with its own namespace.
3558 -numeric -> Numeric as *, plus gnuplot & grace
3563 -numeric -> Numeric as *, plus gnuplot & grace
3559 -physics -> same as before
3564 -physics -> same as before
3560
3565
3561 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3566 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3562 user-defined magics wouldn't be found by @magic if they were
3567 user-defined magics wouldn't be found by @magic if they were
3563 defined as class methods. Also cleaned up the namespace search
3568 defined as class methods. Also cleaned up the namespace search
3564 logic and the string building (to use %s instead of many repeated
3569 logic and the string building (to use %s instead of many repeated
3565 string adds).
3570 string adds).
3566
3571
3567 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3572 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3568 of user-defined magics to operate with class methods (cleaner, in
3573 of user-defined magics to operate with class methods (cleaner, in
3569 line with the gnuplot code).
3574 line with the gnuplot code).
3570
3575
3571 2002-04-22 Fernando Perez <fperez@colorado.edu>
3576 2002-04-22 Fernando Perez <fperez@colorado.edu>
3572
3577
3573 * setup.py: updated dependency list so that manual is updated when
3578 * setup.py: updated dependency list so that manual is updated when
3574 all included files change.
3579 all included files change.
3575
3580
3576 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3581 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3577 the delimiter removal option (the fix is ugly right now).
3582 the delimiter removal option (the fix is ugly right now).
3578
3583
3579 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3584 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3580 all of the math profile (quicker loading, no conflict between
3585 all of the math profile (quicker loading, no conflict between
3581 g-9.8 and g-gnuplot).
3586 g-9.8 and g-gnuplot).
3582
3587
3583 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3588 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3584 name of post-mortem files to IPython_crash_report.txt.
3589 name of post-mortem files to IPython_crash_report.txt.
3585
3590
3586 * Cleanup/update of the docs. Added all the new readline info and
3591 * Cleanup/update of the docs. Added all the new readline info and
3587 formatted all lists as 'real lists'.
3592 formatted all lists as 'real lists'.
3588
3593
3589 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3594 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3590 tab-completion options, since the full readline parse_and_bind is
3595 tab-completion options, since the full readline parse_and_bind is
3591 now accessible.
3596 now accessible.
3592
3597
3593 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3598 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3594 handling of readline options. Now users can specify any string to
3599 handling of readline options. Now users can specify any string to
3595 be passed to parse_and_bind(), as well as the delimiters to be
3600 be passed to parse_and_bind(), as well as the delimiters to be
3596 removed.
3601 removed.
3597 (InteractiveShell.__init__): Added __name__ to the global
3602 (InteractiveShell.__init__): Added __name__ to the global
3598 namespace so that things like Itpl which rely on its existence
3603 namespace so that things like Itpl which rely on its existence
3599 don't crash.
3604 don't crash.
3600 (InteractiveShell._prefilter): Defined the default with a _ so
3605 (InteractiveShell._prefilter): Defined the default with a _ so
3601 that prefilter() is easier to override, while the default one
3606 that prefilter() is easier to override, while the default one
3602 remains available.
3607 remains available.
3603
3608
3604 2002-04-18 Fernando Perez <fperez@colorado.edu>
3609 2002-04-18 Fernando Perez <fperez@colorado.edu>
3605
3610
3606 * Added information about pdb in the docs.
3611 * Added information about pdb in the docs.
3607
3612
3608 2002-04-17 Fernando Perez <fperez@colorado.edu>
3613 2002-04-17 Fernando Perez <fperez@colorado.edu>
3609
3614
3610 * IPython/ipmaker.py (make_IPython): added rc_override option to
3615 * IPython/ipmaker.py (make_IPython): added rc_override option to
3611 allow passing config options at creation time which may override
3616 allow passing config options at creation time which may override
3612 anything set in the config files or command line. This is
3617 anything set in the config files or command line. This is
3613 particularly useful for configuring embedded instances.
3618 particularly useful for configuring embedded instances.
3614
3619
3615 2002-04-15 Fernando Perez <fperez@colorado.edu>
3620 2002-04-15 Fernando Perez <fperez@colorado.edu>
3616
3621
3617 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3622 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3618 crash embedded instances because of the input cache falling out of
3623 crash embedded instances because of the input cache falling out of
3619 sync with the output counter.
3624 sync with the output counter.
3620
3625
3621 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3626 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3622 mode which calls pdb after an uncaught exception in IPython itself.
3627 mode which calls pdb after an uncaught exception in IPython itself.
3623
3628
3624 2002-04-14 Fernando Perez <fperez@colorado.edu>
3629 2002-04-14 Fernando Perez <fperez@colorado.edu>
3625
3630
3626 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3631 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3627 readline, fix it back after each call.
3632 readline, fix it back after each call.
3628
3633
3629 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3634 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3630 method to force all access via __call__(), which guarantees that
3635 method to force all access via __call__(), which guarantees that
3631 traceback references are properly deleted.
3636 traceback references are properly deleted.
3632
3637
3633 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3638 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3634 improve printing when pprint is in use.
3639 improve printing when pprint is in use.
3635
3640
3636 2002-04-13 Fernando Perez <fperez@colorado.edu>
3641 2002-04-13 Fernando Perez <fperez@colorado.edu>
3637
3642
3638 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3643 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3639 exceptions aren't caught anymore. If the user triggers one, he
3644 exceptions aren't caught anymore. If the user triggers one, he
3640 should know why he's doing it and it should go all the way up,
3645 should know why he's doing it and it should go all the way up,
3641 just like any other exception. So now @abort will fully kill the
3646 just like any other exception. So now @abort will fully kill the
3642 embedded interpreter and the embedding code (unless that happens
3647 embedded interpreter and the embedding code (unless that happens
3643 to catch SystemExit).
3648 to catch SystemExit).
3644
3649
3645 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3650 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3646 and a debugger() method to invoke the interactive pdb debugger
3651 and a debugger() method to invoke the interactive pdb debugger
3647 after printing exception information. Also added the corresponding
3652 after printing exception information. Also added the corresponding
3648 -pdb option and @pdb magic to control this feature, and updated
3653 -pdb option and @pdb magic to control this feature, and updated
3649 the docs. After a suggestion from Christopher Hart
3654 the docs. After a suggestion from Christopher Hart
3650 (hart-AT-caltech.edu).
3655 (hart-AT-caltech.edu).
3651
3656
3652 2002-04-12 Fernando Perez <fperez@colorado.edu>
3657 2002-04-12 Fernando Perez <fperez@colorado.edu>
3653
3658
3654 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3659 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3655 the exception handlers defined by the user (not the CrashHandler)
3660 the exception handlers defined by the user (not the CrashHandler)
3656 so that user exceptions don't trigger an ipython bug report.
3661 so that user exceptions don't trigger an ipython bug report.
3657
3662
3658 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3663 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3659 configurable (it should have always been so).
3664 configurable (it should have always been so).
3660
3665
3661 2002-03-26 Fernando Perez <fperez@colorado.edu>
3666 2002-03-26 Fernando Perez <fperez@colorado.edu>
3662
3667
3663 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3668 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3664 and there to fix embedding namespace issues. This should all be
3669 and there to fix embedding namespace issues. This should all be
3665 done in a more elegant way.
3670 done in a more elegant way.
3666
3671
3667 2002-03-25 Fernando Perez <fperez@colorado.edu>
3672 2002-03-25 Fernando Perez <fperez@colorado.edu>
3668
3673
3669 * IPython/genutils.py (get_home_dir): Try to make it work under
3674 * IPython/genutils.py (get_home_dir): Try to make it work under
3670 win9x also.
3675 win9x also.
3671
3676
3672 2002-03-20 Fernando Perez <fperez@colorado.edu>
3677 2002-03-20 Fernando Perez <fperez@colorado.edu>
3673
3678
3674 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3679 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3675 sys.displayhook untouched upon __init__.
3680 sys.displayhook untouched upon __init__.
3676
3681
3677 2002-03-19 Fernando Perez <fperez@colorado.edu>
3682 2002-03-19 Fernando Perez <fperez@colorado.edu>
3678
3683
3679 * Released 0.2.9 (for embedding bug, basically).
3684 * Released 0.2.9 (for embedding bug, basically).
3680
3685
3681 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3686 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3682 exceptions so that enclosing shell's state can be restored.
3687 exceptions so that enclosing shell's state can be restored.
3683
3688
3684 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3689 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3685 naming conventions in the .ipython/ dir.
3690 naming conventions in the .ipython/ dir.
3686
3691
3687 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3692 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3688 from delimiters list so filenames with - in them get expanded.
3693 from delimiters list so filenames with - in them get expanded.
3689
3694
3690 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3695 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3691 sys.displayhook not being properly restored after an embedded call.
3696 sys.displayhook not being properly restored after an embedded call.
3692
3697
3693 2002-03-18 Fernando Perez <fperez@colorado.edu>
3698 2002-03-18 Fernando Perez <fperez@colorado.edu>
3694
3699
3695 * Released 0.2.8
3700 * Released 0.2.8
3696
3701
3697 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3702 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3698 some files weren't being included in a -upgrade.
3703 some files weren't being included in a -upgrade.
3699 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3704 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3700 on' so that the first tab completes.
3705 on' so that the first tab completes.
3701 (InteractiveShell.handle_magic): fixed bug with spaces around
3706 (InteractiveShell.handle_magic): fixed bug with spaces around
3702 quotes breaking many magic commands.
3707 quotes breaking many magic commands.
3703
3708
3704 * setup.py: added note about ignoring the syntax error messages at
3709 * setup.py: added note about ignoring the syntax error messages at
3705 installation.
3710 installation.
3706
3711
3707 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3712 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3708 streamlining the gnuplot interface, now there's only one magic @gp.
3713 streamlining the gnuplot interface, now there's only one magic @gp.
3709
3714
3710 2002-03-17 Fernando Perez <fperez@colorado.edu>
3715 2002-03-17 Fernando Perez <fperez@colorado.edu>
3711
3716
3712 * IPython/UserConfig/magic_gnuplot.py: new name for the
3717 * IPython/UserConfig/magic_gnuplot.py: new name for the
3713 example-magic_pm.py file. Much enhanced system, now with a shell
3718 example-magic_pm.py file. Much enhanced system, now with a shell
3714 for communicating directly with gnuplot, one command at a time.
3719 for communicating directly with gnuplot, one command at a time.
3715
3720
3716 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3721 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3717 setting __name__=='__main__'.
3722 setting __name__=='__main__'.
3718
3723
3719 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3724 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3720 mini-shell for accessing gnuplot from inside ipython. Should
3725 mini-shell for accessing gnuplot from inside ipython. Should
3721 extend it later for grace access too. Inspired by Arnd's
3726 extend it later for grace access too. Inspired by Arnd's
3722 suggestion.
3727 suggestion.
3723
3728
3724 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3729 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3725 calling magic functions with () in their arguments. Thanks to Arnd
3730 calling magic functions with () in their arguments. Thanks to Arnd
3726 Baecker for pointing this to me.
3731 Baecker for pointing this to me.
3727
3732
3728 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3733 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3729 infinitely for integer or complex arrays (only worked with floats).
3734 infinitely for integer or complex arrays (only worked with floats).
3730
3735
3731 2002-03-16 Fernando Perez <fperez@colorado.edu>
3736 2002-03-16 Fernando Perez <fperez@colorado.edu>
3732
3737
3733 * setup.py: Merged setup and setup_windows into a single script
3738 * setup.py: Merged setup and setup_windows into a single script
3734 which properly handles things for windows users.
3739 which properly handles things for windows users.
3735
3740
3736 2002-03-15 Fernando Perez <fperez@colorado.edu>
3741 2002-03-15 Fernando Perez <fperez@colorado.edu>
3737
3742
3738 * Big change to the manual: now the magics are all automatically
3743 * Big change to the manual: now the magics are all automatically
3739 documented. This information is generated from their docstrings
3744 documented. This information is generated from their docstrings
3740 and put in a latex file included by the manual lyx file. This way
3745 and put in a latex file included by the manual lyx file. This way
3741 we get always up to date information for the magics. The manual
3746 we get always up to date information for the magics. The manual
3742 now also has proper version information, also auto-synced.
3747 now also has proper version information, also auto-synced.
3743
3748
3744 For this to work, an undocumented --magic_docstrings option was added.
3749 For this to work, an undocumented --magic_docstrings option was added.
3745
3750
3746 2002-03-13 Fernando Perez <fperez@colorado.edu>
3751 2002-03-13 Fernando Perez <fperez@colorado.edu>
3747
3752
3748 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3753 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3749 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3754 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3750
3755
3751 2002-03-12 Fernando Perez <fperez@colorado.edu>
3756 2002-03-12 Fernando Perez <fperez@colorado.edu>
3752
3757
3753 * IPython/ultraTB.py (TermColors): changed color escapes again to
3758 * IPython/ultraTB.py (TermColors): changed color escapes again to
3754 fix the (old, reintroduced) line-wrapping bug. Basically, if
3759 fix the (old, reintroduced) line-wrapping bug. Basically, if
3755 \001..\002 aren't given in the color escapes, lines get wrapped
3760 \001..\002 aren't given in the color escapes, lines get wrapped
3756 weirdly. But giving those screws up old xterms and emacs terms. So
3761 weirdly. But giving those screws up old xterms and emacs terms. So
3757 I added some logic for emacs terms to be ok, but I can't identify old
3762 I added some logic for emacs terms to be ok, but I can't identify old
3758 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3763 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3759
3764
3760 2002-03-10 Fernando Perez <fperez@colorado.edu>
3765 2002-03-10 Fernando Perez <fperez@colorado.edu>
3761
3766
3762 * IPython/usage.py (__doc__): Various documentation cleanups and
3767 * IPython/usage.py (__doc__): Various documentation cleanups and
3763 updates, both in usage docstrings and in the manual.
3768 updates, both in usage docstrings and in the manual.
3764
3769
3765 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3770 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3766 handling of caching. Set minimum acceptabe value for having a
3771 handling of caching. Set minimum acceptabe value for having a
3767 cache at 20 values.
3772 cache at 20 values.
3768
3773
3769 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3774 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3770 install_first_time function to a method, renamed it and added an
3775 install_first_time function to a method, renamed it and added an
3771 'upgrade' mode. Now people can update their config directory with
3776 'upgrade' mode. Now people can update their config directory with
3772 a simple command line switch (-upgrade, also new).
3777 a simple command line switch (-upgrade, also new).
3773
3778
3774 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3779 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3775 @file (convenient for automagic users under Python >= 2.2).
3780 @file (convenient for automagic users under Python >= 2.2).
3776 Removed @files (it seemed more like a plural than an abbrev. of
3781 Removed @files (it seemed more like a plural than an abbrev. of
3777 'file show').
3782 'file show').
3778
3783
3779 * IPython/iplib.py (install_first_time): Fixed crash if there were
3784 * IPython/iplib.py (install_first_time): Fixed crash if there were
3780 backup files ('~') in .ipython/ install directory.
3785 backup files ('~') in .ipython/ install directory.
3781
3786
3782 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3787 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3783 system. Things look fine, but these changes are fairly
3788 system. Things look fine, but these changes are fairly
3784 intrusive. Test them for a few days.
3789 intrusive. Test them for a few days.
3785
3790
3786 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3791 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3787 the prompts system. Now all in/out prompt strings are user
3792 the prompts system. Now all in/out prompt strings are user
3788 controllable. This is particularly useful for embedding, as one
3793 controllable. This is particularly useful for embedding, as one
3789 can tag embedded instances with particular prompts.
3794 can tag embedded instances with particular prompts.
3790
3795
3791 Also removed global use of sys.ps1/2, which now allows nested
3796 Also removed global use of sys.ps1/2, which now allows nested
3792 embeddings without any problems. Added command-line options for
3797 embeddings without any problems. Added command-line options for
3793 the prompt strings.
3798 the prompt strings.
3794
3799
3795 2002-03-08 Fernando Perez <fperez@colorado.edu>
3800 2002-03-08 Fernando Perez <fperez@colorado.edu>
3796
3801
3797 * IPython/UserConfig/example-embed-short.py (ipshell): added
3802 * IPython/UserConfig/example-embed-short.py (ipshell): added
3798 example file with the bare minimum code for embedding.
3803 example file with the bare minimum code for embedding.
3799
3804
3800 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3805 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3801 functionality for the embeddable shell to be activated/deactivated
3806 functionality for the embeddable shell to be activated/deactivated
3802 either globally or at each call.
3807 either globally or at each call.
3803
3808
3804 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3809 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3805 rewriting the prompt with '--->' for auto-inputs with proper
3810 rewriting the prompt with '--->' for auto-inputs with proper
3806 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3811 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3807 this is handled by the prompts class itself, as it should.
3812 this is handled by the prompts class itself, as it should.
3808
3813
3809 2002-03-05 Fernando Perez <fperez@colorado.edu>
3814 2002-03-05 Fernando Perez <fperez@colorado.edu>
3810
3815
3811 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3816 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3812 @logstart to avoid name clashes with the math log function.
3817 @logstart to avoid name clashes with the math log function.
3813
3818
3814 * Big updates to X/Emacs section of the manual.
3819 * Big updates to X/Emacs section of the manual.
3815
3820
3816 * Removed ipython_emacs. Milan explained to me how to pass
3821 * Removed ipython_emacs. Milan explained to me how to pass
3817 arguments to ipython through Emacs. Some day I'm going to end up
3822 arguments to ipython through Emacs. Some day I'm going to end up
3818 learning some lisp...
3823 learning some lisp...
3819
3824
3820 2002-03-04 Fernando Perez <fperez@colorado.edu>
3825 2002-03-04 Fernando Perez <fperez@colorado.edu>
3821
3826
3822 * IPython/ipython_emacs: Created script to be used as the
3827 * IPython/ipython_emacs: Created script to be used as the
3823 py-python-command Emacs variable so we can pass IPython
3828 py-python-command Emacs variable so we can pass IPython
3824 parameters. I can't figure out how to tell Emacs directly to pass
3829 parameters. I can't figure out how to tell Emacs directly to pass
3825 parameters to IPython, so a dummy shell script will do it.
3830 parameters to IPython, so a dummy shell script will do it.
3826
3831
3827 Other enhancements made for things to work better under Emacs'
3832 Other enhancements made for things to work better under Emacs'
3828 various types of terminals. Many thanks to Milan Zamazal
3833 various types of terminals. Many thanks to Milan Zamazal
3829 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3834 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3830
3835
3831 2002-03-01 Fernando Perez <fperez@colorado.edu>
3836 2002-03-01 Fernando Perez <fperez@colorado.edu>
3832
3837
3833 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3838 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3834 that loading of readline is now optional. This gives better
3839 that loading of readline is now optional. This gives better
3835 control to emacs users.
3840 control to emacs users.
3836
3841
3837 * IPython/ultraTB.py (__date__): Modified color escape sequences
3842 * IPython/ultraTB.py (__date__): Modified color escape sequences
3838 and now things work fine under xterm and in Emacs' term buffers
3843 and now things work fine under xterm and in Emacs' term buffers
3839 (though not shell ones). Well, in emacs you get colors, but all
3844 (though not shell ones). Well, in emacs you get colors, but all
3840 seem to be 'light' colors (no difference between dark and light
3845 seem to be 'light' colors (no difference between dark and light
3841 ones). But the garbage chars are gone, and also in xterms. It
3846 ones). But the garbage chars are gone, and also in xterms. It
3842 seems that now I'm using 'cleaner' ansi sequences.
3847 seems that now I'm using 'cleaner' ansi sequences.
3843
3848
3844 2002-02-21 Fernando Perez <fperez@colorado.edu>
3849 2002-02-21 Fernando Perez <fperez@colorado.edu>
3845
3850
3846 * Released 0.2.7 (mainly to publish the scoping fix).
3851 * Released 0.2.7 (mainly to publish the scoping fix).
3847
3852
3848 * IPython/Logger.py (Logger.logstate): added. A corresponding
3853 * IPython/Logger.py (Logger.logstate): added. A corresponding
3849 @logstate magic was created.
3854 @logstate magic was created.
3850
3855
3851 * IPython/Magic.py: fixed nested scoping problem under Python
3856 * IPython/Magic.py: fixed nested scoping problem under Python
3852 2.1.x (automagic wasn't working).
3857 2.1.x (automagic wasn't working).
3853
3858
3854 2002-02-20 Fernando Perez <fperez@colorado.edu>
3859 2002-02-20 Fernando Perez <fperez@colorado.edu>
3855
3860
3856 * Released 0.2.6.
3861 * Released 0.2.6.
3857
3862
3858 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3863 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3859 option so that logs can come out without any headers at all.
3864 option so that logs can come out without any headers at all.
3860
3865
3861 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3866 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3862 SciPy.
3867 SciPy.
3863
3868
3864 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3869 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3865 that embedded IPython calls don't require vars() to be explicitly
3870 that embedded IPython calls don't require vars() to be explicitly
3866 passed. Now they are extracted from the caller's frame (code
3871 passed. Now they are extracted from the caller's frame (code
3867 snatched from Eric Jones' weave). Added better documentation to
3872 snatched from Eric Jones' weave). Added better documentation to
3868 the section on embedding and the example file.
3873 the section on embedding and the example file.
3869
3874
3870 * IPython/genutils.py (page): Changed so that under emacs, it just
3875 * IPython/genutils.py (page): Changed so that under emacs, it just
3871 prints the string. You can then page up and down in the emacs
3876 prints the string. You can then page up and down in the emacs
3872 buffer itself. This is how the builtin help() works.
3877 buffer itself. This is how the builtin help() works.
3873
3878
3874 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3879 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3875 macro scoping: macros need to be executed in the user's namespace
3880 macro scoping: macros need to be executed in the user's namespace
3876 to work as if they had been typed by the user.
3881 to work as if they had been typed by the user.
3877
3882
3878 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3883 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3879 execute automatically (no need to type 'exec...'). They then
3884 execute automatically (no need to type 'exec...'). They then
3880 behave like 'true macros'. The printing system was also modified
3885 behave like 'true macros'. The printing system was also modified
3881 for this to work.
3886 for this to work.
3882
3887
3883 2002-02-19 Fernando Perez <fperez@colorado.edu>
3888 2002-02-19 Fernando Perez <fperez@colorado.edu>
3884
3889
3885 * IPython/genutils.py (page_file): new function for paging files
3890 * IPython/genutils.py (page_file): new function for paging files
3886 in an OS-independent way. Also necessary for file viewing to work
3891 in an OS-independent way. Also necessary for file viewing to work
3887 well inside Emacs buffers.
3892 well inside Emacs buffers.
3888 (page): Added checks for being in an emacs buffer.
3893 (page): Added checks for being in an emacs buffer.
3889 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3894 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3890 same bug in iplib.
3895 same bug in iplib.
3891
3896
3892 2002-02-18 Fernando Perez <fperez@colorado.edu>
3897 2002-02-18 Fernando Perez <fperez@colorado.edu>
3893
3898
3894 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3899 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3895 of readline so that IPython can work inside an Emacs buffer.
3900 of readline so that IPython can work inside an Emacs buffer.
3896
3901
3897 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3902 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3898 method signatures (they weren't really bugs, but it looks cleaner
3903 method signatures (they weren't really bugs, but it looks cleaner
3899 and keeps PyChecker happy).
3904 and keeps PyChecker happy).
3900
3905
3901 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3906 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3902 for implementing various user-defined hooks. Currently only
3907 for implementing various user-defined hooks. Currently only
3903 display is done.
3908 display is done.
3904
3909
3905 * IPython/Prompts.py (CachedOutput._display): changed display
3910 * IPython/Prompts.py (CachedOutput._display): changed display
3906 functions so that they can be dynamically changed by users easily.
3911 functions so that they can be dynamically changed by users easily.
3907
3912
3908 * IPython/Extensions/numeric_formats.py (num_display): added an
3913 * IPython/Extensions/numeric_formats.py (num_display): added an
3909 extension for printing NumPy arrays in flexible manners. It
3914 extension for printing NumPy arrays in flexible manners. It
3910 doesn't do anything yet, but all the structure is in
3915 doesn't do anything yet, but all the structure is in
3911 place. Ultimately the plan is to implement output format control
3916 place. Ultimately the plan is to implement output format control
3912 like in Octave.
3917 like in Octave.
3913
3918
3914 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3919 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3915 methods are found at run-time by all the automatic machinery.
3920 methods are found at run-time by all the automatic machinery.
3916
3921
3917 2002-02-17 Fernando Perez <fperez@colorado.edu>
3922 2002-02-17 Fernando Perez <fperez@colorado.edu>
3918
3923
3919 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3924 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3920 whole file a little.
3925 whole file a little.
3921
3926
3922 * ToDo: closed this document. Now there's a new_design.lyx
3927 * ToDo: closed this document. Now there's a new_design.lyx
3923 document for all new ideas. Added making a pdf of it for the
3928 document for all new ideas. Added making a pdf of it for the
3924 end-user distro.
3929 end-user distro.
3925
3930
3926 * IPython/Logger.py (Logger.switch_log): Created this to replace
3931 * IPython/Logger.py (Logger.switch_log): Created this to replace
3927 logon() and logoff(). It also fixes a nasty crash reported by
3932 logon() and logoff(). It also fixes a nasty crash reported by
3928 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3933 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3929
3934
3930 * IPython/iplib.py (complete): got auto-completion to work with
3935 * IPython/iplib.py (complete): got auto-completion to work with
3931 automagic (I had wanted this for a long time).
3936 automagic (I had wanted this for a long time).
3932
3937
3933 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3938 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3934 to @file, since file() is now a builtin and clashes with automagic
3939 to @file, since file() is now a builtin and clashes with automagic
3935 for @file.
3940 for @file.
3936
3941
3937 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3942 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3938 of this was previously in iplib, which had grown to more than 2000
3943 of this was previously in iplib, which had grown to more than 2000
3939 lines, way too long. No new functionality, but it makes managing
3944 lines, way too long. No new functionality, but it makes managing
3940 the code a bit easier.
3945 the code a bit easier.
3941
3946
3942 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3947 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3943 information to crash reports.
3948 information to crash reports.
3944
3949
3945 2002-02-12 Fernando Perez <fperez@colorado.edu>
3950 2002-02-12 Fernando Perez <fperez@colorado.edu>
3946
3951
3947 * Released 0.2.5.
3952 * Released 0.2.5.
3948
3953
3949 2002-02-11 Fernando Perez <fperez@colorado.edu>
3954 2002-02-11 Fernando Perez <fperez@colorado.edu>
3950
3955
3951 * Wrote a relatively complete Windows installer. It puts
3956 * Wrote a relatively complete Windows installer. It puts
3952 everything in place, creates Start Menu entries and fixes the
3957 everything in place, creates Start Menu entries and fixes the
3953 color issues. Nothing fancy, but it works.
3958 color issues. Nothing fancy, but it works.
3954
3959
3955 2002-02-10 Fernando Perez <fperez@colorado.edu>
3960 2002-02-10 Fernando Perez <fperez@colorado.edu>
3956
3961
3957 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3962 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3958 os.path.expanduser() call so that we can type @run ~/myfile.py and
3963 os.path.expanduser() call so that we can type @run ~/myfile.py and
3959 have thigs work as expected.
3964 have thigs work as expected.
3960
3965
3961 * IPython/genutils.py (page): fixed exception handling so things
3966 * IPython/genutils.py (page): fixed exception handling so things
3962 work both in Unix and Windows correctly. Quitting a pager triggers
3967 work both in Unix and Windows correctly. Quitting a pager triggers
3963 an IOError/broken pipe in Unix, and in windows not finding a pager
3968 an IOError/broken pipe in Unix, and in windows not finding a pager
3964 is also an IOError, so I had to actually look at the return value
3969 is also an IOError, so I had to actually look at the return value
3965 of the exception, not just the exception itself. Should be ok now.
3970 of the exception, not just the exception itself. Should be ok now.
3966
3971
3967 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3972 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3968 modified to allow case-insensitive color scheme changes.
3973 modified to allow case-insensitive color scheme changes.
3969
3974
3970 2002-02-09 Fernando Perez <fperez@colorado.edu>
3975 2002-02-09 Fernando Perez <fperez@colorado.edu>
3971
3976
3972 * IPython/genutils.py (native_line_ends): new function to leave
3977 * IPython/genutils.py (native_line_ends): new function to leave
3973 user config files with os-native line-endings.
3978 user config files with os-native line-endings.
3974
3979
3975 * README and manual updates.
3980 * README and manual updates.
3976
3981
3977 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3982 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3978 instead of StringType to catch Unicode strings.
3983 instead of StringType to catch Unicode strings.
3979
3984
3980 * IPython/genutils.py (filefind): fixed bug for paths with
3985 * IPython/genutils.py (filefind): fixed bug for paths with
3981 embedded spaces (very common in Windows).
3986 embedded spaces (very common in Windows).
3982
3987
3983 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3988 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3984 files under Windows, so that they get automatically associated
3989 files under Windows, so that they get automatically associated
3985 with a text editor. Windows makes it a pain to handle
3990 with a text editor. Windows makes it a pain to handle
3986 extension-less files.
3991 extension-less files.
3987
3992
3988 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3993 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3989 warning about readline only occur for Posix. In Windows there's no
3994 warning about readline only occur for Posix. In Windows there's no
3990 way to get readline, so why bother with the warning.
3995 way to get readline, so why bother with the warning.
3991
3996
3992 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3997 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3993 for __str__ instead of dir(self), since dir() changed in 2.2.
3998 for __str__ instead of dir(self), since dir() changed in 2.2.
3994
3999
3995 * Ported to Windows! Tested on XP, I suspect it should work fine
4000 * Ported to Windows! Tested on XP, I suspect it should work fine
3996 on NT/2000, but I don't think it will work on 98 et al. That
4001 on NT/2000, but I don't think it will work on 98 et al. That
3997 series of Windows is such a piece of junk anyway that I won't try
4002 series of Windows is such a piece of junk anyway that I won't try
3998 porting it there. The XP port was straightforward, showed a few
4003 porting it there. The XP port was straightforward, showed a few
3999 bugs here and there (fixed all), in particular some string
4004 bugs here and there (fixed all), in particular some string
4000 handling stuff which required considering Unicode strings (which
4005 handling stuff which required considering Unicode strings (which
4001 Windows uses). This is good, but hasn't been too tested :) No
4006 Windows uses). This is good, but hasn't been too tested :) No
4002 fancy installer yet, I'll put a note in the manual so people at
4007 fancy installer yet, I'll put a note in the manual so people at
4003 least make manually a shortcut.
4008 least make manually a shortcut.
4004
4009
4005 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4010 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4006 into a single one, "colors". This now controls both prompt and
4011 into a single one, "colors". This now controls both prompt and
4007 exception color schemes, and can be changed both at startup
4012 exception color schemes, and can be changed both at startup
4008 (either via command-line switches or via ipythonrc files) and at
4013 (either via command-line switches or via ipythonrc files) and at
4009 runtime, with @colors.
4014 runtime, with @colors.
4010 (Magic.magic_run): renamed @prun to @run and removed the old
4015 (Magic.magic_run): renamed @prun to @run and removed the old
4011 @run. The two were too similar to warrant keeping both.
4016 @run. The two were too similar to warrant keeping both.
4012
4017
4013 2002-02-03 Fernando Perez <fperez@colorado.edu>
4018 2002-02-03 Fernando Perez <fperez@colorado.edu>
4014
4019
4015 * IPython/iplib.py (install_first_time): Added comment on how to
4020 * IPython/iplib.py (install_first_time): Added comment on how to
4016 configure the color options for first-time users. Put a <return>
4021 configure the color options for first-time users. Put a <return>
4017 request at the end so that small-terminal users get a chance to
4022 request at the end so that small-terminal users get a chance to
4018 read the startup info.
4023 read the startup info.
4019
4024
4020 2002-01-23 Fernando Perez <fperez@colorado.edu>
4025 2002-01-23 Fernando Perez <fperez@colorado.edu>
4021
4026
4022 * IPython/iplib.py (CachedOutput.update): Changed output memory
4027 * IPython/iplib.py (CachedOutput.update): Changed output memory
4023 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4028 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4024 input history we still use _i. Did this b/c these variable are
4029 input history we still use _i. Did this b/c these variable are
4025 very commonly used in interactive work, so the less we need to
4030 very commonly used in interactive work, so the less we need to
4026 type the better off we are.
4031 type the better off we are.
4027 (Magic.magic_prun): updated @prun to better handle the namespaces
4032 (Magic.magic_prun): updated @prun to better handle the namespaces
4028 the file will run in, including a fix for __name__ not being set
4033 the file will run in, including a fix for __name__ not being set
4029 before.
4034 before.
4030
4035
4031 2002-01-20 Fernando Perez <fperez@colorado.edu>
4036 2002-01-20 Fernando Perez <fperez@colorado.edu>
4032
4037
4033 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4038 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4034 extra garbage for Python 2.2. Need to look more carefully into
4039 extra garbage for Python 2.2. Need to look more carefully into
4035 this later.
4040 this later.
4036
4041
4037 2002-01-19 Fernando Perez <fperez@colorado.edu>
4042 2002-01-19 Fernando Perez <fperez@colorado.edu>
4038
4043
4039 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4044 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4040 display SyntaxError exceptions properly formatted when they occur
4045 display SyntaxError exceptions properly formatted when they occur
4041 (they can be triggered by imported code).
4046 (they can be triggered by imported code).
4042
4047
4043 2002-01-18 Fernando Perez <fperez@colorado.edu>
4048 2002-01-18 Fernando Perez <fperez@colorado.edu>
4044
4049
4045 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4050 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4046 SyntaxError exceptions are reported nicely formatted, instead of
4051 SyntaxError exceptions are reported nicely formatted, instead of
4047 spitting out only offset information as before.
4052 spitting out only offset information as before.
4048 (Magic.magic_prun): Added the @prun function for executing
4053 (Magic.magic_prun): Added the @prun function for executing
4049 programs with command line args inside IPython.
4054 programs with command line args inside IPython.
4050
4055
4051 2002-01-16 Fernando Perez <fperez@colorado.edu>
4056 2002-01-16 Fernando Perez <fperez@colorado.edu>
4052
4057
4053 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4058 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4054 to *not* include the last item given in a range. This brings their
4059 to *not* include the last item given in a range. This brings their
4055 behavior in line with Python's slicing:
4060 behavior in line with Python's slicing:
4056 a[n1:n2] -> a[n1]...a[n2-1]
4061 a[n1:n2] -> a[n1]...a[n2-1]
4057 It may be a bit less convenient, but I prefer to stick to Python's
4062 It may be a bit less convenient, but I prefer to stick to Python's
4058 conventions *everywhere*, so users never have to wonder.
4063 conventions *everywhere*, so users never have to wonder.
4059 (Magic.magic_macro): Added @macro function to ease the creation of
4064 (Magic.magic_macro): Added @macro function to ease the creation of
4060 macros.
4065 macros.
4061
4066
4062 2002-01-05 Fernando Perez <fperez@colorado.edu>
4067 2002-01-05 Fernando Perez <fperez@colorado.edu>
4063
4068
4064 * Released 0.2.4.
4069 * Released 0.2.4.
4065
4070
4066 * IPython/iplib.py (Magic.magic_pdef):
4071 * IPython/iplib.py (Magic.magic_pdef):
4067 (InteractiveShell.safe_execfile): report magic lines and error
4072 (InteractiveShell.safe_execfile): report magic lines and error
4068 lines without line numbers so one can easily copy/paste them for
4073 lines without line numbers so one can easily copy/paste them for
4069 re-execution.
4074 re-execution.
4070
4075
4071 * Updated manual with recent changes.
4076 * Updated manual with recent changes.
4072
4077
4073 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4078 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4074 docstring printing when class? is called. Very handy for knowing
4079 docstring printing when class? is called. Very handy for knowing
4075 how to create class instances (as long as __init__ is well
4080 how to create class instances (as long as __init__ is well
4076 documented, of course :)
4081 documented, of course :)
4077 (Magic.magic_doc): print both class and constructor docstrings.
4082 (Magic.magic_doc): print both class and constructor docstrings.
4078 (Magic.magic_pdef): give constructor info if passed a class and
4083 (Magic.magic_pdef): give constructor info if passed a class and
4079 __call__ info for callable object instances.
4084 __call__ info for callable object instances.
4080
4085
4081 2002-01-04 Fernando Perez <fperez@colorado.edu>
4086 2002-01-04 Fernando Perez <fperez@colorado.edu>
4082
4087
4083 * Made deep_reload() off by default. It doesn't always work
4088 * Made deep_reload() off by default. It doesn't always work
4084 exactly as intended, so it's probably safer to have it off. It's
4089 exactly as intended, so it's probably safer to have it off. It's
4085 still available as dreload() anyway, so nothing is lost.
4090 still available as dreload() anyway, so nothing is lost.
4086
4091
4087 2002-01-02 Fernando Perez <fperez@colorado.edu>
4092 2002-01-02 Fernando Perez <fperez@colorado.edu>
4088
4093
4089 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4094 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4090 so I wanted an updated release).
4095 so I wanted an updated release).
4091
4096
4092 2001-12-27 Fernando Perez <fperez@colorado.edu>
4097 2001-12-27 Fernando Perez <fperez@colorado.edu>
4093
4098
4094 * IPython/iplib.py (InteractiveShell.interact): Added the original
4099 * IPython/iplib.py (InteractiveShell.interact): Added the original
4095 code from 'code.py' for this module in order to change the
4100 code from 'code.py' for this module in order to change the
4096 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4101 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4097 the history cache would break when the user hit Ctrl-C, and
4102 the history cache would break when the user hit Ctrl-C, and
4098 interact() offers no way to add any hooks to it.
4103 interact() offers no way to add any hooks to it.
4099
4104
4100 2001-12-23 Fernando Perez <fperez@colorado.edu>
4105 2001-12-23 Fernando Perez <fperez@colorado.edu>
4101
4106
4102 * setup.py: added check for 'MANIFEST' before trying to remove
4107 * setup.py: added check for 'MANIFEST' before trying to remove
4103 it. Thanks to Sean Reifschneider.
4108 it. Thanks to Sean Reifschneider.
4104
4109
4105 2001-12-22 Fernando Perez <fperez@colorado.edu>
4110 2001-12-22 Fernando Perez <fperez@colorado.edu>
4106
4111
4107 * Released 0.2.2.
4112 * Released 0.2.2.
4108
4113
4109 * Finished (reasonably) writing the manual. Later will add the
4114 * Finished (reasonably) writing the manual. Later will add the
4110 python-standard navigation stylesheets, but for the time being
4115 python-standard navigation stylesheets, but for the time being
4111 it's fairly complete. Distribution will include html and pdf
4116 it's fairly complete. Distribution will include html and pdf
4112 versions.
4117 versions.
4113
4118
4114 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4119 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4115 (MayaVi author).
4120 (MayaVi author).
4116
4121
4117 2001-12-21 Fernando Perez <fperez@colorado.edu>
4122 2001-12-21 Fernando Perez <fperez@colorado.edu>
4118
4123
4119 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4124 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4120 good public release, I think (with the manual and the distutils
4125 good public release, I think (with the manual and the distutils
4121 installer). The manual can use some work, but that can go
4126 installer). The manual can use some work, but that can go
4122 slowly. Otherwise I think it's quite nice for end users. Next
4127 slowly. Otherwise I think it's quite nice for end users. Next
4123 summer, rewrite the guts of it...
4128 summer, rewrite the guts of it...
4124
4129
4125 * Changed format of ipythonrc files to use whitespace as the
4130 * Changed format of ipythonrc files to use whitespace as the
4126 separator instead of an explicit '='. Cleaner.
4131 separator instead of an explicit '='. Cleaner.
4127
4132
4128 2001-12-20 Fernando Perez <fperez@colorado.edu>
4133 2001-12-20 Fernando Perez <fperez@colorado.edu>
4129
4134
4130 * Started a manual in LyX. For now it's just a quick merge of the
4135 * Started a manual in LyX. For now it's just a quick merge of the
4131 various internal docstrings and READMEs. Later it may grow into a
4136 various internal docstrings and READMEs. Later it may grow into a
4132 nice, full-blown manual.
4137 nice, full-blown manual.
4133
4138
4134 * Set up a distutils based installer. Installation should now be
4139 * Set up a distutils based installer. Installation should now be
4135 trivially simple for end-users.
4140 trivially simple for end-users.
4136
4141
4137 2001-12-11 Fernando Perez <fperez@colorado.edu>
4142 2001-12-11 Fernando Perez <fperez@colorado.edu>
4138
4143
4139 * Released 0.2.0. First public release, announced it at
4144 * Released 0.2.0. First public release, announced it at
4140 comp.lang.python. From now on, just bugfixes...
4145 comp.lang.python. From now on, just bugfixes...
4141
4146
4142 * Went through all the files, set copyright/license notices and
4147 * Went through all the files, set copyright/license notices and
4143 cleaned up things. Ready for release.
4148 cleaned up things. Ready for release.
4144
4149
4145 2001-12-10 Fernando Perez <fperez@colorado.edu>
4150 2001-12-10 Fernando Perez <fperez@colorado.edu>
4146
4151
4147 * Changed the first-time installer not to use tarfiles. It's more
4152 * Changed the first-time installer not to use tarfiles. It's more
4148 robust now and less unix-dependent. Also makes it easier for
4153 robust now and less unix-dependent. Also makes it easier for
4149 people to later upgrade versions.
4154 people to later upgrade versions.
4150
4155
4151 * Changed @exit to @abort to reflect the fact that it's pretty
4156 * Changed @exit to @abort to reflect the fact that it's pretty
4152 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4157 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4153 becomes significant only when IPyhton is embedded: in that case,
4158 becomes significant only when IPyhton is embedded: in that case,
4154 C-D closes IPython only, but @abort kills the enclosing program
4159 C-D closes IPython only, but @abort kills the enclosing program
4155 too (unless it had called IPython inside a try catching
4160 too (unless it had called IPython inside a try catching
4156 SystemExit).
4161 SystemExit).
4157
4162
4158 * Created Shell module which exposes the actuall IPython Shell
4163 * Created Shell module which exposes the actuall IPython Shell
4159 classes, currently the normal and the embeddable one. This at
4164 classes, currently the normal and the embeddable one. This at
4160 least offers a stable interface we won't need to change when
4165 least offers a stable interface we won't need to change when
4161 (later) the internals are rewritten. That rewrite will be confined
4166 (later) the internals are rewritten. That rewrite will be confined
4162 to iplib and ipmaker, but the Shell interface should remain as is.
4167 to iplib and ipmaker, but the Shell interface should remain as is.
4163
4168
4164 * Added embed module which offers an embeddable IPShell object,
4169 * Added embed module which offers an embeddable IPShell object,
4165 useful to fire up IPython *inside* a running program. Great for
4170 useful to fire up IPython *inside* a running program. Great for
4166 debugging or dynamical data analysis.
4171 debugging or dynamical data analysis.
4167
4172
4168 2001-12-08 Fernando Perez <fperez@colorado.edu>
4173 2001-12-08 Fernando Perez <fperez@colorado.edu>
4169
4174
4170 * Fixed small bug preventing seeing info from methods of defined
4175 * Fixed small bug preventing seeing info from methods of defined
4171 objects (incorrect namespace in _ofind()).
4176 objects (incorrect namespace in _ofind()).
4172
4177
4173 * Documentation cleanup. Moved the main usage docstrings to a
4178 * Documentation cleanup. Moved the main usage docstrings to a
4174 separate file, usage.py (cleaner to maintain, and hopefully in the
4179 separate file, usage.py (cleaner to maintain, and hopefully in the
4175 future some perlpod-like way of producing interactive, man and
4180 future some perlpod-like way of producing interactive, man and
4176 html docs out of it will be found).
4181 html docs out of it will be found).
4177
4182
4178 * Added @profile to see your profile at any time.
4183 * Added @profile to see your profile at any time.
4179
4184
4180 * Added @p as an alias for 'print'. It's especially convenient if
4185 * Added @p as an alias for 'print'. It's especially convenient if
4181 using automagic ('p x' prints x).
4186 using automagic ('p x' prints x).
4182
4187
4183 * Small cleanups and fixes after a pychecker run.
4188 * Small cleanups and fixes after a pychecker run.
4184
4189
4185 * Changed the @cd command to handle @cd - and @cd -<n> for
4190 * Changed the @cd command to handle @cd - and @cd -<n> for
4186 visiting any directory in _dh.
4191 visiting any directory in _dh.
4187
4192
4188 * Introduced _dh, a history of visited directories. @dhist prints
4193 * Introduced _dh, a history of visited directories. @dhist prints
4189 it out with numbers.
4194 it out with numbers.
4190
4195
4191 2001-12-07 Fernando Perez <fperez@colorado.edu>
4196 2001-12-07 Fernando Perez <fperez@colorado.edu>
4192
4197
4193 * Released 0.1.22
4198 * Released 0.1.22
4194
4199
4195 * Made initialization a bit more robust against invalid color
4200 * Made initialization a bit more robust against invalid color
4196 options in user input (exit, not traceback-crash).
4201 options in user input (exit, not traceback-crash).
4197
4202
4198 * Changed the bug crash reporter to write the report only in the
4203 * Changed the bug crash reporter to write the report only in the
4199 user's .ipython directory. That way IPython won't litter people's
4204 user's .ipython directory. That way IPython won't litter people's
4200 hard disks with crash files all over the place. Also print on
4205 hard disks with crash files all over the place. Also print on
4201 screen the necessary mail command.
4206 screen the necessary mail command.
4202
4207
4203 * With the new ultraTB, implemented LightBG color scheme for light
4208 * With the new ultraTB, implemented LightBG color scheme for light
4204 background terminals. A lot of people like white backgrounds, so I
4209 background terminals. A lot of people like white backgrounds, so I
4205 guess we should at least give them something readable.
4210 guess we should at least give them something readable.
4206
4211
4207 2001-12-06 Fernando Perez <fperez@colorado.edu>
4212 2001-12-06 Fernando Perez <fperez@colorado.edu>
4208
4213
4209 * Modified the structure of ultraTB. Now there's a proper class
4214 * Modified the structure of ultraTB. Now there's a proper class
4210 for tables of color schemes which allow adding schemes easily and
4215 for tables of color schemes which allow adding schemes easily and
4211 switching the active scheme without creating a new instance every
4216 switching the active scheme without creating a new instance every
4212 time (which was ridiculous). The syntax for creating new schemes
4217 time (which was ridiculous). The syntax for creating new schemes
4213 is also cleaner. I think ultraTB is finally done, with a clean
4218 is also cleaner. I think ultraTB is finally done, with a clean
4214 class structure. Names are also much cleaner (now there's proper
4219 class structure. Names are also much cleaner (now there's proper
4215 color tables, no need for every variable to also have 'color' in
4220 color tables, no need for every variable to also have 'color' in
4216 its name).
4221 its name).
4217
4222
4218 * Broke down genutils into separate files. Now genutils only
4223 * Broke down genutils into separate files. Now genutils only
4219 contains utility functions, and classes have been moved to their
4224 contains utility functions, and classes have been moved to their
4220 own files (they had enough independent functionality to warrant
4225 own files (they had enough independent functionality to warrant
4221 it): ConfigLoader, OutputTrap, Struct.
4226 it): ConfigLoader, OutputTrap, Struct.
4222
4227
4223 2001-12-05 Fernando Perez <fperez@colorado.edu>
4228 2001-12-05 Fernando Perez <fperez@colorado.edu>
4224
4229
4225 * IPython turns 21! Released version 0.1.21, as a candidate for
4230 * IPython turns 21! Released version 0.1.21, as a candidate for
4226 public consumption. If all goes well, release in a few days.
4231 public consumption. If all goes well, release in a few days.
4227
4232
4228 * Fixed path bug (files in Extensions/ directory wouldn't be found
4233 * Fixed path bug (files in Extensions/ directory wouldn't be found
4229 unless IPython/ was explicitly in sys.path).
4234 unless IPython/ was explicitly in sys.path).
4230
4235
4231 * Extended the FlexCompleter class as MagicCompleter to allow
4236 * Extended the FlexCompleter class as MagicCompleter to allow
4232 completion of @-starting lines.
4237 completion of @-starting lines.
4233
4238
4234 * Created __release__.py file as a central repository for release
4239 * Created __release__.py file as a central repository for release
4235 info that other files can read from.
4240 info that other files can read from.
4236
4241
4237 * Fixed small bug in logging: when logging was turned on in
4242 * Fixed small bug in logging: when logging was turned on in
4238 mid-session, old lines with special meanings (!@?) were being
4243 mid-session, old lines with special meanings (!@?) were being
4239 logged without the prepended comment, which is necessary since
4244 logged without the prepended comment, which is necessary since
4240 they are not truly valid python syntax. This should make session
4245 they are not truly valid python syntax. This should make session
4241 restores produce less errors.
4246 restores produce less errors.
4242
4247
4243 * The namespace cleanup forced me to make a FlexCompleter class
4248 * The namespace cleanup forced me to make a FlexCompleter class
4244 which is nothing but a ripoff of rlcompleter, but with selectable
4249 which is nothing but a ripoff of rlcompleter, but with selectable
4245 namespace (rlcompleter only works in __main__.__dict__). I'll try
4250 namespace (rlcompleter only works in __main__.__dict__). I'll try
4246 to submit a note to the authors to see if this change can be
4251 to submit a note to the authors to see if this change can be
4247 incorporated in future rlcompleter releases (Dec.6: done)
4252 incorporated in future rlcompleter releases (Dec.6: done)
4248
4253
4249 * More fixes to namespace handling. It was a mess! Now all
4254 * More fixes to namespace handling. It was a mess! Now all
4250 explicit references to __main__.__dict__ are gone (except when
4255 explicit references to __main__.__dict__ are gone (except when
4251 really needed) and everything is handled through the namespace
4256 really needed) and everything is handled through the namespace
4252 dicts in the IPython instance. We seem to be getting somewhere
4257 dicts in the IPython instance. We seem to be getting somewhere
4253 with this, finally...
4258 with this, finally...
4254
4259
4255 * Small documentation updates.
4260 * Small documentation updates.
4256
4261
4257 * Created the Extensions directory under IPython (with an
4262 * Created the Extensions directory under IPython (with an
4258 __init__.py). Put the PhysicalQ stuff there. This directory should
4263 __init__.py). Put the PhysicalQ stuff there. This directory should
4259 be used for all special-purpose extensions.
4264 be used for all special-purpose extensions.
4260
4265
4261 * File renaming:
4266 * File renaming:
4262 ipythonlib --> ipmaker
4267 ipythonlib --> ipmaker
4263 ipplib --> iplib
4268 ipplib --> iplib
4264 This makes a bit more sense in terms of what these files actually do.
4269 This makes a bit more sense in terms of what these files actually do.
4265
4270
4266 * Moved all the classes and functions in ipythonlib to ipplib, so
4271 * Moved all the classes and functions in ipythonlib to ipplib, so
4267 now ipythonlib only has make_IPython(). This will ease up its
4272 now ipythonlib only has make_IPython(). This will ease up its
4268 splitting in smaller functional chunks later.
4273 splitting in smaller functional chunks later.
4269
4274
4270 * Cleaned up (done, I think) output of @whos. Better column
4275 * Cleaned up (done, I think) output of @whos. Better column
4271 formatting, and now shows str(var) for as much as it can, which is
4276 formatting, and now shows str(var) for as much as it can, which is
4272 typically what one gets with a 'print var'.
4277 typically what one gets with a 'print var'.
4273
4278
4274 2001-12-04 Fernando Perez <fperez@colorado.edu>
4279 2001-12-04 Fernando Perez <fperez@colorado.edu>
4275
4280
4276 * Fixed namespace problems. Now builtin/IPyhton/user names get
4281 * Fixed namespace problems. Now builtin/IPyhton/user names get
4277 properly reported in their namespace. Internal namespace handling
4282 properly reported in their namespace. Internal namespace handling
4278 is finally getting decent (not perfect yet, but much better than
4283 is finally getting decent (not perfect yet, but much better than
4279 the ad-hoc mess we had).
4284 the ad-hoc mess we had).
4280
4285
4281 * Removed -exit option. If people just want to run a python
4286 * Removed -exit option. If people just want to run a python
4282 script, that's what the normal interpreter is for. Less
4287 script, that's what the normal interpreter is for. Less
4283 unnecessary options, less chances for bugs.
4288 unnecessary options, less chances for bugs.
4284
4289
4285 * Added a crash handler which generates a complete post-mortem if
4290 * Added a crash handler which generates a complete post-mortem if
4286 IPython crashes. This will help a lot in tracking bugs down the
4291 IPython crashes. This will help a lot in tracking bugs down the
4287 road.
4292 road.
4288
4293
4289 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4294 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4290 which were boud to functions being reassigned would bypass the
4295 which were boud to functions being reassigned would bypass the
4291 logger, breaking the sync of _il with the prompt counter. This
4296 logger, breaking the sync of _il with the prompt counter. This
4292 would then crash IPython later when a new line was logged.
4297 would then crash IPython later when a new line was logged.
4293
4298
4294 2001-12-02 Fernando Perez <fperez@colorado.edu>
4299 2001-12-02 Fernando Perez <fperez@colorado.edu>
4295
4300
4296 * Made IPython a package. This means people don't have to clutter
4301 * Made IPython a package. This means people don't have to clutter
4297 their sys.path with yet another directory. Changed the INSTALL
4302 their sys.path with yet another directory. Changed the INSTALL
4298 file accordingly.
4303 file accordingly.
4299
4304
4300 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4305 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4301 sorts its output (so @who shows it sorted) and @whos formats the
4306 sorts its output (so @who shows it sorted) and @whos formats the
4302 table according to the width of the first column. Nicer, easier to
4307 table according to the width of the first column. Nicer, easier to
4303 read. Todo: write a generic table_format() which takes a list of
4308 read. Todo: write a generic table_format() which takes a list of
4304 lists and prints it nicely formatted, with optional row/column
4309 lists and prints it nicely formatted, with optional row/column
4305 separators and proper padding and justification.
4310 separators and proper padding and justification.
4306
4311
4307 * Released 0.1.20
4312 * Released 0.1.20
4308
4313
4309 * Fixed bug in @log which would reverse the inputcache list (a
4314 * Fixed bug in @log which would reverse the inputcache list (a
4310 copy operation was missing).
4315 copy operation was missing).
4311
4316
4312 * Code cleanup. @config was changed to use page(). Better, since
4317 * Code cleanup. @config was changed to use page(). Better, since
4313 its output is always quite long.
4318 its output is always quite long.
4314
4319
4315 * Itpl is back as a dependency. I was having too many problems
4320 * Itpl is back as a dependency. I was having too many problems
4316 getting the parametric aliases to work reliably, and it's just
4321 getting the parametric aliases to work reliably, and it's just
4317 easier to code weird string operations with it than playing %()s
4322 easier to code weird string operations with it than playing %()s
4318 games. It's only ~6k, so I don't think it's too big a deal.
4323 games. It's only ~6k, so I don't think it's too big a deal.
4319
4324
4320 * Found (and fixed) a very nasty bug with history. !lines weren't
4325 * Found (and fixed) a very nasty bug with history. !lines weren't
4321 getting cached, and the out of sync caches would crash
4326 getting cached, and the out of sync caches would crash
4322 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4327 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4323 division of labor a bit better. Bug fixed, cleaner structure.
4328 division of labor a bit better. Bug fixed, cleaner structure.
4324
4329
4325 2001-12-01 Fernando Perez <fperez@colorado.edu>
4330 2001-12-01 Fernando Perez <fperez@colorado.edu>
4326
4331
4327 * Released 0.1.19
4332 * Released 0.1.19
4328
4333
4329 * Added option -n to @hist to prevent line number printing. Much
4334 * Added option -n to @hist to prevent line number printing. Much
4330 easier to copy/paste code this way.
4335 easier to copy/paste code this way.
4331
4336
4332 * Created global _il to hold the input list. Allows easy
4337 * Created global _il to hold the input list. Allows easy
4333 re-execution of blocks of code by slicing it (inspired by Janko's
4338 re-execution of blocks of code by slicing it (inspired by Janko's
4334 comment on 'macros').
4339 comment on 'macros').
4335
4340
4336 * Small fixes and doc updates.
4341 * Small fixes and doc updates.
4337
4342
4338 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4343 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4339 much too fragile with automagic. Handles properly multi-line
4344 much too fragile with automagic. Handles properly multi-line
4340 statements and takes parameters.
4345 statements and takes parameters.
4341
4346
4342 2001-11-30 Fernando Perez <fperez@colorado.edu>
4347 2001-11-30 Fernando Perez <fperez@colorado.edu>
4343
4348
4344 * Version 0.1.18 released.
4349 * Version 0.1.18 released.
4345
4350
4346 * Fixed nasty namespace bug in initial module imports.
4351 * Fixed nasty namespace bug in initial module imports.
4347
4352
4348 * Added copyright/license notes to all code files (except
4353 * Added copyright/license notes to all code files (except
4349 DPyGetOpt). For the time being, LGPL. That could change.
4354 DPyGetOpt). For the time being, LGPL. That could change.
4350
4355
4351 * Rewrote a much nicer README, updated INSTALL, cleaned up
4356 * Rewrote a much nicer README, updated INSTALL, cleaned up
4352 ipythonrc-* samples.
4357 ipythonrc-* samples.
4353
4358
4354 * Overall code/documentation cleanup. Basically ready for
4359 * Overall code/documentation cleanup. Basically ready for
4355 release. Only remaining thing: licence decision (LGPL?).
4360 release. Only remaining thing: licence decision (LGPL?).
4356
4361
4357 * Converted load_config to a class, ConfigLoader. Now recursion
4362 * Converted load_config to a class, ConfigLoader. Now recursion
4358 control is better organized. Doesn't include the same file twice.
4363 control is better organized. Doesn't include the same file twice.
4359
4364
4360 2001-11-29 Fernando Perez <fperez@colorado.edu>
4365 2001-11-29 Fernando Perez <fperez@colorado.edu>
4361
4366
4362 * Got input history working. Changed output history variables from
4367 * Got input history working. Changed output history variables from
4363 _p to _o so that _i is for input and _o for output. Just cleaner
4368 _p to _o so that _i is for input and _o for output. Just cleaner
4364 convention.
4369 convention.
4365
4370
4366 * Implemented parametric aliases. This pretty much allows the
4371 * Implemented parametric aliases. This pretty much allows the
4367 alias system to offer full-blown shell convenience, I think.
4372 alias system to offer full-blown shell convenience, I think.
4368
4373
4369 * Version 0.1.17 released, 0.1.18 opened.
4374 * Version 0.1.17 released, 0.1.18 opened.
4370
4375
4371 * dot_ipython/ipythonrc (alias): added documentation.
4376 * dot_ipython/ipythonrc (alias): added documentation.
4372 (xcolor): Fixed small bug (xcolors -> xcolor)
4377 (xcolor): Fixed small bug (xcolors -> xcolor)
4373
4378
4374 * Changed the alias system. Now alias is a magic command to define
4379 * Changed the alias system. Now alias is a magic command to define
4375 aliases just like the shell. Rationale: the builtin magics should
4380 aliases just like the shell. Rationale: the builtin magics should
4376 be there for things deeply connected to IPython's
4381 be there for things deeply connected to IPython's
4377 architecture. And this is a much lighter system for what I think
4382 architecture. And this is a much lighter system for what I think
4378 is the really important feature: allowing users to define quickly
4383 is the really important feature: allowing users to define quickly
4379 magics that will do shell things for them, so they can customize
4384 magics that will do shell things for them, so they can customize
4380 IPython easily to match their work habits. If someone is really
4385 IPython easily to match their work habits. If someone is really
4381 desperate to have another name for a builtin alias, they can
4386 desperate to have another name for a builtin alias, they can
4382 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4387 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4383 works.
4388 works.
4384
4389
4385 2001-11-28 Fernando Perez <fperez@colorado.edu>
4390 2001-11-28 Fernando Perez <fperez@colorado.edu>
4386
4391
4387 * Changed @file so that it opens the source file at the proper
4392 * Changed @file so that it opens the source file at the proper
4388 line. Since it uses less, if your EDITOR environment is
4393 line. Since it uses less, if your EDITOR environment is
4389 configured, typing v will immediately open your editor of choice
4394 configured, typing v will immediately open your editor of choice
4390 right at the line where the object is defined. Not as quick as
4395 right at the line where the object is defined. Not as quick as
4391 having a direct @edit command, but for all intents and purposes it
4396 having a direct @edit command, but for all intents and purposes it
4392 works. And I don't have to worry about writing @edit to deal with
4397 works. And I don't have to worry about writing @edit to deal with
4393 all the editors, less does that.
4398 all the editors, less does that.
4394
4399
4395 * Version 0.1.16 released, 0.1.17 opened.
4400 * Version 0.1.16 released, 0.1.17 opened.
4396
4401
4397 * Fixed some nasty bugs in the page/page_dumb combo that could
4402 * Fixed some nasty bugs in the page/page_dumb combo that could
4398 crash IPython.
4403 crash IPython.
4399
4404
4400 2001-11-27 Fernando Perez <fperez@colorado.edu>
4405 2001-11-27 Fernando Perez <fperez@colorado.edu>
4401
4406
4402 * Version 0.1.15 released, 0.1.16 opened.
4407 * Version 0.1.15 released, 0.1.16 opened.
4403
4408
4404 * Finally got ? and ?? to work for undefined things: now it's
4409 * Finally got ? and ?? to work for undefined things: now it's
4405 possible to type {}.get? and get information about the get method
4410 possible to type {}.get? and get information about the get method
4406 of dicts, or os.path? even if only os is defined (so technically
4411 of dicts, or os.path? even if only os is defined (so technically
4407 os.path isn't). Works at any level. For example, after import os,
4412 os.path isn't). Works at any level. For example, after import os,
4408 os?, os.path?, os.path.abspath? all work. This is great, took some
4413 os?, os.path?, os.path.abspath? all work. This is great, took some
4409 work in _ofind.
4414 work in _ofind.
4410
4415
4411 * Fixed more bugs with logging. The sanest way to do it was to add
4416 * Fixed more bugs with logging. The sanest way to do it was to add
4412 to @log a 'mode' parameter. Killed two in one shot (this mode
4417 to @log a 'mode' parameter. Killed two in one shot (this mode
4413 option was a request of Janko's). I think it's finally clean
4418 option was a request of Janko's). I think it's finally clean
4414 (famous last words).
4419 (famous last words).
4415
4420
4416 * Added a page_dumb() pager which does a decent job of paging on
4421 * Added a page_dumb() pager which does a decent job of paging on
4417 screen, if better things (like less) aren't available. One less
4422 screen, if better things (like less) aren't available. One less
4418 unix dependency (someday maybe somebody will port this to
4423 unix dependency (someday maybe somebody will port this to
4419 windows).
4424 windows).
4420
4425
4421 * Fixed problem in magic_log: would lock of logging out if log
4426 * Fixed problem in magic_log: would lock of logging out if log
4422 creation failed (because it would still think it had succeeded).
4427 creation failed (because it would still think it had succeeded).
4423
4428
4424 * Improved the page() function using curses to auto-detect screen
4429 * Improved the page() function using curses to auto-detect screen
4425 size. Now it can make a much better decision on whether to print
4430 size. Now it can make a much better decision on whether to print
4426 or page a string. Option screen_length was modified: a value 0
4431 or page a string. Option screen_length was modified: a value 0
4427 means auto-detect, and that's the default now.
4432 means auto-detect, and that's the default now.
4428
4433
4429 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4434 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4430 go out. I'll test it for a few days, then talk to Janko about
4435 go out. I'll test it for a few days, then talk to Janko about
4431 licences and announce it.
4436 licences and announce it.
4432
4437
4433 * Fixed the length of the auto-generated ---> prompt which appears
4438 * Fixed the length of the auto-generated ---> prompt which appears
4434 for auto-parens and auto-quotes. Getting this right isn't trivial,
4439 for auto-parens and auto-quotes. Getting this right isn't trivial,
4435 with all the color escapes, different prompt types and optional
4440 with all the color escapes, different prompt types and optional
4436 separators. But it seems to be working in all the combinations.
4441 separators. But it seems to be working in all the combinations.
4437
4442
4438 2001-11-26 Fernando Perez <fperez@colorado.edu>
4443 2001-11-26 Fernando Perez <fperez@colorado.edu>
4439
4444
4440 * Wrote a regexp filter to get option types from the option names
4445 * Wrote a regexp filter to get option types from the option names
4441 string. This eliminates the need to manually keep two duplicate
4446 string. This eliminates the need to manually keep two duplicate
4442 lists.
4447 lists.
4443
4448
4444 * Removed the unneeded check_option_names. Now options are handled
4449 * Removed the unneeded check_option_names. Now options are handled
4445 in a much saner manner and it's easy to visually check that things
4450 in a much saner manner and it's easy to visually check that things
4446 are ok.
4451 are ok.
4447
4452
4448 * Updated version numbers on all files I modified to carry a
4453 * Updated version numbers on all files I modified to carry a
4449 notice so Janko and Nathan have clear version markers.
4454 notice so Janko and Nathan have clear version markers.
4450
4455
4451 * Updated docstring for ultraTB with my changes. I should send
4456 * Updated docstring for ultraTB with my changes. I should send
4452 this to Nathan.
4457 this to Nathan.
4453
4458
4454 * Lots of small fixes. Ran everything through pychecker again.
4459 * Lots of small fixes. Ran everything through pychecker again.
4455
4460
4456 * Made loading of deep_reload an cmd line option. If it's not too
4461 * Made loading of deep_reload an cmd line option. If it's not too
4457 kosher, now people can just disable it. With -nodeep_reload it's
4462 kosher, now people can just disable it. With -nodeep_reload it's
4458 still available as dreload(), it just won't overwrite reload().
4463 still available as dreload(), it just won't overwrite reload().
4459
4464
4460 * Moved many options to the no| form (-opt and -noopt
4465 * Moved many options to the no| form (-opt and -noopt
4461 accepted). Cleaner.
4466 accepted). Cleaner.
4462
4467
4463 * Changed magic_log so that if called with no parameters, it uses
4468 * Changed magic_log so that if called with no parameters, it uses
4464 'rotate' mode. That way auto-generated logs aren't automatically
4469 'rotate' mode. That way auto-generated logs aren't automatically
4465 over-written. For normal logs, now a backup is made if it exists
4470 over-written. For normal logs, now a backup is made if it exists
4466 (only 1 level of backups). A new 'backup' mode was added to the
4471 (only 1 level of backups). A new 'backup' mode was added to the
4467 Logger class to support this. This was a request by Janko.
4472 Logger class to support this. This was a request by Janko.
4468
4473
4469 * Added @logoff/@logon to stop/restart an active log.
4474 * Added @logoff/@logon to stop/restart an active log.
4470
4475
4471 * Fixed a lot of bugs in log saving/replay. It was pretty
4476 * Fixed a lot of bugs in log saving/replay. It was pretty
4472 broken. Now special lines (!@,/) appear properly in the command
4477 broken. Now special lines (!@,/) appear properly in the command
4473 history after a log replay.
4478 history after a log replay.
4474
4479
4475 * Tried and failed to implement full session saving via pickle. My
4480 * Tried and failed to implement full session saving via pickle. My
4476 idea was to pickle __main__.__dict__, but modules can't be
4481 idea was to pickle __main__.__dict__, but modules can't be
4477 pickled. This would be a better alternative to replaying logs, but
4482 pickled. This would be a better alternative to replaying logs, but
4478 seems quite tricky to get to work. Changed -session to be called
4483 seems quite tricky to get to work. Changed -session to be called
4479 -logplay, which more accurately reflects what it does. And if we
4484 -logplay, which more accurately reflects what it does. And if we
4480 ever get real session saving working, -session is now available.
4485 ever get real session saving working, -session is now available.
4481
4486
4482 * Implemented color schemes for prompts also. As for tracebacks,
4487 * Implemented color schemes for prompts also. As for tracebacks,
4483 currently only NoColor and Linux are supported. But now the
4488 currently only NoColor and Linux are supported. But now the
4484 infrastructure is in place, based on a generic ColorScheme
4489 infrastructure is in place, based on a generic ColorScheme
4485 class. So writing and activating new schemes both for the prompts
4490 class. So writing and activating new schemes both for the prompts
4486 and the tracebacks should be straightforward.
4491 and the tracebacks should be straightforward.
4487
4492
4488 * Version 0.1.13 released, 0.1.14 opened.
4493 * Version 0.1.13 released, 0.1.14 opened.
4489
4494
4490 * Changed handling of options for output cache. Now counter is
4495 * Changed handling of options for output cache. Now counter is
4491 hardwired starting at 1 and one specifies the maximum number of
4496 hardwired starting at 1 and one specifies the maximum number of
4492 entries *in the outcache* (not the max prompt counter). This is
4497 entries *in the outcache* (not the max prompt counter). This is
4493 much better, since many statements won't increase the cache
4498 much better, since many statements won't increase the cache
4494 count. It also eliminated some confusing options, now there's only
4499 count. It also eliminated some confusing options, now there's only
4495 one: cache_size.
4500 one: cache_size.
4496
4501
4497 * Added 'alias' magic function and magic_alias option in the
4502 * Added 'alias' magic function and magic_alias option in the
4498 ipythonrc file. Now the user can easily define whatever names he
4503 ipythonrc file. Now the user can easily define whatever names he
4499 wants for the magic functions without having to play weird
4504 wants for the magic functions without having to play weird
4500 namespace games. This gives IPython a real shell-like feel.
4505 namespace games. This gives IPython a real shell-like feel.
4501
4506
4502 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4507 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4503 @ or not).
4508 @ or not).
4504
4509
4505 This was one of the last remaining 'visible' bugs (that I know
4510 This was one of the last remaining 'visible' bugs (that I know
4506 of). I think if I can clean up the session loading so it works
4511 of). I think if I can clean up the session loading so it works
4507 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4512 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4508 about licensing).
4513 about licensing).
4509
4514
4510 2001-11-25 Fernando Perez <fperez@colorado.edu>
4515 2001-11-25 Fernando Perez <fperez@colorado.edu>
4511
4516
4512 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4517 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4513 there's a cleaner distinction between what ? and ?? show.
4518 there's a cleaner distinction between what ? and ?? show.
4514
4519
4515 * Added screen_length option. Now the user can define his own
4520 * Added screen_length option. Now the user can define his own
4516 screen size for page() operations.
4521 screen size for page() operations.
4517
4522
4518 * Implemented magic shell-like functions with automatic code
4523 * Implemented magic shell-like functions with automatic code
4519 generation. Now adding another function is just a matter of adding
4524 generation. Now adding another function is just a matter of adding
4520 an entry to a dict, and the function is dynamically generated at
4525 an entry to a dict, and the function is dynamically generated at
4521 run-time. Python has some really cool features!
4526 run-time. Python has some really cool features!
4522
4527
4523 * Renamed many options to cleanup conventions a little. Now all
4528 * Renamed many options to cleanup conventions a little. Now all
4524 are lowercase, and only underscores where needed. Also in the code
4529 are lowercase, and only underscores where needed. Also in the code
4525 option name tables are clearer.
4530 option name tables are clearer.
4526
4531
4527 * Changed prompts a little. Now input is 'In [n]:' instead of
4532 * Changed prompts a little. Now input is 'In [n]:' instead of
4528 'In[n]:='. This allows it the numbers to be aligned with the
4533 'In[n]:='. This allows it the numbers to be aligned with the
4529 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4534 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4530 Python (it was a Mathematica thing). The '...' continuation prompt
4535 Python (it was a Mathematica thing). The '...' continuation prompt
4531 was also changed a little to align better.
4536 was also changed a little to align better.
4532
4537
4533 * Fixed bug when flushing output cache. Not all _p<n> variables
4538 * Fixed bug when flushing output cache. Not all _p<n> variables
4534 exist, so their deletion needs to be wrapped in a try:
4539 exist, so their deletion needs to be wrapped in a try:
4535
4540
4536 * Figured out how to properly use inspect.formatargspec() (it
4541 * Figured out how to properly use inspect.formatargspec() (it
4537 requires the args preceded by *). So I removed all the code from
4542 requires the args preceded by *). So I removed all the code from
4538 _get_pdef in Magic, which was just replicating that.
4543 _get_pdef in Magic, which was just replicating that.
4539
4544
4540 * Added test to prefilter to allow redefining magic function names
4545 * Added test to prefilter to allow redefining magic function names
4541 as variables. This is ok, since the @ form is always available,
4546 as variables. This is ok, since the @ form is always available,
4542 but whe should allow the user to define a variable called 'ls' if
4547 but whe should allow the user to define a variable called 'ls' if
4543 he needs it.
4548 he needs it.
4544
4549
4545 * Moved the ToDo information from README into a separate ToDo.
4550 * Moved the ToDo information from README into a separate ToDo.
4546
4551
4547 * General code cleanup and small bugfixes. I think it's close to a
4552 * General code cleanup and small bugfixes. I think it's close to a
4548 state where it can be released, obviously with a big 'beta'
4553 state where it can be released, obviously with a big 'beta'
4549 warning on it.
4554 warning on it.
4550
4555
4551 * Got the magic function split to work. Now all magics are defined
4556 * Got the magic function split to work. Now all magics are defined
4552 in a separate class. It just organizes things a bit, and now
4557 in a separate class. It just organizes things a bit, and now
4553 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4558 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4554 was too long).
4559 was too long).
4555
4560
4556 * Changed @clear to @reset to avoid potential confusions with
4561 * Changed @clear to @reset to avoid potential confusions with
4557 the shell command clear. Also renamed @cl to @clear, which does
4562 the shell command clear. Also renamed @cl to @clear, which does
4558 exactly what people expect it to from their shell experience.
4563 exactly what people expect it to from their shell experience.
4559
4564
4560 Added a check to the @reset command (since it's so
4565 Added a check to the @reset command (since it's so
4561 destructive, it's probably a good idea to ask for confirmation).
4566 destructive, it's probably a good idea to ask for confirmation).
4562 But now reset only works for full namespace resetting. Since the
4567 But now reset only works for full namespace resetting. Since the
4563 del keyword is already there for deleting a few specific
4568 del keyword is already there for deleting a few specific
4564 variables, I don't see the point of having a redundant magic
4569 variables, I don't see the point of having a redundant magic
4565 function for the same task.
4570 function for the same task.
4566
4571
4567 2001-11-24 Fernando Perez <fperez@colorado.edu>
4572 2001-11-24 Fernando Perez <fperez@colorado.edu>
4568
4573
4569 * Updated the builtin docs (esp. the ? ones).
4574 * Updated the builtin docs (esp. the ? ones).
4570
4575
4571 * Ran all the code through pychecker. Not terribly impressed with
4576 * Ran all the code through pychecker. Not terribly impressed with
4572 it: lots of spurious warnings and didn't really find anything of
4577 it: lots of spurious warnings and didn't really find anything of
4573 substance (just a few modules being imported and not used).
4578 substance (just a few modules being imported and not used).
4574
4579
4575 * Implemented the new ultraTB functionality into IPython. New
4580 * Implemented the new ultraTB functionality into IPython. New
4576 option: xcolors. This chooses color scheme. xmode now only selects
4581 option: xcolors. This chooses color scheme. xmode now only selects
4577 between Plain and Verbose. Better orthogonality.
4582 between Plain and Verbose. Better orthogonality.
4578
4583
4579 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4584 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4580 mode and color scheme for the exception handlers. Now it's
4585 mode and color scheme for the exception handlers. Now it's
4581 possible to have the verbose traceback with no coloring.
4586 possible to have the verbose traceback with no coloring.
4582
4587
4583 2001-11-23 Fernando Perez <fperez@colorado.edu>
4588 2001-11-23 Fernando Perez <fperez@colorado.edu>
4584
4589
4585 * Version 0.1.12 released, 0.1.13 opened.
4590 * Version 0.1.12 released, 0.1.13 opened.
4586
4591
4587 * Removed option to set auto-quote and auto-paren escapes by
4592 * Removed option to set auto-quote and auto-paren escapes by
4588 user. The chances of breaking valid syntax are just too high. If
4593 user. The chances of breaking valid syntax are just too high. If
4589 someone *really* wants, they can always dig into the code.
4594 someone *really* wants, they can always dig into the code.
4590
4595
4591 * Made prompt separators configurable.
4596 * Made prompt separators configurable.
4592
4597
4593 2001-11-22 Fernando Perez <fperez@colorado.edu>
4598 2001-11-22 Fernando Perez <fperez@colorado.edu>
4594
4599
4595 * Small bugfixes in many places.
4600 * Small bugfixes in many places.
4596
4601
4597 * Removed the MyCompleter class from ipplib. It seemed redundant
4602 * Removed the MyCompleter class from ipplib. It seemed redundant
4598 with the C-p,C-n history search functionality. Less code to
4603 with the C-p,C-n history search functionality. Less code to
4599 maintain.
4604 maintain.
4600
4605
4601 * Moved all the original ipython.py code into ipythonlib.py. Right
4606 * Moved all the original ipython.py code into ipythonlib.py. Right
4602 now it's just one big dump into a function called make_IPython, so
4607 now it's just one big dump into a function called make_IPython, so
4603 no real modularity has been gained. But at least it makes the
4608 no real modularity has been gained. But at least it makes the
4604 wrapper script tiny, and since ipythonlib is a module, it gets
4609 wrapper script tiny, and since ipythonlib is a module, it gets
4605 compiled and startup is much faster.
4610 compiled and startup is much faster.
4606
4611
4607 This is a reasobably 'deep' change, so we should test it for a
4612 This is a reasobably 'deep' change, so we should test it for a
4608 while without messing too much more with the code.
4613 while without messing too much more with the code.
4609
4614
4610 2001-11-21 Fernando Perez <fperez@colorado.edu>
4615 2001-11-21 Fernando Perez <fperez@colorado.edu>
4611
4616
4612 * Version 0.1.11 released, 0.1.12 opened for further work.
4617 * Version 0.1.11 released, 0.1.12 opened for further work.
4613
4618
4614 * Removed dependency on Itpl. It was only needed in one place. It
4619 * Removed dependency on Itpl. It was only needed in one place. It
4615 would be nice if this became part of python, though. It makes life
4620 would be nice if this became part of python, though. It makes life
4616 *a lot* easier in some cases.
4621 *a lot* easier in some cases.
4617
4622
4618 * Simplified the prefilter code a bit. Now all handlers are
4623 * Simplified the prefilter code a bit. Now all handlers are
4619 expected to explicitly return a value (at least a blank string).
4624 expected to explicitly return a value (at least a blank string).
4620
4625
4621 * Heavy edits in ipplib. Removed the help system altogether. Now
4626 * Heavy edits in ipplib. Removed the help system altogether. Now
4622 obj?/?? is used for inspecting objects, a magic @doc prints
4627 obj?/?? is used for inspecting objects, a magic @doc prints
4623 docstrings, and full-blown Python help is accessed via the 'help'
4628 docstrings, and full-blown Python help is accessed via the 'help'
4624 keyword. This cleans up a lot of code (less to maintain) and does
4629 keyword. This cleans up a lot of code (less to maintain) and does
4625 the job. Since 'help' is now a standard Python component, might as
4630 the job. Since 'help' is now a standard Python component, might as
4626 well use it and remove duplicate functionality.
4631 well use it and remove duplicate functionality.
4627
4632
4628 Also removed the option to use ipplib as a standalone program. By
4633 Also removed the option to use ipplib as a standalone program. By
4629 now it's too dependent on other parts of IPython to function alone.
4634 now it's too dependent on other parts of IPython to function alone.
4630
4635
4631 * Fixed bug in genutils.pager. It would crash if the pager was
4636 * Fixed bug in genutils.pager. It would crash if the pager was
4632 exited immediately after opening (broken pipe).
4637 exited immediately after opening (broken pipe).
4633
4638
4634 * Trimmed down the VerboseTB reporting a little. The header is
4639 * Trimmed down the VerboseTB reporting a little. The header is
4635 much shorter now and the repeated exception arguments at the end
4640 much shorter now and the repeated exception arguments at the end
4636 have been removed. For interactive use the old header seemed a bit
4641 have been removed. For interactive use the old header seemed a bit
4637 excessive.
4642 excessive.
4638
4643
4639 * Fixed small bug in output of @whos for variables with multi-word
4644 * Fixed small bug in output of @whos for variables with multi-word
4640 types (only first word was displayed).
4645 types (only first word was displayed).
4641
4646
4642 2001-11-17 Fernando Perez <fperez@colorado.edu>
4647 2001-11-17 Fernando Perez <fperez@colorado.edu>
4643
4648
4644 * Version 0.1.10 released, 0.1.11 opened for further work.
4649 * Version 0.1.10 released, 0.1.11 opened for further work.
4645
4650
4646 * Modified dirs and friends. dirs now *returns* the stack (not
4651 * Modified dirs and friends. dirs now *returns* the stack (not
4647 prints), so one can manipulate it as a variable. Convenient to
4652 prints), so one can manipulate it as a variable. Convenient to
4648 travel along many directories.
4653 travel along many directories.
4649
4654
4650 * Fixed bug in magic_pdef: would only work with functions with
4655 * Fixed bug in magic_pdef: would only work with functions with
4651 arguments with default values.
4656 arguments with default values.
4652
4657
4653 2001-11-14 Fernando Perez <fperez@colorado.edu>
4658 2001-11-14 Fernando Perez <fperez@colorado.edu>
4654
4659
4655 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4660 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4656 example with IPython. Various other minor fixes and cleanups.
4661 example with IPython. Various other minor fixes and cleanups.
4657
4662
4658 * Version 0.1.9 released, 0.1.10 opened for further work.
4663 * Version 0.1.9 released, 0.1.10 opened for further work.
4659
4664
4660 * Added sys.path to the list of directories searched in the
4665 * Added sys.path to the list of directories searched in the
4661 execfile= option. It used to be the current directory and the
4666 execfile= option. It used to be the current directory and the
4662 user's IPYTHONDIR only.
4667 user's IPYTHONDIR only.
4663
4668
4664 2001-11-13 Fernando Perez <fperez@colorado.edu>
4669 2001-11-13 Fernando Perez <fperez@colorado.edu>
4665
4670
4666 * Reinstated the raw_input/prefilter separation that Janko had
4671 * Reinstated the raw_input/prefilter separation that Janko had
4667 initially. This gives a more convenient setup for extending the
4672 initially. This gives a more convenient setup for extending the
4668 pre-processor from the outside: raw_input always gets a string,
4673 pre-processor from the outside: raw_input always gets a string,
4669 and prefilter has to process it. We can then redefine prefilter
4674 and prefilter has to process it. We can then redefine prefilter
4670 from the outside and implement extensions for special
4675 from the outside and implement extensions for special
4671 purposes.
4676 purposes.
4672
4677
4673 Today I got one for inputting PhysicalQuantity objects
4678 Today I got one for inputting PhysicalQuantity objects
4674 (from Scientific) without needing any function calls at
4679 (from Scientific) without needing any function calls at
4675 all. Extremely convenient, and it's all done as a user-level
4680 all. Extremely convenient, and it's all done as a user-level
4676 extension (no IPython code was touched). Now instead of:
4681 extension (no IPython code was touched). Now instead of:
4677 a = PhysicalQuantity(4.2,'m/s**2')
4682 a = PhysicalQuantity(4.2,'m/s**2')
4678 one can simply say
4683 one can simply say
4679 a = 4.2 m/s**2
4684 a = 4.2 m/s**2
4680 or even
4685 or even
4681 a = 4.2 m/s^2
4686 a = 4.2 m/s^2
4682
4687
4683 I use this, but it's also a proof of concept: IPython really is
4688 I use this, but it's also a proof of concept: IPython really is
4684 fully user-extensible, even at the level of the parsing of the
4689 fully user-extensible, even at the level of the parsing of the
4685 command line. It's not trivial, but it's perfectly doable.
4690 command line. It's not trivial, but it's perfectly doable.
4686
4691
4687 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4692 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4688 the problem of modules being loaded in the inverse order in which
4693 the problem of modules being loaded in the inverse order in which
4689 they were defined in
4694 they were defined in
4690
4695
4691 * Version 0.1.8 released, 0.1.9 opened for further work.
4696 * Version 0.1.8 released, 0.1.9 opened for further work.
4692
4697
4693 * Added magics pdef, source and file. They respectively show the
4698 * Added magics pdef, source and file. They respectively show the
4694 definition line ('prototype' in C), source code and full python
4699 definition line ('prototype' in C), source code and full python
4695 file for any callable object. The object inspector oinfo uses
4700 file for any callable object. The object inspector oinfo uses
4696 these to show the same information.
4701 these to show the same information.
4697
4702
4698 * Version 0.1.7 released, 0.1.8 opened for further work.
4703 * Version 0.1.7 released, 0.1.8 opened for further work.
4699
4704
4700 * Separated all the magic functions into a class called Magic. The
4705 * Separated all the magic functions into a class called Magic. The
4701 InteractiveShell class was becoming too big for Xemacs to handle
4706 InteractiveShell class was becoming too big for Xemacs to handle
4702 (de-indenting a line would lock it up for 10 seconds while it
4707 (de-indenting a line would lock it up for 10 seconds while it
4703 backtracked on the whole class!)
4708 backtracked on the whole class!)
4704
4709
4705 FIXME: didn't work. It can be done, but right now namespaces are
4710 FIXME: didn't work. It can be done, but right now namespaces are
4706 all messed up. Do it later (reverted it for now, so at least
4711 all messed up. Do it later (reverted it for now, so at least
4707 everything works as before).
4712 everything works as before).
4708
4713
4709 * Got the object introspection system (magic_oinfo) working! I
4714 * Got the object introspection system (magic_oinfo) working! I
4710 think this is pretty much ready for release to Janko, so he can
4715 think this is pretty much ready for release to Janko, so he can
4711 test it for a while and then announce it. Pretty much 100% of what
4716 test it for a while and then announce it. Pretty much 100% of what
4712 I wanted for the 'phase 1' release is ready. Happy, tired.
4717 I wanted for the 'phase 1' release is ready. Happy, tired.
4713
4718
4714 2001-11-12 Fernando Perez <fperez@colorado.edu>
4719 2001-11-12 Fernando Perez <fperez@colorado.edu>
4715
4720
4716 * Version 0.1.6 released, 0.1.7 opened for further work.
4721 * Version 0.1.6 released, 0.1.7 opened for further work.
4717
4722
4718 * Fixed bug in printing: it used to test for truth before
4723 * Fixed bug in printing: it used to test for truth before
4719 printing, so 0 wouldn't print. Now checks for None.
4724 printing, so 0 wouldn't print. Now checks for None.
4720
4725
4721 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4726 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4722 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4727 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4723 reaches by hand into the outputcache. Think of a better way to do
4728 reaches by hand into the outputcache. Think of a better way to do
4724 this later.
4729 this later.
4725
4730
4726 * Various small fixes thanks to Nathan's comments.
4731 * Various small fixes thanks to Nathan's comments.
4727
4732
4728 * Changed magic_pprint to magic_Pprint. This way it doesn't
4733 * Changed magic_pprint to magic_Pprint. This way it doesn't
4729 collide with pprint() and the name is consistent with the command
4734 collide with pprint() and the name is consistent with the command
4730 line option.
4735 line option.
4731
4736
4732 * Changed prompt counter behavior to be fully like
4737 * Changed prompt counter behavior to be fully like
4733 Mathematica's. That is, even input that doesn't return a result
4738 Mathematica's. That is, even input that doesn't return a result
4734 raises the prompt counter. The old behavior was kind of confusing
4739 raises the prompt counter. The old behavior was kind of confusing
4735 (getting the same prompt number several times if the operation
4740 (getting the same prompt number several times if the operation
4736 didn't return a result).
4741 didn't return a result).
4737
4742
4738 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4743 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4739
4744
4740 * Fixed -Classic mode (wasn't working anymore).
4745 * Fixed -Classic mode (wasn't working anymore).
4741
4746
4742 * Added colored prompts using Nathan's new code. Colors are
4747 * Added colored prompts using Nathan's new code. Colors are
4743 currently hardwired, they can be user-configurable. For
4748 currently hardwired, they can be user-configurable. For
4744 developers, they can be chosen in file ipythonlib.py, at the
4749 developers, they can be chosen in file ipythonlib.py, at the
4745 beginning of the CachedOutput class def.
4750 beginning of the CachedOutput class def.
4746
4751
4747 2001-11-11 Fernando Perez <fperez@colorado.edu>
4752 2001-11-11 Fernando Perez <fperez@colorado.edu>
4748
4753
4749 * Version 0.1.5 released, 0.1.6 opened for further work.
4754 * Version 0.1.5 released, 0.1.6 opened for further work.
4750
4755
4751 * Changed magic_env to *return* the environment as a dict (not to
4756 * Changed magic_env to *return* the environment as a dict (not to
4752 print it). This way it prints, but it can also be processed.
4757 print it). This way it prints, but it can also be processed.
4753
4758
4754 * Added Verbose exception reporting to interactive
4759 * Added Verbose exception reporting to interactive
4755 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4760 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4756 traceback. Had to make some changes to the ultraTB file. This is
4761 traceback. Had to make some changes to the ultraTB file. This is
4757 probably the last 'big' thing in my mental todo list. This ties
4762 probably the last 'big' thing in my mental todo list. This ties
4758 in with the next entry:
4763 in with the next entry:
4759
4764
4760 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4765 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4761 has to specify is Plain, Color or Verbose for all exception
4766 has to specify is Plain, Color or Verbose for all exception
4762 handling.
4767 handling.
4763
4768
4764 * Removed ShellServices option. All this can really be done via
4769 * Removed ShellServices option. All this can really be done via
4765 the magic system. It's easier to extend, cleaner and has automatic
4770 the magic system. It's easier to extend, cleaner and has automatic
4766 namespace protection and documentation.
4771 namespace protection and documentation.
4767
4772
4768 2001-11-09 Fernando Perez <fperez@colorado.edu>
4773 2001-11-09 Fernando Perez <fperez@colorado.edu>
4769
4774
4770 * Fixed bug in output cache flushing (missing parameter to
4775 * Fixed bug in output cache flushing (missing parameter to
4771 __init__). Other small bugs fixed (found using pychecker).
4776 __init__). Other small bugs fixed (found using pychecker).
4772
4777
4773 * Version 0.1.4 opened for bugfixing.
4778 * Version 0.1.4 opened for bugfixing.
4774
4779
4775 2001-11-07 Fernando Perez <fperez@colorado.edu>
4780 2001-11-07 Fernando Perez <fperez@colorado.edu>
4776
4781
4777 * Version 0.1.3 released, mainly because of the raw_input bug.
4782 * Version 0.1.3 released, mainly because of the raw_input bug.
4778
4783
4779 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4784 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4780 and when testing for whether things were callable, a call could
4785 and when testing for whether things were callable, a call could
4781 actually be made to certain functions. They would get called again
4786 actually be made to certain functions. They would get called again
4782 once 'really' executed, with a resulting double call. A disaster
4787 once 'really' executed, with a resulting double call. A disaster
4783 in many cases (list.reverse() would never work!).
4788 in many cases (list.reverse() would never work!).
4784
4789
4785 * Removed prefilter() function, moved its code to raw_input (which
4790 * Removed prefilter() function, moved its code to raw_input (which
4786 after all was just a near-empty caller for prefilter). This saves
4791 after all was just a near-empty caller for prefilter). This saves
4787 a function call on every prompt, and simplifies the class a tiny bit.
4792 a function call on every prompt, and simplifies the class a tiny bit.
4788
4793
4789 * Fix _ip to __ip name in magic example file.
4794 * Fix _ip to __ip name in magic example file.
4790
4795
4791 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4796 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4792 work with non-gnu versions of tar.
4797 work with non-gnu versions of tar.
4793
4798
4794 2001-11-06 Fernando Perez <fperez@colorado.edu>
4799 2001-11-06 Fernando Perez <fperez@colorado.edu>
4795
4800
4796 * Version 0.1.2. Just to keep track of the recent changes.
4801 * Version 0.1.2. Just to keep track of the recent changes.
4797
4802
4798 * Fixed nasty bug in output prompt routine. It used to check 'if
4803 * Fixed nasty bug in output prompt routine. It used to check 'if
4799 arg != None...'. Problem is, this fails if arg implements a
4804 arg != None...'. Problem is, this fails if arg implements a
4800 special comparison (__cmp__) which disallows comparing to
4805 special comparison (__cmp__) which disallows comparing to
4801 None. Found it when trying to use the PhysicalQuantity module from
4806 None. Found it when trying to use the PhysicalQuantity module from
4802 ScientificPython.
4807 ScientificPython.
4803
4808
4804 2001-11-05 Fernando Perez <fperez@colorado.edu>
4809 2001-11-05 Fernando Perez <fperez@colorado.edu>
4805
4810
4806 * Also added dirs. Now the pushd/popd/dirs family functions
4811 * Also added dirs. Now the pushd/popd/dirs family functions
4807 basically like the shell, with the added convenience of going home
4812 basically like the shell, with the added convenience of going home
4808 when called with no args.
4813 when called with no args.
4809
4814
4810 * pushd/popd slightly modified to mimic shell behavior more
4815 * pushd/popd slightly modified to mimic shell behavior more
4811 closely.
4816 closely.
4812
4817
4813 * Added env,pushd,popd from ShellServices as magic functions. I
4818 * Added env,pushd,popd from ShellServices as magic functions. I
4814 think the cleanest will be to port all desired functions from
4819 think the cleanest will be to port all desired functions from
4815 ShellServices as magics and remove ShellServices altogether. This
4820 ShellServices as magics and remove ShellServices altogether. This
4816 will provide a single, clean way of adding functionality
4821 will provide a single, clean way of adding functionality
4817 (shell-type or otherwise) to IP.
4822 (shell-type or otherwise) to IP.
4818
4823
4819 2001-11-04 Fernando Perez <fperez@colorado.edu>
4824 2001-11-04 Fernando Perez <fperez@colorado.edu>
4820
4825
4821 * Added .ipython/ directory to sys.path. This way users can keep
4826 * Added .ipython/ directory to sys.path. This way users can keep
4822 customizations there and access them via import.
4827 customizations there and access them via import.
4823
4828
4824 2001-11-03 Fernando Perez <fperez@colorado.edu>
4829 2001-11-03 Fernando Perez <fperez@colorado.edu>
4825
4830
4826 * Opened version 0.1.1 for new changes.
4831 * Opened version 0.1.1 for new changes.
4827
4832
4828 * Changed version number to 0.1.0: first 'public' release, sent to
4833 * Changed version number to 0.1.0: first 'public' release, sent to
4829 Nathan and Janko.
4834 Nathan and Janko.
4830
4835
4831 * Lots of small fixes and tweaks.
4836 * Lots of small fixes and tweaks.
4832
4837
4833 * Minor changes to whos format. Now strings are shown, snipped if
4838 * Minor changes to whos format. Now strings are shown, snipped if
4834 too long.
4839 too long.
4835
4840
4836 * Changed ShellServices to work on __main__ so they show up in @who
4841 * Changed ShellServices to work on __main__ so they show up in @who
4837
4842
4838 * Help also works with ? at the end of a line:
4843 * Help also works with ? at the end of a line:
4839 ?sin and sin?
4844 ?sin and sin?
4840 both produce the same effect. This is nice, as often I use the
4845 both produce the same effect. This is nice, as often I use the
4841 tab-complete to find the name of a method, but I used to then have
4846 tab-complete to find the name of a method, but I used to then have
4842 to go to the beginning of the line to put a ? if I wanted more
4847 to go to the beginning of the line to put a ? if I wanted more
4843 info. Now I can just add the ? and hit return. Convenient.
4848 info. Now I can just add the ? and hit return. Convenient.
4844
4849
4845 2001-11-02 Fernando Perez <fperez@colorado.edu>
4850 2001-11-02 Fernando Perez <fperez@colorado.edu>
4846
4851
4847 * Python version check (>=2.1) added.
4852 * Python version check (>=2.1) added.
4848
4853
4849 * Added LazyPython documentation. At this point the docs are quite
4854 * Added LazyPython documentation. At this point the docs are quite
4850 a mess. A cleanup is in order.
4855 a mess. A cleanup is in order.
4851
4856
4852 * Auto-installer created. For some bizarre reason, the zipfiles
4857 * Auto-installer created. For some bizarre reason, the zipfiles
4853 module isn't working on my system. So I made a tar version
4858 module isn't working on my system. So I made a tar version
4854 (hopefully the command line options in various systems won't kill
4859 (hopefully the command line options in various systems won't kill
4855 me).
4860 me).
4856
4861
4857 * Fixes to Struct in genutils. Now all dictionary-like methods are
4862 * Fixes to Struct in genutils. Now all dictionary-like methods are
4858 protected (reasonably).
4863 protected (reasonably).
4859
4864
4860 * Added pager function to genutils and changed ? to print usage
4865 * Added pager function to genutils and changed ? to print usage
4861 note through it (it was too long).
4866 note through it (it was too long).
4862
4867
4863 * Added the LazyPython functionality. Works great! I changed the
4868 * Added the LazyPython functionality. Works great! I changed the
4864 auto-quote escape to ';', it's on home row and next to '. But
4869 auto-quote escape to ';', it's on home row and next to '. But
4865 both auto-quote and auto-paren (still /) escapes are command-line
4870 both auto-quote and auto-paren (still /) escapes are command-line
4866 parameters.
4871 parameters.
4867
4872
4868
4873
4869 2001-11-01 Fernando Perez <fperez@colorado.edu>
4874 2001-11-01 Fernando Perez <fperez@colorado.edu>
4870
4875
4871 * Version changed to 0.0.7. Fairly large change: configuration now
4876 * Version changed to 0.0.7. Fairly large change: configuration now
4872 is all stored in a directory, by default .ipython. There, all
4877 is all stored in a directory, by default .ipython. There, all
4873 config files have normal looking names (not .names)
4878 config files have normal looking names (not .names)
4874
4879
4875 * Version 0.0.6 Released first to Lucas and Archie as a test
4880 * Version 0.0.6 Released first to Lucas and Archie as a test
4876 run. Since it's the first 'semi-public' release, change version to
4881 run. Since it's the first 'semi-public' release, change version to
4877 > 0.0.6 for any changes now.
4882 > 0.0.6 for any changes now.
4878
4883
4879 * Stuff I had put in the ipplib.py changelog:
4884 * Stuff I had put in the ipplib.py changelog:
4880
4885
4881 Changes to InteractiveShell:
4886 Changes to InteractiveShell:
4882
4887
4883 - Made the usage message a parameter.
4888 - Made the usage message a parameter.
4884
4889
4885 - Require the name of the shell variable to be given. It's a bit
4890 - Require the name of the shell variable to be given. It's a bit
4886 of a hack, but allows the name 'shell' not to be hardwire in the
4891 of a hack, but allows the name 'shell' not to be hardwire in the
4887 magic (@) handler, which is problematic b/c it requires
4892 magic (@) handler, which is problematic b/c it requires
4888 polluting the global namespace with 'shell'. This in turn is
4893 polluting the global namespace with 'shell'. This in turn is
4889 fragile: if a user redefines a variable called shell, things
4894 fragile: if a user redefines a variable called shell, things
4890 break.
4895 break.
4891
4896
4892 - magic @: all functions available through @ need to be defined
4897 - magic @: all functions available through @ need to be defined
4893 as magic_<name>, even though they can be called simply as
4898 as magic_<name>, even though they can be called simply as
4894 @<name>. This allows the special command @magic to gather
4899 @<name>. This allows the special command @magic to gather
4895 information automatically about all existing magic functions,
4900 information automatically about all existing magic functions,
4896 even if they are run-time user extensions, by parsing the shell
4901 even if they are run-time user extensions, by parsing the shell
4897 instance __dict__ looking for special magic_ names.
4902 instance __dict__ looking for special magic_ names.
4898
4903
4899 - mainloop: added *two* local namespace parameters. This allows
4904 - mainloop: added *two* local namespace parameters. This allows
4900 the class to differentiate between parameters which were there
4905 the class to differentiate between parameters which were there
4901 before and after command line initialization was processed. This
4906 before and after command line initialization was processed. This
4902 way, later @who can show things loaded at startup by the
4907 way, later @who can show things loaded at startup by the
4903 user. This trick was necessary to make session saving/reloading
4908 user. This trick was necessary to make session saving/reloading
4904 really work: ideally after saving/exiting/reloading a session,
4909 really work: ideally after saving/exiting/reloading a session,
4905 *everythin* should look the same, including the output of @who. I
4910 *everythin* should look the same, including the output of @who. I
4906 was only able to make this work with this double namespace
4911 was only able to make this work with this double namespace
4907 trick.
4912 trick.
4908
4913
4909 - added a header to the logfile which allows (almost) full
4914 - added a header to the logfile which allows (almost) full
4910 session restoring.
4915 session restoring.
4911
4916
4912 - prepend lines beginning with @ or !, with a and log
4917 - prepend lines beginning with @ or !, with a and log
4913 them. Why? !lines: may be useful to know what you did @lines:
4918 them. Why? !lines: may be useful to know what you did @lines:
4914 they may affect session state. So when restoring a session, at
4919 they may affect session state. So when restoring a session, at
4915 least inform the user of their presence. I couldn't quite get
4920 least inform the user of their presence. I couldn't quite get
4916 them to properly re-execute, but at least the user is warned.
4921 them to properly re-execute, but at least the user is warned.
4917
4922
4918 * Started ChangeLog.
4923 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now