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