##// END OF EJS Templates
Fix changelog, broken in previous commit
fperez -
Show More
@@ -1,4567 +1,4568 b''
1 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/iplib.py (edit_syntax_error): added support for
4 automatically reopening the editor if the file had a syntax error
5 in it. Thanks to scottt who provided the patch at:
6 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
7 version committed).
8
3 * IPython/iplib.py (handle_normal): add suport for multi-line
9 * IPython/iplib.py (handle_normal): add suport for multi-line
4 input with emtpy lines. This fixes
10 input with emtpy lines. This fixes
5 http://www.scipy.net/roundup/ipython/issue43 and a similar
11 http://www.scipy.net/roundup/ipython/issue43 and a similar
6 discussion on the user list.
12 discussion on the user list.
7 (edit_syntax_error): added support for automatically reopening the
8 editor if the file had a syntax error in it. Thanks to scottt who
9 provided the patch at:
10 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
11 version committed).
12
13
13 WARNING: a behavior change is necessarily introduced to support
14 WARNING: a behavior change is necessarily introduced to support
14 blank lines: now a single blank line with whitespace does NOT
15 blank lines: now a single blank line with whitespace does NOT
15 break the input loop, which means that when autoindent is on, by
16 break the input loop, which means that when autoindent is on, by
16 default hitting return on the next (indented) line does NOT exit.
17 default hitting return on the next (indented) line does NOT exit.
17
18
18 Instead, to exit a multiline input you can either have:
19 Instead, to exit a multiline input you can either have:
19
20
20 - TWO whitespace lines (just hit return again), or
21 - TWO whitespace lines (just hit return again), or
21 - a single whitespace line of a different length than provided
22 - a single whitespace line of a different length than provided
22 by the autoindent (add or remove a space).
23 by the autoindent (add or remove a space).
23
24
24 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
25 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
25 module to better organize all readline-related functionality.
26 module to better organize all readline-related functionality.
26 I've deleted FlexCompleter and put all completion clases here.
27 I've deleted FlexCompleter and put all completion clases here.
27
28
28 * IPython/iplib.py (raw_input): improve indentation management.
29 * IPython/iplib.py (raw_input): improve indentation management.
29 It is now possible to paste indented code with autoindent on, and
30 It is now possible to paste indented code with autoindent on, and
30 the code is interpreted correctly (though it still looks bad on
31 the code is interpreted correctly (though it still looks bad on
31 screen, due to the line-oriented nature of ipython).
32 screen, due to the line-oriented nature of ipython).
32 (MagicCompleter.complete): change behavior so that a TAB key on an
33 (MagicCompleter.complete): change behavior so that a TAB key on an
33 otherwise empty line actually inserts a tab, instead of completing
34 otherwise empty line actually inserts a tab, instead of completing
34 on the entire global namespace. This makes it easier to use the
35 on the entire global namespace. This makes it easier to use the
35 TAB key for indentation. After a request by Hans Meine
36 TAB key for indentation. After a request by Hans Meine
36 <hans_meine-AT-gmx.net>
37 <hans_meine-AT-gmx.net>
37 (_prefilter): add support so that typing plain 'exit' or 'quit'
38 (_prefilter): add support so that typing plain 'exit' or 'quit'
38 does a sensible thing. Originally I tried to deviate as little as
39 does a sensible thing. Originally I tried to deviate as little as
39 possible from the default python behavior, but even that one may
40 possible from the default python behavior, but even that one may
40 change in this direction (thread on python-dev to that effect).
41 change in this direction (thread on python-dev to that effect).
41 Regardless, ipython should do the right thing even if CPython's
42 Regardless, ipython should do the right thing even if CPython's
42 '>>>' prompt doesn't.
43 '>>>' prompt doesn't.
43 (InteractiveShell): removed subclassing code.InteractiveConsole
44 (InteractiveShell): removed subclassing code.InteractiveConsole
44 class. By now we'd overridden just about all of its methods: I've
45 class. By now we'd overridden just about all of its methods: I've
45 copied the remaining two over, and now ipython is a standalone
46 copied the remaining two over, and now ipython is a standalone
46 class. This will provide a clearer picture for the chainsaw
47 class. This will provide a clearer picture for the chainsaw
47 branch refactoring.
48 branch refactoring.
48
49
49 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
50 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
50
51
51 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
52 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
52 failures for objects which break when dir() is called on them.
53 failures for objects which break when dir() is called on them.
53
54
54 * IPython/FlexCompleter.py (Completer.__init__): Added support for
55 * IPython/FlexCompleter.py (Completer.__init__): Added support for
55 distinct local and global namespaces in the completer API. This
56 distinct local and global namespaces in the completer API. This
56 change allows us top properly handle completion with distinct
57 change allows us top properly handle completion with distinct
57 scopes, including in embedded instances (this had never really
58 scopes, including in embedded instances (this had never really
58 worked correctly).
59 worked correctly).
59
60
60 Note: this introduces a change in the constructor for
61 Note: this introduces a change in the constructor for
61 MagicCompleter, as a new global_namespace parameter is now the
62 MagicCompleter, as a new global_namespace parameter is now the
62 second argument (the others were bumped one position).
63 second argument (the others were bumped one position).
63
64
64 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
65 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
65
66
66 * IPython/iplib.py (embed_mainloop): fix tab-completion in
67 * IPython/iplib.py (embed_mainloop): fix tab-completion in
67 embedded instances (which can be done now thanks to Vivian's
68 embedded instances (which can be done now thanks to Vivian's
68 frame-handling fixes for pdb).
69 frame-handling fixes for pdb).
69 (InteractiveShell.__init__): Fix namespace handling problem in
70 (InteractiveShell.__init__): Fix namespace handling problem in
70 embedded instances. We were overwriting __main__ unconditionally,
71 embedded instances. We were overwriting __main__ unconditionally,
71 and this should only be done for 'full' (non-embedded) IPython;
72 and this should only be done for 'full' (non-embedded) IPython;
72 embedded instances must respect the caller's __main__. Thanks to
73 embedded instances must respect the caller's __main__. Thanks to
73 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
74 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
74
75
75 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
76 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
76
77
77 * setup.py: added download_url to setup(). This registers the
78 * setup.py: added download_url to setup(). This registers the
78 download address at PyPI, which is not only useful to humans
79 download address at PyPI, which is not only useful to humans
79 browsing the site, but is also picked up by setuptools (the Eggs
80 browsing the site, but is also picked up by setuptools (the Eggs
80 machinery). Thanks to Ville and R. Kern for the info/discussion
81 machinery). Thanks to Ville and R. Kern for the info/discussion
81 on this.
82 on this.
82
83
83 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
84 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
84
85
85 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
86 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
86 This brings a lot of nice functionality to the pdb mode, which now
87 This brings a lot of nice functionality to the pdb mode, which now
87 has tab-completion, syntax highlighting, and better stack handling
88 has tab-completion, syntax highlighting, and better stack handling
88 than before. Many thanks to Vivian De Smedt
89 than before. Many thanks to Vivian De Smedt
89 <vivian-AT-vdesmedt.com> for the original patches.
90 <vivian-AT-vdesmedt.com> for the original patches.
90
91
91 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
92 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
92
93
93 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
94 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
94 sequence to consistently accept the banner argument. The
95 sequence to consistently accept the banner argument. The
95 inconsistency was tripping SAGE, thanks to Gary Zablackis
96 inconsistency was tripping SAGE, thanks to Gary Zablackis
96 <gzabl-AT-yahoo.com> for the report.
97 <gzabl-AT-yahoo.com> for the report.
97
98
98 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
99 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
99
100
100 * IPython/iplib.py (InteractiveShell.post_config_initialization):
101 * IPython/iplib.py (InteractiveShell.post_config_initialization):
101 Fix bug where a naked 'alias' call in the ipythonrc file would
102 Fix bug where a naked 'alias' call in the ipythonrc file would
102 cause a crash. Bug reported by Jorgen Stenarson.
103 cause a crash. Bug reported by Jorgen Stenarson.
103
104
104 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
105 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
105
106
106 * IPython/ipmaker.py (make_IPython): cleanups which should improve
107 * IPython/ipmaker.py (make_IPython): cleanups which should improve
107 startup time.
108 startup time.
108
109
109 * IPython/iplib.py (runcode): my globals 'fix' for embedded
110 * IPython/iplib.py (runcode): my globals 'fix' for embedded
110 instances had introduced a bug with globals in normal code. Now
111 instances had introduced a bug with globals in normal code. Now
111 it's working in all cases.
112 it's working in all cases.
112
113
113 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
114 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
114 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
115 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
115 has been introduced to set the default case sensitivity of the
116 has been introduced to set the default case sensitivity of the
116 searches. Users can still select either mode at runtime on a
117 searches. Users can still select either mode at runtime on a
117 per-search basis.
118 per-search basis.
118
119
119 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
120 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
120
121
121 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
122 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
122 attributes in wildcard searches for subclasses. Modified version
123 attributes in wildcard searches for subclasses. Modified version
123 of a patch by Jorgen.
124 of a patch by Jorgen.
124
125
125 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
126 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
126
127
127 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
128 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
128 embedded instances. I added a user_global_ns attribute to the
129 embedded instances. I added a user_global_ns attribute to the
129 InteractiveShell class to handle this.
130 InteractiveShell class to handle this.
130
131
131 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
132 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
132
133
133 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
134 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
134 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
135 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
135 (reported under win32, but may happen also in other platforms).
136 (reported under win32, but may happen also in other platforms).
136 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
137 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
137
138
138 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
139 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
139
140
140 * IPython/Magic.py (magic_psearch): new support for wildcard
141 * IPython/Magic.py (magic_psearch): new support for wildcard
141 patterns. Now, typing ?a*b will list all names which begin with a
142 patterns. Now, typing ?a*b will list all names which begin with a
142 and end in b, for example. The %psearch magic has full
143 and end in b, for example. The %psearch magic has full
143 docstrings. Many thanks to JΓΆrgen Stenarson
144 docstrings. Many thanks to JΓΆrgen Stenarson
144 <jorgen.stenarson-AT-bostream.nu>, author of the patches
145 <jorgen.stenarson-AT-bostream.nu>, author of the patches
145 implementing this functionality.
146 implementing this functionality.
146
147
147 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
148 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
148
149
149 * Manual: fixed long-standing annoyance of double-dashes (as in
150 * Manual: fixed long-standing annoyance of double-dashes (as in
150 --prefix=~, for example) being stripped in the HTML version. This
151 --prefix=~, for example) being stripped in the HTML version. This
151 is a latex2html bug, but a workaround was provided. Many thanks
152 is a latex2html bug, but a workaround was provided. Many thanks
152 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
153 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
153 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
154 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
154 rolling. This seemingly small issue had tripped a number of users
155 rolling. This seemingly small issue had tripped a number of users
155 when first installing, so I'm glad to see it gone.
156 when first installing, so I'm glad to see it gone.
156
157
157 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
158 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
158
159
159 * IPython/Extensions/numeric_formats.py: fix missing import,
160 * IPython/Extensions/numeric_formats.py: fix missing import,
160 reported by Stephen Walton.
161 reported by Stephen Walton.
161
162
162 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
163 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
163
164
164 * IPython/demo.py: finish demo module, fully documented now.
165 * IPython/demo.py: finish demo module, fully documented now.
165
166
166 * IPython/genutils.py (file_read): simple little utility to read a
167 * IPython/genutils.py (file_read): simple little utility to read a
167 file and ensure it's closed afterwards.
168 file and ensure it's closed afterwards.
168
169
169 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
170 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
170
171
171 * IPython/demo.py (Demo.__init__): added support for individually
172 * IPython/demo.py (Demo.__init__): added support for individually
172 tagging blocks for automatic execution.
173 tagging blocks for automatic execution.
173
174
174 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
175 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
175 syntax-highlighted python sources, requested by John.
176 syntax-highlighted python sources, requested by John.
176
177
177 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
178 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
178
179
179 * IPython/demo.py (Demo.again): fix bug where again() blocks after
180 * IPython/demo.py (Demo.again): fix bug where again() blocks after
180 finishing.
181 finishing.
181
182
182 * IPython/genutils.py (shlex_split): moved from Magic to here,
183 * IPython/genutils.py (shlex_split): moved from Magic to here,
183 where all 2.2 compatibility stuff lives. I needed it for demo.py.
184 where all 2.2 compatibility stuff lives. I needed it for demo.py.
184
185
185 * IPython/demo.py (Demo.__init__): added support for silent
186 * IPython/demo.py (Demo.__init__): added support for silent
186 blocks, improved marks as regexps, docstrings written.
187 blocks, improved marks as regexps, docstrings written.
187 (Demo.__init__): better docstring, added support for sys.argv.
188 (Demo.__init__): better docstring, added support for sys.argv.
188
189
189 * IPython/genutils.py (marquee): little utility used by the demo
190 * IPython/genutils.py (marquee): little utility used by the demo
190 code, handy in general.
191 code, handy in general.
191
192
192 * IPython/demo.py (Demo.__init__): new class for interactive
193 * IPython/demo.py (Demo.__init__): new class for interactive
193 demos. Not documented yet, I just wrote it in a hurry for
194 demos. Not documented yet, I just wrote it in a hurry for
194 scipy'05. Will docstring later.
195 scipy'05. Will docstring later.
195
196
196 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
197 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
197
198
198 * IPython/Shell.py (sigint_handler): Drastic simplification which
199 * IPython/Shell.py (sigint_handler): Drastic simplification which
199 also seems to make Ctrl-C work correctly across threads! This is
200 also seems to make Ctrl-C work correctly across threads! This is
200 so simple, that I can't beleive I'd missed it before. Needs more
201 so simple, that I can't beleive I'd missed it before. Needs more
201 testing, though.
202 testing, though.
202 (KBINT): Never mind, revert changes. I'm sure I'd tried something
203 (KBINT): Never mind, revert changes. I'm sure I'd tried something
203 like this before...
204 like this before...
204
205
205 * IPython/genutils.py (get_home_dir): add protection against
206 * IPython/genutils.py (get_home_dir): add protection against
206 non-dirs in win32 registry.
207 non-dirs in win32 registry.
207
208
208 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
209 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
209 bug where dict was mutated while iterating (pysh crash).
210 bug where dict was mutated while iterating (pysh crash).
210
211
211 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
212 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
212
213
213 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
214 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
214 spurious newlines added by this routine. After a report by
215 spurious newlines added by this routine. After a report by
215 F. Mantegazza.
216 F. Mantegazza.
216
217
217 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
218 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
218
219
219 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
220 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
220 calls. These were a leftover from the GTK 1.x days, and can cause
221 calls. These were a leftover from the GTK 1.x days, and can cause
221 problems in certain cases (after a report by John Hunter).
222 problems in certain cases (after a report by John Hunter).
222
223
223 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
224 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
224 os.getcwd() fails at init time. Thanks to patch from David Remahl
225 os.getcwd() fails at init time. Thanks to patch from David Remahl
225 <chmod007-AT-mac.com>.
226 <chmod007-AT-mac.com>.
226 (InteractiveShell.__init__): prevent certain special magics from
227 (InteractiveShell.__init__): prevent certain special magics from
227 being shadowed by aliases. Closes
228 being shadowed by aliases. Closes
228 http://www.scipy.net/roundup/ipython/issue41.
229 http://www.scipy.net/roundup/ipython/issue41.
229
230
230 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
231 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
231
232
232 * IPython/iplib.py (InteractiveShell.complete): Added new
233 * IPython/iplib.py (InteractiveShell.complete): Added new
233 top-level completion method to expose the completion mechanism
234 top-level completion method to expose the completion mechanism
234 beyond readline-based environments.
235 beyond readline-based environments.
235
236
236 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
237 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
237
238
238 * tools/ipsvnc (svnversion): fix svnversion capture.
239 * tools/ipsvnc (svnversion): fix svnversion capture.
239
240
240 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
241 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
241 attribute to self, which was missing. Before, it was set by a
242 attribute to self, which was missing. Before, it was set by a
242 routine which in certain cases wasn't being called, so the
243 routine which in certain cases wasn't being called, so the
243 instance could end up missing the attribute. This caused a crash.
244 instance could end up missing the attribute. This caused a crash.
244 Closes http://www.scipy.net/roundup/ipython/issue40.
245 Closes http://www.scipy.net/roundup/ipython/issue40.
245
246
246 2005-08-16 Fernando Perez <fperez@colorado.edu>
247 2005-08-16 Fernando Perez <fperez@colorado.edu>
247
248
248 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
249 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
249 contains non-string attribute. Closes
250 contains non-string attribute. Closes
250 http://www.scipy.net/roundup/ipython/issue38.
251 http://www.scipy.net/roundup/ipython/issue38.
251
252
252 2005-08-14 Fernando Perez <fperez@colorado.edu>
253 2005-08-14 Fernando Perez <fperez@colorado.edu>
253
254
254 * tools/ipsvnc: Minor improvements, to add changeset info.
255 * tools/ipsvnc: Minor improvements, to add changeset info.
255
256
256 2005-08-12 Fernando Perez <fperez@colorado.edu>
257 2005-08-12 Fernando Perez <fperez@colorado.edu>
257
258
258 * IPython/iplib.py (runsource): remove self.code_to_run_src
259 * IPython/iplib.py (runsource): remove self.code_to_run_src
259 attribute. I realized this is nothing more than
260 attribute. I realized this is nothing more than
260 '\n'.join(self.buffer), and having the same data in two different
261 '\n'.join(self.buffer), and having the same data in two different
261 places is just asking for synchronization bugs. This may impact
262 places is just asking for synchronization bugs. This may impact
262 people who have custom exception handlers, so I need to warn
263 people who have custom exception handlers, so I need to warn
263 ipython-dev about it (F. Mantegazza may use them).
264 ipython-dev about it (F. Mantegazza may use them).
264
265
265 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
266 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
266
267
267 * IPython/genutils.py: fix 2.2 compatibility (generators)
268 * IPython/genutils.py: fix 2.2 compatibility (generators)
268
269
269 2005-07-18 Fernando Perez <fperez@colorado.edu>
270 2005-07-18 Fernando Perez <fperez@colorado.edu>
270
271
271 * IPython/genutils.py (get_home_dir): fix to help users with
272 * IPython/genutils.py (get_home_dir): fix to help users with
272 invalid $HOME under win32.
273 invalid $HOME under win32.
273
274
274 2005-07-17 Fernando Perez <fperez@colorado.edu>
275 2005-07-17 Fernando Perez <fperez@colorado.edu>
275
276
276 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
277 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
277 some old hacks and clean up a bit other routines; code should be
278 some old hacks and clean up a bit other routines; code should be
278 simpler and a bit faster.
279 simpler and a bit faster.
279
280
280 * IPython/iplib.py (interact): removed some last-resort attempts
281 * IPython/iplib.py (interact): removed some last-resort attempts
281 to survive broken stdout/stderr. That code was only making it
282 to survive broken stdout/stderr. That code was only making it
282 harder to abstract out the i/o (necessary for gui integration),
283 harder to abstract out the i/o (necessary for gui integration),
283 and the crashes it could prevent were extremely rare in practice
284 and the crashes it could prevent were extremely rare in practice
284 (besides being fully user-induced in a pretty violent manner).
285 (besides being fully user-induced in a pretty violent manner).
285
286
286 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
287 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
287 Nothing major yet, but the code is simpler to read; this should
288 Nothing major yet, but the code is simpler to read; this should
288 make it easier to do more serious modifications in the future.
289 make it easier to do more serious modifications in the future.
289
290
290 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
291 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
291 which broke in .15 (thanks to a report by Ville).
292 which broke in .15 (thanks to a report by Ville).
292
293
293 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
294 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
294 be quite correct, I know next to nothing about unicode). This
295 be quite correct, I know next to nothing about unicode). This
295 will allow unicode strings to be used in prompts, amongst other
296 will allow unicode strings to be used in prompts, amongst other
296 cases. It also will prevent ipython from crashing when unicode
297 cases. It also will prevent ipython from crashing when unicode
297 shows up unexpectedly in many places. If ascii encoding fails, we
298 shows up unexpectedly in many places. If ascii encoding fails, we
298 assume utf_8. Currently the encoding is not a user-visible
299 assume utf_8. Currently the encoding is not a user-visible
299 setting, though it could be made so if there is demand for it.
300 setting, though it could be made so if there is demand for it.
300
301
301 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
302 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
302
303
303 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
304 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
304
305
305 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
306 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
306
307
307 * IPython/genutils.py: Add 2.2 compatibility here, so all other
308 * IPython/genutils.py: Add 2.2 compatibility here, so all other
308 code can work transparently for 2.2/2.3.
309 code can work transparently for 2.2/2.3.
309
310
310 2005-07-16 Fernando Perez <fperez@colorado.edu>
311 2005-07-16 Fernando Perez <fperez@colorado.edu>
311
312
312 * IPython/ultraTB.py (ExceptionColors): Make a global variable
313 * IPython/ultraTB.py (ExceptionColors): Make a global variable
313 out of the color scheme table used for coloring exception
314 out of the color scheme table used for coloring exception
314 tracebacks. This allows user code to add new schemes at runtime.
315 tracebacks. This allows user code to add new schemes at runtime.
315 This is a minimally modified version of the patch at
316 This is a minimally modified version of the patch at
316 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
317 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
317 for the contribution.
318 for the contribution.
318
319
319 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
320 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
320 slightly modified version of the patch in
321 slightly modified version of the patch in
321 http://www.scipy.net/roundup/ipython/issue34, which also allows me
322 http://www.scipy.net/roundup/ipython/issue34, which also allows me
322 to remove the previous try/except solution (which was costlier).
323 to remove the previous try/except solution (which was costlier).
323 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
324 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
324
325
325 2005-06-08 Fernando Perez <fperez@colorado.edu>
326 2005-06-08 Fernando Perez <fperez@colorado.edu>
326
327
327 * IPython/iplib.py (write/write_err): Add methods to abstract all
328 * IPython/iplib.py (write/write_err): Add methods to abstract all
328 I/O a bit more.
329 I/O a bit more.
329
330
330 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
331 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
331 warning, reported by Aric Hagberg, fix by JD Hunter.
332 warning, reported by Aric Hagberg, fix by JD Hunter.
332
333
333 2005-06-02 *** Released version 0.6.15
334 2005-06-02 *** Released version 0.6.15
334
335
335 2005-06-01 Fernando Perez <fperez@colorado.edu>
336 2005-06-01 Fernando Perez <fperez@colorado.edu>
336
337
337 * IPython/iplib.py (MagicCompleter.file_matches): Fix
338 * IPython/iplib.py (MagicCompleter.file_matches): Fix
338 tab-completion of filenames within open-quoted strings. Note that
339 tab-completion of filenames within open-quoted strings. Note that
339 this requires that in ~/.ipython/ipythonrc, users change the
340 this requires that in ~/.ipython/ipythonrc, users change the
340 readline delimiters configuration to read:
341 readline delimiters configuration to read:
341
342
342 readline_remove_delims -/~
343 readline_remove_delims -/~
343
344
344
345
345 2005-05-31 *** Released version 0.6.14
346 2005-05-31 *** Released version 0.6.14
346
347
347 2005-05-29 Fernando Perez <fperez@colorado.edu>
348 2005-05-29 Fernando Perez <fperez@colorado.edu>
348
349
349 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
350 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
350 with files not on the filesystem. Reported by Eliyahu Sandler
351 with files not on the filesystem. Reported by Eliyahu Sandler
351 <eli@gondolin.net>
352 <eli@gondolin.net>
352
353
353 2005-05-22 Fernando Perez <fperez@colorado.edu>
354 2005-05-22 Fernando Perez <fperez@colorado.edu>
354
355
355 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
356 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
356 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
357 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
357
358
358 2005-05-19 Fernando Perez <fperez@colorado.edu>
359 2005-05-19 Fernando Perez <fperez@colorado.edu>
359
360
360 * IPython/iplib.py (safe_execfile): close a file which could be
361 * IPython/iplib.py (safe_execfile): close a file which could be
361 left open (causing problems in win32, which locks open files).
362 left open (causing problems in win32, which locks open files).
362 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
363 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
363
364
364 2005-05-18 Fernando Perez <fperez@colorado.edu>
365 2005-05-18 Fernando Perez <fperez@colorado.edu>
365
366
366 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
367 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
367 keyword arguments correctly to safe_execfile().
368 keyword arguments correctly to safe_execfile().
368
369
369 2005-05-13 Fernando Perez <fperez@colorado.edu>
370 2005-05-13 Fernando Perez <fperez@colorado.edu>
370
371
371 * ipython.1: Added info about Qt to manpage, and threads warning
372 * ipython.1: Added info about Qt to manpage, and threads warning
372 to usage page (invoked with --help).
373 to usage page (invoked with --help).
373
374
374 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
375 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
375 new matcher (it goes at the end of the priority list) to do
376 new matcher (it goes at the end of the priority list) to do
376 tab-completion on named function arguments. Submitted by George
377 tab-completion on named function arguments. Submitted by George
377 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
378 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
378 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
379 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
379 for more details.
380 for more details.
380
381
381 * IPython/Magic.py (magic_run): Added new -e flag to ignore
382 * IPython/Magic.py (magic_run): Added new -e flag to ignore
382 SystemExit exceptions in the script being run. Thanks to a report
383 SystemExit exceptions in the script being run. Thanks to a report
383 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
384 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
384 producing very annoying behavior when running unit tests.
385 producing very annoying behavior when running unit tests.
385
386
386 2005-05-12 Fernando Perez <fperez@colorado.edu>
387 2005-05-12 Fernando Perez <fperez@colorado.edu>
387
388
388 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
389 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
389 which I'd broken (again) due to a changed regexp. In the process,
390 which I'd broken (again) due to a changed regexp. In the process,
390 added ';' as an escape to auto-quote the whole line without
391 added ';' as an escape to auto-quote the whole line without
391 splitting its arguments. Thanks to a report by Jerry McRae
392 splitting its arguments. Thanks to a report by Jerry McRae
392 <qrs0xyc02-AT-sneakemail.com>.
393 <qrs0xyc02-AT-sneakemail.com>.
393
394
394 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
395 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
395 possible crashes caused by a TokenError. Reported by Ed Schofield
396 possible crashes caused by a TokenError. Reported by Ed Schofield
396 <schofield-AT-ftw.at>.
397 <schofield-AT-ftw.at>.
397
398
398 2005-05-06 Fernando Perez <fperez@colorado.edu>
399 2005-05-06 Fernando Perez <fperez@colorado.edu>
399
400
400 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
401 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
401
402
402 2005-04-29 Fernando Perez <fperez@colorado.edu>
403 2005-04-29 Fernando Perez <fperez@colorado.edu>
403
404
404 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
405 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
405 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
406 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
406 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
407 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
407 which provides support for Qt interactive usage (similar to the
408 which provides support for Qt interactive usage (similar to the
408 existing one for WX and GTK). This had been often requested.
409 existing one for WX and GTK). This had been often requested.
409
410
410 2005-04-14 *** Released version 0.6.13
411 2005-04-14 *** Released version 0.6.13
411
412
412 2005-04-08 Fernando Perez <fperez@colorado.edu>
413 2005-04-08 Fernando Perez <fperez@colorado.edu>
413
414
414 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
415 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
415 from _ofind, which gets called on almost every input line. Now,
416 from _ofind, which gets called on almost every input line. Now,
416 we only try to get docstrings if they are actually going to be
417 we only try to get docstrings if they are actually going to be
417 used (the overhead of fetching unnecessary docstrings can be
418 used (the overhead of fetching unnecessary docstrings can be
418 noticeable for certain objects, such as Pyro proxies).
419 noticeable for certain objects, such as Pyro proxies).
419
420
420 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
421 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
421 for completers. For some reason I had been passing them the state
422 for completers. For some reason I had been passing them the state
422 variable, which completers never actually need, and was in
423 variable, which completers never actually need, and was in
423 conflict with the rlcompleter API. Custom completers ONLY need to
424 conflict with the rlcompleter API. Custom completers ONLY need to
424 take the text parameter.
425 take the text parameter.
425
426
426 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
427 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
427 work correctly in pysh. I've also moved all the logic which used
428 work correctly in pysh. I've also moved all the logic which used
428 to be in pysh.py here, which will prevent problems with future
429 to be in pysh.py here, which will prevent problems with future
429 upgrades. However, this time I must warn users to update their
430 upgrades. However, this time I must warn users to update their
430 pysh profile to include the line
431 pysh profile to include the line
431
432
432 import_all IPython.Extensions.InterpreterExec
433 import_all IPython.Extensions.InterpreterExec
433
434
434 because otherwise things won't work for them. They MUST also
435 because otherwise things won't work for them. They MUST also
435 delete pysh.py and the line
436 delete pysh.py and the line
436
437
437 execfile pysh.py
438 execfile pysh.py
438
439
439 from their ipythonrc-pysh.
440 from their ipythonrc-pysh.
440
441
441 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
442 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
442 robust in the face of objects whose dir() returns non-strings
443 robust in the face of objects whose dir() returns non-strings
443 (which it shouldn't, but some broken libs like ITK do). Thanks to
444 (which it shouldn't, but some broken libs like ITK do). Thanks to
444 a patch by John Hunter (implemented differently, though). Also
445 a patch by John Hunter (implemented differently, though). Also
445 minor improvements by using .extend instead of + on lists.
446 minor improvements by using .extend instead of + on lists.
446
447
447 * pysh.py:
448 * pysh.py:
448
449
449 2005-04-06 Fernando Perez <fperez@colorado.edu>
450 2005-04-06 Fernando Perez <fperez@colorado.edu>
450
451
451 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
452 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
452 by default, so that all users benefit from it. Those who don't
453 by default, so that all users benefit from it. Those who don't
453 want it can still turn it off.
454 want it can still turn it off.
454
455
455 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
456 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
456 config file, I'd forgotten about this, so users were getting it
457 config file, I'd forgotten about this, so users were getting it
457 off by default.
458 off by default.
458
459
459 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
460 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
460 consistency. Now magics can be called in multiline statements,
461 consistency. Now magics can be called in multiline statements,
461 and python variables can be expanded in magic calls via $var.
462 and python variables can be expanded in magic calls via $var.
462 This makes the magic system behave just like aliases or !system
463 This makes the magic system behave just like aliases or !system
463 calls.
464 calls.
464
465
465 2005-03-28 Fernando Perez <fperez@colorado.edu>
466 2005-03-28 Fernando Perez <fperez@colorado.edu>
466
467
467 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
468 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
468 expensive string additions for building command. Add support for
469 expensive string additions for building command. Add support for
469 trailing ';' when autocall is used.
470 trailing ';' when autocall is used.
470
471
471 2005-03-26 Fernando Perez <fperez@colorado.edu>
472 2005-03-26 Fernando Perez <fperez@colorado.edu>
472
473
473 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
474 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
474 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
475 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
475 ipython.el robust against prompts with any number of spaces
476 ipython.el robust against prompts with any number of spaces
476 (including 0) after the ':' character.
477 (including 0) after the ':' character.
477
478
478 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
479 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
479 continuation prompt, which misled users to think the line was
480 continuation prompt, which misled users to think the line was
480 already indented. Closes debian Bug#300847, reported to me by
481 already indented. Closes debian Bug#300847, reported to me by
481 Norbert Tretkowski <tretkowski-AT-inittab.de>.
482 Norbert Tretkowski <tretkowski-AT-inittab.de>.
482
483
483 2005-03-23 Fernando Perez <fperez@colorado.edu>
484 2005-03-23 Fernando Perez <fperez@colorado.edu>
484
485
485 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
486 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
486 properly aligned if they have embedded newlines.
487 properly aligned if they have embedded newlines.
487
488
488 * IPython/iplib.py (runlines): Add a public method to expose
489 * IPython/iplib.py (runlines): Add a public method to expose
489 IPython's code execution machinery, so that users can run strings
490 IPython's code execution machinery, so that users can run strings
490 as if they had been typed at the prompt interactively.
491 as if they had been typed at the prompt interactively.
491 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
492 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
492 methods which can call the system shell, but with python variable
493 methods which can call the system shell, but with python variable
493 expansion. The three such methods are: __IPYTHON__.system,
494 expansion. The three such methods are: __IPYTHON__.system,
494 .getoutput and .getoutputerror. These need to be documented in a
495 .getoutput and .getoutputerror. These need to be documented in a
495 'public API' section (to be written) of the manual.
496 'public API' section (to be written) of the manual.
496
497
497 2005-03-20 Fernando Perez <fperez@colorado.edu>
498 2005-03-20 Fernando Perez <fperez@colorado.edu>
498
499
499 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
500 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
500 for custom exception handling. This is quite powerful, and it
501 for custom exception handling. This is quite powerful, and it
501 allows for user-installable exception handlers which can trap
502 allows for user-installable exception handlers which can trap
502 custom exceptions at runtime and treat them separately from
503 custom exceptions at runtime and treat them separately from
503 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
504 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
504 Mantegazza <mantegazza-AT-ill.fr>.
505 Mantegazza <mantegazza-AT-ill.fr>.
505 (InteractiveShell.set_custom_completer): public API function to
506 (InteractiveShell.set_custom_completer): public API function to
506 add new completers at runtime.
507 add new completers at runtime.
507
508
508 2005-03-19 Fernando Perez <fperez@colorado.edu>
509 2005-03-19 Fernando Perez <fperez@colorado.edu>
509
510
510 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
511 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
511 allow objects which provide their docstrings via non-standard
512 allow objects which provide their docstrings via non-standard
512 mechanisms (like Pyro proxies) to still be inspected by ipython's
513 mechanisms (like Pyro proxies) to still be inspected by ipython's
513 ? system.
514 ? system.
514
515
515 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
516 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
516 automatic capture system. I tried quite hard to make it work
517 automatic capture system. I tried quite hard to make it work
517 reliably, and simply failed. I tried many combinations with the
518 reliably, and simply failed. I tried many combinations with the
518 subprocess module, but eventually nothing worked in all needed
519 subprocess module, but eventually nothing worked in all needed
519 cases (not blocking stdin for the child, duplicating stdout
520 cases (not blocking stdin for the child, duplicating stdout
520 without blocking, etc). The new %sc/%sx still do capture to these
521 without blocking, etc). The new %sc/%sx still do capture to these
521 magical list/string objects which make shell use much more
522 magical list/string objects which make shell use much more
522 conveninent, so not all is lost.
523 conveninent, so not all is lost.
523
524
524 XXX - FIX MANUAL for the change above!
525 XXX - FIX MANUAL for the change above!
525
526
526 (runsource): I copied code.py's runsource() into ipython to modify
527 (runsource): I copied code.py's runsource() into ipython to modify
527 it a bit. Now the code object and source to be executed are
528 it a bit. Now the code object and source to be executed are
528 stored in ipython. This makes this info accessible to third-party
529 stored in ipython. This makes this info accessible to third-party
529 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
530 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
530 Mantegazza <mantegazza-AT-ill.fr>.
531 Mantegazza <mantegazza-AT-ill.fr>.
531
532
532 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
533 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
533 history-search via readline (like C-p/C-n). I'd wanted this for a
534 history-search via readline (like C-p/C-n). I'd wanted this for a
534 long time, but only recently found out how to do it. For users
535 long time, but only recently found out how to do it. For users
535 who already have their ipythonrc files made and want this, just
536 who already have their ipythonrc files made and want this, just
536 add:
537 add:
537
538
538 readline_parse_and_bind "\e[A": history-search-backward
539 readline_parse_and_bind "\e[A": history-search-backward
539 readline_parse_and_bind "\e[B": history-search-forward
540 readline_parse_and_bind "\e[B": history-search-forward
540
541
541 2005-03-18 Fernando Perez <fperez@colorado.edu>
542 2005-03-18 Fernando Perez <fperez@colorado.edu>
542
543
543 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
544 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
544 LSString and SList classes which allow transparent conversions
545 LSString and SList classes which allow transparent conversions
545 between list mode and whitespace-separated string.
546 between list mode and whitespace-separated string.
546 (magic_r): Fix recursion problem in %r.
547 (magic_r): Fix recursion problem in %r.
547
548
548 * IPython/genutils.py (LSString): New class to be used for
549 * IPython/genutils.py (LSString): New class to be used for
549 automatic storage of the results of all alias/system calls in _o
550 automatic storage of the results of all alias/system calls in _o
550 and _e (stdout/err). These provide a .l/.list attribute which
551 and _e (stdout/err). These provide a .l/.list attribute which
551 does automatic splitting on newlines. This means that for most
552 does automatic splitting on newlines. This means that for most
552 uses, you'll never need to do capturing of output with %sc/%sx
553 uses, you'll never need to do capturing of output with %sc/%sx
553 anymore, since ipython keeps this always done for you. Note that
554 anymore, since ipython keeps this always done for you. Note that
554 only the LAST results are stored, the _o/e variables are
555 only the LAST results are stored, the _o/e variables are
555 overwritten on each call. If you need to save their contents
556 overwritten on each call. If you need to save their contents
556 further, simply bind them to any other name.
557 further, simply bind them to any other name.
557
558
558 2005-03-17 Fernando Perez <fperez@colorado.edu>
559 2005-03-17 Fernando Perez <fperez@colorado.edu>
559
560
560 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
561 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
561 prompt namespace handling.
562 prompt namespace handling.
562
563
563 2005-03-16 Fernando Perez <fperez@colorado.edu>
564 2005-03-16 Fernando Perez <fperez@colorado.edu>
564
565
565 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
566 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
566 classic prompts to be '>>> ' (final space was missing, and it
567 classic prompts to be '>>> ' (final space was missing, and it
567 trips the emacs python mode).
568 trips the emacs python mode).
568 (BasePrompt.__str__): Added safe support for dynamic prompt
569 (BasePrompt.__str__): Added safe support for dynamic prompt
569 strings. Now you can set your prompt string to be '$x', and the
570 strings. Now you can set your prompt string to be '$x', and the
570 value of x will be printed from your interactive namespace. The
571 value of x will be printed from your interactive namespace. The
571 interpolation syntax includes the full Itpl support, so
572 interpolation syntax includes the full Itpl support, so
572 ${foo()+x+bar()} is a valid prompt string now, and the function
573 ${foo()+x+bar()} is a valid prompt string now, and the function
573 calls will be made at runtime.
574 calls will be made at runtime.
574
575
575 2005-03-15 Fernando Perez <fperez@colorado.edu>
576 2005-03-15 Fernando Perez <fperez@colorado.edu>
576
577
577 * IPython/Magic.py (magic_history): renamed %hist to %history, to
578 * IPython/Magic.py (magic_history): renamed %hist to %history, to
578 avoid name clashes in pylab. %hist still works, it just forwards
579 avoid name clashes in pylab. %hist still works, it just forwards
579 the call to %history.
580 the call to %history.
580
581
581 2005-03-02 *** Released version 0.6.12
582 2005-03-02 *** Released version 0.6.12
582
583
583 2005-03-02 Fernando Perez <fperez@colorado.edu>
584 2005-03-02 Fernando Perez <fperez@colorado.edu>
584
585
585 * IPython/iplib.py (handle_magic): log magic calls properly as
586 * IPython/iplib.py (handle_magic): log magic calls properly as
586 ipmagic() function calls.
587 ipmagic() function calls.
587
588
588 * IPython/Magic.py (magic_time): Improved %time to support
589 * IPython/Magic.py (magic_time): Improved %time to support
589 statements and provide wall-clock as well as CPU time.
590 statements and provide wall-clock as well as CPU time.
590
591
591 2005-02-27 Fernando Perez <fperez@colorado.edu>
592 2005-02-27 Fernando Perez <fperez@colorado.edu>
592
593
593 * IPython/hooks.py: New hooks module, to expose user-modifiable
594 * IPython/hooks.py: New hooks module, to expose user-modifiable
594 IPython functionality in a clean manner. For now only the editor
595 IPython functionality in a clean manner. For now only the editor
595 hook is actually written, and other thigns which I intend to turn
596 hook is actually written, and other thigns which I intend to turn
596 into proper hooks aren't yet there. The display and prefilter
597 into proper hooks aren't yet there. The display and prefilter
597 stuff, for example, should be hooks. But at least now the
598 stuff, for example, should be hooks. But at least now the
598 framework is in place, and the rest can be moved here with more
599 framework is in place, and the rest can be moved here with more
599 time later. IPython had had a .hooks variable for a long time for
600 time later. IPython had had a .hooks variable for a long time for
600 this purpose, but I'd never actually used it for anything.
601 this purpose, but I'd never actually used it for anything.
601
602
602 2005-02-26 Fernando Perez <fperez@colorado.edu>
603 2005-02-26 Fernando Perez <fperez@colorado.edu>
603
604
604 * IPython/ipmaker.py (make_IPython): make the default ipython
605 * IPython/ipmaker.py (make_IPython): make the default ipython
605 directory be called _ipython under win32, to follow more the
606 directory be called _ipython under win32, to follow more the
606 naming peculiarities of that platform (where buggy software like
607 naming peculiarities of that platform (where buggy software like
607 Visual Sourcesafe breaks with .named directories). Reported by
608 Visual Sourcesafe breaks with .named directories). Reported by
608 Ville Vainio.
609 Ville Vainio.
609
610
610 2005-02-23 Fernando Perez <fperez@colorado.edu>
611 2005-02-23 Fernando Perez <fperez@colorado.edu>
611
612
612 * IPython/iplib.py (InteractiveShell.__init__): removed a few
613 * IPython/iplib.py (InteractiveShell.__init__): removed a few
613 auto_aliases for win32 which were causing problems. Users can
614 auto_aliases for win32 which were causing problems. Users can
614 define the ones they personally like.
615 define the ones they personally like.
615
616
616 2005-02-21 Fernando Perez <fperez@colorado.edu>
617 2005-02-21 Fernando Perez <fperez@colorado.edu>
617
618
618 * IPython/Magic.py (magic_time): new magic to time execution of
619 * IPython/Magic.py (magic_time): new magic to time execution of
619 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
620 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
620
621
621 2005-02-19 Fernando Perez <fperez@colorado.edu>
622 2005-02-19 Fernando Perez <fperez@colorado.edu>
622
623
623 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
624 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
624 into keys (for prompts, for example).
625 into keys (for prompts, for example).
625
626
626 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
627 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
627 prompts in case users want them. This introduces a small behavior
628 prompts in case users want them. This introduces a small behavior
628 change: ipython does not automatically add a space to all prompts
629 change: ipython does not automatically add a space to all prompts
629 anymore. To get the old prompts with a space, users should add it
630 anymore. To get the old prompts with a space, users should add it
630 manually to their ipythonrc file, so for example prompt_in1 should
631 manually to their ipythonrc file, so for example prompt_in1 should
631 now read 'In [\#]: ' instead of 'In [\#]:'.
632 now read 'In [\#]: ' instead of 'In [\#]:'.
632 (BasePrompt.__init__): New option prompts_pad_left (only in rc
633 (BasePrompt.__init__): New option prompts_pad_left (only in rc
633 file) to control left-padding of secondary prompts.
634 file) to control left-padding of secondary prompts.
634
635
635 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
636 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
636 the profiler can't be imported. Fix for Debian, which removed
637 the profiler can't be imported. Fix for Debian, which removed
637 profile.py because of License issues. I applied a slightly
638 profile.py because of License issues. I applied a slightly
638 modified version of the original Debian patch at
639 modified version of the original Debian patch at
639 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
640 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
640
641
641 2005-02-17 Fernando Perez <fperez@colorado.edu>
642 2005-02-17 Fernando Perez <fperez@colorado.edu>
642
643
643 * IPython/genutils.py (native_line_ends): Fix bug which would
644 * IPython/genutils.py (native_line_ends): Fix bug which would
644 cause improper line-ends under win32 b/c I was not opening files
645 cause improper line-ends under win32 b/c I was not opening files
645 in binary mode. Bug report and fix thanks to Ville.
646 in binary mode. Bug report and fix thanks to Ville.
646
647
647 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
648 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
648 trying to catch spurious foo[1] autocalls. My fix actually broke
649 trying to catch spurious foo[1] autocalls. My fix actually broke
649 ',/' autoquote/call with explicit escape (bad regexp).
650 ',/' autoquote/call with explicit escape (bad regexp).
650
651
651 2005-02-15 *** Released version 0.6.11
652 2005-02-15 *** Released version 0.6.11
652
653
653 2005-02-14 Fernando Perez <fperez@colorado.edu>
654 2005-02-14 Fernando Perez <fperez@colorado.edu>
654
655
655 * IPython/background_jobs.py: New background job management
656 * IPython/background_jobs.py: New background job management
656 subsystem. This is implemented via a new set of classes, and
657 subsystem. This is implemented via a new set of classes, and
657 IPython now provides a builtin 'jobs' object for background job
658 IPython now provides a builtin 'jobs' object for background job
658 execution. A convenience %bg magic serves as a lightweight
659 execution. A convenience %bg magic serves as a lightweight
659 frontend for starting the more common type of calls. This was
660 frontend for starting the more common type of calls. This was
660 inspired by discussions with B. Granger and the BackgroundCommand
661 inspired by discussions with B. Granger and the BackgroundCommand
661 class described in the book Python Scripting for Computational
662 class described in the book Python Scripting for Computational
662 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
663 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
663 (although ultimately no code from this text was used, as IPython's
664 (although ultimately no code from this text was used, as IPython's
664 system is a separate implementation).
665 system is a separate implementation).
665
666
666 * IPython/iplib.py (MagicCompleter.python_matches): add new option
667 * IPython/iplib.py (MagicCompleter.python_matches): add new option
667 to control the completion of single/double underscore names
668 to control the completion of single/double underscore names
668 separately. As documented in the example ipytonrc file, the
669 separately. As documented in the example ipytonrc file, the
669 readline_omit__names variable can now be set to 2, to omit even
670 readline_omit__names variable can now be set to 2, to omit even
670 single underscore names. Thanks to a patch by Brian Wong
671 single underscore names. Thanks to a patch by Brian Wong
671 <BrianWong-AT-AirgoNetworks.Com>.
672 <BrianWong-AT-AirgoNetworks.Com>.
672 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
673 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
673 be autocalled as foo([1]) if foo were callable. A problem for
674 be autocalled as foo([1]) if foo were callable. A problem for
674 things which are both callable and implement __getitem__.
675 things which are both callable and implement __getitem__.
675 (init_readline): Fix autoindentation for win32. Thanks to a patch
676 (init_readline): Fix autoindentation for win32. Thanks to a patch
676 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
677 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
677
678
678 2005-02-12 Fernando Perez <fperez@colorado.edu>
679 2005-02-12 Fernando Perez <fperez@colorado.edu>
679
680
680 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
681 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
681 which I had written long ago to sort out user error messages which
682 which I had written long ago to sort out user error messages which
682 may occur during startup. This seemed like a good idea initially,
683 may occur during startup. This seemed like a good idea initially,
683 but it has proven a disaster in retrospect. I don't want to
684 but it has proven a disaster in retrospect. I don't want to
684 change much code for now, so my fix is to set the internal 'debug'
685 change much code for now, so my fix is to set the internal 'debug'
685 flag to true everywhere, whose only job was precisely to control
686 flag to true everywhere, whose only job was precisely to control
686 this subsystem. This closes issue 28 (as well as avoiding all
687 this subsystem. This closes issue 28 (as well as avoiding all
687 sorts of strange hangups which occur from time to time).
688 sorts of strange hangups which occur from time to time).
688
689
689 2005-02-07 Fernando Perez <fperez@colorado.edu>
690 2005-02-07 Fernando Perez <fperez@colorado.edu>
690
691
691 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
692 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
692 previous call produced a syntax error.
693 previous call produced a syntax error.
693
694
694 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
695 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
695 classes without constructor.
696 classes without constructor.
696
697
697 2005-02-06 Fernando Perez <fperez@colorado.edu>
698 2005-02-06 Fernando Perez <fperez@colorado.edu>
698
699
699 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
700 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
700 completions with the results of each matcher, so we return results
701 completions with the results of each matcher, so we return results
701 to the user from all namespaces. This breaks with ipython
702 to the user from all namespaces. This breaks with ipython
702 tradition, but I think it's a nicer behavior. Now you get all
703 tradition, but I think it's a nicer behavior. Now you get all
703 possible completions listed, from all possible namespaces (python,
704 possible completions listed, from all possible namespaces (python,
704 filesystem, magics...) After a request by John Hunter
705 filesystem, magics...) After a request by John Hunter
705 <jdhunter-AT-nitace.bsd.uchicago.edu>.
706 <jdhunter-AT-nitace.bsd.uchicago.edu>.
706
707
707 2005-02-05 Fernando Perez <fperez@colorado.edu>
708 2005-02-05 Fernando Perez <fperez@colorado.edu>
708
709
709 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
710 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
710 the call had quote characters in it (the quotes were stripped).
711 the call had quote characters in it (the quotes were stripped).
711
712
712 2005-01-31 Fernando Perez <fperez@colorado.edu>
713 2005-01-31 Fernando Perez <fperez@colorado.edu>
713
714
714 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
715 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
715 Itpl.itpl() to make the code more robust against psyco
716 Itpl.itpl() to make the code more robust against psyco
716 optimizations.
717 optimizations.
717
718
718 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
719 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
719 of causing an exception. Quicker, cleaner.
720 of causing an exception. Quicker, cleaner.
720
721
721 2005-01-28 Fernando Perez <fperez@colorado.edu>
722 2005-01-28 Fernando Perez <fperez@colorado.edu>
722
723
723 * scripts/ipython_win_post_install.py (install): hardcode
724 * scripts/ipython_win_post_install.py (install): hardcode
724 sys.prefix+'python.exe' as the executable path. It turns out that
725 sys.prefix+'python.exe' as the executable path. It turns out that
725 during the post-installation run, sys.executable resolves to the
726 during the post-installation run, sys.executable resolves to the
726 name of the binary installer! I should report this as a distutils
727 name of the binary installer! I should report this as a distutils
727 bug, I think. I updated the .10 release with this tiny fix, to
728 bug, I think. I updated the .10 release with this tiny fix, to
728 avoid annoying the lists further.
729 avoid annoying the lists further.
729
730
730 2005-01-27 *** Released version 0.6.10
731 2005-01-27 *** Released version 0.6.10
731
732
732 2005-01-27 Fernando Perez <fperez@colorado.edu>
733 2005-01-27 Fernando Perez <fperez@colorado.edu>
733
734
734 * IPython/numutils.py (norm): Added 'inf' as optional name for
735 * IPython/numutils.py (norm): Added 'inf' as optional name for
735 L-infinity norm, included references to mathworld.com for vector
736 L-infinity norm, included references to mathworld.com for vector
736 norm definitions.
737 norm definitions.
737 (amin/amax): added amin/amax for array min/max. Similar to what
738 (amin/amax): added amin/amax for array min/max. Similar to what
738 pylab ships with after the recent reorganization of names.
739 pylab ships with after the recent reorganization of names.
739 (spike/spike_odd): removed deprecated spike/spike_odd functions.
740 (spike/spike_odd): removed deprecated spike/spike_odd functions.
740
741
741 * ipython.el: committed Alex's recent fixes and improvements.
742 * ipython.el: committed Alex's recent fixes and improvements.
742 Tested with python-mode from CVS, and it looks excellent. Since
743 Tested with python-mode from CVS, and it looks excellent. Since
743 python-mode hasn't released anything in a while, I'm temporarily
744 python-mode hasn't released anything in a while, I'm temporarily
744 putting a copy of today's CVS (v 4.70) of python-mode in:
745 putting a copy of today's CVS (v 4.70) of python-mode in:
745 http://ipython.scipy.org/tmp/python-mode.el
746 http://ipython.scipy.org/tmp/python-mode.el
746
747
747 * scripts/ipython_win_post_install.py (install): Win32 fix to use
748 * scripts/ipython_win_post_install.py (install): Win32 fix to use
748 sys.executable for the executable name, instead of assuming it's
749 sys.executable for the executable name, instead of assuming it's
749 called 'python.exe' (the post-installer would have produced broken
750 called 'python.exe' (the post-installer would have produced broken
750 setups on systems with a differently named python binary).
751 setups on systems with a differently named python binary).
751
752
752 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
753 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
753 references to os.linesep, to make the code more
754 references to os.linesep, to make the code more
754 platform-independent. This is also part of the win32 coloring
755 platform-independent. This is also part of the win32 coloring
755 fixes.
756 fixes.
756
757
757 * IPython/genutils.py (page_dumb): Remove attempts to chop long
758 * IPython/genutils.py (page_dumb): Remove attempts to chop long
758 lines, which actually cause coloring bugs because the length of
759 lines, which actually cause coloring bugs because the length of
759 the line is very difficult to correctly compute with embedded
760 the line is very difficult to correctly compute with embedded
760 escapes. This was the source of all the coloring problems under
761 escapes. This was the source of all the coloring problems under
761 Win32. I think that _finally_, Win32 users have a properly
762 Win32. I think that _finally_, Win32 users have a properly
762 working ipython in all respects. This would never have happened
763 working ipython in all respects. This would never have happened
763 if not for Gary Bishop and Viktor Ransmayr's great help and work.
764 if not for Gary Bishop and Viktor Ransmayr's great help and work.
764
765
765 2005-01-26 *** Released version 0.6.9
766 2005-01-26 *** Released version 0.6.9
766
767
767 2005-01-25 Fernando Perez <fperez@colorado.edu>
768 2005-01-25 Fernando Perez <fperez@colorado.edu>
768
769
769 * setup.py: finally, we have a true Windows installer, thanks to
770 * setup.py: finally, we have a true Windows installer, thanks to
770 the excellent work of Viktor Ransmayr
771 the excellent work of Viktor Ransmayr
771 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
772 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
772 Windows users. The setup routine is quite a bit cleaner thanks to
773 Windows users. The setup routine is quite a bit cleaner thanks to
773 this, and the post-install script uses the proper functions to
774 this, and the post-install script uses the proper functions to
774 allow a clean de-installation using the standard Windows Control
775 allow a clean de-installation using the standard Windows Control
775 Panel.
776 Panel.
776
777
777 * IPython/genutils.py (get_home_dir): changed to use the $HOME
778 * IPython/genutils.py (get_home_dir): changed to use the $HOME
778 environment variable under all OSes (including win32) if
779 environment variable under all OSes (including win32) if
779 available. This will give consistency to win32 users who have set
780 available. This will give consistency to win32 users who have set
780 this variable for any reason. If os.environ['HOME'] fails, the
781 this variable for any reason. If os.environ['HOME'] fails, the
781 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
782 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
782
783
783 2005-01-24 Fernando Perez <fperez@colorado.edu>
784 2005-01-24 Fernando Perez <fperez@colorado.edu>
784
785
785 * IPython/numutils.py (empty_like): add empty_like(), similar to
786 * IPython/numutils.py (empty_like): add empty_like(), similar to
786 zeros_like() but taking advantage of the new empty() Numeric routine.
787 zeros_like() but taking advantage of the new empty() Numeric routine.
787
788
788 2005-01-23 *** Released version 0.6.8
789 2005-01-23 *** Released version 0.6.8
789
790
790 2005-01-22 Fernando Perez <fperez@colorado.edu>
791 2005-01-22 Fernando Perez <fperez@colorado.edu>
791
792
792 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
793 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
793 automatic show() calls. After discussing things with JDH, it
794 automatic show() calls. After discussing things with JDH, it
794 turns out there are too many corner cases where this can go wrong.
795 turns out there are too many corner cases where this can go wrong.
795 It's best not to try to be 'too smart', and simply have ipython
796 It's best not to try to be 'too smart', and simply have ipython
796 reproduce as much as possible the default behavior of a normal
797 reproduce as much as possible the default behavior of a normal
797 python shell.
798 python shell.
798
799
799 * IPython/iplib.py (InteractiveShell.__init__): Modified the
800 * IPython/iplib.py (InteractiveShell.__init__): Modified the
800 line-splitting regexp and _prefilter() to avoid calling getattr()
801 line-splitting regexp and _prefilter() to avoid calling getattr()
801 on assignments. This closes
802 on assignments. This closes
802 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
803 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
803 readline uses getattr(), so a simple <TAB> keypress is still
804 readline uses getattr(), so a simple <TAB> keypress is still
804 enough to trigger getattr() calls on an object.
805 enough to trigger getattr() calls on an object.
805
806
806 2005-01-21 Fernando Perez <fperez@colorado.edu>
807 2005-01-21 Fernando Perez <fperez@colorado.edu>
807
808
808 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
809 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
809 docstring under pylab so it doesn't mask the original.
810 docstring under pylab so it doesn't mask the original.
810
811
811 2005-01-21 *** Released version 0.6.7
812 2005-01-21 *** Released version 0.6.7
812
813
813 2005-01-21 Fernando Perez <fperez@colorado.edu>
814 2005-01-21 Fernando Perez <fperez@colorado.edu>
814
815
815 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
816 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
816 signal handling for win32 users in multithreaded mode.
817 signal handling for win32 users in multithreaded mode.
817
818
818 2005-01-17 Fernando Perez <fperez@colorado.edu>
819 2005-01-17 Fernando Perez <fperez@colorado.edu>
819
820
820 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
821 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
821 instances with no __init__. After a crash report by Norbert Nemec
822 instances with no __init__. After a crash report by Norbert Nemec
822 <Norbert-AT-nemec-online.de>.
823 <Norbert-AT-nemec-online.de>.
823
824
824 2005-01-14 Fernando Perez <fperez@colorado.edu>
825 2005-01-14 Fernando Perez <fperez@colorado.edu>
825
826
826 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
827 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
827 names for verbose exceptions, when multiple dotted names and the
828 names for verbose exceptions, when multiple dotted names and the
828 'parent' object were present on the same line.
829 'parent' object were present on the same line.
829
830
830 2005-01-11 Fernando Perez <fperez@colorado.edu>
831 2005-01-11 Fernando Perez <fperez@colorado.edu>
831
832
832 * IPython/genutils.py (flag_calls): new utility to trap and flag
833 * IPython/genutils.py (flag_calls): new utility to trap and flag
833 calls in functions. I need it to clean up matplotlib support.
834 calls in functions. I need it to clean up matplotlib support.
834 Also removed some deprecated code in genutils.
835 Also removed some deprecated code in genutils.
835
836
836 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
837 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
837 that matplotlib scripts called with %run, which don't call show()
838 that matplotlib scripts called with %run, which don't call show()
838 themselves, still have their plotting windows open.
839 themselves, still have their plotting windows open.
839
840
840 2005-01-05 Fernando Perez <fperez@colorado.edu>
841 2005-01-05 Fernando Perez <fperez@colorado.edu>
841
842
842 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
843 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
843 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
844 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
844
845
845 2004-12-19 Fernando Perez <fperez@colorado.edu>
846 2004-12-19 Fernando Perez <fperez@colorado.edu>
846
847
847 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
848 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
848 parent_runcode, which was an eyesore. The same result can be
849 parent_runcode, which was an eyesore. The same result can be
849 obtained with Python's regular superclass mechanisms.
850 obtained with Python's regular superclass mechanisms.
850
851
851 2004-12-17 Fernando Perez <fperez@colorado.edu>
852 2004-12-17 Fernando Perez <fperez@colorado.edu>
852
853
853 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
854 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
854 reported by Prabhu.
855 reported by Prabhu.
855 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
856 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
856 sys.stderr) instead of explicitly calling sys.stderr. This helps
857 sys.stderr) instead of explicitly calling sys.stderr. This helps
857 maintain our I/O abstractions clean, for future GUI embeddings.
858 maintain our I/O abstractions clean, for future GUI embeddings.
858
859
859 * IPython/genutils.py (info): added new utility for sys.stderr
860 * IPython/genutils.py (info): added new utility for sys.stderr
860 unified info message handling (thin wrapper around warn()).
861 unified info message handling (thin wrapper around warn()).
861
862
862 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
863 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
863 composite (dotted) names on verbose exceptions.
864 composite (dotted) names on verbose exceptions.
864 (VerboseTB.nullrepr): harden against another kind of errors which
865 (VerboseTB.nullrepr): harden against another kind of errors which
865 Python's inspect module can trigger, and which were crashing
866 Python's inspect module can trigger, and which were crashing
866 IPython. Thanks to a report by Marco Lombardi
867 IPython. Thanks to a report by Marco Lombardi
867 <mlombard-AT-ma010192.hq.eso.org>.
868 <mlombard-AT-ma010192.hq.eso.org>.
868
869
869 2004-12-13 *** Released version 0.6.6
870 2004-12-13 *** Released version 0.6.6
870
871
871 2004-12-12 Fernando Perez <fperez@colorado.edu>
872 2004-12-12 Fernando Perez <fperez@colorado.edu>
872
873
873 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
874 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
874 generated by pygtk upon initialization if it was built without
875 generated by pygtk upon initialization if it was built without
875 threads (for matplotlib users). After a crash reported by
876 threads (for matplotlib users). After a crash reported by
876 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
877 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
877
878
878 * IPython/ipmaker.py (make_IPython): fix small bug in the
879 * IPython/ipmaker.py (make_IPython): fix small bug in the
879 import_some parameter for multiple imports.
880 import_some parameter for multiple imports.
880
881
881 * IPython/iplib.py (ipmagic): simplified the interface of
882 * IPython/iplib.py (ipmagic): simplified the interface of
882 ipmagic() to take a single string argument, just as it would be
883 ipmagic() to take a single string argument, just as it would be
883 typed at the IPython cmd line.
884 typed at the IPython cmd line.
884 (ipalias): Added new ipalias() with an interface identical to
885 (ipalias): Added new ipalias() with an interface identical to
885 ipmagic(). This completes exposing a pure python interface to the
886 ipmagic(). This completes exposing a pure python interface to the
886 alias and magic system, which can be used in loops or more complex
887 alias and magic system, which can be used in loops or more complex
887 code where IPython's automatic line mangling is not active.
888 code where IPython's automatic line mangling is not active.
888
889
889 * IPython/genutils.py (timing): changed interface of timing to
890 * IPython/genutils.py (timing): changed interface of timing to
890 simply run code once, which is the most common case. timings()
891 simply run code once, which is the most common case. timings()
891 remains unchanged, for the cases where you want multiple runs.
892 remains unchanged, for the cases where you want multiple runs.
892
893
893 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
894 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
894 bug where Python2.2 crashes with exec'ing code which does not end
895 bug where Python2.2 crashes with exec'ing code which does not end
895 in a single newline. Python 2.3 is OK, so I hadn't noticed this
896 in a single newline. Python 2.3 is OK, so I hadn't noticed this
896 before.
897 before.
897
898
898 2004-12-10 Fernando Perez <fperez@colorado.edu>
899 2004-12-10 Fernando Perez <fperez@colorado.edu>
899
900
900 * IPython/Magic.py (Magic.magic_prun): changed name of option from
901 * IPython/Magic.py (Magic.magic_prun): changed name of option from
901 -t to -T, to accomodate the new -t flag in %run (the %run and
902 -t to -T, to accomodate the new -t flag in %run (the %run and
902 %prun options are kind of intermixed, and it's not easy to change
903 %prun options are kind of intermixed, and it's not easy to change
903 this with the limitations of python's getopt).
904 this with the limitations of python's getopt).
904
905
905 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
906 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
906 the execution of scripts. It's not as fine-tuned as timeit.py,
907 the execution of scripts. It's not as fine-tuned as timeit.py,
907 but it works from inside ipython (and under 2.2, which lacks
908 but it works from inside ipython (and under 2.2, which lacks
908 timeit.py). Optionally a number of runs > 1 can be given for
909 timeit.py). Optionally a number of runs > 1 can be given for
909 timing very short-running code.
910 timing very short-running code.
910
911
911 * IPython/genutils.py (uniq_stable): new routine which returns a
912 * IPython/genutils.py (uniq_stable): new routine which returns a
912 list of unique elements in any iterable, but in stable order of
913 list of unique elements in any iterable, but in stable order of
913 appearance. I needed this for the ultraTB fixes, and it's a handy
914 appearance. I needed this for the ultraTB fixes, and it's a handy
914 utility.
915 utility.
915
916
916 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
917 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
917 dotted names in Verbose exceptions. This had been broken since
918 dotted names in Verbose exceptions. This had been broken since
918 the very start, now x.y will properly be printed in a Verbose
919 the very start, now x.y will properly be printed in a Verbose
919 traceback, instead of x being shown and y appearing always as an
920 traceback, instead of x being shown and y appearing always as an
920 'undefined global'. Getting this to work was a bit tricky,
921 'undefined global'. Getting this to work was a bit tricky,
921 because by default python tokenizers are stateless. Saved by
922 because by default python tokenizers are stateless. Saved by
922 python's ability to easily add a bit of state to an arbitrary
923 python's ability to easily add a bit of state to an arbitrary
923 function (without needing to build a full-blown callable object).
924 function (without needing to build a full-blown callable object).
924
925
925 Also big cleanup of this code, which had horrendous runtime
926 Also big cleanup of this code, which had horrendous runtime
926 lookups of zillions of attributes for colorization. Moved all
927 lookups of zillions of attributes for colorization. Moved all
927 this code into a few templates, which make it cleaner and quicker.
928 this code into a few templates, which make it cleaner and quicker.
928
929
929 Printout quality was also improved for Verbose exceptions: one
930 Printout quality was also improved for Verbose exceptions: one
930 variable per line, and memory addresses are printed (this can be
931 variable per line, and memory addresses are printed (this can be
931 quite handy in nasty debugging situations, which is what Verbose
932 quite handy in nasty debugging situations, which is what Verbose
932 is for).
933 is for).
933
934
934 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
935 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
935 the command line as scripts to be loaded by embedded instances.
936 the command line as scripts to be loaded by embedded instances.
936 Doing so has the potential for an infinite recursion if there are
937 Doing so has the potential for an infinite recursion if there are
937 exceptions thrown in the process. This fixes a strange crash
938 exceptions thrown in the process. This fixes a strange crash
938 reported by Philippe MULLER <muller-AT-irit.fr>.
939 reported by Philippe MULLER <muller-AT-irit.fr>.
939
940
940 2004-12-09 Fernando Perez <fperez@colorado.edu>
941 2004-12-09 Fernando Perez <fperez@colorado.edu>
941
942
942 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
943 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
943 to reflect new names in matplotlib, which now expose the
944 to reflect new names in matplotlib, which now expose the
944 matlab-compatible interface via a pylab module instead of the
945 matlab-compatible interface via a pylab module instead of the
945 'matlab' name. The new code is backwards compatible, so users of
946 'matlab' name. The new code is backwards compatible, so users of
946 all matplotlib versions are OK. Patch by J. Hunter.
947 all matplotlib versions are OK. Patch by J. Hunter.
947
948
948 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
949 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
949 of __init__ docstrings for instances (class docstrings are already
950 of __init__ docstrings for instances (class docstrings are already
950 automatically printed). Instances with customized docstrings
951 automatically printed). Instances with customized docstrings
951 (indep. of the class) are also recognized and all 3 separate
952 (indep. of the class) are also recognized and all 3 separate
952 docstrings are printed (instance, class, constructor). After some
953 docstrings are printed (instance, class, constructor). After some
953 comments/suggestions by J. Hunter.
954 comments/suggestions by J. Hunter.
954
955
955 2004-12-05 Fernando Perez <fperez@colorado.edu>
956 2004-12-05 Fernando Perez <fperez@colorado.edu>
956
957
957 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
958 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
958 warnings when tab-completion fails and triggers an exception.
959 warnings when tab-completion fails and triggers an exception.
959
960
960 2004-12-03 Fernando Perez <fperez@colorado.edu>
961 2004-12-03 Fernando Perez <fperez@colorado.edu>
961
962
962 * IPython/Magic.py (magic_prun): Fix bug where an exception would
963 * IPython/Magic.py (magic_prun): Fix bug where an exception would
963 be triggered when using 'run -p'. An incorrect option flag was
964 be triggered when using 'run -p'. An incorrect option flag was
964 being set ('d' instead of 'D').
965 being set ('d' instead of 'D').
965 (manpage): fix missing escaped \- sign.
966 (manpage): fix missing escaped \- sign.
966
967
967 2004-11-30 *** Released version 0.6.5
968 2004-11-30 *** Released version 0.6.5
968
969
969 2004-11-30 Fernando Perez <fperez@colorado.edu>
970 2004-11-30 Fernando Perez <fperez@colorado.edu>
970
971
971 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
972 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
972 setting with -d option.
973 setting with -d option.
973
974
974 * setup.py (docfiles): Fix problem where the doc glob I was using
975 * setup.py (docfiles): Fix problem where the doc glob I was using
975 was COMPLETELY BROKEN. It was giving the right files by pure
976 was COMPLETELY BROKEN. It was giving the right files by pure
976 accident, but failed once I tried to include ipython.el. Note:
977 accident, but failed once I tried to include ipython.el. Note:
977 glob() does NOT allow you to do exclusion on multiple endings!
978 glob() does NOT allow you to do exclusion on multiple endings!
978
979
979 2004-11-29 Fernando Perez <fperez@colorado.edu>
980 2004-11-29 Fernando Perez <fperez@colorado.edu>
980
981
981 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
982 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
982 the manpage as the source. Better formatting & consistency.
983 the manpage as the source. Better formatting & consistency.
983
984
984 * IPython/Magic.py (magic_run): Added new -d option, to run
985 * IPython/Magic.py (magic_run): Added new -d option, to run
985 scripts under the control of the python pdb debugger. Note that
986 scripts under the control of the python pdb debugger. Note that
986 this required changing the %prun option -d to -D, to avoid a clash
987 this required changing the %prun option -d to -D, to avoid a clash
987 (since %run must pass options to %prun, and getopt is too dumb to
988 (since %run must pass options to %prun, and getopt is too dumb to
988 handle options with string values with embedded spaces). Thanks
989 handle options with string values with embedded spaces). Thanks
989 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
990 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
990 (magic_who_ls): added type matching to %who and %whos, so that one
991 (magic_who_ls): added type matching to %who and %whos, so that one
991 can filter their output to only include variables of certain
992 can filter their output to only include variables of certain
992 types. Another suggestion by Matthew.
993 types. Another suggestion by Matthew.
993 (magic_whos): Added memory summaries in kb and Mb for arrays.
994 (magic_whos): Added memory summaries in kb and Mb for arrays.
994 (magic_who): Improve formatting (break lines every 9 vars).
995 (magic_who): Improve formatting (break lines every 9 vars).
995
996
996 2004-11-28 Fernando Perez <fperez@colorado.edu>
997 2004-11-28 Fernando Perez <fperez@colorado.edu>
997
998
998 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
999 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
999 cache when empty lines were present.
1000 cache when empty lines were present.
1000
1001
1001 2004-11-24 Fernando Perez <fperez@colorado.edu>
1002 2004-11-24 Fernando Perez <fperez@colorado.edu>
1002
1003
1003 * IPython/usage.py (__doc__): document the re-activated threading
1004 * IPython/usage.py (__doc__): document the re-activated threading
1004 options for WX and GTK.
1005 options for WX and GTK.
1005
1006
1006 2004-11-23 Fernando Perez <fperez@colorado.edu>
1007 2004-11-23 Fernando Perez <fperez@colorado.edu>
1007
1008
1008 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1009 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1009 the -wthread and -gthread options, along with a new -tk one to try
1010 the -wthread and -gthread options, along with a new -tk one to try
1010 and coordinate Tk threading with wx/gtk. The tk support is very
1011 and coordinate Tk threading with wx/gtk. The tk support is very
1011 platform dependent, since it seems to require Tcl and Tk to be
1012 platform dependent, since it seems to require Tcl and Tk to be
1012 built with threads (Fedora1/2 appears NOT to have it, but in
1013 built with threads (Fedora1/2 appears NOT to have it, but in
1013 Prabhu's Debian boxes it works OK). But even with some Tk
1014 Prabhu's Debian boxes it works OK). But even with some Tk
1014 limitations, this is a great improvement.
1015 limitations, this is a great improvement.
1015
1016
1016 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1017 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1017 info in user prompts. Patch by Prabhu.
1018 info in user prompts. Patch by Prabhu.
1018
1019
1019 2004-11-18 Fernando Perez <fperez@colorado.edu>
1020 2004-11-18 Fernando Perez <fperez@colorado.edu>
1020
1021
1021 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1022 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1022 EOFErrors and bail, to avoid infinite loops if a non-terminating
1023 EOFErrors and bail, to avoid infinite loops if a non-terminating
1023 file is fed into ipython. Patch submitted in issue 19 by user,
1024 file is fed into ipython. Patch submitted in issue 19 by user,
1024 many thanks.
1025 many thanks.
1025
1026
1026 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1027 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1027 autoquote/parens in continuation prompts, which can cause lots of
1028 autoquote/parens in continuation prompts, which can cause lots of
1028 problems. Closes roundup issue 20.
1029 problems. Closes roundup issue 20.
1029
1030
1030 2004-11-17 Fernando Perez <fperez@colorado.edu>
1031 2004-11-17 Fernando Perez <fperez@colorado.edu>
1031
1032
1032 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1033 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1033 reported as debian bug #280505. I'm not sure my local changelog
1034 reported as debian bug #280505. I'm not sure my local changelog
1034 entry has the proper debian format (Jack?).
1035 entry has the proper debian format (Jack?).
1035
1036
1036 2004-11-08 *** Released version 0.6.4
1037 2004-11-08 *** Released version 0.6.4
1037
1038
1038 2004-11-08 Fernando Perez <fperez@colorado.edu>
1039 2004-11-08 Fernando Perez <fperez@colorado.edu>
1039
1040
1040 * IPython/iplib.py (init_readline): Fix exit message for Windows
1041 * IPython/iplib.py (init_readline): Fix exit message for Windows
1041 when readline is active. Thanks to a report by Eric Jones
1042 when readline is active. Thanks to a report by Eric Jones
1042 <eric-AT-enthought.com>.
1043 <eric-AT-enthought.com>.
1043
1044
1044 2004-11-07 Fernando Perez <fperez@colorado.edu>
1045 2004-11-07 Fernando Perez <fperez@colorado.edu>
1045
1046
1046 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1047 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1047 sometimes seen by win2k/cygwin users.
1048 sometimes seen by win2k/cygwin users.
1048
1049
1049 2004-11-06 Fernando Perez <fperez@colorado.edu>
1050 2004-11-06 Fernando Perez <fperez@colorado.edu>
1050
1051
1051 * IPython/iplib.py (interact): Change the handling of %Exit from
1052 * IPython/iplib.py (interact): Change the handling of %Exit from
1052 trying to propagate a SystemExit to an internal ipython flag.
1053 trying to propagate a SystemExit to an internal ipython flag.
1053 This is less elegant than using Python's exception mechanism, but
1054 This is less elegant than using Python's exception mechanism, but
1054 I can't get that to work reliably with threads, so under -pylab
1055 I can't get that to work reliably with threads, so under -pylab
1055 %Exit was hanging IPython. Cross-thread exception handling is
1056 %Exit was hanging IPython. Cross-thread exception handling is
1056 really a bitch. Thaks to a bug report by Stephen Walton
1057 really a bitch. Thaks to a bug report by Stephen Walton
1057 <stephen.walton-AT-csun.edu>.
1058 <stephen.walton-AT-csun.edu>.
1058
1059
1059 2004-11-04 Fernando Perez <fperez@colorado.edu>
1060 2004-11-04 Fernando Perez <fperez@colorado.edu>
1060
1061
1061 * IPython/iplib.py (raw_input_original): store a pointer to the
1062 * IPython/iplib.py (raw_input_original): store a pointer to the
1062 true raw_input to harden against code which can modify it
1063 true raw_input to harden against code which can modify it
1063 (wx.py.PyShell does this and would otherwise crash ipython).
1064 (wx.py.PyShell does this and would otherwise crash ipython).
1064 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1065 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1065
1066
1066 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1067 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
1067 Ctrl-C problem, which does not mess up the input line.
1068 Ctrl-C problem, which does not mess up the input line.
1068
1069
1069 2004-11-03 Fernando Perez <fperez@colorado.edu>
1070 2004-11-03 Fernando Perez <fperez@colorado.edu>
1070
1071
1071 * IPython/Release.py: Changed licensing to BSD, in all files.
1072 * IPython/Release.py: Changed licensing to BSD, in all files.
1072 (name): lowercase name for tarball/RPM release.
1073 (name): lowercase name for tarball/RPM release.
1073
1074
1074 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1075 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
1075 use throughout ipython.
1076 use throughout ipython.
1076
1077
1077 * IPython/Magic.py (Magic._ofind): Switch to using the new
1078 * IPython/Magic.py (Magic._ofind): Switch to using the new
1078 OInspect.getdoc() function.
1079 OInspect.getdoc() function.
1079
1080
1080 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1081 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
1081 of the line currently being canceled via Ctrl-C. It's extremely
1082 of the line currently being canceled via Ctrl-C. It's extremely
1082 ugly, but I don't know how to do it better (the problem is one of
1083 ugly, but I don't know how to do it better (the problem is one of
1083 handling cross-thread exceptions).
1084 handling cross-thread exceptions).
1084
1085
1085 2004-10-28 Fernando Perez <fperez@colorado.edu>
1086 2004-10-28 Fernando Perez <fperez@colorado.edu>
1086
1087
1087 * IPython/Shell.py (signal_handler): add signal handlers to trap
1088 * IPython/Shell.py (signal_handler): add signal handlers to trap
1088 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1089 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
1089 report by Francesc Alted.
1090 report by Francesc Alted.
1090
1091
1091 2004-10-21 Fernando Perez <fperez@colorado.edu>
1092 2004-10-21 Fernando Perez <fperez@colorado.edu>
1092
1093
1093 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1094 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
1094 to % for pysh syntax extensions.
1095 to % for pysh syntax extensions.
1095
1096
1096 2004-10-09 Fernando Perez <fperez@colorado.edu>
1097 2004-10-09 Fernando Perez <fperez@colorado.edu>
1097
1098
1098 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1099 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
1099 arrays to print a more useful summary, without calling str(arr).
1100 arrays to print a more useful summary, without calling str(arr).
1100 This avoids the problem of extremely lengthy computations which
1101 This avoids the problem of extremely lengthy computations which
1101 occur if arr is large, and appear to the user as a system lockup
1102 occur if arr is large, and appear to the user as a system lockup
1102 with 100% cpu activity. After a suggestion by Kristian Sandberg
1103 with 100% cpu activity. After a suggestion by Kristian Sandberg
1103 <Kristian.Sandberg@colorado.edu>.
1104 <Kristian.Sandberg@colorado.edu>.
1104 (Magic.__init__): fix bug in global magic escapes not being
1105 (Magic.__init__): fix bug in global magic escapes not being
1105 correctly set.
1106 correctly set.
1106
1107
1107 2004-10-08 Fernando Perez <fperez@colorado.edu>
1108 2004-10-08 Fernando Perez <fperez@colorado.edu>
1108
1109
1109 * IPython/Magic.py (__license__): change to absolute imports of
1110 * IPython/Magic.py (__license__): change to absolute imports of
1110 ipython's own internal packages, to start adapting to the absolute
1111 ipython's own internal packages, to start adapting to the absolute
1111 import requirement of PEP-328.
1112 import requirement of PEP-328.
1112
1113
1113 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1114 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
1114 files, and standardize author/license marks through the Release
1115 files, and standardize author/license marks through the Release
1115 module instead of having per/file stuff (except for files with
1116 module instead of having per/file stuff (except for files with
1116 particular licenses, like the MIT/PSF-licensed codes).
1117 particular licenses, like the MIT/PSF-licensed codes).
1117
1118
1118 * IPython/Debugger.py: remove dead code for python 2.1
1119 * IPython/Debugger.py: remove dead code for python 2.1
1119
1120
1120 2004-10-04 Fernando Perez <fperez@colorado.edu>
1121 2004-10-04 Fernando Perez <fperez@colorado.edu>
1121
1122
1122 * IPython/iplib.py (ipmagic): New function for accessing magics
1123 * IPython/iplib.py (ipmagic): New function for accessing magics
1123 via a normal python function call.
1124 via a normal python function call.
1124
1125
1125 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1126 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
1126 from '@' to '%', to accomodate the new @decorator syntax of python
1127 from '@' to '%', to accomodate the new @decorator syntax of python
1127 2.4.
1128 2.4.
1128
1129
1129 2004-09-29 Fernando Perez <fperez@colorado.edu>
1130 2004-09-29 Fernando Perez <fperez@colorado.edu>
1130
1131
1131 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1132 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
1132 matplotlib.use to prevent running scripts which try to switch
1133 matplotlib.use to prevent running scripts which try to switch
1133 interactive backends from within ipython. This will just crash
1134 interactive backends from within ipython. This will just crash
1134 the python interpreter, so we can't allow it (but a detailed error
1135 the python interpreter, so we can't allow it (but a detailed error
1135 is given to the user).
1136 is given to the user).
1136
1137
1137 2004-09-28 Fernando Perez <fperez@colorado.edu>
1138 2004-09-28 Fernando Perez <fperez@colorado.edu>
1138
1139
1139 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1140 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
1140 matplotlib-related fixes so that using @run with non-matplotlib
1141 matplotlib-related fixes so that using @run with non-matplotlib
1141 scripts doesn't pop up spurious plot windows. This requires
1142 scripts doesn't pop up spurious plot windows. This requires
1142 matplotlib >= 0.63, where I had to make some changes as well.
1143 matplotlib >= 0.63, where I had to make some changes as well.
1143
1144
1144 * IPython/ipmaker.py (make_IPython): update version requirement to
1145 * IPython/ipmaker.py (make_IPython): update version requirement to
1145 python 2.2.
1146 python 2.2.
1146
1147
1147 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1148 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
1148 banner arg for embedded customization.
1149 banner arg for embedded customization.
1149
1150
1150 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1151 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
1151 explicit uses of __IP as the IPython's instance name. Now things
1152 explicit uses of __IP as the IPython's instance name. Now things
1152 are properly handled via the shell.name value. The actual code
1153 are properly handled via the shell.name value. The actual code
1153 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1154 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
1154 is much better than before. I'll clean things completely when the
1155 is much better than before. I'll clean things completely when the
1155 magic stuff gets a real overhaul.
1156 magic stuff gets a real overhaul.
1156
1157
1157 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1158 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1158 minor changes to debian dir.
1159 minor changes to debian dir.
1159
1160
1160 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1161 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1161 pointer to the shell itself in the interactive namespace even when
1162 pointer to the shell itself in the interactive namespace even when
1162 a user-supplied dict is provided. This is needed for embedding
1163 a user-supplied dict is provided. This is needed for embedding
1163 purposes (found by tests with Michel Sanner).
1164 purposes (found by tests with Michel Sanner).
1164
1165
1165 2004-09-27 Fernando Perez <fperez@colorado.edu>
1166 2004-09-27 Fernando Perez <fperez@colorado.edu>
1166
1167
1167 * IPython/UserConfig/ipythonrc: remove []{} from
1168 * IPython/UserConfig/ipythonrc: remove []{} from
1168 readline_remove_delims, so that things like [modname.<TAB> do
1169 readline_remove_delims, so that things like [modname.<TAB> do
1169 proper completion. This disables [].TAB, but that's a less common
1170 proper completion. This disables [].TAB, but that's a less common
1170 case than module names in list comprehensions, for example.
1171 case than module names in list comprehensions, for example.
1171 Thanks to a report by Andrea Riciputi.
1172 Thanks to a report by Andrea Riciputi.
1172
1173
1173 2004-09-09 Fernando Perez <fperez@colorado.edu>
1174 2004-09-09 Fernando Perez <fperez@colorado.edu>
1174
1175
1175 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1176 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1176 blocking problems in win32 and osx. Fix by John.
1177 blocking problems in win32 and osx. Fix by John.
1177
1178
1178 2004-09-08 Fernando Perez <fperez@colorado.edu>
1179 2004-09-08 Fernando Perez <fperez@colorado.edu>
1179
1180
1180 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1181 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1181 for Win32 and OSX. Fix by John Hunter.
1182 for Win32 and OSX. Fix by John Hunter.
1182
1183
1183 2004-08-30 *** Released version 0.6.3
1184 2004-08-30 *** Released version 0.6.3
1184
1185
1185 2004-08-30 Fernando Perez <fperez@colorado.edu>
1186 2004-08-30 Fernando Perez <fperez@colorado.edu>
1186
1187
1187 * setup.py (isfile): Add manpages to list of dependent files to be
1188 * setup.py (isfile): Add manpages to list of dependent files to be
1188 updated.
1189 updated.
1189
1190
1190 2004-08-27 Fernando Perez <fperez@colorado.edu>
1191 2004-08-27 Fernando Perez <fperez@colorado.edu>
1191
1192
1192 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1193 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1193 for now. They don't really work with standalone WX/GTK code
1194 for now. They don't really work with standalone WX/GTK code
1194 (though matplotlib IS working fine with both of those backends).
1195 (though matplotlib IS working fine with both of those backends).
1195 This will neeed much more testing. I disabled most things with
1196 This will neeed much more testing. I disabled most things with
1196 comments, so turning it back on later should be pretty easy.
1197 comments, so turning it back on later should be pretty easy.
1197
1198
1198 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1199 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1199 autocalling of expressions like r'foo', by modifying the line
1200 autocalling of expressions like r'foo', by modifying the line
1200 split regexp. Closes
1201 split regexp. Closes
1201 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1202 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1202 Riley <ipythonbugs-AT-sabi.net>.
1203 Riley <ipythonbugs-AT-sabi.net>.
1203 (InteractiveShell.mainloop): honor --nobanner with banner
1204 (InteractiveShell.mainloop): honor --nobanner with banner
1204 extensions.
1205 extensions.
1205
1206
1206 * IPython/Shell.py: Significant refactoring of all classes, so
1207 * IPython/Shell.py: Significant refactoring of all classes, so
1207 that we can really support ALL matplotlib backends and threading
1208 that we can really support ALL matplotlib backends and threading
1208 models (John spotted a bug with Tk which required this). Now we
1209 models (John spotted a bug with Tk which required this). Now we
1209 should support single-threaded, WX-threads and GTK-threads, both
1210 should support single-threaded, WX-threads and GTK-threads, both
1210 for generic code and for matplotlib.
1211 for generic code and for matplotlib.
1211
1212
1212 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1213 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1213 -pylab, to simplify things for users. Will also remove the pylab
1214 -pylab, to simplify things for users. Will also remove the pylab
1214 profile, since now all of matplotlib configuration is directly
1215 profile, since now all of matplotlib configuration is directly
1215 handled here. This also reduces startup time.
1216 handled here. This also reduces startup time.
1216
1217
1217 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1218 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1218 shell wasn't being correctly called. Also in IPShellWX.
1219 shell wasn't being correctly called. Also in IPShellWX.
1219
1220
1220 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1221 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1221 fine-tune banner.
1222 fine-tune banner.
1222
1223
1223 * IPython/numutils.py (spike): Deprecate these spike functions,
1224 * IPython/numutils.py (spike): Deprecate these spike functions,
1224 delete (long deprecated) gnuplot_exec handler.
1225 delete (long deprecated) gnuplot_exec handler.
1225
1226
1226 2004-08-26 Fernando Perez <fperez@colorado.edu>
1227 2004-08-26 Fernando Perez <fperez@colorado.edu>
1227
1228
1228 * ipython.1: Update for threading options, plus some others which
1229 * ipython.1: Update for threading options, plus some others which
1229 were missing.
1230 were missing.
1230
1231
1231 * IPython/ipmaker.py (__call__): Added -wthread option for
1232 * IPython/ipmaker.py (__call__): Added -wthread option for
1232 wxpython thread handling. Make sure threading options are only
1233 wxpython thread handling. Make sure threading options are only
1233 valid at the command line.
1234 valid at the command line.
1234
1235
1235 * scripts/ipython: moved shell selection into a factory function
1236 * scripts/ipython: moved shell selection into a factory function
1236 in Shell.py, to keep the starter script to a minimum.
1237 in Shell.py, to keep the starter script to a minimum.
1237
1238
1238 2004-08-25 Fernando Perez <fperez@colorado.edu>
1239 2004-08-25 Fernando Perez <fperez@colorado.edu>
1239
1240
1240 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1241 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1241 John. Along with some recent changes he made to matplotlib, the
1242 John. Along with some recent changes he made to matplotlib, the
1242 next versions of both systems should work very well together.
1243 next versions of both systems should work very well together.
1243
1244
1244 2004-08-24 Fernando Perez <fperez@colorado.edu>
1245 2004-08-24 Fernando Perez <fperez@colorado.edu>
1245
1246
1246 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1247 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1247 tried to switch the profiling to using hotshot, but I'm getting
1248 tried to switch the profiling to using hotshot, but I'm getting
1248 strange errors from prof.runctx() there. I may be misreading the
1249 strange errors from prof.runctx() there. I may be misreading the
1249 docs, but it looks weird. For now the profiling code will
1250 docs, but it looks weird. For now the profiling code will
1250 continue to use the standard profiler.
1251 continue to use the standard profiler.
1251
1252
1252 2004-08-23 Fernando Perez <fperez@colorado.edu>
1253 2004-08-23 Fernando Perez <fperez@colorado.edu>
1253
1254
1254 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1255 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1255 threaded shell, by John Hunter. It's not quite ready yet, but
1256 threaded shell, by John Hunter. It's not quite ready yet, but
1256 close.
1257 close.
1257
1258
1258 2004-08-22 Fernando Perez <fperez@colorado.edu>
1259 2004-08-22 Fernando Perez <fperez@colorado.edu>
1259
1260
1260 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1261 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1261 in Magic and ultraTB.
1262 in Magic and ultraTB.
1262
1263
1263 * ipython.1: document threading options in manpage.
1264 * ipython.1: document threading options in manpage.
1264
1265
1265 * scripts/ipython: Changed name of -thread option to -gthread,
1266 * scripts/ipython: Changed name of -thread option to -gthread,
1266 since this is GTK specific. I want to leave the door open for a
1267 since this is GTK specific. I want to leave the door open for a
1267 -wthread option for WX, which will most likely be necessary. This
1268 -wthread option for WX, which will most likely be necessary. This
1268 change affects usage and ipmaker as well.
1269 change affects usage and ipmaker as well.
1269
1270
1270 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1271 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1271 handle the matplotlib shell issues. Code by John Hunter
1272 handle the matplotlib shell issues. Code by John Hunter
1272 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1273 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1273 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1274 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1274 broken (and disabled for end users) for now, but it puts the
1275 broken (and disabled for end users) for now, but it puts the
1275 infrastructure in place.
1276 infrastructure in place.
1276
1277
1277 2004-08-21 Fernando Perez <fperez@colorado.edu>
1278 2004-08-21 Fernando Perez <fperez@colorado.edu>
1278
1279
1279 * ipythonrc-pylab: Add matplotlib support.
1280 * ipythonrc-pylab: Add matplotlib support.
1280
1281
1281 * matplotlib_config.py: new files for matplotlib support, part of
1282 * matplotlib_config.py: new files for matplotlib support, part of
1282 the pylab profile.
1283 the pylab profile.
1283
1284
1284 * IPython/usage.py (__doc__): documented the threading options.
1285 * IPython/usage.py (__doc__): documented the threading options.
1285
1286
1286 2004-08-20 Fernando Perez <fperez@colorado.edu>
1287 2004-08-20 Fernando Perez <fperez@colorado.edu>
1287
1288
1288 * ipython: Modified the main calling routine to handle the -thread
1289 * ipython: Modified the main calling routine to handle the -thread
1289 and -mpthread options. This needs to be done as a top-level hack,
1290 and -mpthread options. This needs to be done as a top-level hack,
1290 because it determines which class to instantiate for IPython
1291 because it determines which class to instantiate for IPython
1291 itself.
1292 itself.
1292
1293
1293 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1294 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1294 classes to support multithreaded GTK operation without blocking,
1295 classes to support multithreaded GTK operation without blocking,
1295 and matplotlib with all backends. This is a lot of still very
1296 and matplotlib with all backends. This is a lot of still very
1296 experimental code, and threads are tricky. So it may still have a
1297 experimental code, and threads are tricky. So it may still have a
1297 few rough edges... This code owes a lot to
1298 few rough edges... This code owes a lot to
1298 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1299 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1299 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1300 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1300 to John Hunter for all the matplotlib work.
1301 to John Hunter for all the matplotlib work.
1301
1302
1302 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1303 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1303 options for gtk thread and matplotlib support.
1304 options for gtk thread and matplotlib support.
1304
1305
1305 2004-08-16 Fernando Perez <fperez@colorado.edu>
1306 2004-08-16 Fernando Perez <fperez@colorado.edu>
1306
1307
1307 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1308 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1308 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1309 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1309 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1310 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1310
1311
1311 2004-08-11 Fernando Perez <fperez@colorado.edu>
1312 2004-08-11 Fernando Perez <fperez@colorado.edu>
1312
1313
1313 * setup.py (isfile): Fix build so documentation gets updated for
1314 * setup.py (isfile): Fix build so documentation gets updated for
1314 rpms (it was only done for .tgz builds).
1315 rpms (it was only done for .tgz builds).
1315
1316
1316 2004-08-10 Fernando Perez <fperez@colorado.edu>
1317 2004-08-10 Fernando Perez <fperez@colorado.edu>
1317
1318
1318 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1319 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1319
1320
1320 * iplib.py : Silence syntax error exceptions in tab-completion.
1321 * iplib.py : Silence syntax error exceptions in tab-completion.
1321
1322
1322 2004-08-05 Fernando Perez <fperez@colorado.edu>
1323 2004-08-05 Fernando Perez <fperez@colorado.edu>
1323
1324
1324 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1325 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1325 'color off' mark for continuation prompts. This was causing long
1326 'color off' mark for continuation prompts. This was causing long
1326 continuation lines to mis-wrap.
1327 continuation lines to mis-wrap.
1327
1328
1328 2004-08-01 Fernando Perez <fperez@colorado.edu>
1329 2004-08-01 Fernando Perez <fperez@colorado.edu>
1329
1330
1330 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1331 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1331 for building ipython to be a parameter. All this is necessary
1332 for building ipython to be a parameter. All this is necessary
1332 right now to have a multithreaded version, but this insane
1333 right now to have a multithreaded version, but this insane
1333 non-design will be cleaned up soon. For now, it's a hack that
1334 non-design will be cleaned up soon. For now, it's a hack that
1334 works.
1335 works.
1335
1336
1336 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1337 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1337 args in various places. No bugs so far, but it's a dangerous
1338 args in various places. No bugs so far, but it's a dangerous
1338 practice.
1339 practice.
1339
1340
1340 2004-07-31 Fernando Perez <fperez@colorado.edu>
1341 2004-07-31 Fernando Perez <fperez@colorado.edu>
1341
1342
1342 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1343 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1343 fix completion of files with dots in their names under most
1344 fix completion of files with dots in their names under most
1344 profiles (pysh was OK because the completion order is different).
1345 profiles (pysh was OK because the completion order is different).
1345
1346
1346 2004-07-27 Fernando Perez <fperez@colorado.edu>
1347 2004-07-27 Fernando Perez <fperez@colorado.edu>
1347
1348
1348 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1349 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1349 keywords manually, b/c the one in keyword.py was removed in python
1350 keywords manually, b/c the one in keyword.py was removed in python
1350 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1351 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1351 This is NOT a bug under python 2.3 and earlier.
1352 This is NOT a bug under python 2.3 and earlier.
1352
1353
1353 2004-07-26 Fernando Perez <fperez@colorado.edu>
1354 2004-07-26 Fernando Perez <fperez@colorado.edu>
1354
1355
1355 * IPython/ultraTB.py (VerboseTB.text): Add another
1356 * IPython/ultraTB.py (VerboseTB.text): Add another
1356 linecache.checkcache() call to try to prevent inspect.py from
1357 linecache.checkcache() call to try to prevent inspect.py from
1357 crashing under python 2.3. I think this fixes
1358 crashing under python 2.3. I think this fixes
1358 http://www.scipy.net/roundup/ipython/issue17.
1359 http://www.scipy.net/roundup/ipython/issue17.
1359
1360
1360 2004-07-26 *** Released version 0.6.2
1361 2004-07-26 *** Released version 0.6.2
1361
1362
1362 2004-07-26 Fernando Perez <fperez@colorado.edu>
1363 2004-07-26 Fernando Perez <fperez@colorado.edu>
1363
1364
1364 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1365 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1365 fail for any number.
1366 fail for any number.
1366 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1367 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1367 empty bookmarks.
1368 empty bookmarks.
1368
1369
1369 2004-07-26 *** Released version 0.6.1
1370 2004-07-26 *** Released version 0.6.1
1370
1371
1371 2004-07-26 Fernando Perez <fperez@colorado.edu>
1372 2004-07-26 Fernando Perez <fperez@colorado.edu>
1372
1373
1373 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1374 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1374
1375
1375 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1376 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1376 escaping '()[]{}' in filenames.
1377 escaping '()[]{}' in filenames.
1377
1378
1378 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1379 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1379 Python 2.2 users who lack a proper shlex.split.
1380 Python 2.2 users who lack a proper shlex.split.
1380
1381
1381 2004-07-19 Fernando Perez <fperez@colorado.edu>
1382 2004-07-19 Fernando Perez <fperez@colorado.edu>
1382
1383
1383 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1384 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1384 for reading readline's init file. I follow the normal chain:
1385 for reading readline's init file. I follow the normal chain:
1385 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1386 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1386 report by Mike Heeter. This closes
1387 report by Mike Heeter. This closes
1387 http://www.scipy.net/roundup/ipython/issue16.
1388 http://www.scipy.net/roundup/ipython/issue16.
1388
1389
1389 2004-07-18 Fernando Perez <fperez@colorado.edu>
1390 2004-07-18 Fernando Perez <fperez@colorado.edu>
1390
1391
1391 * IPython/iplib.py (__init__): Add better handling of '\' under
1392 * IPython/iplib.py (__init__): Add better handling of '\' under
1392 Win32 for filenames. After a patch by Ville.
1393 Win32 for filenames. After a patch by Ville.
1393
1394
1394 2004-07-17 Fernando Perez <fperez@colorado.edu>
1395 2004-07-17 Fernando Perez <fperez@colorado.edu>
1395
1396
1396 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1397 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1397 autocalling would be triggered for 'foo is bar' if foo is
1398 autocalling would be triggered for 'foo is bar' if foo is
1398 callable. I also cleaned up the autocall detection code to use a
1399 callable. I also cleaned up the autocall detection code to use a
1399 regexp, which is faster. Bug reported by Alexander Schmolck.
1400 regexp, which is faster. Bug reported by Alexander Schmolck.
1400
1401
1401 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1402 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1402 '?' in them would confuse the help system. Reported by Alex
1403 '?' in them would confuse the help system. Reported by Alex
1403 Schmolck.
1404 Schmolck.
1404
1405
1405 2004-07-16 Fernando Perez <fperez@colorado.edu>
1406 2004-07-16 Fernando Perez <fperez@colorado.edu>
1406
1407
1407 * IPython/GnuplotInteractive.py (__all__): added plot2.
1408 * IPython/GnuplotInteractive.py (__all__): added plot2.
1408
1409
1409 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1410 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1410 plotting dictionaries, lists or tuples of 1d arrays.
1411 plotting dictionaries, lists or tuples of 1d arrays.
1411
1412
1412 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1413 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1413 optimizations.
1414 optimizations.
1414
1415
1415 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1416 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1416 the information which was there from Janko's original IPP code:
1417 the information which was there from Janko's original IPP code:
1417
1418
1418 03.05.99 20:53 porto.ifm.uni-kiel.de
1419 03.05.99 20:53 porto.ifm.uni-kiel.de
1419 --Started changelog.
1420 --Started changelog.
1420 --make clear do what it say it does
1421 --make clear do what it say it does
1421 --added pretty output of lines from inputcache
1422 --added pretty output of lines from inputcache
1422 --Made Logger a mixin class, simplifies handling of switches
1423 --Made Logger a mixin class, simplifies handling of switches
1423 --Added own completer class. .string<TAB> expands to last history
1424 --Added own completer class. .string<TAB> expands to last history
1424 line which starts with string. The new expansion is also present
1425 line which starts with string. The new expansion is also present
1425 with Ctrl-r from the readline library. But this shows, who this
1426 with Ctrl-r from the readline library. But this shows, who this
1426 can be done for other cases.
1427 can be done for other cases.
1427 --Added convention that all shell functions should accept a
1428 --Added convention that all shell functions should accept a
1428 parameter_string This opens the door for different behaviour for
1429 parameter_string This opens the door for different behaviour for
1429 each function. @cd is a good example of this.
1430 each function. @cd is a good example of this.
1430
1431
1431 04.05.99 12:12 porto.ifm.uni-kiel.de
1432 04.05.99 12:12 porto.ifm.uni-kiel.de
1432 --added logfile rotation
1433 --added logfile rotation
1433 --added new mainloop method which freezes first the namespace
1434 --added new mainloop method which freezes first the namespace
1434
1435
1435 07.05.99 21:24 porto.ifm.uni-kiel.de
1436 07.05.99 21:24 porto.ifm.uni-kiel.de
1436 --added the docreader classes. Now there is a help system.
1437 --added the docreader classes. Now there is a help system.
1437 -This is only a first try. Currently it's not easy to put new
1438 -This is only a first try. Currently it's not easy to put new
1438 stuff in the indices. But this is the way to go. Info would be
1439 stuff in the indices. But this is the way to go. Info would be
1439 better, but HTML is every where and not everybody has an info
1440 better, but HTML is every where and not everybody has an info
1440 system installed and it's not so easy to change html-docs to info.
1441 system installed and it's not so easy to change html-docs to info.
1441 --added global logfile option
1442 --added global logfile option
1442 --there is now a hook for object inspection method pinfo needs to
1443 --there is now a hook for object inspection method pinfo needs to
1443 be provided for this. Can be reached by two '??'.
1444 be provided for this. Can be reached by two '??'.
1444
1445
1445 08.05.99 20:51 porto.ifm.uni-kiel.de
1446 08.05.99 20:51 porto.ifm.uni-kiel.de
1446 --added a README
1447 --added a README
1447 --bug in rc file. Something has changed so functions in the rc
1448 --bug in rc file. Something has changed so functions in the rc
1448 file need to reference the shell and not self. Not clear if it's a
1449 file need to reference the shell and not self. Not clear if it's a
1449 bug or feature.
1450 bug or feature.
1450 --changed rc file for new behavior
1451 --changed rc file for new behavior
1451
1452
1452 2004-07-15 Fernando Perez <fperez@colorado.edu>
1453 2004-07-15 Fernando Perez <fperez@colorado.edu>
1453
1454
1454 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1455 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1455 cache was falling out of sync in bizarre manners when multi-line
1456 cache was falling out of sync in bizarre manners when multi-line
1456 input was present. Minor optimizations and cleanup.
1457 input was present. Minor optimizations and cleanup.
1457
1458
1458 (Logger): Remove old Changelog info for cleanup. This is the
1459 (Logger): Remove old Changelog info for cleanup. This is the
1459 information which was there from Janko's original code:
1460 information which was there from Janko's original code:
1460
1461
1461 Changes to Logger: - made the default log filename a parameter
1462 Changes to Logger: - made the default log filename a parameter
1462
1463
1463 - put a check for lines beginning with !@? in log(). Needed
1464 - put a check for lines beginning with !@? in log(). Needed
1464 (even if the handlers properly log their lines) for mid-session
1465 (even if the handlers properly log their lines) for mid-session
1465 logging activation to work properly. Without this, lines logged
1466 logging activation to work properly. Without this, lines logged
1466 in mid session, which get read from the cache, would end up
1467 in mid session, which get read from the cache, would end up
1467 'bare' (with !@? in the open) in the log. Now they are caught
1468 'bare' (with !@? in the open) in the log. Now they are caught
1468 and prepended with a #.
1469 and prepended with a #.
1469
1470
1470 * IPython/iplib.py (InteractiveShell.init_readline): added check
1471 * IPython/iplib.py (InteractiveShell.init_readline): added check
1471 in case MagicCompleter fails to be defined, so we don't crash.
1472 in case MagicCompleter fails to be defined, so we don't crash.
1472
1473
1473 2004-07-13 Fernando Perez <fperez@colorado.edu>
1474 2004-07-13 Fernando Perez <fperez@colorado.edu>
1474
1475
1475 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1476 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1476 of EPS if the requested filename ends in '.eps'.
1477 of EPS if the requested filename ends in '.eps'.
1477
1478
1478 2004-07-04 Fernando Perez <fperez@colorado.edu>
1479 2004-07-04 Fernando Perez <fperez@colorado.edu>
1479
1480
1480 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1481 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1481 escaping of quotes when calling the shell.
1482 escaping of quotes when calling the shell.
1482
1483
1483 2004-07-02 Fernando Perez <fperez@colorado.edu>
1484 2004-07-02 Fernando Perez <fperez@colorado.edu>
1484
1485
1485 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1486 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1486 gettext not working because we were clobbering '_'. Fixes
1487 gettext not working because we were clobbering '_'. Fixes
1487 http://www.scipy.net/roundup/ipython/issue6.
1488 http://www.scipy.net/roundup/ipython/issue6.
1488
1489
1489 2004-07-01 Fernando Perez <fperez@colorado.edu>
1490 2004-07-01 Fernando Perez <fperez@colorado.edu>
1490
1491
1491 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1492 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1492 into @cd. Patch by Ville.
1493 into @cd. Patch by Ville.
1493
1494
1494 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1495 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1495 new function to store things after ipmaker runs. Patch by Ville.
1496 new function to store things after ipmaker runs. Patch by Ville.
1496 Eventually this will go away once ipmaker is removed and the class
1497 Eventually this will go away once ipmaker is removed and the class
1497 gets cleaned up, but for now it's ok. Key functionality here is
1498 gets cleaned up, but for now it's ok. Key functionality here is
1498 the addition of the persistent storage mechanism, a dict for
1499 the addition of the persistent storage mechanism, a dict for
1499 keeping data across sessions (for now just bookmarks, but more can
1500 keeping data across sessions (for now just bookmarks, but more can
1500 be implemented later).
1501 be implemented later).
1501
1502
1502 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1503 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1503 persistent across sections. Patch by Ville, I modified it
1504 persistent across sections. Patch by Ville, I modified it
1504 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1505 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1505 added a '-l' option to list all bookmarks.
1506 added a '-l' option to list all bookmarks.
1506
1507
1507 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1508 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1508 center for cleanup. Registered with atexit.register(). I moved
1509 center for cleanup. Registered with atexit.register(). I moved
1509 here the old exit_cleanup(). After a patch by Ville.
1510 here the old exit_cleanup(). After a patch by Ville.
1510
1511
1511 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1512 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1512 characters in the hacked shlex_split for python 2.2.
1513 characters in the hacked shlex_split for python 2.2.
1513
1514
1514 * IPython/iplib.py (file_matches): more fixes to filenames with
1515 * IPython/iplib.py (file_matches): more fixes to filenames with
1515 whitespace in them. It's not perfect, but limitations in python's
1516 whitespace in them. It's not perfect, but limitations in python's
1516 readline make it impossible to go further.
1517 readline make it impossible to go further.
1517
1518
1518 2004-06-29 Fernando Perez <fperez@colorado.edu>
1519 2004-06-29 Fernando Perez <fperez@colorado.edu>
1519
1520
1520 * IPython/iplib.py (file_matches): escape whitespace correctly in
1521 * IPython/iplib.py (file_matches): escape whitespace correctly in
1521 filename completions. Bug reported by Ville.
1522 filename completions. Bug reported by Ville.
1522
1523
1523 2004-06-28 Fernando Perez <fperez@colorado.edu>
1524 2004-06-28 Fernando Perez <fperez@colorado.edu>
1524
1525
1525 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1526 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1526 the history file will be called 'history-PROFNAME' (or just
1527 the history file will be called 'history-PROFNAME' (or just
1527 'history' if no profile is loaded). I was getting annoyed at
1528 'history' if no profile is loaded). I was getting annoyed at
1528 getting my Numerical work history clobbered by pysh sessions.
1529 getting my Numerical work history clobbered by pysh sessions.
1529
1530
1530 * IPython/iplib.py (InteractiveShell.__init__): Internal
1531 * IPython/iplib.py (InteractiveShell.__init__): Internal
1531 getoutputerror() function so that we can honor the system_verbose
1532 getoutputerror() function so that we can honor the system_verbose
1532 flag for _all_ system calls. I also added escaping of #
1533 flag for _all_ system calls. I also added escaping of #
1533 characters here to avoid confusing Itpl.
1534 characters here to avoid confusing Itpl.
1534
1535
1535 * IPython/Magic.py (shlex_split): removed call to shell in
1536 * IPython/Magic.py (shlex_split): removed call to shell in
1536 parse_options and replaced it with shlex.split(). The annoying
1537 parse_options and replaced it with shlex.split(). The annoying
1537 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1538 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1538 to backport it from 2.3, with several frail hacks (the shlex
1539 to backport it from 2.3, with several frail hacks (the shlex
1539 module is rather limited in 2.2). Thanks to a suggestion by Ville
1540 module is rather limited in 2.2). Thanks to a suggestion by Ville
1540 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1541 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1541 problem.
1542 problem.
1542
1543
1543 (Magic.magic_system_verbose): new toggle to print the actual
1544 (Magic.magic_system_verbose): new toggle to print the actual
1544 system calls made by ipython. Mainly for debugging purposes.
1545 system calls made by ipython. Mainly for debugging purposes.
1545
1546
1546 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1547 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1547 doesn't support persistence. Reported (and fix suggested) by
1548 doesn't support persistence. Reported (and fix suggested) by
1548 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1549 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1549
1550
1550 2004-06-26 Fernando Perez <fperez@colorado.edu>
1551 2004-06-26 Fernando Perez <fperez@colorado.edu>
1551
1552
1552 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1553 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1553 continue prompts.
1554 continue prompts.
1554
1555
1555 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1556 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1556 function (basically a big docstring) and a few more things here to
1557 function (basically a big docstring) and a few more things here to
1557 speedup startup. pysh.py is now very lightweight. We want because
1558 speedup startup. pysh.py is now very lightweight. We want because
1558 it gets execfile'd, while InterpreterExec gets imported, so
1559 it gets execfile'd, while InterpreterExec gets imported, so
1559 byte-compilation saves time.
1560 byte-compilation saves time.
1560
1561
1561 2004-06-25 Fernando Perez <fperez@colorado.edu>
1562 2004-06-25 Fernando Perez <fperez@colorado.edu>
1562
1563
1563 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1564 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1564 -NUM', which was recently broken.
1565 -NUM', which was recently broken.
1565
1566
1566 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1567 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1567 in multi-line input (but not !!, which doesn't make sense there).
1568 in multi-line input (but not !!, which doesn't make sense there).
1568
1569
1569 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1570 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1570 It's just too useful, and people can turn it off in the less
1571 It's just too useful, and people can turn it off in the less
1571 common cases where it's a problem.
1572 common cases where it's a problem.
1572
1573
1573 2004-06-24 Fernando Perez <fperez@colorado.edu>
1574 2004-06-24 Fernando Perez <fperez@colorado.edu>
1574
1575
1575 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1576 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1576 special syntaxes (like alias calling) is now allied in multi-line
1577 special syntaxes (like alias calling) is now allied in multi-line
1577 input. This is still _very_ experimental, but it's necessary for
1578 input. This is still _very_ experimental, but it's necessary for
1578 efficient shell usage combining python looping syntax with system
1579 efficient shell usage combining python looping syntax with system
1579 calls. For now it's restricted to aliases, I don't think it
1580 calls. For now it's restricted to aliases, I don't think it
1580 really even makes sense to have this for magics.
1581 really even makes sense to have this for magics.
1581
1582
1582 2004-06-23 Fernando Perez <fperez@colorado.edu>
1583 2004-06-23 Fernando Perez <fperez@colorado.edu>
1583
1584
1584 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1585 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1585 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1586 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1586
1587
1587 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1588 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1588 extensions under Windows (after code sent by Gary Bishop). The
1589 extensions under Windows (after code sent by Gary Bishop). The
1589 extensions considered 'executable' are stored in IPython's rc
1590 extensions considered 'executable' are stored in IPython's rc
1590 structure as win_exec_ext.
1591 structure as win_exec_ext.
1591
1592
1592 * IPython/genutils.py (shell): new function, like system() but
1593 * IPython/genutils.py (shell): new function, like system() but
1593 without return value. Very useful for interactive shell work.
1594 without return value. Very useful for interactive shell work.
1594
1595
1595 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1596 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1596 delete aliases.
1597 delete aliases.
1597
1598
1598 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1599 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1599 sure that the alias table doesn't contain python keywords.
1600 sure that the alias table doesn't contain python keywords.
1600
1601
1601 2004-06-21 Fernando Perez <fperez@colorado.edu>
1602 2004-06-21 Fernando Perez <fperez@colorado.edu>
1602
1603
1603 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1604 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1604 non-existent items are found in $PATH. Reported by Thorsten.
1605 non-existent items are found in $PATH. Reported by Thorsten.
1605
1606
1606 2004-06-20 Fernando Perez <fperez@colorado.edu>
1607 2004-06-20 Fernando Perez <fperez@colorado.edu>
1607
1608
1608 * IPython/iplib.py (complete): modified the completer so that the
1609 * IPython/iplib.py (complete): modified the completer so that the
1609 order of priorities can be easily changed at runtime.
1610 order of priorities can be easily changed at runtime.
1610
1611
1611 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1612 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1612 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1613 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1613
1614
1614 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1615 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1615 expand Python variables prepended with $ in all system calls. The
1616 expand Python variables prepended with $ in all system calls. The
1616 same was done to InteractiveShell.handle_shell_escape. Now all
1617 same was done to InteractiveShell.handle_shell_escape. Now all
1617 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1618 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1618 expansion of python variables and expressions according to the
1619 expansion of python variables and expressions according to the
1619 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1620 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1620
1621
1621 Though PEP-215 has been rejected, a similar (but simpler) one
1622 Though PEP-215 has been rejected, a similar (but simpler) one
1622 seems like it will go into Python 2.4, PEP-292 -
1623 seems like it will go into Python 2.4, PEP-292 -
1623 http://www.python.org/peps/pep-0292.html.
1624 http://www.python.org/peps/pep-0292.html.
1624
1625
1625 I'll keep the full syntax of PEP-215, since IPython has since the
1626 I'll keep the full syntax of PEP-215, since IPython has since the
1626 start used Ka-Ping Yee's reference implementation discussed there
1627 start used Ka-Ping Yee's reference implementation discussed there
1627 (Itpl), and I actually like the powerful semantics it offers.
1628 (Itpl), and I actually like the powerful semantics it offers.
1628
1629
1629 In order to access normal shell variables, the $ has to be escaped
1630 In order to access normal shell variables, the $ has to be escaped
1630 via an extra $. For example:
1631 via an extra $. For example:
1631
1632
1632 In [7]: PATH='a python variable'
1633 In [7]: PATH='a python variable'
1633
1634
1634 In [8]: !echo $PATH
1635 In [8]: !echo $PATH
1635 a python variable
1636 a python variable
1636
1637
1637 In [9]: !echo $$PATH
1638 In [9]: !echo $$PATH
1638 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1639 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1639
1640
1640 (Magic.parse_options): escape $ so the shell doesn't evaluate
1641 (Magic.parse_options): escape $ so the shell doesn't evaluate
1641 things prematurely.
1642 things prematurely.
1642
1643
1643 * IPython/iplib.py (InteractiveShell.call_alias): added the
1644 * IPython/iplib.py (InteractiveShell.call_alias): added the
1644 ability for aliases to expand python variables via $.
1645 ability for aliases to expand python variables via $.
1645
1646
1646 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1647 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1647 system, now there's a @rehash/@rehashx pair of magics. These work
1648 system, now there's a @rehash/@rehashx pair of magics. These work
1648 like the csh rehash command, and can be invoked at any time. They
1649 like the csh rehash command, and can be invoked at any time. They
1649 build a table of aliases to everything in the user's $PATH
1650 build a table of aliases to everything in the user's $PATH
1650 (@rehash uses everything, @rehashx is slower but only adds
1651 (@rehash uses everything, @rehashx is slower but only adds
1651 executable files). With this, the pysh.py-based shell profile can
1652 executable files). With this, the pysh.py-based shell profile can
1652 now simply call rehash upon startup, and full access to all
1653 now simply call rehash upon startup, and full access to all
1653 programs in the user's path is obtained.
1654 programs in the user's path is obtained.
1654
1655
1655 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1656 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1656 functionality is now fully in place. I removed the old dynamic
1657 functionality is now fully in place. I removed the old dynamic
1657 code generation based approach, in favor of a much lighter one
1658 code generation based approach, in favor of a much lighter one
1658 based on a simple dict. The advantage is that this allows me to
1659 based on a simple dict. The advantage is that this allows me to
1659 now have thousands of aliases with negligible cost (unthinkable
1660 now have thousands of aliases with negligible cost (unthinkable
1660 with the old system).
1661 with the old system).
1661
1662
1662 2004-06-19 Fernando Perez <fperez@colorado.edu>
1663 2004-06-19 Fernando Perez <fperez@colorado.edu>
1663
1664
1664 * IPython/iplib.py (__init__): extended MagicCompleter class to
1665 * IPython/iplib.py (__init__): extended MagicCompleter class to
1665 also complete (last in priority) on user aliases.
1666 also complete (last in priority) on user aliases.
1666
1667
1667 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1668 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1668 call to eval.
1669 call to eval.
1669 (ItplNS.__init__): Added a new class which functions like Itpl,
1670 (ItplNS.__init__): Added a new class which functions like Itpl,
1670 but allows configuring the namespace for the evaluation to occur
1671 but allows configuring the namespace for the evaluation to occur
1671 in.
1672 in.
1672
1673
1673 2004-06-18 Fernando Perez <fperez@colorado.edu>
1674 2004-06-18 Fernando Perez <fperez@colorado.edu>
1674
1675
1675 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1676 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1676 better message when 'exit' or 'quit' are typed (a common newbie
1677 better message when 'exit' or 'quit' are typed (a common newbie
1677 confusion).
1678 confusion).
1678
1679
1679 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1680 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1680 check for Windows users.
1681 check for Windows users.
1681
1682
1682 * IPython/iplib.py (InteractiveShell.user_setup): removed
1683 * IPython/iplib.py (InteractiveShell.user_setup): removed
1683 disabling of colors for Windows. I'll test at runtime and issue a
1684 disabling of colors for Windows. I'll test at runtime and issue a
1684 warning if Gary's readline isn't found, as to nudge users to
1685 warning if Gary's readline isn't found, as to nudge users to
1685 download it.
1686 download it.
1686
1687
1687 2004-06-16 Fernando Perez <fperez@colorado.edu>
1688 2004-06-16 Fernando Perez <fperez@colorado.edu>
1688
1689
1689 * IPython/genutils.py (Stream.__init__): changed to print errors
1690 * IPython/genutils.py (Stream.__init__): changed to print errors
1690 to sys.stderr. I had a circular dependency here. Now it's
1691 to sys.stderr. I had a circular dependency here. Now it's
1691 possible to run ipython as IDLE's shell (consider this pre-alpha,
1692 possible to run ipython as IDLE's shell (consider this pre-alpha,
1692 since true stdout things end up in the starting terminal instead
1693 since true stdout things end up in the starting terminal instead
1693 of IDLE's out).
1694 of IDLE's out).
1694
1695
1695 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1696 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1696 users who haven't # updated their prompt_in2 definitions. Remove
1697 users who haven't # updated their prompt_in2 definitions. Remove
1697 eventually.
1698 eventually.
1698 (multiple_replace): added credit to original ASPN recipe.
1699 (multiple_replace): added credit to original ASPN recipe.
1699
1700
1700 2004-06-15 Fernando Perez <fperez@colorado.edu>
1701 2004-06-15 Fernando Perez <fperez@colorado.edu>
1701
1702
1702 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1703 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1703 list of auto-defined aliases.
1704 list of auto-defined aliases.
1704
1705
1705 2004-06-13 Fernando Perez <fperez@colorado.edu>
1706 2004-06-13 Fernando Perez <fperez@colorado.edu>
1706
1707
1707 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1708 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1708 install was really requested (so setup.py can be used for other
1709 install was really requested (so setup.py can be used for other
1709 things under Windows).
1710 things under Windows).
1710
1711
1711 2004-06-10 Fernando Perez <fperez@colorado.edu>
1712 2004-06-10 Fernando Perez <fperez@colorado.edu>
1712
1713
1713 * IPython/Logger.py (Logger.create_log): Manually remove any old
1714 * IPython/Logger.py (Logger.create_log): Manually remove any old
1714 backup, since os.remove may fail under Windows. Fixes bug
1715 backup, since os.remove may fail under Windows. Fixes bug
1715 reported by Thorsten.
1716 reported by Thorsten.
1716
1717
1717 2004-06-09 Fernando Perez <fperez@colorado.edu>
1718 2004-06-09 Fernando Perez <fperez@colorado.edu>
1718
1719
1719 * examples/example-embed.py: fixed all references to %n (replaced
1720 * examples/example-embed.py: fixed all references to %n (replaced
1720 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1721 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1721 for all examples and the manual as well.
1722 for all examples and the manual as well.
1722
1723
1723 2004-06-08 Fernando Perez <fperez@colorado.edu>
1724 2004-06-08 Fernando Perez <fperez@colorado.edu>
1724
1725
1725 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
1726 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
1726 alignment and color management. All 3 prompt subsystems now
1727 alignment and color management. All 3 prompt subsystems now
1727 inherit from BasePrompt.
1728 inherit from BasePrompt.
1728
1729
1729 * tools/release: updates for windows installer build and tag rpms
1730 * tools/release: updates for windows installer build and tag rpms
1730 with python version (since paths are fixed).
1731 with python version (since paths are fixed).
1731
1732
1732 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
1733 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
1733 which will become eventually obsolete. Also fixed the default
1734 which will become eventually obsolete. Also fixed the default
1734 prompt_in2 to use \D, so at least new users start with the correct
1735 prompt_in2 to use \D, so at least new users start with the correct
1735 defaults.
1736 defaults.
1736 WARNING: Users with existing ipythonrc files will need to apply
1737 WARNING: Users with existing ipythonrc files will need to apply
1737 this fix manually!
1738 this fix manually!
1738
1739
1739 * setup.py: make windows installer (.exe). This is finally the
1740 * setup.py: make windows installer (.exe). This is finally the
1740 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
1741 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
1741 which I hadn't included because it required Python 2.3 (or recent
1742 which I hadn't included because it required Python 2.3 (or recent
1742 distutils).
1743 distutils).
1743
1744
1744 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
1745 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
1745 usage of new '\D' escape.
1746 usage of new '\D' escape.
1746
1747
1747 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
1748 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
1748 lacks os.getuid())
1749 lacks os.getuid())
1749 (CachedOutput.set_colors): Added the ability to turn coloring
1750 (CachedOutput.set_colors): Added the ability to turn coloring
1750 on/off with @colors even for manually defined prompt colors. It
1751 on/off with @colors even for manually defined prompt colors. It
1751 uses a nasty global, but it works safely and via the generic color
1752 uses a nasty global, but it works safely and via the generic color
1752 handling mechanism.
1753 handling mechanism.
1753 (Prompt2.__init__): Introduced new escape '\D' for continuation
1754 (Prompt2.__init__): Introduced new escape '\D' for continuation
1754 prompts. It represents the counter ('\#') as dots.
1755 prompts. It represents the counter ('\#') as dots.
1755 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
1756 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
1756 need to update their ipythonrc files and replace '%n' with '\D' in
1757 need to update their ipythonrc files and replace '%n' with '\D' in
1757 their prompt_in2 settings everywhere. Sorry, but there's
1758 their prompt_in2 settings everywhere. Sorry, but there's
1758 otherwise no clean way to get all prompts to properly align. The
1759 otherwise no clean way to get all prompts to properly align. The
1759 ipythonrc shipped with IPython has been updated.
1760 ipythonrc shipped with IPython has been updated.
1760
1761
1761 2004-06-07 Fernando Perez <fperez@colorado.edu>
1762 2004-06-07 Fernando Perez <fperez@colorado.edu>
1762
1763
1763 * setup.py (isfile): Pass local_icons option to latex2html, so the
1764 * setup.py (isfile): Pass local_icons option to latex2html, so the
1764 resulting HTML file is self-contained. Thanks to
1765 resulting HTML file is self-contained. Thanks to
1765 dryice-AT-liu.com.cn for the tip.
1766 dryice-AT-liu.com.cn for the tip.
1766
1767
1767 * pysh.py: I created a new profile 'shell', which implements a
1768 * pysh.py: I created a new profile 'shell', which implements a
1768 _rudimentary_ IPython-based shell. This is in NO WAY a realy
1769 _rudimentary_ IPython-based shell. This is in NO WAY a realy
1769 system shell, nor will it become one anytime soon. It's mainly
1770 system shell, nor will it become one anytime soon. It's mainly
1770 meant to illustrate the use of the new flexible bash-like prompts.
1771 meant to illustrate the use of the new flexible bash-like prompts.
1771 I guess it could be used by hardy souls for true shell management,
1772 I guess it could be used by hardy souls for true shell management,
1772 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
1773 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
1773 profile. This uses the InterpreterExec extension provided by
1774 profile. This uses the InterpreterExec extension provided by
1774 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
1775 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
1775
1776
1776 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
1777 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
1777 auto-align itself with the length of the previous input prompt
1778 auto-align itself with the length of the previous input prompt
1778 (taking into account the invisible color escapes).
1779 (taking into account the invisible color escapes).
1779 (CachedOutput.__init__): Large restructuring of this class. Now
1780 (CachedOutput.__init__): Large restructuring of this class. Now
1780 all three prompts (primary1, primary2, output) are proper objects,
1781 all three prompts (primary1, primary2, output) are proper objects,
1781 managed by the 'parent' CachedOutput class. The code is still a
1782 managed by the 'parent' CachedOutput class. The code is still a
1782 bit hackish (all prompts share state via a pointer to the cache),
1783 bit hackish (all prompts share state via a pointer to the cache),
1783 but it's overall far cleaner than before.
1784 but it's overall far cleaner than before.
1784
1785
1785 * IPython/genutils.py (getoutputerror): modified to add verbose,
1786 * IPython/genutils.py (getoutputerror): modified to add verbose,
1786 debug and header options. This makes the interface of all getout*
1787 debug and header options. This makes the interface of all getout*
1787 functions uniform.
1788 functions uniform.
1788 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
1789 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
1789
1790
1790 * IPython/Magic.py (Magic.default_option): added a function to
1791 * IPython/Magic.py (Magic.default_option): added a function to
1791 allow registering default options for any magic command. This
1792 allow registering default options for any magic command. This
1792 makes it easy to have profiles which customize the magics globally
1793 makes it easy to have profiles which customize the magics globally
1793 for a certain use. The values set through this function are
1794 for a certain use. The values set through this function are
1794 picked up by the parse_options() method, which all magics should
1795 picked up by the parse_options() method, which all magics should
1795 use to parse their options.
1796 use to parse their options.
1796
1797
1797 * IPython/genutils.py (warn): modified the warnings framework to
1798 * IPython/genutils.py (warn): modified the warnings framework to
1798 use the Term I/O class. I'm trying to slowly unify all of
1799 use the Term I/O class. I'm trying to slowly unify all of
1799 IPython's I/O operations to pass through Term.
1800 IPython's I/O operations to pass through Term.
1800
1801
1801 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
1802 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
1802 the secondary prompt to correctly match the length of the primary
1803 the secondary prompt to correctly match the length of the primary
1803 one for any prompt. Now multi-line code will properly line up
1804 one for any prompt. Now multi-line code will properly line up
1804 even for path dependent prompts, such as the new ones available
1805 even for path dependent prompts, such as the new ones available
1805 via the prompt_specials.
1806 via the prompt_specials.
1806
1807
1807 2004-06-06 Fernando Perez <fperez@colorado.edu>
1808 2004-06-06 Fernando Perez <fperez@colorado.edu>
1808
1809
1809 * IPython/Prompts.py (prompt_specials): Added the ability to have
1810 * IPython/Prompts.py (prompt_specials): Added the ability to have
1810 bash-like special sequences in the prompts, which get
1811 bash-like special sequences in the prompts, which get
1811 automatically expanded. Things like hostname, current working
1812 automatically expanded. Things like hostname, current working
1812 directory and username are implemented already, but it's easy to
1813 directory and username are implemented already, but it's easy to
1813 add more in the future. Thanks to a patch by W.J. van der Laan
1814 add more in the future. Thanks to a patch by W.J. van der Laan
1814 <gnufnork-AT-hetdigitalegat.nl>
1815 <gnufnork-AT-hetdigitalegat.nl>
1815 (prompt_specials): Added color support for prompt strings, so
1816 (prompt_specials): Added color support for prompt strings, so
1816 users can define arbitrary color setups for their prompts.
1817 users can define arbitrary color setups for their prompts.
1817
1818
1818 2004-06-05 Fernando Perez <fperez@colorado.edu>
1819 2004-06-05 Fernando Perez <fperez@colorado.edu>
1819
1820
1820 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
1821 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
1821 code to load Gary Bishop's readline and configure it
1822 code to load Gary Bishop's readline and configure it
1822 automatically. Thanks to Gary for help on this.
1823 automatically. Thanks to Gary for help on this.
1823
1824
1824 2004-06-01 Fernando Perez <fperez@colorado.edu>
1825 2004-06-01 Fernando Perez <fperez@colorado.edu>
1825
1826
1826 * IPython/Logger.py (Logger.create_log): fix bug for logging
1827 * IPython/Logger.py (Logger.create_log): fix bug for logging
1827 with no filename (previous fix was incomplete).
1828 with no filename (previous fix was incomplete).
1828
1829
1829 2004-05-25 Fernando Perez <fperez@colorado.edu>
1830 2004-05-25 Fernando Perez <fperez@colorado.edu>
1830
1831
1831 * IPython/Magic.py (Magic.parse_options): fix bug where naked
1832 * IPython/Magic.py (Magic.parse_options): fix bug where naked
1832 parens would get passed to the shell.
1833 parens would get passed to the shell.
1833
1834
1834 2004-05-20 Fernando Perez <fperez@colorado.edu>
1835 2004-05-20 Fernando Perez <fperez@colorado.edu>
1835
1836
1836 * IPython/Magic.py (Magic.magic_prun): changed default profile
1837 * IPython/Magic.py (Magic.magic_prun): changed default profile
1837 sort order to 'time' (the more common profiling need).
1838 sort order to 'time' (the more common profiling need).
1838
1839
1839 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
1840 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
1840 so that source code shown is guaranteed in sync with the file on
1841 so that source code shown is guaranteed in sync with the file on
1841 disk (also changed in psource). Similar fix to the one for
1842 disk (also changed in psource). Similar fix to the one for
1842 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
1843 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
1843 <yann.ledu-AT-noos.fr>.
1844 <yann.ledu-AT-noos.fr>.
1844
1845
1845 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
1846 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
1846 with a single option would not be correctly parsed. Closes
1847 with a single option would not be correctly parsed. Closes
1847 http://www.scipy.net/roundup/ipython/issue14. This bug had been
1848 http://www.scipy.net/roundup/ipython/issue14. This bug had been
1848 introduced in 0.6.0 (on 2004-05-06).
1849 introduced in 0.6.0 (on 2004-05-06).
1849
1850
1850 2004-05-13 *** Released version 0.6.0
1851 2004-05-13 *** Released version 0.6.0
1851
1852
1852 2004-05-13 Fernando Perez <fperez@colorado.edu>
1853 2004-05-13 Fernando Perez <fperez@colorado.edu>
1853
1854
1854 * debian/: Added debian/ directory to CVS, so that debian support
1855 * debian/: Added debian/ directory to CVS, so that debian support
1855 is publicly accessible. The debian package is maintained by Jack
1856 is publicly accessible. The debian package is maintained by Jack
1856 Moffit <jack-AT-xiph.org>.
1857 Moffit <jack-AT-xiph.org>.
1857
1858
1858 * Documentation: included the notes about an ipython-based system
1859 * Documentation: included the notes about an ipython-based system
1859 shell (the hypothetical 'pysh') into the new_design.pdf document,
1860 shell (the hypothetical 'pysh') into the new_design.pdf document,
1860 so that these ideas get distributed to users along with the
1861 so that these ideas get distributed to users along with the
1861 official documentation.
1862 official documentation.
1862
1863
1863 2004-05-10 Fernando Perez <fperez@colorado.edu>
1864 2004-05-10 Fernando Perez <fperez@colorado.edu>
1864
1865
1865 * IPython/Logger.py (Logger.create_log): fix recently introduced
1866 * IPython/Logger.py (Logger.create_log): fix recently introduced
1866 bug (misindented line) where logstart would fail when not given an
1867 bug (misindented line) where logstart would fail when not given an
1867 explicit filename.
1868 explicit filename.
1868
1869
1869 2004-05-09 Fernando Perez <fperez@colorado.edu>
1870 2004-05-09 Fernando Perez <fperez@colorado.edu>
1870
1871
1871 * IPython/Magic.py (Magic.parse_options): skip system call when
1872 * IPython/Magic.py (Magic.parse_options): skip system call when
1872 there are no options to look for. Faster, cleaner for the common
1873 there are no options to look for. Faster, cleaner for the common
1873 case.
1874 case.
1874
1875
1875 * Documentation: many updates to the manual: describing Windows
1876 * Documentation: many updates to the manual: describing Windows
1876 support better, Gnuplot updates, credits, misc small stuff. Also
1877 support better, Gnuplot updates, credits, misc small stuff. Also
1877 updated the new_design doc a bit.
1878 updated the new_design doc a bit.
1878
1879
1879 2004-05-06 *** Released version 0.6.0.rc1
1880 2004-05-06 *** Released version 0.6.0.rc1
1880
1881
1881 2004-05-06 Fernando Perez <fperez@colorado.edu>
1882 2004-05-06 Fernando Perez <fperez@colorado.edu>
1882
1883
1883 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
1884 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
1884 operations to use the vastly more efficient list/''.join() method.
1885 operations to use the vastly more efficient list/''.join() method.
1885 (FormattedTB.text): Fix
1886 (FormattedTB.text): Fix
1886 http://www.scipy.net/roundup/ipython/issue12 - exception source
1887 http://www.scipy.net/roundup/ipython/issue12 - exception source
1887 extract not updated after reload. Thanks to Mike Salib
1888 extract not updated after reload. Thanks to Mike Salib
1888 <msalib-AT-mit.edu> for pinning the source of the problem.
1889 <msalib-AT-mit.edu> for pinning the source of the problem.
1889 Fortunately, the solution works inside ipython and doesn't require
1890 Fortunately, the solution works inside ipython and doesn't require
1890 any changes to python proper.
1891 any changes to python proper.
1891
1892
1892 * IPython/Magic.py (Magic.parse_options): Improved to process the
1893 * IPython/Magic.py (Magic.parse_options): Improved to process the
1893 argument list as a true shell would (by actually using the
1894 argument list as a true shell would (by actually using the
1894 underlying system shell). This way, all @magics automatically get
1895 underlying system shell). This way, all @magics automatically get
1895 shell expansion for variables. Thanks to a comment by Alex
1896 shell expansion for variables. Thanks to a comment by Alex
1896 Schmolck.
1897 Schmolck.
1897
1898
1898 2004-04-04 Fernando Perez <fperez@colorado.edu>
1899 2004-04-04 Fernando Perez <fperez@colorado.edu>
1899
1900
1900 * IPython/iplib.py (InteractiveShell.interact): Added a special
1901 * IPython/iplib.py (InteractiveShell.interact): Added a special
1901 trap for a debugger quit exception, which is basically impossible
1902 trap for a debugger quit exception, which is basically impossible
1902 to handle by normal mechanisms, given what pdb does to the stack.
1903 to handle by normal mechanisms, given what pdb does to the stack.
1903 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
1904 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
1904
1905
1905 2004-04-03 Fernando Perez <fperez@colorado.edu>
1906 2004-04-03 Fernando Perez <fperez@colorado.edu>
1906
1907
1907 * IPython/genutils.py (Term): Standardized the names of the Term
1908 * IPython/genutils.py (Term): Standardized the names of the Term
1908 class streams to cin/cout/cerr, following C++ naming conventions
1909 class streams to cin/cout/cerr, following C++ naming conventions
1909 (I can't use in/out/err because 'in' is not a valid attribute
1910 (I can't use in/out/err because 'in' is not a valid attribute
1910 name).
1911 name).
1911
1912
1912 * IPython/iplib.py (InteractiveShell.interact): don't increment
1913 * IPython/iplib.py (InteractiveShell.interact): don't increment
1913 the prompt if there's no user input. By Daniel 'Dang' Griffith
1914 the prompt if there's no user input. By Daniel 'Dang' Griffith
1914 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
1915 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
1915 Francois Pinard.
1916 Francois Pinard.
1916
1917
1917 2004-04-02 Fernando Perez <fperez@colorado.edu>
1918 2004-04-02 Fernando Perez <fperez@colorado.edu>
1918
1919
1919 * IPython/genutils.py (Stream.__init__): Modified to survive at
1920 * IPython/genutils.py (Stream.__init__): Modified to survive at
1920 least importing in contexts where stdin/out/err aren't true file
1921 least importing in contexts where stdin/out/err aren't true file
1921 objects, such as PyCrust (they lack fileno() and mode). However,
1922 objects, such as PyCrust (they lack fileno() and mode). However,
1922 the recovery facilities which rely on these things existing will
1923 the recovery facilities which rely on these things existing will
1923 not work.
1924 not work.
1924
1925
1925 2004-04-01 Fernando Perez <fperez@colorado.edu>
1926 2004-04-01 Fernando Perez <fperez@colorado.edu>
1926
1927
1927 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
1928 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
1928 use the new getoutputerror() function, so it properly
1929 use the new getoutputerror() function, so it properly
1929 distinguishes stdout/err.
1930 distinguishes stdout/err.
1930
1931
1931 * IPython/genutils.py (getoutputerror): added a function to
1932 * IPython/genutils.py (getoutputerror): added a function to
1932 capture separately the standard output and error of a command.
1933 capture separately the standard output and error of a command.
1933 After a comment from dang on the mailing lists. This code is
1934 After a comment from dang on the mailing lists. This code is
1934 basically a modified version of commands.getstatusoutput(), from
1935 basically a modified version of commands.getstatusoutput(), from
1935 the standard library.
1936 the standard library.
1936
1937
1937 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
1938 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
1938 '!!' as a special syntax (shorthand) to access @sx.
1939 '!!' as a special syntax (shorthand) to access @sx.
1939
1940
1940 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
1941 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
1941 command and return its output as a list split on '\n'.
1942 command and return its output as a list split on '\n'.
1942
1943
1943 2004-03-31 Fernando Perez <fperez@colorado.edu>
1944 2004-03-31 Fernando Perez <fperez@colorado.edu>
1944
1945
1945 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
1946 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
1946 method to dictionaries used as FakeModule instances if they lack
1947 method to dictionaries used as FakeModule instances if they lack
1947 it. At least pydoc in python2.3 breaks for runtime-defined
1948 it. At least pydoc in python2.3 breaks for runtime-defined
1948 functions without this hack. At some point I need to _really_
1949 functions without this hack. At some point I need to _really_
1949 understand what FakeModule is doing, because it's a gross hack.
1950 understand what FakeModule is doing, because it's a gross hack.
1950 But it solves Arnd's problem for now...
1951 But it solves Arnd's problem for now...
1951
1952
1952 2004-02-27 Fernando Perez <fperez@colorado.edu>
1953 2004-02-27 Fernando Perez <fperez@colorado.edu>
1953
1954
1954 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
1955 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
1955 mode would behave erratically. Also increased the number of
1956 mode would behave erratically. Also increased the number of
1956 possible logs in rotate mod to 999. Thanks to Rod Holland
1957 possible logs in rotate mod to 999. Thanks to Rod Holland
1957 <rhh@StructureLABS.com> for the report and fixes.
1958 <rhh@StructureLABS.com> for the report and fixes.
1958
1959
1959 2004-02-26 Fernando Perez <fperez@colorado.edu>
1960 2004-02-26 Fernando Perez <fperez@colorado.edu>
1960
1961
1961 * IPython/genutils.py (page): Check that the curses module really
1962 * IPython/genutils.py (page): Check that the curses module really
1962 has the initscr attribute before trying to use it. For some
1963 has the initscr attribute before trying to use it. For some
1963 reason, the Solaris curses module is missing this. I think this
1964 reason, the Solaris curses module is missing this. I think this
1964 should be considered a Solaris python bug, but I'm not sure.
1965 should be considered a Solaris python bug, but I'm not sure.
1965
1966
1966 2004-01-17 Fernando Perez <fperez@colorado.edu>
1967 2004-01-17 Fernando Perez <fperez@colorado.edu>
1967
1968
1968 * IPython/genutils.py (Stream.__init__): Changes to try to make
1969 * IPython/genutils.py (Stream.__init__): Changes to try to make
1969 ipython robust against stdin/out/err being closed by the user.
1970 ipython robust against stdin/out/err being closed by the user.
1970 This is 'user error' (and blocks a normal python session, at least
1971 This is 'user error' (and blocks a normal python session, at least
1971 the stdout case). However, Ipython should be able to survive such
1972 the stdout case). However, Ipython should be able to survive such
1972 instances of abuse as gracefully as possible. To simplify the
1973 instances of abuse as gracefully as possible. To simplify the
1973 coding and maintain compatibility with Gary Bishop's Term
1974 coding and maintain compatibility with Gary Bishop's Term
1974 contributions, I've made use of classmethods for this. I think
1975 contributions, I've made use of classmethods for this. I think
1975 this introduces a dependency on python 2.2.
1976 this introduces a dependency on python 2.2.
1976
1977
1977 2004-01-13 Fernando Perez <fperez@colorado.edu>
1978 2004-01-13 Fernando Perez <fperez@colorado.edu>
1978
1979
1979 * IPython/numutils.py (exp_safe): simplified the code a bit and
1980 * IPython/numutils.py (exp_safe): simplified the code a bit and
1980 removed the need for importing the kinds module altogether.
1981 removed the need for importing the kinds module altogether.
1981
1982
1982 2004-01-06 Fernando Perez <fperez@colorado.edu>
1983 2004-01-06 Fernando Perez <fperez@colorado.edu>
1983
1984
1984 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
1985 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
1985 a magic function instead, after some community feedback. No
1986 a magic function instead, after some community feedback. No
1986 special syntax will exist for it, but its name is deliberately
1987 special syntax will exist for it, but its name is deliberately
1987 very short.
1988 very short.
1988
1989
1989 2003-12-20 Fernando Perez <fperez@colorado.edu>
1990 2003-12-20 Fernando Perez <fperez@colorado.edu>
1990
1991
1991 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
1992 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
1992 new functionality, to automagically assign the result of a shell
1993 new functionality, to automagically assign the result of a shell
1993 command to a variable. I'll solicit some community feedback on
1994 command to a variable. I'll solicit some community feedback on
1994 this before making it permanent.
1995 this before making it permanent.
1995
1996
1996 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
1997 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
1997 requested about callables for which inspect couldn't obtain a
1998 requested about callables for which inspect couldn't obtain a
1998 proper argspec. Thanks to a crash report sent by Etienne
1999 proper argspec. Thanks to a crash report sent by Etienne
1999 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2000 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2000
2001
2001 2003-12-09 Fernando Perez <fperez@colorado.edu>
2002 2003-12-09 Fernando Perez <fperez@colorado.edu>
2002
2003
2003 * IPython/genutils.py (page): patch for the pager to work across
2004 * IPython/genutils.py (page): patch for the pager to work across
2004 various versions of Windows. By Gary Bishop.
2005 various versions of Windows. By Gary Bishop.
2005
2006
2006 2003-12-04 Fernando Perez <fperez@colorado.edu>
2007 2003-12-04 Fernando Perez <fperez@colorado.edu>
2007
2008
2008 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2009 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2009 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2010 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2010 While I tested this and it looks ok, there may still be corner
2011 While I tested this and it looks ok, there may still be corner
2011 cases I've missed.
2012 cases I've missed.
2012
2013
2013 2003-12-01 Fernando Perez <fperez@colorado.edu>
2014 2003-12-01 Fernando Perez <fperez@colorado.edu>
2014
2015
2015 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2016 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2016 where a line like 'p,q=1,2' would fail because the automagic
2017 where a line like 'p,q=1,2' would fail because the automagic
2017 system would be triggered for @p.
2018 system would be triggered for @p.
2018
2019
2019 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2020 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2020 cleanups, code unmodified.
2021 cleanups, code unmodified.
2021
2022
2022 * IPython/genutils.py (Term): added a class for IPython to handle
2023 * IPython/genutils.py (Term): added a class for IPython to handle
2023 output. In most cases it will just be a proxy for stdout/err, but
2024 output. In most cases it will just be a proxy for stdout/err, but
2024 having this allows modifications to be made for some platforms,
2025 having this allows modifications to be made for some platforms,
2025 such as handling color escapes under Windows. All of this code
2026 such as handling color escapes under Windows. All of this code
2026 was contributed by Gary Bishop, with minor modifications by me.
2027 was contributed by Gary Bishop, with minor modifications by me.
2027 The actual changes affect many files.
2028 The actual changes affect many files.
2028
2029
2029 2003-11-30 Fernando Perez <fperez@colorado.edu>
2030 2003-11-30 Fernando Perez <fperez@colorado.edu>
2030
2031
2031 * IPython/iplib.py (file_matches): new completion code, courtesy
2032 * IPython/iplib.py (file_matches): new completion code, courtesy
2032 of Jeff Collins. This enables filename completion again under
2033 of Jeff Collins. This enables filename completion again under
2033 python 2.3, which disabled it at the C level.
2034 python 2.3, which disabled it at the C level.
2034
2035
2035 2003-11-11 Fernando Perez <fperez@colorado.edu>
2036 2003-11-11 Fernando Perez <fperez@colorado.edu>
2036
2037
2037 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2038 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2038 for Numeric.array(map(...)), but often convenient.
2039 for Numeric.array(map(...)), but often convenient.
2039
2040
2040 2003-11-05 Fernando Perez <fperez@colorado.edu>
2041 2003-11-05 Fernando Perez <fperez@colorado.edu>
2041
2042
2042 * IPython/numutils.py (frange): Changed a call from int() to
2043 * IPython/numutils.py (frange): Changed a call from int() to
2043 int(round()) to prevent a problem reported with arange() in the
2044 int(round()) to prevent a problem reported with arange() in the
2044 numpy list.
2045 numpy list.
2045
2046
2046 2003-10-06 Fernando Perez <fperez@colorado.edu>
2047 2003-10-06 Fernando Perez <fperez@colorado.edu>
2047
2048
2048 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2049 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2049 prevent crashes if sys lacks an argv attribute (it happens with
2050 prevent crashes if sys lacks an argv attribute (it happens with
2050 embedded interpreters which build a bare-bones sys module).
2051 embedded interpreters which build a bare-bones sys module).
2051 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2052 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2052
2053
2053 2003-09-24 Fernando Perez <fperez@colorado.edu>
2054 2003-09-24 Fernando Perez <fperez@colorado.edu>
2054
2055
2055 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2056 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2056 to protect against poorly written user objects where __getattr__
2057 to protect against poorly written user objects where __getattr__
2057 raises exceptions other than AttributeError. Thanks to a bug
2058 raises exceptions other than AttributeError. Thanks to a bug
2058 report by Oliver Sander <osander-AT-gmx.de>.
2059 report by Oliver Sander <osander-AT-gmx.de>.
2059
2060
2060 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2061 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2061 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2062 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2062
2063
2063 2003-09-09 Fernando Perez <fperez@colorado.edu>
2064 2003-09-09 Fernando Perez <fperez@colorado.edu>
2064
2065
2065 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2066 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2066 unpacking a list whith a callable as first element would
2067 unpacking a list whith a callable as first element would
2067 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2068 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
2068 Collins.
2069 Collins.
2069
2070
2070 2003-08-25 *** Released version 0.5.0
2071 2003-08-25 *** Released version 0.5.0
2071
2072
2072 2003-08-22 Fernando Perez <fperez@colorado.edu>
2073 2003-08-22 Fernando Perez <fperez@colorado.edu>
2073
2074
2074 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2075 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
2075 improperly defined user exceptions. Thanks to feedback from Mark
2076 improperly defined user exceptions. Thanks to feedback from Mark
2076 Russell <mrussell-AT-verio.net>.
2077 Russell <mrussell-AT-verio.net>.
2077
2078
2078 2003-08-20 Fernando Perez <fperez@colorado.edu>
2079 2003-08-20 Fernando Perez <fperez@colorado.edu>
2079
2080
2080 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2081 * IPython/OInspect.py (Inspector.pinfo): changed String Form
2081 printing so that it would print multi-line string forms starting
2082 printing so that it would print multi-line string forms starting
2082 with a new line. This way the formatting is better respected for
2083 with a new line. This way the formatting is better respected for
2083 objects which work hard to make nice string forms.
2084 objects which work hard to make nice string forms.
2084
2085
2085 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2086 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
2086 autocall would overtake data access for objects with both
2087 autocall would overtake data access for objects with both
2087 __getitem__ and __call__.
2088 __getitem__ and __call__.
2088
2089
2089 2003-08-19 *** Released version 0.5.0-rc1
2090 2003-08-19 *** Released version 0.5.0-rc1
2090
2091
2091 2003-08-19 Fernando Perez <fperez@colorado.edu>
2092 2003-08-19 Fernando Perez <fperez@colorado.edu>
2092
2093
2093 * IPython/deep_reload.py (load_tail): single tiny change here
2094 * IPython/deep_reload.py (load_tail): single tiny change here
2094 seems to fix the long-standing bug of dreload() failing to work
2095 seems to fix the long-standing bug of dreload() failing to work
2095 for dotted names. But this module is pretty tricky, so I may have
2096 for dotted names. But this module is pretty tricky, so I may have
2096 missed some subtlety. Needs more testing!.
2097 missed some subtlety. Needs more testing!.
2097
2098
2098 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2099 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
2099 exceptions which have badly implemented __str__ methods.
2100 exceptions which have badly implemented __str__ methods.
2100 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2101 (VerboseTB.text): harden against inspect.getinnerframes crashing,
2101 which I've been getting reports about from Python 2.3 users. I
2102 which I've been getting reports about from Python 2.3 users. I
2102 wish I had a simple test case to reproduce the problem, so I could
2103 wish I had a simple test case to reproduce the problem, so I could
2103 either write a cleaner workaround or file a bug report if
2104 either write a cleaner workaround or file a bug report if
2104 necessary.
2105 necessary.
2105
2106
2106 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2107 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
2107 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2108 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
2108 a bug report by Tjabo Kloppenburg.
2109 a bug report by Tjabo Kloppenburg.
2109
2110
2110 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2111 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
2111 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2112 crashes. Wrapped the pdb call in a blanket try/except, since pdb
2112 seems rather unstable. Thanks to a bug report by Tjabo
2113 seems rather unstable. Thanks to a bug report by Tjabo
2113 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2114 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
2114
2115
2115 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2116 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
2116 this out soon because of the critical fixes in the inner loop for
2117 this out soon because of the critical fixes in the inner loop for
2117 generators.
2118 generators.
2118
2119
2119 * IPython/Magic.py (Magic.getargspec): removed. This (and
2120 * IPython/Magic.py (Magic.getargspec): removed. This (and
2120 _get_def) have been obsoleted by OInspect for a long time, I
2121 _get_def) have been obsoleted by OInspect for a long time, I
2121 hadn't noticed that they were dead code.
2122 hadn't noticed that they were dead code.
2122 (Magic._ofind): restored _ofind functionality for a few literals
2123 (Magic._ofind): restored _ofind functionality for a few literals
2123 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2124 (those in ["''",'""','[]','{}','()']). But it won't work anymore
2124 for things like "hello".capitalize?, since that would require a
2125 for things like "hello".capitalize?, since that would require a
2125 potentially dangerous eval() again.
2126 potentially dangerous eval() again.
2126
2127
2127 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2128 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
2128 logic a bit more to clean up the escapes handling and minimize the
2129 logic a bit more to clean up the escapes handling and minimize the
2129 use of _ofind to only necessary cases. The interactive 'feel' of
2130 use of _ofind to only necessary cases. The interactive 'feel' of
2130 IPython should have improved quite a bit with the changes in
2131 IPython should have improved quite a bit with the changes in
2131 _prefilter and _ofind (besides being far safer than before).
2132 _prefilter and _ofind (besides being far safer than before).
2132
2133
2133 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2134 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
2134 obscure, never reported). Edit would fail to find the object to
2135 obscure, never reported). Edit would fail to find the object to
2135 edit under some circumstances.
2136 edit under some circumstances.
2136 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2137 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
2137 which were causing double-calling of generators. Those eval calls
2138 which were causing double-calling of generators. Those eval calls
2138 were _very_ dangerous, since code with side effects could be
2139 were _very_ dangerous, since code with side effects could be
2139 triggered. As they say, 'eval is evil'... These were the
2140 triggered. As they say, 'eval is evil'... These were the
2140 nastiest evals in IPython. Besides, _ofind is now far simpler,
2141 nastiest evals in IPython. Besides, _ofind is now far simpler,
2141 and it should also be quite a bit faster. Its use of inspect is
2142 and it should also be quite a bit faster. Its use of inspect is
2142 also safer, so perhaps some of the inspect-related crashes I've
2143 also safer, so perhaps some of the inspect-related crashes I've
2143 seen lately with Python 2.3 might be taken care of. That will
2144 seen lately with Python 2.3 might be taken care of. That will
2144 need more testing.
2145 need more testing.
2145
2146
2146 2003-08-17 Fernando Perez <fperez@colorado.edu>
2147 2003-08-17 Fernando Perez <fperez@colorado.edu>
2147
2148
2148 * IPython/iplib.py (InteractiveShell._prefilter): significant
2149 * IPython/iplib.py (InteractiveShell._prefilter): significant
2149 simplifications to the logic for handling user escapes. Faster
2150 simplifications to the logic for handling user escapes. Faster
2150 and simpler code.
2151 and simpler code.
2151
2152
2152 2003-08-14 Fernando Perez <fperez@colorado.edu>
2153 2003-08-14 Fernando Perez <fperez@colorado.edu>
2153
2154
2154 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2155 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
2155 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2156 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
2156 but it should be quite a bit faster. And the recursive version
2157 but it should be quite a bit faster. And the recursive version
2157 generated O(log N) intermediate storage for all rank>1 arrays,
2158 generated O(log N) intermediate storage for all rank>1 arrays,
2158 even if they were contiguous.
2159 even if they were contiguous.
2159 (l1norm): Added this function.
2160 (l1norm): Added this function.
2160 (norm): Added this function for arbitrary norms (including
2161 (norm): Added this function for arbitrary norms (including
2161 l-infinity). l1 and l2 are still special cases for convenience
2162 l-infinity). l1 and l2 are still special cases for convenience
2162 and speed.
2163 and speed.
2163
2164
2164 2003-08-03 Fernando Perez <fperez@colorado.edu>
2165 2003-08-03 Fernando Perez <fperez@colorado.edu>
2165
2166
2166 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2167 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2167 exceptions, which now raise PendingDeprecationWarnings in Python
2168 exceptions, which now raise PendingDeprecationWarnings in Python
2168 2.3. There were some in Magic and some in Gnuplot2.
2169 2.3. There were some in Magic and some in Gnuplot2.
2169
2170
2170 2003-06-30 Fernando Perez <fperez@colorado.edu>
2171 2003-06-30 Fernando Perez <fperez@colorado.edu>
2171
2172
2172 * IPython/genutils.py (page): modified to call curses only for
2173 * IPython/genutils.py (page): modified to call curses only for
2173 terminals where TERM=='xterm'. After problems under many other
2174 terminals where TERM=='xterm'. After problems under many other
2174 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2175 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2175
2176
2176 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2177 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2177 would be triggered when readline was absent. This was just an old
2178 would be triggered when readline was absent. This was just an old
2178 debugging statement I'd forgotten to take out.
2179 debugging statement I'd forgotten to take out.
2179
2180
2180 2003-06-20 Fernando Perez <fperez@colorado.edu>
2181 2003-06-20 Fernando Perez <fperez@colorado.edu>
2181
2182
2182 * IPython/genutils.py (clock): modified to return only user time
2183 * IPython/genutils.py (clock): modified to return only user time
2183 (not counting system time), after a discussion on scipy. While
2184 (not counting system time), after a discussion on scipy. While
2184 system time may be a useful quantity occasionally, it may much
2185 system time may be a useful quantity occasionally, it may much
2185 more easily be skewed by occasional swapping or other similar
2186 more easily be skewed by occasional swapping or other similar
2186 activity.
2187 activity.
2187
2188
2188 2003-06-05 Fernando Perez <fperez@colorado.edu>
2189 2003-06-05 Fernando Perez <fperez@colorado.edu>
2189
2190
2190 * IPython/numutils.py (identity): new function, for building
2191 * IPython/numutils.py (identity): new function, for building
2191 arbitrary rank Kronecker deltas (mostly backwards compatible with
2192 arbitrary rank Kronecker deltas (mostly backwards compatible with
2192 Numeric.identity)
2193 Numeric.identity)
2193
2194
2194 2003-06-03 Fernando Perez <fperez@colorado.edu>
2195 2003-06-03 Fernando Perez <fperez@colorado.edu>
2195
2196
2196 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2197 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2197 arguments passed to magics with spaces, to allow trailing '\' to
2198 arguments passed to magics with spaces, to allow trailing '\' to
2198 work normally (mainly for Windows users).
2199 work normally (mainly for Windows users).
2199
2200
2200 2003-05-29 Fernando Perez <fperez@colorado.edu>
2201 2003-05-29 Fernando Perez <fperez@colorado.edu>
2201
2202
2202 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2203 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2203 instead of pydoc.help. This fixes a bizarre behavior where
2204 instead of pydoc.help. This fixes a bizarre behavior where
2204 printing '%s' % locals() would trigger the help system. Now
2205 printing '%s' % locals() would trigger the help system. Now
2205 ipython behaves like normal python does.
2206 ipython behaves like normal python does.
2206
2207
2207 Note that if one does 'from pydoc import help', the bizarre
2208 Note that if one does 'from pydoc import help', the bizarre
2208 behavior returns, but this will also happen in normal python, so
2209 behavior returns, but this will also happen in normal python, so
2209 it's not an ipython bug anymore (it has to do with how pydoc.help
2210 it's not an ipython bug anymore (it has to do with how pydoc.help
2210 is implemented).
2211 is implemented).
2211
2212
2212 2003-05-22 Fernando Perez <fperez@colorado.edu>
2213 2003-05-22 Fernando Perez <fperez@colorado.edu>
2213
2214
2214 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2215 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2215 return [] instead of None when nothing matches, also match to end
2216 return [] instead of None when nothing matches, also match to end
2216 of line. Patch by Gary Bishop.
2217 of line. Patch by Gary Bishop.
2217
2218
2218 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2219 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2219 protection as before, for files passed on the command line. This
2220 protection as before, for files passed on the command line. This
2220 prevents the CrashHandler from kicking in if user files call into
2221 prevents the CrashHandler from kicking in if user files call into
2221 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2222 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2222 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2223 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2223
2224
2224 2003-05-20 *** Released version 0.4.0
2225 2003-05-20 *** Released version 0.4.0
2225
2226
2226 2003-05-20 Fernando Perez <fperez@colorado.edu>
2227 2003-05-20 Fernando Perez <fperez@colorado.edu>
2227
2228
2228 * setup.py: added support for manpages. It's a bit hackish b/c of
2229 * setup.py: added support for manpages. It's a bit hackish b/c of
2229 a bug in the way the bdist_rpm distutils target handles gzipped
2230 a bug in the way the bdist_rpm distutils target handles gzipped
2230 manpages, but it works. After a patch by Jack.
2231 manpages, but it works. After a patch by Jack.
2231
2232
2232 2003-05-19 Fernando Perez <fperez@colorado.edu>
2233 2003-05-19 Fernando Perez <fperez@colorado.edu>
2233
2234
2234 * IPython/numutils.py: added a mockup of the kinds module, since
2235 * IPython/numutils.py: added a mockup of the kinds module, since
2235 it was recently removed from Numeric. This way, numutils will
2236 it was recently removed from Numeric. This way, numutils will
2236 work for all users even if they are missing kinds.
2237 work for all users even if they are missing kinds.
2237
2238
2238 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2239 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2239 failure, which can occur with SWIG-wrapped extensions. After a
2240 failure, which can occur with SWIG-wrapped extensions. After a
2240 crash report from Prabhu.
2241 crash report from Prabhu.
2241
2242
2242 2003-05-16 Fernando Perez <fperez@colorado.edu>
2243 2003-05-16 Fernando Perez <fperez@colorado.edu>
2243
2244
2244 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2245 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2245 protect ipython from user code which may call directly
2246 protect ipython from user code which may call directly
2246 sys.excepthook (this looks like an ipython crash to the user, even
2247 sys.excepthook (this looks like an ipython crash to the user, even
2247 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2248 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2248 This is especially important to help users of WxWindows, but may
2249 This is especially important to help users of WxWindows, but may
2249 also be useful in other cases.
2250 also be useful in other cases.
2250
2251
2251 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2252 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2252 an optional tb_offset to be specified, and to preserve exception
2253 an optional tb_offset to be specified, and to preserve exception
2253 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2254 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2254
2255
2255 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2256 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2256
2257
2257 2003-05-15 Fernando Perez <fperez@colorado.edu>
2258 2003-05-15 Fernando Perez <fperez@colorado.edu>
2258
2259
2259 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2260 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2260 installing for a new user under Windows.
2261 installing for a new user under Windows.
2261
2262
2262 2003-05-12 Fernando Perez <fperez@colorado.edu>
2263 2003-05-12 Fernando Perez <fperez@colorado.edu>
2263
2264
2264 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2265 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2265 handler for Emacs comint-based lines. Currently it doesn't do
2266 handler for Emacs comint-based lines. Currently it doesn't do
2266 much (but importantly, it doesn't update the history cache). In
2267 much (but importantly, it doesn't update the history cache). In
2267 the future it may be expanded if Alex needs more functionality
2268 the future it may be expanded if Alex needs more functionality
2268 there.
2269 there.
2269
2270
2270 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2271 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2271 info to crash reports.
2272 info to crash reports.
2272
2273
2273 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2274 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2274 just like Python's -c. Also fixed crash with invalid -color
2275 just like Python's -c. Also fixed crash with invalid -color
2275 option value at startup. Thanks to Will French
2276 option value at startup. Thanks to Will French
2276 <wfrench-AT-bestweb.net> for the bug report.
2277 <wfrench-AT-bestweb.net> for the bug report.
2277
2278
2278 2003-05-09 Fernando Perez <fperez@colorado.edu>
2279 2003-05-09 Fernando Perez <fperez@colorado.edu>
2279
2280
2280 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2281 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2281 to EvalDict (it's a mapping, after all) and simplified its code
2282 to EvalDict (it's a mapping, after all) and simplified its code
2282 quite a bit, after a nice discussion on c.l.py where Gustavo
2283 quite a bit, after a nice discussion on c.l.py where Gustavo
2283 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2284 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2284
2285
2285 2003-04-30 Fernando Perez <fperez@colorado.edu>
2286 2003-04-30 Fernando Perez <fperez@colorado.edu>
2286
2287
2287 * IPython/genutils.py (timings_out): modified it to reduce its
2288 * IPython/genutils.py (timings_out): modified it to reduce its
2288 overhead in the common reps==1 case.
2289 overhead in the common reps==1 case.
2289
2290
2290 2003-04-29 Fernando Perez <fperez@colorado.edu>
2291 2003-04-29 Fernando Perez <fperez@colorado.edu>
2291
2292
2292 * IPython/genutils.py (timings_out): Modified to use the resource
2293 * IPython/genutils.py (timings_out): Modified to use the resource
2293 module, which avoids the wraparound problems of time.clock().
2294 module, which avoids the wraparound problems of time.clock().
2294
2295
2295 2003-04-17 *** Released version 0.2.15pre4
2296 2003-04-17 *** Released version 0.2.15pre4
2296
2297
2297 2003-04-17 Fernando Perez <fperez@colorado.edu>
2298 2003-04-17 Fernando Perez <fperez@colorado.edu>
2298
2299
2299 * setup.py (scriptfiles): Split windows-specific stuff over to a
2300 * setup.py (scriptfiles): Split windows-specific stuff over to a
2300 separate file, in an attempt to have a Windows GUI installer.
2301 separate file, in an attempt to have a Windows GUI installer.
2301 That didn't work, but part of the groundwork is done.
2302 That didn't work, but part of the groundwork is done.
2302
2303
2303 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2304 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2304 indent/unindent with 4 spaces. Particularly useful in combination
2305 indent/unindent with 4 spaces. Particularly useful in combination
2305 with the new auto-indent option.
2306 with the new auto-indent option.
2306
2307
2307 2003-04-16 Fernando Perez <fperez@colorado.edu>
2308 2003-04-16 Fernando Perez <fperez@colorado.edu>
2308
2309
2309 * IPython/Magic.py: various replacements of self.rc for
2310 * IPython/Magic.py: various replacements of self.rc for
2310 self.shell.rc. A lot more remains to be done to fully disentangle
2311 self.shell.rc. A lot more remains to be done to fully disentangle
2311 this class from the main Shell class.
2312 this class from the main Shell class.
2312
2313
2313 * IPython/GnuplotRuntime.py: added checks for mouse support so
2314 * IPython/GnuplotRuntime.py: added checks for mouse support so
2314 that we don't try to enable it if the current gnuplot doesn't
2315 that we don't try to enable it if the current gnuplot doesn't
2315 really support it. Also added checks so that we don't try to
2316 really support it. Also added checks so that we don't try to
2316 enable persist under Windows (where Gnuplot doesn't recognize the
2317 enable persist under Windows (where Gnuplot doesn't recognize the
2317 option).
2318 option).
2318
2319
2319 * IPython/iplib.py (InteractiveShell.interact): Added optional
2320 * IPython/iplib.py (InteractiveShell.interact): Added optional
2320 auto-indenting code, after a patch by King C. Shu
2321 auto-indenting code, after a patch by King C. Shu
2321 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2322 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2322 get along well with pasting indented code. If I ever figure out
2323 get along well with pasting indented code. If I ever figure out
2323 how to make that part go well, it will become on by default.
2324 how to make that part go well, it will become on by default.
2324
2325
2325 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2326 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2326 crash ipython if there was an unmatched '%' in the user's prompt
2327 crash ipython if there was an unmatched '%' in the user's prompt
2327 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2328 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2328
2329
2329 * IPython/iplib.py (InteractiveShell.interact): removed the
2330 * IPython/iplib.py (InteractiveShell.interact): removed the
2330 ability to ask the user whether he wants to crash or not at the
2331 ability to ask the user whether he wants to crash or not at the
2331 'last line' exception handler. Calling functions at that point
2332 'last line' exception handler. Calling functions at that point
2332 changes the stack, and the error reports would have incorrect
2333 changes the stack, and the error reports would have incorrect
2333 tracebacks.
2334 tracebacks.
2334
2335
2335 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2336 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2336 pass through a peger a pretty-printed form of any object. After a
2337 pass through a peger a pretty-printed form of any object. After a
2337 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2338 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2338
2339
2339 2003-04-14 Fernando Perez <fperez@colorado.edu>
2340 2003-04-14 Fernando Perez <fperez@colorado.edu>
2340
2341
2341 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2342 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2342 all files in ~ would be modified at first install (instead of
2343 all files in ~ would be modified at first install (instead of
2343 ~/.ipython). This could be potentially disastrous, as the
2344 ~/.ipython). This could be potentially disastrous, as the
2344 modification (make line-endings native) could damage binary files.
2345 modification (make line-endings native) could damage binary files.
2345
2346
2346 2003-04-10 Fernando Perez <fperez@colorado.edu>
2347 2003-04-10 Fernando Perez <fperez@colorado.edu>
2347
2348
2348 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2349 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2349 handle only lines which are invalid python. This now means that
2350 handle only lines which are invalid python. This now means that
2350 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2351 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2351 for the bug report.
2352 for the bug report.
2352
2353
2353 2003-04-01 Fernando Perez <fperez@colorado.edu>
2354 2003-04-01 Fernando Perez <fperez@colorado.edu>
2354
2355
2355 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2356 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2356 where failing to set sys.last_traceback would crash pdb.pm().
2357 where failing to set sys.last_traceback would crash pdb.pm().
2357 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2358 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2358 report.
2359 report.
2359
2360
2360 2003-03-25 Fernando Perez <fperez@colorado.edu>
2361 2003-03-25 Fernando Perez <fperez@colorado.edu>
2361
2362
2362 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2363 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2363 before printing it (it had a lot of spurious blank lines at the
2364 before printing it (it had a lot of spurious blank lines at the
2364 end).
2365 end).
2365
2366
2366 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2367 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2367 output would be sent 21 times! Obviously people don't use this
2368 output would be sent 21 times! Obviously people don't use this
2368 too often, or I would have heard about it.
2369 too often, or I would have heard about it.
2369
2370
2370 2003-03-24 Fernando Perez <fperez@colorado.edu>
2371 2003-03-24 Fernando Perez <fperez@colorado.edu>
2371
2372
2372 * setup.py (scriptfiles): renamed the data_files parameter from
2373 * setup.py (scriptfiles): renamed the data_files parameter from
2373 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2374 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2374 for the patch.
2375 for the patch.
2375
2376
2376 2003-03-20 Fernando Perez <fperez@colorado.edu>
2377 2003-03-20 Fernando Perez <fperez@colorado.edu>
2377
2378
2378 * IPython/genutils.py (error): added error() and fatal()
2379 * IPython/genutils.py (error): added error() and fatal()
2379 functions.
2380 functions.
2380
2381
2381 2003-03-18 *** Released version 0.2.15pre3
2382 2003-03-18 *** Released version 0.2.15pre3
2382
2383
2383 2003-03-18 Fernando Perez <fperez@colorado.edu>
2384 2003-03-18 Fernando Perez <fperez@colorado.edu>
2384
2385
2385 * setupext/install_data_ext.py
2386 * setupext/install_data_ext.py
2386 (install_data_ext.initialize_options): Class contributed by Jack
2387 (install_data_ext.initialize_options): Class contributed by Jack
2387 Moffit for fixing the old distutils hack. He is sending this to
2388 Moffit for fixing the old distutils hack. He is sending this to
2388 the distutils folks so in the future we may not need it as a
2389 the distutils folks so in the future we may not need it as a
2389 private fix.
2390 private fix.
2390
2391
2391 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2392 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2392 changes for Debian packaging. See his patch for full details.
2393 changes for Debian packaging. See his patch for full details.
2393 The old distutils hack of making the ipythonrc* files carry a
2394 The old distutils hack of making the ipythonrc* files carry a
2394 bogus .py extension is gone, at last. Examples were moved to a
2395 bogus .py extension is gone, at last. Examples were moved to a
2395 separate subdir under doc/, and the separate executable scripts
2396 separate subdir under doc/, and the separate executable scripts
2396 now live in their own directory. Overall a great cleanup. The
2397 now live in their own directory. Overall a great cleanup. The
2397 manual was updated to use the new files, and setup.py has been
2398 manual was updated to use the new files, and setup.py has been
2398 fixed for this setup.
2399 fixed for this setup.
2399
2400
2400 * IPython/PyColorize.py (Parser.usage): made non-executable and
2401 * IPython/PyColorize.py (Parser.usage): made non-executable and
2401 created a pycolor wrapper around it to be included as a script.
2402 created a pycolor wrapper around it to be included as a script.
2402
2403
2403 2003-03-12 *** Released version 0.2.15pre2
2404 2003-03-12 *** Released version 0.2.15pre2
2404
2405
2405 2003-03-12 Fernando Perez <fperez@colorado.edu>
2406 2003-03-12 Fernando Perez <fperez@colorado.edu>
2406
2407
2407 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2408 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2408 long-standing problem with garbage characters in some terminals.
2409 long-standing problem with garbage characters in some terminals.
2409 The issue was really that the \001 and \002 escapes must _only_ be
2410 The issue was really that the \001 and \002 escapes must _only_ be
2410 passed to input prompts (which call readline), but _never_ to
2411 passed to input prompts (which call readline), but _never_ to
2411 normal text to be printed on screen. I changed ColorANSI to have
2412 normal text to be printed on screen. I changed ColorANSI to have
2412 two classes: TermColors and InputTermColors, each with the
2413 two classes: TermColors and InputTermColors, each with the
2413 appropriate escapes for input prompts or normal text. The code in
2414 appropriate escapes for input prompts or normal text. The code in
2414 Prompts.py got slightly more complicated, but this very old and
2415 Prompts.py got slightly more complicated, but this very old and
2415 annoying bug is finally fixed.
2416 annoying bug is finally fixed.
2416
2417
2417 All the credit for nailing down the real origin of this problem
2418 All the credit for nailing down the real origin of this problem
2418 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2419 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2419 *Many* thanks to him for spending quite a bit of effort on this.
2420 *Many* thanks to him for spending quite a bit of effort on this.
2420
2421
2421 2003-03-05 *** Released version 0.2.15pre1
2422 2003-03-05 *** Released version 0.2.15pre1
2422
2423
2423 2003-03-03 Fernando Perez <fperez@colorado.edu>
2424 2003-03-03 Fernando Perez <fperez@colorado.edu>
2424
2425
2425 * IPython/FakeModule.py: Moved the former _FakeModule to a
2426 * IPython/FakeModule.py: Moved the former _FakeModule to a
2426 separate file, because it's also needed by Magic (to fix a similar
2427 separate file, because it's also needed by Magic (to fix a similar
2427 pickle-related issue in @run).
2428 pickle-related issue in @run).
2428
2429
2429 2003-03-02 Fernando Perez <fperez@colorado.edu>
2430 2003-03-02 Fernando Perez <fperez@colorado.edu>
2430
2431
2431 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2432 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2432 the autocall option at runtime.
2433 the autocall option at runtime.
2433 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2434 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2434 across Magic.py to start separating Magic from InteractiveShell.
2435 across Magic.py to start separating Magic from InteractiveShell.
2435 (Magic._ofind): Fixed to return proper namespace for dotted
2436 (Magic._ofind): Fixed to return proper namespace for dotted
2436 names. Before, a dotted name would always return 'not currently
2437 names. Before, a dotted name would always return 'not currently
2437 defined', because it would find the 'parent'. s.x would be found,
2438 defined', because it would find the 'parent'. s.x would be found,
2438 but since 'x' isn't defined by itself, it would get confused.
2439 but since 'x' isn't defined by itself, it would get confused.
2439 (Magic.magic_run): Fixed pickling problems reported by Ralf
2440 (Magic.magic_run): Fixed pickling problems reported by Ralf
2440 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2441 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2441 that I'd used when Mike Heeter reported similar issues at the
2442 that I'd used when Mike Heeter reported similar issues at the
2442 top-level, but now for @run. It boils down to injecting the
2443 top-level, but now for @run. It boils down to injecting the
2443 namespace where code is being executed with something that looks
2444 namespace where code is being executed with something that looks
2444 enough like a module to fool pickle.dump(). Since a pickle stores
2445 enough like a module to fool pickle.dump(). Since a pickle stores
2445 a named reference to the importing module, we need this for
2446 a named reference to the importing module, we need this for
2446 pickles to save something sensible.
2447 pickles to save something sensible.
2447
2448
2448 * IPython/ipmaker.py (make_IPython): added an autocall option.
2449 * IPython/ipmaker.py (make_IPython): added an autocall option.
2449
2450
2450 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2451 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2451 the auto-eval code. Now autocalling is an option, and the code is
2452 the auto-eval code. Now autocalling is an option, and the code is
2452 also vastly safer. There is no more eval() involved at all.
2453 also vastly safer. There is no more eval() involved at all.
2453
2454
2454 2003-03-01 Fernando Perez <fperez@colorado.edu>
2455 2003-03-01 Fernando Perez <fperez@colorado.edu>
2455
2456
2456 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2457 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2457 dict with named keys instead of a tuple.
2458 dict with named keys instead of a tuple.
2458
2459
2459 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2460 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2460
2461
2461 * setup.py (make_shortcut): Fixed message about directories
2462 * setup.py (make_shortcut): Fixed message about directories
2462 created during Windows installation (the directories were ok, just
2463 created during Windows installation (the directories were ok, just
2463 the printed message was misleading). Thanks to Chris Liechti
2464 the printed message was misleading). Thanks to Chris Liechti
2464 <cliechti-AT-gmx.net> for the heads up.
2465 <cliechti-AT-gmx.net> for the heads up.
2465
2466
2466 2003-02-21 Fernando Perez <fperez@colorado.edu>
2467 2003-02-21 Fernando Perez <fperez@colorado.edu>
2467
2468
2468 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2469 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2469 of ValueError exception when checking for auto-execution. This
2470 of ValueError exception when checking for auto-execution. This
2470 one is raised by things like Numeric arrays arr.flat when the
2471 one is raised by things like Numeric arrays arr.flat when the
2471 array is non-contiguous.
2472 array is non-contiguous.
2472
2473
2473 2003-01-31 Fernando Perez <fperez@colorado.edu>
2474 2003-01-31 Fernando Perez <fperez@colorado.edu>
2474
2475
2475 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2476 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2476 not return any value at all (even though the command would get
2477 not return any value at all (even though the command would get
2477 executed).
2478 executed).
2478 (xsys): Flush stdout right after printing the command to ensure
2479 (xsys): Flush stdout right after printing the command to ensure
2479 proper ordering of commands and command output in the total
2480 proper ordering of commands and command output in the total
2480 output.
2481 output.
2481 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2482 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2482 system/getoutput as defaults. The old ones are kept for
2483 system/getoutput as defaults. The old ones are kept for
2483 compatibility reasons, so no code which uses this library needs
2484 compatibility reasons, so no code which uses this library needs
2484 changing.
2485 changing.
2485
2486
2486 2003-01-27 *** Released version 0.2.14
2487 2003-01-27 *** Released version 0.2.14
2487
2488
2488 2003-01-25 Fernando Perez <fperez@colorado.edu>
2489 2003-01-25 Fernando Perez <fperez@colorado.edu>
2489
2490
2490 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2491 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2491 functions defined in previous edit sessions could not be re-edited
2492 functions defined in previous edit sessions could not be re-edited
2492 (because the temp files were immediately removed). Now temp files
2493 (because the temp files were immediately removed). Now temp files
2493 are removed only at IPython's exit.
2494 are removed only at IPython's exit.
2494 (Magic.magic_run): Improved @run to perform shell-like expansions
2495 (Magic.magic_run): Improved @run to perform shell-like expansions
2495 on its arguments (~users and $VARS). With this, @run becomes more
2496 on its arguments (~users and $VARS). With this, @run becomes more
2496 like a normal command-line.
2497 like a normal command-line.
2497
2498
2498 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2499 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2499 bugs related to embedding and cleaned up that code. A fairly
2500 bugs related to embedding and cleaned up that code. A fairly
2500 important one was the impossibility to access the global namespace
2501 important one was the impossibility to access the global namespace
2501 through the embedded IPython (only local variables were visible).
2502 through the embedded IPython (only local variables were visible).
2502
2503
2503 2003-01-14 Fernando Perez <fperez@colorado.edu>
2504 2003-01-14 Fernando Perez <fperez@colorado.edu>
2504
2505
2505 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2506 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2506 auto-calling to be a bit more conservative. Now it doesn't get
2507 auto-calling to be a bit more conservative. Now it doesn't get
2507 triggered if any of '!=()<>' are in the rest of the input line, to
2508 triggered if any of '!=()<>' are in the rest of the input line, to
2508 allow comparing callables. Thanks to Alex for the heads up.
2509 allow comparing callables. Thanks to Alex for the heads up.
2509
2510
2510 2003-01-07 Fernando Perez <fperez@colorado.edu>
2511 2003-01-07 Fernando Perez <fperez@colorado.edu>
2511
2512
2512 * IPython/genutils.py (page): fixed estimation of the number of
2513 * IPython/genutils.py (page): fixed estimation of the number of
2513 lines in a string to be paged to simply count newlines. This
2514 lines in a string to be paged to simply count newlines. This
2514 prevents over-guessing due to embedded escape sequences. A better
2515 prevents over-guessing due to embedded escape sequences. A better
2515 long-term solution would involve stripping out the control chars
2516 long-term solution would involve stripping out the control chars
2516 for the count, but it's potentially so expensive I just don't
2517 for the count, but it's potentially so expensive I just don't
2517 think it's worth doing.
2518 think it's worth doing.
2518
2519
2519 2002-12-19 *** Released version 0.2.14pre50
2520 2002-12-19 *** Released version 0.2.14pre50
2520
2521
2521 2002-12-19 Fernando Perez <fperez@colorado.edu>
2522 2002-12-19 Fernando Perez <fperez@colorado.edu>
2522
2523
2523 * tools/release (version): Changed release scripts to inform
2524 * tools/release (version): Changed release scripts to inform
2524 Andrea and build a NEWS file with a list of recent changes.
2525 Andrea and build a NEWS file with a list of recent changes.
2525
2526
2526 * IPython/ColorANSI.py (__all__): changed terminal detection
2527 * IPython/ColorANSI.py (__all__): changed terminal detection
2527 code. Seems to work better for xterms without breaking
2528 code. Seems to work better for xterms without breaking
2528 konsole. Will need more testing to determine if WinXP and Mac OSX
2529 konsole. Will need more testing to determine if WinXP and Mac OSX
2529 also work ok.
2530 also work ok.
2530
2531
2531 2002-12-18 *** Released version 0.2.14pre49
2532 2002-12-18 *** Released version 0.2.14pre49
2532
2533
2533 2002-12-18 Fernando Perez <fperez@colorado.edu>
2534 2002-12-18 Fernando Perez <fperez@colorado.edu>
2534
2535
2535 * Docs: added new info about Mac OSX, from Andrea.
2536 * Docs: added new info about Mac OSX, from Andrea.
2536
2537
2537 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2538 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2538 allow direct plotting of python strings whose format is the same
2539 allow direct plotting of python strings whose format is the same
2539 of gnuplot data files.
2540 of gnuplot data files.
2540
2541
2541 2002-12-16 Fernando Perez <fperez@colorado.edu>
2542 2002-12-16 Fernando Perez <fperez@colorado.edu>
2542
2543
2543 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2544 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2544 value of exit question to be acknowledged.
2545 value of exit question to be acknowledged.
2545
2546
2546 2002-12-03 Fernando Perez <fperez@colorado.edu>
2547 2002-12-03 Fernando Perez <fperez@colorado.edu>
2547
2548
2548 * IPython/ipmaker.py: removed generators, which had been added
2549 * IPython/ipmaker.py: removed generators, which had been added
2549 by mistake in an earlier debugging run. This was causing trouble
2550 by mistake in an earlier debugging run. This was causing trouble
2550 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2551 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2551 for pointing this out.
2552 for pointing this out.
2552
2553
2553 2002-11-17 Fernando Perez <fperez@colorado.edu>
2554 2002-11-17 Fernando Perez <fperez@colorado.edu>
2554
2555
2555 * Manual: updated the Gnuplot section.
2556 * Manual: updated the Gnuplot section.
2556
2557
2557 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2558 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2558 a much better split of what goes in Runtime and what goes in
2559 a much better split of what goes in Runtime and what goes in
2559 Interactive.
2560 Interactive.
2560
2561
2561 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2562 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2562 being imported from iplib.
2563 being imported from iplib.
2563
2564
2564 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2565 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2565 for command-passing. Now the global Gnuplot instance is called
2566 for command-passing. Now the global Gnuplot instance is called
2566 'gp' instead of 'g', which was really a far too fragile and
2567 'gp' instead of 'g', which was really a far too fragile and
2567 common name.
2568 common name.
2568
2569
2569 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2570 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2570 bounding boxes generated by Gnuplot for square plots.
2571 bounding boxes generated by Gnuplot for square plots.
2571
2572
2572 * IPython/genutils.py (popkey): new function added. I should
2573 * IPython/genutils.py (popkey): new function added. I should
2573 suggest this on c.l.py as a dict method, it seems useful.
2574 suggest this on c.l.py as a dict method, it seems useful.
2574
2575
2575 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2576 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2576 to transparently handle PostScript generation. MUCH better than
2577 to transparently handle PostScript generation. MUCH better than
2577 the previous plot_eps/replot_eps (which I removed now). The code
2578 the previous plot_eps/replot_eps (which I removed now). The code
2578 is also fairly clean and well documented now (including
2579 is also fairly clean and well documented now (including
2579 docstrings).
2580 docstrings).
2580
2581
2581 2002-11-13 Fernando Perez <fperez@colorado.edu>
2582 2002-11-13 Fernando Perez <fperez@colorado.edu>
2582
2583
2583 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2584 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2584 (inconsistent with options).
2585 (inconsistent with options).
2585
2586
2586 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2587 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2587 manually disabled, I don't know why. Fixed it.
2588 manually disabled, I don't know why. Fixed it.
2588 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2589 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2589 eps output.
2590 eps output.
2590
2591
2591 2002-11-12 Fernando Perez <fperez@colorado.edu>
2592 2002-11-12 Fernando Perez <fperez@colorado.edu>
2592
2593
2593 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2594 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2594 don't propagate up to caller. Fixes crash reported by François
2595 don't propagate up to caller. Fixes crash reported by François
2595 Pinard.
2596 Pinard.
2596
2597
2597 2002-11-09 Fernando Perez <fperez@colorado.edu>
2598 2002-11-09 Fernando Perez <fperez@colorado.edu>
2598
2599
2599 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2600 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2600 history file for new users.
2601 history file for new users.
2601 (make_IPython): fixed bug where initial install would leave the
2602 (make_IPython): fixed bug where initial install would leave the
2602 user running in the .ipython dir.
2603 user running in the .ipython dir.
2603 (make_IPython): fixed bug where config dir .ipython would be
2604 (make_IPython): fixed bug where config dir .ipython would be
2604 created regardless of the given -ipythondir option. Thanks to Cory
2605 created regardless of the given -ipythondir option. Thanks to Cory
2605 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2606 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2606
2607
2607 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2608 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2608 type confirmations. Will need to use it in all of IPython's code
2609 type confirmations. Will need to use it in all of IPython's code
2609 consistently.
2610 consistently.
2610
2611
2611 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2612 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2612 context to print 31 lines instead of the default 5. This will make
2613 context to print 31 lines instead of the default 5. This will make
2613 the crash reports extremely detailed in case the problem is in
2614 the crash reports extremely detailed in case the problem is in
2614 libraries I don't have access to.
2615 libraries I don't have access to.
2615
2616
2616 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2617 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2617 line of defense' code to still crash, but giving users fair
2618 line of defense' code to still crash, but giving users fair
2618 warning. I don't want internal errors to go unreported: if there's
2619 warning. I don't want internal errors to go unreported: if there's
2619 an internal problem, IPython should crash and generate a full
2620 an internal problem, IPython should crash and generate a full
2620 report.
2621 report.
2621
2622
2622 2002-11-08 Fernando Perez <fperez@colorado.edu>
2623 2002-11-08 Fernando Perez <fperez@colorado.edu>
2623
2624
2624 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2625 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2625 otherwise uncaught exceptions which can appear if people set
2626 otherwise uncaught exceptions which can appear if people set
2626 sys.stdout to something badly broken. Thanks to a crash report
2627 sys.stdout to something badly broken. Thanks to a crash report
2627 from henni-AT-mail.brainbot.com.
2628 from henni-AT-mail.brainbot.com.
2628
2629
2629 2002-11-04 Fernando Perez <fperez@colorado.edu>
2630 2002-11-04 Fernando Perez <fperez@colorado.edu>
2630
2631
2631 * IPython/iplib.py (InteractiveShell.interact): added
2632 * IPython/iplib.py (InteractiveShell.interact): added
2632 __IPYTHON__active to the builtins. It's a flag which goes on when
2633 __IPYTHON__active to the builtins. It's a flag which goes on when
2633 the interaction starts and goes off again when it stops. This
2634 the interaction starts and goes off again when it stops. This
2634 allows embedding code to detect being inside IPython. Before this
2635 allows embedding code to detect being inside IPython. Before this
2635 was done via __IPYTHON__, but that only shows that an IPython
2636 was done via __IPYTHON__, but that only shows that an IPython
2636 instance has been created.
2637 instance has been created.
2637
2638
2638 * IPython/Magic.py (Magic.magic_env): I realized that in a
2639 * IPython/Magic.py (Magic.magic_env): I realized that in a
2639 UserDict, instance.data holds the data as a normal dict. So I
2640 UserDict, instance.data holds the data as a normal dict. So I
2640 modified @env to return os.environ.data instead of rebuilding a
2641 modified @env to return os.environ.data instead of rebuilding a
2641 dict by hand.
2642 dict by hand.
2642
2643
2643 2002-11-02 Fernando Perez <fperez@colorado.edu>
2644 2002-11-02 Fernando Perez <fperez@colorado.edu>
2644
2645
2645 * IPython/genutils.py (warn): changed so that level 1 prints no
2646 * IPython/genutils.py (warn): changed so that level 1 prints no
2646 header. Level 2 is now the default (with 'WARNING' header, as
2647 header. Level 2 is now the default (with 'WARNING' header, as
2647 before). I think I tracked all places where changes were needed in
2648 before). I think I tracked all places where changes were needed in
2648 IPython, but outside code using the old level numbering may have
2649 IPython, but outside code using the old level numbering may have
2649 broken.
2650 broken.
2650
2651
2651 * IPython/iplib.py (InteractiveShell.runcode): added this to
2652 * IPython/iplib.py (InteractiveShell.runcode): added this to
2652 handle the tracebacks in SystemExit traps correctly. The previous
2653 handle the tracebacks in SystemExit traps correctly. The previous
2653 code (through interact) was printing more of the stack than
2654 code (through interact) was printing more of the stack than
2654 necessary, showing IPython internal code to the user.
2655 necessary, showing IPython internal code to the user.
2655
2656
2656 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2657 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2657 default. Now that the default at the confirmation prompt is yes,
2658 default. Now that the default at the confirmation prompt is yes,
2658 it's not so intrusive. François' argument that ipython sessions
2659 it's not so intrusive. François' argument that ipython sessions
2659 tend to be complex enough not to lose them from an accidental C-d,
2660 tend to be complex enough not to lose them from an accidental C-d,
2660 is a valid one.
2661 is a valid one.
2661
2662
2662 * IPython/iplib.py (InteractiveShell.interact): added a
2663 * IPython/iplib.py (InteractiveShell.interact): added a
2663 showtraceback() call to the SystemExit trap, and modified the exit
2664 showtraceback() call to the SystemExit trap, and modified the exit
2664 confirmation to have yes as the default.
2665 confirmation to have yes as the default.
2665
2666
2666 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2667 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2667 this file. It's been gone from the code for a long time, this was
2668 this file. It's been gone from the code for a long time, this was
2668 simply leftover junk.
2669 simply leftover junk.
2669
2670
2670 2002-11-01 Fernando Perez <fperez@colorado.edu>
2671 2002-11-01 Fernando Perez <fperez@colorado.edu>
2671
2672
2672 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2673 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2673 added. If set, IPython now traps EOF and asks for
2674 added. If set, IPython now traps EOF and asks for
2674 confirmation. After a request by François Pinard.
2675 confirmation. After a request by François Pinard.
2675
2676
2676 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2677 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2677 of @abort, and with a new (better) mechanism for handling the
2678 of @abort, and with a new (better) mechanism for handling the
2678 exceptions.
2679 exceptions.
2679
2680
2680 2002-10-27 Fernando Perez <fperez@colorado.edu>
2681 2002-10-27 Fernando Perez <fperez@colorado.edu>
2681
2682
2682 * IPython/usage.py (__doc__): updated the --help information and
2683 * IPython/usage.py (__doc__): updated the --help information and
2683 the ipythonrc file to indicate that -log generates
2684 the ipythonrc file to indicate that -log generates
2684 ./ipython.log. Also fixed the corresponding info in @logstart.
2685 ./ipython.log. Also fixed the corresponding info in @logstart.
2685 This and several other fixes in the manuals thanks to reports by
2686 This and several other fixes in the manuals thanks to reports by
2686 François Pinard <pinard-AT-iro.umontreal.ca>.
2687 François Pinard <pinard-AT-iro.umontreal.ca>.
2687
2688
2688 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2689 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2689 refer to @logstart (instead of @log, which doesn't exist).
2690 refer to @logstart (instead of @log, which doesn't exist).
2690
2691
2691 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2692 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2692 AttributeError crash. Thanks to Christopher Armstrong
2693 AttributeError crash. Thanks to Christopher Armstrong
2693 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2694 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2694 introduced recently (in 0.2.14pre37) with the fix to the eval
2695 introduced recently (in 0.2.14pre37) with the fix to the eval
2695 problem mentioned below.
2696 problem mentioned below.
2696
2697
2697 2002-10-17 Fernando Perez <fperez@colorado.edu>
2698 2002-10-17 Fernando Perez <fperez@colorado.edu>
2698
2699
2699 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2700 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2700 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2701 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2701
2702
2702 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2703 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2703 this function to fix a problem reported by Alex Schmolck. He saw
2704 this function to fix a problem reported by Alex Schmolck. He saw
2704 it with list comprehensions and generators, which were getting
2705 it with list comprehensions and generators, which were getting
2705 called twice. The real problem was an 'eval' call in testing for
2706 called twice. The real problem was an 'eval' call in testing for
2706 automagic which was evaluating the input line silently.
2707 automagic which was evaluating the input line silently.
2707
2708
2708 This is a potentially very nasty bug, if the input has side
2709 This is a potentially very nasty bug, if the input has side
2709 effects which must not be repeated. The code is much cleaner now,
2710 effects which must not be repeated. The code is much cleaner now,
2710 without any blanket 'except' left and with a regexp test for
2711 without any blanket 'except' left and with a regexp test for
2711 actual function names.
2712 actual function names.
2712
2713
2713 But an eval remains, which I'm not fully comfortable with. I just
2714 But an eval remains, which I'm not fully comfortable with. I just
2714 don't know how to find out if an expression could be a callable in
2715 don't know how to find out if an expression could be a callable in
2715 the user's namespace without doing an eval on the string. However
2716 the user's namespace without doing an eval on the string. However
2716 that string is now much more strictly checked so that no code
2717 that string is now much more strictly checked so that no code
2717 slips by, so the eval should only happen for things that can
2718 slips by, so the eval should only happen for things that can
2718 really be only function/method names.
2719 really be only function/method names.
2719
2720
2720 2002-10-15 Fernando Perez <fperez@colorado.edu>
2721 2002-10-15 Fernando Perez <fperez@colorado.edu>
2721
2722
2722 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
2723 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
2723 OSX information to main manual, removed README_Mac_OSX file from
2724 OSX information to main manual, removed README_Mac_OSX file from
2724 distribution. Also updated credits for recent additions.
2725 distribution. Also updated credits for recent additions.
2725
2726
2726 2002-10-10 Fernando Perez <fperez@colorado.edu>
2727 2002-10-10 Fernando Perez <fperez@colorado.edu>
2727
2728
2728 * README_Mac_OSX: Added a README for Mac OSX users for fixing
2729 * README_Mac_OSX: Added a README for Mac OSX users for fixing
2729 terminal-related issues. Many thanks to Andrea Riciputi
2730 terminal-related issues. Many thanks to Andrea Riciputi
2730 <andrea.riciputi-AT-libero.it> for writing it.
2731 <andrea.riciputi-AT-libero.it> for writing it.
2731
2732
2732 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
2733 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
2733 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2734 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2734
2735
2735 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
2736 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
2736 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
2737 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
2737 <syver-en-AT-online.no> who both submitted patches for this problem.
2738 <syver-en-AT-online.no> who both submitted patches for this problem.
2738
2739
2739 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
2740 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
2740 global embedding to make sure that things don't overwrite user
2741 global embedding to make sure that things don't overwrite user
2741 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
2742 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
2742
2743
2743 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
2744 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
2744 compatibility. Thanks to Hayden Callow
2745 compatibility. Thanks to Hayden Callow
2745 <h.callow-AT-elec.canterbury.ac.nz>
2746 <h.callow-AT-elec.canterbury.ac.nz>
2746
2747
2747 2002-10-04 Fernando Perez <fperez@colorado.edu>
2748 2002-10-04 Fernando Perez <fperez@colorado.edu>
2748
2749
2749 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
2750 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
2750 Gnuplot.File objects.
2751 Gnuplot.File objects.
2751
2752
2752 2002-07-23 Fernando Perez <fperez@colorado.edu>
2753 2002-07-23 Fernando Perez <fperez@colorado.edu>
2753
2754
2754 * IPython/genutils.py (timing): Added timings() and timing() for
2755 * IPython/genutils.py (timing): Added timings() and timing() for
2755 quick access to the most commonly needed data, the execution
2756 quick access to the most commonly needed data, the execution
2756 times. Old timing() renamed to timings_out().
2757 times. Old timing() renamed to timings_out().
2757
2758
2758 2002-07-18 Fernando Perez <fperez@colorado.edu>
2759 2002-07-18 Fernando Perez <fperez@colorado.edu>
2759
2760
2760 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
2761 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
2761 bug with nested instances disrupting the parent's tab completion.
2762 bug with nested instances disrupting the parent's tab completion.
2762
2763
2763 * IPython/iplib.py (all_completions): Added Alex Schmolck's
2764 * IPython/iplib.py (all_completions): Added Alex Schmolck's
2764 all_completions code to begin the emacs integration.
2765 all_completions code to begin the emacs integration.
2765
2766
2766 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
2767 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
2767 argument to allow titling individual arrays when plotting.
2768 argument to allow titling individual arrays when plotting.
2768
2769
2769 2002-07-15 Fernando Perez <fperez@colorado.edu>
2770 2002-07-15 Fernando Perez <fperez@colorado.edu>
2770
2771
2771 * setup.py (make_shortcut): changed to retrieve the value of
2772 * setup.py (make_shortcut): changed to retrieve the value of
2772 'Program Files' directory from the registry (this value changes in
2773 'Program Files' directory from the registry (this value changes in
2773 non-english versions of Windows). Thanks to Thomas Fanslau
2774 non-english versions of Windows). Thanks to Thomas Fanslau
2774 <tfanslau-AT-gmx.de> for the report.
2775 <tfanslau-AT-gmx.de> for the report.
2775
2776
2776 2002-07-10 Fernando Perez <fperez@colorado.edu>
2777 2002-07-10 Fernando Perez <fperez@colorado.edu>
2777
2778
2778 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
2779 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
2779 a bug in pdb, which crashes if a line with only whitespace is
2780 a bug in pdb, which crashes if a line with only whitespace is
2780 entered. Bug report submitted to sourceforge.
2781 entered. Bug report submitted to sourceforge.
2781
2782
2782 2002-07-09 Fernando Perez <fperez@colorado.edu>
2783 2002-07-09 Fernando Perez <fperez@colorado.edu>
2783
2784
2784 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
2785 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
2785 reporting exceptions (it's a bug in inspect.py, I just set a
2786 reporting exceptions (it's a bug in inspect.py, I just set a
2786 workaround).
2787 workaround).
2787
2788
2788 2002-07-08 Fernando Perez <fperez@colorado.edu>
2789 2002-07-08 Fernando Perez <fperez@colorado.edu>
2789
2790
2790 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
2791 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
2791 __IPYTHON__ in __builtins__ to show up in user_ns.
2792 __IPYTHON__ in __builtins__ to show up in user_ns.
2792
2793
2793 2002-07-03 Fernando Perez <fperez@colorado.edu>
2794 2002-07-03 Fernando Perez <fperez@colorado.edu>
2794
2795
2795 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
2796 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
2796 name from @gp_set_instance to @gp_set_default.
2797 name from @gp_set_instance to @gp_set_default.
2797
2798
2798 * IPython/ipmaker.py (make_IPython): default editor value set to
2799 * IPython/ipmaker.py (make_IPython): default editor value set to
2799 '0' (a string), to match the rc file. Otherwise will crash when
2800 '0' (a string), to match the rc file. Otherwise will crash when
2800 .strip() is called on it.
2801 .strip() is called on it.
2801
2802
2802
2803
2803 2002-06-28 Fernando Perez <fperez@colorado.edu>
2804 2002-06-28 Fernando Perez <fperez@colorado.edu>
2804
2805
2805 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
2806 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
2806 of files in current directory when a file is executed via
2807 of files in current directory when a file is executed via
2807 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
2808 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
2808
2809
2809 * setup.py (manfiles): fix for rpm builds, submitted by RA
2810 * setup.py (manfiles): fix for rpm builds, submitted by RA
2810 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
2811 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
2811
2812
2812 * IPython/ipmaker.py (make_IPython): fixed lookup of default
2813 * IPython/ipmaker.py (make_IPython): fixed lookup of default
2813 editor when set to '0'. Problem was, '0' evaluates to True (it's a
2814 editor when set to '0'. Problem was, '0' evaluates to True (it's a
2814 string!). A. Schmolck caught this one.
2815 string!). A. Schmolck caught this one.
2815
2816
2816 2002-06-27 Fernando Perez <fperez@colorado.edu>
2817 2002-06-27 Fernando Perez <fperez@colorado.edu>
2817
2818
2818 * IPython/ipmaker.py (make_IPython): fixed bug when running user
2819 * IPython/ipmaker.py (make_IPython): fixed bug when running user
2819 defined files at the cmd line. __name__ wasn't being set to
2820 defined files at the cmd line. __name__ wasn't being set to
2820 __main__.
2821 __main__.
2821
2822
2822 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
2823 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
2823 regular lists and tuples besides Numeric arrays.
2824 regular lists and tuples besides Numeric arrays.
2824
2825
2825 * IPython/Prompts.py (CachedOutput.__call__): Added output
2826 * IPython/Prompts.py (CachedOutput.__call__): Added output
2826 supression for input ending with ';'. Similar to Mathematica and
2827 supression for input ending with ';'. Similar to Mathematica and
2827 Matlab. The _* vars and Out[] list are still updated, just like
2828 Matlab. The _* vars and Out[] list are still updated, just like
2828 Mathematica behaves.
2829 Mathematica behaves.
2829
2830
2830 2002-06-25 Fernando Perez <fperez@colorado.edu>
2831 2002-06-25 Fernando Perez <fperez@colorado.edu>
2831
2832
2832 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
2833 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
2833 .ini extensions for profiels under Windows.
2834 .ini extensions for profiels under Windows.
2834
2835
2835 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
2836 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
2836 string form. Fix contributed by Alexander Schmolck
2837 string form. Fix contributed by Alexander Schmolck
2837 <a.schmolck-AT-gmx.net>
2838 <a.schmolck-AT-gmx.net>
2838
2839
2839 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
2840 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
2840 pre-configured Gnuplot instance.
2841 pre-configured Gnuplot instance.
2841
2842
2842 2002-06-21 Fernando Perez <fperez@colorado.edu>
2843 2002-06-21 Fernando Perez <fperez@colorado.edu>
2843
2844
2844 * IPython/numutils.py (exp_safe): new function, works around the
2845 * IPython/numutils.py (exp_safe): new function, works around the
2845 underflow problems in Numeric.
2846 underflow problems in Numeric.
2846 (log2): New fn. Safe log in base 2: returns exact integer answer
2847 (log2): New fn. Safe log in base 2: returns exact integer answer
2847 for exact integer powers of 2.
2848 for exact integer powers of 2.
2848
2849
2849 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
2850 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
2850 properly.
2851 properly.
2851
2852
2852 2002-06-20 Fernando Perez <fperez@colorado.edu>
2853 2002-06-20 Fernando Perez <fperez@colorado.edu>
2853
2854
2854 * IPython/genutils.py (timing): new function like
2855 * IPython/genutils.py (timing): new function like
2855 Mathematica's. Similar to time_test, but returns more info.
2856 Mathematica's. Similar to time_test, but returns more info.
2856
2857
2857 2002-06-18 Fernando Perez <fperez@colorado.edu>
2858 2002-06-18 Fernando Perez <fperez@colorado.edu>
2858
2859
2859 * IPython/Magic.py (Magic.magic_save): modified @save and @r
2860 * IPython/Magic.py (Magic.magic_save): modified @save and @r
2860 according to Mike Heeter's suggestions.
2861 according to Mike Heeter's suggestions.
2861
2862
2862 2002-06-16 Fernando Perez <fperez@colorado.edu>
2863 2002-06-16 Fernando Perez <fperez@colorado.edu>
2863
2864
2864 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
2865 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
2865 system. GnuplotMagic is gone as a user-directory option. New files
2866 system. GnuplotMagic is gone as a user-directory option. New files
2866 make it easier to use all the gnuplot stuff both from external
2867 make it easier to use all the gnuplot stuff both from external
2867 programs as well as from IPython. Had to rewrite part of
2868 programs as well as from IPython. Had to rewrite part of
2868 hardcopy() b/c of a strange bug: often the ps files simply don't
2869 hardcopy() b/c of a strange bug: often the ps files simply don't
2869 get created, and require a repeat of the command (often several
2870 get created, and require a repeat of the command (often several
2870 times).
2871 times).
2871
2872
2872 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
2873 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
2873 resolve output channel at call time, so that if sys.stderr has
2874 resolve output channel at call time, so that if sys.stderr has
2874 been redirected by user this gets honored.
2875 been redirected by user this gets honored.
2875
2876
2876 2002-06-13 Fernando Perez <fperez@colorado.edu>
2877 2002-06-13 Fernando Perez <fperez@colorado.edu>
2877
2878
2878 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
2879 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
2879 IPShell. Kept a copy with the old names to avoid breaking people's
2880 IPShell. Kept a copy with the old names to avoid breaking people's
2880 embedded code.
2881 embedded code.
2881
2882
2882 * IPython/ipython: simplified it to the bare minimum after
2883 * IPython/ipython: simplified it to the bare minimum after
2883 Holger's suggestions. Added info about how to use it in
2884 Holger's suggestions. Added info about how to use it in
2884 PYTHONSTARTUP.
2885 PYTHONSTARTUP.
2885
2886
2886 * IPython/Shell.py (IPythonShell): changed the options passing
2887 * IPython/Shell.py (IPythonShell): changed the options passing
2887 from a string with funky %s replacements to a straight list. Maybe
2888 from a string with funky %s replacements to a straight list. Maybe
2888 a bit more typing, but it follows sys.argv conventions, so there's
2889 a bit more typing, but it follows sys.argv conventions, so there's
2889 less special-casing to remember.
2890 less special-casing to remember.
2890
2891
2891 2002-06-12 Fernando Perez <fperez@colorado.edu>
2892 2002-06-12 Fernando Perez <fperez@colorado.edu>
2892
2893
2893 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
2894 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
2894 command. Thanks to a suggestion by Mike Heeter.
2895 command. Thanks to a suggestion by Mike Heeter.
2895 (Magic.magic_pfile): added behavior to look at filenames if given
2896 (Magic.magic_pfile): added behavior to look at filenames if given
2896 arg is not a defined object.
2897 arg is not a defined object.
2897 (Magic.magic_save): New @save function to save code snippets. Also
2898 (Magic.magic_save): New @save function to save code snippets. Also
2898 a Mike Heeter idea.
2899 a Mike Heeter idea.
2899
2900
2900 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
2901 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
2901 plot() and replot(). Much more convenient now, especially for
2902 plot() and replot(). Much more convenient now, especially for
2902 interactive use.
2903 interactive use.
2903
2904
2904 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
2905 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
2905 filenames.
2906 filenames.
2906
2907
2907 2002-06-02 Fernando Perez <fperez@colorado.edu>
2908 2002-06-02 Fernando Perez <fperez@colorado.edu>
2908
2909
2909 * IPython/Struct.py (Struct.__init__): modified to admit
2910 * IPython/Struct.py (Struct.__init__): modified to admit
2910 initialization via another struct.
2911 initialization via another struct.
2911
2912
2912 * IPython/genutils.py (SystemExec.__init__): New stateful
2913 * IPython/genutils.py (SystemExec.__init__): New stateful
2913 interface to xsys and bq. Useful for writing system scripts.
2914 interface to xsys and bq. Useful for writing system scripts.
2914
2915
2915 2002-05-30 Fernando Perez <fperez@colorado.edu>
2916 2002-05-30 Fernando Perez <fperez@colorado.edu>
2916
2917
2917 * MANIFEST.in: Changed docfile selection to exclude all the lyx
2918 * MANIFEST.in: Changed docfile selection to exclude all the lyx
2918 documents. This will make the user download smaller (it's getting
2919 documents. This will make the user download smaller (it's getting
2919 too big).
2920 too big).
2920
2921
2921 2002-05-29 Fernando Perez <fperez@colorado.edu>
2922 2002-05-29 Fernando Perez <fperez@colorado.edu>
2922
2923
2923 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
2924 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
2924 fix problems with shelve and pickle. Seems to work, but I don't
2925 fix problems with shelve and pickle. Seems to work, but I don't
2925 know if corner cases break it. Thanks to Mike Heeter
2926 know if corner cases break it. Thanks to Mike Heeter
2926 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
2927 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
2927
2928
2928 2002-05-24 Fernando Perez <fperez@colorado.edu>
2929 2002-05-24 Fernando Perez <fperez@colorado.edu>
2929
2930
2930 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
2931 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
2931 macros having broken.
2932 macros having broken.
2932
2933
2933 2002-05-21 Fernando Perez <fperez@colorado.edu>
2934 2002-05-21 Fernando Perez <fperez@colorado.edu>
2934
2935
2935 * IPython/Magic.py (Magic.magic_logstart): fixed recently
2936 * IPython/Magic.py (Magic.magic_logstart): fixed recently
2936 introduced logging bug: all history before logging started was
2937 introduced logging bug: all history before logging started was
2937 being written one character per line! This came from the redesign
2938 being written one character per line! This came from the redesign
2938 of the input history as a special list which slices to strings,
2939 of the input history as a special list which slices to strings,
2939 not to lists.
2940 not to lists.
2940
2941
2941 2002-05-20 Fernando Perez <fperez@colorado.edu>
2942 2002-05-20 Fernando Perez <fperez@colorado.edu>
2942
2943
2943 * IPython/Prompts.py (CachedOutput.__init__): made the color table
2944 * IPython/Prompts.py (CachedOutput.__init__): made the color table
2944 be an attribute of all classes in this module. The design of these
2945 be an attribute of all classes in this module. The design of these
2945 classes needs some serious overhauling.
2946 classes needs some serious overhauling.
2946
2947
2947 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
2948 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
2948 which was ignoring '_' in option names.
2949 which was ignoring '_' in option names.
2949
2950
2950 * IPython/ultraTB.py (FormattedTB.__init__): Changed
2951 * IPython/ultraTB.py (FormattedTB.__init__): Changed
2951 'Verbose_novars' to 'Context' and made it the new default. It's a
2952 'Verbose_novars' to 'Context' and made it the new default. It's a
2952 bit more readable and also safer than verbose.
2953 bit more readable and also safer than verbose.
2953
2954
2954 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
2955 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
2955 triple-quoted strings.
2956 triple-quoted strings.
2956
2957
2957 * IPython/OInspect.py (__all__): new module exposing the object
2958 * IPython/OInspect.py (__all__): new module exposing the object
2958 introspection facilities. Now the corresponding magics are dummy
2959 introspection facilities. Now the corresponding magics are dummy
2959 wrappers around this. Having this module will make it much easier
2960 wrappers around this. Having this module will make it much easier
2960 to put these functions into our modified pdb.
2961 to put these functions into our modified pdb.
2961 This new object inspector system uses the new colorizing module,
2962 This new object inspector system uses the new colorizing module,
2962 so source code and other things are nicely syntax highlighted.
2963 so source code and other things are nicely syntax highlighted.
2963
2964
2964 2002-05-18 Fernando Perez <fperez@colorado.edu>
2965 2002-05-18 Fernando Perez <fperez@colorado.edu>
2965
2966
2966 * IPython/ColorANSI.py: Split the coloring tools into a separate
2967 * IPython/ColorANSI.py: Split the coloring tools into a separate
2967 module so I can use them in other code easier (they were part of
2968 module so I can use them in other code easier (they were part of
2968 ultraTB).
2969 ultraTB).
2969
2970
2970 2002-05-17 Fernando Perez <fperez@colorado.edu>
2971 2002-05-17 Fernando Perez <fperez@colorado.edu>
2971
2972
2972 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2973 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2973 fixed it to set the global 'g' also to the called instance, as
2974 fixed it to set the global 'g' also to the called instance, as
2974 long as 'g' was still a gnuplot instance (so it doesn't overwrite
2975 long as 'g' was still a gnuplot instance (so it doesn't overwrite
2975 user's 'g' variables).
2976 user's 'g' variables).
2976
2977
2977 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
2978 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
2978 global variables (aliases to _ih,_oh) so that users which expect
2979 global variables (aliases to _ih,_oh) so that users which expect
2979 In[5] or Out[7] to work aren't unpleasantly surprised.
2980 In[5] or Out[7] to work aren't unpleasantly surprised.
2980 (InputList.__getslice__): new class to allow executing slices of
2981 (InputList.__getslice__): new class to allow executing slices of
2981 input history directly. Very simple class, complements the use of
2982 input history directly. Very simple class, complements the use of
2982 macros.
2983 macros.
2983
2984
2984 2002-05-16 Fernando Perez <fperez@colorado.edu>
2985 2002-05-16 Fernando Perez <fperez@colorado.edu>
2985
2986
2986 * setup.py (docdirbase): make doc directory be just doc/IPython
2987 * setup.py (docdirbase): make doc directory be just doc/IPython
2987 without version numbers, it will reduce clutter for users.
2988 without version numbers, it will reduce clutter for users.
2988
2989
2989 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
2990 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
2990 execfile call to prevent possible memory leak. See for details:
2991 execfile call to prevent possible memory leak. See for details:
2991 http://mail.python.org/pipermail/python-list/2002-February/088476.html
2992 http://mail.python.org/pipermail/python-list/2002-February/088476.html
2992
2993
2993 2002-05-15 Fernando Perez <fperez@colorado.edu>
2994 2002-05-15 Fernando Perez <fperez@colorado.edu>
2994
2995
2995 * IPython/Magic.py (Magic.magic_psource): made the object
2996 * IPython/Magic.py (Magic.magic_psource): made the object
2996 introspection names be more standard: pdoc, pdef, pfile and
2997 introspection names be more standard: pdoc, pdef, pfile and
2997 psource. They all print/page their output, and it makes
2998 psource. They all print/page their output, and it makes
2998 remembering them easier. Kept old names for compatibility as
2999 remembering them easier. Kept old names for compatibility as
2999 aliases.
3000 aliases.
3000
3001
3001 2002-05-14 Fernando Perez <fperez@colorado.edu>
3002 2002-05-14 Fernando Perez <fperez@colorado.edu>
3002
3003
3003 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3004 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3004 what the mouse problem was. The trick is to use gnuplot with temp
3005 what the mouse problem was. The trick is to use gnuplot with temp
3005 files and NOT with pipes (for data communication), because having
3006 files and NOT with pipes (for data communication), because having
3006 both pipes and the mouse on is bad news.
3007 both pipes and the mouse on is bad news.
3007
3008
3008 2002-05-13 Fernando Perez <fperez@colorado.edu>
3009 2002-05-13 Fernando Perez <fperez@colorado.edu>
3009
3010
3010 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3011 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3011 bug. Information would be reported about builtins even when
3012 bug. Information would be reported about builtins even when
3012 user-defined functions overrode them.
3013 user-defined functions overrode them.
3013
3014
3014 2002-05-11 Fernando Perez <fperez@colorado.edu>
3015 2002-05-11 Fernando Perez <fperez@colorado.edu>
3015
3016
3016 * IPython/__init__.py (__all__): removed FlexCompleter from
3017 * IPython/__init__.py (__all__): removed FlexCompleter from
3017 __all__ so that things don't fail in platforms without readline.
3018 __all__ so that things don't fail in platforms without readline.
3018
3019
3019 2002-05-10 Fernando Perez <fperez@colorado.edu>
3020 2002-05-10 Fernando Perez <fperez@colorado.edu>
3020
3021
3021 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3022 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3022 it requires Numeric, effectively making Numeric a dependency for
3023 it requires Numeric, effectively making Numeric a dependency for
3023 IPython.
3024 IPython.
3024
3025
3025 * Released 0.2.13
3026 * Released 0.2.13
3026
3027
3027 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3028 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3028 profiler interface. Now all the major options from the profiler
3029 profiler interface. Now all the major options from the profiler
3029 module are directly supported in IPython, both for single
3030 module are directly supported in IPython, both for single
3030 expressions (@prun) and for full programs (@run -p).
3031 expressions (@prun) and for full programs (@run -p).
3031
3032
3032 2002-05-09 Fernando Perez <fperez@colorado.edu>
3033 2002-05-09 Fernando Perez <fperez@colorado.edu>
3033
3034
3034 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3035 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3035 magic properly formatted for screen.
3036 magic properly formatted for screen.
3036
3037
3037 * setup.py (make_shortcut): Changed things to put pdf version in
3038 * setup.py (make_shortcut): Changed things to put pdf version in
3038 doc/ instead of doc/manual (had to change lyxport a bit).
3039 doc/ instead of doc/manual (had to change lyxport a bit).
3039
3040
3040 * IPython/Magic.py (Profile.string_stats): made profile runs go
3041 * IPython/Magic.py (Profile.string_stats): made profile runs go
3041 through pager (they are long and a pager allows searching, saving,
3042 through pager (they are long and a pager allows searching, saving,
3042 etc.)
3043 etc.)
3043
3044
3044 2002-05-08 Fernando Perez <fperez@colorado.edu>
3045 2002-05-08 Fernando Perez <fperez@colorado.edu>
3045
3046
3046 * Released 0.2.12
3047 * Released 0.2.12
3047
3048
3048 2002-05-06 Fernando Perez <fperez@colorado.edu>
3049 2002-05-06 Fernando Perez <fperez@colorado.edu>
3049
3050
3050 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3051 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3051 introduced); 'hist n1 n2' was broken.
3052 introduced); 'hist n1 n2' was broken.
3052 (Magic.magic_pdb): added optional on/off arguments to @pdb
3053 (Magic.magic_pdb): added optional on/off arguments to @pdb
3053 (Magic.magic_run): added option -i to @run, which executes code in
3054 (Magic.magic_run): added option -i to @run, which executes code in
3054 the IPython namespace instead of a clean one. Also added @irun as
3055 the IPython namespace instead of a clean one. Also added @irun as
3055 an alias to @run -i.
3056 an alias to @run -i.
3056
3057
3057 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3058 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3058 fixed (it didn't really do anything, the namespaces were wrong).
3059 fixed (it didn't really do anything, the namespaces were wrong).
3059
3060
3060 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3061 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3061
3062
3062 * IPython/__init__.py (__all__): Fixed package namespace, now
3063 * IPython/__init__.py (__all__): Fixed package namespace, now
3063 'import IPython' does give access to IPython.<all> as
3064 'import IPython' does give access to IPython.<all> as
3064 expected. Also renamed __release__ to Release.
3065 expected. Also renamed __release__ to Release.
3065
3066
3066 * IPython/Debugger.py (__license__): created new Pdb class which
3067 * IPython/Debugger.py (__license__): created new Pdb class which
3067 functions like a drop-in for the normal pdb.Pdb but does NOT
3068 functions like a drop-in for the normal pdb.Pdb but does NOT
3068 import readline by default. This way it doesn't muck up IPython's
3069 import readline by default. This way it doesn't muck up IPython's
3069 readline handling, and now tab-completion finally works in the
3070 readline handling, and now tab-completion finally works in the
3070 debugger -- sort of. It completes things globally visible, but the
3071 debugger -- sort of. It completes things globally visible, but the
3071 completer doesn't track the stack as pdb walks it. That's a bit
3072 completer doesn't track the stack as pdb walks it. That's a bit
3072 tricky, and I'll have to implement it later.
3073 tricky, and I'll have to implement it later.
3073
3074
3074 2002-05-05 Fernando Perez <fperez@colorado.edu>
3075 2002-05-05 Fernando Perez <fperez@colorado.edu>
3075
3076
3076 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3077 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
3077 magic docstrings when printed via ? (explicit \'s were being
3078 magic docstrings when printed via ? (explicit \'s were being
3078 printed).
3079 printed).
3079
3080
3080 * IPython/ipmaker.py (make_IPython): fixed namespace
3081 * IPython/ipmaker.py (make_IPython): fixed namespace
3081 identification bug. Now variables loaded via logs or command-line
3082 identification bug. Now variables loaded via logs or command-line
3082 files are recognized in the interactive namespace by @who.
3083 files are recognized in the interactive namespace by @who.
3083
3084
3084 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3085 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
3085 log replay system stemming from the string form of Structs.
3086 log replay system stemming from the string form of Structs.
3086
3087
3087 * IPython/Magic.py (Macro.__init__): improved macros to properly
3088 * IPython/Magic.py (Macro.__init__): improved macros to properly
3088 handle magic commands in them.
3089 handle magic commands in them.
3089 (Magic.magic_logstart): usernames are now expanded so 'logstart
3090 (Magic.magic_logstart): usernames are now expanded so 'logstart
3090 ~/mylog' now works.
3091 ~/mylog' now works.
3091
3092
3092 * IPython/iplib.py (complete): fixed bug where paths starting with
3093 * IPython/iplib.py (complete): fixed bug where paths starting with
3093 '/' would be completed as magic names.
3094 '/' would be completed as magic names.
3094
3095
3095 2002-05-04 Fernando Perez <fperez@colorado.edu>
3096 2002-05-04 Fernando Perez <fperez@colorado.edu>
3096
3097
3097 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3098 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
3098 allow running full programs under the profiler's control.
3099 allow running full programs under the profiler's control.
3099
3100
3100 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3101 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
3101 mode to report exceptions verbosely but without formatting
3102 mode to report exceptions verbosely but without formatting
3102 variables. This addresses the issue of ipython 'freezing' (it's
3103 variables. This addresses the issue of ipython 'freezing' (it's
3103 not frozen, but caught in an expensive formatting loop) when huge
3104 not frozen, but caught in an expensive formatting loop) when huge
3104 variables are in the context of an exception.
3105 variables are in the context of an exception.
3105 (VerboseTB.text): Added '--->' markers at line where exception was
3106 (VerboseTB.text): Added '--->' markers at line where exception was
3106 triggered. Much clearer to read, especially in NoColor modes.
3107 triggered. Much clearer to read, especially in NoColor modes.
3107
3108
3108 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3109 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
3109 implemented in reverse when changing to the new parse_options().
3110 implemented in reverse when changing to the new parse_options().
3110
3111
3111 2002-05-03 Fernando Perez <fperez@colorado.edu>
3112 2002-05-03 Fernando Perez <fperez@colorado.edu>
3112
3113
3113 * IPython/Magic.py (Magic.parse_options): new function so that
3114 * IPython/Magic.py (Magic.parse_options): new function so that
3114 magics can parse options easier.
3115 magics can parse options easier.
3115 (Magic.magic_prun): new function similar to profile.run(),
3116 (Magic.magic_prun): new function similar to profile.run(),
3116 suggested by Chris Hart.
3117 suggested by Chris Hart.
3117 (Magic.magic_cd): fixed behavior so that it only changes if
3118 (Magic.magic_cd): fixed behavior so that it only changes if
3118 directory actually is in history.
3119 directory actually is in history.
3119
3120
3120 * IPython/usage.py (__doc__): added information about potential
3121 * IPython/usage.py (__doc__): added information about potential
3121 slowness of Verbose exception mode when there are huge data
3122 slowness of Verbose exception mode when there are huge data
3122 structures to be formatted (thanks to Archie Paulson).
3123 structures to be formatted (thanks to Archie Paulson).
3123
3124
3124 * IPython/ipmaker.py (make_IPython): Changed default logging
3125 * IPython/ipmaker.py (make_IPython): Changed default logging
3125 (when simply called with -log) to use curr_dir/ipython.log in
3126 (when simply called with -log) to use curr_dir/ipython.log in
3126 rotate mode. Fixed crash which was occuring with -log before
3127 rotate mode. Fixed crash which was occuring with -log before
3127 (thanks to Jim Boyle).
3128 (thanks to Jim Boyle).
3128
3129
3129 2002-05-01 Fernando Perez <fperez@colorado.edu>
3130 2002-05-01 Fernando Perez <fperez@colorado.edu>
3130
3131
3131 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3132 * Released 0.2.11 for these fixes (mainly the ultraTB one which
3132 was nasty -- though somewhat of a corner case).
3133 was nasty -- though somewhat of a corner case).
3133
3134
3134 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3135 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
3135 text (was a bug).
3136 text (was a bug).
3136
3137
3137 2002-04-30 Fernando Perez <fperez@colorado.edu>
3138 2002-04-30 Fernando Perez <fperez@colorado.edu>
3138
3139
3139 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3140 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
3140 a print after ^D or ^C from the user so that the In[] prompt
3141 a print after ^D or ^C from the user so that the In[] prompt
3141 doesn't over-run the gnuplot one.
3142 doesn't over-run the gnuplot one.
3142
3143
3143 2002-04-29 Fernando Perez <fperez@colorado.edu>
3144 2002-04-29 Fernando Perez <fperez@colorado.edu>
3144
3145
3145 * Released 0.2.10
3146 * Released 0.2.10
3146
3147
3147 * IPython/__release__.py (version): get date dynamically.
3148 * IPython/__release__.py (version): get date dynamically.
3148
3149
3149 * Misc. documentation updates thanks to Arnd's comments. Also ran
3150 * Misc. documentation updates thanks to Arnd's comments. Also ran
3150 a full spellcheck on the manual (hadn't been done in a while).
3151 a full spellcheck on the manual (hadn't been done in a while).
3151
3152
3152 2002-04-27 Fernando Perez <fperez@colorado.edu>
3153 2002-04-27 Fernando Perez <fperez@colorado.edu>
3153
3154
3154 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3155 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
3155 starting a log in mid-session would reset the input history list.
3156 starting a log in mid-session would reset the input history list.
3156
3157
3157 2002-04-26 Fernando Perez <fperez@colorado.edu>
3158 2002-04-26 Fernando Perez <fperez@colorado.edu>
3158
3159
3159 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3160 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3160 all files were being included in an update. Now anything in
3161 all files were being included in an update. Now anything in
3161 UserConfig that matches [A-Za-z]*.py will go (this excludes
3162 UserConfig that matches [A-Za-z]*.py will go (this excludes
3162 __init__.py)
3163 __init__.py)
3163
3164
3164 2002-04-25 Fernando Perez <fperez@colorado.edu>
3165 2002-04-25 Fernando Perez <fperez@colorado.edu>
3165
3166
3166 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3167 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3167 to __builtins__ so that any form of embedded or imported code can
3168 to __builtins__ so that any form of embedded or imported code can
3168 test for being inside IPython.
3169 test for being inside IPython.
3169
3170
3170 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3171 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3171 changed to GnuplotMagic because it's now an importable module,
3172 changed to GnuplotMagic because it's now an importable module,
3172 this makes the name follow that of the standard Gnuplot module.
3173 this makes the name follow that of the standard Gnuplot module.
3173 GnuplotMagic can now be loaded at any time in mid-session.
3174 GnuplotMagic can now be loaded at any time in mid-session.
3174
3175
3175 2002-04-24 Fernando Perez <fperez@colorado.edu>
3176 2002-04-24 Fernando Perez <fperez@colorado.edu>
3176
3177
3177 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3178 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3178 the globals (IPython has its own namespace) and the
3179 the globals (IPython has its own namespace) and the
3179 PhysicalQuantity stuff is much better anyway.
3180 PhysicalQuantity stuff is much better anyway.
3180
3181
3181 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3182 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3182 embedding example to standard user directory for
3183 embedding example to standard user directory for
3183 distribution. Also put it in the manual.
3184 distribution. Also put it in the manual.
3184
3185
3185 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3186 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3186 instance as first argument (so it doesn't rely on some obscure
3187 instance as first argument (so it doesn't rely on some obscure
3187 hidden global).
3188 hidden global).
3188
3189
3189 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3190 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3190 delimiters. While it prevents ().TAB from working, it allows
3191 delimiters. While it prevents ().TAB from working, it allows
3191 completions in open (... expressions. This is by far a more common
3192 completions in open (... expressions. This is by far a more common
3192 case.
3193 case.
3193
3194
3194 2002-04-23 Fernando Perez <fperez@colorado.edu>
3195 2002-04-23 Fernando Perez <fperez@colorado.edu>
3195
3196
3196 * IPython/Extensions/InterpreterPasteInput.py: new
3197 * IPython/Extensions/InterpreterPasteInput.py: new
3197 syntax-processing module for pasting lines with >>> or ... at the
3198 syntax-processing module for pasting lines with >>> or ... at the
3198 start.
3199 start.
3199
3200
3200 * IPython/Extensions/PhysicalQ_Interactive.py
3201 * IPython/Extensions/PhysicalQ_Interactive.py
3201 (PhysicalQuantityInteractive.__int__): fixed to work with either
3202 (PhysicalQuantityInteractive.__int__): fixed to work with either
3202 Numeric or math.
3203 Numeric or math.
3203
3204
3204 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3205 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3205 provided profiles. Now we have:
3206 provided profiles. Now we have:
3206 -math -> math module as * and cmath with its own namespace.
3207 -math -> math module as * and cmath with its own namespace.
3207 -numeric -> Numeric as *, plus gnuplot & grace
3208 -numeric -> Numeric as *, plus gnuplot & grace
3208 -physics -> same as before
3209 -physics -> same as before
3209
3210
3210 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3211 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3211 user-defined magics wouldn't be found by @magic if they were
3212 user-defined magics wouldn't be found by @magic if they were
3212 defined as class methods. Also cleaned up the namespace search
3213 defined as class methods. Also cleaned up the namespace search
3213 logic and the string building (to use %s instead of many repeated
3214 logic and the string building (to use %s instead of many repeated
3214 string adds).
3215 string adds).
3215
3216
3216 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3217 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3217 of user-defined magics to operate with class methods (cleaner, in
3218 of user-defined magics to operate with class methods (cleaner, in
3218 line with the gnuplot code).
3219 line with the gnuplot code).
3219
3220
3220 2002-04-22 Fernando Perez <fperez@colorado.edu>
3221 2002-04-22 Fernando Perez <fperez@colorado.edu>
3221
3222
3222 * setup.py: updated dependency list so that manual is updated when
3223 * setup.py: updated dependency list so that manual is updated when
3223 all included files change.
3224 all included files change.
3224
3225
3225 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3226 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3226 the delimiter removal option (the fix is ugly right now).
3227 the delimiter removal option (the fix is ugly right now).
3227
3228
3228 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3229 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3229 all of the math profile (quicker loading, no conflict between
3230 all of the math profile (quicker loading, no conflict between
3230 g-9.8 and g-gnuplot).
3231 g-9.8 and g-gnuplot).
3231
3232
3232 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3233 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3233 name of post-mortem files to IPython_crash_report.txt.
3234 name of post-mortem files to IPython_crash_report.txt.
3234
3235
3235 * Cleanup/update of the docs. Added all the new readline info and
3236 * Cleanup/update of the docs. Added all the new readline info and
3236 formatted all lists as 'real lists'.
3237 formatted all lists as 'real lists'.
3237
3238
3238 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3239 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3239 tab-completion options, since the full readline parse_and_bind is
3240 tab-completion options, since the full readline parse_and_bind is
3240 now accessible.
3241 now accessible.
3241
3242
3242 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3243 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3243 handling of readline options. Now users can specify any string to
3244 handling of readline options. Now users can specify any string to
3244 be passed to parse_and_bind(), as well as the delimiters to be
3245 be passed to parse_and_bind(), as well as the delimiters to be
3245 removed.
3246 removed.
3246 (InteractiveShell.__init__): Added __name__ to the global
3247 (InteractiveShell.__init__): Added __name__ to the global
3247 namespace so that things like Itpl which rely on its existence
3248 namespace so that things like Itpl which rely on its existence
3248 don't crash.
3249 don't crash.
3249 (InteractiveShell._prefilter): Defined the default with a _ so
3250 (InteractiveShell._prefilter): Defined the default with a _ so
3250 that prefilter() is easier to override, while the default one
3251 that prefilter() is easier to override, while the default one
3251 remains available.
3252 remains available.
3252
3253
3253 2002-04-18 Fernando Perez <fperez@colorado.edu>
3254 2002-04-18 Fernando Perez <fperez@colorado.edu>
3254
3255
3255 * Added information about pdb in the docs.
3256 * Added information about pdb in the docs.
3256
3257
3257 2002-04-17 Fernando Perez <fperez@colorado.edu>
3258 2002-04-17 Fernando Perez <fperez@colorado.edu>
3258
3259
3259 * IPython/ipmaker.py (make_IPython): added rc_override option to
3260 * IPython/ipmaker.py (make_IPython): added rc_override option to
3260 allow passing config options at creation time which may override
3261 allow passing config options at creation time which may override
3261 anything set in the config files or command line. This is
3262 anything set in the config files or command line. This is
3262 particularly useful for configuring embedded instances.
3263 particularly useful for configuring embedded instances.
3263
3264
3264 2002-04-15 Fernando Perez <fperez@colorado.edu>
3265 2002-04-15 Fernando Perez <fperez@colorado.edu>
3265
3266
3266 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3267 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3267 crash embedded instances because of the input cache falling out of
3268 crash embedded instances because of the input cache falling out of
3268 sync with the output counter.
3269 sync with the output counter.
3269
3270
3270 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3271 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3271 mode which calls pdb after an uncaught exception in IPython itself.
3272 mode which calls pdb after an uncaught exception in IPython itself.
3272
3273
3273 2002-04-14 Fernando Perez <fperez@colorado.edu>
3274 2002-04-14 Fernando Perez <fperez@colorado.edu>
3274
3275
3275 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3276 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3276 readline, fix it back after each call.
3277 readline, fix it back after each call.
3277
3278
3278 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3279 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3279 method to force all access via __call__(), which guarantees that
3280 method to force all access via __call__(), which guarantees that
3280 traceback references are properly deleted.
3281 traceback references are properly deleted.
3281
3282
3282 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3283 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3283 improve printing when pprint is in use.
3284 improve printing when pprint is in use.
3284
3285
3285 2002-04-13 Fernando Perez <fperez@colorado.edu>
3286 2002-04-13 Fernando Perez <fperez@colorado.edu>
3286
3287
3287 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3288 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3288 exceptions aren't caught anymore. If the user triggers one, he
3289 exceptions aren't caught anymore. If the user triggers one, he
3289 should know why he's doing it and it should go all the way up,
3290 should know why he's doing it and it should go all the way up,
3290 just like any other exception. So now @abort will fully kill the
3291 just like any other exception. So now @abort will fully kill the
3291 embedded interpreter and the embedding code (unless that happens
3292 embedded interpreter and the embedding code (unless that happens
3292 to catch SystemExit).
3293 to catch SystemExit).
3293
3294
3294 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3295 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3295 and a debugger() method to invoke the interactive pdb debugger
3296 and a debugger() method to invoke the interactive pdb debugger
3296 after printing exception information. Also added the corresponding
3297 after printing exception information. Also added the corresponding
3297 -pdb option and @pdb magic to control this feature, and updated
3298 -pdb option and @pdb magic to control this feature, and updated
3298 the docs. After a suggestion from Christopher Hart
3299 the docs. After a suggestion from Christopher Hart
3299 (hart-AT-caltech.edu).
3300 (hart-AT-caltech.edu).
3300
3301
3301 2002-04-12 Fernando Perez <fperez@colorado.edu>
3302 2002-04-12 Fernando Perez <fperez@colorado.edu>
3302
3303
3303 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3304 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3304 the exception handlers defined by the user (not the CrashHandler)
3305 the exception handlers defined by the user (not the CrashHandler)
3305 so that user exceptions don't trigger an ipython bug report.
3306 so that user exceptions don't trigger an ipython bug report.
3306
3307
3307 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3308 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3308 configurable (it should have always been so).
3309 configurable (it should have always been so).
3309
3310
3310 2002-03-26 Fernando Perez <fperez@colorado.edu>
3311 2002-03-26 Fernando Perez <fperez@colorado.edu>
3311
3312
3312 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3313 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3313 and there to fix embedding namespace issues. This should all be
3314 and there to fix embedding namespace issues. This should all be
3314 done in a more elegant way.
3315 done in a more elegant way.
3315
3316
3316 2002-03-25 Fernando Perez <fperez@colorado.edu>
3317 2002-03-25 Fernando Perez <fperez@colorado.edu>
3317
3318
3318 * IPython/genutils.py (get_home_dir): Try to make it work under
3319 * IPython/genutils.py (get_home_dir): Try to make it work under
3319 win9x also.
3320 win9x also.
3320
3321
3321 2002-03-20 Fernando Perez <fperez@colorado.edu>
3322 2002-03-20 Fernando Perez <fperez@colorado.edu>
3322
3323
3323 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3324 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3324 sys.displayhook untouched upon __init__.
3325 sys.displayhook untouched upon __init__.
3325
3326
3326 2002-03-19 Fernando Perez <fperez@colorado.edu>
3327 2002-03-19 Fernando Perez <fperez@colorado.edu>
3327
3328
3328 * Released 0.2.9 (for embedding bug, basically).
3329 * Released 0.2.9 (for embedding bug, basically).
3329
3330
3330 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3331 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3331 exceptions so that enclosing shell's state can be restored.
3332 exceptions so that enclosing shell's state can be restored.
3332
3333
3333 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3334 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3334 naming conventions in the .ipython/ dir.
3335 naming conventions in the .ipython/ dir.
3335
3336
3336 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3337 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3337 from delimiters list so filenames with - in them get expanded.
3338 from delimiters list so filenames with - in them get expanded.
3338
3339
3339 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3340 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3340 sys.displayhook not being properly restored after an embedded call.
3341 sys.displayhook not being properly restored after an embedded call.
3341
3342
3342 2002-03-18 Fernando Perez <fperez@colorado.edu>
3343 2002-03-18 Fernando Perez <fperez@colorado.edu>
3343
3344
3344 * Released 0.2.8
3345 * Released 0.2.8
3345
3346
3346 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3347 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3347 some files weren't being included in a -upgrade.
3348 some files weren't being included in a -upgrade.
3348 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3349 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3349 on' so that the first tab completes.
3350 on' so that the first tab completes.
3350 (InteractiveShell.handle_magic): fixed bug with spaces around
3351 (InteractiveShell.handle_magic): fixed bug with spaces around
3351 quotes breaking many magic commands.
3352 quotes breaking many magic commands.
3352
3353
3353 * setup.py: added note about ignoring the syntax error messages at
3354 * setup.py: added note about ignoring the syntax error messages at
3354 installation.
3355 installation.
3355
3356
3356 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3357 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3357 streamlining the gnuplot interface, now there's only one magic @gp.
3358 streamlining the gnuplot interface, now there's only one magic @gp.
3358
3359
3359 2002-03-17 Fernando Perez <fperez@colorado.edu>
3360 2002-03-17 Fernando Perez <fperez@colorado.edu>
3360
3361
3361 * IPython/UserConfig/magic_gnuplot.py: new name for the
3362 * IPython/UserConfig/magic_gnuplot.py: new name for the
3362 example-magic_pm.py file. Much enhanced system, now with a shell
3363 example-magic_pm.py file. Much enhanced system, now with a shell
3363 for communicating directly with gnuplot, one command at a time.
3364 for communicating directly with gnuplot, one command at a time.
3364
3365
3365 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3366 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3366 setting __name__=='__main__'.
3367 setting __name__=='__main__'.
3367
3368
3368 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3369 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3369 mini-shell for accessing gnuplot from inside ipython. Should
3370 mini-shell for accessing gnuplot from inside ipython. Should
3370 extend it later for grace access too. Inspired by Arnd's
3371 extend it later for grace access too. Inspired by Arnd's
3371 suggestion.
3372 suggestion.
3372
3373
3373 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3374 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3374 calling magic functions with () in their arguments. Thanks to Arnd
3375 calling magic functions with () in their arguments. Thanks to Arnd
3375 Baecker for pointing this to me.
3376 Baecker for pointing this to me.
3376
3377
3377 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3378 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3378 infinitely for integer or complex arrays (only worked with floats).
3379 infinitely for integer or complex arrays (only worked with floats).
3379
3380
3380 2002-03-16 Fernando Perez <fperez@colorado.edu>
3381 2002-03-16 Fernando Perez <fperez@colorado.edu>
3381
3382
3382 * setup.py: Merged setup and setup_windows into a single script
3383 * setup.py: Merged setup and setup_windows into a single script
3383 which properly handles things for windows users.
3384 which properly handles things for windows users.
3384
3385
3385 2002-03-15 Fernando Perez <fperez@colorado.edu>
3386 2002-03-15 Fernando Perez <fperez@colorado.edu>
3386
3387
3387 * Big change to the manual: now the magics are all automatically
3388 * Big change to the manual: now the magics are all automatically
3388 documented. This information is generated from their docstrings
3389 documented. This information is generated from their docstrings
3389 and put in a latex file included by the manual lyx file. This way
3390 and put in a latex file included by the manual lyx file. This way
3390 we get always up to date information for the magics. The manual
3391 we get always up to date information for the magics. The manual
3391 now also has proper version information, also auto-synced.
3392 now also has proper version information, also auto-synced.
3392
3393
3393 For this to work, an undocumented --magic_docstrings option was added.
3394 For this to work, an undocumented --magic_docstrings option was added.
3394
3395
3395 2002-03-13 Fernando Perez <fperez@colorado.edu>
3396 2002-03-13 Fernando Perez <fperez@colorado.edu>
3396
3397
3397 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3398 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3398 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3399 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3399
3400
3400 2002-03-12 Fernando Perez <fperez@colorado.edu>
3401 2002-03-12 Fernando Perez <fperez@colorado.edu>
3401
3402
3402 * IPython/ultraTB.py (TermColors): changed color escapes again to
3403 * IPython/ultraTB.py (TermColors): changed color escapes again to
3403 fix the (old, reintroduced) line-wrapping bug. Basically, if
3404 fix the (old, reintroduced) line-wrapping bug. Basically, if
3404 \001..\002 aren't given in the color escapes, lines get wrapped
3405 \001..\002 aren't given in the color escapes, lines get wrapped
3405 weirdly. But giving those screws up old xterms and emacs terms. So
3406 weirdly. But giving those screws up old xterms and emacs terms. So
3406 I added some logic for emacs terms to be ok, but I can't identify old
3407 I added some logic for emacs terms to be ok, but I can't identify old
3407 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3408 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3408
3409
3409 2002-03-10 Fernando Perez <fperez@colorado.edu>
3410 2002-03-10 Fernando Perez <fperez@colorado.edu>
3410
3411
3411 * IPython/usage.py (__doc__): Various documentation cleanups and
3412 * IPython/usage.py (__doc__): Various documentation cleanups and
3412 updates, both in usage docstrings and in the manual.
3413 updates, both in usage docstrings and in the manual.
3413
3414
3414 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3415 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3415 handling of caching. Set minimum acceptabe value for having a
3416 handling of caching. Set minimum acceptabe value for having a
3416 cache at 20 values.
3417 cache at 20 values.
3417
3418
3418 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3419 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3419 install_first_time function to a method, renamed it and added an
3420 install_first_time function to a method, renamed it and added an
3420 'upgrade' mode. Now people can update their config directory with
3421 'upgrade' mode. Now people can update their config directory with
3421 a simple command line switch (-upgrade, also new).
3422 a simple command line switch (-upgrade, also new).
3422
3423
3423 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3424 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3424 @file (convenient for automagic users under Python >= 2.2).
3425 @file (convenient for automagic users under Python >= 2.2).
3425 Removed @files (it seemed more like a plural than an abbrev. of
3426 Removed @files (it seemed more like a plural than an abbrev. of
3426 'file show').
3427 'file show').
3427
3428
3428 * IPython/iplib.py (install_first_time): Fixed crash if there were
3429 * IPython/iplib.py (install_first_time): Fixed crash if there were
3429 backup files ('~') in .ipython/ install directory.
3430 backup files ('~') in .ipython/ install directory.
3430
3431
3431 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3432 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3432 system. Things look fine, but these changes are fairly
3433 system. Things look fine, but these changes are fairly
3433 intrusive. Test them for a few days.
3434 intrusive. Test them for a few days.
3434
3435
3435 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3436 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3436 the prompts system. Now all in/out prompt strings are user
3437 the prompts system. Now all in/out prompt strings are user
3437 controllable. This is particularly useful for embedding, as one
3438 controllable. This is particularly useful for embedding, as one
3438 can tag embedded instances with particular prompts.
3439 can tag embedded instances with particular prompts.
3439
3440
3440 Also removed global use of sys.ps1/2, which now allows nested
3441 Also removed global use of sys.ps1/2, which now allows nested
3441 embeddings without any problems. Added command-line options for
3442 embeddings without any problems. Added command-line options for
3442 the prompt strings.
3443 the prompt strings.
3443
3444
3444 2002-03-08 Fernando Perez <fperez@colorado.edu>
3445 2002-03-08 Fernando Perez <fperez@colorado.edu>
3445
3446
3446 * IPython/UserConfig/example-embed-short.py (ipshell): added
3447 * IPython/UserConfig/example-embed-short.py (ipshell): added
3447 example file with the bare minimum code for embedding.
3448 example file with the bare minimum code for embedding.
3448
3449
3449 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3450 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3450 functionality for the embeddable shell to be activated/deactivated
3451 functionality for the embeddable shell to be activated/deactivated
3451 either globally or at each call.
3452 either globally or at each call.
3452
3453
3453 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3454 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3454 rewriting the prompt with '--->' for auto-inputs with proper
3455 rewriting the prompt with '--->' for auto-inputs with proper
3455 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3456 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3456 this is handled by the prompts class itself, as it should.
3457 this is handled by the prompts class itself, as it should.
3457
3458
3458 2002-03-05 Fernando Perez <fperez@colorado.edu>
3459 2002-03-05 Fernando Perez <fperez@colorado.edu>
3459
3460
3460 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3461 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3461 @logstart to avoid name clashes with the math log function.
3462 @logstart to avoid name clashes with the math log function.
3462
3463
3463 * Big updates to X/Emacs section of the manual.
3464 * Big updates to X/Emacs section of the manual.
3464
3465
3465 * Removed ipython_emacs. Milan explained to me how to pass
3466 * Removed ipython_emacs. Milan explained to me how to pass
3466 arguments to ipython through Emacs. Some day I'm going to end up
3467 arguments to ipython through Emacs. Some day I'm going to end up
3467 learning some lisp...
3468 learning some lisp...
3468
3469
3469 2002-03-04 Fernando Perez <fperez@colorado.edu>
3470 2002-03-04 Fernando Perez <fperez@colorado.edu>
3470
3471
3471 * IPython/ipython_emacs: Created script to be used as the
3472 * IPython/ipython_emacs: Created script to be used as the
3472 py-python-command Emacs variable so we can pass IPython
3473 py-python-command Emacs variable so we can pass IPython
3473 parameters. I can't figure out how to tell Emacs directly to pass
3474 parameters. I can't figure out how to tell Emacs directly to pass
3474 parameters to IPython, so a dummy shell script will do it.
3475 parameters to IPython, so a dummy shell script will do it.
3475
3476
3476 Other enhancements made for things to work better under Emacs'
3477 Other enhancements made for things to work better under Emacs'
3477 various types of terminals. Many thanks to Milan Zamazal
3478 various types of terminals. Many thanks to Milan Zamazal
3478 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3479 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3479
3480
3480 2002-03-01 Fernando Perez <fperez@colorado.edu>
3481 2002-03-01 Fernando Perez <fperez@colorado.edu>
3481
3482
3482 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3483 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3483 that loading of readline is now optional. This gives better
3484 that loading of readline is now optional. This gives better
3484 control to emacs users.
3485 control to emacs users.
3485
3486
3486 * IPython/ultraTB.py (__date__): Modified color escape sequences
3487 * IPython/ultraTB.py (__date__): Modified color escape sequences
3487 and now things work fine under xterm and in Emacs' term buffers
3488 and now things work fine under xterm and in Emacs' term buffers
3488 (though not shell ones). Well, in emacs you get colors, but all
3489 (though not shell ones). Well, in emacs you get colors, but all
3489 seem to be 'light' colors (no difference between dark and light
3490 seem to be 'light' colors (no difference between dark and light
3490 ones). But the garbage chars are gone, and also in xterms. It
3491 ones). But the garbage chars are gone, and also in xterms. It
3491 seems that now I'm using 'cleaner' ansi sequences.
3492 seems that now I'm using 'cleaner' ansi sequences.
3492
3493
3493 2002-02-21 Fernando Perez <fperez@colorado.edu>
3494 2002-02-21 Fernando Perez <fperez@colorado.edu>
3494
3495
3495 * Released 0.2.7 (mainly to publish the scoping fix).
3496 * Released 0.2.7 (mainly to publish the scoping fix).
3496
3497
3497 * IPython/Logger.py (Logger.logstate): added. A corresponding
3498 * IPython/Logger.py (Logger.logstate): added. A corresponding
3498 @logstate magic was created.
3499 @logstate magic was created.
3499
3500
3500 * IPython/Magic.py: fixed nested scoping problem under Python
3501 * IPython/Magic.py: fixed nested scoping problem under Python
3501 2.1.x (automagic wasn't working).
3502 2.1.x (automagic wasn't working).
3502
3503
3503 2002-02-20 Fernando Perez <fperez@colorado.edu>
3504 2002-02-20 Fernando Perez <fperez@colorado.edu>
3504
3505
3505 * Released 0.2.6.
3506 * Released 0.2.6.
3506
3507
3507 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3508 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3508 option so that logs can come out without any headers at all.
3509 option so that logs can come out without any headers at all.
3509
3510
3510 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3511 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3511 SciPy.
3512 SciPy.
3512
3513
3513 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3514 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3514 that embedded IPython calls don't require vars() to be explicitly
3515 that embedded IPython calls don't require vars() to be explicitly
3515 passed. Now they are extracted from the caller's frame (code
3516 passed. Now they are extracted from the caller's frame (code
3516 snatched from Eric Jones' weave). Added better documentation to
3517 snatched from Eric Jones' weave). Added better documentation to
3517 the section on embedding and the example file.
3518 the section on embedding and the example file.
3518
3519
3519 * IPython/genutils.py (page): Changed so that under emacs, it just
3520 * IPython/genutils.py (page): Changed so that under emacs, it just
3520 prints the string. You can then page up and down in the emacs
3521 prints the string. You can then page up and down in the emacs
3521 buffer itself. This is how the builtin help() works.
3522 buffer itself. This is how the builtin help() works.
3522
3523
3523 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3524 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3524 macro scoping: macros need to be executed in the user's namespace
3525 macro scoping: macros need to be executed in the user's namespace
3525 to work as if they had been typed by the user.
3526 to work as if they had been typed by the user.
3526
3527
3527 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3528 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3528 execute automatically (no need to type 'exec...'). They then
3529 execute automatically (no need to type 'exec...'). They then
3529 behave like 'true macros'. The printing system was also modified
3530 behave like 'true macros'. The printing system was also modified
3530 for this to work.
3531 for this to work.
3531
3532
3532 2002-02-19 Fernando Perez <fperez@colorado.edu>
3533 2002-02-19 Fernando Perez <fperez@colorado.edu>
3533
3534
3534 * IPython/genutils.py (page_file): new function for paging files
3535 * IPython/genutils.py (page_file): new function for paging files
3535 in an OS-independent way. Also necessary for file viewing to work
3536 in an OS-independent way. Also necessary for file viewing to work
3536 well inside Emacs buffers.
3537 well inside Emacs buffers.
3537 (page): Added checks for being in an emacs buffer.
3538 (page): Added checks for being in an emacs buffer.
3538 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3539 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3539 same bug in iplib.
3540 same bug in iplib.
3540
3541
3541 2002-02-18 Fernando Perez <fperez@colorado.edu>
3542 2002-02-18 Fernando Perez <fperez@colorado.edu>
3542
3543
3543 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3544 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3544 of readline so that IPython can work inside an Emacs buffer.
3545 of readline so that IPython can work inside an Emacs buffer.
3545
3546
3546 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3547 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3547 method signatures (they weren't really bugs, but it looks cleaner
3548 method signatures (they weren't really bugs, but it looks cleaner
3548 and keeps PyChecker happy).
3549 and keeps PyChecker happy).
3549
3550
3550 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3551 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3551 for implementing various user-defined hooks. Currently only
3552 for implementing various user-defined hooks. Currently only
3552 display is done.
3553 display is done.
3553
3554
3554 * IPython/Prompts.py (CachedOutput._display): changed display
3555 * IPython/Prompts.py (CachedOutput._display): changed display
3555 functions so that they can be dynamically changed by users easily.
3556 functions so that they can be dynamically changed by users easily.
3556
3557
3557 * IPython/Extensions/numeric_formats.py (num_display): added an
3558 * IPython/Extensions/numeric_formats.py (num_display): added an
3558 extension for printing NumPy arrays in flexible manners. It
3559 extension for printing NumPy arrays in flexible manners. It
3559 doesn't do anything yet, but all the structure is in
3560 doesn't do anything yet, but all the structure is in
3560 place. Ultimately the plan is to implement output format control
3561 place. Ultimately the plan is to implement output format control
3561 like in Octave.
3562 like in Octave.
3562
3563
3563 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3564 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3564 methods are found at run-time by all the automatic machinery.
3565 methods are found at run-time by all the automatic machinery.
3565
3566
3566 2002-02-17 Fernando Perez <fperez@colorado.edu>
3567 2002-02-17 Fernando Perez <fperez@colorado.edu>
3567
3568
3568 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3569 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3569 whole file a little.
3570 whole file a little.
3570
3571
3571 * ToDo: closed this document. Now there's a new_design.lyx
3572 * ToDo: closed this document. Now there's a new_design.lyx
3572 document for all new ideas. Added making a pdf of it for the
3573 document for all new ideas. Added making a pdf of it for the
3573 end-user distro.
3574 end-user distro.
3574
3575
3575 * IPython/Logger.py (Logger.switch_log): Created this to replace
3576 * IPython/Logger.py (Logger.switch_log): Created this to replace
3576 logon() and logoff(). It also fixes a nasty crash reported by
3577 logon() and logoff(). It also fixes a nasty crash reported by
3577 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3578 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3578
3579
3579 * IPython/iplib.py (complete): got auto-completion to work with
3580 * IPython/iplib.py (complete): got auto-completion to work with
3580 automagic (I had wanted this for a long time).
3581 automagic (I had wanted this for a long time).
3581
3582
3582 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3583 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3583 to @file, since file() is now a builtin and clashes with automagic
3584 to @file, since file() is now a builtin and clashes with automagic
3584 for @file.
3585 for @file.
3585
3586
3586 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3587 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3587 of this was previously in iplib, which had grown to more than 2000
3588 of this was previously in iplib, which had grown to more than 2000
3588 lines, way too long. No new functionality, but it makes managing
3589 lines, way too long. No new functionality, but it makes managing
3589 the code a bit easier.
3590 the code a bit easier.
3590
3591
3591 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3592 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3592 information to crash reports.
3593 information to crash reports.
3593
3594
3594 2002-02-12 Fernando Perez <fperez@colorado.edu>
3595 2002-02-12 Fernando Perez <fperez@colorado.edu>
3595
3596
3596 * Released 0.2.5.
3597 * Released 0.2.5.
3597
3598
3598 2002-02-11 Fernando Perez <fperez@colorado.edu>
3599 2002-02-11 Fernando Perez <fperez@colorado.edu>
3599
3600
3600 * Wrote a relatively complete Windows installer. It puts
3601 * Wrote a relatively complete Windows installer. It puts
3601 everything in place, creates Start Menu entries and fixes the
3602 everything in place, creates Start Menu entries and fixes the
3602 color issues. Nothing fancy, but it works.
3603 color issues. Nothing fancy, but it works.
3603
3604
3604 2002-02-10 Fernando Perez <fperez@colorado.edu>
3605 2002-02-10 Fernando Perez <fperez@colorado.edu>
3605
3606
3606 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3607 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3607 os.path.expanduser() call so that we can type @run ~/myfile.py and
3608 os.path.expanduser() call so that we can type @run ~/myfile.py and
3608 have thigs work as expected.
3609 have thigs work as expected.
3609
3610
3610 * IPython/genutils.py (page): fixed exception handling so things
3611 * IPython/genutils.py (page): fixed exception handling so things
3611 work both in Unix and Windows correctly. Quitting a pager triggers
3612 work both in Unix and Windows correctly. Quitting a pager triggers
3612 an IOError/broken pipe in Unix, and in windows not finding a pager
3613 an IOError/broken pipe in Unix, and in windows not finding a pager
3613 is also an IOError, so I had to actually look at the return value
3614 is also an IOError, so I had to actually look at the return value
3614 of the exception, not just the exception itself. Should be ok now.
3615 of the exception, not just the exception itself. Should be ok now.
3615
3616
3616 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3617 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3617 modified to allow case-insensitive color scheme changes.
3618 modified to allow case-insensitive color scheme changes.
3618
3619
3619 2002-02-09 Fernando Perez <fperez@colorado.edu>
3620 2002-02-09 Fernando Perez <fperez@colorado.edu>
3620
3621
3621 * IPython/genutils.py (native_line_ends): new function to leave
3622 * IPython/genutils.py (native_line_ends): new function to leave
3622 user config files with os-native line-endings.
3623 user config files with os-native line-endings.
3623
3624
3624 * README and manual updates.
3625 * README and manual updates.
3625
3626
3626 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3627 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3627 instead of StringType to catch Unicode strings.
3628 instead of StringType to catch Unicode strings.
3628
3629
3629 * IPython/genutils.py (filefind): fixed bug for paths with
3630 * IPython/genutils.py (filefind): fixed bug for paths with
3630 embedded spaces (very common in Windows).
3631 embedded spaces (very common in Windows).
3631
3632
3632 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3633 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3633 files under Windows, so that they get automatically associated
3634 files under Windows, so that they get automatically associated
3634 with a text editor. Windows makes it a pain to handle
3635 with a text editor. Windows makes it a pain to handle
3635 extension-less files.
3636 extension-less files.
3636
3637
3637 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3638 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3638 warning about readline only occur for Posix. In Windows there's no
3639 warning about readline only occur for Posix. In Windows there's no
3639 way to get readline, so why bother with the warning.
3640 way to get readline, so why bother with the warning.
3640
3641
3641 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3642 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3642 for __str__ instead of dir(self), since dir() changed in 2.2.
3643 for __str__ instead of dir(self), since dir() changed in 2.2.
3643
3644
3644 * Ported to Windows! Tested on XP, I suspect it should work fine
3645 * Ported to Windows! Tested on XP, I suspect it should work fine
3645 on NT/2000, but I don't think it will work on 98 et al. That
3646 on NT/2000, but I don't think it will work on 98 et al. That
3646 series of Windows is such a piece of junk anyway that I won't try
3647 series of Windows is such a piece of junk anyway that I won't try
3647 porting it there. The XP port was straightforward, showed a few
3648 porting it there. The XP port was straightforward, showed a few
3648 bugs here and there (fixed all), in particular some string
3649 bugs here and there (fixed all), in particular some string
3649 handling stuff which required considering Unicode strings (which
3650 handling stuff which required considering Unicode strings (which
3650 Windows uses). This is good, but hasn't been too tested :) No
3651 Windows uses). This is good, but hasn't been too tested :) No
3651 fancy installer yet, I'll put a note in the manual so people at
3652 fancy installer yet, I'll put a note in the manual so people at
3652 least make manually a shortcut.
3653 least make manually a shortcut.
3653
3654
3654 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3655 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3655 into a single one, "colors". This now controls both prompt and
3656 into a single one, "colors". This now controls both prompt and
3656 exception color schemes, and can be changed both at startup
3657 exception color schemes, and can be changed both at startup
3657 (either via command-line switches or via ipythonrc files) and at
3658 (either via command-line switches or via ipythonrc files) and at
3658 runtime, with @colors.
3659 runtime, with @colors.
3659 (Magic.magic_run): renamed @prun to @run and removed the old
3660 (Magic.magic_run): renamed @prun to @run and removed the old
3660 @run. The two were too similar to warrant keeping both.
3661 @run. The two were too similar to warrant keeping both.
3661
3662
3662 2002-02-03 Fernando Perez <fperez@colorado.edu>
3663 2002-02-03 Fernando Perez <fperez@colorado.edu>
3663
3664
3664 * IPython/iplib.py (install_first_time): Added comment on how to
3665 * IPython/iplib.py (install_first_time): Added comment on how to
3665 configure the color options for first-time users. Put a <return>
3666 configure the color options for first-time users. Put a <return>
3666 request at the end so that small-terminal users get a chance to
3667 request at the end so that small-terminal users get a chance to
3667 read the startup info.
3668 read the startup info.
3668
3669
3669 2002-01-23 Fernando Perez <fperez@colorado.edu>
3670 2002-01-23 Fernando Perez <fperez@colorado.edu>
3670
3671
3671 * IPython/iplib.py (CachedOutput.update): Changed output memory
3672 * IPython/iplib.py (CachedOutput.update): Changed output memory
3672 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3673 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3673 input history we still use _i. Did this b/c these variable are
3674 input history we still use _i. Did this b/c these variable are
3674 very commonly used in interactive work, so the less we need to
3675 very commonly used in interactive work, so the less we need to
3675 type the better off we are.
3676 type the better off we are.
3676 (Magic.magic_prun): updated @prun to better handle the namespaces
3677 (Magic.magic_prun): updated @prun to better handle the namespaces
3677 the file will run in, including a fix for __name__ not being set
3678 the file will run in, including a fix for __name__ not being set
3678 before.
3679 before.
3679
3680
3680 2002-01-20 Fernando Perez <fperez@colorado.edu>
3681 2002-01-20 Fernando Perez <fperez@colorado.edu>
3681
3682
3682 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3683 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3683 extra garbage for Python 2.2. Need to look more carefully into
3684 extra garbage for Python 2.2. Need to look more carefully into
3684 this later.
3685 this later.
3685
3686
3686 2002-01-19 Fernando Perez <fperez@colorado.edu>
3687 2002-01-19 Fernando Perez <fperez@colorado.edu>
3687
3688
3688 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3689 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3689 display SyntaxError exceptions properly formatted when they occur
3690 display SyntaxError exceptions properly formatted when they occur
3690 (they can be triggered by imported code).
3691 (they can be triggered by imported code).
3691
3692
3692 2002-01-18 Fernando Perez <fperez@colorado.edu>
3693 2002-01-18 Fernando Perez <fperez@colorado.edu>
3693
3694
3694 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3695 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3695 SyntaxError exceptions are reported nicely formatted, instead of
3696 SyntaxError exceptions are reported nicely formatted, instead of
3696 spitting out only offset information as before.
3697 spitting out only offset information as before.
3697 (Magic.magic_prun): Added the @prun function for executing
3698 (Magic.magic_prun): Added the @prun function for executing
3698 programs with command line args inside IPython.
3699 programs with command line args inside IPython.
3699
3700
3700 2002-01-16 Fernando Perez <fperez@colorado.edu>
3701 2002-01-16 Fernando Perez <fperez@colorado.edu>
3701
3702
3702 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3703 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3703 to *not* include the last item given in a range. This brings their
3704 to *not* include the last item given in a range. This brings their
3704 behavior in line with Python's slicing:
3705 behavior in line with Python's slicing:
3705 a[n1:n2] -> a[n1]...a[n2-1]
3706 a[n1:n2] -> a[n1]...a[n2-1]
3706 It may be a bit less convenient, but I prefer to stick to Python's
3707 It may be a bit less convenient, but I prefer to stick to Python's
3707 conventions *everywhere*, so users never have to wonder.
3708 conventions *everywhere*, so users never have to wonder.
3708 (Magic.magic_macro): Added @macro function to ease the creation of
3709 (Magic.magic_macro): Added @macro function to ease the creation of
3709 macros.
3710 macros.
3710
3711
3711 2002-01-05 Fernando Perez <fperez@colorado.edu>
3712 2002-01-05 Fernando Perez <fperez@colorado.edu>
3712
3713
3713 * Released 0.2.4.
3714 * Released 0.2.4.
3714
3715
3715 * IPython/iplib.py (Magic.magic_pdef):
3716 * IPython/iplib.py (Magic.magic_pdef):
3716 (InteractiveShell.safe_execfile): report magic lines and error
3717 (InteractiveShell.safe_execfile): report magic lines and error
3717 lines without line numbers so one can easily copy/paste them for
3718 lines without line numbers so one can easily copy/paste them for
3718 re-execution.
3719 re-execution.
3719
3720
3720 * Updated manual with recent changes.
3721 * Updated manual with recent changes.
3721
3722
3722 * IPython/iplib.py (Magic.magic_oinfo): added constructor
3723 * IPython/iplib.py (Magic.magic_oinfo): added constructor
3723 docstring printing when class? is called. Very handy for knowing
3724 docstring printing when class? is called. Very handy for knowing
3724 how to create class instances (as long as __init__ is well
3725 how to create class instances (as long as __init__ is well
3725 documented, of course :)
3726 documented, of course :)
3726 (Magic.magic_doc): print both class and constructor docstrings.
3727 (Magic.magic_doc): print both class and constructor docstrings.
3727 (Magic.magic_pdef): give constructor info if passed a class and
3728 (Magic.magic_pdef): give constructor info if passed a class and
3728 __call__ info for callable object instances.
3729 __call__ info for callable object instances.
3729
3730
3730 2002-01-04 Fernando Perez <fperez@colorado.edu>
3731 2002-01-04 Fernando Perez <fperez@colorado.edu>
3731
3732
3732 * Made deep_reload() off by default. It doesn't always work
3733 * Made deep_reload() off by default. It doesn't always work
3733 exactly as intended, so it's probably safer to have it off. It's
3734 exactly as intended, so it's probably safer to have it off. It's
3734 still available as dreload() anyway, so nothing is lost.
3735 still available as dreload() anyway, so nothing is lost.
3735
3736
3736 2002-01-02 Fernando Perez <fperez@colorado.edu>
3737 2002-01-02 Fernando Perez <fperez@colorado.edu>
3737
3738
3738 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
3739 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
3739 so I wanted an updated release).
3740 so I wanted an updated release).
3740
3741
3741 2001-12-27 Fernando Perez <fperez@colorado.edu>
3742 2001-12-27 Fernando Perez <fperez@colorado.edu>
3742
3743
3743 * IPython/iplib.py (InteractiveShell.interact): Added the original
3744 * IPython/iplib.py (InteractiveShell.interact): Added the original
3744 code from 'code.py' for this module in order to change the
3745 code from 'code.py' for this module in order to change the
3745 handling of a KeyboardInterrupt. This was necessary b/c otherwise
3746 handling of a KeyboardInterrupt. This was necessary b/c otherwise
3746 the history cache would break when the user hit Ctrl-C, and
3747 the history cache would break when the user hit Ctrl-C, and
3747 interact() offers no way to add any hooks to it.
3748 interact() offers no way to add any hooks to it.
3748
3749
3749 2001-12-23 Fernando Perez <fperez@colorado.edu>
3750 2001-12-23 Fernando Perez <fperez@colorado.edu>
3750
3751
3751 * setup.py: added check for 'MANIFEST' before trying to remove
3752 * setup.py: added check for 'MANIFEST' before trying to remove
3752 it. Thanks to Sean Reifschneider.
3753 it. Thanks to Sean Reifschneider.
3753
3754
3754 2001-12-22 Fernando Perez <fperez@colorado.edu>
3755 2001-12-22 Fernando Perez <fperez@colorado.edu>
3755
3756
3756 * Released 0.2.2.
3757 * Released 0.2.2.
3757
3758
3758 * Finished (reasonably) writing the manual. Later will add the
3759 * Finished (reasonably) writing the manual. Later will add the
3759 python-standard navigation stylesheets, but for the time being
3760 python-standard navigation stylesheets, but for the time being
3760 it's fairly complete. Distribution will include html and pdf
3761 it's fairly complete. Distribution will include html and pdf
3761 versions.
3762 versions.
3762
3763
3763 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
3764 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
3764 (MayaVi author).
3765 (MayaVi author).
3765
3766
3766 2001-12-21 Fernando Perez <fperez@colorado.edu>
3767 2001-12-21 Fernando Perez <fperez@colorado.edu>
3767
3768
3768 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
3769 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
3769 good public release, I think (with the manual and the distutils
3770 good public release, I think (with the manual and the distutils
3770 installer). The manual can use some work, but that can go
3771 installer). The manual can use some work, but that can go
3771 slowly. Otherwise I think it's quite nice for end users. Next
3772 slowly. Otherwise I think it's quite nice for end users. Next
3772 summer, rewrite the guts of it...
3773 summer, rewrite the guts of it...
3773
3774
3774 * Changed format of ipythonrc files to use whitespace as the
3775 * Changed format of ipythonrc files to use whitespace as the
3775 separator instead of an explicit '='. Cleaner.
3776 separator instead of an explicit '='. Cleaner.
3776
3777
3777 2001-12-20 Fernando Perez <fperez@colorado.edu>
3778 2001-12-20 Fernando Perez <fperez@colorado.edu>
3778
3779
3779 * Started a manual in LyX. For now it's just a quick merge of the
3780 * Started a manual in LyX. For now it's just a quick merge of the
3780 various internal docstrings and READMEs. Later it may grow into a
3781 various internal docstrings and READMEs. Later it may grow into a
3781 nice, full-blown manual.
3782 nice, full-blown manual.
3782
3783
3783 * Set up a distutils based installer. Installation should now be
3784 * Set up a distutils based installer. Installation should now be
3784 trivially simple for end-users.
3785 trivially simple for end-users.
3785
3786
3786 2001-12-11 Fernando Perez <fperez@colorado.edu>
3787 2001-12-11 Fernando Perez <fperez@colorado.edu>
3787
3788
3788 * Released 0.2.0. First public release, announced it at
3789 * Released 0.2.0. First public release, announced it at
3789 comp.lang.python. From now on, just bugfixes...
3790 comp.lang.python. From now on, just bugfixes...
3790
3791
3791 * Went through all the files, set copyright/license notices and
3792 * Went through all the files, set copyright/license notices and
3792 cleaned up things. Ready for release.
3793 cleaned up things. Ready for release.
3793
3794
3794 2001-12-10 Fernando Perez <fperez@colorado.edu>
3795 2001-12-10 Fernando Perez <fperez@colorado.edu>
3795
3796
3796 * Changed the first-time installer not to use tarfiles. It's more
3797 * Changed the first-time installer not to use tarfiles. It's more
3797 robust now and less unix-dependent. Also makes it easier for
3798 robust now and less unix-dependent. Also makes it easier for
3798 people to later upgrade versions.
3799 people to later upgrade versions.
3799
3800
3800 * Changed @exit to @abort to reflect the fact that it's pretty
3801 * Changed @exit to @abort to reflect the fact that it's pretty
3801 brutal (a sys.exit()). The difference between @abort and Ctrl-D
3802 brutal (a sys.exit()). The difference between @abort and Ctrl-D
3802 becomes significant only when IPyhton is embedded: in that case,
3803 becomes significant only when IPyhton is embedded: in that case,
3803 C-D closes IPython only, but @abort kills the enclosing program
3804 C-D closes IPython only, but @abort kills the enclosing program
3804 too (unless it had called IPython inside a try catching
3805 too (unless it had called IPython inside a try catching
3805 SystemExit).
3806 SystemExit).
3806
3807
3807 * Created Shell module which exposes the actuall IPython Shell
3808 * Created Shell module which exposes the actuall IPython Shell
3808 classes, currently the normal and the embeddable one. This at
3809 classes, currently the normal and the embeddable one. This at
3809 least offers a stable interface we won't need to change when
3810 least offers a stable interface we won't need to change when
3810 (later) the internals are rewritten. That rewrite will be confined
3811 (later) the internals are rewritten. That rewrite will be confined
3811 to iplib and ipmaker, but the Shell interface should remain as is.
3812 to iplib and ipmaker, but the Shell interface should remain as is.
3812
3813
3813 * Added embed module which offers an embeddable IPShell object,
3814 * Added embed module which offers an embeddable IPShell object,
3814 useful to fire up IPython *inside* a running program. Great for
3815 useful to fire up IPython *inside* a running program. Great for
3815 debugging or dynamical data analysis.
3816 debugging or dynamical data analysis.
3816
3817
3817 2001-12-08 Fernando Perez <fperez@colorado.edu>
3818 2001-12-08 Fernando Perez <fperez@colorado.edu>
3818
3819
3819 * Fixed small bug preventing seeing info from methods of defined
3820 * Fixed small bug preventing seeing info from methods of defined
3820 objects (incorrect namespace in _ofind()).
3821 objects (incorrect namespace in _ofind()).
3821
3822
3822 * Documentation cleanup. Moved the main usage docstrings to a
3823 * Documentation cleanup. Moved the main usage docstrings to a
3823 separate file, usage.py (cleaner to maintain, and hopefully in the
3824 separate file, usage.py (cleaner to maintain, and hopefully in the
3824 future some perlpod-like way of producing interactive, man and
3825 future some perlpod-like way of producing interactive, man and
3825 html docs out of it will be found).
3826 html docs out of it will be found).
3826
3827
3827 * Added @profile to see your profile at any time.
3828 * Added @profile to see your profile at any time.
3828
3829
3829 * Added @p as an alias for 'print'. It's especially convenient if
3830 * Added @p as an alias for 'print'. It's especially convenient if
3830 using automagic ('p x' prints x).
3831 using automagic ('p x' prints x).
3831
3832
3832 * Small cleanups and fixes after a pychecker run.
3833 * Small cleanups and fixes after a pychecker run.
3833
3834
3834 * Changed the @cd command to handle @cd - and @cd -<n> for
3835 * Changed the @cd command to handle @cd - and @cd -<n> for
3835 visiting any directory in _dh.
3836 visiting any directory in _dh.
3836
3837
3837 * Introduced _dh, a history of visited directories. @dhist prints
3838 * Introduced _dh, a history of visited directories. @dhist prints
3838 it out with numbers.
3839 it out with numbers.
3839
3840
3840 2001-12-07 Fernando Perez <fperez@colorado.edu>
3841 2001-12-07 Fernando Perez <fperez@colorado.edu>
3841
3842
3842 * Released 0.1.22
3843 * Released 0.1.22
3843
3844
3844 * Made initialization a bit more robust against invalid color
3845 * Made initialization a bit more robust against invalid color
3845 options in user input (exit, not traceback-crash).
3846 options in user input (exit, not traceback-crash).
3846
3847
3847 * Changed the bug crash reporter to write the report only in the
3848 * Changed the bug crash reporter to write the report only in the
3848 user's .ipython directory. That way IPython won't litter people's
3849 user's .ipython directory. That way IPython won't litter people's
3849 hard disks with crash files all over the place. Also print on
3850 hard disks with crash files all over the place. Also print on
3850 screen the necessary mail command.
3851 screen the necessary mail command.
3851
3852
3852 * With the new ultraTB, implemented LightBG color scheme for light
3853 * With the new ultraTB, implemented LightBG color scheme for light
3853 background terminals. A lot of people like white backgrounds, so I
3854 background terminals. A lot of people like white backgrounds, so I
3854 guess we should at least give them something readable.
3855 guess we should at least give them something readable.
3855
3856
3856 2001-12-06 Fernando Perez <fperez@colorado.edu>
3857 2001-12-06 Fernando Perez <fperez@colorado.edu>
3857
3858
3858 * Modified the structure of ultraTB. Now there's a proper class
3859 * Modified the structure of ultraTB. Now there's a proper class
3859 for tables of color schemes which allow adding schemes easily and
3860 for tables of color schemes which allow adding schemes easily and
3860 switching the active scheme without creating a new instance every
3861 switching the active scheme without creating a new instance every
3861 time (which was ridiculous). The syntax for creating new schemes
3862 time (which was ridiculous). The syntax for creating new schemes
3862 is also cleaner. I think ultraTB is finally done, with a clean
3863 is also cleaner. I think ultraTB is finally done, with a clean
3863 class structure. Names are also much cleaner (now there's proper
3864 class structure. Names are also much cleaner (now there's proper
3864 color tables, no need for every variable to also have 'color' in
3865 color tables, no need for every variable to also have 'color' in
3865 its name).
3866 its name).
3866
3867
3867 * Broke down genutils into separate files. Now genutils only
3868 * Broke down genutils into separate files. Now genutils only
3868 contains utility functions, and classes have been moved to their
3869 contains utility functions, and classes have been moved to their
3869 own files (they had enough independent functionality to warrant
3870 own files (they had enough independent functionality to warrant
3870 it): ConfigLoader, OutputTrap, Struct.
3871 it): ConfigLoader, OutputTrap, Struct.
3871
3872
3872 2001-12-05 Fernando Perez <fperez@colorado.edu>
3873 2001-12-05 Fernando Perez <fperez@colorado.edu>
3873
3874
3874 * IPython turns 21! Released version 0.1.21, as a candidate for
3875 * IPython turns 21! Released version 0.1.21, as a candidate for
3875 public consumption. If all goes well, release in a few days.
3876 public consumption. If all goes well, release in a few days.
3876
3877
3877 * Fixed path bug (files in Extensions/ directory wouldn't be found
3878 * Fixed path bug (files in Extensions/ directory wouldn't be found
3878 unless IPython/ was explicitly in sys.path).
3879 unless IPython/ was explicitly in sys.path).
3879
3880
3880 * Extended the FlexCompleter class as MagicCompleter to allow
3881 * Extended the FlexCompleter class as MagicCompleter to allow
3881 completion of @-starting lines.
3882 completion of @-starting lines.
3882
3883
3883 * Created __release__.py file as a central repository for release
3884 * Created __release__.py file as a central repository for release
3884 info that other files can read from.
3885 info that other files can read from.
3885
3886
3886 * Fixed small bug in logging: when logging was turned on in
3887 * Fixed small bug in logging: when logging was turned on in
3887 mid-session, old lines with special meanings (!@?) were being
3888 mid-session, old lines with special meanings (!@?) were being
3888 logged without the prepended comment, which is necessary since
3889 logged without the prepended comment, which is necessary since
3889 they are not truly valid python syntax. This should make session
3890 they are not truly valid python syntax. This should make session
3890 restores produce less errors.
3891 restores produce less errors.
3891
3892
3892 * The namespace cleanup forced me to make a FlexCompleter class
3893 * The namespace cleanup forced me to make a FlexCompleter class
3893 which is nothing but a ripoff of rlcompleter, but with selectable
3894 which is nothing but a ripoff of rlcompleter, but with selectable
3894 namespace (rlcompleter only works in __main__.__dict__). I'll try
3895 namespace (rlcompleter only works in __main__.__dict__). I'll try
3895 to submit a note to the authors to see if this change can be
3896 to submit a note to the authors to see if this change can be
3896 incorporated in future rlcompleter releases (Dec.6: done)
3897 incorporated in future rlcompleter releases (Dec.6: done)
3897
3898
3898 * More fixes to namespace handling. It was a mess! Now all
3899 * More fixes to namespace handling. It was a mess! Now all
3899 explicit references to __main__.__dict__ are gone (except when
3900 explicit references to __main__.__dict__ are gone (except when
3900 really needed) and everything is handled through the namespace
3901 really needed) and everything is handled through the namespace
3901 dicts in the IPython instance. We seem to be getting somewhere
3902 dicts in the IPython instance. We seem to be getting somewhere
3902 with this, finally...
3903 with this, finally...
3903
3904
3904 * Small documentation updates.
3905 * Small documentation updates.
3905
3906
3906 * Created the Extensions directory under IPython (with an
3907 * Created the Extensions directory under IPython (with an
3907 __init__.py). Put the PhysicalQ stuff there. This directory should
3908 __init__.py). Put the PhysicalQ stuff there. This directory should
3908 be used for all special-purpose extensions.
3909 be used for all special-purpose extensions.
3909
3910
3910 * File renaming:
3911 * File renaming:
3911 ipythonlib --> ipmaker
3912 ipythonlib --> ipmaker
3912 ipplib --> iplib
3913 ipplib --> iplib
3913 This makes a bit more sense in terms of what these files actually do.
3914 This makes a bit more sense in terms of what these files actually do.
3914
3915
3915 * Moved all the classes and functions in ipythonlib to ipplib, so
3916 * Moved all the classes and functions in ipythonlib to ipplib, so
3916 now ipythonlib only has make_IPython(). This will ease up its
3917 now ipythonlib only has make_IPython(). This will ease up its
3917 splitting in smaller functional chunks later.
3918 splitting in smaller functional chunks later.
3918
3919
3919 * Cleaned up (done, I think) output of @whos. Better column
3920 * Cleaned up (done, I think) output of @whos. Better column
3920 formatting, and now shows str(var) for as much as it can, which is
3921 formatting, and now shows str(var) for as much as it can, which is
3921 typically what one gets with a 'print var'.
3922 typically what one gets with a 'print var'.
3922
3923
3923 2001-12-04 Fernando Perez <fperez@colorado.edu>
3924 2001-12-04 Fernando Perez <fperez@colorado.edu>
3924
3925
3925 * Fixed namespace problems. Now builtin/IPyhton/user names get
3926 * Fixed namespace problems. Now builtin/IPyhton/user names get
3926 properly reported in their namespace. Internal namespace handling
3927 properly reported in their namespace. Internal namespace handling
3927 is finally getting decent (not perfect yet, but much better than
3928 is finally getting decent (not perfect yet, but much better than
3928 the ad-hoc mess we had).
3929 the ad-hoc mess we had).
3929
3930
3930 * Removed -exit option. If people just want to run a python
3931 * Removed -exit option. If people just want to run a python
3931 script, that's what the normal interpreter is for. Less
3932 script, that's what the normal interpreter is for. Less
3932 unnecessary options, less chances for bugs.
3933 unnecessary options, less chances for bugs.
3933
3934
3934 * Added a crash handler which generates a complete post-mortem if
3935 * Added a crash handler which generates a complete post-mortem if
3935 IPython crashes. This will help a lot in tracking bugs down the
3936 IPython crashes. This will help a lot in tracking bugs down the
3936 road.
3937 road.
3937
3938
3938 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
3939 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
3939 which were boud to functions being reassigned would bypass the
3940 which were boud to functions being reassigned would bypass the
3940 logger, breaking the sync of _il with the prompt counter. This
3941 logger, breaking the sync of _il with the prompt counter. This
3941 would then crash IPython later when a new line was logged.
3942 would then crash IPython later when a new line was logged.
3942
3943
3943 2001-12-02 Fernando Perez <fperez@colorado.edu>
3944 2001-12-02 Fernando Perez <fperez@colorado.edu>
3944
3945
3945 * Made IPython a package. This means people don't have to clutter
3946 * Made IPython a package. This means people don't have to clutter
3946 their sys.path with yet another directory. Changed the INSTALL
3947 their sys.path with yet another directory. Changed the INSTALL
3947 file accordingly.
3948 file accordingly.
3948
3949
3949 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
3950 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
3950 sorts its output (so @who shows it sorted) and @whos formats the
3951 sorts its output (so @who shows it sorted) and @whos formats the
3951 table according to the width of the first column. Nicer, easier to
3952 table according to the width of the first column. Nicer, easier to
3952 read. Todo: write a generic table_format() which takes a list of
3953 read. Todo: write a generic table_format() which takes a list of
3953 lists and prints it nicely formatted, with optional row/column
3954 lists and prints it nicely formatted, with optional row/column
3954 separators and proper padding and justification.
3955 separators and proper padding and justification.
3955
3956
3956 * Released 0.1.20
3957 * Released 0.1.20
3957
3958
3958 * Fixed bug in @log which would reverse the inputcache list (a
3959 * Fixed bug in @log which would reverse the inputcache list (a
3959 copy operation was missing).
3960 copy operation was missing).
3960
3961
3961 * Code cleanup. @config was changed to use page(). Better, since
3962 * Code cleanup. @config was changed to use page(). Better, since
3962 its output is always quite long.
3963 its output is always quite long.
3963
3964
3964 * Itpl is back as a dependency. I was having too many problems
3965 * Itpl is back as a dependency. I was having too many problems
3965 getting the parametric aliases to work reliably, and it's just
3966 getting the parametric aliases to work reliably, and it's just
3966 easier to code weird string operations with it than playing %()s
3967 easier to code weird string operations with it than playing %()s
3967 games. It's only ~6k, so I don't think it's too big a deal.
3968 games. It's only ~6k, so I don't think it's too big a deal.
3968
3969
3969 * Found (and fixed) a very nasty bug with history. !lines weren't
3970 * Found (and fixed) a very nasty bug with history. !lines weren't
3970 getting cached, and the out of sync caches would crash
3971 getting cached, and the out of sync caches would crash
3971 IPython. Fixed it by reorganizing the prefilter/handlers/logger
3972 IPython. Fixed it by reorganizing the prefilter/handlers/logger
3972 division of labor a bit better. Bug fixed, cleaner structure.
3973 division of labor a bit better. Bug fixed, cleaner structure.
3973
3974
3974 2001-12-01 Fernando Perez <fperez@colorado.edu>
3975 2001-12-01 Fernando Perez <fperez@colorado.edu>
3975
3976
3976 * Released 0.1.19
3977 * Released 0.1.19
3977
3978
3978 * Added option -n to @hist to prevent line number printing. Much
3979 * Added option -n to @hist to prevent line number printing. Much
3979 easier to copy/paste code this way.
3980 easier to copy/paste code this way.
3980
3981
3981 * Created global _il to hold the input list. Allows easy
3982 * Created global _il to hold the input list. Allows easy
3982 re-execution of blocks of code by slicing it (inspired by Janko's
3983 re-execution of blocks of code by slicing it (inspired by Janko's
3983 comment on 'macros').
3984 comment on 'macros').
3984
3985
3985 * Small fixes and doc updates.
3986 * Small fixes and doc updates.
3986
3987
3987 * Rewrote @history function (was @h). Renamed it to @hist, @h is
3988 * Rewrote @history function (was @h). Renamed it to @hist, @h is
3988 much too fragile with automagic. Handles properly multi-line
3989 much too fragile with automagic. Handles properly multi-line
3989 statements and takes parameters.
3990 statements and takes parameters.
3990
3991
3991 2001-11-30 Fernando Perez <fperez@colorado.edu>
3992 2001-11-30 Fernando Perez <fperez@colorado.edu>
3992
3993
3993 * Version 0.1.18 released.
3994 * Version 0.1.18 released.
3994
3995
3995 * Fixed nasty namespace bug in initial module imports.
3996 * Fixed nasty namespace bug in initial module imports.
3996
3997
3997 * Added copyright/license notes to all code files (except
3998 * Added copyright/license notes to all code files (except
3998 DPyGetOpt). For the time being, LGPL. That could change.
3999 DPyGetOpt). For the time being, LGPL. That could change.
3999
4000
4000 * Rewrote a much nicer README, updated INSTALL, cleaned up
4001 * Rewrote a much nicer README, updated INSTALL, cleaned up
4001 ipythonrc-* samples.
4002 ipythonrc-* samples.
4002
4003
4003 * Overall code/documentation cleanup. Basically ready for
4004 * Overall code/documentation cleanup. Basically ready for
4004 release. Only remaining thing: licence decision (LGPL?).
4005 release. Only remaining thing: licence decision (LGPL?).
4005
4006
4006 * Converted load_config to a class, ConfigLoader. Now recursion
4007 * Converted load_config to a class, ConfigLoader. Now recursion
4007 control is better organized. Doesn't include the same file twice.
4008 control is better organized. Doesn't include the same file twice.
4008
4009
4009 2001-11-29 Fernando Perez <fperez@colorado.edu>
4010 2001-11-29 Fernando Perez <fperez@colorado.edu>
4010
4011
4011 * Got input history working. Changed output history variables from
4012 * Got input history working. Changed output history variables from
4012 _p to _o so that _i is for input and _o for output. Just cleaner
4013 _p to _o so that _i is for input and _o for output. Just cleaner
4013 convention.
4014 convention.
4014
4015
4015 * Implemented parametric aliases. This pretty much allows the
4016 * Implemented parametric aliases. This pretty much allows the
4016 alias system to offer full-blown shell convenience, I think.
4017 alias system to offer full-blown shell convenience, I think.
4017
4018
4018 * Version 0.1.17 released, 0.1.18 opened.
4019 * Version 0.1.17 released, 0.1.18 opened.
4019
4020
4020 * dot_ipython/ipythonrc (alias): added documentation.
4021 * dot_ipython/ipythonrc (alias): added documentation.
4021 (xcolor): Fixed small bug (xcolors -> xcolor)
4022 (xcolor): Fixed small bug (xcolors -> xcolor)
4022
4023
4023 * Changed the alias system. Now alias is a magic command to define
4024 * Changed the alias system. Now alias is a magic command to define
4024 aliases just like the shell. Rationale: the builtin magics should
4025 aliases just like the shell. Rationale: the builtin magics should
4025 be there for things deeply connected to IPython's
4026 be there for things deeply connected to IPython's
4026 architecture. And this is a much lighter system for what I think
4027 architecture. And this is a much lighter system for what I think
4027 is the really important feature: allowing users to define quickly
4028 is the really important feature: allowing users to define quickly
4028 magics that will do shell things for them, so they can customize
4029 magics that will do shell things for them, so they can customize
4029 IPython easily to match their work habits. If someone is really
4030 IPython easily to match their work habits. If someone is really
4030 desperate to have another name for a builtin alias, they can
4031 desperate to have another name for a builtin alias, they can
4031 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4032 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4032 works.
4033 works.
4033
4034
4034 2001-11-28 Fernando Perez <fperez@colorado.edu>
4035 2001-11-28 Fernando Perez <fperez@colorado.edu>
4035
4036
4036 * Changed @file so that it opens the source file at the proper
4037 * Changed @file so that it opens the source file at the proper
4037 line. Since it uses less, if your EDITOR environment is
4038 line. Since it uses less, if your EDITOR environment is
4038 configured, typing v will immediately open your editor of choice
4039 configured, typing v will immediately open your editor of choice
4039 right at the line where the object is defined. Not as quick as
4040 right at the line where the object is defined. Not as quick as
4040 having a direct @edit command, but for all intents and purposes it
4041 having a direct @edit command, but for all intents and purposes it
4041 works. And I don't have to worry about writing @edit to deal with
4042 works. And I don't have to worry about writing @edit to deal with
4042 all the editors, less does that.
4043 all the editors, less does that.
4043
4044
4044 * Version 0.1.16 released, 0.1.17 opened.
4045 * Version 0.1.16 released, 0.1.17 opened.
4045
4046
4046 * Fixed some nasty bugs in the page/page_dumb combo that could
4047 * Fixed some nasty bugs in the page/page_dumb combo that could
4047 crash IPython.
4048 crash IPython.
4048
4049
4049 2001-11-27 Fernando Perez <fperez@colorado.edu>
4050 2001-11-27 Fernando Perez <fperez@colorado.edu>
4050
4051
4051 * Version 0.1.15 released, 0.1.16 opened.
4052 * Version 0.1.15 released, 0.1.16 opened.
4052
4053
4053 * Finally got ? and ?? to work for undefined things: now it's
4054 * Finally got ? and ?? to work for undefined things: now it's
4054 possible to type {}.get? and get information about the get method
4055 possible to type {}.get? and get information about the get method
4055 of dicts, or os.path? even if only os is defined (so technically
4056 of dicts, or os.path? even if only os is defined (so technically
4056 os.path isn't). Works at any level. For example, after import os,
4057 os.path isn't). Works at any level. For example, after import os,
4057 os?, os.path?, os.path.abspath? all work. This is great, took some
4058 os?, os.path?, os.path.abspath? all work. This is great, took some
4058 work in _ofind.
4059 work in _ofind.
4059
4060
4060 * Fixed more bugs with logging. The sanest way to do it was to add
4061 * Fixed more bugs with logging. The sanest way to do it was to add
4061 to @log a 'mode' parameter. Killed two in one shot (this mode
4062 to @log a 'mode' parameter. Killed two in one shot (this mode
4062 option was a request of Janko's). I think it's finally clean
4063 option was a request of Janko's). I think it's finally clean
4063 (famous last words).
4064 (famous last words).
4064
4065
4065 * Added a page_dumb() pager which does a decent job of paging on
4066 * Added a page_dumb() pager which does a decent job of paging on
4066 screen, if better things (like less) aren't available. One less
4067 screen, if better things (like less) aren't available. One less
4067 unix dependency (someday maybe somebody will port this to
4068 unix dependency (someday maybe somebody will port this to
4068 windows).
4069 windows).
4069
4070
4070 * Fixed problem in magic_log: would lock of logging out if log
4071 * Fixed problem in magic_log: would lock of logging out if log
4071 creation failed (because it would still think it had succeeded).
4072 creation failed (because it would still think it had succeeded).
4072
4073
4073 * Improved the page() function using curses to auto-detect screen
4074 * Improved the page() function using curses to auto-detect screen
4074 size. Now it can make a much better decision on whether to print
4075 size. Now it can make a much better decision on whether to print
4075 or page a string. Option screen_length was modified: a value 0
4076 or page a string. Option screen_length was modified: a value 0
4076 means auto-detect, and that's the default now.
4077 means auto-detect, and that's the default now.
4077
4078
4078 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4079 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
4079 go out. I'll test it for a few days, then talk to Janko about
4080 go out. I'll test it for a few days, then talk to Janko about
4080 licences and announce it.
4081 licences and announce it.
4081
4082
4082 * Fixed the length of the auto-generated ---> prompt which appears
4083 * Fixed the length of the auto-generated ---> prompt which appears
4083 for auto-parens and auto-quotes. Getting this right isn't trivial,
4084 for auto-parens and auto-quotes. Getting this right isn't trivial,
4084 with all the color escapes, different prompt types and optional
4085 with all the color escapes, different prompt types and optional
4085 separators. But it seems to be working in all the combinations.
4086 separators. But it seems to be working in all the combinations.
4086
4087
4087 2001-11-26 Fernando Perez <fperez@colorado.edu>
4088 2001-11-26 Fernando Perez <fperez@colorado.edu>
4088
4089
4089 * Wrote a regexp filter to get option types from the option names
4090 * Wrote a regexp filter to get option types from the option names
4090 string. This eliminates the need to manually keep two duplicate
4091 string. This eliminates the need to manually keep two duplicate
4091 lists.
4092 lists.
4092
4093
4093 * Removed the unneeded check_option_names. Now options are handled
4094 * Removed the unneeded check_option_names. Now options are handled
4094 in a much saner manner and it's easy to visually check that things
4095 in a much saner manner and it's easy to visually check that things
4095 are ok.
4096 are ok.
4096
4097
4097 * Updated version numbers on all files I modified to carry a
4098 * Updated version numbers on all files I modified to carry a
4098 notice so Janko and Nathan have clear version markers.
4099 notice so Janko and Nathan have clear version markers.
4099
4100
4100 * Updated docstring for ultraTB with my changes. I should send
4101 * Updated docstring for ultraTB with my changes. I should send
4101 this to Nathan.
4102 this to Nathan.
4102
4103
4103 * Lots of small fixes. Ran everything through pychecker again.
4104 * Lots of small fixes. Ran everything through pychecker again.
4104
4105
4105 * Made loading of deep_reload an cmd line option. If it's not too
4106 * Made loading of deep_reload an cmd line option. If it's not too
4106 kosher, now people can just disable it. With -nodeep_reload it's
4107 kosher, now people can just disable it. With -nodeep_reload it's
4107 still available as dreload(), it just won't overwrite reload().
4108 still available as dreload(), it just won't overwrite reload().
4108
4109
4109 * Moved many options to the no| form (-opt and -noopt
4110 * Moved many options to the no| form (-opt and -noopt
4110 accepted). Cleaner.
4111 accepted). Cleaner.
4111
4112
4112 * Changed magic_log so that if called with no parameters, it uses
4113 * Changed magic_log so that if called with no parameters, it uses
4113 'rotate' mode. That way auto-generated logs aren't automatically
4114 'rotate' mode. That way auto-generated logs aren't automatically
4114 over-written. For normal logs, now a backup is made if it exists
4115 over-written. For normal logs, now a backup is made if it exists
4115 (only 1 level of backups). A new 'backup' mode was added to the
4116 (only 1 level of backups). A new 'backup' mode was added to the
4116 Logger class to support this. This was a request by Janko.
4117 Logger class to support this. This was a request by Janko.
4117
4118
4118 * Added @logoff/@logon to stop/restart an active log.
4119 * Added @logoff/@logon to stop/restart an active log.
4119
4120
4120 * Fixed a lot of bugs in log saving/replay. It was pretty
4121 * Fixed a lot of bugs in log saving/replay. It was pretty
4121 broken. Now special lines (!@,/) appear properly in the command
4122 broken. Now special lines (!@,/) appear properly in the command
4122 history after a log replay.
4123 history after a log replay.
4123
4124
4124 * Tried and failed to implement full session saving via pickle. My
4125 * Tried and failed to implement full session saving via pickle. My
4125 idea was to pickle __main__.__dict__, but modules can't be
4126 idea was to pickle __main__.__dict__, but modules can't be
4126 pickled. This would be a better alternative to replaying logs, but
4127 pickled. This would be a better alternative to replaying logs, but
4127 seems quite tricky to get to work. Changed -session to be called
4128 seems quite tricky to get to work. Changed -session to be called
4128 -logplay, which more accurately reflects what it does. And if we
4129 -logplay, which more accurately reflects what it does. And if we
4129 ever get real session saving working, -session is now available.
4130 ever get real session saving working, -session is now available.
4130
4131
4131 * Implemented color schemes for prompts also. As for tracebacks,
4132 * Implemented color schemes for prompts also. As for tracebacks,
4132 currently only NoColor and Linux are supported. But now the
4133 currently only NoColor and Linux are supported. But now the
4133 infrastructure is in place, based on a generic ColorScheme
4134 infrastructure is in place, based on a generic ColorScheme
4134 class. So writing and activating new schemes both for the prompts
4135 class. So writing and activating new schemes both for the prompts
4135 and the tracebacks should be straightforward.
4136 and the tracebacks should be straightforward.
4136
4137
4137 * Version 0.1.13 released, 0.1.14 opened.
4138 * Version 0.1.13 released, 0.1.14 opened.
4138
4139
4139 * Changed handling of options for output cache. Now counter is
4140 * Changed handling of options for output cache. Now counter is
4140 hardwired starting at 1 and one specifies the maximum number of
4141 hardwired starting at 1 and one specifies the maximum number of
4141 entries *in the outcache* (not the max prompt counter). This is
4142 entries *in the outcache* (not the max prompt counter). This is
4142 much better, since many statements won't increase the cache
4143 much better, since many statements won't increase the cache
4143 count. It also eliminated some confusing options, now there's only
4144 count. It also eliminated some confusing options, now there's only
4144 one: cache_size.
4145 one: cache_size.
4145
4146
4146 * Added 'alias' magic function and magic_alias option in the
4147 * Added 'alias' magic function and magic_alias option in the
4147 ipythonrc file. Now the user can easily define whatever names he
4148 ipythonrc file. Now the user can easily define whatever names he
4148 wants for the magic functions without having to play weird
4149 wants for the magic functions without having to play weird
4149 namespace games. This gives IPython a real shell-like feel.
4150 namespace games. This gives IPython a real shell-like feel.
4150
4151
4151 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4152 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
4152 @ or not).
4153 @ or not).
4153
4154
4154 This was one of the last remaining 'visible' bugs (that I know
4155 This was one of the last remaining 'visible' bugs (that I know
4155 of). I think if I can clean up the session loading so it works
4156 of). I think if I can clean up the session loading so it works
4156 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4157 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4157 about licensing).
4158 about licensing).
4158
4159
4159 2001-11-25 Fernando Perez <fperez@colorado.edu>
4160 2001-11-25 Fernando Perez <fperez@colorado.edu>
4160
4161
4161 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4162 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4162 there's a cleaner distinction between what ? and ?? show.
4163 there's a cleaner distinction between what ? and ?? show.
4163
4164
4164 * Added screen_length option. Now the user can define his own
4165 * Added screen_length option. Now the user can define his own
4165 screen size for page() operations.
4166 screen size for page() operations.
4166
4167
4167 * Implemented magic shell-like functions with automatic code
4168 * Implemented magic shell-like functions with automatic code
4168 generation. Now adding another function is just a matter of adding
4169 generation. Now adding another function is just a matter of adding
4169 an entry to a dict, and the function is dynamically generated at
4170 an entry to a dict, and the function is dynamically generated at
4170 run-time. Python has some really cool features!
4171 run-time. Python has some really cool features!
4171
4172
4172 * Renamed many options to cleanup conventions a little. Now all
4173 * Renamed many options to cleanup conventions a little. Now all
4173 are lowercase, and only underscores where needed. Also in the code
4174 are lowercase, and only underscores where needed. Also in the code
4174 option name tables are clearer.
4175 option name tables are clearer.
4175
4176
4176 * Changed prompts a little. Now input is 'In [n]:' instead of
4177 * Changed prompts a little. Now input is 'In [n]:' instead of
4177 'In[n]:='. This allows it the numbers to be aligned with the
4178 'In[n]:='. This allows it the numbers to be aligned with the
4178 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4179 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4179 Python (it was a Mathematica thing). The '...' continuation prompt
4180 Python (it was a Mathematica thing). The '...' continuation prompt
4180 was also changed a little to align better.
4181 was also changed a little to align better.
4181
4182
4182 * Fixed bug when flushing output cache. Not all _p<n> variables
4183 * Fixed bug when flushing output cache. Not all _p<n> variables
4183 exist, so their deletion needs to be wrapped in a try:
4184 exist, so their deletion needs to be wrapped in a try:
4184
4185
4185 * Figured out how to properly use inspect.formatargspec() (it
4186 * Figured out how to properly use inspect.formatargspec() (it
4186 requires the args preceded by *). So I removed all the code from
4187 requires the args preceded by *). So I removed all the code from
4187 _get_pdef in Magic, which was just replicating that.
4188 _get_pdef in Magic, which was just replicating that.
4188
4189
4189 * Added test to prefilter to allow redefining magic function names
4190 * Added test to prefilter to allow redefining magic function names
4190 as variables. This is ok, since the @ form is always available,
4191 as variables. This is ok, since the @ form is always available,
4191 but whe should allow the user to define a variable called 'ls' if
4192 but whe should allow the user to define a variable called 'ls' if
4192 he needs it.
4193 he needs it.
4193
4194
4194 * Moved the ToDo information from README into a separate ToDo.
4195 * Moved the ToDo information from README into a separate ToDo.
4195
4196
4196 * General code cleanup and small bugfixes. I think it's close to a
4197 * General code cleanup and small bugfixes. I think it's close to a
4197 state where it can be released, obviously with a big 'beta'
4198 state where it can be released, obviously with a big 'beta'
4198 warning on it.
4199 warning on it.
4199
4200
4200 * Got the magic function split to work. Now all magics are defined
4201 * Got the magic function split to work. Now all magics are defined
4201 in a separate class. It just organizes things a bit, and now
4202 in a separate class. It just organizes things a bit, and now
4202 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4203 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4203 was too long).
4204 was too long).
4204
4205
4205 * Changed @clear to @reset to avoid potential confusions with
4206 * Changed @clear to @reset to avoid potential confusions with
4206 the shell command clear. Also renamed @cl to @clear, which does
4207 the shell command clear. Also renamed @cl to @clear, which does
4207 exactly what people expect it to from their shell experience.
4208 exactly what people expect it to from their shell experience.
4208
4209
4209 Added a check to the @reset command (since it's so
4210 Added a check to the @reset command (since it's so
4210 destructive, it's probably a good idea to ask for confirmation).
4211 destructive, it's probably a good idea to ask for confirmation).
4211 But now reset only works for full namespace resetting. Since the
4212 But now reset only works for full namespace resetting. Since the
4212 del keyword is already there for deleting a few specific
4213 del keyword is already there for deleting a few specific
4213 variables, I don't see the point of having a redundant magic
4214 variables, I don't see the point of having a redundant magic
4214 function for the same task.
4215 function for the same task.
4215
4216
4216 2001-11-24 Fernando Perez <fperez@colorado.edu>
4217 2001-11-24 Fernando Perez <fperez@colorado.edu>
4217
4218
4218 * Updated the builtin docs (esp. the ? ones).
4219 * Updated the builtin docs (esp. the ? ones).
4219
4220
4220 * Ran all the code through pychecker. Not terribly impressed with
4221 * Ran all the code through pychecker. Not terribly impressed with
4221 it: lots of spurious warnings and didn't really find anything of
4222 it: lots of spurious warnings and didn't really find anything of
4222 substance (just a few modules being imported and not used).
4223 substance (just a few modules being imported and not used).
4223
4224
4224 * Implemented the new ultraTB functionality into IPython. New
4225 * Implemented the new ultraTB functionality into IPython. New
4225 option: xcolors. This chooses color scheme. xmode now only selects
4226 option: xcolors. This chooses color scheme. xmode now only selects
4226 between Plain and Verbose. Better orthogonality.
4227 between Plain and Verbose. Better orthogonality.
4227
4228
4228 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4229 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4229 mode and color scheme for the exception handlers. Now it's
4230 mode and color scheme for the exception handlers. Now it's
4230 possible to have the verbose traceback with no coloring.
4231 possible to have the verbose traceback with no coloring.
4231
4232
4232 2001-11-23 Fernando Perez <fperez@colorado.edu>
4233 2001-11-23 Fernando Perez <fperez@colorado.edu>
4233
4234
4234 * Version 0.1.12 released, 0.1.13 opened.
4235 * Version 0.1.12 released, 0.1.13 opened.
4235
4236
4236 * Removed option to set auto-quote and auto-paren escapes by
4237 * Removed option to set auto-quote and auto-paren escapes by
4237 user. The chances of breaking valid syntax are just too high. If
4238 user. The chances of breaking valid syntax are just too high. If
4238 someone *really* wants, they can always dig into the code.
4239 someone *really* wants, they can always dig into the code.
4239
4240
4240 * Made prompt separators configurable.
4241 * Made prompt separators configurable.
4241
4242
4242 2001-11-22 Fernando Perez <fperez@colorado.edu>
4243 2001-11-22 Fernando Perez <fperez@colorado.edu>
4243
4244
4244 * Small bugfixes in many places.
4245 * Small bugfixes in many places.
4245
4246
4246 * Removed the MyCompleter class from ipplib. It seemed redundant
4247 * Removed the MyCompleter class from ipplib. It seemed redundant
4247 with the C-p,C-n history search functionality. Less code to
4248 with the C-p,C-n history search functionality. Less code to
4248 maintain.
4249 maintain.
4249
4250
4250 * Moved all the original ipython.py code into ipythonlib.py. Right
4251 * Moved all the original ipython.py code into ipythonlib.py. Right
4251 now it's just one big dump into a function called make_IPython, so
4252 now it's just one big dump into a function called make_IPython, so
4252 no real modularity has been gained. But at least it makes the
4253 no real modularity has been gained. But at least it makes the
4253 wrapper script tiny, and since ipythonlib is a module, it gets
4254 wrapper script tiny, and since ipythonlib is a module, it gets
4254 compiled and startup is much faster.
4255 compiled and startup is much faster.
4255
4256
4256 This is a reasobably 'deep' change, so we should test it for a
4257 This is a reasobably 'deep' change, so we should test it for a
4257 while without messing too much more with the code.
4258 while without messing too much more with the code.
4258
4259
4259 2001-11-21 Fernando Perez <fperez@colorado.edu>
4260 2001-11-21 Fernando Perez <fperez@colorado.edu>
4260
4261
4261 * Version 0.1.11 released, 0.1.12 opened for further work.
4262 * Version 0.1.11 released, 0.1.12 opened for further work.
4262
4263
4263 * Removed dependency on Itpl. It was only needed in one place. It
4264 * Removed dependency on Itpl. It was only needed in one place. It
4264 would be nice if this became part of python, though. It makes life
4265 would be nice if this became part of python, though. It makes life
4265 *a lot* easier in some cases.
4266 *a lot* easier in some cases.
4266
4267
4267 * Simplified the prefilter code a bit. Now all handlers are
4268 * Simplified the prefilter code a bit. Now all handlers are
4268 expected to explicitly return a value (at least a blank string).
4269 expected to explicitly return a value (at least a blank string).
4269
4270
4270 * Heavy edits in ipplib. Removed the help system altogether. Now
4271 * Heavy edits in ipplib. Removed the help system altogether. Now
4271 obj?/?? is used for inspecting objects, a magic @doc prints
4272 obj?/?? is used for inspecting objects, a magic @doc prints
4272 docstrings, and full-blown Python help is accessed via the 'help'
4273 docstrings, and full-blown Python help is accessed via the 'help'
4273 keyword. This cleans up a lot of code (less to maintain) and does
4274 keyword. This cleans up a lot of code (less to maintain) and does
4274 the job. Since 'help' is now a standard Python component, might as
4275 the job. Since 'help' is now a standard Python component, might as
4275 well use it and remove duplicate functionality.
4276 well use it and remove duplicate functionality.
4276
4277
4277 Also removed the option to use ipplib as a standalone program. By
4278 Also removed the option to use ipplib as a standalone program. By
4278 now it's too dependent on other parts of IPython to function alone.
4279 now it's too dependent on other parts of IPython to function alone.
4279
4280
4280 * Fixed bug in genutils.pager. It would crash if the pager was
4281 * Fixed bug in genutils.pager. It would crash if the pager was
4281 exited immediately after opening (broken pipe).
4282 exited immediately after opening (broken pipe).
4282
4283
4283 * Trimmed down the VerboseTB reporting a little. The header is
4284 * Trimmed down the VerboseTB reporting a little. The header is
4284 much shorter now and the repeated exception arguments at the end
4285 much shorter now and the repeated exception arguments at the end
4285 have been removed. For interactive use the old header seemed a bit
4286 have been removed. For interactive use the old header seemed a bit
4286 excessive.
4287 excessive.
4287
4288
4288 * Fixed small bug in output of @whos for variables with multi-word
4289 * Fixed small bug in output of @whos for variables with multi-word
4289 types (only first word was displayed).
4290 types (only first word was displayed).
4290
4291
4291 2001-11-17 Fernando Perez <fperez@colorado.edu>
4292 2001-11-17 Fernando Perez <fperez@colorado.edu>
4292
4293
4293 * Version 0.1.10 released, 0.1.11 opened for further work.
4294 * Version 0.1.10 released, 0.1.11 opened for further work.
4294
4295
4295 * Modified dirs and friends. dirs now *returns* the stack (not
4296 * Modified dirs and friends. dirs now *returns* the stack (not
4296 prints), so one can manipulate it as a variable. Convenient to
4297 prints), so one can manipulate it as a variable. Convenient to
4297 travel along many directories.
4298 travel along many directories.
4298
4299
4299 * Fixed bug in magic_pdef: would only work with functions with
4300 * Fixed bug in magic_pdef: would only work with functions with
4300 arguments with default values.
4301 arguments with default values.
4301
4302
4302 2001-11-14 Fernando Perez <fperez@colorado.edu>
4303 2001-11-14 Fernando Perez <fperez@colorado.edu>
4303
4304
4304 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4305 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4305 example with IPython. Various other minor fixes and cleanups.
4306 example with IPython. Various other minor fixes and cleanups.
4306
4307
4307 * Version 0.1.9 released, 0.1.10 opened for further work.
4308 * Version 0.1.9 released, 0.1.10 opened for further work.
4308
4309
4309 * Added sys.path to the list of directories searched in the
4310 * Added sys.path to the list of directories searched in the
4310 execfile= option. It used to be the current directory and the
4311 execfile= option. It used to be the current directory and the
4311 user's IPYTHONDIR only.
4312 user's IPYTHONDIR only.
4312
4313
4313 2001-11-13 Fernando Perez <fperez@colorado.edu>
4314 2001-11-13 Fernando Perez <fperez@colorado.edu>
4314
4315
4315 * Reinstated the raw_input/prefilter separation that Janko had
4316 * Reinstated the raw_input/prefilter separation that Janko had
4316 initially. This gives a more convenient setup for extending the
4317 initially. This gives a more convenient setup for extending the
4317 pre-processor from the outside: raw_input always gets a string,
4318 pre-processor from the outside: raw_input always gets a string,
4318 and prefilter has to process it. We can then redefine prefilter
4319 and prefilter has to process it. We can then redefine prefilter
4319 from the outside and implement extensions for special
4320 from the outside and implement extensions for special
4320 purposes.
4321 purposes.
4321
4322
4322 Today I got one for inputting PhysicalQuantity objects
4323 Today I got one for inputting PhysicalQuantity objects
4323 (from Scientific) without needing any function calls at
4324 (from Scientific) without needing any function calls at
4324 all. Extremely convenient, and it's all done as a user-level
4325 all. Extremely convenient, and it's all done as a user-level
4325 extension (no IPython code was touched). Now instead of:
4326 extension (no IPython code was touched). Now instead of:
4326 a = PhysicalQuantity(4.2,'m/s**2')
4327 a = PhysicalQuantity(4.2,'m/s**2')
4327 one can simply say
4328 one can simply say
4328 a = 4.2 m/s**2
4329 a = 4.2 m/s**2
4329 or even
4330 or even
4330 a = 4.2 m/s^2
4331 a = 4.2 m/s^2
4331
4332
4332 I use this, but it's also a proof of concept: IPython really is
4333 I use this, but it's also a proof of concept: IPython really is
4333 fully user-extensible, even at the level of the parsing of the
4334 fully user-extensible, even at the level of the parsing of the
4334 command line. It's not trivial, but it's perfectly doable.
4335 command line. It's not trivial, but it's perfectly doable.
4335
4336
4336 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4337 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4337 the problem of modules being loaded in the inverse order in which
4338 the problem of modules being loaded in the inverse order in which
4338 they were defined in
4339 they were defined in
4339
4340
4340 * Version 0.1.8 released, 0.1.9 opened for further work.
4341 * Version 0.1.8 released, 0.1.9 opened for further work.
4341
4342
4342 * Added magics pdef, source and file. They respectively show the
4343 * Added magics pdef, source and file. They respectively show the
4343 definition line ('prototype' in C), source code and full python
4344 definition line ('prototype' in C), source code and full python
4344 file for any callable object. The object inspector oinfo uses
4345 file for any callable object. The object inspector oinfo uses
4345 these to show the same information.
4346 these to show the same information.
4346
4347
4347 * Version 0.1.7 released, 0.1.8 opened for further work.
4348 * Version 0.1.7 released, 0.1.8 opened for further work.
4348
4349
4349 * Separated all the magic functions into a class called Magic. The
4350 * Separated all the magic functions into a class called Magic. The
4350 InteractiveShell class was becoming too big for Xemacs to handle
4351 InteractiveShell class was becoming too big for Xemacs to handle
4351 (de-indenting a line would lock it up for 10 seconds while it
4352 (de-indenting a line would lock it up for 10 seconds while it
4352 backtracked on the whole class!)
4353 backtracked on the whole class!)
4353
4354
4354 FIXME: didn't work. It can be done, but right now namespaces are
4355 FIXME: didn't work. It can be done, but right now namespaces are
4355 all messed up. Do it later (reverted it for now, so at least
4356 all messed up. Do it later (reverted it for now, so at least
4356 everything works as before).
4357 everything works as before).
4357
4358
4358 * Got the object introspection system (magic_oinfo) working! I
4359 * Got the object introspection system (magic_oinfo) working! I
4359 think this is pretty much ready for release to Janko, so he can
4360 think this is pretty much ready for release to Janko, so he can
4360 test it for a while and then announce it. Pretty much 100% of what
4361 test it for a while and then announce it. Pretty much 100% of what
4361 I wanted for the 'phase 1' release is ready. Happy, tired.
4362 I wanted for the 'phase 1' release is ready. Happy, tired.
4362
4363
4363 2001-11-12 Fernando Perez <fperez@colorado.edu>
4364 2001-11-12 Fernando Perez <fperez@colorado.edu>
4364
4365
4365 * Version 0.1.6 released, 0.1.7 opened for further work.
4366 * Version 0.1.6 released, 0.1.7 opened for further work.
4366
4367
4367 * Fixed bug in printing: it used to test for truth before
4368 * Fixed bug in printing: it used to test for truth before
4368 printing, so 0 wouldn't print. Now checks for None.
4369 printing, so 0 wouldn't print. Now checks for None.
4369
4370
4370 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4371 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4371 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4372 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4372 reaches by hand into the outputcache. Think of a better way to do
4373 reaches by hand into the outputcache. Think of a better way to do
4373 this later.
4374 this later.
4374
4375
4375 * Various small fixes thanks to Nathan's comments.
4376 * Various small fixes thanks to Nathan's comments.
4376
4377
4377 * Changed magic_pprint to magic_Pprint. This way it doesn't
4378 * Changed magic_pprint to magic_Pprint. This way it doesn't
4378 collide with pprint() and the name is consistent with the command
4379 collide with pprint() and the name is consistent with the command
4379 line option.
4380 line option.
4380
4381
4381 * Changed prompt counter behavior to be fully like
4382 * Changed prompt counter behavior to be fully like
4382 Mathematica's. That is, even input that doesn't return a result
4383 Mathematica's. That is, even input that doesn't return a result
4383 raises the prompt counter. The old behavior was kind of confusing
4384 raises the prompt counter. The old behavior was kind of confusing
4384 (getting the same prompt number several times if the operation
4385 (getting the same prompt number several times if the operation
4385 didn't return a result).
4386 didn't return a result).
4386
4387
4387 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4388 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4388
4389
4389 * Fixed -Classic mode (wasn't working anymore).
4390 * Fixed -Classic mode (wasn't working anymore).
4390
4391
4391 * Added colored prompts using Nathan's new code. Colors are
4392 * Added colored prompts using Nathan's new code. Colors are
4392 currently hardwired, they can be user-configurable. For
4393 currently hardwired, they can be user-configurable. For
4393 developers, they can be chosen in file ipythonlib.py, at the
4394 developers, they can be chosen in file ipythonlib.py, at the
4394 beginning of the CachedOutput class def.
4395 beginning of the CachedOutput class def.
4395
4396
4396 2001-11-11 Fernando Perez <fperez@colorado.edu>
4397 2001-11-11 Fernando Perez <fperez@colorado.edu>
4397
4398
4398 * Version 0.1.5 released, 0.1.6 opened for further work.
4399 * Version 0.1.5 released, 0.1.6 opened for further work.
4399
4400
4400 * Changed magic_env to *return* the environment as a dict (not to
4401 * Changed magic_env to *return* the environment as a dict (not to
4401 print it). This way it prints, but it can also be processed.
4402 print it). This way it prints, but it can also be processed.
4402
4403
4403 * Added Verbose exception reporting to interactive
4404 * Added Verbose exception reporting to interactive
4404 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4405 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4405 traceback. Had to make some changes to the ultraTB file. This is
4406 traceback. Had to make some changes to the ultraTB file. This is
4406 probably the last 'big' thing in my mental todo list. This ties
4407 probably the last 'big' thing in my mental todo list. This ties
4407 in with the next entry:
4408 in with the next entry:
4408
4409
4409 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4410 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4410 has to specify is Plain, Color or Verbose for all exception
4411 has to specify is Plain, Color or Verbose for all exception
4411 handling.
4412 handling.
4412
4413
4413 * Removed ShellServices option. All this can really be done via
4414 * Removed ShellServices option. All this can really be done via
4414 the magic system. It's easier to extend, cleaner and has automatic
4415 the magic system. It's easier to extend, cleaner and has automatic
4415 namespace protection and documentation.
4416 namespace protection and documentation.
4416
4417
4417 2001-11-09 Fernando Perez <fperez@colorado.edu>
4418 2001-11-09 Fernando Perez <fperez@colorado.edu>
4418
4419
4419 * Fixed bug in output cache flushing (missing parameter to
4420 * Fixed bug in output cache flushing (missing parameter to
4420 __init__). Other small bugs fixed (found using pychecker).
4421 __init__). Other small bugs fixed (found using pychecker).
4421
4422
4422 * Version 0.1.4 opened for bugfixing.
4423 * Version 0.1.4 opened for bugfixing.
4423
4424
4424 2001-11-07 Fernando Perez <fperez@colorado.edu>
4425 2001-11-07 Fernando Perez <fperez@colorado.edu>
4425
4426
4426 * Version 0.1.3 released, mainly because of the raw_input bug.
4427 * Version 0.1.3 released, mainly because of the raw_input bug.
4427
4428
4428 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4429 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4429 and when testing for whether things were callable, a call could
4430 and when testing for whether things were callable, a call could
4430 actually be made to certain functions. They would get called again
4431 actually be made to certain functions. They would get called again
4431 once 'really' executed, with a resulting double call. A disaster
4432 once 'really' executed, with a resulting double call. A disaster
4432 in many cases (list.reverse() would never work!).
4433 in many cases (list.reverse() would never work!).
4433
4434
4434 * Removed prefilter() function, moved its code to raw_input (which
4435 * Removed prefilter() function, moved its code to raw_input (which
4435 after all was just a near-empty caller for prefilter). This saves
4436 after all was just a near-empty caller for prefilter). This saves
4436 a function call on every prompt, and simplifies the class a tiny bit.
4437 a function call on every prompt, and simplifies the class a tiny bit.
4437
4438
4438 * Fix _ip to __ip name in magic example file.
4439 * Fix _ip to __ip name in magic example file.
4439
4440
4440 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4441 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4441 work with non-gnu versions of tar.
4442 work with non-gnu versions of tar.
4442
4443
4443 2001-11-06 Fernando Perez <fperez@colorado.edu>
4444 2001-11-06 Fernando Perez <fperez@colorado.edu>
4444
4445
4445 * Version 0.1.2. Just to keep track of the recent changes.
4446 * Version 0.1.2. Just to keep track of the recent changes.
4446
4447
4447 * Fixed nasty bug in output prompt routine. It used to check 'if
4448 * Fixed nasty bug in output prompt routine. It used to check 'if
4448 arg != None...'. Problem is, this fails if arg implements a
4449 arg != None...'. Problem is, this fails if arg implements a
4449 special comparison (__cmp__) which disallows comparing to
4450 special comparison (__cmp__) which disallows comparing to
4450 None. Found it when trying to use the PhysicalQuantity module from
4451 None. Found it when trying to use the PhysicalQuantity module from
4451 ScientificPython.
4452 ScientificPython.
4452
4453
4453 2001-11-05 Fernando Perez <fperez@colorado.edu>
4454 2001-11-05 Fernando Perez <fperez@colorado.edu>
4454
4455
4455 * Also added dirs. Now the pushd/popd/dirs family functions
4456 * Also added dirs. Now the pushd/popd/dirs family functions
4456 basically like the shell, with the added convenience of going home
4457 basically like the shell, with the added convenience of going home
4457 when called with no args.
4458 when called with no args.
4458
4459
4459 * pushd/popd slightly modified to mimic shell behavior more
4460 * pushd/popd slightly modified to mimic shell behavior more
4460 closely.
4461 closely.
4461
4462
4462 * Added env,pushd,popd from ShellServices as magic functions. I
4463 * Added env,pushd,popd from ShellServices as magic functions. I
4463 think the cleanest will be to port all desired functions from
4464 think the cleanest will be to port all desired functions from
4464 ShellServices as magics and remove ShellServices altogether. This
4465 ShellServices as magics and remove ShellServices altogether. This
4465 will provide a single, clean way of adding functionality
4466 will provide a single, clean way of adding functionality
4466 (shell-type or otherwise) to IP.
4467 (shell-type or otherwise) to IP.
4467
4468
4468 2001-11-04 Fernando Perez <fperez@colorado.edu>
4469 2001-11-04 Fernando Perez <fperez@colorado.edu>
4469
4470
4470 * Added .ipython/ directory to sys.path. This way users can keep
4471 * Added .ipython/ directory to sys.path. This way users can keep
4471 customizations there and access them via import.
4472 customizations there and access them via import.
4472
4473
4473 2001-11-03 Fernando Perez <fperez@colorado.edu>
4474 2001-11-03 Fernando Perez <fperez@colorado.edu>
4474
4475
4475 * Opened version 0.1.1 for new changes.
4476 * Opened version 0.1.1 for new changes.
4476
4477
4477 * Changed version number to 0.1.0: first 'public' release, sent to
4478 * Changed version number to 0.1.0: first 'public' release, sent to
4478 Nathan and Janko.
4479 Nathan and Janko.
4479
4480
4480 * Lots of small fixes and tweaks.
4481 * Lots of small fixes and tweaks.
4481
4482
4482 * Minor changes to whos format. Now strings are shown, snipped if
4483 * Minor changes to whos format. Now strings are shown, snipped if
4483 too long.
4484 too long.
4484
4485
4485 * Changed ShellServices to work on __main__ so they show up in @who
4486 * Changed ShellServices to work on __main__ so they show up in @who
4486
4487
4487 * Help also works with ? at the end of a line:
4488 * Help also works with ? at the end of a line:
4488 ?sin and sin?
4489 ?sin and sin?
4489 both produce the same effect. This is nice, as often I use the
4490 both produce the same effect. This is nice, as often I use the
4490 tab-complete to find the name of a method, but I used to then have
4491 tab-complete to find the name of a method, but I used to then have
4491 to go to the beginning of the line to put a ? if I wanted more
4492 to go to the beginning of the line to put a ? if I wanted more
4492 info. Now I can just add the ? and hit return. Convenient.
4493 info. Now I can just add the ? and hit return. Convenient.
4493
4494
4494 2001-11-02 Fernando Perez <fperez@colorado.edu>
4495 2001-11-02 Fernando Perez <fperez@colorado.edu>
4495
4496
4496 * Python version check (>=2.1) added.
4497 * Python version check (>=2.1) added.
4497
4498
4498 * Added LazyPython documentation. At this point the docs are quite
4499 * Added LazyPython documentation. At this point the docs are quite
4499 a mess. A cleanup is in order.
4500 a mess. A cleanup is in order.
4500
4501
4501 * Auto-installer created. For some bizarre reason, the zipfiles
4502 * Auto-installer created. For some bizarre reason, the zipfiles
4502 module isn't working on my system. So I made a tar version
4503 module isn't working on my system. So I made a tar version
4503 (hopefully the command line options in various systems won't kill
4504 (hopefully the command line options in various systems won't kill
4504 me).
4505 me).
4505
4506
4506 * Fixes to Struct in genutils. Now all dictionary-like methods are
4507 * Fixes to Struct in genutils. Now all dictionary-like methods are
4507 protected (reasonably).
4508 protected (reasonably).
4508
4509
4509 * Added pager function to genutils and changed ? to print usage
4510 * Added pager function to genutils and changed ? to print usage
4510 note through it (it was too long).
4511 note through it (it was too long).
4511
4512
4512 * Added the LazyPython functionality. Works great! I changed the
4513 * Added the LazyPython functionality. Works great! I changed the
4513 auto-quote escape to ';', it's on home row and next to '. But
4514 auto-quote escape to ';', it's on home row and next to '. But
4514 both auto-quote and auto-paren (still /) escapes are command-line
4515 both auto-quote and auto-paren (still /) escapes are command-line
4515 parameters.
4516 parameters.
4516
4517
4517
4518
4518 2001-11-01 Fernando Perez <fperez@colorado.edu>
4519 2001-11-01 Fernando Perez <fperez@colorado.edu>
4519
4520
4520 * Version changed to 0.0.7. Fairly large change: configuration now
4521 * Version changed to 0.0.7. Fairly large change: configuration now
4521 is all stored in a directory, by default .ipython. There, all
4522 is all stored in a directory, by default .ipython. There, all
4522 config files have normal looking names (not .names)
4523 config files have normal looking names (not .names)
4523
4524
4524 * Version 0.0.6 Released first to Lucas and Archie as a test
4525 * Version 0.0.6 Released first to Lucas and Archie as a test
4525 run. Since it's the first 'semi-public' release, change version to
4526 run. Since it's the first 'semi-public' release, change version to
4526 > 0.0.6 for any changes now.
4527 > 0.0.6 for any changes now.
4527
4528
4528 * Stuff I had put in the ipplib.py changelog:
4529 * Stuff I had put in the ipplib.py changelog:
4529
4530
4530 Changes to InteractiveShell:
4531 Changes to InteractiveShell:
4531
4532
4532 - Made the usage message a parameter.
4533 - Made the usage message a parameter.
4533
4534
4534 - Require the name of the shell variable to be given. It's a bit
4535 - Require the name of the shell variable to be given. It's a bit
4535 of a hack, but allows the name 'shell' not to be hardwire in the
4536 of a hack, but allows the name 'shell' not to be hardwire in the
4536 magic (@) handler, which is problematic b/c it requires
4537 magic (@) handler, which is problematic b/c it requires
4537 polluting the global namespace with 'shell'. This in turn is
4538 polluting the global namespace with 'shell'. This in turn is
4538 fragile: if a user redefines a variable called shell, things
4539 fragile: if a user redefines a variable called shell, things
4539 break.
4540 break.
4540
4541
4541 - magic @: all functions available through @ need to be defined
4542 - magic @: all functions available through @ need to be defined
4542 as magic_<name>, even though they can be called simply as
4543 as magic_<name>, even though they can be called simply as
4543 @<name>. This allows the special command @magic to gather
4544 @<name>. This allows the special command @magic to gather
4544 information automatically about all existing magic functions,
4545 information automatically about all existing magic functions,
4545 even if they are run-time user extensions, by parsing the shell
4546 even if they are run-time user extensions, by parsing the shell
4546 instance __dict__ looking for special magic_ names.
4547 instance __dict__ looking for special magic_ names.
4547
4548
4548 - mainloop: added *two* local namespace parameters. This allows
4549 - mainloop: added *two* local namespace parameters. This allows
4549 the class to differentiate between parameters which were there
4550 the class to differentiate between parameters which were there
4550 before and after command line initialization was processed. This
4551 before and after command line initialization was processed. This
4551 way, later @who can show things loaded at startup by the
4552 way, later @who can show things loaded at startup by the
4552 user. This trick was necessary to make session saving/reloading
4553 user. This trick was necessary to make session saving/reloading
4553 really work: ideally after saving/exiting/reloading a session,
4554 really work: ideally after saving/exiting/reloading a session,
4554 *everythin* should look the same, including the output of @who. I
4555 *everythin* should look the same, including the output of @who. I
4555 was only able to make this work with this double namespace
4556 was only able to make this work with this double namespace
4556 trick.
4557 trick.
4557
4558
4558 - added a header to the logfile which allows (almost) full
4559 - added a header to the logfile which allows (almost) full
4559 session restoring.
4560 session restoring.
4560
4561
4561 - prepend lines beginning with @ or !, with a and log
4562 - prepend lines beginning with @ or !, with a and log
4562 them. Why? !lines: may be useful to know what you did @lines:
4563 them. Why? !lines: may be useful to know what you did @lines:
4563 they may affect session state. So when restoring a session, at
4564 they may affect session state. So when restoring a session, at
4564 least inform the user of their presence. I couldn't quite get
4565 least inform the user of their presence. I couldn't quite get
4565 them to properly re-execute, but at least the user is warned.
4566 them to properly re-execute, but at least the user is warned.
4566
4567
4567 * Started ChangeLog.
4568 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now