##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,7349 +1,7353 b''
1 2008-01-08 Ville Vainio <vivainio@gmail.com>
2
3 * '%macro -r' (raw mode) is now default in sh profile.
4
1 2007-12-31 Ville Vainio <vivainio@gmail.com>
5 2007-12-31 Ville Vainio <vivainio@gmail.com>
2
6
3 * completer.py: custom completer matching is now case sensitive
7 * completer.py: custom completer matching is now case sensitive
4 (#207).
8 (#207).
5
9
6 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
10 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
7 an attempt to prevent occasional crashes.
11 an attempt to prevent occasional crashes.
8
12
9 * CrashHandler.py: Crash log dump now asks user to press enter
13 * CrashHandler.py: Crash log dump now asks user to press enter
10 before exiting.
14 before exiting.
11
15
12 * Store _ip in user_ns instead of __builtin__, enabling safer
16 * Store _ip in user_ns instead of __builtin__, enabling safer
13 coexistence of multiple IPython instances in the same python
17 coexistence of multiple IPython instances in the same python
14 interpreter (#197).
18 interpreter (#197).
15
19
16 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
20 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
17 switch to enable pydb in post-mortem debugging and %run -d.
21 switch to enable pydb in post-mortem debugging and %run -d.
18
22
19 2007-12-28 Ville Vainio <vivainio@gmail.com>
23 2007-12-28 Ville Vainio <vivainio@gmail.com>
20
24
21 * ipy_server.py: TCP socket server for "remote control" of an IPython
25 * ipy_server.py: TCP socket server for "remote control" of an IPython
22 instance.
26 instance.
23
27
24 * Debugger.py: Change to PSF license
28 * Debugger.py: Change to PSF license
25
29
26 * simplegeneric.py: Add license & author notes.
30 * simplegeneric.py: Add license & author notes.
27
31
28 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
32 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
29 to navigate file system with a custom completer. Run
33 to navigate file system with a custom completer. Run
30 ipy_fsops.test_pathobj() to play with it.
34 ipy_fsops.test_pathobj() to play with it.
31
35
32 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
36 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
33
37
34 * IPython/dtutils.py: Add utilities for interactively running
38 * IPython/dtutils.py: Add utilities for interactively running
35 doctests. Still needs work to more easily handle the namespace of
39 doctests. Still needs work to more easily handle the namespace of
36 the package one may be working on, but the basics are in place.
40 the package one may be working on, but the basics are in place.
37
41
38 2007-12-27 Ville Vainio <vivainio@gmail.com>
42 2007-12-27 Ville Vainio <vivainio@gmail.com>
39
43
40 * ipy_completers.py: Applied arno's patch to get proper list of
44 * ipy_completers.py: Applied arno's patch to get proper list of
41 packages in import completer. Closes #196.
45 packages in import completer. Closes #196.
42
46
43 2007-12-20 Ville Vainio <vivainio@gmail.com>
47 2007-12-20 Ville Vainio <vivainio@gmail.com>
44
48
45 * completer.py, generics.py(complete_object): Allow
49 * completer.py, generics.py(complete_object): Allow
46 custom complers based on python objects via simplegeneric.
50 custom complers based on python objects via simplegeneric.
47 See generics.py / my_demo_complete_object
51 See generics.py / my_demo_complete_object
48
52
49 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
53 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
50
54
51 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
55 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
52 behavior to prompt objects, useful for display hooks to adjust
56 behavior to prompt objects, useful for display hooks to adjust
53 themselves depending on whether prompts will be there or not.
57 themselves depending on whether prompts will be there or not.
54
58
55 2007-12-13 Ville Vainio <vivainio@gmail.com>
59 2007-12-13 Ville Vainio <vivainio@gmail.com>
56
60
57 * iplib.py(raw_input): unix readline does not allow unicode in
61 * iplib.py(raw_input): unix readline does not allow unicode in
58 history, encode to normal string. After patch by Tiago.
62 history, encode to normal string. After patch by Tiago.
59 Close #201
63 Close #201
60
64
61 2007-12-12 Ville Vainio <vivainio@gmail.com>
65 2007-12-12 Ville Vainio <vivainio@gmail.com>
62
66
63 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
67 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
64 current directory.
68 current directory.
65
69
66 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
70 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
67
71
68 * IPython/Shell.py (_select_shell): add support for controlling
72 * IPython/Shell.py (_select_shell): add support for controlling
69 the pylab threading mode directly at the command line, without
73 the pylab threading mode directly at the command line, without
70 having to modify MPL config files. Added unit tests for this
74 having to modify MPL config files. Added unit tests for this
71 feature, though manual/docs update is still pending, will do later.
75 feature, though manual/docs update is still pending, will do later.
72
76
73 2007-12-11 Ville Vainio <vivainio@gmail.com>
77 2007-12-11 Ville Vainio <vivainio@gmail.com>
74
78
75 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
79 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
76 use in scripts)
80 use in scripts)
77
81
78 2007-12-07 Ville Vainio <vivainio@gmail.com>
82 2007-12-07 Ville Vainio <vivainio@gmail.com>
79
83
80 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
84 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
81 anymore (to \#) - even if it is a comment char that is implicitly
85 anymore (to \#) - even if it is a comment char that is implicitly
82 escaped in some unix shells in interactive mode, it is ok to leave
86 escaped in some unix shells in interactive mode, it is ok to leave
83 it in IPython as such.
87 it in IPython as such.
84
88
85
89
86 2007-12-01 Robert Kern <robert.kern@gmail.com>
90 2007-12-01 Robert Kern <robert.kern@gmail.com>
87
91
88 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
92 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
89 inspect.findsource(). It can now find source lines inside zipped
93 inspect.findsource(). It can now find source lines inside zipped
90 packages.
94 packages.
91
95
92 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
96 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
93 in the frame's namespace before trusting the filename in the code object
97 in the frame's namespace before trusting the filename in the code object
94 which created the frame.
98 which created the frame.
95
99
96 2007-11-29 *** Released version 0.8.2
100 2007-11-29 *** Released version 0.8.2
97
101
98 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
102 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
99
103
100 * IPython/Logger.py (Logger.logstop): add a proper logstop()
104 * IPython/Logger.py (Logger.logstop): add a proper logstop()
101 method to fully stop the logger, along with a corresponding
105 method to fully stop the logger, along with a corresponding
102 %logstop magic for interactive use.
106 %logstop magic for interactive use.
103
107
104 * IPython/Extensions/ipy_host_completers.py: added new host
108 * IPython/Extensions/ipy_host_completers.py: added new host
105 completers functionality, contributed by Gael Pasgrimaud
109 completers functionality, contributed by Gael Pasgrimaud
106 <gawel-AT-afpy.org>.
110 <gawel-AT-afpy.org>.
107
111
108 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
112 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
109
113
110 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
114 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
111 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
115 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
112 options handling. Unicode fix in %whos (committed a while ago)
116 options handling. Unicode fix in %whos (committed a while ago)
113 was also contributed by Paul.
117 was also contributed by Paul.
114
118
115 2007-11-23 Darren Dale <darren.dale@cornell.edu>
119 2007-11-23 Darren Dale <darren.dale@cornell.edu>
116 * ipy_traits_completer.py: let traits_completer respect the user's
120 * ipy_traits_completer.py: let traits_completer respect the user's
117 readline_omit__names setting.
121 readline_omit__names setting.
118
122
119 2007-11-08 Ville Vainio <vivainio@gmail.com>
123 2007-11-08 Ville Vainio <vivainio@gmail.com>
120
124
121 * ipy_completers.py (import completer): assume 'xml' module exists.
125 * ipy_completers.py (import completer): assume 'xml' module exists.
122 Do not add every module twice anymore. Closes #196.
126 Do not add every module twice anymore. Closes #196.
123
127
124 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
128 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
125 completer that uses apt-cache to search for existing packages.
129 completer that uses apt-cache to search for existing packages.
126
130
127 2007-11-06 Ville Vainio <vivainio@gmail.com>
131 2007-11-06 Ville Vainio <vivainio@gmail.com>
128
132
129 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
133 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
130 true. Closes #194.
134 true. Closes #194.
131
135
132 2007-11-01 Brian Granger <ellisonbg@gmail.com>
136 2007-11-01 Brian Granger <ellisonbg@gmail.com>
133
137
134 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
138 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
135 working with OS X 10.5 libedit implementation of readline.
139 working with OS X 10.5 libedit implementation of readline.
136
140
137 2007-10-24 Ville Vainio <vivainio@gmail.com>
141 2007-10-24 Ville Vainio <vivainio@gmail.com>
138
142
139 * iplib.py(user_setup): To route around buggy installations where
143 * iplib.py(user_setup): To route around buggy installations where
140 UserConfig is not available, create a minimal _ipython.
144 UserConfig is not available, create a minimal _ipython.
141
145
142 * iplib.py: Unicode fixes from Jorgen.
146 * iplib.py: Unicode fixes from Jorgen.
143
147
144 * genutils.py: Slist now has new method 'fields()' for extraction of
148 * genutils.py: Slist now has new method 'fields()' for extraction of
145 whitespace-separated fields from line-oriented data.
149 whitespace-separated fields from line-oriented data.
146
150
147 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
151 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
148
152
149 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
153 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
150 when querying objects with no __class__ attribute (such as
154 when querying objects with no __class__ attribute (such as
151 f2py-generated modules).
155 f2py-generated modules).
152
156
153 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
157 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
154
158
155 * IPython/Magic.py (magic_time): track compilation time and report
159 * IPython/Magic.py (magic_time): track compilation time and report
156 it if longer than 0.1s (fix done to %time and %timeit). After a
160 it if longer than 0.1s (fix done to %time and %timeit). After a
157 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
161 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
158
162
159 2007-09-18 Ville Vainio <vivainio@gmail.com>
163 2007-09-18 Ville Vainio <vivainio@gmail.com>
160
164
161 * genutils.py(make_quoted_expr): Do not use Itpl, it does
165 * genutils.py(make_quoted_expr): Do not use Itpl, it does
162 not support unicode at the moment. Fixes (many) magic calls with
166 not support unicode at the moment. Fixes (many) magic calls with
163 special characters.
167 special characters.
164
168
165 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
169 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
166
170
167 * IPython/genutils.py (doctest_reload): expose the doctest
171 * IPython/genutils.py (doctest_reload): expose the doctest
168 reloader to the user so that people can easily reset doctest while
172 reloader to the user so that people can easily reset doctest while
169 using it interactively. Fixes a problem reported by Jorgen.
173 using it interactively. Fixes a problem reported by Jorgen.
170
174
171 * IPython/iplib.py (InteractiveShell.__init__): protect the
175 * IPython/iplib.py (InteractiveShell.__init__): protect the
172 FakeModule instances used for __main__ in %run calls from
176 FakeModule instances used for __main__ in %run calls from
173 deletion, so that user code defined in them isn't left with
177 deletion, so that user code defined in them isn't left with
174 dangling references due to the Python module deletion machinery.
178 dangling references due to the Python module deletion machinery.
175 This should fix the problems reported by Darren.
179 This should fix the problems reported by Darren.
176
180
177 2007-09-10 Darren Dale <dd55@cornell.edu>
181 2007-09-10 Darren Dale <dd55@cornell.edu>
178
182
179 * Cleanup of IPShellQt and IPShellQt4
183 * Cleanup of IPShellQt and IPShellQt4
180
184
181 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
185 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
182
186
183 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
187 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
184 doctest support.
188 doctest support.
185
189
186 * IPython/iplib.py (safe_execfile): minor docstring improvements.
190 * IPython/iplib.py (safe_execfile): minor docstring improvements.
187
191
188 2007-09-08 Ville Vainio <vivainio@gmail.com>
192 2007-09-08 Ville Vainio <vivainio@gmail.com>
189
193
190 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
194 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
191 directory, not the target directory.
195 directory, not the target directory.
192
196
193 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
197 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
194 exception that won't print the tracebacks. Switched many magics to
198 exception that won't print the tracebacks. Switched many magics to
195 raise them on error situations, also GetoptError is not printed
199 raise them on error situations, also GetoptError is not printed
196 anymore.
200 anymore.
197
201
198 2007-09-07 Ville Vainio <vivainio@gmail.com>
202 2007-09-07 Ville Vainio <vivainio@gmail.com>
199
203
200 * iplib.py: do not auto-alias "dir", it screws up other dir auto
204 * iplib.py: do not auto-alias "dir", it screws up other dir auto
201 aliases.
205 aliases.
202
206
203 * genutils.py: SList.grep() implemented.
207 * genutils.py: SList.grep() implemented.
204
208
205 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
209 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
206 for easy "out of the box" setup of several common editors, so that
210 for easy "out of the box" setup of several common editors, so that
207 e.g. '%edit os.path.isfile' will jump to the correct line
211 e.g. '%edit os.path.isfile' will jump to the correct line
208 automatically. Contributions for command lines of your favourite
212 automatically. Contributions for command lines of your favourite
209 editors welcome.
213 editors welcome.
210
214
211 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
215 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
212
216
213 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
217 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
214 preventing source display in certain cases. In reality I think
218 preventing source display in certain cases. In reality I think
215 the problem is with Ubuntu's Python build, but this change works
219 the problem is with Ubuntu's Python build, but this change works
216 around the issue in some cases (not in all, unfortunately). I'd
220 around the issue in some cases (not in all, unfortunately). I'd
217 filed a Python bug on this with more details, but in the change of
221 filed a Python bug on this with more details, but in the change of
218 bug trackers it seems to have been lost.
222 bug trackers it seems to have been lost.
219
223
220 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
224 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
221 not the same, it's not self-documenting, doesn't allow range
225 not the same, it's not self-documenting, doesn't allow range
222 selection, and sorts alphabetically instead of numerically.
226 selection, and sorts alphabetically instead of numerically.
223 (magic_r): restore %r. No, "up + enter. One char magic" is not
227 (magic_r): restore %r. No, "up + enter. One char magic" is not
224 the same thing, since %r takes parameters to allow fast retrieval
228 the same thing, since %r takes parameters to allow fast retrieval
225 of old commands. I've received emails from users who use this a
229 of old commands. I've received emails from users who use this a
226 LOT, so it stays.
230 LOT, so it stays.
227 (magic_automagic): restore %automagic. "use _ip.option.automagic"
231 (magic_automagic): restore %automagic. "use _ip.option.automagic"
228 is not a valid replacement b/c it doesn't provide an complete
232 is not a valid replacement b/c it doesn't provide an complete
229 explanation (which the automagic docstring does).
233 explanation (which the automagic docstring does).
230 (magic_autocall): restore %autocall, with improved docstring.
234 (magic_autocall): restore %autocall, with improved docstring.
231 Same argument as for others, "use _ip.options.autocall" is not a
235 Same argument as for others, "use _ip.options.autocall" is not a
232 valid replacement.
236 valid replacement.
233 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
237 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
234 tutorials and online docs.
238 tutorials and online docs.
235
239
236 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
240 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
237
241
238 * IPython/usage.py (quick_reference): mention magics in quickref,
242 * IPython/usage.py (quick_reference): mention magics in quickref,
239 modified main banner to mention %quickref.
243 modified main banner to mention %quickref.
240
244
241 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
245 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
242
246
243 2007-09-06 Ville Vainio <vivainio@gmail.com>
247 2007-09-06 Ville Vainio <vivainio@gmail.com>
244
248
245 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
249 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
246 Callable aliases now pass the _ip as first arg. This breaks
250 Callable aliases now pass the _ip as first arg. This breaks
247 compatibility with earlier 0.8.2.svn series! (though they should
251 compatibility with earlier 0.8.2.svn series! (though they should
248 not have been in use yet outside these few extensions)
252 not have been in use yet outside these few extensions)
249
253
250 2007-09-05 Ville Vainio <vivainio@gmail.com>
254 2007-09-05 Ville Vainio <vivainio@gmail.com>
251
255
252 * external/mglob.py: expand('dirname') => ['dirname'], instead
256 * external/mglob.py: expand('dirname') => ['dirname'], instead
253 of ['dirname/foo','dirname/bar', ...].
257 of ['dirname/foo','dirname/bar', ...].
254
258
255 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
259 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
256 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
260 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
257 is useful for others as well).
261 is useful for others as well).
258
262
259 * iplib.py: on callable aliases (as opposed to old style aliases),
263 * iplib.py: on callable aliases (as opposed to old style aliases),
260 do var_expand() immediately, and use make_quoted_expr instead
264 do var_expand() immediately, and use make_quoted_expr instead
261 of hardcoded r"""
265 of hardcoded r"""
262
266
263 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
267 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
264 if not available load ipy_fsops.py for cp, mv, etc. replacements
268 if not available load ipy_fsops.py for cp, mv, etc. replacements
265
269
266 * OInspect.py, ipy_which.py: improve %which and obj? for callable
270 * OInspect.py, ipy_which.py: improve %which and obj? for callable
267 aliases
271 aliases
268
272
269 2007-09-04 Ville Vainio <vivainio@gmail.com>
273 2007-09-04 Ville Vainio <vivainio@gmail.com>
270
274
271 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
275 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
272 Relicensed under BSD with the authors approval.
276 Relicensed under BSD with the authors approval.
273
277
274 * ipmaker.py, usage.py: Remove %magic from default banner, improve
278 * ipmaker.py, usage.py: Remove %magic from default banner, improve
275 %quickref
279 %quickref
276
280
277 2007-09-03 Ville Vainio <vivainio@gmail.com>
281 2007-09-03 Ville Vainio <vivainio@gmail.com>
278
282
279 * Magic.py: %time now passes expression through prefilter,
283 * Magic.py: %time now passes expression through prefilter,
280 allowing IPython syntax.
284 allowing IPython syntax.
281
285
282 2007-09-01 Ville Vainio <vivainio@gmail.com>
286 2007-09-01 Ville Vainio <vivainio@gmail.com>
283
287
284 * ipmaker.py: Always show full traceback when newstyle config fails
288 * ipmaker.py: Always show full traceback when newstyle config fails
285
289
286 2007-08-27 Ville Vainio <vivainio@gmail.com>
290 2007-08-27 Ville Vainio <vivainio@gmail.com>
287
291
288 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
292 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
289
293
290 2007-08-26 Ville Vainio <vivainio@gmail.com>
294 2007-08-26 Ville Vainio <vivainio@gmail.com>
291
295
292 * ipmaker.py: Command line args have the highest priority again
296 * ipmaker.py: Command line args have the highest priority again
293
297
294 * iplib.py, ipmaker.py: -i command line argument now behaves as in
298 * iplib.py, ipmaker.py: -i command line argument now behaves as in
295 normal python, i.e. leaves the IPython session running after -c
299 normal python, i.e. leaves the IPython session running after -c
296 command or running a batch file from command line.
300 command or running a batch file from command line.
297
301
298 2007-08-22 Ville Vainio <vivainio@gmail.com>
302 2007-08-22 Ville Vainio <vivainio@gmail.com>
299
303
300 * iplib.py: no extra empty (last) line in raw hist w/ multiline
304 * iplib.py: no extra empty (last) line in raw hist w/ multiline
301 statements
305 statements
302
306
303 * logger.py: Fix bug where blank lines in history were not
307 * logger.py: Fix bug where blank lines in history were not
304 added until AFTER adding the current line; translated and raw
308 added until AFTER adding the current line; translated and raw
305 history should finally be in sync with prompt now.
309 history should finally be in sync with prompt now.
306
310
307 * ipy_completers.py: quick_completer now makes it easy to create
311 * ipy_completers.py: quick_completer now makes it easy to create
308 trivial custom completers
312 trivial custom completers
309
313
310 * clearcmd.py: shadow history compression & erasing, fixed input hist
314 * clearcmd.py: shadow history compression & erasing, fixed input hist
311 clearing.
315 clearing.
312
316
313 * envpersist.py, history.py: %env (sh profile only), %hist completers
317 * envpersist.py, history.py: %env (sh profile only), %hist completers
314
318
315 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
319 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
316 term title now include the drive letter, and always use / instead of
320 term title now include the drive letter, and always use / instead of
317 os.sep (as per recommended approach for win32 ipython in general).
321 os.sep (as per recommended approach for win32 ipython in general).
318
322
319 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
323 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
320 plain python scripts from ipykit command line by running
324 plain python scripts from ipykit command line by running
321 "py myscript.py", even w/o installed python.
325 "py myscript.py", even w/o installed python.
322
326
323 2007-08-21 Ville Vainio <vivainio@gmail.com>
327 2007-08-21 Ville Vainio <vivainio@gmail.com>
324
328
325 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
329 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
326 (for backwards compatibility)
330 (for backwards compatibility)
327
331
328 * history.py: switch back to %hist -t from %hist -r as default.
332 * history.py: switch back to %hist -t from %hist -r as default.
329 At least until raw history is fixed for good.
333 At least until raw history is fixed for good.
330
334
331 2007-08-20 Ville Vainio <vivainio@gmail.com>
335 2007-08-20 Ville Vainio <vivainio@gmail.com>
332
336
333 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
337 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
334 locate alias redeclarations etc. Also, avoid handling
338 locate alias redeclarations etc. Also, avoid handling
335 _ip.IP.alias_table directly, prefer using _ip.defalias.
339 _ip.IP.alias_table directly, prefer using _ip.defalias.
336
340
337
341
338 2007-08-15 Ville Vainio <vivainio@gmail.com>
342 2007-08-15 Ville Vainio <vivainio@gmail.com>
339
343
340 * prefilter.py: ! is now always served first
344 * prefilter.py: ! is now always served first
341
345
342 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
346 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
343
347
344 * IPython/iplib.py (safe_execfile): fix the SystemExit
348 * IPython/iplib.py (safe_execfile): fix the SystemExit
345 auto-suppression code to work in Python2.4 (the internal structure
349 auto-suppression code to work in Python2.4 (the internal structure
346 of that exception changed and I'd only tested the code with 2.5).
350 of that exception changed and I'd only tested the code with 2.5).
347 Bug reported by a SciPy attendee.
351 Bug reported by a SciPy attendee.
348
352
349 2007-08-13 Ville Vainio <vivainio@gmail.com>
353 2007-08-13 Ville Vainio <vivainio@gmail.com>
350
354
351 * prefilter.py: reverted !c:/bin/foo fix, made % in
355 * prefilter.py: reverted !c:/bin/foo fix, made % in
352 multiline specials work again
356 multiline specials work again
353
357
354 2007-08-13 Ville Vainio <vivainio@gmail.com>
358 2007-08-13 Ville Vainio <vivainio@gmail.com>
355
359
356 * prefilter.py: Take more care to special-case !, so that
360 * prefilter.py: Take more care to special-case !, so that
357 !c:/bin/foo.exe works.
361 !c:/bin/foo.exe works.
358
362
359 * setup.py: if we are building eggs, strip all docs and
363 * setup.py: if we are building eggs, strip all docs and
360 examples (it doesn't make sense to bytecompile examples,
364 examples (it doesn't make sense to bytecompile examples,
361 and docs would be in an awkward place anyway).
365 and docs would be in an awkward place anyway).
362
366
363 * Ryan Krauss' patch fixes start menu shortcuts when IPython
367 * Ryan Krauss' patch fixes start menu shortcuts when IPython
364 is installed into a directory that has spaces in the name.
368 is installed into a directory that has spaces in the name.
365
369
366 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
370 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
367
371
368 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
372 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
369 doctest profile and %doctest_mode, so they actually generate the
373 doctest profile and %doctest_mode, so they actually generate the
370 blank lines needed by doctest to separate individual tests.
374 blank lines needed by doctest to separate individual tests.
371
375
372 * IPython/iplib.py (safe_execfile): modify so that running code
376 * IPython/iplib.py (safe_execfile): modify so that running code
373 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
377 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
374 doesn't get a printed traceback. Any other value in sys.exit(),
378 doesn't get a printed traceback. Any other value in sys.exit(),
375 including the empty call, still generates a traceback. This
379 including the empty call, still generates a traceback. This
376 enables use of %run without having to pass '-e' for codes that
380 enables use of %run without having to pass '-e' for codes that
377 correctly set the exit status flag.
381 correctly set the exit status flag.
378
382
379 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
383 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
380
384
381 * IPython/iplib.py (InteractiveShell.post_config_initialization):
385 * IPython/iplib.py (InteractiveShell.post_config_initialization):
382 fix problems with doctests failing when run inside IPython due to
386 fix problems with doctests failing when run inside IPython due to
383 IPython's modifications of sys.displayhook.
387 IPython's modifications of sys.displayhook.
384
388
385 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
389 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
386
390
387 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
391 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
388 a string with names.
392 a string with names.
389
393
390 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
394 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
391
395
392 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
396 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
393 magic to toggle on/off the doctest pasting support without having
397 magic to toggle on/off the doctest pasting support without having
394 to leave a session to switch to a separate profile.
398 to leave a session to switch to a separate profile.
395
399
396 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
400 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
397
401
398 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
402 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
399 introduce a blank line between inputs, to conform to doctest
403 introduce a blank line between inputs, to conform to doctest
400 requirements.
404 requirements.
401
405
402 * IPython/OInspect.py (Inspector.pinfo): fix another part where
406 * IPython/OInspect.py (Inspector.pinfo): fix another part where
403 auto-generated docstrings for new-style classes were showing up.
407 auto-generated docstrings for new-style classes were showing up.
404
408
405 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
409 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
406
410
407 * api_changes: Add new file to track backward-incompatible
411 * api_changes: Add new file to track backward-incompatible
408 user-visible changes.
412 user-visible changes.
409
413
410 2007-08-06 Ville Vainio <vivainio@gmail.com>
414 2007-08-06 Ville Vainio <vivainio@gmail.com>
411
415
412 * ipmaker.py: fix bug where user_config_ns didn't exist at all
416 * ipmaker.py: fix bug where user_config_ns didn't exist at all
413 before all the config files were handled.
417 before all the config files were handled.
414
418
415 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
419 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
416
420
417 * IPython/irunner.py (RunnerFactory): Add new factory class for
421 * IPython/irunner.py (RunnerFactory): Add new factory class for
418 creating reusable runners based on filenames.
422 creating reusable runners based on filenames.
419
423
420 * IPython/Extensions/ipy_profile_doctest.py: New profile for
424 * IPython/Extensions/ipy_profile_doctest.py: New profile for
421 doctest support. It sets prompts/exceptions as similar to
425 doctest support. It sets prompts/exceptions as similar to
422 standard Python as possible, so that ipython sessions in this
426 standard Python as possible, so that ipython sessions in this
423 profile can be easily pasted as doctests with minimal
427 profile can be easily pasted as doctests with minimal
424 modifications. It also enables pasting of doctests from external
428 modifications. It also enables pasting of doctests from external
425 sources (even if they have leading whitespace), so that you can
429 sources (even if they have leading whitespace), so that you can
426 rerun doctests from existing sources.
430 rerun doctests from existing sources.
427
431
428 * IPython/iplib.py (_prefilter): fix a buglet where after entering
432 * IPython/iplib.py (_prefilter): fix a buglet where after entering
429 some whitespace, the prompt would become a continuation prompt
433 some whitespace, the prompt would become a continuation prompt
430 with no way of exiting it other than Ctrl-C. This fix brings us
434 with no way of exiting it other than Ctrl-C. This fix brings us
431 into conformity with how the default python prompt works.
435 into conformity with how the default python prompt works.
432
436
433 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
437 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
434 Add support for pasting not only lines that start with '>>>', but
438 Add support for pasting not only lines that start with '>>>', but
435 also with ' >>>'. That is, arbitrary whitespace can now precede
439 also with ' >>>'. That is, arbitrary whitespace can now precede
436 the prompts. This makes the system useful for pasting doctests
440 the prompts. This makes the system useful for pasting doctests
437 from docstrings back into a normal session.
441 from docstrings back into a normal session.
438
442
439 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
443 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
440
444
441 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
445 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
442 r1357, which had killed multiple invocations of an embedded
446 r1357, which had killed multiple invocations of an embedded
443 ipython (this means that example-embed has been broken for over 1
447 ipython (this means that example-embed has been broken for over 1
444 year!!!). Rather than possibly breaking the batch stuff for which
448 year!!!). Rather than possibly breaking the batch stuff for which
445 the code in iplib.py/interact was introduced, I worked around the
449 the code in iplib.py/interact was introduced, I worked around the
446 problem in the embedding class in Shell.py. We really need a
450 problem in the embedding class in Shell.py. We really need a
447 bloody test suite for this code, I'm sick of finding stuff that
451 bloody test suite for this code, I'm sick of finding stuff that
448 used to work breaking left and right every time I use an old
452 used to work breaking left and right every time I use an old
449 feature I hadn't touched in a few months.
453 feature I hadn't touched in a few months.
450 (kill_embedded): Add a new magic that only shows up in embedded
454 (kill_embedded): Add a new magic that only shows up in embedded
451 mode, to allow users to permanently deactivate an embedded instance.
455 mode, to allow users to permanently deactivate an embedded instance.
452
456
453 2007-08-01 Ville Vainio <vivainio@gmail.com>
457 2007-08-01 Ville Vainio <vivainio@gmail.com>
454
458
455 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
459 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
456 history gets out of sync on runlines (e.g. when running macros).
460 history gets out of sync on runlines (e.g. when running macros).
457
461
458 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
462 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
459
463
460 * IPython/Magic.py (magic_colors): fix win32-related error message
464 * IPython/Magic.py (magic_colors): fix win32-related error message
461 that could appear under *nix when readline was missing. Patch by
465 that could appear under *nix when readline was missing. Patch by
462 Scott Jackson, closes #175.
466 Scott Jackson, closes #175.
463
467
464 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
468 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
465
469
466 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
470 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
467 completer that it traits-aware, so that traits objects don't show
471 completer that it traits-aware, so that traits objects don't show
468 all of their internal attributes all the time.
472 all of their internal attributes all the time.
469
473
470 * IPython/genutils.py (dir2): moved this code from inside
474 * IPython/genutils.py (dir2): moved this code from inside
471 completer.py to expose it publicly, so I could use it in the
475 completer.py to expose it publicly, so I could use it in the
472 wildcards bugfix.
476 wildcards bugfix.
473
477
474 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
478 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
475 Stefan with Traits.
479 Stefan with Traits.
476
480
477 * IPython/completer.py (Completer.attr_matches): change internal
481 * IPython/completer.py (Completer.attr_matches): change internal
478 var name from 'object' to 'obj', since 'object' is now a builtin
482 var name from 'object' to 'obj', since 'object' is now a builtin
479 and this can lead to weird bugs if reusing this code elsewhere.
483 and this can lead to weird bugs if reusing this code elsewhere.
480
484
481 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
485 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
482
486
483 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
487 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
484 'foo?' and update the code to prevent printing of default
488 'foo?' and update the code to prevent printing of default
485 docstrings that started appearing after I added support for
489 docstrings that started appearing after I added support for
486 new-style classes. The approach I'm using isn't ideal (I just
490 new-style classes. The approach I'm using isn't ideal (I just
487 special-case those strings) but I'm not sure how to more robustly
491 special-case those strings) but I'm not sure how to more robustly
488 differentiate between truly user-written strings and Python's
492 differentiate between truly user-written strings and Python's
489 automatic ones.
493 automatic ones.
490
494
491 2007-07-09 Ville Vainio <vivainio@gmail.com>
495 2007-07-09 Ville Vainio <vivainio@gmail.com>
492
496
493 * completer.py: Applied Matthew Neeley's patch:
497 * completer.py: Applied Matthew Neeley's patch:
494 Dynamic attributes from trait_names and _getAttributeNames are added
498 Dynamic attributes from trait_names and _getAttributeNames are added
495 to the list of tab completions, but when this happens, the attribute
499 to the list of tab completions, but when this happens, the attribute
496 list is turned into a set, so the attributes are unordered when
500 list is turned into a set, so the attributes are unordered when
497 printed, which makes it hard to find the right completion. This patch
501 printed, which makes it hard to find the right completion. This patch
498 turns this set back into a list and sort it.
502 turns this set back into a list and sort it.
499
503
500 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
504 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
501
505
502 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
506 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
503 classes in various inspector functions.
507 classes in various inspector functions.
504
508
505 2007-06-28 Ville Vainio <vivainio@gmail.com>
509 2007-06-28 Ville Vainio <vivainio@gmail.com>
506
510
507 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
511 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
508 Implement "shadow" namespace, and callable aliases that reside there.
512 Implement "shadow" namespace, and callable aliases that reside there.
509 Use them by:
513 Use them by:
510
514
511 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
515 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
512
516
513 foo hello world
517 foo hello world
514 (gets translated to:)
518 (gets translated to:)
515 _sh.foo(r"""hello world""")
519 _sh.foo(r"""hello world""")
516
520
517 In practice, this kind of alias can take the role of a magic function
521 In practice, this kind of alias can take the role of a magic function
518
522
519 * New generic inspect_object, called on obj? and obj??
523 * New generic inspect_object, called on obj? and obj??
520
524
521 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
525 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
522
526
523 * IPython/ultraTB.py (findsource): fix a problem with
527 * IPython/ultraTB.py (findsource): fix a problem with
524 inspect.getfile that can cause crashes during traceback construction.
528 inspect.getfile that can cause crashes during traceback construction.
525
529
526 2007-06-14 Ville Vainio <vivainio@gmail.com>
530 2007-06-14 Ville Vainio <vivainio@gmail.com>
527
531
528 * iplib.py (handle_auto): Try to use ascii for printing "--->"
532 * iplib.py (handle_auto): Try to use ascii for printing "--->"
529 autocall rewrite indication, becausesometimes unicode fails to print
533 autocall rewrite indication, becausesometimes unicode fails to print
530 properly (and you get ' - - - '). Use plain uncoloured ---> for
534 properly (and you get ' - - - '). Use plain uncoloured ---> for
531 unicode.
535 unicode.
532
536
533 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
537 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
534
538
535 . pickleshare 'hash' commands (hget, hset, hcompress,
539 . pickleshare 'hash' commands (hget, hset, hcompress,
536 hdict) for efficient shadow history storage.
540 hdict) for efficient shadow history storage.
537
541
538 2007-06-13 Ville Vainio <vivainio@gmail.com>
542 2007-06-13 Ville Vainio <vivainio@gmail.com>
539
543
540 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
544 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
541 Added kw arg 'interactive', tell whether vars should be visible
545 Added kw arg 'interactive', tell whether vars should be visible
542 with %whos.
546 with %whos.
543
547
544 2007-06-11 Ville Vainio <vivainio@gmail.com>
548 2007-06-11 Ville Vainio <vivainio@gmail.com>
545
549
546 * pspersistence.py, Magic.py, iplib.py: directory history now saved
550 * pspersistence.py, Magic.py, iplib.py: directory history now saved
547 to db
551 to db
548
552
549 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
553 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
550 Also, it exits IPython immediately after evaluating the command (just like
554 Also, it exits IPython immediately after evaluating the command (just like
551 std python)
555 std python)
552
556
553 2007-06-05 Walter Doerwald <walter@livinglogic.de>
557 2007-06-05 Walter Doerwald <walter@livinglogic.de>
554
558
555 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
559 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
556 Python string and captures the output. (Idea and original patch by
560 Python string and captures the output. (Idea and original patch by
557 Stefan van der Walt)
561 Stefan van der Walt)
558
562
559 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
563 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
560
564
561 * IPython/ultraTB.py (VerboseTB.text): update printing of
565 * IPython/ultraTB.py (VerboseTB.text): update printing of
562 exception types for Python 2.5 (now all exceptions in the stdlib
566 exception types for Python 2.5 (now all exceptions in the stdlib
563 are new-style classes).
567 are new-style classes).
564
568
565 2007-05-31 Walter Doerwald <walter@livinglogic.de>
569 2007-05-31 Walter Doerwald <walter@livinglogic.de>
566
570
567 * IPython/Extensions/igrid.py: Add new commands refresh and
571 * IPython/Extensions/igrid.py: Add new commands refresh and
568 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
572 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
569 the iterator once (refresh) or after every x seconds (refresh_timer).
573 the iterator once (refresh) or after every x seconds (refresh_timer).
570 Add a working implementation of "searchexpression", where the text
574 Add a working implementation of "searchexpression", where the text
571 entered is not the text to search for, but an expression that must
575 entered is not the text to search for, but an expression that must
572 be true. Added display of shortcuts to the menu. Added commands "pickinput"
576 be true. Added display of shortcuts to the menu. Added commands "pickinput"
573 and "pickinputattr" that put the object or attribute under the cursor
577 and "pickinputattr" that put the object or attribute under the cursor
574 in the input line. Split the statusbar to be able to display the currently
578 in the input line. Split the statusbar to be able to display the currently
575 active refresh interval. (Patch by Nik Tautenhahn)
579 active refresh interval. (Patch by Nik Tautenhahn)
576
580
577 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
581 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
578
582
579 * fixing set_term_title to use ctypes as default
583 * fixing set_term_title to use ctypes as default
580
584
581 * fixing set_term_title fallback to work when curent dir
585 * fixing set_term_title fallback to work when curent dir
582 is on a windows network share
586 is on a windows network share
583
587
584 2007-05-28 Ville Vainio <vivainio@gmail.com>
588 2007-05-28 Ville Vainio <vivainio@gmail.com>
585
589
586 * %cpaste: strip + with > from left (diffs).
590 * %cpaste: strip + with > from left (diffs).
587
591
588 * iplib.py: Fix crash when readline not installed
592 * iplib.py: Fix crash when readline not installed
589
593
590 2007-05-26 Ville Vainio <vivainio@gmail.com>
594 2007-05-26 Ville Vainio <vivainio@gmail.com>
591
595
592 * generics.py: intruduce easy to extend result_display generic
596 * generics.py: intruduce easy to extend result_display generic
593 function (using simplegeneric.py).
597 function (using simplegeneric.py).
594
598
595 * Fixed the append functionality of %set.
599 * Fixed the append functionality of %set.
596
600
597 2007-05-25 Ville Vainio <vivainio@gmail.com>
601 2007-05-25 Ville Vainio <vivainio@gmail.com>
598
602
599 * New magic: %rep (fetch / run old commands from history)
603 * New magic: %rep (fetch / run old commands from history)
600
604
601 * New extension: mglob (%mglob magic), for powerful glob / find /filter
605 * New extension: mglob (%mglob magic), for powerful glob / find /filter
602 like functionality
606 like functionality
603
607
604 % maghistory.py: %hist -g PATTERM greps the history for pattern
608 % maghistory.py: %hist -g PATTERM greps the history for pattern
605
609
606 2007-05-24 Walter Doerwald <walter@livinglogic.de>
610 2007-05-24 Walter Doerwald <walter@livinglogic.de>
607
611
608 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
612 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
609 browse the IPython input history
613 browse the IPython input history
610
614
611 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
615 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
612 (mapped to "i") can be used to put the object under the curser in the input
616 (mapped to "i") can be used to put the object under the curser in the input
613 line. pickinputattr (mapped to "I") does the same for the attribute under
617 line. pickinputattr (mapped to "I") does the same for the attribute under
614 the cursor.
618 the cursor.
615
619
616 2007-05-24 Ville Vainio <vivainio@gmail.com>
620 2007-05-24 Ville Vainio <vivainio@gmail.com>
617
621
618 * Grand magic cleansing (changeset [2380]):
622 * Grand magic cleansing (changeset [2380]):
619
623
620 * Introduce ipy_legacy.py where the following magics were
624 * Introduce ipy_legacy.py where the following magics were
621 moved:
625 moved:
622
626
623 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
627 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
624
628
625 If you need them, either use default profile or "import ipy_legacy"
629 If you need them, either use default profile or "import ipy_legacy"
626 in your ipy_user_conf.py
630 in your ipy_user_conf.py
627
631
628 * Move sh and scipy profile to Extensions from UserConfig. this implies
632 * Move sh and scipy profile to Extensions from UserConfig. this implies
629 you should not edit them, but you don't need to run %upgrade when
633 you should not edit them, but you don't need to run %upgrade when
630 upgrading IPython anymore.
634 upgrading IPython anymore.
631
635
632 * %hist/%history now operates in "raw" mode by default. To get the old
636 * %hist/%history now operates in "raw" mode by default. To get the old
633 behaviour, run '%hist -n' (native mode).
637 behaviour, run '%hist -n' (native mode).
634
638
635 * split ipy_stock_completers.py to ipy_stock_completers.py and
639 * split ipy_stock_completers.py to ipy_stock_completers.py and
636 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
640 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
637 installed as default.
641 installed as default.
638
642
639 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
643 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
640 handling.
644 handling.
641
645
642 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
646 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
643 input if readline is available.
647 input if readline is available.
644
648
645 2007-05-23 Ville Vainio <vivainio@gmail.com>
649 2007-05-23 Ville Vainio <vivainio@gmail.com>
646
650
647 * macro.py: %store uses __getstate__ properly
651 * macro.py: %store uses __getstate__ properly
648
652
649 * exesetup.py: added new setup script for creating
653 * exesetup.py: added new setup script for creating
650 standalone IPython executables with py2exe (i.e.
654 standalone IPython executables with py2exe (i.e.
651 no python installation required).
655 no python installation required).
652
656
653 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
657 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
654 its place.
658 its place.
655
659
656 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
660 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
657
661
658 2007-05-21 Ville Vainio <vivainio@gmail.com>
662 2007-05-21 Ville Vainio <vivainio@gmail.com>
659
663
660 * platutil_win32.py (set_term_title): handle
664 * platutil_win32.py (set_term_title): handle
661 failure of 'title' system call properly.
665 failure of 'title' system call properly.
662
666
663 2007-05-17 Walter Doerwald <walter@livinglogic.de>
667 2007-05-17 Walter Doerwald <walter@livinglogic.de>
664
668
665 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
669 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
666 (Bug detected by Paul Mueller).
670 (Bug detected by Paul Mueller).
667
671
668 2007-05-16 Ville Vainio <vivainio@gmail.com>
672 2007-05-16 Ville Vainio <vivainio@gmail.com>
669
673
670 * ipy_profile_sci.py, ipython_win_post_install.py: Create
674 * ipy_profile_sci.py, ipython_win_post_install.py: Create
671 new "sci" profile, effectively a modern version of the old
675 new "sci" profile, effectively a modern version of the old
672 "scipy" profile (which is now slated for deprecation).
676 "scipy" profile (which is now slated for deprecation).
673
677
674 2007-05-15 Ville Vainio <vivainio@gmail.com>
678 2007-05-15 Ville Vainio <vivainio@gmail.com>
675
679
676 * pycolorize.py, pycolor.1: Paul Mueller's patches that
680 * pycolorize.py, pycolor.1: Paul Mueller's patches that
677 make pycolorize read input from stdin when run without arguments.
681 make pycolorize read input from stdin when run without arguments.
678
682
679 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
683 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
680
684
681 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
685 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
682 it in sh profile (instead of ipy_system_conf.py).
686 it in sh profile (instead of ipy_system_conf.py).
683
687
684 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
688 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
685 aliases are now lower case on windows (MyCommand.exe => mycommand).
689 aliases are now lower case on windows (MyCommand.exe => mycommand).
686
690
687 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
691 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
688 Macros are now callable objects that inherit from ipapi.IPyAutocall,
692 Macros are now callable objects that inherit from ipapi.IPyAutocall,
689 i.e. get autocalled regardless of system autocall setting.
693 i.e. get autocalled regardless of system autocall setting.
690
694
691 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
695 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
692
696
693 * IPython/rlineimpl.py: check for clear_history in readline and
697 * IPython/rlineimpl.py: check for clear_history in readline and
694 make it a dummy no-op if not available. This function isn't
698 make it a dummy no-op if not available. This function isn't
695 guaranteed to be in the API and appeared in Python 2.4, so we need
699 guaranteed to be in the API and appeared in Python 2.4, so we need
696 to check it ourselves. Also, clean up this file quite a bit.
700 to check it ourselves. Also, clean up this file quite a bit.
697
701
698 * ipython.1: update man page and full manual with information
702 * ipython.1: update man page and full manual with information
699 about threads (remove outdated warning). Closes #151.
703 about threads (remove outdated warning). Closes #151.
700
704
701 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
705 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
702
706
703 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
707 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
704 in trunk (note that this made it into the 0.8.1 release already,
708 in trunk (note that this made it into the 0.8.1 release already,
705 but the changelogs didn't get coordinated). Many thanks to Gael
709 but the changelogs didn't get coordinated). Many thanks to Gael
706 Varoquaux <gael.varoquaux-AT-normalesup.org>
710 Varoquaux <gael.varoquaux-AT-normalesup.org>
707
711
708 2007-05-09 *** Released version 0.8.1
712 2007-05-09 *** Released version 0.8.1
709
713
710 2007-05-10 Walter Doerwald <walter@livinglogic.de>
714 2007-05-10 Walter Doerwald <walter@livinglogic.de>
711
715
712 * IPython/Extensions/igrid.py: Incorporate html help into
716 * IPython/Extensions/igrid.py: Incorporate html help into
713 the module, so we don't have to search for the file.
717 the module, so we don't have to search for the file.
714
718
715 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
719 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
716
720
717 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
721 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
718
722
719 2007-04-30 Ville Vainio <vivainio@gmail.com>
723 2007-04-30 Ville Vainio <vivainio@gmail.com>
720
724
721 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
725 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
722 user has illegal (non-ascii) home directory name
726 user has illegal (non-ascii) home directory name
723
727
724 2007-04-27 Ville Vainio <vivainio@gmail.com>
728 2007-04-27 Ville Vainio <vivainio@gmail.com>
725
729
726 * platutils_win32.py: implement set_term_title for windows
730 * platutils_win32.py: implement set_term_title for windows
727
731
728 * Update version number
732 * Update version number
729
733
730 * ipy_profile_sh.py: more informative prompt (2 dir levels)
734 * ipy_profile_sh.py: more informative prompt (2 dir levels)
731
735
732 2007-04-26 Walter Doerwald <walter@livinglogic.de>
736 2007-04-26 Walter Doerwald <walter@livinglogic.de>
733
737
734 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
738 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
735 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
739 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
736 bug discovered by Ville).
740 bug discovered by Ville).
737
741
738 2007-04-26 Ville Vainio <vivainio@gmail.com>
742 2007-04-26 Ville Vainio <vivainio@gmail.com>
739
743
740 * Extensions/ipy_completers.py: Olivier's module completer now
744 * Extensions/ipy_completers.py: Olivier's module completer now
741 saves the list of root modules if it takes > 4 secs on the first run.
745 saves the list of root modules if it takes > 4 secs on the first run.
742
746
743 * Magic.py (%rehashx): %rehashx now clears the completer cache
747 * Magic.py (%rehashx): %rehashx now clears the completer cache
744
748
745
749
746 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
750 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
747
751
748 * ipython.el: fix incorrect color scheme, reported by Stefan.
752 * ipython.el: fix incorrect color scheme, reported by Stefan.
749 Closes #149.
753 Closes #149.
750
754
751 * IPython/PyColorize.py (Parser.format2): fix state-handling
755 * IPython/PyColorize.py (Parser.format2): fix state-handling
752 logic. I still don't like how that code handles state, but at
756 logic. I still don't like how that code handles state, but at
753 least now it should be correct, if inelegant. Closes #146.
757 least now it should be correct, if inelegant. Closes #146.
754
758
755 2007-04-25 Ville Vainio <vivainio@gmail.com>
759 2007-04-25 Ville Vainio <vivainio@gmail.com>
756
760
757 * Extensions/ipy_which.py: added extension for %which magic, works
761 * Extensions/ipy_which.py: added extension for %which magic, works
758 a lot like unix 'which' but also finds and expands aliases, and
762 a lot like unix 'which' but also finds and expands aliases, and
759 allows wildcards.
763 allows wildcards.
760
764
761 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
765 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
762 as opposed to returning nothing.
766 as opposed to returning nothing.
763
767
764 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
768 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
765 ipy_stock_completers on default profile, do import on sh profile.
769 ipy_stock_completers on default profile, do import on sh profile.
766
770
767 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
771 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
768
772
769 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
773 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
770 like ipython.py foo.py which raised a IndexError.
774 like ipython.py foo.py which raised a IndexError.
771
775
772 2007-04-21 Ville Vainio <vivainio@gmail.com>
776 2007-04-21 Ville Vainio <vivainio@gmail.com>
773
777
774 * Extensions/ipy_extutil.py: added extension to manage other ipython
778 * Extensions/ipy_extutil.py: added extension to manage other ipython
775 extensions. Now only supports 'ls' == list extensions.
779 extensions. Now only supports 'ls' == list extensions.
776
780
777 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
781 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
778
782
779 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
783 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
780 would prevent use of the exception system outside of a running
784 would prevent use of the exception system outside of a running
781 IPython instance.
785 IPython instance.
782
786
783 2007-04-20 Ville Vainio <vivainio@gmail.com>
787 2007-04-20 Ville Vainio <vivainio@gmail.com>
784
788
785 * Extensions/ipy_render.py: added extension for easy
789 * Extensions/ipy_render.py: added extension for easy
786 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
790 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
787 'Iptl' template notation,
791 'Iptl' template notation,
788
792
789 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
793 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
790 safer & faster 'import' completer.
794 safer & faster 'import' completer.
791
795
792 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
796 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
793 and _ip.defalias(name, command).
797 and _ip.defalias(name, command).
794
798
795 * Extensions/ipy_exportdb.py: New extension for exporting all the
799 * Extensions/ipy_exportdb.py: New extension for exporting all the
796 %store'd data in a portable format (normal ipapi calls like
800 %store'd data in a portable format (normal ipapi calls like
797 defmacro() etc.)
801 defmacro() etc.)
798
802
799 2007-04-19 Ville Vainio <vivainio@gmail.com>
803 2007-04-19 Ville Vainio <vivainio@gmail.com>
800
804
801 * upgrade_dir.py: skip junk files like *.pyc
805 * upgrade_dir.py: skip junk files like *.pyc
802
806
803 * Release.py: version number to 0.8.1
807 * Release.py: version number to 0.8.1
804
808
805 2007-04-18 Ville Vainio <vivainio@gmail.com>
809 2007-04-18 Ville Vainio <vivainio@gmail.com>
806
810
807 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
811 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
808 and later on win32.
812 and later on win32.
809
813
810 2007-04-16 Ville Vainio <vivainio@gmail.com>
814 2007-04-16 Ville Vainio <vivainio@gmail.com>
811
815
812 * iplib.py (showtraceback): Do not crash when running w/o readline.
816 * iplib.py (showtraceback): Do not crash when running w/o readline.
813
817
814 2007-04-12 Walter Doerwald <walter@livinglogic.de>
818 2007-04-12 Walter Doerwald <walter@livinglogic.de>
815
819
816 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
820 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
817 sorted (case sensitive with files and dirs mixed).
821 sorted (case sensitive with files and dirs mixed).
818
822
819 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
823 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
820
824
821 * IPython/Release.py (version): Open trunk for 0.8.1 development.
825 * IPython/Release.py (version): Open trunk for 0.8.1 development.
822
826
823 2007-04-10 *** Released version 0.8.0
827 2007-04-10 *** Released version 0.8.0
824
828
825 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
829 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
826
830
827 * Tag 0.8.0 for release.
831 * Tag 0.8.0 for release.
828
832
829 * IPython/iplib.py (reloadhist): add API function to cleanly
833 * IPython/iplib.py (reloadhist): add API function to cleanly
830 reload the readline history, which was growing inappropriately on
834 reload the readline history, which was growing inappropriately on
831 every %run call.
835 every %run call.
832
836
833 * win32_manual_post_install.py (run): apply last part of Nicolas
837 * win32_manual_post_install.py (run): apply last part of Nicolas
834 Pernetty's patch (I'd accidentally applied it in a different
838 Pernetty's patch (I'd accidentally applied it in a different
835 directory and this particular file didn't get patched).
839 directory and this particular file didn't get patched).
836
840
837 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
841 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
838
842
839 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
843 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
840 find the main thread id and use the proper API call. Thanks to
844 find the main thread id and use the proper API call. Thanks to
841 Stefan for the fix.
845 Stefan for the fix.
842
846
843 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
847 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
844 unit tests to reflect fixed ticket #52, and add more tests sent by
848 unit tests to reflect fixed ticket #52, and add more tests sent by
845 him.
849 him.
846
850
847 * IPython/iplib.py (raw_input): restore the readline completer
851 * IPython/iplib.py (raw_input): restore the readline completer
848 state on every input, in case third-party code messed it up.
852 state on every input, in case third-party code messed it up.
849 (_prefilter): revert recent addition of early-escape checks which
853 (_prefilter): revert recent addition of early-escape checks which
850 prevent many valid alias calls from working.
854 prevent many valid alias calls from working.
851
855
852 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
856 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
853 flag for sigint handler so we don't run a full signal() call on
857 flag for sigint handler so we don't run a full signal() call on
854 each runcode access.
858 each runcode access.
855
859
856 * IPython/Magic.py (magic_whos): small improvement to diagnostic
860 * IPython/Magic.py (magic_whos): small improvement to diagnostic
857 message.
861 message.
858
862
859 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
863 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
860
864
861 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
865 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
862 asynchronous exceptions working, i.e., Ctrl-C can actually
866 asynchronous exceptions working, i.e., Ctrl-C can actually
863 interrupt long-running code in the multithreaded shells.
867 interrupt long-running code in the multithreaded shells.
864
868
865 This is using Tomer Filiba's great ctypes-based trick:
869 This is using Tomer Filiba's great ctypes-based trick:
866 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
870 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
867 this in the past, but hadn't been able to make it work before. So
871 this in the past, but hadn't been able to make it work before. So
868 far it looks like it's actually running, but this needs more
872 far it looks like it's actually running, but this needs more
869 testing. If it really works, I'll be *very* happy, and we'll owe
873 testing. If it really works, I'll be *very* happy, and we'll owe
870 a huge thank you to Tomer. My current implementation is ugly,
874 a huge thank you to Tomer. My current implementation is ugly,
871 hackish and uses nasty globals, but I don't want to try and clean
875 hackish and uses nasty globals, but I don't want to try and clean
872 anything up until we know if it actually works.
876 anything up until we know if it actually works.
873
877
874 NOTE: this feature needs ctypes to work. ctypes is included in
878 NOTE: this feature needs ctypes to work. ctypes is included in
875 Python2.5, but 2.4 users will need to manually install it. This
879 Python2.5, but 2.4 users will need to manually install it. This
876 feature makes multi-threaded shells so much more usable that it's
880 feature makes multi-threaded shells so much more usable that it's
877 a minor price to pay (ctypes is very easy to install, already a
881 a minor price to pay (ctypes is very easy to install, already a
878 requirement for win32 and available in major linux distros).
882 requirement for win32 and available in major linux distros).
879
883
880 2007-04-04 Ville Vainio <vivainio@gmail.com>
884 2007-04-04 Ville Vainio <vivainio@gmail.com>
881
885
882 * Extensions/ipy_completers.py, ipy_stock_completers.py:
886 * Extensions/ipy_completers.py, ipy_stock_completers.py:
883 Moved implementations of 'bundled' completers to ipy_completers.py,
887 Moved implementations of 'bundled' completers to ipy_completers.py,
884 they are only enabled in ipy_stock_completers.py.
888 they are only enabled in ipy_stock_completers.py.
885
889
886 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
890 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
887
891
888 * IPython/PyColorize.py (Parser.format2): Fix identation of
892 * IPython/PyColorize.py (Parser.format2): Fix identation of
889 colorzied output and return early if color scheme is NoColor, to
893 colorzied output and return early if color scheme is NoColor, to
890 avoid unnecessary and expensive tokenization. Closes #131.
894 avoid unnecessary and expensive tokenization. Closes #131.
891
895
892 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
896 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
893
897
894 * IPython/Debugger.py: disable the use of pydb version 1.17. It
898 * IPython/Debugger.py: disable the use of pydb version 1.17. It
895 has a critical bug (a missing import that makes post-mortem not
899 has a critical bug (a missing import that makes post-mortem not
896 work at all). Unfortunately as of this time, this is the version
900 work at all). Unfortunately as of this time, this is the version
897 shipped with Ubuntu Edgy, so quite a few people have this one. I
901 shipped with Ubuntu Edgy, so quite a few people have this one. I
898 hope Edgy will update to a more recent package.
902 hope Edgy will update to a more recent package.
899
903
900 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
904 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
901
905
902 * IPython/iplib.py (_prefilter): close #52, second part of a patch
906 * IPython/iplib.py (_prefilter): close #52, second part of a patch
903 set by Stefan (only the first part had been applied before).
907 set by Stefan (only the first part had been applied before).
904
908
905 * IPython/Extensions/ipy_stock_completers.py (module_completer):
909 * IPython/Extensions/ipy_stock_completers.py (module_completer):
906 remove usage of the dangerous pkgutil.walk_packages(). See
910 remove usage of the dangerous pkgutil.walk_packages(). See
907 details in comments left in the code.
911 details in comments left in the code.
908
912
909 * IPython/Magic.py (magic_whos): add support for numpy arrays
913 * IPython/Magic.py (magic_whos): add support for numpy arrays
910 similar to what we had for Numeric.
914 similar to what we had for Numeric.
911
915
912 * IPython/completer.py (IPCompleter.complete): extend the
916 * IPython/completer.py (IPCompleter.complete): extend the
913 complete() call API to support completions by other mechanisms
917 complete() call API to support completions by other mechanisms
914 than readline. Closes #109.
918 than readline. Closes #109.
915
919
916 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
920 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
917 protect against a bug in Python's execfile(). Closes #123.
921 protect against a bug in Python's execfile(). Closes #123.
918
922
919 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
923 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
920
924
921 * IPython/iplib.py (split_user_input): ensure that when splitting
925 * IPython/iplib.py (split_user_input): ensure that when splitting
922 user input, the part that can be treated as a python name is pure
926 user input, the part that can be treated as a python name is pure
923 ascii (Python identifiers MUST be pure ascii). Part of the
927 ascii (Python identifiers MUST be pure ascii). Part of the
924 ongoing Unicode support work.
928 ongoing Unicode support work.
925
929
926 * IPython/Prompts.py (prompt_specials_color): Add \N for the
930 * IPython/Prompts.py (prompt_specials_color): Add \N for the
927 actual prompt number, without any coloring. This allows users to
931 actual prompt number, without any coloring. This allows users to
928 produce numbered prompts with their own colors. Added after a
932 produce numbered prompts with their own colors. Added after a
929 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
933 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
930
934
931 2007-03-31 Walter Doerwald <walter@livinglogic.de>
935 2007-03-31 Walter Doerwald <walter@livinglogic.de>
932
936
933 * IPython/Extensions/igrid.py: Map the return key
937 * IPython/Extensions/igrid.py: Map the return key
934 to enter() and shift-return to enterattr().
938 to enter() and shift-return to enterattr().
935
939
936 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
940 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
937
941
938 * IPython/Magic.py (magic_psearch): add unicode support by
942 * IPython/Magic.py (magic_psearch): add unicode support by
939 encoding to ascii the input, since this routine also only deals
943 encoding to ascii the input, since this routine also only deals
940 with valid Python names. Fixes a bug reported by Stefan.
944 with valid Python names. Fixes a bug reported by Stefan.
941
945
942 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
946 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
943
947
944 * IPython/Magic.py (_inspect): convert unicode input into ascii
948 * IPython/Magic.py (_inspect): convert unicode input into ascii
945 before trying to evaluate it as a Python identifier. This fixes a
949 before trying to evaluate it as a Python identifier. This fixes a
946 problem that the new unicode support had introduced when analyzing
950 problem that the new unicode support had introduced when analyzing
947 long definition lines for functions.
951 long definition lines for functions.
948
952
949 2007-03-24 Walter Doerwald <walter@livinglogic.de>
953 2007-03-24 Walter Doerwald <walter@livinglogic.de>
950
954
951 * IPython/Extensions/igrid.py: Fix picking. Using
955 * IPython/Extensions/igrid.py: Fix picking. Using
952 igrid with wxPython 2.6 and -wthread should work now.
956 igrid with wxPython 2.6 and -wthread should work now.
953 igrid.display() simply tries to create a frame without
957 igrid.display() simply tries to create a frame without
954 an application. Only if this fails an application is created.
958 an application. Only if this fails an application is created.
955
959
956 2007-03-23 Walter Doerwald <walter@livinglogic.de>
960 2007-03-23 Walter Doerwald <walter@livinglogic.de>
957
961
958 * IPython/Extensions/path.py: Updated to version 2.2.
962 * IPython/Extensions/path.py: Updated to version 2.2.
959
963
960 2007-03-23 Ville Vainio <vivainio@gmail.com>
964 2007-03-23 Ville Vainio <vivainio@gmail.com>
961
965
962 * iplib.py: recursive alias expansion now works better, so that
966 * iplib.py: recursive alias expansion now works better, so that
963 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
967 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
964 doesn't trip up the process, if 'd' has been aliased to 'ls'.
968 doesn't trip up the process, if 'd' has been aliased to 'ls'.
965
969
966 * Extensions/ipy_gnuglobal.py added, provides %global magic
970 * Extensions/ipy_gnuglobal.py added, provides %global magic
967 for users of http://www.gnu.org/software/global
971 for users of http://www.gnu.org/software/global
968
972
969 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
973 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
970 Closes #52. Patch by Stefan van der Walt.
974 Closes #52. Patch by Stefan van der Walt.
971
975
972 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
976 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
973
977
974 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
978 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
975 respect the __file__ attribute when using %run. Thanks to a bug
979 respect the __file__ attribute when using %run. Thanks to a bug
976 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
980 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
977
981
978 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
982 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
979
983
980 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
984 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
981 input. Patch sent by Stefan.
985 input. Patch sent by Stefan.
982
986
983 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
987 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
984 * IPython/Extensions/ipy_stock_completer.py
988 * IPython/Extensions/ipy_stock_completer.py
985 shlex_split, fix bug in shlex_split. len function
989 shlex_split, fix bug in shlex_split. len function
986 call was missing an if statement. Caused shlex_split to
990 call was missing an if statement. Caused shlex_split to
987 sometimes return "" as last element.
991 sometimes return "" as last element.
988
992
989 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
993 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
990
994
991 * IPython/completer.py
995 * IPython/completer.py
992 (IPCompleter.file_matches.single_dir_expand): fix a problem
996 (IPCompleter.file_matches.single_dir_expand): fix a problem
993 reported by Stefan, where directories containign a single subdir
997 reported by Stefan, where directories containign a single subdir
994 would be completed too early.
998 would be completed too early.
995
999
996 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1000 * IPython/Shell.py (_load_pylab): Make the execution of 'from
997 pylab import *' when -pylab is given be optional. A new flag,
1001 pylab import *' when -pylab is given be optional. A new flag,
998 pylab_import_all controls this behavior, the default is True for
1002 pylab_import_all controls this behavior, the default is True for
999 backwards compatibility.
1003 backwards compatibility.
1000
1004
1001 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1005 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1002 modified) R. Bernstein's patch for fully syntax highlighted
1006 modified) R. Bernstein's patch for fully syntax highlighted
1003 tracebacks. The functionality is also available under ultraTB for
1007 tracebacks. The functionality is also available under ultraTB for
1004 non-ipython users (someone using ultraTB but outside an ipython
1008 non-ipython users (someone using ultraTB but outside an ipython
1005 session). They can select the color scheme by setting the
1009 session). They can select the color scheme by setting the
1006 module-level global DEFAULT_SCHEME. The highlight functionality
1010 module-level global DEFAULT_SCHEME. The highlight functionality
1007 also works when debugging.
1011 also works when debugging.
1008
1012
1009 * IPython/genutils.py (IOStream.close): small patch by
1013 * IPython/genutils.py (IOStream.close): small patch by
1010 R. Bernstein for improved pydb support.
1014 R. Bernstein for improved pydb support.
1011
1015
1012 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1016 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1013 DaveS <davls@telus.net> to improve support of debugging under
1017 DaveS <davls@telus.net> to improve support of debugging under
1014 NTEmacs, including improved pydb behavior.
1018 NTEmacs, including improved pydb behavior.
1015
1019
1016 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1020 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1017 Python 2.5, where the stats object API changed a little. Thanks
1021 Python 2.5, where the stats object API changed a little. Thanks
1018 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1022 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1019
1023
1020 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1024 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1021 Pernetty's patch to improve support for (X)Emacs under Win32.
1025 Pernetty's patch to improve support for (X)Emacs under Win32.
1022
1026
1023 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1027 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1024
1028
1025 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1029 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1026 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1030 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1027 a report by Nik Tautenhahn.
1031 a report by Nik Tautenhahn.
1028
1032
1029 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1033 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1030
1034
1031 * setup.py: Add the igrid help files to the list of data files
1035 * setup.py: Add the igrid help files to the list of data files
1032 to be installed alongside igrid.
1036 to be installed alongside igrid.
1033 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1037 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1034 Show the input object of the igrid browser as the window tile.
1038 Show the input object of the igrid browser as the window tile.
1035 Show the object the cursor is on in the statusbar.
1039 Show the object the cursor is on in the statusbar.
1036
1040
1037 2007-03-15 Ville Vainio <vivainio@gmail.com>
1041 2007-03-15 Ville Vainio <vivainio@gmail.com>
1038
1042
1039 * Extensions/ipy_stock_completers.py: Fixed exception
1043 * Extensions/ipy_stock_completers.py: Fixed exception
1040 on mismatching quotes in %run completer. Patch by
1044 on mismatching quotes in %run completer. Patch by
1041 Jorgen Stenarson. Closes #127.
1045 Jorgen Stenarson. Closes #127.
1042
1046
1043 2007-03-14 Ville Vainio <vivainio@gmail.com>
1047 2007-03-14 Ville Vainio <vivainio@gmail.com>
1044
1048
1045 * Extensions/ext_rehashdir.py: Do not do auto_alias
1049 * Extensions/ext_rehashdir.py: Do not do auto_alias
1046 in %rehashdir, it clobbers %store'd aliases.
1050 in %rehashdir, it clobbers %store'd aliases.
1047
1051
1048 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1052 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1049 (beefed up %env) imported for sh profile.
1053 (beefed up %env) imported for sh profile.
1050
1054
1051 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1055 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1052
1056
1053 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1057 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1054 as the default browser.
1058 as the default browser.
1055 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1059 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1056 As igrid displays all attributes it ever encounters, fetch() (which has
1060 As igrid displays all attributes it ever encounters, fetch() (which has
1057 been renamed to _fetch()) doesn't have to recalculate the display attributes
1061 been renamed to _fetch()) doesn't have to recalculate the display attributes
1058 every time a new item is fetched. This should speed up scrolling.
1062 every time a new item is fetched. This should speed up scrolling.
1059
1063
1060 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1064 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1061
1065
1062 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1066 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1063 Schmolck's recently reported tab-completion bug (my previous one
1067 Schmolck's recently reported tab-completion bug (my previous one
1064 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1068 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1065
1069
1066 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1070 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1067
1071
1068 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1072 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1069 Close help window if exiting igrid.
1073 Close help window if exiting igrid.
1070
1074
1071 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1075 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1072
1076
1073 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1077 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1074 before calling functions from readline.
1078 before calling functions from readline.
1075
1079
1076 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1080 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1077
1081
1078 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1082 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1079 igrid is a wxPython-based display object for ipipe. If your system has
1083 igrid is a wxPython-based display object for ipipe. If your system has
1080 wx installed igrid will be the default display. Without wx ipipe falls
1084 wx installed igrid will be the default display. Without wx ipipe falls
1081 back to ibrowse (which needs curses). If no curses is installed ipipe
1085 back to ibrowse (which needs curses). If no curses is installed ipipe
1082 falls back to idump.
1086 falls back to idump.
1083
1087
1084 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1088 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1089
1086 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1090 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1087 my changes from yesterday, they introduced bugs. Will reactivate
1091 my changes from yesterday, they introduced bugs. Will reactivate
1088 once I get a correct solution, which will be much easier thanks to
1092 once I get a correct solution, which will be much easier thanks to
1089 Dan Milstein's new prefilter test suite.
1093 Dan Milstein's new prefilter test suite.
1090
1094
1091 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1096
1093 * IPython/iplib.py (split_user_input): fix input splitting so we
1097 * IPython/iplib.py (split_user_input): fix input splitting so we
1094 don't attempt attribute accesses on things that can't possibly be
1098 don't attempt attribute accesses on things that can't possibly be
1095 valid Python attributes. After a bug report by Alex Schmolck.
1099 valid Python attributes. After a bug report by Alex Schmolck.
1096 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1100 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1097 %magic with explicit % prefix.
1101 %magic with explicit % prefix.
1098
1102
1099 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1103 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1100
1104
1101 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1105 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1102 avoid a DeprecationWarning from GTK.
1106 avoid a DeprecationWarning from GTK.
1103
1107
1104 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1105
1109
1106 * IPython/genutils.py (clock): I modified clock() to return total
1110 * IPython/genutils.py (clock): I modified clock() to return total
1107 time, user+system. This is a more commonly needed metric. I also
1111 time, user+system. This is a more commonly needed metric. I also
1108 introduced the new clocku/clocks to get only user/system time if
1112 introduced the new clocku/clocks to get only user/system time if
1109 one wants those instead.
1113 one wants those instead.
1110
1114
1111 ***WARNING: API CHANGE*** clock() used to return only user time,
1115 ***WARNING: API CHANGE*** clock() used to return only user time,
1112 so if you want exactly the same results as before, use clocku
1116 so if you want exactly the same results as before, use clocku
1113 instead.
1117 instead.
1114
1118
1115 2007-02-22 Ville Vainio <vivainio@gmail.com>
1119 2007-02-22 Ville Vainio <vivainio@gmail.com>
1116
1120
1117 * IPython/Extensions/ipy_p4.py: Extension for improved
1121 * IPython/Extensions/ipy_p4.py: Extension for improved
1118 p4 (perforce version control system) experience.
1122 p4 (perforce version control system) experience.
1119 Adds %p4 magic with p4 command completion and
1123 Adds %p4 magic with p4 command completion and
1120 automatic -G argument (marshall output as python dict)
1124 automatic -G argument (marshall output as python dict)
1121
1125
1122 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1126 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1123
1127
1124 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1128 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1125 stop marks.
1129 stop marks.
1126 (ClearingMixin): a simple mixin to easily make a Demo class clear
1130 (ClearingMixin): a simple mixin to easily make a Demo class clear
1127 the screen in between blocks and have empty marquees. The
1131 the screen in between blocks and have empty marquees. The
1128 ClearDemo and ClearIPDemo classes that use it are included.
1132 ClearDemo and ClearIPDemo classes that use it are included.
1129
1133
1130 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1134 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1135
1132 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1136 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1133 protect against exceptions at Python shutdown time. Patch
1137 protect against exceptions at Python shutdown time. Patch
1134 sumbmitted to upstream.
1138 sumbmitted to upstream.
1135
1139
1136 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1140 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1137
1141
1138 * IPython/Extensions/ibrowse.py: If entering the first object level
1142 * IPython/Extensions/ibrowse.py: If entering the first object level
1139 (i.e. the object for which the browser has been started) fails,
1143 (i.e. the object for which the browser has been started) fails,
1140 now the error is raised directly (aborting the browser) instead of
1144 now the error is raised directly (aborting the browser) instead of
1141 running into an empty levels list later.
1145 running into an empty levels list later.
1142
1146
1143 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1147 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1144
1148
1145 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1149 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1146 for the noitem object.
1150 for the noitem object.
1147
1151
1148 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1152 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1149
1153
1150 * IPython/completer.py (Completer.attr_matches): Fix small
1154 * IPython/completer.py (Completer.attr_matches): Fix small
1151 tab-completion bug with Enthought Traits objects with units.
1155 tab-completion bug with Enthought Traits objects with units.
1152 Thanks to a bug report by Tom Denniston
1156 Thanks to a bug report by Tom Denniston
1153 <tom.denniston-AT-alum.dartmouth.org>.
1157 <tom.denniston-AT-alum.dartmouth.org>.
1154
1158
1155 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1156
1160
1157 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1161 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1158 bug where only .ipy or .py would be completed. Once the first
1162 bug where only .ipy or .py would be completed. Once the first
1159 argument to %run has been given, all completions are valid because
1163 argument to %run has been given, all completions are valid because
1160 they are the arguments to the script, which may well be non-python
1164 they are the arguments to the script, which may well be non-python
1161 filenames.
1165 filenames.
1162
1166
1163 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1167 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1164 to irunner to allow it to correctly support real doctesting of
1168 to irunner to allow it to correctly support real doctesting of
1165 out-of-process ipython code.
1169 out-of-process ipython code.
1166
1170
1167 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1171 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1168 title an option (-noterm_title) because it completely breaks
1172 title an option (-noterm_title) because it completely breaks
1169 doctesting.
1173 doctesting.
1170
1174
1171 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1175 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1172
1176
1173 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1174
1178
1175 * IPython/irunner.py (main): fix small bug where extensions were
1179 * IPython/irunner.py (main): fix small bug where extensions were
1176 not being correctly recognized.
1180 not being correctly recognized.
1177
1181
1178 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1182 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1179
1183
1180 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1184 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1181 a string containing a single line yields the string itself as the
1185 a string containing a single line yields the string itself as the
1182 only item.
1186 only item.
1183
1187
1184 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1188 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1185 object if it's the same as the one on the last level (This avoids
1189 object if it's the same as the one on the last level (This avoids
1186 infinite recursion for one line strings).
1190 infinite recursion for one line strings).
1187
1191
1188 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1192 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1189
1193
1190 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1194 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1191 all output streams before printing tracebacks. This ensures that
1195 all output streams before printing tracebacks. This ensures that
1192 user output doesn't end up interleaved with traceback output.
1196 user output doesn't end up interleaved with traceback output.
1193
1197
1194 2007-01-10 Ville Vainio <vivainio@gmail.com>
1198 2007-01-10 Ville Vainio <vivainio@gmail.com>
1195
1199
1196 * Extensions/envpersist.py: Turbocharged %env that remembers
1200 * Extensions/envpersist.py: Turbocharged %env that remembers
1197 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1201 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1198 "%env VISUAL=jed".
1202 "%env VISUAL=jed".
1199
1203
1200 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1201
1205
1202 * IPython/iplib.py (showtraceback): ensure that we correctly call
1206 * IPython/iplib.py (showtraceback): ensure that we correctly call
1203 custom handlers in all cases (some with pdb were slipping through,
1207 custom handlers in all cases (some with pdb were slipping through,
1204 but I'm not exactly sure why).
1208 but I'm not exactly sure why).
1205
1209
1206 * IPython/Debugger.py (Tracer.__init__): added new class to
1210 * IPython/Debugger.py (Tracer.__init__): added new class to
1207 support set_trace-like usage of IPython's enhanced debugger.
1211 support set_trace-like usage of IPython's enhanced debugger.
1208
1212
1209 2006-12-24 Ville Vainio <vivainio@gmail.com>
1213 2006-12-24 Ville Vainio <vivainio@gmail.com>
1210
1214
1211 * ipmaker.py: more informative message when ipy_user_conf
1215 * ipmaker.py: more informative message when ipy_user_conf
1212 import fails (suggest running %upgrade).
1216 import fails (suggest running %upgrade).
1213
1217
1214 * tools/run_ipy_in_profiler.py: Utility to see where
1218 * tools/run_ipy_in_profiler.py: Utility to see where
1215 the time during IPython startup is spent.
1219 the time during IPython startup is spent.
1216
1220
1217 2006-12-20 Ville Vainio <vivainio@gmail.com>
1221 2006-12-20 Ville Vainio <vivainio@gmail.com>
1218
1222
1219 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1223 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1220
1224
1221 * ipapi.py: Add new ipapi method, expand_alias.
1225 * ipapi.py: Add new ipapi method, expand_alias.
1222
1226
1223 * Release.py: Bump up version to 0.7.4.svn
1227 * Release.py: Bump up version to 0.7.4.svn
1224
1228
1225 2006-12-17 Ville Vainio <vivainio@gmail.com>
1229 2006-12-17 Ville Vainio <vivainio@gmail.com>
1226
1230
1227 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1231 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1228 to work properly on posix too
1232 to work properly on posix too
1229
1233
1230 * Release.py: Update revnum (version is still just 0.7.3).
1234 * Release.py: Update revnum (version is still just 0.7.3).
1231
1235
1232 2006-12-15 Ville Vainio <vivainio@gmail.com>
1236 2006-12-15 Ville Vainio <vivainio@gmail.com>
1233
1237
1234 * scripts/ipython_win_post_install: create ipython.py in
1238 * scripts/ipython_win_post_install: create ipython.py in
1235 prefix + "/scripts".
1239 prefix + "/scripts".
1236
1240
1237 * Release.py: Update version to 0.7.3.
1241 * Release.py: Update version to 0.7.3.
1238
1242
1239 2006-12-14 Ville Vainio <vivainio@gmail.com>
1243 2006-12-14 Ville Vainio <vivainio@gmail.com>
1240
1244
1241 * scripts/ipython_win_post_install: Overwrite old shortcuts
1245 * scripts/ipython_win_post_install: Overwrite old shortcuts
1242 if they already exist
1246 if they already exist
1243
1247
1244 * Release.py: release 0.7.3rc2
1248 * Release.py: release 0.7.3rc2
1245
1249
1246 2006-12-13 Ville Vainio <vivainio@gmail.com>
1250 2006-12-13 Ville Vainio <vivainio@gmail.com>
1247
1251
1248 * Branch and update Release.py for 0.7.3rc1
1252 * Branch and update Release.py for 0.7.3rc1
1249
1253
1250 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1254 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1251
1255
1252 * IPython/Shell.py (IPShellWX): update for current WX naming
1256 * IPython/Shell.py (IPShellWX): update for current WX naming
1253 conventions, to avoid a deprecation warning with current WX
1257 conventions, to avoid a deprecation warning with current WX
1254 versions. Thanks to a report by Danny Shevitz.
1258 versions. Thanks to a report by Danny Shevitz.
1255
1259
1256 2006-12-12 Ville Vainio <vivainio@gmail.com>
1260 2006-12-12 Ville Vainio <vivainio@gmail.com>
1257
1261
1258 * ipmaker.py: apply david cournapeau's patch to make
1262 * ipmaker.py: apply david cournapeau's patch to make
1259 import_some work properly even when ipythonrc does
1263 import_some work properly even when ipythonrc does
1260 import_some on empty list (it was an old bug!).
1264 import_some on empty list (it was an old bug!).
1261
1265
1262 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1266 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1263 Add deprecation note to ipythonrc and a url to wiki
1267 Add deprecation note to ipythonrc and a url to wiki
1264 in ipy_user_conf.py
1268 in ipy_user_conf.py
1265
1269
1266
1270
1267 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1271 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1268 as if it was typed on IPython command prompt, i.e.
1272 as if it was typed on IPython command prompt, i.e.
1269 as IPython script.
1273 as IPython script.
1270
1274
1271 * example-magic.py, magic_grepl.py: remove outdated examples
1275 * example-magic.py, magic_grepl.py: remove outdated examples
1272
1276
1273 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1277 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1274
1278
1275 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1279 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1276 is called before any exception has occurred.
1280 is called before any exception has occurred.
1277
1281
1278 2006-12-08 Ville Vainio <vivainio@gmail.com>
1282 2006-12-08 Ville Vainio <vivainio@gmail.com>
1279
1283
1280 * Extensions/ipy_stock_completers.py: fix cd completer
1284 * Extensions/ipy_stock_completers.py: fix cd completer
1281 to translate /'s to \'s again.
1285 to translate /'s to \'s again.
1282
1286
1283 * completer.py: prevent traceback on file completions w/
1287 * completer.py: prevent traceback on file completions w/
1284 backslash.
1288 backslash.
1285
1289
1286 * Release.py: Update release number to 0.7.3b3 for release
1290 * Release.py: Update release number to 0.7.3b3 for release
1287
1291
1288 2006-12-07 Ville Vainio <vivainio@gmail.com>
1292 2006-12-07 Ville Vainio <vivainio@gmail.com>
1289
1293
1290 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1294 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1291 while executing external code. Provides more shell-like behaviour
1295 while executing external code. Provides more shell-like behaviour
1292 and overall better response to ctrl + C / ctrl + break.
1296 and overall better response to ctrl + C / ctrl + break.
1293
1297
1294 * tools/make_tarball.py: new script to create tarball straight from svn
1298 * tools/make_tarball.py: new script to create tarball straight from svn
1295 (setup.py sdist doesn't work on win32).
1299 (setup.py sdist doesn't work on win32).
1296
1300
1297 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1301 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1298 on dirnames with spaces and use the default completer instead.
1302 on dirnames with spaces and use the default completer instead.
1299
1303
1300 * Revision.py: Change version to 0.7.3b2 for release.
1304 * Revision.py: Change version to 0.7.3b2 for release.
1301
1305
1302 2006-12-05 Ville Vainio <vivainio@gmail.com>
1306 2006-12-05 Ville Vainio <vivainio@gmail.com>
1303
1307
1304 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1308 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1305 pydb patch 4 (rm debug printing, py 2.5 checking)
1309 pydb patch 4 (rm debug printing, py 2.5 checking)
1306
1310
1307 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1311 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1308 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1312 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1309 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1313 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1310 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1314 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1311 object the cursor was on before the refresh. The command "markrange" is
1315 object the cursor was on before the refresh. The command "markrange" is
1312 mapped to "%" now.
1316 mapped to "%" now.
1313 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1317 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1314
1318
1315 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1319 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1316
1320
1317 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1321 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1318 interactive debugger on the last traceback, without having to call
1322 interactive debugger on the last traceback, without having to call
1319 %pdb and rerun your code. Made minor changes in various modules,
1323 %pdb and rerun your code. Made minor changes in various modules,
1320 should automatically recognize pydb if available.
1324 should automatically recognize pydb if available.
1321
1325
1322 2006-11-28 Ville Vainio <vivainio@gmail.com>
1326 2006-11-28 Ville Vainio <vivainio@gmail.com>
1323
1327
1324 * completer.py: If the text start with !, show file completions
1328 * completer.py: If the text start with !, show file completions
1325 properly. This helps when trying to complete command name
1329 properly. This helps when trying to complete command name
1326 for shell escapes.
1330 for shell escapes.
1327
1331
1328 2006-11-27 Ville Vainio <vivainio@gmail.com>
1332 2006-11-27 Ville Vainio <vivainio@gmail.com>
1329
1333
1330 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1334 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1331 der Walt. Clean up svn and hg completers by using a common
1335 der Walt. Clean up svn and hg completers by using a common
1332 vcs_completer.
1336 vcs_completer.
1333
1337
1334 2006-11-26 Ville Vainio <vivainio@gmail.com>
1338 2006-11-26 Ville Vainio <vivainio@gmail.com>
1335
1339
1336 * Remove ipconfig and %config; you should use _ip.options structure
1340 * Remove ipconfig and %config; you should use _ip.options structure
1337 directly instead!
1341 directly instead!
1338
1342
1339 * genutils.py: add wrap_deprecated function for deprecating callables
1343 * genutils.py: add wrap_deprecated function for deprecating callables
1340
1344
1341 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1345 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1342 _ip.system instead. ipalias is redundant.
1346 _ip.system instead. ipalias is redundant.
1343
1347
1344 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1348 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1345 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1349 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1346 explicit.
1350 explicit.
1347
1351
1348 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1352 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1349 completer. Try it by entering 'hg ' and pressing tab.
1353 completer. Try it by entering 'hg ' and pressing tab.
1350
1354
1351 * macro.py: Give Macro a useful __repr__ method
1355 * macro.py: Give Macro a useful __repr__ method
1352
1356
1353 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1357 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1354
1358
1355 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1359 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1356 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1360 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1357 we don't get a duplicate ipipe module, where registration of the xrepr
1361 we don't get a duplicate ipipe module, where registration of the xrepr
1358 implementation for Text is useless.
1362 implementation for Text is useless.
1359
1363
1360 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1364 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1361
1365
1362 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1366 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1363
1367
1364 2006-11-24 Ville Vainio <vivainio@gmail.com>
1368 2006-11-24 Ville Vainio <vivainio@gmail.com>
1365
1369
1366 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1370 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1367 try to use "cProfile" instead of the slower pure python
1371 try to use "cProfile" instead of the slower pure python
1368 "profile"
1372 "profile"
1369
1373
1370 2006-11-23 Ville Vainio <vivainio@gmail.com>
1374 2006-11-23 Ville Vainio <vivainio@gmail.com>
1371
1375
1372 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1376 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1373 Qt+IPython+Designer link in documentation.
1377 Qt+IPython+Designer link in documentation.
1374
1378
1375 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1379 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1376 correct Pdb object to %pydb.
1380 correct Pdb object to %pydb.
1377
1381
1378
1382
1379 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1383 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1380 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1384 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1381 generic xrepr(), otherwise the list implementation would kick in.
1385 generic xrepr(), otherwise the list implementation would kick in.
1382
1386
1383 2006-11-21 Ville Vainio <vivainio@gmail.com>
1387 2006-11-21 Ville Vainio <vivainio@gmail.com>
1384
1388
1385 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1389 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1386 with one from UserConfig.
1390 with one from UserConfig.
1387
1391
1388 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1392 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1389 it was missing which broke the sh profile.
1393 it was missing which broke the sh profile.
1390
1394
1391 * completer.py: file completer now uses explicit '/' instead
1395 * completer.py: file completer now uses explicit '/' instead
1392 of os.path.join, expansion of 'foo' was broken on win32
1396 of os.path.join, expansion of 'foo' was broken on win32
1393 if there was one directory with name 'foobar'.
1397 if there was one directory with name 'foobar'.
1394
1398
1395 * A bunch of patches from Kirill Smelkov:
1399 * A bunch of patches from Kirill Smelkov:
1396
1400
1397 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1401 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1398
1402
1399 * [patch 7/9] Implement %page -r (page in raw mode) -
1403 * [patch 7/9] Implement %page -r (page in raw mode) -
1400
1404
1401 * [patch 5/9] ScientificPython webpage has moved
1405 * [patch 5/9] ScientificPython webpage has moved
1402
1406
1403 * [patch 4/9] The manual mentions %ds, should be %dhist
1407 * [patch 4/9] The manual mentions %ds, should be %dhist
1404
1408
1405 * [patch 3/9] Kill old bits from %prun doc.
1409 * [patch 3/9] Kill old bits from %prun doc.
1406
1410
1407 * [patch 1/9] Fix typos here and there.
1411 * [patch 1/9] Fix typos here and there.
1408
1412
1409 2006-11-08 Ville Vainio <vivainio@gmail.com>
1413 2006-11-08 Ville Vainio <vivainio@gmail.com>
1410
1414
1411 * completer.py (attr_matches): catch all exceptions raised
1415 * completer.py (attr_matches): catch all exceptions raised
1412 by eval of expr with dots.
1416 by eval of expr with dots.
1413
1417
1414 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1418 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1419
1416 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1420 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1417 input if it starts with whitespace. This allows you to paste
1421 input if it starts with whitespace. This allows you to paste
1418 indented input from any editor without manually having to type in
1422 indented input from any editor without manually having to type in
1419 the 'if 1:', which is convenient when working interactively.
1423 the 'if 1:', which is convenient when working interactively.
1420 Slightly modifed version of a patch by Bo Peng
1424 Slightly modifed version of a patch by Bo Peng
1421 <bpeng-AT-rice.edu>.
1425 <bpeng-AT-rice.edu>.
1422
1426
1423 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1427 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1424
1428
1425 * IPython/irunner.py (main): modified irunner so it automatically
1429 * IPython/irunner.py (main): modified irunner so it automatically
1426 recognizes the right runner to use based on the extension (.py for
1430 recognizes the right runner to use based on the extension (.py for
1427 python, .ipy for ipython and .sage for sage).
1431 python, .ipy for ipython and .sage for sage).
1428
1432
1429 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1433 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1430 visible in ipapi as ip.config(), to programatically control the
1434 visible in ipapi as ip.config(), to programatically control the
1431 internal rc object. There's an accompanying %config magic for
1435 internal rc object. There's an accompanying %config magic for
1432 interactive use, which has been enhanced to match the
1436 interactive use, which has been enhanced to match the
1433 funtionality in ipconfig.
1437 funtionality in ipconfig.
1434
1438
1435 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1439 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1436 so it's not just a toggle, it now takes an argument. Add support
1440 so it's not just a toggle, it now takes an argument. Add support
1437 for a customizable header when making system calls, as the new
1441 for a customizable header when making system calls, as the new
1438 system_header variable in the ipythonrc file.
1442 system_header variable in the ipythonrc file.
1439
1443
1440 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1444 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1441
1445
1442 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1446 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1443 generic functions (using Philip J. Eby's simplegeneric package).
1447 generic functions (using Philip J. Eby's simplegeneric package).
1444 This makes it possible to customize the display of third-party classes
1448 This makes it possible to customize the display of third-party classes
1445 without having to monkeypatch them. xiter() no longer supports a mode
1449 without having to monkeypatch them. xiter() no longer supports a mode
1446 argument and the XMode class has been removed. The same functionality can
1450 argument and the XMode class has been removed. The same functionality can
1447 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1451 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1448 One consequence of the switch to generic functions is that xrepr() and
1452 One consequence of the switch to generic functions is that xrepr() and
1449 xattrs() implementation must define the default value for the mode
1453 xattrs() implementation must define the default value for the mode
1450 argument themselves and xattrs() implementations must return real
1454 argument themselves and xattrs() implementations must return real
1451 descriptors.
1455 descriptors.
1452
1456
1453 * IPython/external: This new subpackage will contain all third-party
1457 * IPython/external: This new subpackage will contain all third-party
1454 packages that are bundled with IPython. (The first one is simplegeneric).
1458 packages that are bundled with IPython. (The first one is simplegeneric).
1455
1459
1456 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1460 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1457 directory which as been dropped in r1703.
1461 directory which as been dropped in r1703.
1458
1462
1459 * IPython/Extensions/ipipe.py (iless): Fixed.
1463 * IPython/Extensions/ipipe.py (iless): Fixed.
1460
1464
1461 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1465 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1462
1466
1463 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1467 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1464
1468
1465 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1469 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1466 handling in variable expansion so that shells and magics recognize
1470 handling in variable expansion so that shells and magics recognize
1467 function local scopes correctly. Bug reported by Brian.
1471 function local scopes correctly. Bug reported by Brian.
1468
1472
1469 * scripts/ipython: remove the very first entry in sys.path which
1473 * scripts/ipython: remove the very first entry in sys.path which
1470 Python auto-inserts for scripts, so that sys.path under IPython is
1474 Python auto-inserts for scripts, so that sys.path under IPython is
1471 as similar as possible to that under plain Python.
1475 as similar as possible to that under plain Python.
1472
1476
1473 * IPython/completer.py (IPCompleter.file_matches): Fix
1477 * IPython/completer.py (IPCompleter.file_matches): Fix
1474 tab-completion so that quotes are not closed unless the completion
1478 tab-completion so that quotes are not closed unless the completion
1475 is unambiguous. After a request by Stefan. Minor cleanups in
1479 is unambiguous. After a request by Stefan. Minor cleanups in
1476 ipy_stock_completers.
1480 ipy_stock_completers.
1477
1481
1478 2006-11-02 Ville Vainio <vivainio@gmail.com>
1482 2006-11-02 Ville Vainio <vivainio@gmail.com>
1479
1483
1480 * ipy_stock_completers.py: Add %run and %cd completers.
1484 * ipy_stock_completers.py: Add %run and %cd completers.
1481
1485
1482 * completer.py: Try running custom completer for both
1486 * completer.py: Try running custom completer for both
1483 "foo" and "%foo" if the command is just "foo". Ignore case
1487 "foo" and "%foo" if the command is just "foo". Ignore case
1484 when filtering possible completions.
1488 when filtering possible completions.
1485
1489
1486 * UserConfig/ipy_user_conf.py: install stock completers as default
1490 * UserConfig/ipy_user_conf.py: install stock completers as default
1487
1491
1488 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1492 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1489 simplified readline history save / restore through a wrapper
1493 simplified readline history save / restore through a wrapper
1490 function
1494 function
1491
1495
1492
1496
1493 2006-10-31 Ville Vainio <vivainio@gmail.com>
1497 2006-10-31 Ville Vainio <vivainio@gmail.com>
1494
1498
1495 * strdispatch.py, completer.py, ipy_stock_completers.py:
1499 * strdispatch.py, completer.py, ipy_stock_completers.py:
1496 Allow str_key ("command") in completer hooks. Implement
1500 Allow str_key ("command") in completer hooks. Implement
1497 trivial completer for 'import' (stdlib modules only). Rename
1501 trivial completer for 'import' (stdlib modules only). Rename
1498 ipy_linux_package_managers.py to ipy_stock_completers.py.
1502 ipy_linux_package_managers.py to ipy_stock_completers.py.
1499 SVN completer.
1503 SVN completer.
1500
1504
1501 * Extensions/ledit.py: %magic line editor for easily and
1505 * Extensions/ledit.py: %magic line editor for easily and
1502 incrementally manipulating lists of strings. The magic command
1506 incrementally manipulating lists of strings. The magic command
1503 name is %led.
1507 name is %led.
1504
1508
1505 2006-10-30 Ville Vainio <vivainio@gmail.com>
1509 2006-10-30 Ville Vainio <vivainio@gmail.com>
1506
1510
1507 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1511 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1508 Bernsteins's patches for pydb integration.
1512 Bernsteins's patches for pydb integration.
1509 http://bashdb.sourceforge.net/pydb/
1513 http://bashdb.sourceforge.net/pydb/
1510
1514
1511 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1515 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1512 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1516 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1513 custom completer hook to allow the users to implement their own
1517 custom completer hook to allow the users to implement their own
1514 completers. See ipy_linux_package_managers.py for example. The
1518 completers. See ipy_linux_package_managers.py for example. The
1515 hook name is 'complete_command'.
1519 hook name is 'complete_command'.
1516
1520
1517 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1521 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1518
1522
1519 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1523 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1520 Numeric leftovers.
1524 Numeric leftovers.
1521
1525
1522 * ipython.el (py-execute-region): apply Stefan's patch to fix
1526 * ipython.el (py-execute-region): apply Stefan's patch to fix
1523 garbled results if the python shell hasn't been previously started.
1527 garbled results if the python shell hasn't been previously started.
1524
1528
1525 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1529 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1526 pretty generic function and useful for other things.
1530 pretty generic function and useful for other things.
1527
1531
1528 * IPython/OInspect.py (getsource): Add customizable source
1532 * IPython/OInspect.py (getsource): Add customizable source
1529 extractor. After a request/patch form W. Stein (SAGE).
1533 extractor. After a request/patch form W. Stein (SAGE).
1530
1534
1531 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1535 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1532 window size to a more reasonable value from what pexpect does,
1536 window size to a more reasonable value from what pexpect does,
1533 since their choice causes wrapping bugs with long input lines.
1537 since their choice causes wrapping bugs with long input lines.
1534
1538
1535 2006-10-28 Ville Vainio <vivainio@gmail.com>
1539 2006-10-28 Ville Vainio <vivainio@gmail.com>
1536
1540
1537 * Magic.py (%run): Save and restore the readline history from
1541 * Magic.py (%run): Save and restore the readline history from
1538 file around %run commands to prevent side effects from
1542 file around %run commands to prevent side effects from
1539 %runned programs that might use readline (e.g. pydb).
1543 %runned programs that might use readline (e.g. pydb).
1540
1544
1541 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1545 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1542 invoking the pydb enhanced debugger.
1546 invoking the pydb enhanced debugger.
1543
1547
1544 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1548 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1545
1549
1546 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1550 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1547 call the base class method and propagate the return value to
1551 call the base class method and propagate the return value to
1548 ifile. This is now done by path itself.
1552 ifile. This is now done by path itself.
1549
1553
1550 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1551
1555
1552 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1556 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1553 api: set_crash_handler(), to expose the ability to change the
1557 api: set_crash_handler(), to expose the ability to change the
1554 internal crash handler.
1558 internal crash handler.
1555
1559
1556 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1560 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1557 the various parameters of the crash handler so that apps using
1561 the various parameters of the crash handler so that apps using
1558 IPython as their engine can customize crash handling. Ipmlemented
1562 IPython as their engine can customize crash handling. Ipmlemented
1559 at the request of SAGE.
1563 at the request of SAGE.
1560
1564
1561 2006-10-14 Ville Vainio <vivainio@gmail.com>
1565 2006-10-14 Ville Vainio <vivainio@gmail.com>
1562
1566
1563 * Magic.py, ipython.el: applied first "safe" part of Rocky
1567 * Magic.py, ipython.el: applied first "safe" part of Rocky
1564 Bernstein's patch set for pydb integration.
1568 Bernstein's patch set for pydb integration.
1565
1569
1566 * Magic.py (%unalias, %alias): %store'd aliases can now be
1570 * Magic.py (%unalias, %alias): %store'd aliases can now be
1567 removed with '%unalias'. %alias w/o args now shows most
1571 removed with '%unalias'. %alias w/o args now shows most
1568 interesting (stored / manually defined) aliases last
1572 interesting (stored / manually defined) aliases last
1569 where they catch the eye w/o scrolling.
1573 where they catch the eye w/o scrolling.
1570
1574
1571 * Magic.py (%rehashx), ext_rehashdir.py: files with
1575 * Magic.py (%rehashx), ext_rehashdir.py: files with
1572 'py' extension are always considered executable, even
1576 'py' extension are always considered executable, even
1573 when not in PATHEXT environment variable.
1577 when not in PATHEXT environment variable.
1574
1578
1575 2006-10-12 Ville Vainio <vivainio@gmail.com>
1579 2006-10-12 Ville Vainio <vivainio@gmail.com>
1576
1580
1577 * jobctrl.py: Add new "jobctrl" extension for spawning background
1581 * jobctrl.py: Add new "jobctrl" extension for spawning background
1578 processes with "&find /". 'import jobctrl' to try it out. Requires
1582 processes with "&find /". 'import jobctrl' to try it out. Requires
1579 'subprocess' module, standard in python 2.4+.
1583 'subprocess' module, standard in python 2.4+.
1580
1584
1581 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1585 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1582 so if foo -> bar and bar -> baz, then foo -> baz.
1586 so if foo -> bar and bar -> baz, then foo -> baz.
1583
1587
1584 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1588 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1585
1589
1586 * IPython/Magic.py (Magic.parse_options): add a new posix option
1590 * IPython/Magic.py (Magic.parse_options): add a new posix option
1587 to allow parsing of input args in magics that doesn't strip quotes
1591 to allow parsing of input args in magics that doesn't strip quotes
1588 (if posix=False). This also closes %timeit bug reported by
1592 (if posix=False). This also closes %timeit bug reported by
1589 Stefan.
1593 Stefan.
1590
1594
1591 2006-10-03 Ville Vainio <vivainio@gmail.com>
1595 2006-10-03 Ville Vainio <vivainio@gmail.com>
1592
1596
1593 * iplib.py (raw_input, interact): Return ValueError catching for
1597 * iplib.py (raw_input, interact): Return ValueError catching for
1594 raw_input. Fixes infinite loop for sys.stdin.close() or
1598 raw_input. Fixes infinite loop for sys.stdin.close() or
1595 sys.stdout.close().
1599 sys.stdout.close().
1596
1600
1597 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1601 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1598
1602
1599 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1603 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1600 to help in handling doctests. irunner is now pretty useful for
1604 to help in handling doctests. irunner is now pretty useful for
1601 running standalone scripts and simulate a full interactive session
1605 running standalone scripts and simulate a full interactive session
1602 in a format that can be then pasted as a doctest.
1606 in a format that can be then pasted as a doctest.
1603
1607
1604 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1608 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1605 on top of the default (useless) ones. This also fixes the nasty
1609 on top of the default (useless) ones. This also fixes the nasty
1606 way in which 2.5's Quitter() exits (reverted [1785]).
1610 way in which 2.5's Quitter() exits (reverted [1785]).
1607
1611
1608 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1612 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1609 2.5.
1613 2.5.
1610
1614
1611 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1615 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1612 color scheme is updated as well when color scheme is changed
1616 color scheme is updated as well when color scheme is changed
1613 interactively.
1617 interactively.
1614
1618
1615 2006-09-27 Ville Vainio <vivainio@gmail.com>
1619 2006-09-27 Ville Vainio <vivainio@gmail.com>
1616
1620
1617 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1621 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1618 infinite loop and just exit. It's a hack, but will do for a while.
1622 infinite loop and just exit. It's a hack, but will do for a while.
1619
1623
1620 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1624 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1621
1625
1622 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1626 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1623 the constructor, this makes it possible to get a list of only directories
1627 the constructor, this makes it possible to get a list of only directories
1624 or only files.
1628 or only files.
1625
1629
1626 2006-08-12 Ville Vainio <vivainio@gmail.com>
1630 2006-08-12 Ville Vainio <vivainio@gmail.com>
1627
1631
1628 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1632 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1629 they broke unittest
1633 they broke unittest
1630
1634
1631 2006-08-11 Ville Vainio <vivainio@gmail.com>
1635 2006-08-11 Ville Vainio <vivainio@gmail.com>
1632
1636
1633 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1637 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1634 by resolving issue properly, i.e. by inheriting FakeModule
1638 by resolving issue properly, i.e. by inheriting FakeModule
1635 from types.ModuleType. Pickling ipython interactive data
1639 from types.ModuleType. Pickling ipython interactive data
1636 should still work as usual (testing appreciated).
1640 should still work as usual (testing appreciated).
1637
1641
1638 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1642 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1639
1643
1640 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1644 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1641 running under python 2.3 with code from 2.4 to fix a bug with
1645 running under python 2.3 with code from 2.4 to fix a bug with
1642 help(). Reported by the Debian maintainers, Norbert Tretkowski
1646 help(). Reported by the Debian maintainers, Norbert Tretkowski
1643 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1647 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1644 <afayolle-AT-debian.org>.
1648 <afayolle-AT-debian.org>.
1645
1649
1646 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1650 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1647
1651
1648 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1652 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1649 (which was displaying "quit" twice).
1653 (which was displaying "quit" twice).
1650
1654
1651 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1655 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1652
1656
1653 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1657 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1654 the mode argument).
1658 the mode argument).
1655
1659
1656 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1660 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1657
1661
1658 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1662 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1659 not running under IPython.
1663 not running under IPython.
1660
1664
1661 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1665 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1662 and make it iterable (iterating over the attribute itself). Add two new
1666 and make it iterable (iterating over the attribute itself). Add two new
1663 magic strings for __xattrs__(): If the string starts with "-", the attribute
1667 magic strings for __xattrs__(): If the string starts with "-", the attribute
1664 will not be displayed in ibrowse's detail view (but it can still be
1668 will not be displayed in ibrowse's detail view (but it can still be
1665 iterated over). This makes it possible to add attributes that are large
1669 iterated over). This makes it possible to add attributes that are large
1666 lists or generator methods to the detail view. Replace magic attribute names
1670 lists or generator methods to the detail view. Replace magic attribute names
1667 and _attrname() and _getattr() with "descriptors": For each type of magic
1671 and _attrname() and _getattr() with "descriptors": For each type of magic
1668 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1672 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1669 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1673 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1670 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1674 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1671 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1675 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1672 are still supported.
1676 are still supported.
1673
1677
1674 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1678 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1675 fails in ibrowse.fetch(), the exception object is added as the last item
1679 fails in ibrowse.fetch(), the exception object is added as the last item
1676 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1680 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1677 a generator throws an exception midway through execution.
1681 a generator throws an exception midway through execution.
1678
1682
1679 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1683 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1680 encoding into methods.
1684 encoding into methods.
1681
1685
1682 2006-07-26 Ville Vainio <vivainio@gmail.com>
1686 2006-07-26 Ville Vainio <vivainio@gmail.com>
1683
1687
1684 * iplib.py: history now stores multiline input as single
1688 * iplib.py: history now stores multiline input as single
1685 history entries. Patch by Jorgen Cederlof.
1689 history entries. Patch by Jorgen Cederlof.
1686
1690
1687 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1691 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1688
1692
1689 * IPython/Extensions/ibrowse.py: Make cursor visible over
1693 * IPython/Extensions/ibrowse.py: Make cursor visible over
1690 non existing attributes.
1694 non existing attributes.
1691
1695
1692 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1696 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1693
1697
1694 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1698 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1695 error output of the running command doesn't mess up the screen.
1699 error output of the running command doesn't mess up the screen.
1696
1700
1697 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1701 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1698
1702
1699 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1703 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1700 argument. This sorts the items themselves.
1704 argument. This sorts the items themselves.
1701
1705
1702 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1706 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1703
1707
1704 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1708 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1705 Compile expression strings into code objects. This should speed
1709 Compile expression strings into code objects. This should speed
1706 up ifilter and friends somewhat.
1710 up ifilter and friends somewhat.
1707
1711
1708 2006-07-08 Ville Vainio <vivainio@gmail.com>
1712 2006-07-08 Ville Vainio <vivainio@gmail.com>
1709
1713
1710 * Magic.py: %cpaste now strips > from the beginning of lines
1714 * Magic.py: %cpaste now strips > from the beginning of lines
1711 to ease pasting quoted code from emails. Contributed by
1715 to ease pasting quoted code from emails. Contributed by
1712 Stefan van der Walt.
1716 Stefan van der Walt.
1713
1717
1714 2006-06-29 Ville Vainio <vivainio@gmail.com>
1718 2006-06-29 Ville Vainio <vivainio@gmail.com>
1715
1719
1716 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1720 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1717 mode, patch contributed by Darren Dale. NEEDS TESTING!
1721 mode, patch contributed by Darren Dale. NEEDS TESTING!
1718
1722
1719 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1723 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1720
1724
1721 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1725 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1722 a blue background. Fix fetching new display rows when the browser
1726 a blue background. Fix fetching new display rows when the browser
1723 scrolls more than a screenful (e.g. by using the goto command).
1727 scrolls more than a screenful (e.g. by using the goto command).
1724
1728
1725 2006-06-27 Ville Vainio <vivainio@gmail.com>
1729 2006-06-27 Ville Vainio <vivainio@gmail.com>
1726
1730
1727 * Magic.py (_inspect, _ofind) Apply David Huard's
1731 * Magic.py (_inspect, _ofind) Apply David Huard's
1728 patch for displaying the correct docstring for 'property'
1732 patch for displaying the correct docstring for 'property'
1729 attributes.
1733 attributes.
1730
1734
1731 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1735 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1732
1736
1733 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1737 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1734 commands into the methods implementing them.
1738 commands into the methods implementing them.
1735
1739
1736 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1740 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1737
1741
1738 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1742 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1739 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1743 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1740 autoindent support was authored by Jin Liu.
1744 autoindent support was authored by Jin Liu.
1741
1745
1742 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1746 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1743
1747
1744 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1748 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1745 for keymaps with a custom class that simplifies handling.
1749 for keymaps with a custom class that simplifies handling.
1746
1750
1747 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1751 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1748
1752
1749 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1753 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1750 resizing. This requires Python 2.5 to work.
1754 resizing. This requires Python 2.5 to work.
1751
1755
1752 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1756 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1753
1757
1754 * IPython/Extensions/ibrowse.py: Add two new commands to
1758 * IPython/Extensions/ibrowse.py: Add two new commands to
1755 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1759 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1756 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1760 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1757 attributes again. Remapped the help command to "?". Display
1761 attributes again. Remapped the help command to "?". Display
1758 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1762 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1759 as keys for the "home" and "end" commands. Add three new commands
1763 as keys for the "home" and "end" commands. Add three new commands
1760 to the input mode for "find" and friends: "delend" (CTRL-K)
1764 to the input mode for "find" and friends: "delend" (CTRL-K)
1761 deletes to the end of line. "incsearchup" searches upwards in the
1765 deletes to the end of line. "incsearchup" searches upwards in the
1762 command history for an input that starts with the text before the cursor.
1766 command history for an input that starts with the text before the cursor.
1763 "incsearchdown" does the same downwards. Removed a bogus mapping of
1767 "incsearchdown" does the same downwards. Removed a bogus mapping of
1764 the x key to "delete".
1768 the x key to "delete".
1765
1769
1766 2006-06-15 Ville Vainio <vivainio@gmail.com>
1770 2006-06-15 Ville Vainio <vivainio@gmail.com>
1767
1771
1768 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1772 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1769 used to create prompts dynamically, instead of the "old" way of
1773 used to create prompts dynamically, instead of the "old" way of
1770 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1774 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1771 way still works (it's invoked by the default hook), of course.
1775 way still works (it's invoked by the default hook), of course.
1772
1776
1773 * Prompts.py: added generate_output_prompt hook for altering output
1777 * Prompts.py: added generate_output_prompt hook for altering output
1774 prompt
1778 prompt
1775
1779
1776 * Release.py: Changed version string to 0.7.3.svn.
1780 * Release.py: Changed version string to 0.7.3.svn.
1777
1781
1778 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1782 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1779
1783
1780 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1784 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1781 the call to fetch() always tries to fetch enough data for at least one
1785 the call to fetch() always tries to fetch enough data for at least one
1782 full screen. This makes it possible to simply call moveto(0,0,True) in
1786 full screen. This makes it possible to simply call moveto(0,0,True) in
1783 the constructor. Fix typos and removed the obsolete goto attribute.
1787 the constructor. Fix typos and removed the obsolete goto attribute.
1784
1788
1785 2006-06-12 Ville Vainio <vivainio@gmail.com>
1789 2006-06-12 Ville Vainio <vivainio@gmail.com>
1786
1790
1787 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1791 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1788 allowing $variable interpolation within multiline statements,
1792 allowing $variable interpolation within multiline statements,
1789 though so far only with "sh" profile for a testing period.
1793 though so far only with "sh" profile for a testing period.
1790 The patch also enables splitting long commands with \ but it
1794 The patch also enables splitting long commands with \ but it
1791 doesn't work properly yet.
1795 doesn't work properly yet.
1792
1796
1793 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1797 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1794
1798
1795 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1799 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1796 input history and the position of the cursor in the input history for
1800 input history and the position of the cursor in the input history for
1797 the find, findbackwards and goto command.
1801 the find, findbackwards and goto command.
1798
1802
1799 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1803 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1800
1804
1801 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1805 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1802 implements the basic functionality of browser commands that require
1806 implements the basic functionality of browser commands that require
1803 input. Reimplement the goto, find and findbackwards commands as
1807 input. Reimplement the goto, find and findbackwards commands as
1804 subclasses of _CommandInput. Add an input history and keymaps to those
1808 subclasses of _CommandInput. Add an input history and keymaps to those
1805 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1809 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1806 execute commands.
1810 execute commands.
1807
1811
1808 2006-06-07 Ville Vainio <vivainio@gmail.com>
1812 2006-06-07 Ville Vainio <vivainio@gmail.com>
1809
1813
1810 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1814 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1811 running the batch files instead of leaving the session open.
1815 running the batch files instead of leaving the session open.
1812
1816
1813 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1817 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1814
1818
1815 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1819 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1816 the original fix was incomplete. Patch submitted by W. Maier.
1820 the original fix was incomplete. Patch submitted by W. Maier.
1817
1821
1818 2006-06-07 Ville Vainio <vivainio@gmail.com>
1822 2006-06-07 Ville Vainio <vivainio@gmail.com>
1819
1823
1820 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1824 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1821 Confirmation prompts can be supressed by 'quiet' option.
1825 Confirmation prompts can be supressed by 'quiet' option.
1822 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1826 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1823
1827
1824 2006-06-06 *** Released version 0.7.2
1828 2006-06-06 *** Released version 0.7.2
1825
1829
1826 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1830 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1827
1831
1828 * IPython/Release.py (version): Made 0.7.2 final for release.
1832 * IPython/Release.py (version): Made 0.7.2 final for release.
1829 Repo tagged and release cut.
1833 Repo tagged and release cut.
1830
1834
1831 2006-06-05 Ville Vainio <vivainio@gmail.com>
1835 2006-06-05 Ville Vainio <vivainio@gmail.com>
1832
1836
1833 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1837 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1834 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1838 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1835
1839
1836 * upgrade_dir.py: try import 'path' module a bit harder
1840 * upgrade_dir.py: try import 'path' module a bit harder
1837 (for %upgrade)
1841 (for %upgrade)
1838
1842
1839 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1843 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1840
1844
1841 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1845 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1842 instead of looping 20 times.
1846 instead of looping 20 times.
1843
1847
1844 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1848 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1845 correctly at initialization time. Bug reported by Krishna Mohan
1849 correctly at initialization time. Bug reported by Krishna Mohan
1846 Gundu <gkmohan-AT-gmail.com> on the user list.
1850 Gundu <gkmohan-AT-gmail.com> on the user list.
1847
1851
1848 * IPython/Release.py (version): Mark 0.7.2 version to start
1852 * IPython/Release.py (version): Mark 0.7.2 version to start
1849 testing for release on 06/06.
1853 testing for release on 06/06.
1850
1854
1851 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1855 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1852
1856
1853 * scripts/irunner: thin script interface so users don't have to
1857 * scripts/irunner: thin script interface so users don't have to
1854 find the module and call it as an executable, since modules rarely
1858 find the module and call it as an executable, since modules rarely
1855 live in people's PATH.
1859 live in people's PATH.
1856
1860
1857 * IPython/irunner.py (InteractiveRunner.__init__): added
1861 * IPython/irunner.py (InteractiveRunner.__init__): added
1858 delaybeforesend attribute to control delays with newer versions of
1862 delaybeforesend attribute to control delays with newer versions of
1859 pexpect. Thanks to detailed help from pexpect's author, Noah
1863 pexpect. Thanks to detailed help from pexpect's author, Noah
1860 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1864 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1861 correctly (it works in NoColor mode).
1865 correctly (it works in NoColor mode).
1862
1866
1863 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1867 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1864 SAGE list, from improper log() calls.
1868 SAGE list, from improper log() calls.
1865
1869
1866 2006-05-31 Ville Vainio <vivainio@gmail.com>
1870 2006-05-31 Ville Vainio <vivainio@gmail.com>
1867
1871
1868 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1872 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1869 with args in parens to work correctly with dirs that have spaces.
1873 with args in parens to work correctly with dirs that have spaces.
1870
1874
1871 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1875 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1872
1876
1873 * IPython/Logger.py (Logger.logstart): add option to log raw input
1877 * IPython/Logger.py (Logger.logstart): add option to log raw input
1874 instead of the processed one. A -r flag was added to the
1878 instead of the processed one. A -r flag was added to the
1875 %logstart magic used for controlling logging.
1879 %logstart magic used for controlling logging.
1876
1880
1877 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1881 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1878
1882
1879 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1883 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1880 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1884 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1881 recognize the option. After a bug report by Will Maier. This
1885 recognize the option. After a bug report by Will Maier. This
1882 closes #64 (will do it after confirmation from W. Maier).
1886 closes #64 (will do it after confirmation from W. Maier).
1883
1887
1884 * IPython/irunner.py: New module to run scripts as if manually
1888 * IPython/irunner.py: New module to run scripts as if manually
1885 typed into an interactive environment, based on pexpect. After a
1889 typed into an interactive environment, based on pexpect. After a
1886 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1890 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1887 ipython-user list. Simple unittests in the tests/ directory.
1891 ipython-user list. Simple unittests in the tests/ directory.
1888
1892
1889 * tools/release: add Will Maier, OpenBSD port maintainer, to
1893 * tools/release: add Will Maier, OpenBSD port maintainer, to
1890 recepients list. We are now officially part of the OpenBSD ports:
1894 recepients list. We are now officially part of the OpenBSD ports:
1891 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1895 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1892 work.
1896 work.
1893
1897
1894 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1898 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1895
1899
1896 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1900 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1897 so that it doesn't break tkinter apps.
1901 so that it doesn't break tkinter apps.
1898
1902
1899 * IPython/iplib.py (_prefilter): fix bug where aliases would
1903 * IPython/iplib.py (_prefilter): fix bug where aliases would
1900 shadow variables when autocall was fully off. Reported by SAGE
1904 shadow variables when autocall was fully off. Reported by SAGE
1901 author William Stein.
1905 author William Stein.
1902
1906
1903 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1907 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1904 at what detail level strings are computed when foo? is requested.
1908 at what detail level strings are computed when foo? is requested.
1905 This allows users to ask for example that the string form of an
1909 This allows users to ask for example that the string form of an
1906 object is only computed when foo?? is called, or even never, by
1910 object is only computed when foo?? is called, or even never, by
1907 setting the object_info_string_level >= 2 in the configuration
1911 setting the object_info_string_level >= 2 in the configuration
1908 file. This new option has been added and documented. After a
1912 file. This new option has been added and documented. After a
1909 request by SAGE to be able to control the printing of very large
1913 request by SAGE to be able to control the printing of very large
1910 objects more easily.
1914 objects more easily.
1911
1915
1912 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1916 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1913
1917
1914 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1918 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1915 from sys.argv, to be 100% consistent with how Python itself works
1919 from sys.argv, to be 100% consistent with how Python itself works
1916 (as seen for example with python -i file.py). After a bug report
1920 (as seen for example with python -i file.py). After a bug report
1917 by Jeffrey Collins.
1921 by Jeffrey Collins.
1918
1922
1919 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1923 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1920 nasty bug which was preventing custom namespaces with -pylab,
1924 nasty bug which was preventing custom namespaces with -pylab,
1921 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1925 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1922 compatibility (long gone from mpl).
1926 compatibility (long gone from mpl).
1923
1927
1924 * IPython/ipapi.py (make_session): name change: create->make. We
1928 * IPython/ipapi.py (make_session): name change: create->make. We
1925 use make in other places (ipmaker,...), it's shorter and easier to
1929 use make in other places (ipmaker,...), it's shorter and easier to
1926 type and say, etc. I'm trying to clean things before 0.7.2 so
1930 type and say, etc. I'm trying to clean things before 0.7.2 so
1927 that I can keep things stable wrt to ipapi in the chainsaw branch.
1931 that I can keep things stable wrt to ipapi in the chainsaw branch.
1928
1932
1929 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1933 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1930 python-mode recognizes our debugger mode. Add support for
1934 python-mode recognizes our debugger mode. Add support for
1931 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1935 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1932 <m.liu.jin-AT-gmail.com> originally written by
1936 <m.liu.jin-AT-gmail.com> originally written by
1933 doxgen-AT-newsmth.net (with minor modifications for xemacs
1937 doxgen-AT-newsmth.net (with minor modifications for xemacs
1934 compatibility)
1938 compatibility)
1935
1939
1936 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1940 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1937 tracebacks when walking the stack so that the stack tracking system
1941 tracebacks when walking the stack so that the stack tracking system
1938 in emacs' python-mode can identify the frames correctly.
1942 in emacs' python-mode can identify the frames correctly.
1939
1943
1940 * IPython/ipmaker.py (make_IPython): make the internal (and
1944 * IPython/ipmaker.py (make_IPython): make the internal (and
1941 default config) autoedit_syntax value false by default. Too many
1945 default config) autoedit_syntax value false by default. Too many
1942 users have complained to me (both on and off-list) about problems
1946 users have complained to me (both on and off-list) about problems
1943 with this option being on by default, so I'm making it default to
1947 with this option being on by default, so I'm making it default to
1944 off. It can still be enabled by anyone via the usual mechanisms.
1948 off. It can still be enabled by anyone via the usual mechanisms.
1945
1949
1946 * IPython/completer.py (Completer.attr_matches): add support for
1950 * IPython/completer.py (Completer.attr_matches): add support for
1947 PyCrust-style _getAttributeNames magic method. Patch contributed
1951 PyCrust-style _getAttributeNames magic method. Patch contributed
1948 by <mscott-AT-goldenspud.com>. Closes #50.
1952 by <mscott-AT-goldenspud.com>. Closes #50.
1949
1953
1950 * IPython/iplib.py (InteractiveShell.__init__): remove the
1954 * IPython/iplib.py (InteractiveShell.__init__): remove the
1951 deletion of exit/quit from __builtin__, which can break
1955 deletion of exit/quit from __builtin__, which can break
1952 third-party tools like the Zope debugging console. The
1956 third-party tools like the Zope debugging console. The
1953 %exit/%quit magics remain. In general, it's probably a good idea
1957 %exit/%quit magics remain. In general, it's probably a good idea
1954 not to delete anything from __builtin__, since we never know what
1958 not to delete anything from __builtin__, since we never know what
1955 that will break. In any case, python now (for 2.5) will support
1959 that will break. In any case, python now (for 2.5) will support
1956 'real' exit/quit, so this issue is moot. Closes #55.
1960 'real' exit/quit, so this issue is moot. Closes #55.
1957
1961
1958 * IPython/genutils.py (with_obj): rename the 'with' function to
1962 * IPython/genutils.py (with_obj): rename the 'with' function to
1959 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1963 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1960 becomes a language keyword. Closes #53.
1964 becomes a language keyword. Closes #53.
1961
1965
1962 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1966 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1963 __file__ attribute to this so it fools more things into thinking
1967 __file__ attribute to this so it fools more things into thinking
1964 it is a real module. Closes #59.
1968 it is a real module. Closes #59.
1965
1969
1966 * IPython/Magic.py (magic_edit): add -n option to open the editor
1970 * IPython/Magic.py (magic_edit): add -n option to open the editor
1967 at a specific line number. After a patch by Stefan van der Walt.
1971 at a specific line number. After a patch by Stefan van der Walt.
1968
1972
1969 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1973 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1970
1974
1971 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1975 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1972 reason the file could not be opened. After automatic crash
1976 reason the file could not be opened. After automatic crash
1973 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1977 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1974 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1978 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1975 (_should_recompile): Don't fire editor if using %bg, since there
1979 (_should_recompile): Don't fire editor if using %bg, since there
1976 is no file in the first place. From the same report as above.
1980 is no file in the first place. From the same report as above.
1977 (raw_input): protect against faulty third-party prefilters. After
1981 (raw_input): protect against faulty third-party prefilters. After
1978 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1982 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1979 while running under SAGE.
1983 while running under SAGE.
1980
1984
1981 2006-05-23 Ville Vainio <vivainio@gmail.com>
1985 2006-05-23 Ville Vainio <vivainio@gmail.com>
1982
1986
1983 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1987 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1984 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1988 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1985 now returns None (again), unless dummy is specifically allowed by
1989 now returns None (again), unless dummy is specifically allowed by
1986 ipapi.get(allow_dummy=True).
1990 ipapi.get(allow_dummy=True).
1987
1991
1988 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1992 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1989
1993
1990 * IPython: remove all 2.2-compatibility objects and hacks from
1994 * IPython: remove all 2.2-compatibility objects and hacks from
1991 everywhere, since we only support 2.3 at this point. Docs
1995 everywhere, since we only support 2.3 at this point. Docs
1992 updated.
1996 updated.
1993
1997
1994 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1998 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1995 Anything requiring extra validation can be turned into a Python
1999 Anything requiring extra validation can be turned into a Python
1996 property in the future. I used a property for the db one b/c
2000 property in the future. I used a property for the db one b/c
1997 there was a nasty circularity problem with the initialization
2001 there was a nasty circularity problem with the initialization
1998 order, which right now I don't have time to clean up.
2002 order, which right now I don't have time to clean up.
1999
2003
2000 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2004 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2001 another locking bug reported by Jorgen. I'm not 100% sure though,
2005 another locking bug reported by Jorgen. I'm not 100% sure though,
2002 so more testing is needed...
2006 so more testing is needed...
2003
2007
2004 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2008 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2005
2009
2006 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2010 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2007 local variables from any routine in user code (typically executed
2011 local variables from any routine in user code (typically executed
2008 with %run) directly into the interactive namespace. Very useful
2012 with %run) directly into the interactive namespace. Very useful
2009 when doing complex debugging.
2013 when doing complex debugging.
2010 (IPythonNotRunning): Changed the default None object to a dummy
2014 (IPythonNotRunning): Changed the default None object to a dummy
2011 whose attributes can be queried as well as called without
2015 whose attributes can be queried as well as called without
2012 exploding, to ease writing code which works transparently both in
2016 exploding, to ease writing code which works transparently both in
2013 and out of ipython and uses some of this API.
2017 and out of ipython and uses some of this API.
2014
2018
2015 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2019 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2016
2020
2017 * IPython/hooks.py (result_display): Fix the fact that our display
2021 * IPython/hooks.py (result_display): Fix the fact that our display
2018 hook was using str() instead of repr(), as the default python
2022 hook was using str() instead of repr(), as the default python
2019 console does. This had gone unnoticed b/c it only happened if
2023 console does. This had gone unnoticed b/c it only happened if
2020 %Pprint was off, but the inconsistency was there.
2024 %Pprint was off, but the inconsistency was there.
2021
2025
2022 2006-05-15 Ville Vainio <vivainio@gmail.com>
2026 2006-05-15 Ville Vainio <vivainio@gmail.com>
2023
2027
2024 * Oinspect.py: Only show docstring for nonexisting/binary files
2028 * Oinspect.py: Only show docstring for nonexisting/binary files
2025 when doing object??, closing ticket #62
2029 when doing object??, closing ticket #62
2026
2030
2027 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2031 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2028
2032
2029 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2033 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2030 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2034 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2031 was being released in a routine which hadn't checked if it had
2035 was being released in a routine which hadn't checked if it had
2032 been the one to acquire it.
2036 been the one to acquire it.
2033
2037
2034 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2038 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2035
2039
2036 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2040 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2037
2041
2038 2006-04-11 Ville Vainio <vivainio@gmail.com>
2042 2006-04-11 Ville Vainio <vivainio@gmail.com>
2039
2043
2040 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2044 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2041 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2045 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2042 prefilters, allowing stuff like magics and aliases in the file.
2046 prefilters, allowing stuff like magics and aliases in the file.
2043
2047
2044 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2048 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2045 added. Supported now are "%clear in" and "%clear out" (clear input and
2049 added. Supported now are "%clear in" and "%clear out" (clear input and
2046 output history, respectively). Also fixed CachedOutput.flush to
2050 output history, respectively). Also fixed CachedOutput.flush to
2047 properly flush the output cache.
2051 properly flush the output cache.
2048
2052
2049 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2053 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2050 half-success (and fail explicitly).
2054 half-success (and fail explicitly).
2051
2055
2052 2006-03-28 Ville Vainio <vivainio@gmail.com>
2056 2006-03-28 Ville Vainio <vivainio@gmail.com>
2053
2057
2054 * iplib.py: Fix quoting of aliases so that only argless ones
2058 * iplib.py: Fix quoting of aliases so that only argless ones
2055 are quoted
2059 are quoted
2056
2060
2057 2006-03-28 Ville Vainio <vivainio@gmail.com>
2061 2006-03-28 Ville Vainio <vivainio@gmail.com>
2058
2062
2059 * iplib.py: Quote aliases with spaces in the name.
2063 * iplib.py: Quote aliases with spaces in the name.
2060 "c:\program files\blah\bin" is now legal alias target.
2064 "c:\program files\blah\bin" is now legal alias target.
2061
2065
2062 * ext_rehashdir.py: Space no longer allowed as arg
2066 * ext_rehashdir.py: Space no longer allowed as arg
2063 separator, since space is legal in path names.
2067 separator, since space is legal in path names.
2064
2068
2065 2006-03-16 Ville Vainio <vivainio@gmail.com>
2069 2006-03-16 Ville Vainio <vivainio@gmail.com>
2066
2070
2067 * upgrade_dir.py: Take path.py from Extensions, correcting
2071 * upgrade_dir.py: Take path.py from Extensions, correcting
2068 %upgrade magic
2072 %upgrade magic
2069
2073
2070 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2074 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2071
2075
2072 * hooks.py: Only enclose editor binary in quotes if legal and
2076 * hooks.py: Only enclose editor binary in quotes if legal and
2073 necessary (space in the name, and is an existing file). Fixes a bug
2077 necessary (space in the name, and is an existing file). Fixes a bug
2074 reported by Zachary Pincus.
2078 reported by Zachary Pincus.
2075
2079
2076 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2080 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2077
2081
2078 * Manual: thanks to a tip on proper color handling for Emacs, by
2082 * Manual: thanks to a tip on proper color handling for Emacs, by
2079 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2083 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2080
2084
2081 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2085 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2082 by applying the provided patch. Thanks to Liu Jin
2086 by applying the provided patch. Thanks to Liu Jin
2083 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2087 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2084 XEmacs/Linux, I'm trusting the submitter that it actually helps
2088 XEmacs/Linux, I'm trusting the submitter that it actually helps
2085 under win32/GNU Emacs. Will revisit if any problems are reported.
2089 under win32/GNU Emacs. Will revisit if any problems are reported.
2086
2090
2087 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2091 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2088
2092
2089 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2093 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2090 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2094 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2091
2095
2092 2006-03-12 Ville Vainio <vivainio@gmail.com>
2096 2006-03-12 Ville Vainio <vivainio@gmail.com>
2093
2097
2094 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2098 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2095 Torsten Marek.
2099 Torsten Marek.
2096
2100
2097 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2101 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2098
2102
2099 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2103 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2100 line ranges works again.
2104 line ranges works again.
2101
2105
2102 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2106 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2103
2107
2104 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2108 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2105 and friends, after a discussion with Zach Pincus on ipython-user.
2109 and friends, after a discussion with Zach Pincus on ipython-user.
2106 I'm not 100% sure, but after thinking about it quite a bit, it may
2110 I'm not 100% sure, but after thinking about it quite a bit, it may
2107 be OK. Testing with the multithreaded shells didn't reveal any
2111 be OK. Testing with the multithreaded shells didn't reveal any
2108 problems, but let's keep an eye out.
2112 problems, but let's keep an eye out.
2109
2113
2110 In the process, I fixed a few things which were calling
2114 In the process, I fixed a few things which were calling
2111 self.InteractiveTB() directly (like safe_execfile), which is a
2115 self.InteractiveTB() directly (like safe_execfile), which is a
2112 mistake: ALL exception reporting should be done by calling
2116 mistake: ALL exception reporting should be done by calling
2113 self.showtraceback(), which handles state and tab-completion and
2117 self.showtraceback(), which handles state and tab-completion and
2114 more.
2118 more.
2115
2119
2116 2006-03-01 Ville Vainio <vivainio@gmail.com>
2120 2006-03-01 Ville Vainio <vivainio@gmail.com>
2117
2121
2118 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2122 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2119 To use, do "from ipipe import *".
2123 To use, do "from ipipe import *".
2120
2124
2121 2006-02-24 Ville Vainio <vivainio@gmail.com>
2125 2006-02-24 Ville Vainio <vivainio@gmail.com>
2122
2126
2123 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2127 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2124 "cleanly" and safely than the older upgrade mechanism.
2128 "cleanly" and safely than the older upgrade mechanism.
2125
2129
2126 2006-02-21 Ville Vainio <vivainio@gmail.com>
2130 2006-02-21 Ville Vainio <vivainio@gmail.com>
2127
2131
2128 * Magic.py: %save works again.
2132 * Magic.py: %save works again.
2129
2133
2130 2006-02-15 Ville Vainio <vivainio@gmail.com>
2134 2006-02-15 Ville Vainio <vivainio@gmail.com>
2131
2135
2132 * Magic.py: %Pprint works again
2136 * Magic.py: %Pprint works again
2133
2137
2134 * Extensions/ipy_sane_defaults.py: Provide everything provided
2138 * Extensions/ipy_sane_defaults.py: Provide everything provided
2135 in default ipythonrc, to make it possible to have a completely empty
2139 in default ipythonrc, to make it possible to have a completely empty
2136 ipythonrc (and thus completely rc-file free configuration)
2140 ipythonrc (and thus completely rc-file free configuration)
2137
2141
2138 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2142 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2139
2143
2140 * IPython/hooks.py (editor): quote the call to the editor command,
2144 * IPython/hooks.py (editor): quote the call to the editor command,
2141 to allow commands with spaces in them. Problem noted by watching
2145 to allow commands with spaces in them. Problem noted by watching
2142 Ian Oswald's video about textpad under win32 at
2146 Ian Oswald's video about textpad under win32 at
2143 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2147 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2144
2148
2145 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2149 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2146 describing magics (we haven't used @ for a loong time).
2150 describing magics (we haven't used @ for a loong time).
2147
2151
2148 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2152 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2149 contributed by marienz to close
2153 contributed by marienz to close
2150 http://www.scipy.net/roundup/ipython/issue53.
2154 http://www.scipy.net/roundup/ipython/issue53.
2151
2155
2152 2006-02-10 Ville Vainio <vivainio@gmail.com>
2156 2006-02-10 Ville Vainio <vivainio@gmail.com>
2153
2157
2154 * genutils.py: getoutput now works in win32 too
2158 * genutils.py: getoutput now works in win32 too
2155
2159
2156 * completer.py: alias and magic completion only invoked
2160 * completer.py: alias and magic completion only invoked
2157 at the first "item" in the line, to avoid "cd %store"
2161 at the first "item" in the line, to avoid "cd %store"
2158 nonsense.
2162 nonsense.
2159
2163
2160 2006-02-09 Ville Vainio <vivainio@gmail.com>
2164 2006-02-09 Ville Vainio <vivainio@gmail.com>
2161
2165
2162 * test/*: Added a unit testing framework (finally).
2166 * test/*: Added a unit testing framework (finally).
2163 '%run runtests.py' to run test_*.
2167 '%run runtests.py' to run test_*.
2164
2168
2165 * ipapi.py: Exposed runlines and set_custom_exc
2169 * ipapi.py: Exposed runlines and set_custom_exc
2166
2170
2167 2006-02-07 Ville Vainio <vivainio@gmail.com>
2171 2006-02-07 Ville Vainio <vivainio@gmail.com>
2168
2172
2169 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2173 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2170 instead use "f(1 2)" as before.
2174 instead use "f(1 2)" as before.
2171
2175
2172 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2176 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2173
2177
2174 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2178 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2175 facilities, for demos processed by the IPython input filter
2179 facilities, for demos processed by the IPython input filter
2176 (IPythonDemo), and for running a script one-line-at-a-time as a
2180 (IPythonDemo), and for running a script one-line-at-a-time as a
2177 demo, both for pure Python (LineDemo) and for IPython-processed
2181 demo, both for pure Python (LineDemo) and for IPython-processed
2178 input (IPythonLineDemo). After a request by Dave Kohel, from the
2182 input (IPythonLineDemo). After a request by Dave Kohel, from the
2179 SAGE team.
2183 SAGE team.
2180 (Demo.edit): added an edit() method to the demo objects, to edit
2184 (Demo.edit): added an edit() method to the demo objects, to edit
2181 the in-memory copy of the last executed block.
2185 the in-memory copy of the last executed block.
2182
2186
2183 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2187 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2184 processing to %edit, %macro and %save. These commands can now be
2188 processing to %edit, %macro and %save. These commands can now be
2185 invoked on the unprocessed input as it was typed by the user
2189 invoked on the unprocessed input as it was typed by the user
2186 (without any prefilters applied). After requests by the SAGE team
2190 (without any prefilters applied). After requests by the SAGE team
2187 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2191 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2188
2192
2189 2006-02-01 Ville Vainio <vivainio@gmail.com>
2193 2006-02-01 Ville Vainio <vivainio@gmail.com>
2190
2194
2191 * setup.py, eggsetup.py: easy_install ipython==dev works
2195 * setup.py, eggsetup.py: easy_install ipython==dev works
2192 correctly now (on Linux)
2196 correctly now (on Linux)
2193
2197
2194 * ipy_user_conf,ipmaker: user config changes, removed spurious
2198 * ipy_user_conf,ipmaker: user config changes, removed spurious
2195 warnings
2199 warnings
2196
2200
2197 * iplib: if rc.banner is string, use it as is.
2201 * iplib: if rc.banner is string, use it as is.
2198
2202
2199 * Magic: %pycat accepts a string argument and pages it's contents.
2203 * Magic: %pycat accepts a string argument and pages it's contents.
2200
2204
2201
2205
2202 2006-01-30 Ville Vainio <vivainio@gmail.com>
2206 2006-01-30 Ville Vainio <vivainio@gmail.com>
2203
2207
2204 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2208 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2205 Now %store and bookmarks work through PickleShare, meaning that
2209 Now %store and bookmarks work through PickleShare, meaning that
2206 concurrent access is possible and all ipython sessions see the
2210 concurrent access is possible and all ipython sessions see the
2207 same database situation all the time, instead of snapshot of
2211 same database situation all the time, instead of snapshot of
2208 the situation when the session was started. Hence, %bookmark
2212 the situation when the session was started. Hence, %bookmark
2209 results are immediately accessible from othes sessions. The database
2213 results are immediately accessible from othes sessions. The database
2210 is also available for use by user extensions. See:
2214 is also available for use by user extensions. See:
2211 http://www.python.org/pypi/pickleshare
2215 http://www.python.org/pypi/pickleshare
2212
2216
2213 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2217 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2214
2218
2215 * aliases can now be %store'd
2219 * aliases can now be %store'd
2216
2220
2217 * path.py moved to Extensions so that pickleshare does not need
2221 * path.py moved to Extensions so that pickleshare does not need
2218 IPython-specific import. Extensions added to pythonpath right
2222 IPython-specific import. Extensions added to pythonpath right
2219 at __init__.
2223 at __init__.
2220
2224
2221 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2225 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2222 called with _ip.system and the pre-transformed command string.
2226 called with _ip.system and the pre-transformed command string.
2223
2227
2224 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2228 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2225
2229
2226 * IPython/iplib.py (interact): Fix that we were not catching
2230 * IPython/iplib.py (interact): Fix that we were not catching
2227 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2231 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2228 logic here had to change, but it's fixed now.
2232 logic here had to change, but it's fixed now.
2229
2233
2230 2006-01-29 Ville Vainio <vivainio@gmail.com>
2234 2006-01-29 Ville Vainio <vivainio@gmail.com>
2231
2235
2232 * iplib.py: Try to import pyreadline on Windows.
2236 * iplib.py: Try to import pyreadline on Windows.
2233
2237
2234 2006-01-27 Ville Vainio <vivainio@gmail.com>
2238 2006-01-27 Ville Vainio <vivainio@gmail.com>
2235
2239
2236 * iplib.py: Expose ipapi as _ip in builtin namespace.
2240 * iplib.py: Expose ipapi as _ip in builtin namespace.
2237 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2241 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2238 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2242 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2239 syntax now produce _ip.* variant of the commands.
2243 syntax now produce _ip.* variant of the commands.
2240
2244
2241 * "_ip.options().autoedit_syntax = 2" automatically throws
2245 * "_ip.options().autoedit_syntax = 2" automatically throws
2242 user to editor for syntax error correction without prompting.
2246 user to editor for syntax error correction without prompting.
2243
2247
2244 2006-01-27 Ville Vainio <vivainio@gmail.com>
2248 2006-01-27 Ville Vainio <vivainio@gmail.com>
2245
2249
2246 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2250 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2247 'ipython' at argv[0]) executed through command line.
2251 'ipython' at argv[0]) executed through command line.
2248 NOTE: this DEPRECATES calling ipython with multiple scripts
2252 NOTE: this DEPRECATES calling ipython with multiple scripts
2249 ("ipython a.py b.py c.py")
2253 ("ipython a.py b.py c.py")
2250
2254
2251 * iplib.py, hooks.py: Added configurable input prefilter,
2255 * iplib.py, hooks.py: Added configurable input prefilter,
2252 named 'input_prefilter'. See ext_rescapture.py for example
2256 named 'input_prefilter'. See ext_rescapture.py for example
2253 usage.
2257 usage.
2254
2258
2255 * ext_rescapture.py, Magic.py: Better system command output capture
2259 * ext_rescapture.py, Magic.py: Better system command output capture
2256 through 'var = !ls' (deprecates user-visible %sc). Same notation
2260 through 'var = !ls' (deprecates user-visible %sc). Same notation
2257 applies for magics, 'var = %alias' assigns alias list to var.
2261 applies for magics, 'var = %alias' assigns alias list to var.
2258
2262
2259 * ipapi.py: added meta() for accessing extension-usable data store.
2263 * ipapi.py: added meta() for accessing extension-usable data store.
2260
2264
2261 * iplib.py: added InteractiveShell.getapi(). New magics should be
2265 * iplib.py: added InteractiveShell.getapi(). New magics should be
2262 written doing self.getapi() instead of using the shell directly.
2266 written doing self.getapi() instead of using the shell directly.
2263
2267
2264 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2268 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2265 %store foo >> ~/myfoo.txt to store variables to files (in clean
2269 %store foo >> ~/myfoo.txt to store variables to files (in clean
2266 textual form, not a restorable pickle).
2270 textual form, not a restorable pickle).
2267
2271
2268 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2272 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2269
2273
2270 * usage.py, Magic.py: added %quickref
2274 * usage.py, Magic.py: added %quickref
2271
2275
2272 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2276 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2273
2277
2274 * GetoptErrors when invoking magics etc. with wrong args
2278 * GetoptErrors when invoking magics etc. with wrong args
2275 are now more helpful:
2279 are now more helpful:
2276 GetoptError: option -l not recognized (allowed: "qb" )
2280 GetoptError: option -l not recognized (allowed: "qb" )
2277
2281
2278 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2282 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2279
2283
2280 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2284 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2281 computationally intensive blocks don't appear to stall the demo.
2285 computationally intensive blocks don't appear to stall the demo.
2282
2286
2283 2006-01-24 Ville Vainio <vivainio@gmail.com>
2287 2006-01-24 Ville Vainio <vivainio@gmail.com>
2284
2288
2285 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2289 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2286 value to manipulate resulting history entry.
2290 value to manipulate resulting history entry.
2287
2291
2288 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2292 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2289 to instance methods of IPApi class, to make extending an embedded
2293 to instance methods of IPApi class, to make extending an embedded
2290 IPython feasible. See ext_rehashdir.py for example usage.
2294 IPython feasible. See ext_rehashdir.py for example usage.
2291
2295
2292 * Merged 1071-1076 from branches/0.7.1
2296 * Merged 1071-1076 from branches/0.7.1
2293
2297
2294
2298
2295 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2299 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2296
2300
2297 * tools/release (daystamp): Fix build tools to use the new
2301 * tools/release (daystamp): Fix build tools to use the new
2298 eggsetup.py script to build lightweight eggs.
2302 eggsetup.py script to build lightweight eggs.
2299
2303
2300 * Applied changesets 1062 and 1064 before 0.7.1 release.
2304 * Applied changesets 1062 and 1064 before 0.7.1 release.
2301
2305
2302 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2306 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2303 see the raw input history (without conversions like %ls ->
2307 see the raw input history (without conversions like %ls ->
2304 ipmagic("ls")). After a request from W. Stein, SAGE
2308 ipmagic("ls")). After a request from W. Stein, SAGE
2305 (http://modular.ucsd.edu/sage) developer. This information is
2309 (http://modular.ucsd.edu/sage) developer. This information is
2306 stored in the input_hist_raw attribute of the IPython instance, so
2310 stored in the input_hist_raw attribute of the IPython instance, so
2307 developers can access it if needed (it's an InputList instance).
2311 developers can access it if needed (it's an InputList instance).
2308
2312
2309 * Versionstring = 0.7.2.svn
2313 * Versionstring = 0.7.2.svn
2310
2314
2311 * eggsetup.py: A separate script for constructing eggs, creates
2315 * eggsetup.py: A separate script for constructing eggs, creates
2312 proper launch scripts even on Windows (an .exe file in
2316 proper launch scripts even on Windows (an .exe file in
2313 \python24\scripts).
2317 \python24\scripts).
2314
2318
2315 * ipapi.py: launch_new_instance, launch entry point needed for the
2319 * ipapi.py: launch_new_instance, launch entry point needed for the
2316 egg.
2320 egg.
2317
2321
2318 2006-01-23 Ville Vainio <vivainio@gmail.com>
2322 2006-01-23 Ville Vainio <vivainio@gmail.com>
2319
2323
2320 * Added %cpaste magic for pasting python code
2324 * Added %cpaste magic for pasting python code
2321
2325
2322 2006-01-22 Ville Vainio <vivainio@gmail.com>
2326 2006-01-22 Ville Vainio <vivainio@gmail.com>
2323
2327
2324 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2328 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2325
2329
2326 * Versionstring = 0.7.2.svn
2330 * Versionstring = 0.7.2.svn
2327
2331
2328 * eggsetup.py: A separate script for constructing eggs, creates
2332 * eggsetup.py: A separate script for constructing eggs, creates
2329 proper launch scripts even on Windows (an .exe file in
2333 proper launch scripts even on Windows (an .exe file in
2330 \python24\scripts).
2334 \python24\scripts).
2331
2335
2332 * ipapi.py: launch_new_instance, launch entry point needed for the
2336 * ipapi.py: launch_new_instance, launch entry point needed for the
2333 egg.
2337 egg.
2334
2338
2335 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2339 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2336
2340
2337 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2341 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2338 %pfile foo would print the file for foo even if it was a binary.
2342 %pfile foo would print the file for foo even if it was a binary.
2339 Now, extensions '.so' and '.dll' are skipped.
2343 Now, extensions '.so' and '.dll' are skipped.
2340
2344
2341 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2345 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2342 bug, where macros would fail in all threaded modes. I'm not 100%
2346 bug, where macros would fail in all threaded modes. I'm not 100%
2343 sure, so I'm going to put out an rc instead of making a release
2347 sure, so I'm going to put out an rc instead of making a release
2344 today, and wait for feedback for at least a few days.
2348 today, and wait for feedback for at least a few days.
2345
2349
2346 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2350 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2347 it...) the handling of pasting external code with autoindent on.
2351 it...) the handling of pasting external code with autoindent on.
2348 To get out of a multiline input, the rule will appear for most
2352 To get out of a multiline input, the rule will appear for most
2349 users unchanged: two blank lines or change the indent level
2353 users unchanged: two blank lines or change the indent level
2350 proposed by IPython. But there is a twist now: you can
2354 proposed by IPython. But there is a twist now: you can
2351 add/subtract only *one or two spaces*. If you add/subtract three
2355 add/subtract only *one or two spaces*. If you add/subtract three
2352 or more (unless you completely delete the line), IPython will
2356 or more (unless you completely delete the line), IPython will
2353 accept that line, and you'll need to enter a second one of pure
2357 accept that line, and you'll need to enter a second one of pure
2354 whitespace. I know it sounds complicated, but I can't find a
2358 whitespace. I know it sounds complicated, but I can't find a
2355 different solution that covers all the cases, with the right
2359 different solution that covers all the cases, with the right
2356 heuristics. Hopefully in actual use, nobody will really notice
2360 heuristics. Hopefully in actual use, nobody will really notice
2357 all these strange rules and things will 'just work'.
2361 all these strange rules and things will 'just work'.
2358
2362
2359 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2363 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2360
2364
2361 * IPython/iplib.py (interact): catch exceptions which can be
2365 * IPython/iplib.py (interact): catch exceptions which can be
2362 triggered asynchronously by signal handlers. Thanks to an
2366 triggered asynchronously by signal handlers. Thanks to an
2363 automatic crash report, submitted by Colin Kingsley
2367 automatic crash report, submitted by Colin Kingsley
2364 <tercel-AT-gentoo.org>.
2368 <tercel-AT-gentoo.org>.
2365
2369
2366 2006-01-20 Ville Vainio <vivainio@gmail.com>
2370 2006-01-20 Ville Vainio <vivainio@gmail.com>
2367
2371
2368 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2372 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2369 (%rehashdir, very useful, try it out) of how to extend ipython
2373 (%rehashdir, very useful, try it out) of how to extend ipython
2370 with new magics. Also added Extensions dir to pythonpath to make
2374 with new magics. Also added Extensions dir to pythonpath to make
2371 importing extensions easy.
2375 importing extensions easy.
2372
2376
2373 * %store now complains when trying to store interactively declared
2377 * %store now complains when trying to store interactively declared
2374 classes / instances of those classes.
2378 classes / instances of those classes.
2375
2379
2376 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2380 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2377 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2381 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2378 if they exist, and ipy_user_conf.py with some defaults is created for
2382 if they exist, and ipy_user_conf.py with some defaults is created for
2379 the user.
2383 the user.
2380
2384
2381 * Startup rehashing done by the config file, not InterpreterExec.
2385 * Startup rehashing done by the config file, not InterpreterExec.
2382 This means system commands are available even without selecting the
2386 This means system commands are available even without selecting the
2383 pysh profile. It's the sensible default after all.
2387 pysh profile. It's the sensible default after all.
2384
2388
2385 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2389 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2386
2390
2387 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2391 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2388 multiline code with autoindent on working. But I am really not
2392 multiline code with autoindent on working. But I am really not
2389 sure, so this needs more testing. Will commit a debug-enabled
2393 sure, so this needs more testing. Will commit a debug-enabled
2390 version for now, while I test it some more, so that Ville and
2394 version for now, while I test it some more, so that Ville and
2391 others may also catch any problems. Also made
2395 others may also catch any problems. Also made
2392 self.indent_current_str() a method, to ensure that there's no
2396 self.indent_current_str() a method, to ensure that there's no
2393 chance of the indent space count and the corresponding string
2397 chance of the indent space count and the corresponding string
2394 falling out of sync. All code needing the string should just call
2398 falling out of sync. All code needing the string should just call
2395 the method.
2399 the method.
2396
2400
2397 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2401 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2398
2402
2399 * IPython/Magic.py (magic_edit): fix check for when users don't
2403 * IPython/Magic.py (magic_edit): fix check for when users don't
2400 save their output files, the try/except was in the wrong section.
2404 save their output files, the try/except was in the wrong section.
2401
2405
2402 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2406 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2403
2407
2404 * IPython/Magic.py (magic_run): fix __file__ global missing from
2408 * IPython/Magic.py (magic_run): fix __file__ global missing from
2405 script's namespace when executed via %run. After a report by
2409 script's namespace when executed via %run. After a report by
2406 Vivian.
2410 Vivian.
2407
2411
2408 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2412 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2409 when using python 2.4. The parent constructor changed in 2.4, and
2413 when using python 2.4. The parent constructor changed in 2.4, and
2410 we need to track it directly (we can't call it, as it messes up
2414 we need to track it directly (we can't call it, as it messes up
2411 readline and tab-completion inside our pdb would stop working).
2415 readline and tab-completion inside our pdb would stop working).
2412 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2416 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2413
2417
2414 2006-01-16 Ville Vainio <vivainio@gmail.com>
2418 2006-01-16 Ville Vainio <vivainio@gmail.com>
2415
2419
2416 * Ipython/magic.py: Reverted back to old %edit functionality
2420 * Ipython/magic.py: Reverted back to old %edit functionality
2417 that returns file contents on exit.
2421 that returns file contents on exit.
2418
2422
2419 * IPython/path.py: Added Jason Orendorff's "path" module to
2423 * IPython/path.py: Added Jason Orendorff's "path" module to
2420 IPython tree, http://www.jorendorff.com/articles/python/path/.
2424 IPython tree, http://www.jorendorff.com/articles/python/path/.
2421 You can get path objects conveniently through %sc, and !!, e.g.:
2425 You can get path objects conveniently through %sc, and !!, e.g.:
2422 sc files=ls
2426 sc files=ls
2423 for p in files.paths: # or files.p
2427 for p in files.paths: # or files.p
2424 print p,p.mtime
2428 print p,p.mtime
2425
2429
2426 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2430 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2427 now work again without considering the exclusion regexp -
2431 now work again without considering the exclusion regexp -
2428 hence, things like ',foo my/path' turn to 'foo("my/path")'
2432 hence, things like ',foo my/path' turn to 'foo("my/path")'
2429 instead of syntax error.
2433 instead of syntax error.
2430
2434
2431
2435
2432 2006-01-14 Ville Vainio <vivainio@gmail.com>
2436 2006-01-14 Ville Vainio <vivainio@gmail.com>
2433
2437
2434 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2438 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2435 ipapi decorators for python 2.4 users, options() provides access to rc
2439 ipapi decorators for python 2.4 users, options() provides access to rc
2436 data.
2440 data.
2437
2441
2438 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2442 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2439 as path separators (even on Linux ;-). Space character after
2443 as path separators (even on Linux ;-). Space character after
2440 backslash (as yielded by tab completer) is still space;
2444 backslash (as yielded by tab completer) is still space;
2441 "%cd long\ name" works as expected.
2445 "%cd long\ name" works as expected.
2442
2446
2443 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2447 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2444 as "chain of command", with priority. API stays the same,
2448 as "chain of command", with priority. API stays the same,
2445 TryNext exception raised by a hook function signals that
2449 TryNext exception raised by a hook function signals that
2446 current hook failed and next hook should try handling it, as
2450 current hook failed and next hook should try handling it, as
2447 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2451 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2448 requested configurable display hook, which is now implemented.
2452 requested configurable display hook, which is now implemented.
2449
2453
2450 2006-01-13 Ville Vainio <vivainio@gmail.com>
2454 2006-01-13 Ville Vainio <vivainio@gmail.com>
2451
2455
2452 * IPython/platutils*.py: platform specific utility functions,
2456 * IPython/platutils*.py: platform specific utility functions,
2453 so far only set_term_title is implemented (change terminal
2457 so far only set_term_title is implemented (change terminal
2454 label in windowing systems). %cd now changes the title to
2458 label in windowing systems). %cd now changes the title to
2455 current dir.
2459 current dir.
2456
2460
2457 * IPython/Release.py: Added myself to "authors" list,
2461 * IPython/Release.py: Added myself to "authors" list,
2458 had to create new files.
2462 had to create new files.
2459
2463
2460 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2464 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2461 shell escape; not a known bug but had potential to be one in the
2465 shell escape; not a known bug but had potential to be one in the
2462 future.
2466 future.
2463
2467
2464 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2468 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2465 extension API for IPython! See the module for usage example. Fix
2469 extension API for IPython! See the module for usage example. Fix
2466 OInspect for docstring-less magic functions.
2470 OInspect for docstring-less magic functions.
2467
2471
2468
2472
2469 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2473 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2470
2474
2471 * IPython/iplib.py (raw_input): temporarily deactivate all
2475 * IPython/iplib.py (raw_input): temporarily deactivate all
2472 attempts at allowing pasting of code with autoindent on. It
2476 attempts at allowing pasting of code with autoindent on. It
2473 introduced bugs (reported by Prabhu) and I can't seem to find a
2477 introduced bugs (reported by Prabhu) and I can't seem to find a
2474 robust combination which works in all cases. Will have to revisit
2478 robust combination which works in all cases. Will have to revisit
2475 later.
2479 later.
2476
2480
2477 * IPython/genutils.py: remove isspace() function. We've dropped
2481 * IPython/genutils.py: remove isspace() function. We've dropped
2478 2.2 compatibility, so it's OK to use the string method.
2482 2.2 compatibility, so it's OK to use the string method.
2479
2483
2480 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2484 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2481
2485
2482 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2486 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2483 matching what NOT to autocall on, to include all python binary
2487 matching what NOT to autocall on, to include all python binary
2484 operators (including things like 'and', 'or', 'is' and 'in').
2488 operators (including things like 'and', 'or', 'is' and 'in').
2485 Prompted by a bug report on 'foo & bar', but I realized we had
2489 Prompted by a bug report on 'foo & bar', but I realized we had
2486 many more potential bug cases with other operators. The regexp is
2490 many more potential bug cases with other operators. The regexp is
2487 self.re_exclude_auto, it's fairly commented.
2491 self.re_exclude_auto, it's fairly commented.
2488
2492
2489 2006-01-12 Ville Vainio <vivainio@gmail.com>
2493 2006-01-12 Ville Vainio <vivainio@gmail.com>
2490
2494
2491 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2495 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2492 Prettified and hardened string/backslash quoting with ipsystem(),
2496 Prettified and hardened string/backslash quoting with ipsystem(),
2493 ipalias() and ipmagic(). Now even \ characters are passed to
2497 ipalias() and ipmagic(). Now even \ characters are passed to
2494 %magics, !shell escapes and aliases exactly as they are in the
2498 %magics, !shell escapes and aliases exactly as they are in the
2495 ipython command line. Should improve backslash experience,
2499 ipython command line. Should improve backslash experience,
2496 particularly in Windows (path delimiter for some commands that
2500 particularly in Windows (path delimiter for some commands that
2497 won't understand '/'), but Unix benefits as well (regexps). %cd
2501 won't understand '/'), but Unix benefits as well (regexps). %cd
2498 magic still doesn't support backslash path delimiters, though. Also
2502 magic still doesn't support backslash path delimiters, though. Also
2499 deleted all pretense of supporting multiline command strings in
2503 deleted all pretense of supporting multiline command strings in
2500 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2504 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2501
2505
2502 * doc/build_doc_instructions.txt added. Documentation on how to
2506 * doc/build_doc_instructions.txt added. Documentation on how to
2503 use doc/update_manual.py, added yesterday. Both files contributed
2507 use doc/update_manual.py, added yesterday. Both files contributed
2504 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2508 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2505 doc/*.sh for deprecation at a later date.
2509 doc/*.sh for deprecation at a later date.
2506
2510
2507 * /ipython.py Added ipython.py to root directory for
2511 * /ipython.py Added ipython.py to root directory for
2508 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2512 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2509 ipython.py) and development convenience (no need to keep doing
2513 ipython.py) and development convenience (no need to keep doing
2510 "setup.py install" between changes).
2514 "setup.py install" between changes).
2511
2515
2512 * Made ! and !! shell escapes work (again) in multiline expressions:
2516 * Made ! and !! shell escapes work (again) in multiline expressions:
2513 if 1:
2517 if 1:
2514 !ls
2518 !ls
2515 !!ls
2519 !!ls
2516
2520
2517 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2521 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2518
2522
2519 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2523 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2520 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2524 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2521 module in case-insensitive installation. Was causing crashes
2525 module in case-insensitive installation. Was causing crashes
2522 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2526 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2523
2527
2524 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2528 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2525 <marienz-AT-gentoo.org>, closes
2529 <marienz-AT-gentoo.org>, closes
2526 http://www.scipy.net/roundup/ipython/issue51.
2530 http://www.scipy.net/roundup/ipython/issue51.
2527
2531
2528 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2532 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2529
2533
2530 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2534 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2531 problem of excessive CPU usage under *nix and keyboard lag under
2535 problem of excessive CPU usage under *nix and keyboard lag under
2532 win32.
2536 win32.
2533
2537
2534 2006-01-10 *** Released version 0.7.0
2538 2006-01-10 *** Released version 0.7.0
2535
2539
2536 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2540 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2537
2541
2538 * IPython/Release.py (revision): tag version number to 0.7.0,
2542 * IPython/Release.py (revision): tag version number to 0.7.0,
2539 ready for release.
2543 ready for release.
2540
2544
2541 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2545 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2542 it informs the user of the name of the temp. file used. This can
2546 it informs the user of the name of the temp. file used. This can
2543 help if you decide later to reuse that same file, so you know
2547 help if you decide later to reuse that same file, so you know
2544 where to copy the info from.
2548 where to copy the info from.
2545
2549
2546 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2550 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2547
2551
2548 * setup_bdist_egg.py: little script to build an egg. Added
2552 * setup_bdist_egg.py: little script to build an egg. Added
2549 support in the release tools as well.
2553 support in the release tools as well.
2550
2554
2551 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2555 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2552
2556
2553 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2557 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2554 version selection (new -wxversion command line and ipythonrc
2558 version selection (new -wxversion command line and ipythonrc
2555 parameter). Patch contributed by Arnd Baecker
2559 parameter). Patch contributed by Arnd Baecker
2556 <arnd.baecker-AT-web.de>.
2560 <arnd.baecker-AT-web.de>.
2557
2561
2558 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2562 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2559 embedded instances, for variables defined at the interactive
2563 embedded instances, for variables defined at the interactive
2560 prompt of the embedded ipython. Reported by Arnd.
2564 prompt of the embedded ipython. Reported by Arnd.
2561
2565
2562 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2566 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2563 it can be used as a (stateful) toggle, or with a direct parameter.
2567 it can be used as a (stateful) toggle, or with a direct parameter.
2564
2568
2565 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2569 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2566 could be triggered in certain cases and cause the traceback
2570 could be triggered in certain cases and cause the traceback
2567 printer not to work.
2571 printer not to work.
2568
2572
2569 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2573 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2570
2574
2571 * IPython/iplib.py (_should_recompile): Small fix, closes
2575 * IPython/iplib.py (_should_recompile): Small fix, closes
2572 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2576 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2573
2577
2574 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2578 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2575
2579
2576 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2580 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2577 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2581 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2578 Moad for help with tracking it down.
2582 Moad for help with tracking it down.
2579
2583
2580 * IPython/iplib.py (handle_auto): fix autocall handling for
2584 * IPython/iplib.py (handle_auto): fix autocall handling for
2581 objects which support BOTH __getitem__ and __call__ (so that f [x]
2585 objects which support BOTH __getitem__ and __call__ (so that f [x]
2582 is left alone, instead of becoming f([x]) automatically).
2586 is left alone, instead of becoming f([x]) automatically).
2583
2587
2584 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2588 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2585 Ville's patch.
2589 Ville's patch.
2586
2590
2587 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2591 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2588
2592
2589 * IPython/iplib.py (handle_auto): changed autocall semantics to
2593 * IPython/iplib.py (handle_auto): changed autocall semantics to
2590 include 'smart' mode, where the autocall transformation is NOT
2594 include 'smart' mode, where the autocall transformation is NOT
2591 applied if there are no arguments on the line. This allows you to
2595 applied if there are no arguments on the line. This allows you to
2592 just type 'foo' if foo is a callable to see its internal form,
2596 just type 'foo' if foo is a callable to see its internal form,
2593 instead of having it called with no arguments (typically a
2597 instead of having it called with no arguments (typically a
2594 mistake). The old 'full' autocall still exists: for that, you
2598 mistake). The old 'full' autocall still exists: for that, you
2595 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2599 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2596
2600
2597 * IPython/completer.py (Completer.attr_matches): add
2601 * IPython/completer.py (Completer.attr_matches): add
2598 tab-completion support for Enthoughts' traits. After a report by
2602 tab-completion support for Enthoughts' traits. After a report by
2599 Arnd and a patch by Prabhu.
2603 Arnd and a patch by Prabhu.
2600
2604
2601 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2605 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2602
2606
2603 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2607 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2604 Schmolck's patch to fix inspect.getinnerframes().
2608 Schmolck's patch to fix inspect.getinnerframes().
2605
2609
2606 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2610 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2607 for embedded instances, regarding handling of namespaces and items
2611 for embedded instances, regarding handling of namespaces and items
2608 added to the __builtin__ one. Multiple embedded instances and
2612 added to the __builtin__ one. Multiple embedded instances and
2609 recursive embeddings should work better now (though I'm not sure
2613 recursive embeddings should work better now (though I'm not sure
2610 I've got all the corner cases fixed, that code is a bit of a brain
2614 I've got all the corner cases fixed, that code is a bit of a brain
2611 twister).
2615 twister).
2612
2616
2613 * IPython/Magic.py (magic_edit): added support to edit in-memory
2617 * IPython/Magic.py (magic_edit): added support to edit in-memory
2614 macros (automatically creates the necessary temp files). %edit
2618 macros (automatically creates the necessary temp files). %edit
2615 also doesn't return the file contents anymore, it's just noise.
2619 also doesn't return the file contents anymore, it's just noise.
2616
2620
2617 * IPython/completer.py (Completer.attr_matches): revert change to
2621 * IPython/completer.py (Completer.attr_matches): revert change to
2618 complete only on attributes listed in __all__. I realized it
2622 complete only on attributes listed in __all__. I realized it
2619 cripples the tab-completion system as a tool for exploring the
2623 cripples the tab-completion system as a tool for exploring the
2620 internals of unknown libraries (it renders any non-__all__
2624 internals of unknown libraries (it renders any non-__all__
2621 attribute off-limits). I got bit by this when trying to see
2625 attribute off-limits). I got bit by this when trying to see
2622 something inside the dis module.
2626 something inside the dis module.
2623
2627
2624 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2628 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2625
2629
2626 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2630 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2627 namespace for users and extension writers to hold data in. This
2631 namespace for users and extension writers to hold data in. This
2628 follows the discussion in
2632 follows the discussion in
2629 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2633 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2630
2634
2631 * IPython/completer.py (IPCompleter.complete): small patch to help
2635 * IPython/completer.py (IPCompleter.complete): small patch to help
2632 tab-completion under Emacs, after a suggestion by John Barnard
2636 tab-completion under Emacs, after a suggestion by John Barnard
2633 <barnarj-AT-ccf.org>.
2637 <barnarj-AT-ccf.org>.
2634
2638
2635 * IPython/Magic.py (Magic.extract_input_slices): added support for
2639 * IPython/Magic.py (Magic.extract_input_slices): added support for
2636 the slice notation in magics to use N-M to represent numbers N...M
2640 the slice notation in magics to use N-M to represent numbers N...M
2637 (closed endpoints). This is used by %macro and %save.
2641 (closed endpoints). This is used by %macro and %save.
2638
2642
2639 * IPython/completer.py (Completer.attr_matches): for modules which
2643 * IPython/completer.py (Completer.attr_matches): for modules which
2640 define __all__, complete only on those. After a patch by Jeffrey
2644 define __all__, complete only on those. After a patch by Jeffrey
2641 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2645 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2642 speed up this routine.
2646 speed up this routine.
2643
2647
2644 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2648 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2645 don't know if this is the end of it, but the behavior now is
2649 don't know if this is the end of it, but the behavior now is
2646 certainly much more correct. Note that coupled with macros,
2650 certainly much more correct. Note that coupled with macros,
2647 slightly surprising (at first) behavior may occur: a macro will in
2651 slightly surprising (at first) behavior may occur: a macro will in
2648 general expand to multiple lines of input, so upon exiting, the
2652 general expand to multiple lines of input, so upon exiting, the
2649 in/out counters will both be bumped by the corresponding amount
2653 in/out counters will both be bumped by the corresponding amount
2650 (as if the macro's contents had been typed interactively). Typing
2654 (as if the macro's contents had been typed interactively). Typing
2651 %hist will reveal the intermediate (silently processed) lines.
2655 %hist will reveal the intermediate (silently processed) lines.
2652
2656
2653 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2657 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2654 pickle to fail (%run was overwriting __main__ and not restoring
2658 pickle to fail (%run was overwriting __main__ and not restoring
2655 it, but pickle relies on __main__ to operate).
2659 it, but pickle relies on __main__ to operate).
2656
2660
2657 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2661 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2658 using properties, but forgot to make the main InteractiveShell
2662 using properties, but forgot to make the main InteractiveShell
2659 class a new-style class. Properties fail silently, and
2663 class a new-style class. Properties fail silently, and
2660 mysteriously, with old-style class (getters work, but
2664 mysteriously, with old-style class (getters work, but
2661 setters don't do anything).
2665 setters don't do anything).
2662
2666
2663 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2667 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2664
2668
2665 * IPython/Magic.py (magic_history): fix history reporting bug (I
2669 * IPython/Magic.py (magic_history): fix history reporting bug (I
2666 know some nasties are still there, I just can't seem to find a
2670 know some nasties are still there, I just can't seem to find a
2667 reproducible test case to track them down; the input history is
2671 reproducible test case to track them down; the input history is
2668 falling out of sync...)
2672 falling out of sync...)
2669
2673
2670 * IPython/iplib.py (handle_shell_escape): fix bug where both
2674 * IPython/iplib.py (handle_shell_escape): fix bug where both
2671 aliases and system accesses where broken for indented code (such
2675 aliases and system accesses where broken for indented code (such
2672 as loops).
2676 as loops).
2673
2677
2674 * IPython/genutils.py (shell): fix small but critical bug for
2678 * IPython/genutils.py (shell): fix small but critical bug for
2675 win32 system access.
2679 win32 system access.
2676
2680
2677 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2681 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2678
2682
2679 * IPython/iplib.py (showtraceback): remove use of the
2683 * IPython/iplib.py (showtraceback): remove use of the
2680 sys.last_{type/value/traceback} structures, which are non
2684 sys.last_{type/value/traceback} structures, which are non
2681 thread-safe.
2685 thread-safe.
2682 (_prefilter): change control flow to ensure that we NEVER
2686 (_prefilter): change control flow to ensure that we NEVER
2683 introspect objects when autocall is off. This will guarantee that
2687 introspect objects when autocall is off. This will guarantee that
2684 having an input line of the form 'x.y', where access to attribute
2688 having an input line of the form 'x.y', where access to attribute
2685 'y' has side effects, doesn't trigger the side effect TWICE. It
2689 'y' has side effects, doesn't trigger the side effect TWICE. It
2686 is important to note that, with autocall on, these side effects
2690 is important to note that, with autocall on, these side effects
2687 can still happen.
2691 can still happen.
2688 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2692 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2689 trio. IPython offers these three kinds of special calls which are
2693 trio. IPython offers these three kinds of special calls which are
2690 not python code, and it's a good thing to have their call method
2694 not python code, and it's a good thing to have their call method
2691 be accessible as pure python functions (not just special syntax at
2695 be accessible as pure python functions (not just special syntax at
2692 the command line). It gives us a better internal implementation
2696 the command line). It gives us a better internal implementation
2693 structure, as well as exposing these for user scripting more
2697 structure, as well as exposing these for user scripting more
2694 cleanly.
2698 cleanly.
2695
2699
2696 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2700 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2697 file. Now that they'll be more likely to be used with the
2701 file. Now that they'll be more likely to be used with the
2698 persistance system (%store), I want to make sure their module path
2702 persistance system (%store), I want to make sure their module path
2699 doesn't change in the future, so that we don't break things for
2703 doesn't change in the future, so that we don't break things for
2700 users' persisted data.
2704 users' persisted data.
2701
2705
2702 * IPython/iplib.py (autoindent_update): move indentation
2706 * IPython/iplib.py (autoindent_update): move indentation
2703 management into the _text_ processing loop, not the keyboard
2707 management into the _text_ processing loop, not the keyboard
2704 interactive one. This is necessary to correctly process non-typed
2708 interactive one. This is necessary to correctly process non-typed
2705 multiline input (such as macros).
2709 multiline input (such as macros).
2706
2710
2707 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2711 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2708 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2712 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2709 which was producing problems in the resulting manual.
2713 which was producing problems in the resulting manual.
2710 (magic_whos): improve reporting of instances (show their class,
2714 (magic_whos): improve reporting of instances (show their class,
2711 instead of simply printing 'instance' which isn't terribly
2715 instead of simply printing 'instance' which isn't terribly
2712 informative).
2716 informative).
2713
2717
2714 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2718 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2715 (minor mods) to support network shares under win32.
2719 (minor mods) to support network shares under win32.
2716
2720
2717 * IPython/winconsole.py (get_console_size): add new winconsole
2721 * IPython/winconsole.py (get_console_size): add new winconsole
2718 module and fixes to page_dumb() to improve its behavior under
2722 module and fixes to page_dumb() to improve its behavior under
2719 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2723 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2720
2724
2721 * IPython/Magic.py (Macro): simplified Macro class to just
2725 * IPython/Magic.py (Macro): simplified Macro class to just
2722 subclass list. We've had only 2.2 compatibility for a very long
2726 subclass list. We've had only 2.2 compatibility for a very long
2723 time, yet I was still avoiding subclassing the builtin types. No
2727 time, yet I was still avoiding subclassing the builtin types. No
2724 more (I'm also starting to use properties, though I won't shift to
2728 more (I'm also starting to use properties, though I won't shift to
2725 2.3-specific features quite yet).
2729 2.3-specific features quite yet).
2726 (magic_store): added Ville's patch for lightweight variable
2730 (magic_store): added Ville's patch for lightweight variable
2727 persistence, after a request on the user list by Matt Wilkie
2731 persistence, after a request on the user list by Matt Wilkie
2728 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2732 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2729 details.
2733 details.
2730
2734
2731 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2735 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2732 changed the default logfile name from 'ipython.log' to
2736 changed the default logfile name from 'ipython.log' to
2733 'ipython_log.py'. These logs are real python files, and now that
2737 'ipython_log.py'. These logs are real python files, and now that
2734 we have much better multiline support, people are more likely to
2738 we have much better multiline support, people are more likely to
2735 want to use them as such. Might as well name them correctly.
2739 want to use them as such. Might as well name them correctly.
2736
2740
2737 * IPython/Magic.py: substantial cleanup. While we can't stop
2741 * IPython/Magic.py: substantial cleanup. While we can't stop
2738 using magics as mixins, due to the existing customizations 'out
2742 using magics as mixins, due to the existing customizations 'out
2739 there' which rely on the mixin naming conventions, at least I
2743 there' which rely on the mixin naming conventions, at least I
2740 cleaned out all cross-class name usage. So once we are OK with
2744 cleaned out all cross-class name usage. So once we are OK with
2741 breaking compatibility, the two systems can be separated.
2745 breaking compatibility, the two systems can be separated.
2742
2746
2743 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2747 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2744 anymore, and the class is a fair bit less hideous as well. New
2748 anymore, and the class is a fair bit less hideous as well. New
2745 features were also introduced: timestamping of input, and logging
2749 features were also introduced: timestamping of input, and logging
2746 of output results. These are user-visible with the -t and -o
2750 of output results. These are user-visible with the -t and -o
2747 options to %logstart. Closes
2751 options to %logstart. Closes
2748 http://www.scipy.net/roundup/ipython/issue11 and a request by
2752 http://www.scipy.net/roundup/ipython/issue11 and a request by
2749 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2753 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2750
2754
2751 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2755 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2752
2756
2753 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2757 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2754 better handle backslashes in paths. See the thread 'More Windows
2758 better handle backslashes in paths. See the thread 'More Windows
2755 questions part 2 - \/ characters revisited' on the iypthon user
2759 questions part 2 - \/ characters revisited' on the iypthon user
2756 list:
2760 list:
2757 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2761 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2758
2762
2759 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2763 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2760
2764
2761 (InteractiveShell.__init__): change threaded shells to not use the
2765 (InteractiveShell.__init__): change threaded shells to not use the
2762 ipython crash handler. This was causing more problems than not,
2766 ipython crash handler. This was causing more problems than not,
2763 as exceptions in the main thread (GUI code, typically) would
2767 as exceptions in the main thread (GUI code, typically) would
2764 always show up as a 'crash', when they really weren't.
2768 always show up as a 'crash', when they really weren't.
2765
2769
2766 The colors and exception mode commands (%colors/%xmode) have been
2770 The colors and exception mode commands (%colors/%xmode) have been
2767 synchronized to also take this into account, so users can get
2771 synchronized to also take this into account, so users can get
2768 verbose exceptions for their threaded code as well. I also added
2772 verbose exceptions for their threaded code as well. I also added
2769 support for activating pdb inside this exception handler as well,
2773 support for activating pdb inside this exception handler as well,
2770 so now GUI authors can use IPython's enhanced pdb at runtime.
2774 so now GUI authors can use IPython's enhanced pdb at runtime.
2771
2775
2772 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2776 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2773 true by default, and add it to the shipped ipythonrc file. Since
2777 true by default, and add it to the shipped ipythonrc file. Since
2774 this asks the user before proceeding, I think it's OK to make it
2778 this asks the user before proceeding, I think it's OK to make it
2775 true by default.
2779 true by default.
2776
2780
2777 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2781 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2778 of the previous special-casing of input in the eval loop. I think
2782 of the previous special-casing of input in the eval loop. I think
2779 this is cleaner, as they really are commands and shouldn't have
2783 this is cleaner, as they really are commands and shouldn't have
2780 a special role in the middle of the core code.
2784 a special role in the middle of the core code.
2781
2785
2782 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2786 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2783
2787
2784 * IPython/iplib.py (edit_syntax_error): added support for
2788 * IPython/iplib.py (edit_syntax_error): added support for
2785 automatically reopening the editor if the file had a syntax error
2789 automatically reopening the editor if the file had a syntax error
2786 in it. Thanks to scottt who provided the patch at:
2790 in it. Thanks to scottt who provided the patch at:
2787 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2791 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2788 version committed).
2792 version committed).
2789
2793
2790 * IPython/iplib.py (handle_normal): add suport for multi-line
2794 * IPython/iplib.py (handle_normal): add suport for multi-line
2791 input with emtpy lines. This fixes
2795 input with emtpy lines. This fixes
2792 http://www.scipy.net/roundup/ipython/issue43 and a similar
2796 http://www.scipy.net/roundup/ipython/issue43 and a similar
2793 discussion on the user list.
2797 discussion on the user list.
2794
2798
2795 WARNING: a behavior change is necessarily introduced to support
2799 WARNING: a behavior change is necessarily introduced to support
2796 blank lines: now a single blank line with whitespace does NOT
2800 blank lines: now a single blank line with whitespace does NOT
2797 break the input loop, which means that when autoindent is on, by
2801 break the input loop, which means that when autoindent is on, by
2798 default hitting return on the next (indented) line does NOT exit.
2802 default hitting return on the next (indented) line does NOT exit.
2799
2803
2800 Instead, to exit a multiline input you can either have:
2804 Instead, to exit a multiline input you can either have:
2801
2805
2802 - TWO whitespace lines (just hit return again), or
2806 - TWO whitespace lines (just hit return again), or
2803 - a single whitespace line of a different length than provided
2807 - a single whitespace line of a different length than provided
2804 by the autoindent (add or remove a space).
2808 by the autoindent (add or remove a space).
2805
2809
2806 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2810 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2807 module to better organize all readline-related functionality.
2811 module to better organize all readline-related functionality.
2808 I've deleted FlexCompleter and put all completion clases here.
2812 I've deleted FlexCompleter and put all completion clases here.
2809
2813
2810 * IPython/iplib.py (raw_input): improve indentation management.
2814 * IPython/iplib.py (raw_input): improve indentation management.
2811 It is now possible to paste indented code with autoindent on, and
2815 It is now possible to paste indented code with autoindent on, and
2812 the code is interpreted correctly (though it still looks bad on
2816 the code is interpreted correctly (though it still looks bad on
2813 screen, due to the line-oriented nature of ipython).
2817 screen, due to the line-oriented nature of ipython).
2814 (MagicCompleter.complete): change behavior so that a TAB key on an
2818 (MagicCompleter.complete): change behavior so that a TAB key on an
2815 otherwise empty line actually inserts a tab, instead of completing
2819 otherwise empty line actually inserts a tab, instead of completing
2816 on the entire global namespace. This makes it easier to use the
2820 on the entire global namespace. This makes it easier to use the
2817 TAB key for indentation. After a request by Hans Meine
2821 TAB key for indentation. After a request by Hans Meine
2818 <hans_meine-AT-gmx.net>
2822 <hans_meine-AT-gmx.net>
2819 (_prefilter): add support so that typing plain 'exit' or 'quit'
2823 (_prefilter): add support so that typing plain 'exit' or 'quit'
2820 does a sensible thing. Originally I tried to deviate as little as
2824 does a sensible thing. Originally I tried to deviate as little as
2821 possible from the default python behavior, but even that one may
2825 possible from the default python behavior, but even that one may
2822 change in this direction (thread on python-dev to that effect).
2826 change in this direction (thread on python-dev to that effect).
2823 Regardless, ipython should do the right thing even if CPython's
2827 Regardless, ipython should do the right thing even if CPython's
2824 '>>>' prompt doesn't.
2828 '>>>' prompt doesn't.
2825 (InteractiveShell): removed subclassing code.InteractiveConsole
2829 (InteractiveShell): removed subclassing code.InteractiveConsole
2826 class. By now we'd overridden just about all of its methods: I've
2830 class. By now we'd overridden just about all of its methods: I've
2827 copied the remaining two over, and now ipython is a standalone
2831 copied the remaining two over, and now ipython is a standalone
2828 class. This will provide a clearer picture for the chainsaw
2832 class. This will provide a clearer picture for the chainsaw
2829 branch refactoring.
2833 branch refactoring.
2830
2834
2831 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2835 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2832
2836
2833 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2837 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2834 failures for objects which break when dir() is called on them.
2838 failures for objects which break when dir() is called on them.
2835
2839
2836 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2840 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2837 distinct local and global namespaces in the completer API. This
2841 distinct local and global namespaces in the completer API. This
2838 change allows us to properly handle completion with distinct
2842 change allows us to properly handle completion with distinct
2839 scopes, including in embedded instances (this had never really
2843 scopes, including in embedded instances (this had never really
2840 worked correctly).
2844 worked correctly).
2841
2845
2842 Note: this introduces a change in the constructor for
2846 Note: this introduces a change in the constructor for
2843 MagicCompleter, as a new global_namespace parameter is now the
2847 MagicCompleter, as a new global_namespace parameter is now the
2844 second argument (the others were bumped one position).
2848 second argument (the others were bumped one position).
2845
2849
2846 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2850 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2847
2851
2848 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2852 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2849 embedded instances (which can be done now thanks to Vivian's
2853 embedded instances (which can be done now thanks to Vivian's
2850 frame-handling fixes for pdb).
2854 frame-handling fixes for pdb).
2851 (InteractiveShell.__init__): Fix namespace handling problem in
2855 (InteractiveShell.__init__): Fix namespace handling problem in
2852 embedded instances. We were overwriting __main__ unconditionally,
2856 embedded instances. We were overwriting __main__ unconditionally,
2853 and this should only be done for 'full' (non-embedded) IPython;
2857 and this should only be done for 'full' (non-embedded) IPython;
2854 embedded instances must respect the caller's __main__. Thanks to
2858 embedded instances must respect the caller's __main__. Thanks to
2855 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2859 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2856
2860
2857 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2861 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2858
2862
2859 * setup.py: added download_url to setup(). This registers the
2863 * setup.py: added download_url to setup(). This registers the
2860 download address at PyPI, which is not only useful to humans
2864 download address at PyPI, which is not only useful to humans
2861 browsing the site, but is also picked up by setuptools (the Eggs
2865 browsing the site, but is also picked up by setuptools (the Eggs
2862 machinery). Thanks to Ville and R. Kern for the info/discussion
2866 machinery). Thanks to Ville and R. Kern for the info/discussion
2863 on this.
2867 on this.
2864
2868
2865 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2869 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2866
2870
2867 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2871 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2868 This brings a lot of nice functionality to the pdb mode, which now
2872 This brings a lot of nice functionality to the pdb mode, which now
2869 has tab-completion, syntax highlighting, and better stack handling
2873 has tab-completion, syntax highlighting, and better stack handling
2870 than before. Many thanks to Vivian De Smedt
2874 than before. Many thanks to Vivian De Smedt
2871 <vivian-AT-vdesmedt.com> for the original patches.
2875 <vivian-AT-vdesmedt.com> for the original patches.
2872
2876
2873 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2877 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2874
2878
2875 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2879 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2876 sequence to consistently accept the banner argument. The
2880 sequence to consistently accept the banner argument. The
2877 inconsistency was tripping SAGE, thanks to Gary Zablackis
2881 inconsistency was tripping SAGE, thanks to Gary Zablackis
2878 <gzabl-AT-yahoo.com> for the report.
2882 <gzabl-AT-yahoo.com> for the report.
2879
2883
2880 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2884 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2881
2885
2882 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2886 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2883 Fix bug where a naked 'alias' call in the ipythonrc file would
2887 Fix bug where a naked 'alias' call in the ipythonrc file would
2884 cause a crash. Bug reported by Jorgen Stenarson.
2888 cause a crash. Bug reported by Jorgen Stenarson.
2885
2889
2886 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2890 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2887
2891
2888 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2892 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2889 startup time.
2893 startup time.
2890
2894
2891 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2895 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2892 instances had introduced a bug with globals in normal code. Now
2896 instances had introduced a bug with globals in normal code. Now
2893 it's working in all cases.
2897 it's working in all cases.
2894
2898
2895 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2899 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2896 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2900 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2897 has been introduced to set the default case sensitivity of the
2901 has been introduced to set the default case sensitivity of the
2898 searches. Users can still select either mode at runtime on a
2902 searches. Users can still select either mode at runtime on a
2899 per-search basis.
2903 per-search basis.
2900
2904
2901 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2905 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2902
2906
2903 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2907 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2904 attributes in wildcard searches for subclasses. Modified version
2908 attributes in wildcard searches for subclasses. Modified version
2905 of a patch by Jorgen.
2909 of a patch by Jorgen.
2906
2910
2907 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2911 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2908
2912
2909 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2913 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2910 embedded instances. I added a user_global_ns attribute to the
2914 embedded instances. I added a user_global_ns attribute to the
2911 InteractiveShell class to handle this.
2915 InteractiveShell class to handle this.
2912
2916
2913 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2917 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2914
2918
2915 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2919 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2916 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2920 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2917 (reported under win32, but may happen also in other platforms).
2921 (reported under win32, but may happen also in other platforms).
2918 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2922 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2919
2923
2920 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2924 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2921
2925
2922 * IPython/Magic.py (magic_psearch): new support for wildcard
2926 * IPython/Magic.py (magic_psearch): new support for wildcard
2923 patterns. Now, typing ?a*b will list all names which begin with a
2927 patterns. Now, typing ?a*b will list all names which begin with a
2924 and end in b, for example. The %psearch magic has full
2928 and end in b, for example. The %psearch magic has full
2925 docstrings. Many thanks to JΓΆrgen Stenarson
2929 docstrings. Many thanks to JΓΆrgen Stenarson
2926 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2930 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2927 implementing this functionality.
2931 implementing this functionality.
2928
2932
2929 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2933 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2930
2934
2931 * Manual: fixed long-standing annoyance of double-dashes (as in
2935 * Manual: fixed long-standing annoyance of double-dashes (as in
2932 --prefix=~, for example) being stripped in the HTML version. This
2936 --prefix=~, for example) being stripped in the HTML version. This
2933 is a latex2html bug, but a workaround was provided. Many thanks
2937 is a latex2html bug, but a workaround was provided. Many thanks
2934 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2938 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2935 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2939 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2936 rolling. This seemingly small issue had tripped a number of users
2940 rolling. This seemingly small issue had tripped a number of users
2937 when first installing, so I'm glad to see it gone.
2941 when first installing, so I'm glad to see it gone.
2938
2942
2939 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2943 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2940
2944
2941 * IPython/Extensions/numeric_formats.py: fix missing import,
2945 * IPython/Extensions/numeric_formats.py: fix missing import,
2942 reported by Stephen Walton.
2946 reported by Stephen Walton.
2943
2947
2944 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2948 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2945
2949
2946 * IPython/demo.py: finish demo module, fully documented now.
2950 * IPython/demo.py: finish demo module, fully documented now.
2947
2951
2948 * IPython/genutils.py (file_read): simple little utility to read a
2952 * IPython/genutils.py (file_read): simple little utility to read a
2949 file and ensure it's closed afterwards.
2953 file and ensure it's closed afterwards.
2950
2954
2951 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2955 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2952
2956
2953 * IPython/demo.py (Demo.__init__): added support for individually
2957 * IPython/demo.py (Demo.__init__): added support for individually
2954 tagging blocks for automatic execution.
2958 tagging blocks for automatic execution.
2955
2959
2956 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2960 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2957 syntax-highlighted python sources, requested by John.
2961 syntax-highlighted python sources, requested by John.
2958
2962
2959 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2963 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2960
2964
2961 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2965 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2962 finishing.
2966 finishing.
2963
2967
2964 * IPython/genutils.py (shlex_split): moved from Magic to here,
2968 * IPython/genutils.py (shlex_split): moved from Magic to here,
2965 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2969 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2966
2970
2967 * IPython/demo.py (Demo.__init__): added support for silent
2971 * IPython/demo.py (Demo.__init__): added support for silent
2968 blocks, improved marks as regexps, docstrings written.
2972 blocks, improved marks as regexps, docstrings written.
2969 (Demo.__init__): better docstring, added support for sys.argv.
2973 (Demo.__init__): better docstring, added support for sys.argv.
2970
2974
2971 * IPython/genutils.py (marquee): little utility used by the demo
2975 * IPython/genutils.py (marquee): little utility used by the demo
2972 code, handy in general.
2976 code, handy in general.
2973
2977
2974 * IPython/demo.py (Demo.__init__): new class for interactive
2978 * IPython/demo.py (Demo.__init__): new class for interactive
2975 demos. Not documented yet, I just wrote it in a hurry for
2979 demos. Not documented yet, I just wrote it in a hurry for
2976 scipy'05. Will docstring later.
2980 scipy'05. Will docstring later.
2977
2981
2978 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2982 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2979
2983
2980 * IPython/Shell.py (sigint_handler): Drastic simplification which
2984 * IPython/Shell.py (sigint_handler): Drastic simplification which
2981 also seems to make Ctrl-C work correctly across threads! This is
2985 also seems to make Ctrl-C work correctly across threads! This is
2982 so simple, that I can't beleive I'd missed it before. Needs more
2986 so simple, that I can't beleive I'd missed it before. Needs more
2983 testing, though.
2987 testing, though.
2984 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2988 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2985 like this before...
2989 like this before...
2986
2990
2987 * IPython/genutils.py (get_home_dir): add protection against
2991 * IPython/genutils.py (get_home_dir): add protection against
2988 non-dirs in win32 registry.
2992 non-dirs in win32 registry.
2989
2993
2990 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2994 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2991 bug where dict was mutated while iterating (pysh crash).
2995 bug where dict was mutated while iterating (pysh crash).
2992
2996
2993 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2997 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2994
2998
2995 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2999 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2996 spurious newlines added by this routine. After a report by
3000 spurious newlines added by this routine. After a report by
2997 F. Mantegazza.
3001 F. Mantegazza.
2998
3002
2999 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3003 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3000
3004
3001 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3005 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3002 calls. These were a leftover from the GTK 1.x days, and can cause
3006 calls. These were a leftover from the GTK 1.x days, and can cause
3003 problems in certain cases (after a report by John Hunter).
3007 problems in certain cases (after a report by John Hunter).
3004
3008
3005 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3009 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3006 os.getcwd() fails at init time. Thanks to patch from David Remahl
3010 os.getcwd() fails at init time. Thanks to patch from David Remahl
3007 <chmod007-AT-mac.com>.
3011 <chmod007-AT-mac.com>.
3008 (InteractiveShell.__init__): prevent certain special magics from
3012 (InteractiveShell.__init__): prevent certain special magics from
3009 being shadowed by aliases. Closes
3013 being shadowed by aliases. Closes
3010 http://www.scipy.net/roundup/ipython/issue41.
3014 http://www.scipy.net/roundup/ipython/issue41.
3011
3015
3012 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3016 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3013
3017
3014 * IPython/iplib.py (InteractiveShell.complete): Added new
3018 * IPython/iplib.py (InteractiveShell.complete): Added new
3015 top-level completion method to expose the completion mechanism
3019 top-level completion method to expose the completion mechanism
3016 beyond readline-based environments.
3020 beyond readline-based environments.
3017
3021
3018 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3022 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3019
3023
3020 * tools/ipsvnc (svnversion): fix svnversion capture.
3024 * tools/ipsvnc (svnversion): fix svnversion capture.
3021
3025
3022 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3026 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3023 attribute to self, which was missing. Before, it was set by a
3027 attribute to self, which was missing. Before, it was set by a
3024 routine which in certain cases wasn't being called, so the
3028 routine which in certain cases wasn't being called, so the
3025 instance could end up missing the attribute. This caused a crash.
3029 instance could end up missing the attribute. This caused a crash.
3026 Closes http://www.scipy.net/roundup/ipython/issue40.
3030 Closes http://www.scipy.net/roundup/ipython/issue40.
3027
3031
3028 2005-08-16 Fernando Perez <fperez@colorado.edu>
3032 2005-08-16 Fernando Perez <fperez@colorado.edu>
3029
3033
3030 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3034 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3031 contains non-string attribute. Closes
3035 contains non-string attribute. Closes
3032 http://www.scipy.net/roundup/ipython/issue38.
3036 http://www.scipy.net/roundup/ipython/issue38.
3033
3037
3034 2005-08-14 Fernando Perez <fperez@colorado.edu>
3038 2005-08-14 Fernando Perez <fperez@colorado.edu>
3035
3039
3036 * tools/ipsvnc: Minor improvements, to add changeset info.
3040 * tools/ipsvnc: Minor improvements, to add changeset info.
3037
3041
3038 2005-08-12 Fernando Perez <fperez@colorado.edu>
3042 2005-08-12 Fernando Perez <fperez@colorado.edu>
3039
3043
3040 * IPython/iplib.py (runsource): remove self.code_to_run_src
3044 * IPython/iplib.py (runsource): remove self.code_to_run_src
3041 attribute. I realized this is nothing more than
3045 attribute. I realized this is nothing more than
3042 '\n'.join(self.buffer), and having the same data in two different
3046 '\n'.join(self.buffer), and having the same data in two different
3043 places is just asking for synchronization bugs. This may impact
3047 places is just asking for synchronization bugs. This may impact
3044 people who have custom exception handlers, so I need to warn
3048 people who have custom exception handlers, so I need to warn
3045 ipython-dev about it (F. Mantegazza may use them).
3049 ipython-dev about it (F. Mantegazza may use them).
3046
3050
3047 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3051 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3048
3052
3049 * IPython/genutils.py: fix 2.2 compatibility (generators)
3053 * IPython/genutils.py: fix 2.2 compatibility (generators)
3050
3054
3051 2005-07-18 Fernando Perez <fperez@colorado.edu>
3055 2005-07-18 Fernando Perez <fperez@colorado.edu>
3052
3056
3053 * IPython/genutils.py (get_home_dir): fix to help users with
3057 * IPython/genutils.py (get_home_dir): fix to help users with
3054 invalid $HOME under win32.
3058 invalid $HOME under win32.
3055
3059
3056 2005-07-17 Fernando Perez <fperez@colorado.edu>
3060 2005-07-17 Fernando Perez <fperez@colorado.edu>
3057
3061
3058 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3062 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3059 some old hacks and clean up a bit other routines; code should be
3063 some old hacks and clean up a bit other routines; code should be
3060 simpler and a bit faster.
3064 simpler and a bit faster.
3061
3065
3062 * IPython/iplib.py (interact): removed some last-resort attempts
3066 * IPython/iplib.py (interact): removed some last-resort attempts
3063 to survive broken stdout/stderr. That code was only making it
3067 to survive broken stdout/stderr. That code was only making it
3064 harder to abstract out the i/o (necessary for gui integration),
3068 harder to abstract out the i/o (necessary for gui integration),
3065 and the crashes it could prevent were extremely rare in practice
3069 and the crashes it could prevent were extremely rare in practice
3066 (besides being fully user-induced in a pretty violent manner).
3070 (besides being fully user-induced in a pretty violent manner).
3067
3071
3068 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3072 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3069 Nothing major yet, but the code is simpler to read; this should
3073 Nothing major yet, but the code is simpler to read; this should
3070 make it easier to do more serious modifications in the future.
3074 make it easier to do more serious modifications in the future.
3071
3075
3072 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3076 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3073 which broke in .15 (thanks to a report by Ville).
3077 which broke in .15 (thanks to a report by Ville).
3074
3078
3075 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3079 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3076 be quite correct, I know next to nothing about unicode). This
3080 be quite correct, I know next to nothing about unicode). This
3077 will allow unicode strings to be used in prompts, amongst other
3081 will allow unicode strings to be used in prompts, amongst other
3078 cases. It also will prevent ipython from crashing when unicode
3082 cases. It also will prevent ipython from crashing when unicode
3079 shows up unexpectedly in many places. If ascii encoding fails, we
3083 shows up unexpectedly in many places. If ascii encoding fails, we
3080 assume utf_8. Currently the encoding is not a user-visible
3084 assume utf_8. Currently the encoding is not a user-visible
3081 setting, though it could be made so if there is demand for it.
3085 setting, though it could be made so if there is demand for it.
3082
3086
3083 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3087 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3084
3088
3085 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3089 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3086
3090
3087 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3091 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3088
3092
3089 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3093 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3090 code can work transparently for 2.2/2.3.
3094 code can work transparently for 2.2/2.3.
3091
3095
3092 2005-07-16 Fernando Perez <fperez@colorado.edu>
3096 2005-07-16 Fernando Perez <fperez@colorado.edu>
3093
3097
3094 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3098 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3095 out of the color scheme table used for coloring exception
3099 out of the color scheme table used for coloring exception
3096 tracebacks. This allows user code to add new schemes at runtime.
3100 tracebacks. This allows user code to add new schemes at runtime.
3097 This is a minimally modified version of the patch at
3101 This is a minimally modified version of the patch at
3098 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3102 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3099 for the contribution.
3103 for the contribution.
3100
3104
3101 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3105 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3102 slightly modified version of the patch in
3106 slightly modified version of the patch in
3103 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3107 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3104 to remove the previous try/except solution (which was costlier).
3108 to remove the previous try/except solution (which was costlier).
3105 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3109 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3106
3110
3107 2005-06-08 Fernando Perez <fperez@colorado.edu>
3111 2005-06-08 Fernando Perez <fperez@colorado.edu>
3108
3112
3109 * IPython/iplib.py (write/write_err): Add methods to abstract all
3113 * IPython/iplib.py (write/write_err): Add methods to abstract all
3110 I/O a bit more.
3114 I/O a bit more.
3111
3115
3112 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3116 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3113 warning, reported by Aric Hagberg, fix by JD Hunter.
3117 warning, reported by Aric Hagberg, fix by JD Hunter.
3114
3118
3115 2005-06-02 *** Released version 0.6.15
3119 2005-06-02 *** Released version 0.6.15
3116
3120
3117 2005-06-01 Fernando Perez <fperez@colorado.edu>
3121 2005-06-01 Fernando Perez <fperez@colorado.edu>
3118
3122
3119 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3123 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3120 tab-completion of filenames within open-quoted strings. Note that
3124 tab-completion of filenames within open-quoted strings. Note that
3121 this requires that in ~/.ipython/ipythonrc, users change the
3125 this requires that in ~/.ipython/ipythonrc, users change the
3122 readline delimiters configuration to read:
3126 readline delimiters configuration to read:
3123
3127
3124 readline_remove_delims -/~
3128 readline_remove_delims -/~
3125
3129
3126
3130
3127 2005-05-31 *** Released version 0.6.14
3131 2005-05-31 *** Released version 0.6.14
3128
3132
3129 2005-05-29 Fernando Perez <fperez@colorado.edu>
3133 2005-05-29 Fernando Perez <fperez@colorado.edu>
3130
3134
3131 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3135 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3132 with files not on the filesystem. Reported by Eliyahu Sandler
3136 with files not on the filesystem. Reported by Eliyahu Sandler
3133 <eli@gondolin.net>
3137 <eli@gondolin.net>
3134
3138
3135 2005-05-22 Fernando Perez <fperez@colorado.edu>
3139 2005-05-22 Fernando Perez <fperez@colorado.edu>
3136
3140
3137 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3141 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3138 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3142 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3139
3143
3140 2005-05-19 Fernando Perez <fperez@colorado.edu>
3144 2005-05-19 Fernando Perez <fperez@colorado.edu>
3141
3145
3142 * IPython/iplib.py (safe_execfile): close a file which could be
3146 * IPython/iplib.py (safe_execfile): close a file which could be
3143 left open (causing problems in win32, which locks open files).
3147 left open (causing problems in win32, which locks open files).
3144 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3148 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3145
3149
3146 2005-05-18 Fernando Perez <fperez@colorado.edu>
3150 2005-05-18 Fernando Perez <fperez@colorado.edu>
3147
3151
3148 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3152 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3149 keyword arguments correctly to safe_execfile().
3153 keyword arguments correctly to safe_execfile().
3150
3154
3151 2005-05-13 Fernando Perez <fperez@colorado.edu>
3155 2005-05-13 Fernando Perez <fperez@colorado.edu>
3152
3156
3153 * ipython.1: Added info about Qt to manpage, and threads warning
3157 * ipython.1: Added info about Qt to manpage, and threads warning
3154 to usage page (invoked with --help).
3158 to usage page (invoked with --help).
3155
3159
3156 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3160 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3157 new matcher (it goes at the end of the priority list) to do
3161 new matcher (it goes at the end of the priority list) to do
3158 tab-completion on named function arguments. Submitted by George
3162 tab-completion on named function arguments. Submitted by George
3159 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3163 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3160 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3164 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3161 for more details.
3165 for more details.
3162
3166
3163 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3167 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3164 SystemExit exceptions in the script being run. Thanks to a report
3168 SystemExit exceptions in the script being run. Thanks to a report
3165 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3169 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3166 producing very annoying behavior when running unit tests.
3170 producing very annoying behavior when running unit tests.
3167
3171
3168 2005-05-12 Fernando Perez <fperez@colorado.edu>
3172 2005-05-12 Fernando Perez <fperez@colorado.edu>
3169
3173
3170 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3174 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3171 which I'd broken (again) due to a changed regexp. In the process,
3175 which I'd broken (again) due to a changed regexp. In the process,
3172 added ';' as an escape to auto-quote the whole line without
3176 added ';' as an escape to auto-quote the whole line without
3173 splitting its arguments. Thanks to a report by Jerry McRae
3177 splitting its arguments. Thanks to a report by Jerry McRae
3174 <qrs0xyc02-AT-sneakemail.com>.
3178 <qrs0xyc02-AT-sneakemail.com>.
3175
3179
3176 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3180 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3177 possible crashes caused by a TokenError. Reported by Ed Schofield
3181 possible crashes caused by a TokenError. Reported by Ed Schofield
3178 <schofield-AT-ftw.at>.
3182 <schofield-AT-ftw.at>.
3179
3183
3180 2005-05-06 Fernando Perez <fperez@colorado.edu>
3184 2005-05-06 Fernando Perez <fperez@colorado.edu>
3181
3185
3182 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3186 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3183
3187
3184 2005-04-29 Fernando Perez <fperez@colorado.edu>
3188 2005-04-29 Fernando Perez <fperez@colorado.edu>
3185
3189
3186 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3190 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3187 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3191 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3188 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3192 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3189 which provides support for Qt interactive usage (similar to the
3193 which provides support for Qt interactive usage (similar to the
3190 existing one for WX and GTK). This had been often requested.
3194 existing one for WX and GTK). This had been often requested.
3191
3195
3192 2005-04-14 *** Released version 0.6.13
3196 2005-04-14 *** Released version 0.6.13
3193
3197
3194 2005-04-08 Fernando Perez <fperez@colorado.edu>
3198 2005-04-08 Fernando Perez <fperez@colorado.edu>
3195
3199
3196 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3200 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3197 from _ofind, which gets called on almost every input line. Now,
3201 from _ofind, which gets called on almost every input line. Now,
3198 we only try to get docstrings if they are actually going to be
3202 we only try to get docstrings if they are actually going to be
3199 used (the overhead of fetching unnecessary docstrings can be
3203 used (the overhead of fetching unnecessary docstrings can be
3200 noticeable for certain objects, such as Pyro proxies).
3204 noticeable for certain objects, such as Pyro proxies).
3201
3205
3202 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3206 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3203 for completers. For some reason I had been passing them the state
3207 for completers. For some reason I had been passing them the state
3204 variable, which completers never actually need, and was in
3208 variable, which completers never actually need, and was in
3205 conflict with the rlcompleter API. Custom completers ONLY need to
3209 conflict with the rlcompleter API. Custom completers ONLY need to
3206 take the text parameter.
3210 take the text parameter.
3207
3211
3208 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3212 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3209 work correctly in pysh. I've also moved all the logic which used
3213 work correctly in pysh. I've also moved all the logic which used
3210 to be in pysh.py here, which will prevent problems with future
3214 to be in pysh.py here, which will prevent problems with future
3211 upgrades. However, this time I must warn users to update their
3215 upgrades. However, this time I must warn users to update their
3212 pysh profile to include the line
3216 pysh profile to include the line
3213
3217
3214 import_all IPython.Extensions.InterpreterExec
3218 import_all IPython.Extensions.InterpreterExec
3215
3219
3216 because otherwise things won't work for them. They MUST also
3220 because otherwise things won't work for them. They MUST also
3217 delete pysh.py and the line
3221 delete pysh.py and the line
3218
3222
3219 execfile pysh.py
3223 execfile pysh.py
3220
3224
3221 from their ipythonrc-pysh.
3225 from their ipythonrc-pysh.
3222
3226
3223 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3227 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3224 robust in the face of objects whose dir() returns non-strings
3228 robust in the face of objects whose dir() returns non-strings
3225 (which it shouldn't, but some broken libs like ITK do). Thanks to
3229 (which it shouldn't, but some broken libs like ITK do). Thanks to
3226 a patch by John Hunter (implemented differently, though). Also
3230 a patch by John Hunter (implemented differently, though). Also
3227 minor improvements by using .extend instead of + on lists.
3231 minor improvements by using .extend instead of + on lists.
3228
3232
3229 * pysh.py:
3233 * pysh.py:
3230
3234
3231 2005-04-06 Fernando Perez <fperez@colorado.edu>
3235 2005-04-06 Fernando Perez <fperez@colorado.edu>
3232
3236
3233 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3237 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3234 by default, so that all users benefit from it. Those who don't
3238 by default, so that all users benefit from it. Those who don't
3235 want it can still turn it off.
3239 want it can still turn it off.
3236
3240
3237 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3241 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3238 config file, I'd forgotten about this, so users were getting it
3242 config file, I'd forgotten about this, so users were getting it
3239 off by default.
3243 off by default.
3240
3244
3241 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3245 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3242 consistency. Now magics can be called in multiline statements,
3246 consistency. Now magics can be called in multiline statements,
3243 and python variables can be expanded in magic calls via $var.
3247 and python variables can be expanded in magic calls via $var.
3244 This makes the magic system behave just like aliases or !system
3248 This makes the magic system behave just like aliases or !system
3245 calls.
3249 calls.
3246
3250
3247 2005-03-28 Fernando Perez <fperez@colorado.edu>
3251 2005-03-28 Fernando Perez <fperez@colorado.edu>
3248
3252
3249 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3253 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3250 expensive string additions for building command. Add support for
3254 expensive string additions for building command. Add support for
3251 trailing ';' when autocall is used.
3255 trailing ';' when autocall is used.
3252
3256
3253 2005-03-26 Fernando Perez <fperez@colorado.edu>
3257 2005-03-26 Fernando Perez <fperez@colorado.edu>
3254
3258
3255 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3259 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3256 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3260 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3257 ipython.el robust against prompts with any number of spaces
3261 ipython.el robust against prompts with any number of spaces
3258 (including 0) after the ':' character.
3262 (including 0) after the ':' character.
3259
3263
3260 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3264 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3261 continuation prompt, which misled users to think the line was
3265 continuation prompt, which misled users to think the line was
3262 already indented. Closes debian Bug#300847, reported to me by
3266 already indented. Closes debian Bug#300847, reported to me by
3263 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3267 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3264
3268
3265 2005-03-23 Fernando Perez <fperez@colorado.edu>
3269 2005-03-23 Fernando Perez <fperez@colorado.edu>
3266
3270
3267 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3271 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3268 properly aligned if they have embedded newlines.
3272 properly aligned if they have embedded newlines.
3269
3273
3270 * IPython/iplib.py (runlines): Add a public method to expose
3274 * IPython/iplib.py (runlines): Add a public method to expose
3271 IPython's code execution machinery, so that users can run strings
3275 IPython's code execution machinery, so that users can run strings
3272 as if they had been typed at the prompt interactively.
3276 as if they had been typed at the prompt interactively.
3273 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3277 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3274 methods which can call the system shell, but with python variable
3278 methods which can call the system shell, but with python variable
3275 expansion. The three such methods are: __IPYTHON__.system,
3279 expansion. The three such methods are: __IPYTHON__.system,
3276 .getoutput and .getoutputerror. These need to be documented in a
3280 .getoutput and .getoutputerror. These need to be documented in a
3277 'public API' section (to be written) of the manual.
3281 'public API' section (to be written) of the manual.
3278
3282
3279 2005-03-20 Fernando Perez <fperez@colorado.edu>
3283 2005-03-20 Fernando Perez <fperez@colorado.edu>
3280
3284
3281 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3285 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3282 for custom exception handling. This is quite powerful, and it
3286 for custom exception handling. This is quite powerful, and it
3283 allows for user-installable exception handlers which can trap
3287 allows for user-installable exception handlers which can trap
3284 custom exceptions at runtime and treat them separately from
3288 custom exceptions at runtime and treat them separately from
3285 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3289 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3286 Mantegazza <mantegazza-AT-ill.fr>.
3290 Mantegazza <mantegazza-AT-ill.fr>.
3287 (InteractiveShell.set_custom_completer): public API function to
3291 (InteractiveShell.set_custom_completer): public API function to
3288 add new completers at runtime.
3292 add new completers at runtime.
3289
3293
3290 2005-03-19 Fernando Perez <fperez@colorado.edu>
3294 2005-03-19 Fernando Perez <fperez@colorado.edu>
3291
3295
3292 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3296 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3293 allow objects which provide their docstrings via non-standard
3297 allow objects which provide their docstrings via non-standard
3294 mechanisms (like Pyro proxies) to still be inspected by ipython's
3298 mechanisms (like Pyro proxies) to still be inspected by ipython's
3295 ? system.
3299 ? system.
3296
3300
3297 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3301 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3298 automatic capture system. I tried quite hard to make it work
3302 automatic capture system. I tried quite hard to make it work
3299 reliably, and simply failed. I tried many combinations with the
3303 reliably, and simply failed. I tried many combinations with the
3300 subprocess module, but eventually nothing worked in all needed
3304 subprocess module, but eventually nothing worked in all needed
3301 cases (not blocking stdin for the child, duplicating stdout
3305 cases (not blocking stdin for the child, duplicating stdout
3302 without blocking, etc). The new %sc/%sx still do capture to these
3306 without blocking, etc). The new %sc/%sx still do capture to these
3303 magical list/string objects which make shell use much more
3307 magical list/string objects which make shell use much more
3304 conveninent, so not all is lost.
3308 conveninent, so not all is lost.
3305
3309
3306 XXX - FIX MANUAL for the change above!
3310 XXX - FIX MANUAL for the change above!
3307
3311
3308 (runsource): I copied code.py's runsource() into ipython to modify
3312 (runsource): I copied code.py's runsource() into ipython to modify
3309 it a bit. Now the code object and source to be executed are
3313 it a bit. Now the code object and source to be executed are
3310 stored in ipython. This makes this info accessible to third-party
3314 stored in ipython. This makes this info accessible to third-party
3311 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3315 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3312 Mantegazza <mantegazza-AT-ill.fr>.
3316 Mantegazza <mantegazza-AT-ill.fr>.
3313
3317
3314 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3318 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3315 history-search via readline (like C-p/C-n). I'd wanted this for a
3319 history-search via readline (like C-p/C-n). I'd wanted this for a
3316 long time, but only recently found out how to do it. For users
3320 long time, but only recently found out how to do it. For users
3317 who already have their ipythonrc files made and want this, just
3321 who already have their ipythonrc files made and want this, just
3318 add:
3322 add:
3319
3323
3320 readline_parse_and_bind "\e[A": history-search-backward
3324 readline_parse_and_bind "\e[A": history-search-backward
3321 readline_parse_and_bind "\e[B": history-search-forward
3325 readline_parse_and_bind "\e[B": history-search-forward
3322
3326
3323 2005-03-18 Fernando Perez <fperez@colorado.edu>
3327 2005-03-18 Fernando Perez <fperez@colorado.edu>
3324
3328
3325 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3329 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3326 LSString and SList classes which allow transparent conversions
3330 LSString and SList classes which allow transparent conversions
3327 between list mode and whitespace-separated string.
3331 between list mode and whitespace-separated string.
3328 (magic_r): Fix recursion problem in %r.
3332 (magic_r): Fix recursion problem in %r.
3329
3333
3330 * IPython/genutils.py (LSString): New class to be used for
3334 * IPython/genutils.py (LSString): New class to be used for
3331 automatic storage of the results of all alias/system calls in _o
3335 automatic storage of the results of all alias/system calls in _o
3332 and _e (stdout/err). These provide a .l/.list attribute which
3336 and _e (stdout/err). These provide a .l/.list attribute which
3333 does automatic splitting on newlines. This means that for most
3337 does automatic splitting on newlines. This means that for most
3334 uses, you'll never need to do capturing of output with %sc/%sx
3338 uses, you'll never need to do capturing of output with %sc/%sx
3335 anymore, since ipython keeps this always done for you. Note that
3339 anymore, since ipython keeps this always done for you. Note that
3336 only the LAST results are stored, the _o/e variables are
3340 only the LAST results are stored, the _o/e variables are
3337 overwritten on each call. If you need to save their contents
3341 overwritten on each call. If you need to save their contents
3338 further, simply bind them to any other name.
3342 further, simply bind them to any other name.
3339
3343
3340 2005-03-17 Fernando Perez <fperez@colorado.edu>
3344 2005-03-17 Fernando Perez <fperez@colorado.edu>
3341
3345
3342 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3346 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3343 prompt namespace handling.
3347 prompt namespace handling.
3344
3348
3345 2005-03-16 Fernando Perez <fperez@colorado.edu>
3349 2005-03-16 Fernando Perez <fperez@colorado.edu>
3346
3350
3347 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3351 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3348 classic prompts to be '>>> ' (final space was missing, and it
3352 classic prompts to be '>>> ' (final space was missing, and it
3349 trips the emacs python mode).
3353 trips the emacs python mode).
3350 (BasePrompt.__str__): Added safe support for dynamic prompt
3354 (BasePrompt.__str__): Added safe support for dynamic prompt
3351 strings. Now you can set your prompt string to be '$x', and the
3355 strings. Now you can set your prompt string to be '$x', and the
3352 value of x will be printed from your interactive namespace. The
3356 value of x will be printed from your interactive namespace. The
3353 interpolation syntax includes the full Itpl support, so
3357 interpolation syntax includes the full Itpl support, so
3354 ${foo()+x+bar()} is a valid prompt string now, and the function
3358 ${foo()+x+bar()} is a valid prompt string now, and the function
3355 calls will be made at runtime.
3359 calls will be made at runtime.
3356
3360
3357 2005-03-15 Fernando Perez <fperez@colorado.edu>
3361 2005-03-15 Fernando Perez <fperez@colorado.edu>
3358
3362
3359 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3363 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3360 avoid name clashes in pylab. %hist still works, it just forwards
3364 avoid name clashes in pylab. %hist still works, it just forwards
3361 the call to %history.
3365 the call to %history.
3362
3366
3363 2005-03-02 *** Released version 0.6.12
3367 2005-03-02 *** Released version 0.6.12
3364
3368
3365 2005-03-02 Fernando Perez <fperez@colorado.edu>
3369 2005-03-02 Fernando Perez <fperez@colorado.edu>
3366
3370
3367 * IPython/iplib.py (handle_magic): log magic calls properly as
3371 * IPython/iplib.py (handle_magic): log magic calls properly as
3368 ipmagic() function calls.
3372 ipmagic() function calls.
3369
3373
3370 * IPython/Magic.py (magic_time): Improved %time to support
3374 * IPython/Magic.py (magic_time): Improved %time to support
3371 statements and provide wall-clock as well as CPU time.
3375 statements and provide wall-clock as well as CPU time.
3372
3376
3373 2005-02-27 Fernando Perez <fperez@colorado.edu>
3377 2005-02-27 Fernando Perez <fperez@colorado.edu>
3374
3378
3375 * IPython/hooks.py: New hooks module, to expose user-modifiable
3379 * IPython/hooks.py: New hooks module, to expose user-modifiable
3376 IPython functionality in a clean manner. For now only the editor
3380 IPython functionality in a clean manner. For now only the editor
3377 hook is actually written, and other thigns which I intend to turn
3381 hook is actually written, and other thigns which I intend to turn
3378 into proper hooks aren't yet there. The display and prefilter
3382 into proper hooks aren't yet there. The display and prefilter
3379 stuff, for example, should be hooks. But at least now the
3383 stuff, for example, should be hooks. But at least now the
3380 framework is in place, and the rest can be moved here with more
3384 framework is in place, and the rest can be moved here with more
3381 time later. IPython had had a .hooks variable for a long time for
3385 time later. IPython had had a .hooks variable for a long time for
3382 this purpose, but I'd never actually used it for anything.
3386 this purpose, but I'd never actually used it for anything.
3383
3387
3384 2005-02-26 Fernando Perez <fperez@colorado.edu>
3388 2005-02-26 Fernando Perez <fperez@colorado.edu>
3385
3389
3386 * IPython/ipmaker.py (make_IPython): make the default ipython
3390 * IPython/ipmaker.py (make_IPython): make the default ipython
3387 directory be called _ipython under win32, to follow more the
3391 directory be called _ipython under win32, to follow more the
3388 naming peculiarities of that platform (where buggy software like
3392 naming peculiarities of that platform (where buggy software like
3389 Visual Sourcesafe breaks with .named directories). Reported by
3393 Visual Sourcesafe breaks with .named directories). Reported by
3390 Ville Vainio.
3394 Ville Vainio.
3391
3395
3392 2005-02-23 Fernando Perez <fperez@colorado.edu>
3396 2005-02-23 Fernando Perez <fperez@colorado.edu>
3393
3397
3394 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3398 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3395 auto_aliases for win32 which were causing problems. Users can
3399 auto_aliases for win32 which were causing problems. Users can
3396 define the ones they personally like.
3400 define the ones they personally like.
3397
3401
3398 2005-02-21 Fernando Perez <fperez@colorado.edu>
3402 2005-02-21 Fernando Perez <fperez@colorado.edu>
3399
3403
3400 * IPython/Magic.py (magic_time): new magic to time execution of
3404 * IPython/Magic.py (magic_time): new magic to time execution of
3401 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3405 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3402
3406
3403 2005-02-19 Fernando Perez <fperez@colorado.edu>
3407 2005-02-19 Fernando Perez <fperez@colorado.edu>
3404
3408
3405 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3409 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3406 into keys (for prompts, for example).
3410 into keys (for prompts, for example).
3407
3411
3408 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3412 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3409 prompts in case users want them. This introduces a small behavior
3413 prompts in case users want them. This introduces a small behavior
3410 change: ipython does not automatically add a space to all prompts
3414 change: ipython does not automatically add a space to all prompts
3411 anymore. To get the old prompts with a space, users should add it
3415 anymore. To get the old prompts with a space, users should add it
3412 manually to their ipythonrc file, so for example prompt_in1 should
3416 manually to their ipythonrc file, so for example prompt_in1 should
3413 now read 'In [\#]: ' instead of 'In [\#]:'.
3417 now read 'In [\#]: ' instead of 'In [\#]:'.
3414 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3418 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3415 file) to control left-padding of secondary prompts.
3419 file) to control left-padding of secondary prompts.
3416
3420
3417 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3421 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3418 the profiler can't be imported. Fix for Debian, which removed
3422 the profiler can't be imported. Fix for Debian, which removed
3419 profile.py because of License issues. I applied a slightly
3423 profile.py because of License issues. I applied a slightly
3420 modified version of the original Debian patch at
3424 modified version of the original Debian patch at
3421 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3425 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3422
3426
3423 2005-02-17 Fernando Perez <fperez@colorado.edu>
3427 2005-02-17 Fernando Perez <fperez@colorado.edu>
3424
3428
3425 * IPython/genutils.py (native_line_ends): Fix bug which would
3429 * IPython/genutils.py (native_line_ends): Fix bug which would
3426 cause improper line-ends under win32 b/c I was not opening files
3430 cause improper line-ends under win32 b/c I was not opening files
3427 in binary mode. Bug report and fix thanks to Ville.
3431 in binary mode. Bug report and fix thanks to Ville.
3428
3432
3429 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3433 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3430 trying to catch spurious foo[1] autocalls. My fix actually broke
3434 trying to catch spurious foo[1] autocalls. My fix actually broke
3431 ',/' autoquote/call with explicit escape (bad regexp).
3435 ',/' autoquote/call with explicit escape (bad regexp).
3432
3436
3433 2005-02-15 *** Released version 0.6.11
3437 2005-02-15 *** Released version 0.6.11
3434
3438
3435 2005-02-14 Fernando Perez <fperez@colorado.edu>
3439 2005-02-14 Fernando Perez <fperez@colorado.edu>
3436
3440
3437 * IPython/background_jobs.py: New background job management
3441 * IPython/background_jobs.py: New background job management
3438 subsystem. This is implemented via a new set of classes, and
3442 subsystem. This is implemented via a new set of classes, and
3439 IPython now provides a builtin 'jobs' object for background job
3443 IPython now provides a builtin 'jobs' object for background job
3440 execution. A convenience %bg magic serves as a lightweight
3444 execution. A convenience %bg magic serves as a lightweight
3441 frontend for starting the more common type of calls. This was
3445 frontend for starting the more common type of calls. This was
3442 inspired by discussions with B. Granger and the BackgroundCommand
3446 inspired by discussions with B. Granger and the BackgroundCommand
3443 class described in the book Python Scripting for Computational
3447 class described in the book Python Scripting for Computational
3444 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3448 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3445 (although ultimately no code from this text was used, as IPython's
3449 (although ultimately no code from this text was used, as IPython's
3446 system is a separate implementation).
3450 system is a separate implementation).
3447
3451
3448 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3452 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3449 to control the completion of single/double underscore names
3453 to control the completion of single/double underscore names
3450 separately. As documented in the example ipytonrc file, the
3454 separately. As documented in the example ipytonrc file, the
3451 readline_omit__names variable can now be set to 2, to omit even
3455 readline_omit__names variable can now be set to 2, to omit even
3452 single underscore names. Thanks to a patch by Brian Wong
3456 single underscore names. Thanks to a patch by Brian Wong
3453 <BrianWong-AT-AirgoNetworks.Com>.
3457 <BrianWong-AT-AirgoNetworks.Com>.
3454 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3458 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3455 be autocalled as foo([1]) if foo were callable. A problem for
3459 be autocalled as foo([1]) if foo were callable. A problem for
3456 things which are both callable and implement __getitem__.
3460 things which are both callable and implement __getitem__.
3457 (init_readline): Fix autoindentation for win32. Thanks to a patch
3461 (init_readline): Fix autoindentation for win32. Thanks to a patch
3458 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3462 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3459
3463
3460 2005-02-12 Fernando Perez <fperez@colorado.edu>
3464 2005-02-12 Fernando Perez <fperez@colorado.edu>
3461
3465
3462 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3466 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3463 which I had written long ago to sort out user error messages which
3467 which I had written long ago to sort out user error messages which
3464 may occur during startup. This seemed like a good idea initially,
3468 may occur during startup. This seemed like a good idea initially,
3465 but it has proven a disaster in retrospect. I don't want to
3469 but it has proven a disaster in retrospect. I don't want to
3466 change much code for now, so my fix is to set the internal 'debug'
3470 change much code for now, so my fix is to set the internal 'debug'
3467 flag to true everywhere, whose only job was precisely to control
3471 flag to true everywhere, whose only job was precisely to control
3468 this subsystem. This closes issue 28 (as well as avoiding all
3472 this subsystem. This closes issue 28 (as well as avoiding all
3469 sorts of strange hangups which occur from time to time).
3473 sorts of strange hangups which occur from time to time).
3470
3474
3471 2005-02-07 Fernando Perez <fperez@colorado.edu>
3475 2005-02-07 Fernando Perez <fperez@colorado.edu>
3472
3476
3473 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3477 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3474 previous call produced a syntax error.
3478 previous call produced a syntax error.
3475
3479
3476 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3480 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3477 classes without constructor.
3481 classes without constructor.
3478
3482
3479 2005-02-06 Fernando Perez <fperez@colorado.edu>
3483 2005-02-06 Fernando Perez <fperez@colorado.edu>
3480
3484
3481 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3485 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3482 completions with the results of each matcher, so we return results
3486 completions with the results of each matcher, so we return results
3483 to the user from all namespaces. This breaks with ipython
3487 to the user from all namespaces. This breaks with ipython
3484 tradition, but I think it's a nicer behavior. Now you get all
3488 tradition, but I think it's a nicer behavior. Now you get all
3485 possible completions listed, from all possible namespaces (python,
3489 possible completions listed, from all possible namespaces (python,
3486 filesystem, magics...) After a request by John Hunter
3490 filesystem, magics...) After a request by John Hunter
3487 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3491 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3488
3492
3489 2005-02-05 Fernando Perez <fperez@colorado.edu>
3493 2005-02-05 Fernando Perez <fperez@colorado.edu>
3490
3494
3491 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3495 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3492 the call had quote characters in it (the quotes were stripped).
3496 the call had quote characters in it (the quotes were stripped).
3493
3497
3494 2005-01-31 Fernando Perez <fperez@colorado.edu>
3498 2005-01-31 Fernando Perez <fperez@colorado.edu>
3495
3499
3496 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3500 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3497 Itpl.itpl() to make the code more robust against psyco
3501 Itpl.itpl() to make the code more robust against psyco
3498 optimizations.
3502 optimizations.
3499
3503
3500 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3504 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3501 of causing an exception. Quicker, cleaner.
3505 of causing an exception. Quicker, cleaner.
3502
3506
3503 2005-01-28 Fernando Perez <fperez@colorado.edu>
3507 2005-01-28 Fernando Perez <fperez@colorado.edu>
3504
3508
3505 * scripts/ipython_win_post_install.py (install): hardcode
3509 * scripts/ipython_win_post_install.py (install): hardcode
3506 sys.prefix+'python.exe' as the executable path. It turns out that
3510 sys.prefix+'python.exe' as the executable path. It turns out that
3507 during the post-installation run, sys.executable resolves to the
3511 during the post-installation run, sys.executable resolves to the
3508 name of the binary installer! I should report this as a distutils
3512 name of the binary installer! I should report this as a distutils
3509 bug, I think. I updated the .10 release with this tiny fix, to
3513 bug, I think. I updated the .10 release with this tiny fix, to
3510 avoid annoying the lists further.
3514 avoid annoying the lists further.
3511
3515
3512 2005-01-27 *** Released version 0.6.10
3516 2005-01-27 *** Released version 0.6.10
3513
3517
3514 2005-01-27 Fernando Perez <fperez@colorado.edu>
3518 2005-01-27 Fernando Perez <fperez@colorado.edu>
3515
3519
3516 * IPython/numutils.py (norm): Added 'inf' as optional name for
3520 * IPython/numutils.py (norm): Added 'inf' as optional name for
3517 L-infinity norm, included references to mathworld.com for vector
3521 L-infinity norm, included references to mathworld.com for vector
3518 norm definitions.
3522 norm definitions.
3519 (amin/amax): added amin/amax for array min/max. Similar to what
3523 (amin/amax): added amin/amax for array min/max. Similar to what
3520 pylab ships with after the recent reorganization of names.
3524 pylab ships with after the recent reorganization of names.
3521 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3525 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3522
3526
3523 * ipython.el: committed Alex's recent fixes and improvements.
3527 * ipython.el: committed Alex's recent fixes and improvements.
3524 Tested with python-mode from CVS, and it looks excellent. Since
3528 Tested with python-mode from CVS, and it looks excellent. Since
3525 python-mode hasn't released anything in a while, I'm temporarily
3529 python-mode hasn't released anything in a while, I'm temporarily
3526 putting a copy of today's CVS (v 4.70) of python-mode in:
3530 putting a copy of today's CVS (v 4.70) of python-mode in:
3527 http://ipython.scipy.org/tmp/python-mode.el
3531 http://ipython.scipy.org/tmp/python-mode.el
3528
3532
3529 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3533 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3530 sys.executable for the executable name, instead of assuming it's
3534 sys.executable for the executable name, instead of assuming it's
3531 called 'python.exe' (the post-installer would have produced broken
3535 called 'python.exe' (the post-installer would have produced broken
3532 setups on systems with a differently named python binary).
3536 setups on systems with a differently named python binary).
3533
3537
3534 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3538 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3535 references to os.linesep, to make the code more
3539 references to os.linesep, to make the code more
3536 platform-independent. This is also part of the win32 coloring
3540 platform-independent. This is also part of the win32 coloring
3537 fixes.
3541 fixes.
3538
3542
3539 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3543 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3540 lines, which actually cause coloring bugs because the length of
3544 lines, which actually cause coloring bugs because the length of
3541 the line is very difficult to correctly compute with embedded
3545 the line is very difficult to correctly compute with embedded
3542 escapes. This was the source of all the coloring problems under
3546 escapes. This was the source of all the coloring problems under
3543 Win32. I think that _finally_, Win32 users have a properly
3547 Win32. I think that _finally_, Win32 users have a properly
3544 working ipython in all respects. This would never have happened
3548 working ipython in all respects. This would never have happened
3545 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3549 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3546
3550
3547 2005-01-26 *** Released version 0.6.9
3551 2005-01-26 *** Released version 0.6.9
3548
3552
3549 2005-01-25 Fernando Perez <fperez@colorado.edu>
3553 2005-01-25 Fernando Perez <fperez@colorado.edu>
3550
3554
3551 * setup.py: finally, we have a true Windows installer, thanks to
3555 * setup.py: finally, we have a true Windows installer, thanks to
3552 the excellent work of Viktor Ransmayr
3556 the excellent work of Viktor Ransmayr
3553 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3557 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3554 Windows users. The setup routine is quite a bit cleaner thanks to
3558 Windows users. The setup routine is quite a bit cleaner thanks to
3555 this, and the post-install script uses the proper functions to
3559 this, and the post-install script uses the proper functions to
3556 allow a clean de-installation using the standard Windows Control
3560 allow a clean de-installation using the standard Windows Control
3557 Panel.
3561 Panel.
3558
3562
3559 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3563 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3560 environment variable under all OSes (including win32) if
3564 environment variable under all OSes (including win32) if
3561 available. This will give consistency to win32 users who have set
3565 available. This will give consistency to win32 users who have set
3562 this variable for any reason. If os.environ['HOME'] fails, the
3566 this variable for any reason. If os.environ['HOME'] fails, the
3563 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3567 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3564
3568
3565 2005-01-24 Fernando Perez <fperez@colorado.edu>
3569 2005-01-24 Fernando Perez <fperez@colorado.edu>
3566
3570
3567 * IPython/numutils.py (empty_like): add empty_like(), similar to
3571 * IPython/numutils.py (empty_like): add empty_like(), similar to
3568 zeros_like() but taking advantage of the new empty() Numeric routine.
3572 zeros_like() but taking advantage of the new empty() Numeric routine.
3569
3573
3570 2005-01-23 *** Released version 0.6.8
3574 2005-01-23 *** Released version 0.6.8
3571
3575
3572 2005-01-22 Fernando Perez <fperez@colorado.edu>
3576 2005-01-22 Fernando Perez <fperez@colorado.edu>
3573
3577
3574 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3578 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3575 automatic show() calls. After discussing things with JDH, it
3579 automatic show() calls. After discussing things with JDH, it
3576 turns out there are too many corner cases where this can go wrong.
3580 turns out there are too many corner cases where this can go wrong.
3577 It's best not to try to be 'too smart', and simply have ipython
3581 It's best not to try to be 'too smart', and simply have ipython
3578 reproduce as much as possible the default behavior of a normal
3582 reproduce as much as possible the default behavior of a normal
3579 python shell.
3583 python shell.
3580
3584
3581 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3585 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3582 line-splitting regexp and _prefilter() to avoid calling getattr()
3586 line-splitting regexp and _prefilter() to avoid calling getattr()
3583 on assignments. This closes
3587 on assignments. This closes
3584 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3588 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3585 readline uses getattr(), so a simple <TAB> keypress is still
3589 readline uses getattr(), so a simple <TAB> keypress is still
3586 enough to trigger getattr() calls on an object.
3590 enough to trigger getattr() calls on an object.
3587
3591
3588 2005-01-21 Fernando Perez <fperez@colorado.edu>
3592 2005-01-21 Fernando Perez <fperez@colorado.edu>
3589
3593
3590 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3594 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3591 docstring under pylab so it doesn't mask the original.
3595 docstring under pylab so it doesn't mask the original.
3592
3596
3593 2005-01-21 *** Released version 0.6.7
3597 2005-01-21 *** Released version 0.6.7
3594
3598
3595 2005-01-21 Fernando Perez <fperez@colorado.edu>
3599 2005-01-21 Fernando Perez <fperez@colorado.edu>
3596
3600
3597 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3601 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3598 signal handling for win32 users in multithreaded mode.
3602 signal handling for win32 users in multithreaded mode.
3599
3603
3600 2005-01-17 Fernando Perez <fperez@colorado.edu>
3604 2005-01-17 Fernando Perez <fperez@colorado.edu>
3601
3605
3602 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3606 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3603 instances with no __init__. After a crash report by Norbert Nemec
3607 instances with no __init__. After a crash report by Norbert Nemec
3604 <Norbert-AT-nemec-online.de>.
3608 <Norbert-AT-nemec-online.de>.
3605
3609
3606 2005-01-14 Fernando Perez <fperez@colorado.edu>
3610 2005-01-14 Fernando Perez <fperez@colorado.edu>
3607
3611
3608 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3612 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3609 names for verbose exceptions, when multiple dotted names and the
3613 names for verbose exceptions, when multiple dotted names and the
3610 'parent' object were present on the same line.
3614 'parent' object were present on the same line.
3611
3615
3612 2005-01-11 Fernando Perez <fperez@colorado.edu>
3616 2005-01-11 Fernando Perez <fperez@colorado.edu>
3613
3617
3614 * IPython/genutils.py (flag_calls): new utility to trap and flag
3618 * IPython/genutils.py (flag_calls): new utility to trap and flag
3615 calls in functions. I need it to clean up matplotlib support.
3619 calls in functions. I need it to clean up matplotlib support.
3616 Also removed some deprecated code in genutils.
3620 Also removed some deprecated code in genutils.
3617
3621
3618 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3622 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3619 that matplotlib scripts called with %run, which don't call show()
3623 that matplotlib scripts called with %run, which don't call show()
3620 themselves, still have their plotting windows open.
3624 themselves, still have their plotting windows open.
3621
3625
3622 2005-01-05 Fernando Perez <fperez@colorado.edu>
3626 2005-01-05 Fernando Perez <fperez@colorado.edu>
3623
3627
3624 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3628 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3625 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3629 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3626
3630
3627 2004-12-19 Fernando Perez <fperez@colorado.edu>
3631 2004-12-19 Fernando Perez <fperez@colorado.edu>
3628
3632
3629 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3633 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3630 parent_runcode, which was an eyesore. The same result can be
3634 parent_runcode, which was an eyesore. The same result can be
3631 obtained with Python's regular superclass mechanisms.
3635 obtained with Python's regular superclass mechanisms.
3632
3636
3633 2004-12-17 Fernando Perez <fperez@colorado.edu>
3637 2004-12-17 Fernando Perez <fperez@colorado.edu>
3634
3638
3635 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3639 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3636 reported by Prabhu.
3640 reported by Prabhu.
3637 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3641 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3638 sys.stderr) instead of explicitly calling sys.stderr. This helps
3642 sys.stderr) instead of explicitly calling sys.stderr. This helps
3639 maintain our I/O abstractions clean, for future GUI embeddings.
3643 maintain our I/O abstractions clean, for future GUI embeddings.
3640
3644
3641 * IPython/genutils.py (info): added new utility for sys.stderr
3645 * IPython/genutils.py (info): added new utility for sys.stderr
3642 unified info message handling (thin wrapper around warn()).
3646 unified info message handling (thin wrapper around warn()).
3643
3647
3644 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3648 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3645 composite (dotted) names on verbose exceptions.
3649 composite (dotted) names on verbose exceptions.
3646 (VerboseTB.nullrepr): harden against another kind of errors which
3650 (VerboseTB.nullrepr): harden against another kind of errors which
3647 Python's inspect module can trigger, and which were crashing
3651 Python's inspect module can trigger, and which were crashing
3648 IPython. Thanks to a report by Marco Lombardi
3652 IPython. Thanks to a report by Marco Lombardi
3649 <mlombard-AT-ma010192.hq.eso.org>.
3653 <mlombard-AT-ma010192.hq.eso.org>.
3650
3654
3651 2004-12-13 *** Released version 0.6.6
3655 2004-12-13 *** Released version 0.6.6
3652
3656
3653 2004-12-12 Fernando Perez <fperez@colorado.edu>
3657 2004-12-12 Fernando Perez <fperez@colorado.edu>
3654
3658
3655 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3659 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3656 generated by pygtk upon initialization if it was built without
3660 generated by pygtk upon initialization if it was built without
3657 threads (for matplotlib users). After a crash reported by
3661 threads (for matplotlib users). After a crash reported by
3658 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3662 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3659
3663
3660 * IPython/ipmaker.py (make_IPython): fix small bug in the
3664 * IPython/ipmaker.py (make_IPython): fix small bug in the
3661 import_some parameter for multiple imports.
3665 import_some parameter for multiple imports.
3662
3666
3663 * IPython/iplib.py (ipmagic): simplified the interface of
3667 * IPython/iplib.py (ipmagic): simplified the interface of
3664 ipmagic() to take a single string argument, just as it would be
3668 ipmagic() to take a single string argument, just as it would be
3665 typed at the IPython cmd line.
3669 typed at the IPython cmd line.
3666 (ipalias): Added new ipalias() with an interface identical to
3670 (ipalias): Added new ipalias() with an interface identical to
3667 ipmagic(). This completes exposing a pure python interface to the
3671 ipmagic(). This completes exposing a pure python interface to the
3668 alias and magic system, which can be used in loops or more complex
3672 alias and magic system, which can be used in loops or more complex
3669 code where IPython's automatic line mangling is not active.
3673 code where IPython's automatic line mangling is not active.
3670
3674
3671 * IPython/genutils.py (timing): changed interface of timing to
3675 * IPython/genutils.py (timing): changed interface of timing to
3672 simply run code once, which is the most common case. timings()
3676 simply run code once, which is the most common case. timings()
3673 remains unchanged, for the cases where you want multiple runs.
3677 remains unchanged, for the cases where you want multiple runs.
3674
3678
3675 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3679 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3676 bug where Python2.2 crashes with exec'ing code which does not end
3680 bug where Python2.2 crashes with exec'ing code which does not end
3677 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3681 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3678 before.
3682 before.
3679
3683
3680 2004-12-10 Fernando Perez <fperez@colorado.edu>
3684 2004-12-10 Fernando Perez <fperez@colorado.edu>
3681
3685
3682 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3686 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3683 -t to -T, to accomodate the new -t flag in %run (the %run and
3687 -t to -T, to accomodate the new -t flag in %run (the %run and
3684 %prun options are kind of intermixed, and it's not easy to change
3688 %prun options are kind of intermixed, and it's not easy to change
3685 this with the limitations of python's getopt).
3689 this with the limitations of python's getopt).
3686
3690
3687 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3691 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3688 the execution of scripts. It's not as fine-tuned as timeit.py,
3692 the execution of scripts. It's not as fine-tuned as timeit.py,
3689 but it works from inside ipython (and under 2.2, which lacks
3693 but it works from inside ipython (and under 2.2, which lacks
3690 timeit.py). Optionally a number of runs > 1 can be given for
3694 timeit.py). Optionally a number of runs > 1 can be given for
3691 timing very short-running code.
3695 timing very short-running code.
3692
3696
3693 * IPython/genutils.py (uniq_stable): new routine which returns a
3697 * IPython/genutils.py (uniq_stable): new routine which returns a
3694 list of unique elements in any iterable, but in stable order of
3698 list of unique elements in any iterable, but in stable order of
3695 appearance. I needed this for the ultraTB fixes, and it's a handy
3699 appearance. I needed this for the ultraTB fixes, and it's a handy
3696 utility.
3700 utility.
3697
3701
3698 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3702 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3699 dotted names in Verbose exceptions. This had been broken since
3703 dotted names in Verbose exceptions. This had been broken since
3700 the very start, now x.y will properly be printed in a Verbose
3704 the very start, now x.y will properly be printed in a Verbose
3701 traceback, instead of x being shown and y appearing always as an
3705 traceback, instead of x being shown and y appearing always as an
3702 'undefined global'. Getting this to work was a bit tricky,
3706 'undefined global'. Getting this to work was a bit tricky,
3703 because by default python tokenizers are stateless. Saved by
3707 because by default python tokenizers are stateless. Saved by
3704 python's ability to easily add a bit of state to an arbitrary
3708 python's ability to easily add a bit of state to an arbitrary
3705 function (without needing to build a full-blown callable object).
3709 function (without needing to build a full-blown callable object).
3706
3710
3707 Also big cleanup of this code, which had horrendous runtime
3711 Also big cleanup of this code, which had horrendous runtime
3708 lookups of zillions of attributes for colorization. Moved all
3712 lookups of zillions of attributes for colorization. Moved all
3709 this code into a few templates, which make it cleaner and quicker.
3713 this code into a few templates, which make it cleaner and quicker.
3710
3714
3711 Printout quality was also improved for Verbose exceptions: one
3715 Printout quality was also improved for Verbose exceptions: one
3712 variable per line, and memory addresses are printed (this can be
3716 variable per line, and memory addresses are printed (this can be
3713 quite handy in nasty debugging situations, which is what Verbose
3717 quite handy in nasty debugging situations, which is what Verbose
3714 is for).
3718 is for).
3715
3719
3716 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3720 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3717 the command line as scripts to be loaded by embedded instances.
3721 the command line as scripts to be loaded by embedded instances.
3718 Doing so has the potential for an infinite recursion if there are
3722 Doing so has the potential for an infinite recursion if there are
3719 exceptions thrown in the process. This fixes a strange crash
3723 exceptions thrown in the process. This fixes a strange crash
3720 reported by Philippe MULLER <muller-AT-irit.fr>.
3724 reported by Philippe MULLER <muller-AT-irit.fr>.
3721
3725
3722 2004-12-09 Fernando Perez <fperez@colorado.edu>
3726 2004-12-09 Fernando Perez <fperez@colorado.edu>
3723
3727
3724 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3728 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3725 to reflect new names in matplotlib, which now expose the
3729 to reflect new names in matplotlib, which now expose the
3726 matlab-compatible interface via a pylab module instead of the
3730 matlab-compatible interface via a pylab module instead of the
3727 'matlab' name. The new code is backwards compatible, so users of
3731 'matlab' name. The new code is backwards compatible, so users of
3728 all matplotlib versions are OK. Patch by J. Hunter.
3732 all matplotlib versions are OK. Patch by J. Hunter.
3729
3733
3730 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3734 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3731 of __init__ docstrings for instances (class docstrings are already
3735 of __init__ docstrings for instances (class docstrings are already
3732 automatically printed). Instances with customized docstrings
3736 automatically printed). Instances with customized docstrings
3733 (indep. of the class) are also recognized and all 3 separate
3737 (indep. of the class) are also recognized and all 3 separate
3734 docstrings are printed (instance, class, constructor). After some
3738 docstrings are printed (instance, class, constructor). After some
3735 comments/suggestions by J. Hunter.
3739 comments/suggestions by J. Hunter.
3736
3740
3737 2004-12-05 Fernando Perez <fperez@colorado.edu>
3741 2004-12-05 Fernando Perez <fperez@colorado.edu>
3738
3742
3739 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3743 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3740 warnings when tab-completion fails and triggers an exception.
3744 warnings when tab-completion fails and triggers an exception.
3741
3745
3742 2004-12-03 Fernando Perez <fperez@colorado.edu>
3746 2004-12-03 Fernando Perez <fperez@colorado.edu>
3743
3747
3744 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3748 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3745 be triggered when using 'run -p'. An incorrect option flag was
3749 be triggered when using 'run -p'. An incorrect option flag was
3746 being set ('d' instead of 'D').
3750 being set ('d' instead of 'D').
3747 (manpage): fix missing escaped \- sign.
3751 (manpage): fix missing escaped \- sign.
3748
3752
3749 2004-11-30 *** Released version 0.6.5
3753 2004-11-30 *** Released version 0.6.5
3750
3754
3751 2004-11-30 Fernando Perez <fperez@colorado.edu>
3755 2004-11-30 Fernando Perez <fperez@colorado.edu>
3752
3756
3753 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3757 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3754 setting with -d option.
3758 setting with -d option.
3755
3759
3756 * setup.py (docfiles): Fix problem where the doc glob I was using
3760 * setup.py (docfiles): Fix problem where the doc glob I was using
3757 was COMPLETELY BROKEN. It was giving the right files by pure
3761 was COMPLETELY BROKEN. It was giving the right files by pure
3758 accident, but failed once I tried to include ipython.el. Note:
3762 accident, but failed once I tried to include ipython.el. Note:
3759 glob() does NOT allow you to do exclusion on multiple endings!
3763 glob() does NOT allow you to do exclusion on multiple endings!
3760
3764
3761 2004-11-29 Fernando Perez <fperez@colorado.edu>
3765 2004-11-29 Fernando Perez <fperez@colorado.edu>
3762
3766
3763 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3767 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3764 the manpage as the source. Better formatting & consistency.
3768 the manpage as the source. Better formatting & consistency.
3765
3769
3766 * IPython/Magic.py (magic_run): Added new -d option, to run
3770 * IPython/Magic.py (magic_run): Added new -d option, to run
3767 scripts under the control of the python pdb debugger. Note that
3771 scripts under the control of the python pdb debugger. Note that
3768 this required changing the %prun option -d to -D, to avoid a clash
3772 this required changing the %prun option -d to -D, to avoid a clash
3769 (since %run must pass options to %prun, and getopt is too dumb to
3773 (since %run must pass options to %prun, and getopt is too dumb to
3770 handle options with string values with embedded spaces). Thanks
3774 handle options with string values with embedded spaces). Thanks
3771 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3775 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3772 (magic_who_ls): added type matching to %who and %whos, so that one
3776 (magic_who_ls): added type matching to %who and %whos, so that one
3773 can filter their output to only include variables of certain
3777 can filter their output to only include variables of certain
3774 types. Another suggestion by Matthew.
3778 types. Another suggestion by Matthew.
3775 (magic_whos): Added memory summaries in kb and Mb for arrays.
3779 (magic_whos): Added memory summaries in kb and Mb for arrays.
3776 (magic_who): Improve formatting (break lines every 9 vars).
3780 (magic_who): Improve formatting (break lines every 9 vars).
3777
3781
3778 2004-11-28 Fernando Perez <fperez@colorado.edu>
3782 2004-11-28 Fernando Perez <fperez@colorado.edu>
3779
3783
3780 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3784 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3781 cache when empty lines were present.
3785 cache when empty lines were present.
3782
3786
3783 2004-11-24 Fernando Perez <fperez@colorado.edu>
3787 2004-11-24 Fernando Perez <fperez@colorado.edu>
3784
3788
3785 * IPython/usage.py (__doc__): document the re-activated threading
3789 * IPython/usage.py (__doc__): document the re-activated threading
3786 options for WX and GTK.
3790 options for WX and GTK.
3787
3791
3788 2004-11-23 Fernando Perez <fperez@colorado.edu>
3792 2004-11-23 Fernando Perez <fperez@colorado.edu>
3789
3793
3790 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3794 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3791 the -wthread and -gthread options, along with a new -tk one to try
3795 the -wthread and -gthread options, along with a new -tk one to try
3792 and coordinate Tk threading with wx/gtk. The tk support is very
3796 and coordinate Tk threading with wx/gtk. The tk support is very
3793 platform dependent, since it seems to require Tcl and Tk to be
3797 platform dependent, since it seems to require Tcl and Tk to be
3794 built with threads (Fedora1/2 appears NOT to have it, but in
3798 built with threads (Fedora1/2 appears NOT to have it, but in
3795 Prabhu's Debian boxes it works OK). But even with some Tk
3799 Prabhu's Debian boxes it works OK). But even with some Tk
3796 limitations, this is a great improvement.
3800 limitations, this is a great improvement.
3797
3801
3798 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3802 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3799 info in user prompts. Patch by Prabhu.
3803 info in user prompts. Patch by Prabhu.
3800
3804
3801 2004-11-18 Fernando Perez <fperez@colorado.edu>
3805 2004-11-18 Fernando Perez <fperez@colorado.edu>
3802
3806
3803 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3807 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3804 EOFErrors and bail, to avoid infinite loops if a non-terminating
3808 EOFErrors and bail, to avoid infinite loops if a non-terminating
3805 file is fed into ipython. Patch submitted in issue 19 by user,
3809 file is fed into ipython. Patch submitted in issue 19 by user,
3806 many thanks.
3810 many thanks.
3807
3811
3808 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3812 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3809 autoquote/parens in continuation prompts, which can cause lots of
3813 autoquote/parens in continuation prompts, which can cause lots of
3810 problems. Closes roundup issue 20.
3814 problems. Closes roundup issue 20.
3811
3815
3812 2004-11-17 Fernando Perez <fperez@colorado.edu>
3816 2004-11-17 Fernando Perez <fperez@colorado.edu>
3813
3817
3814 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3818 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3815 reported as debian bug #280505. I'm not sure my local changelog
3819 reported as debian bug #280505. I'm not sure my local changelog
3816 entry has the proper debian format (Jack?).
3820 entry has the proper debian format (Jack?).
3817
3821
3818 2004-11-08 *** Released version 0.6.4
3822 2004-11-08 *** Released version 0.6.4
3819
3823
3820 2004-11-08 Fernando Perez <fperez@colorado.edu>
3824 2004-11-08 Fernando Perez <fperez@colorado.edu>
3821
3825
3822 * IPython/iplib.py (init_readline): Fix exit message for Windows
3826 * IPython/iplib.py (init_readline): Fix exit message for Windows
3823 when readline is active. Thanks to a report by Eric Jones
3827 when readline is active. Thanks to a report by Eric Jones
3824 <eric-AT-enthought.com>.
3828 <eric-AT-enthought.com>.
3825
3829
3826 2004-11-07 Fernando Perez <fperez@colorado.edu>
3830 2004-11-07 Fernando Perez <fperez@colorado.edu>
3827
3831
3828 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3832 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3829 sometimes seen by win2k/cygwin users.
3833 sometimes seen by win2k/cygwin users.
3830
3834
3831 2004-11-06 Fernando Perez <fperez@colorado.edu>
3835 2004-11-06 Fernando Perez <fperez@colorado.edu>
3832
3836
3833 * IPython/iplib.py (interact): Change the handling of %Exit from
3837 * IPython/iplib.py (interact): Change the handling of %Exit from
3834 trying to propagate a SystemExit to an internal ipython flag.
3838 trying to propagate a SystemExit to an internal ipython flag.
3835 This is less elegant than using Python's exception mechanism, but
3839 This is less elegant than using Python's exception mechanism, but
3836 I can't get that to work reliably with threads, so under -pylab
3840 I can't get that to work reliably with threads, so under -pylab
3837 %Exit was hanging IPython. Cross-thread exception handling is
3841 %Exit was hanging IPython. Cross-thread exception handling is
3838 really a bitch. Thaks to a bug report by Stephen Walton
3842 really a bitch. Thaks to a bug report by Stephen Walton
3839 <stephen.walton-AT-csun.edu>.
3843 <stephen.walton-AT-csun.edu>.
3840
3844
3841 2004-11-04 Fernando Perez <fperez@colorado.edu>
3845 2004-11-04 Fernando Perez <fperez@colorado.edu>
3842
3846
3843 * IPython/iplib.py (raw_input_original): store a pointer to the
3847 * IPython/iplib.py (raw_input_original): store a pointer to the
3844 true raw_input to harden against code which can modify it
3848 true raw_input to harden against code which can modify it
3845 (wx.py.PyShell does this and would otherwise crash ipython).
3849 (wx.py.PyShell does this and would otherwise crash ipython).
3846 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3850 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3847
3851
3848 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3852 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3849 Ctrl-C problem, which does not mess up the input line.
3853 Ctrl-C problem, which does not mess up the input line.
3850
3854
3851 2004-11-03 Fernando Perez <fperez@colorado.edu>
3855 2004-11-03 Fernando Perez <fperez@colorado.edu>
3852
3856
3853 * IPython/Release.py: Changed licensing to BSD, in all files.
3857 * IPython/Release.py: Changed licensing to BSD, in all files.
3854 (name): lowercase name for tarball/RPM release.
3858 (name): lowercase name for tarball/RPM release.
3855
3859
3856 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3860 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3857 use throughout ipython.
3861 use throughout ipython.
3858
3862
3859 * IPython/Magic.py (Magic._ofind): Switch to using the new
3863 * IPython/Magic.py (Magic._ofind): Switch to using the new
3860 OInspect.getdoc() function.
3864 OInspect.getdoc() function.
3861
3865
3862 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3866 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3863 of the line currently being canceled via Ctrl-C. It's extremely
3867 of the line currently being canceled via Ctrl-C. It's extremely
3864 ugly, but I don't know how to do it better (the problem is one of
3868 ugly, but I don't know how to do it better (the problem is one of
3865 handling cross-thread exceptions).
3869 handling cross-thread exceptions).
3866
3870
3867 2004-10-28 Fernando Perez <fperez@colorado.edu>
3871 2004-10-28 Fernando Perez <fperez@colorado.edu>
3868
3872
3869 * IPython/Shell.py (signal_handler): add signal handlers to trap
3873 * IPython/Shell.py (signal_handler): add signal handlers to trap
3870 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3874 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3871 report by Francesc Alted.
3875 report by Francesc Alted.
3872
3876
3873 2004-10-21 Fernando Perez <fperez@colorado.edu>
3877 2004-10-21 Fernando Perez <fperez@colorado.edu>
3874
3878
3875 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3879 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3876 to % for pysh syntax extensions.
3880 to % for pysh syntax extensions.
3877
3881
3878 2004-10-09 Fernando Perez <fperez@colorado.edu>
3882 2004-10-09 Fernando Perez <fperez@colorado.edu>
3879
3883
3880 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3884 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3881 arrays to print a more useful summary, without calling str(arr).
3885 arrays to print a more useful summary, without calling str(arr).
3882 This avoids the problem of extremely lengthy computations which
3886 This avoids the problem of extremely lengthy computations which
3883 occur if arr is large, and appear to the user as a system lockup
3887 occur if arr is large, and appear to the user as a system lockup
3884 with 100% cpu activity. After a suggestion by Kristian Sandberg
3888 with 100% cpu activity. After a suggestion by Kristian Sandberg
3885 <Kristian.Sandberg@colorado.edu>.
3889 <Kristian.Sandberg@colorado.edu>.
3886 (Magic.__init__): fix bug in global magic escapes not being
3890 (Magic.__init__): fix bug in global magic escapes not being
3887 correctly set.
3891 correctly set.
3888
3892
3889 2004-10-08 Fernando Perez <fperez@colorado.edu>
3893 2004-10-08 Fernando Perez <fperez@colorado.edu>
3890
3894
3891 * IPython/Magic.py (__license__): change to absolute imports of
3895 * IPython/Magic.py (__license__): change to absolute imports of
3892 ipython's own internal packages, to start adapting to the absolute
3896 ipython's own internal packages, to start adapting to the absolute
3893 import requirement of PEP-328.
3897 import requirement of PEP-328.
3894
3898
3895 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3899 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3896 files, and standardize author/license marks through the Release
3900 files, and standardize author/license marks through the Release
3897 module instead of having per/file stuff (except for files with
3901 module instead of having per/file stuff (except for files with
3898 particular licenses, like the MIT/PSF-licensed codes).
3902 particular licenses, like the MIT/PSF-licensed codes).
3899
3903
3900 * IPython/Debugger.py: remove dead code for python 2.1
3904 * IPython/Debugger.py: remove dead code for python 2.1
3901
3905
3902 2004-10-04 Fernando Perez <fperez@colorado.edu>
3906 2004-10-04 Fernando Perez <fperez@colorado.edu>
3903
3907
3904 * IPython/iplib.py (ipmagic): New function for accessing magics
3908 * IPython/iplib.py (ipmagic): New function for accessing magics
3905 via a normal python function call.
3909 via a normal python function call.
3906
3910
3907 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3911 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3908 from '@' to '%', to accomodate the new @decorator syntax of python
3912 from '@' to '%', to accomodate the new @decorator syntax of python
3909 2.4.
3913 2.4.
3910
3914
3911 2004-09-29 Fernando Perez <fperez@colorado.edu>
3915 2004-09-29 Fernando Perez <fperez@colorado.edu>
3912
3916
3913 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3917 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3914 matplotlib.use to prevent running scripts which try to switch
3918 matplotlib.use to prevent running scripts which try to switch
3915 interactive backends from within ipython. This will just crash
3919 interactive backends from within ipython. This will just crash
3916 the python interpreter, so we can't allow it (but a detailed error
3920 the python interpreter, so we can't allow it (but a detailed error
3917 is given to the user).
3921 is given to the user).
3918
3922
3919 2004-09-28 Fernando Perez <fperez@colorado.edu>
3923 2004-09-28 Fernando Perez <fperez@colorado.edu>
3920
3924
3921 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3925 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3922 matplotlib-related fixes so that using @run with non-matplotlib
3926 matplotlib-related fixes so that using @run with non-matplotlib
3923 scripts doesn't pop up spurious plot windows. This requires
3927 scripts doesn't pop up spurious plot windows. This requires
3924 matplotlib >= 0.63, where I had to make some changes as well.
3928 matplotlib >= 0.63, where I had to make some changes as well.
3925
3929
3926 * IPython/ipmaker.py (make_IPython): update version requirement to
3930 * IPython/ipmaker.py (make_IPython): update version requirement to
3927 python 2.2.
3931 python 2.2.
3928
3932
3929 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3933 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3930 banner arg for embedded customization.
3934 banner arg for embedded customization.
3931
3935
3932 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3936 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3933 explicit uses of __IP as the IPython's instance name. Now things
3937 explicit uses of __IP as the IPython's instance name. Now things
3934 are properly handled via the shell.name value. The actual code
3938 are properly handled via the shell.name value. The actual code
3935 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3939 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3936 is much better than before. I'll clean things completely when the
3940 is much better than before. I'll clean things completely when the
3937 magic stuff gets a real overhaul.
3941 magic stuff gets a real overhaul.
3938
3942
3939 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3943 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3940 minor changes to debian dir.
3944 minor changes to debian dir.
3941
3945
3942 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3946 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3943 pointer to the shell itself in the interactive namespace even when
3947 pointer to the shell itself in the interactive namespace even when
3944 a user-supplied dict is provided. This is needed for embedding
3948 a user-supplied dict is provided. This is needed for embedding
3945 purposes (found by tests with Michel Sanner).
3949 purposes (found by tests with Michel Sanner).
3946
3950
3947 2004-09-27 Fernando Perez <fperez@colorado.edu>
3951 2004-09-27 Fernando Perez <fperez@colorado.edu>
3948
3952
3949 * IPython/UserConfig/ipythonrc: remove []{} from
3953 * IPython/UserConfig/ipythonrc: remove []{} from
3950 readline_remove_delims, so that things like [modname.<TAB> do
3954 readline_remove_delims, so that things like [modname.<TAB> do
3951 proper completion. This disables [].TAB, but that's a less common
3955 proper completion. This disables [].TAB, but that's a less common
3952 case than module names in list comprehensions, for example.
3956 case than module names in list comprehensions, for example.
3953 Thanks to a report by Andrea Riciputi.
3957 Thanks to a report by Andrea Riciputi.
3954
3958
3955 2004-09-09 Fernando Perez <fperez@colorado.edu>
3959 2004-09-09 Fernando Perez <fperez@colorado.edu>
3956
3960
3957 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3961 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3958 blocking problems in win32 and osx. Fix by John.
3962 blocking problems in win32 and osx. Fix by John.
3959
3963
3960 2004-09-08 Fernando Perez <fperez@colorado.edu>
3964 2004-09-08 Fernando Perez <fperez@colorado.edu>
3961
3965
3962 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3966 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3963 for Win32 and OSX. Fix by John Hunter.
3967 for Win32 and OSX. Fix by John Hunter.
3964
3968
3965 2004-08-30 *** Released version 0.6.3
3969 2004-08-30 *** Released version 0.6.3
3966
3970
3967 2004-08-30 Fernando Perez <fperez@colorado.edu>
3971 2004-08-30 Fernando Perez <fperez@colorado.edu>
3968
3972
3969 * setup.py (isfile): Add manpages to list of dependent files to be
3973 * setup.py (isfile): Add manpages to list of dependent files to be
3970 updated.
3974 updated.
3971
3975
3972 2004-08-27 Fernando Perez <fperez@colorado.edu>
3976 2004-08-27 Fernando Perez <fperez@colorado.edu>
3973
3977
3974 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3978 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3975 for now. They don't really work with standalone WX/GTK code
3979 for now. They don't really work with standalone WX/GTK code
3976 (though matplotlib IS working fine with both of those backends).
3980 (though matplotlib IS working fine with both of those backends).
3977 This will neeed much more testing. I disabled most things with
3981 This will neeed much more testing. I disabled most things with
3978 comments, so turning it back on later should be pretty easy.
3982 comments, so turning it back on later should be pretty easy.
3979
3983
3980 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3984 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3981 autocalling of expressions like r'foo', by modifying the line
3985 autocalling of expressions like r'foo', by modifying the line
3982 split regexp. Closes
3986 split regexp. Closes
3983 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3987 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3984 Riley <ipythonbugs-AT-sabi.net>.
3988 Riley <ipythonbugs-AT-sabi.net>.
3985 (InteractiveShell.mainloop): honor --nobanner with banner
3989 (InteractiveShell.mainloop): honor --nobanner with banner
3986 extensions.
3990 extensions.
3987
3991
3988 * IPython/Shell.py: Significant refactoring of all classes, so
3992 * IPython/Shell.py: Significant refactoring of all classes, so
3989 that we can really support ALL matplotlib backends and threading
3993 that we can really support ALL matplotlib backends and threading
3990 models (John spotted a bug with Tk which required this). Now we
3994 models (John spotted a bug with Tk which required this). Now we
3991 should support single-threaded, WX-threads and GTK-threads, both
3995 should support single-threaded, WX-threads and GTK-threads, both
3992 for generic code and for matplotlib.
3996 for generic code and for matplotlib.
3993
3997
3994 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3998 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3995 -pylab, to simplify things for users. Will also remove the pylab
3999 -pylab, to simplify things for users. Will also remove the pylab
3996 profile, since now all of matplotlib configuration is directly
4000 profile, since now all of matplotlib configuration is directly
3997 handled here. This also reduces startup time.
4001 handled here. This also reduces startup time.
3998
4002
3999 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4003 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4000 shell wasn't being correctly called. Also in IPShellWX.
4004 shell wasn't being correctly called. Also in IPShellWX.
4001
4005
4002 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4006 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4003 fine-tune banner.
4007 fine-tune banner.
4004
4008
4005 * IPython/numutils.py (spike): Deprecate these spike functions,
4009 * IPython/numutils.py (spike): Deprecate these spike functions,
4006 delete (long deprecated) gnuplot_exec handler.
4010 delete (long deprecated) gnuplot_exec handler.
4007
4011
4008 2004-08-26 Fernando Perez <fperez@colorado.edu>
4012 2004-08-26 Fernando Perez <fperez@colorado.edu>
4009
4013
4010 * ipython.1: Update for threading options, plus some others which
4014 * ipython.1: Update for threading options, plus some others which
4011 were missing.
4015 were missing.
4012
4016
4013 * IPython/ipmaker.py (__call__): Added -wthread option for
4017 * IPython/ipmaker.py (__call__): Added -wthread option for
4014 wxpython thread handling. Make sure threading options are only
4018 wxpython thread handling. Make sure threading options are only
4015 valid at the command line.
4019 valid at the command line.
4016
4020
4017 * scripts/ipython: moved shell selection into a factory function
4021 * scripts/ipython: moved shell selection into a factory function
4018 in Shell.py, to keep the starter script to a minimum.
4022 in Shell.py, to keep the starter script to a minimum.
4019
4023
4020 2004-08-25 Fernando Perez <fperez@colorado.edu>
4024 2004-08-25 Fernando Perez <fperez@colorado.edu>
4021
4025
4022 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4026 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4023 John. Along with some recent changes he made to matplotlib, the
4027 John. Along with some recent changes he made to matplotlib, the
4024 next versions of both systems should work very well together.
4028 next versions of both systems should work very well together.
4025
4029
4026 2004-08-24 Fernando Perez <fperez@colorado.edu>
4030 2004-08-24 Fernando Perez <fperez@colorado.edu>
4027
4031
4028 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4032 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4029 tried to switch the profiling to using hotshot, but I'm getting
4033 tried to switch the profiling to using hotshot, but I'm getting
4030 strange errors from prof.runctx() there. I may be misreading the
4034 strange errors from prof.runctx() there. I may be misreading the
4031 docs, but it looks weird. For now the profiling code will
4035 docs, but it looks weird. For now the profiling code will
4032 continue to use the standard profiler.
4036 continue to use the standard profiler.
4033
4037
4034 2004-08-23 Fernando Perez <fperez@colorado.edu>
4038 2004-08-23 Fernando Perez <fperez@colorado.edu>
4035
4039
4036 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4040 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4037 threaded shell, by John Hunter. It's not quite ready yet, but
4041 threaded shell, by John Hunter. It's not quite ready yet, but
4038 close.
4042 close.
4039
4043
4040 2004-08-22 Fernando Perez <fperez@colorado.edu>
4044 2004-08-22 Fernando Perez <fperez@colorado.edu>
4041
4045
4042 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4046 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4043 in Magic and ultraTB.
4047 in Magic and ultraTB.
4044
4048
4045 * ipython.1: document threading options in manpage.
4049 * ipython.1: document threading options in manpage.
4046
4050
4047 * scripts/ipython: Changed name of -thread option to -gthread,
4051 * scripts/ipython: Changed name of -thread option to -gthread,
4048 since this is GTK specific. I want to leave the door open for a
4052 since this is GTK specific. I want to leave the door open for a
4049 -wthread option for WX, which will most likely be necessary. This
4053 -wthread option for WX, which will most likely be necessary. This
4050 change affects usage and ipmaker as well.
4054 change affects usage and ipmaker as well.
4051
4055
4052 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4056 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4053 handle the matplotlib shell issues. Code by John Hunter
4057 handle the matplotlib shell issues. Code by John Hunter
4054 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4058 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4055 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4059 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4056 broken (and disabled for end users) for now, but it puts the
4060 broken (and disabled for end users) for now, but it puts the
4057 infrastructure in place.
4061 infrastructure in place.
4058
4062
4059 2004-08-21 Fernando Perez <fperez@colorado.edu>
4063 2004-08-21 Fernando Perez <fperez@colorado.edu>
4060
4064
4061 * ipythonrc-pylab: Add matplotlib support.
4065 * ipythonrc-pylab: Add matplotlib support.
4062
4066
4063 * matplotlib_config.py: new files for matplotlib support, part of
4067 * matplotlib_config.py: new files for matplotlib support, part of
4064 the pylab profile.
4068 the pylab profile.
4065
4069
4066 * IPython/usage.py (__doc__): documented the threading options.
4070 * IPython/usage.py (__doc__): documented the threading options.
4067
4071
4068 2004-08-20 Fernando Perez <fperez@colorado.edu>
4072 2004-08-20 Fernando Perez <fperez@colorado.edu>
4069
4073
4070 * ipython: Modified the main calling routine to handle the -thread
4074 * ipython: Modified the main calling routine to handle the -thread
4071 and -mpthread options. This needs to be done as a top-level hack,
4075 and -mpthread options. This needs to be done as a top-level hack,
4072 because it determines which class to instantiate for IPython
4076 because it determines which class to instantiate for IPython
4073 itself.
4077 itself.
4074
4078
4075 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4079 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4076 classes to support multithreaded GTK operation without blocking,
4080 classes to support multithreaded GTK operation without blocking,
4077 and matplotlib with all backends. This is a lot of still very
4081 and matplotlib with all backends. This is a lot of still very
4078 experimental code, and threads are tricky. So it may still have a
4082 experimental code, and threads are tricky. So it may still have a
4079 few rough edges... This code owes a lot to
4083 few rough edges... This code owes a lot to
4080 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4084 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4081 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4085 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4082 to John Hunter for all the matplotlib work.
4086 to John Hunter for all the matplotlib work.
4083
4087
4084 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4088 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4085 options for gtk thread and matplotlib support.
4089 options for gtk thread and matplotlib support.
4086
4090
4087 2004-08-16 Fernando Perez <fperez@colorado.edu>
4091 2004-08-16 Fernando Perez <fperez@colorado.edu>
4088
4092
4089 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4093 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4090 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4094 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4091 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4095 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4092
4096
4093 2004-08-11 Fernando Perez <fperez@colorado.edu>
4097 2004-08-11 Fernando Perez <fperez@colorado.edu>
4094
4098
4095 * setup.py (isfile): Fix build so documentation gets updated for
4099 * setup.py (isfile): Fix build so documentation gets updated for
4096 rpms (it was only done for .tgz builds).
4100 rpms (it was only done for .tgz builds).
4097
4101
4098 2004-08-10 Fernando Perez <fperez@colorado.edu>
4102 2004-08-10 Fernando Perez <fperez@colorado.edu>
4099
4103
4100 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4104 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4101
4105
4102 * iplib.py : Silence syntax error exceptions in tab-completion.
4106 * iplib.py : Silence syntax error exceptions in tab-completion.
4103
4107
4104 2004-08-05 Fernando Perez <fperez@colorado.edu>
4108 2004-08-05 Fernando Perez <fperez@colorado.edu>
4105
4109
4106 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4110 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4107 'color off' mark for continuation prompts. This was causing long
4111 'color off' mark for continuation prompts. This was causing long
4108 continuation lines to mis-wrap.
4112 continuation lines to mis-wrap.
4109
4113
4110 2004-08-01 Fernando Perez <fperez@colorado.edu>
4114 2004-08-01 Fernando Perez <fperez@colorado.edu>
4111
4115
4112 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4116 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4113 for building ipython to be a parameter. All this is necessary
4117 for building ipython to be a parameter. All this is necessary
4114 right now to have a multithreaded version, but this insane
4118 right now to have a multithreaded version, but this insane
4115 non-design will be cleaned up soon. For now, it's a hack that
4119 non-design will be cleaned up soon. For now, it's a hack that
4116 works.
4120 works.
4117
4121
4118 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4122 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4119 args in various places. No bugs so far, but it's a dangerous
4123 args in various places. No bugs so far, but it's a dangerous
4120 practice.
4124 practice.
4121
4125
4122 2004-07-31 Fernando Perez <fperez@colorado.edu>
4126 2004-07-31 Fernando Perez <fperez@colorado.edu>
4123
4127
4124 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4128 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4125 fix completion of files with dots in their names under most
4129 fix completion of files with dots in their names under most
4126 profiles (pysh was OK because the completion order is different).
4130 profiles (pysh was OK because the completion order is different).
4127
4131
4128 2004-07-27 Fernando Perez <fperez@colorado.edu>
4132 2004-07-27 Fernando Perez <fperez@colorado.edu>
4129
4133
4130 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4134 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4131 keywords manually, b/c the one in keyword.py was removed in python
4135 keywords manually, b/c the one in keyword.py was removed in python
4132 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4136 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4133 This is NOT a bug under python 2.3 and earlier.
4137 This is NOT a bug under python 2.3 and earlier.
4134
4138
4135 2004-07-26 Fernando Perez <fperez@colorado.edu>
4139 2004-07-26 Fernando Perez <fperez@colorado.edu>
4136
4140
4137 * IPython/ultraTB.py (VerboseTB.text): Add another
4141 * IPython/ultraTB.py (VerboseTB.text): Add another
4138 linecache.checkcache() call to try to prevent inspect.py from
4142 linecache.checkcache() call to try to prevent inspect.py from
4139 crashing under python 2.3. I think this fixes
4143 crashing under python 2.3. I think this fixes
4140 http://www.scipy.net/roundup/ipython/issue17.
4144 http://www.scipy.net/roundup/ipython/issue17.
4141
4145
4142 2004-07-26 *** Released version 0.6.2
4146 2004-07-26 *** Released version 0.6.2
4143
4147
4144 2004-07-26 Fernando Perez <fperez@colorado.edu>
4148 2004-07-26 Fernando Perez <fperez@colorado.edu>
4145
4149
4146 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4150 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4147 fail for any number.
4151 fail for any number.
4148 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4152 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4149 empty bookmarks.
4153 empty bookmarks.
4150
4154
4151 2004-07-26 *** Released version 0.6.1
4155 2004-07-26 *** Released version 0.6.1
4152
4156
4153 2004-07-26 Fernando Perez <fperez@colorado.edu>
4157 2004-07-26 Fernando Perez <fperez@colorado.edu>
4154
4158
4155 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4159 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4156
4160
4157 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4161 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4158 escaping '()[]{}' in filenames.
4162 escaping '()[]{}' in filenames.
4159
4163
4160 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4164 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4161 Python 2.2 users who lack a proper shlex.split.
4165 Python 2.2 users who lack a proper shlex.split.
4162
4166
4163 2004-07-19 Fernando Perez <fperez@colorado.edu>
4167 2004-07-19 Fernando Perez <fperez@colorado.edu>
4164
4168
4165 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4169 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4166 for reading readline's init file. I follow the normal chain:
4170 for reading readline's init file. I follow the normal chain:
4167 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4171 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4168 report by Mike Heeter. This closes
4172 report by Mike Heeter. This closes
4169 http://www.scipy.net/roundup/ipython/issue16.
4173 http://www.scipy.net/roundup/ipython/issue16.
4170
4174
4171 2004-07-18 Fernando Perez <fperez@colorado.edu>
4175 2004-07-18 Fernando Perez <fperez@colorado.edu>
4172
4176
4173 * IPython/iplib.py (__init__): Add better handling of '\' under
4177 * IPython/iplib.py (__init__): Add better handling of '\' under
4174 Win32 for filenames. After a patch by Ville.
4178 Win32 for filenames. After a patch by Ville.
4175
4179
4176 2004-07-17 Fernando Perez <fperez@colorado.edu>
4180 2004-07-17 Fernando Perez <fperez@colorado.edu>
4177
4181
4178 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4182 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4179 autocalling would be triggered for 'foo is bar' if foo is
4183 autocalling would be triggered for 'foo is bar' if foo is
4180 callable. I also cleaned up the autocall detection code to use a
4184 callable. I also cleaned up the autocall detection code to use a
4181 regexp, which is faster. Bug reported by Alexander Schmolck.
4185 regexp, which is faster. Bug reported by Alexander Schmolck.
4182
4186
4183 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4187 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4184 '?' in them would confuse the help system. Reported by Alex
4188 '?' in them would confuse the help system. Reported by Alex
4185 Schmolck.
4189 Schmolck.
4186
4190
4187 2004-07-16 Fernando Perez <fperez@colorado.edu>
4191 2004-07-16 Fernando Perez <fperez@colorado.edu>
4188
4192
4189 * IPython/GnuplotInteractive.py (__all__): added plot2.
4193 * IPython/GnuplotInteractive.py (__all__): added plot2.
4190
4194
4191 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4195 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4192 plotting dictionaries, lists or tuples of 1d arrays.
4196 plotting dictionaries, lists or tuples of 1d arrays.
4193
4197
4194 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4198 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4195 optimizations.
4199 optimizations.
4196
4200
4197 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4201 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4198 the information which was there from Janko's original IPP code:
4202 the information which was there from Janko's original IPP code:
4199
4203
4200 03.05.99 20:53 porto.ifm.uni-kiel.de
4204 03.05.99 20:53 porto.ifm.uni-kiel.de
4201 --Started changelog.
4205 --Started changelog.
4202 --make clear do what it say it does
4206 --make clear do what it say it does
4203 --added pretty output of lines from inputcache
4207 --added pretty output of lines from inputcache
4204 --Made Logger a mixin class, simplifies handling of switches
4208 --Made Logger a mixin class, simplifies handling of switches
4205 --Added own completer class. .string<TAB> expands to last history
4209 --Added own completer class. .string<TAB> expands to last history
4206 line which starts with string. The new expansion is also present
4210 line which starts with string. The new expansion is also present
4207 with Ctrl-r from the readline library. But this shows, who this
4211 with Ctrl-r from the readline library. But this shows, who this
4208 can be done for other cases.
4212 can be done for other cases.
4209 --Added convention that all shell functions should accept a
4213 --Added convention that all shell functions should accept a
4210 parameter_string This opens the door for different behaviour for
4214 parameter_string This opens the door for different behaviour for
4211 each function. @cd is a good example of this.
4215 each function. @cd is a good example of this.
4212
4216
4213 04.05.99 12:12 porto.ifm.uni-kiel.de
4217 04.05.99 12:12 porto.ifm.uni-kiel.de
4214 --added logfile rotation
4218 --added logfile rotation
4215 --added new mainloop method which freezes first the namespace
4219 --added new mainloop method which freezes first the namespace
4216
4220
4217 07.05.99 21:24 porto.ifm.uni-kiel.de
4221 07.05.99 21:24 porto.ifm.uni-kiel.de
4218 --added the docreader classes. Now there is a help system.
4222 --added the docreader classes. Now there is a help system.
4219 -This is only a first try. Currently it's not easy to put new
4223 -This is only a first try. Currently it's not easy to put new
4220 stuff in the indices. But this is the way to go. Info would be
4224 stuff in the indices. But this is the way to go. Info would be
4221 better, but HTML is every where and not everybody has an info
4225 better, but HTML is every where and not everybody has an info
4222 system installed and it's not so easy to change html-docs to info.
4226 system installed and it's not so easy to change html-docs to info.
4223 --added global logfile option
4227 --added global logfile option
4224 --there is now a hook for object inspection method pinfo needs to
4228 --there is now a hook for object inspection method pinfo needs to
4225 be provided for this. Can be reached by two '??'.
4229 be provided for this. Can be reached by two '??'.
4226
4230
4227 08.05.99 20:51 porto.ifm.uni-kiel.de
4231 08.05.99 20:51 porto.ifm.uni-kiel.de
4228 --added a README
4232 --added a README
4229 --bug in rc file. Something has changed so functions in the rc
4233 --bug in rc file. Something has changed so functions in the rc
4230 file need to reference the shell and not self. Not clear if it's a
4234 file need to reference the shell and not self. Not clear if it's a
4231 bug or feature.
4235 bug or feature.
4232 --changed rc file for new behavior
4236 --changed rc file for new behavior
4233
4237
4234 2004-07-15 Fernando Perez <fperez@colorado.edu>
4238 2004-07-15 Fernando Perez <fperez@colorado.edu>
4235
4239
4236 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4240 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4237 cache was falling out of sync in bizarre manners when multi-line
4241 cache was falling out of sync in bizarre manners when multi-line
4238 input was present. Minor optimizations and cleanup.
4242 input was present. Minor optimizations and cleanup.
4239
4243
4240 (Logger): Remove old Changelog info for cleanup. This is the
4244 (Logger): Remove old Changelog info for cleanup. This is the
4241 information which was there from Janko's original code:
4245 information which was there from Janko's original code:
4242
4246
4243 Changes to Logger: - made the default log filename a parameter
4247 Changes to Logger: - made the default log filename a parameter
4244
4248
4245 - put a check for lines beginning with !@? in log(). Needed
4249 - put a check for lines beginning with !@? in log(). Needed
4246 (even if the handlers properly log their lines) for mid-session
4250 (even if the handlers properly log their lines) for mid-session
4247 logging activation to work properly. Without this, lines logged
4251 logging activation to work properly. Without this, lines logged
4248 in mid session, which get read from the cache, would end up
4252 in mid session, which get read from the cache, would end up
4249 'bare' (with !@? in the open) in the log. Now they are caught
4253 'bare' (with !@? in the open) in the log. Now they are caught
4250 and prepended with a #.
4254 and prepended with a #.
4251
4255
4252 * IPython/iplib.py (InteractiveShell.init_readline): added check
4256 * IPython/iplib.py (InteractiveShell.init_readline): added check
4253 in case MagicCompleter fails to be defined, so we don't crash.
4257 in case MagicCompleter fails to be defined, so we don't crash.
4254
4258
4255 2004-07-13 Fernando Perez <fperez@colorado.edu>
4259 2004-07-13 Fernando Perez <fperez@colorado.edu>
4256
4260
4257 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4261 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4258 of EPS if the requested filename ends in '.eps'.
4262 of EPS if the requested filename ends in '.eps'.
4259
4263
4260 2004-07-04 Fernando Perez <fperez@colorado.edu>
4264 2004-07-04 Fernando Perez <fperez@colorado.edu>
4261
4265
4262 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4266 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4263 escaping of quotes when calling the shell.
4267 escaping of quotes when calling the shell.
4264
4268
4265 2004-07-02 Fernando Perez <fperez@colorado.edu>
4269 2004-07-02 Fernando Perez <fperez@colorado.edu>
4266
4270
4267 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4271 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4268 gettext not working because we were clobbering '_'. Fixes
4272 gettext not working because we were clobbering '_'. Fixes
4269 http://www.scipy.net/roundup/ipython/issue6.
4273 http://www.scipy.net/roundup/ipython/issue6.
4270
4274
4271 2004-07-01 Fernando Perez <fperez@colorado.edu>
4275 2004-07-01 Fernando Perez <fperez@colorado.edu>
4272
4276
4273 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4277 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4274 into @cd. Patch by Ville.
4278 into @cd. Patch by Ville.
4275
4279
4276 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4280 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4277 new function to store things after ipmaker runs. Patch by Ville.
4281 new function to store things after ipmaker runs. Patch by Ville.
4278 Eventually this will go away once ipmaker is removed and the class
4282 Eventually this will go away once ipmaker is removed and the class
4279 gets cleaned up, but for now it's ok. Key functionality here is
4283 gets cleaned up, but for now it's ok. Key functionality here is
4280 the addition of the persistent storage mechanism, a dict for
4284 the addition of the persistent storage mechanism, a dict for
4281 keeping data across sessions (for now just bookmarks, but more can
4285 keeping data across sessions (for now just bookmarks, but more can
4282 be implemented later).
4286 be implemented later).
4283
4287
4284 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4288 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4285 persistent across sections. Patch by Ville, I modified it
4289 persistent across sections. Patch by Ville, I modified it
4286 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4290 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4287 added a '-l' option to list all bookmarks.
4291 added a '-l' option to list all bookmarks.
4288
4292
4289 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4293 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4290 center for cleanup. Registered with atexit.register(). I moved
4294 center for cleanup. Registered with atexit.register(). I moved
4291 here the old exit_cleanup(). After a patch by Ville.
4295 here the old exit_cleanup(). After a patch by Ville.
4292
4296
4293 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4297 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4294 characters in the hacked shlex_split for python 2.2.
4298 characters in the hacked shlex_split for python 2.2.
4295
4299
4296 * IPython/iplib.py (file_matches): more fixes to filenames with
4300 * IPython/iplib.py (file_matches): more fixes to filenames with
4297 whitespace in them. It's not perfect, but limitations in python's
4301 whitespace in them. It's not perfect, but limitations in python's
4298 readline make it impossible to go further.
4302 readline make it impossible to go further.
4299
4303
4300 2004-06-29 Fernando Perez <fperez@colorado.edu>
4304 2004-06-29 Fernando Perez <fperez@colorado.edu>
4301
4305
4302 * IPython/iplib.py (file_matches): escape whitespace correctly in
4306 * IPython/iplib.py (file_matches): escape whitespace correctly in
4303 filename completions. Bug reported by Ville.
4307 filename completions. Bug reported by Ville.
4304
4308
4305 2004-06-28 Fernando Perez <fperez@colorado.edu>
4309 2004-06-28 Fernando Perez <fperez@colorado.edu>
4306
4310
4307 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4311 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4308 the history file will be called 'history-PROFNAME' (or just
4312 the history file will be called 'history-PROFNAME' (or just
4309 'history' if no profile is loaded). I was getting annoyed at
4313 'history' if no profile is loaded). I was getting annoyed at
4310 getting my Numerical work history clobbered by pysh sessions.
4314 getting my Numerical work history clobbered by pysh sessions.
4311
4315
4312 * IPython/iplib.py (InteractiveShell.__init__): Internal
4316 * IPython/iplib.py (InteractiveShell.__init__): Internal
4313 getoutputerror() function so that we can honor the system_verbose
4317 getoutputerror() function so that we can honor the system_verbose
4314 flag for _all_ system calls. I also added escaping of #
4318 flag for _all_ system calls. I also added escaping of #
4315 characters here to avoid confusing Itpl.
4319 characters here to avoid confusing Itpl.
4316
4320
4317 * IPython/Magic.py (shlex_split): removed call to shell in
4321 * IPython/Magic.py (shlex_split): removed call to shell in
4318 parse_options and replaced it with shlex.split(). The annoying
4322 parse_options and replaced it with shlex.split(). The annoying
4319 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4323 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4320 to backport it from 2.3, with several frail hacks (the shlex
4324 to backport it from 2.3, with several frail hacks (the shlex
4321 module is rather limited in 2.2). Thanks to a suggestion by Ville
4325 module is rather limited in 2.2). Thanks to a suggestion by Ville
4322 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4326 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4323 problem.
4327 problem.
4324
4328
4325 (Magic.magic_system_verbose): new toggle to print the actual
4329 (Magic.magic_system_verbose): new toggle to print the actual
4326 system calls made by ipython. Mainly for debugging purposes.
4330 system calls made by ipython. Mainly for debugging purposes.
4327
4331
4328 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4332 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4329 doesn't support persistence. Reported (and fix suggested) by
4333 doesn't support persistence. Reported (and fix suggested) by
4330 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4334 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4331
4335
4332 2004-06-26 Fernando Perez <fperez@colorado.edu>
4336 2004-06-26 Fernando Perez <fperez@colorado.edu>
4333
4337
4334 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4338 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4335 continue prompts.
4339 continue prompts.
4336
4340
4337 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4341 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4338 function (basically a big docstring) and a few more things here to
4342 function (basically a big docstring) and a few more things here to
4339 speedup startup. pysh.py is now very lightweight. We want because
4343 speedup startup. pysh.py is now very lightweight. We want because
4340 it gets execfile'd, while InterpreterExec gets imported, so
4344 it gets execfile'd, while InterpreterExec gets imported, so
4341 byte-compilation saves time.
4345 byte-compilation saves time.
4342
4346
4343 2004-06-25 Fernando Perez <fperez@colorado.edu>
4347 2004-06-25 Fernando Perez <fperez@colorado.edu>
4344
4348
4345 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4349 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4346 -NUM', which was recently broken.
4350 -NUM', which was recently broken.
4347
4351
4348 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4352 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4349 in multi-line input (but not !!, which doesn't make sense there).
4353 in multi-line input (but not !!, which doesn't make sense there).
4350
4354
4351 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4355 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4352 It's just too useful, and people can turn it off in the less
4356 It's just too useful, and people can turn it off in the less
4353 common cases where it's a problem.
4357 common cases where it's a problem.
4354
4358
4355 2004-06-24 Fernando Perez <fperez@colorado.edu>
4359 2004-06-24 Fernando Perez <fperez@colorado.edu>
4356
4360
4357 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4361 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4358 special syntaxes (like alias calling) is now allied in multi-line
4362 special syntaxes (like alias calling) is now allied in multi-line
4359 input. This is still _very_ experimental, but it's necessary for
4363 input. This is still _very_ experimental, but it's necessary for
4360 efficient shell usage combining python looping syntax with system
4364 efficient shell usage combining python looping syntax with system
4361 calls. For now it's restricted to aliases, I don't think it
4365 calls. For now it's restricted to aliases, I don't think it
4362 really even makes sense to have this for magics.
4366 really even makes sense to have this for magics.
4363
4367
4364 2004-06-23 Fernando Perez <fperez@colorado.edu>
4368 2004-06-23 Fernando Perez <fperez@colorado.edu>
4365
4369
4366 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4370 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4367 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4371 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4368
4372
4369 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4373 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4370 extensions under Windows (after code sent by Gary Bishop). The
4374 extensions under Windows (after code sent by Gary Bishop). The
4371 extensions considered 'executable' are stored in IPython's rc
4375 extensions considered 'executable' are stored in IPython's rc
4372 structure as win_exec_ext.
4376 structure as win_exec_ext.
4373
4377
4374 * IPython/genutils.py (shell): new function, like system() but
4378 * IPython/genutils.py (shell): new function, like system() but
4375 without return value. Very useful for interactive shell work.
4379 without return value. Very useful for interactive shell work.
4376
4380
4377 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4381 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4378 delete aliases.
4382 delete aliases.
4379
4383
4380 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4384 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4381 sure that the alias table doesn't contain python keywords.
4385 sure that the alias table doesn't contain python keywords.
4382
4386
4383 2004-06-21 Fernando Perez <fperez@colorado.edu>
4387 2004-06-21 Fernando Perez <fperez@colorado.edu>
4384
4388
4385 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4389 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4386 non-existent items are found in $PATH. Reported by Thorsten.
4390 non-existent items are found in $PATH. Reported by Thorsten.
4387
4391
4388 2004-06-20 Fernando Perez <fperez@colorado.edu>
4392 2004-06-20 Fernando Perez <fperez@colorado.edu>
4389
4393
4390 * IPython/iplib.py (complete): modified the completer so that the
4394 * IPython/iplib.py (complete): modified the completer so that the
4391 order of priorities can be easily changed at runtime.
4395 order of priorities can be easily changed at runtime.
4392
4396
4393 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4397 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4394 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4398 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4395
4399
4396 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4400 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4397 expand Python variables prepended with $ in all system calls. The
4401 expand Python variables prepended with $ in all system calls. The
4398 same was done to InteractiveShell.handle_shell_escape. Now all
4402 same was done to InteractiveShell.handle_shell_escape. Now all
4399 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4403 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4400 expansion of python variables and expressions according to the
4404 expansion of python variables and expressions according to the
4401 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4405 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4402
4406
4403 Though PEP-215 has been rejected, a similar (but simpler) one
4407 Though PEP-215 has been rejected, a similar (but simpler) one
4404 seems like it will go into Python 2.4, PEP-292 -
4408 seems like it will go into Python 2.4, PEP-292 -
4405 http://www.python.org/peps/pep-0292.html.
4409 http://www.python.org/peps/pep-0292.html.
4406
4410
4407 I'll keep the full syntax of PEP-215, since IPython has since the
4411 I'll keep the full syntax of PEP-215, since IPython has since the
4408 start used Ka-Ping Yee's reference implementation discussed there
4412 start used Ka-Ping Yee's reference implementation discussed there
4409 (Itpl), and I actually like the powerful semantics it offers.
4413 (Itpl), and I actually like the powerful semantics it offers.
4410
4414
4411 In order to access normal shell variables, the $ has to be escaped
4415 In order to access normal shell variables, the $ has to be escaped
4412 via an extra $. For example:
4416 via an extra $. For example:
4413
4417
4414 In [7]: PATH='a python variable'
4418 In [7]: PATH='a python variable'
4415
4419
4416 In [8]: !echo $PATH
4420 In [8]: !echo $PATH
4417 a python variable
4421 a python variable
4418
4422
4419 In [9]: !echo $$PATH
4423 In [9]: !echo $$PATH
4420 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4424 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4421
4425
4422 (Magic.parse_options): escape $ so the shell doesn't evaluate
4426 (Magic.parse_options): escape $ so the shell doesn't evaluate
4423 things prematurely.
4427 things prematurely.
4424
4428
4425 * IPython/iplib.py (InteractiveShell.call_alias): added the
4429 * IPython/iplib.py (InteractiveShell.call_alias): added the
4426 ability for aliases to expand python variables via $.
4430 ability for aliases to expand python variables via $.
4427
4431
4428 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4432 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4429 system, now there's a @rehash/@rehashx pair of magics. These work
4433 system, now there's a @rehash/@rehashx pair of magics. These work
4430 like the csh rehash command, and can be invoked at any time. They
4434 like the csh rehash command, and can be invoked at any time. They
4431 build a table of aliases to everything in the user's $PATH
4435 build a table of aliases to everything in the user's $PATH
4432 (@rehash uses everything, @rehashx is slower but only adds
4436 (@rehash uses everything, @rehashx is slower but only adds
4433 executable files). With this, the pysh.py-based shell profile can
4437 executable files). With this, the pysh.py-based shell profile can
4434 now simply call rehash upon startup, and full access to all
4438 now simply call rehash upon startup, and full access to all
4435 programs in the user's path is obtained.
4439 programs in the user's path is obtained.
4436
4440
4437 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4441 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4438 functionality is now fully in place. I removed the old dynamic
4442 functionality is now fully in place. I removed the old dynamic
4439 code generation based approach, in favor of a much lighter one
4443 code generation based approach, in favor of a much lighter one
4440 based on a simple dict. The advantage is that this allows me to
4444 based on a simple dict. The advantage is that this allows me to
4441 now have thousands of aliases with negligible cost (unthinkable
4445 now have thousands of aliases with negligible cost (unthinkable
4442 with the old system).
4446 with the old system).
4443
4447
4444 2004-06-19 Fernando Perez <fperez@colorado.edu>
4448 2004-06-19 Fernando Perez <fperez@colorado.edu>
4445
4449
4446 * IPython/iplib.py (__init__): extended MagicCompleter class to
4450 * IPython/iplib.py (__init__): extended MagicCompleter class to
4447 also complete (last in priority) on user aliases.
4451 also complete (last in priority) on user aliases.
4448
4452
4449 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4453 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4450 call to eval.
4454 call to eval.
4451 (ItplNS.__init__): Added a new class which functions like Itpl,
4455 (ItplNS.__init__): Added a new class which functions like Itpl,
4452 but allows configuring the namespace for the evaluation to occur
4456 but allows configuring the namespace for the evaluation to occur
4453 in.
4457 in.
4454
4458
4455 2004-06-18 Fernando Perez <fperez@colorado.edu>
4459 2004-06-18 Fernando Perez <fperez@colorado.edu>
4456
4460
4457 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4461 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4458 better message when 'exit' or 'quit' are typed (a common newbie
4462 better message when 'exit' or 'quit' are typed (a common newbie
4459 confusion).
4463 confusion).
4460
4464
4461 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4465 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4462 check for Windows users.
4466 check for Windows users.
4463
4467
4464 * IPython/iplib.py (InteractiveShell.user_setup): removed
4468 * IPython/iplib.py (InteractiveShell.user_setup): removed
4465 disabling of colors for Windows. I'll test at runtime and issue a
4469 disabling of colors for Windows. I'll test at runtime and issue a
4466 warning if Gary's readline isn't found, as to nudge users to
4470 warning if Gary's readline isn't found, as to nudge users to
4467 download it.
4471 download it.
4468
4472
4469 2004-06-16 Fernando Perez <fperez@colorado.edu>
4473 2004-06-16 Fernando Perez <fperez@colorado.edu>
4470
4474
4471 * IPython/genutils.py (Stream.__init__): changed to print errors
4475 * IPython/genutils.py (Stream.__init__): changed to print errors
4472 to sys.stderr. I had a circular dependency here. Now it's
4476 to sys.stderr. I had a circular dependency here. Now it's
4473 possible to run ipython as IDLE's shell (consider this pre-alpha,
4477 possible to run ipython as IDLE's shell (consider this pre-alpha,
4474 since true stdout things end up in the starting terminal instead
4478 since true stdout things end up in the starting terminal instead
4475 of IDLE's out).
4479 of IDLE's out).
4476
4480
4477 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4481 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4478 users who haven't # updated their prompt_in2 definitions. Remove
4482 users who haven't # updated their prompt_in2 definitions. Remove
4479 eventually.
4483 eventually.
4480 (multiple_replace): added credit to original ASPN recipe.
4484 (multiple_replace): added credit to original ASPN recipe.
4481
4485
4482 2004-06-15 Fernando Perez <fperez@colorado.edu>
4486 2004-06-15 Fernando Perez <fperez@colorado.edu>
4483
4487
4484 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4488 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4485 list of auto-defined aliases.
4489 list of auto-defined aliases.
4486
4490
4487 2004-06-13 Fernando Perez <fperez@colorado.edu>
4491 2004-06-13 Fernando Perez <fperez@colorado.edu>
4488
4492
4489 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4493 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4490 install was really requested (so setup.py can be used for other
4494 install was really requested (so setup.py can be used for other
4491 things under Windows).
4495 things under Windows).
4492
4496
4493 2004-06-10 Fernando Perez <fperez@colorado.edu>
4497 2004-06-10 Fernando Perez <fperez@colorado.edu>
4494
4498
4495 * IPython/Logger.py (Logger.create_log): Manually remove any old
4499 * IPython/Logger.py (Logger.create_log): Manually remove any old
4496 backup, since os.remove may fail under Windows. Fixes bug
4500 backup, since os.remove may fail under Windows. Fixes bug
4497 reported by Thorsten.
4501 reported by Thorsten.
4498
4502
4499 2004-06-09 Fernando Perez <fperez@colorado.edu>
4503 2004-06-09 Fernando Perez <fperez@colorado.edu>
4500
4504
4501 * examples/example-embed.py: fixed all references to %n (replaced
4505 * examples/example-embed.py: fixed all references to %n (replaced
4502 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4506 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4503 for all examples and the manual as well.
4507 for all examples and the manual as well.
4504
4508
4505 2004-06-08 Fernando Perez <fperez@colorado.edu>
4509 2004-06-08 Fernando Perez <fperez@colorado.edu>
4506
4510
4507 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4511 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4508 alignment and color management. All 3 prompt subsystems now
4512 alignment and color management. All 3 prompt subsystems now
4509 inherit from BasePrompt.
4513 inherit from BasePrompt.
4510
4514
4511 * tools/release: updates for windows installer build and tag rpms
4515 * tools/release: updates for windows installer build and tag rpms
4512 with python version (since paths are fixed).
4516 with python version (since paths are fixed).
4513
4517
4514 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4518 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4515 which will become eventually obsolete. Also fixed the default
4519 which will become eventually obsolete. Also fixed the default
4516 prompt_in2 to use \D, so at least new users start with the correct
4520 prompt_in2 to use \D, so at least new users start with the correct
4517 defaults.
4521 defaults.
4518 WARNING: Users with existing ipythonrc files will need to apply
4522 WARNING: Users with existing ipythonrc files will need to apply
4519 this fix manually!
4523 this fix manually!
4520
4524
4521 * setup.py: make windows installer (.exe). This is finally the
4525 * setup.py: make windows installer (.exe). This is finally the
4522 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4526 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4523 which I hadn't included because it required Python 2.3 (or recent
4527 which I hadn't included because it required Python 2.3 (or recent
4524 distutils).
4528 distutils).
4525
4529
4526 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4530 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4527 usage of new '\D' escape.
4531 usage of new '\D' escape.
4528
4532
4529 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4533 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4530 lacks os.getuid())
4534 lacks os.getuid())
4531 (CachedOutput.set_colors): Added the ability to turn coloring
4535 (CachedOutput.set_colors): Added the ability to turn coloring
4532 on/off with @colors even for manually defined prompt colors. It
4536 on/off with @colors even for manually defined prompt colors. It
4533 uses a nasty global, but it works safely and via the generic color
4537 uses a nasty global, but it works safely and via the generic color
4534 handling mechanism.
4538 handling mechanism.
4535 (Prompt2.__init__): Introduced new escape '\D' for continuation
4539 (Prompt2.__init__): Introduced new escape '\D' for continuation
4536 prompts. It represents the counter ('\#') as dots.
4540 prompts. It represents the counter ('\#') as dots.
4537 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4541 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4538 need to update their ipythonrc files and replace '%n' with '\D' in
4542 need to update their ipythonrc files and replace '%n' with '\D' in
4539 their prompt_in2 settings everywhere. Sorry, but there's
4543 their prompt_in2 settings everywhere. Sorry, but there's
4540 otherwise no clean way to get all prompts to properly align. The
4544 otherwise no clean way to get all prompts to properly align. The
4541 ipythonrc shipped with IPython has been updated.
4545 ipythonrc shipped with IPython has been updated.
4542
4546
4543 2004-06-07 Fernando Perez <fperez@colorado.edu>
4547 2004-06-07 Fernando Perez <fperez@colorado.edu>
4544
4548
4545 * setup.py (isfile): Pass local_icons option to latex2html, so the
4549 * setup.py (isfile): Pass local_icons option to latex2html, so the
4546 resulting HTML file is self-contained. Thanks to
4550 resulting HTML file is self-contained. Thanks to
4547 dryice-AT-liu.com.cn for the tip.
4551 dryice-AT-liu.com.cn for the tip.
4548
4552
4549 * pysh.py: I created a new profile 'shell', which implements a
4553 * pysh.py: I created a new profile 'shell', which implements a
4550 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4554 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4551 system shell, nor will it become one anytime soon. It's mainly
4555 system shell, nor will it become one anytime soon. It's mainly
4552 meant to illustrate the use of the new flexible bash-like prompts.
4556 meant to illustrate the use of the new flexible bash-like prompts.
4553 I guess it could be used by hardy souls for true shell management,
4557 I guess it could be used by hardy souls for true shell management,
4554 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4558 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4555 profile. This uses the InterpreterExec extension provided by
4559 profile. This uses the InterpreterExec extension provided by
4556 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4560 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4557
4561
4558 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4562 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4559 auto-align itself with the length of the previous input prompt
4563 auto-align itself with the length of the previous input prompt
4560 (taking into account the invisible color escapes).
4564 (taking into account the invisible color escapes).
4561 (CachedOutput.__init__): Large restructuring of this class. Now
4565 (CachedOutput.__init__): Large restructuring of this class. Now
4562 all three prompts (primary1, primary2, output) are proper objects,
4566 all three prompts (primary1, primary2, output) are proper objects,
4563 managed by the 'parent' CachedOutput class. The code is still a
4567 managed by the 'parent' CachedOutput class. The code is still a
4564 bit hackish (all prompts share state via a pointer to the cache),
4568 bit hackish (all prompts share state via a pointer to the cache),
4565 but it's overall far cleaner than before.
4569 but it's overall far cleaner than before.
4566
4570
4567 * IPython/genutils.py (getoutputerror): modified to add verbose,
4571 * IPython/genutils.py (getoutputerror): modified to add verbose,
4568 debug and header options. This makes the interface of all getout*
4572 debug and header options. This makes the interface of all getout*
4569 functions uniform.
4573 functions uniform.
4570 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4574 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4571
4575
4572 * IPython/Magic.py (Magic.default_option): added a function to
4576 * IPython/Magic.py (Magic.default_option): added a function to
4573 allow registering default options for any magic command. This
4577 allow registering default options for any magic command. This
4574 makes it easy to have profiles which customize the magics globally
4578 makes it easy to have profiles which customize the magics globally
4575 for a certain use. The values set through this function are
4579 for a certain use. The values set through this function are
4576 picked up by the parse_options() method, which all magics should
4580 picked up by the parse_options() method, which all magics should
4577 use to parse their options.
4581 use to parse their options.
4578
4582
4579 * IPython/genutils.py (warn): modified the warnings framework to
4583 * IPython/genutils.py (warn): modified the warnings framework to
4580 use the Term I/O class. I'm trying to slowly unify all of
4584 use the Term I/O class. I'm trying to slowly unify all of
4581 IPython's I/O operations to pass through Term.
4585 IPython's I/O operations to pass through Term.
4582
4586
4583 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4587 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4584 the secondary prompt to correctly match the length of the primary
4588 the secondary prompt to correctly match the length of the primary
4585 one for any prompt. Now multi-line code will properly line up
4589 one for any prompt. Now multi-line code will properly line up
4586 even for path dependent prompts, such as the new ones available
4590 even for path dependent prompts, such as the new ones available
4587 via the prompt_specials.
4591 via the prompt_specials.
4588
4592
4589 2004-06-06 Fernando Perez <fperez@colorado.edu>
4593 2004-06-06 Fernando Perez <fperez@colorado.edu>
4590
4594
4591 * IPython/Prompts.py (prompt_specials): Added the ability to have
4595 * IPython/Prompts.py (prompt_specials): Added the ability to have
4592 bash-like special sequences in the prompts, which get
4596 bash-like special sequences in the prompts, which get
4593 automatically expanded. Things like hostname, current working
4597 automatically expanded. Things like hostname, current working
4594 directory and username are implemented already, but it's easy to
4598 directory and username are implemented already, but it's easy to
4595 add more in the future. Thanks to a patch by W.J. van der Laan
4599 add more in the future. Thanks to a patch by W.J. van der Laan
4596 <gnufnork-AT-hetdigitalegat.nl>
4600 <gnufnork-AT-hetdigitalegat.nl>
4597 (prompt_specials): Added color support for prompt strings, so
4601 (prompt_specials): Added color support for prompt strings, so
4598 users can define arbitrary color setups for their prompts.
4602 users can define arbitrary color setups for their prompts.
4599
4603
4600 2004-06-05 Fernando Perez <fperez@colorado.edu>
4604 2004-06-05 Fernando Perez <fperez@colorado.edu>
4601
4605
4602 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4606 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4603 code to load Gary Bishop's readline and configure it
4607 code to load Gary Bishop's readline and configure it
4604 automatically. Thanks to Gary for help on this.
4608 automatically. Thanks to Gary for help on this.
4605
4609
4606 2004-06-01 Fernando Perez <fperez@colorado.edu>
4610 2004-06-01 Fernando Perez <fperez@colorado.edu>
4607
4611
4608 * IPython/Logger.py (Logger.create_log): fix bug for logging
4612 * IPython/Logger.py (Logger.create_log): fix bug for logging
4609 with no filename (previous fix was incomplete).
4613 with no filename (previous fix was incomplete).
4610
4614
4611 2004-05-25 Fernando Perez <fperez@colorado.edu>
4615 2004-05-25 Fernando Perez <fperez@colorado.edu>
4612
4616
4613 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4617 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4614 parens would get passed to the shell.
4618 parens would get passed to the shell.
4615
4619
4616 2004-05-20 Fernando Perez <fperez@colorado.edu>
4620 2004-05-20 Fernando Perez <fperez@colorado.edu>
4617
4621
4618 * IPython/Magic.py (Magic.magic_prun): changed default profile
4622 * IPython/Magic.py (Magic.magic_prun): changed default profile
4619 sort order to 'time' (the more common profiling need).
4623 sort order to 'time' (the more common profiling need).
4620
4624
4621 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4625 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4622 so that source code shown is guaranteed in sync with the file on
4626 so that source code shown is guaranteed in sync with the file on
4623 disk (also changed in psource). Similar fix to the one for
4627 disk (also changed in psource). Similar fix to the one for
4624 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4628 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4625 <yann.ledu-AT-noos.fr>.
4629 <yann.ledu-AT-noos.fr>.
4626
4630
4627 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4631 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4628 with a single option would not be correctly parsed. Closes
4632 with a single option would not be correctly parsed. Closes
4629 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4633 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4630 introduced in 0.6.0 (on 2004-05-06).
4634 introduced in 0.6.0 (on 2004-05-06).
4631
4635
4632 2004-05-13 *** Released version 0.6.0
4636 2004-05-13 *** Released version 0.6.0
4633
4637
4634 2004-05-13 Fernando Perez <fperez@colorado.edu>
4638 2004-05-13 Fernando Perez <fperez@colorado.edu>
4635
4639
4636 * debian/: Added debian/ directory to CVS, so that debian support
4640 * debian/: Added debian/ directory to CVS, so that debian support
4637 is publicly accessible. The debian package is maintained by Jack
4641 is publicly accessible. The debian package is maintained by Jack
4638 Moffit <jack-AT-xiph.org>.
4642 Moffit <jack-AT-xiph.org>.
4639
4643
4640 * Documentation: included the notes about an ipython-based system
4644 * Documentation: included the notes about an ipython-based system
4641 shell (the hypothetical 'pysh') into the new_design.pdf document,
4645 shell (the hypothetical 'pysh') into the new_design.pdf document,
4642 so that these ideas get distributed to users along with the
4646 so that these ideas get distributed to users along with the
4643 official documentation.
4647 official documentation.
4644
4648
4645 2004-05-10 Fernando Perez <fperez@colorado.edu>
4649 2004-05-10 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * IPython/Logger.py (Logger.create_log): fix recently introduced
4651 * IPython/Logger.py (Logger.create_log): fix recently introduced
4648 bug (misindented line) where logstart would fail when not given an
4652 bug (misindented line) where logstart would fail when not given an
4649 explicit filename.
4653 explicit filename.
4650
4654
4651 2004-05-09 Fernando Perez <fperez@colorado.edu>
4655 2004-05-09 Fernando Perez <fperez@colorado.edu>
4652
4656
4653 * IPython/Magic.py (Magic.parse_options): skip system call when
4657 * IPython/Magic.py (Magic.parse_options): skip system call when
4654 there are no options to look for. Faster, cleaner for the common
4658 there are no options to look for. Faster, cleaner for the common
4655 case.
4659 case.
4656
4660
4657 * Documentation: many updates to the manual: describing Windows
4661 * Documentation: many updates to the manual: describing Windows
4658 support better, Gnuplot updates, credits, misc small stuff. Also
4662 support better, Gnuplot updates, credits, misc small stuff. Also
4659 updated the new_design doc a bit.
4663 updated the new_design doc a bit.
4660
4664
4661 2004-05-06 *** Released version 0.6.0.rc1
4665 2004-05-06 *** Released version 0.6.0.rc1
4662
4666
4663 2004-05-06 Fernando Perez <fperez@colorado.edu>
4667 2004-05-06 Fernando Perez <fperez@colorado.edu>
4664
4668
4665 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4669 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4666 operations to use the vastly more efficient list/''.join() method.
4670 operations to use the vastly more efficient list/''.join() method.
4667 (FormattedTB.text): Fix
4671 (FormattedTB.text): Fix
4668 http://www.scipy.net/roundup/ipython/issue12 - exception source
4672 http://www.scipy.net/roundup/ipython/issue12 - exception source
4669 extract not updated after reload. Thanks to Mike Salib
4673 extract not updated after reload. Thanks to Mike Salib
4670 <msalib-AT-mit.edu> for pinning the source of the problem.
4674 <msalib-AT-mit.edu> for pinning the source of the problem.
4671 Fortunately, the solution works inside ipython and doesn't require
4675 Fortunately, the solution works inside ipython and doesn't require
4672 any changes to python proper.
4676 any changes to python proper.
4673
4677
4674 * IPython/Magic.py (Magic.parse_options): Improved to process the
4678 * IPython/Magic.py (Magic.parse_options): Improved to process the
4675 argument list as a true shell would (by actually using the
4679 argument list as a true shell would (by actually using the
4676 underlying system shell). This way, all @magics automatically get
4680 underlying system shell). This way, all @magics automatically get
4677 shell expansion for variables. Thanks to a comment by Alex
4681 shell expansion for variables. Thanks to a comment by Alex
4678 Schmolck.
4682 Schmolck.
4679
4683
4680 2004-04-04 Fernando Perez <fperez@colorado.edu>
4684 2004-04-04 Fernando Perez <fperez@colorado.edu>
4681
4685
4682 * IPython/iplib.py (InteractiveShell.interact): Added a special
4686 * IPython/iplib.py (InteractiveShell.interact): Added a special
4683 trap for a debugger quit exception, which is basically impossible
4687 trap for a debugger quit exception, which is basically impossible
4684 to handle by normal mechanisms, given what pdb does to the stack.
4688 to handle by normal mechanisms, given what pdb does to the stack.
4685 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4689 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4686
4690
4687 2004-04-03 Fernando Perez <fperez@colorado.edu>
4691 2004-04-03 Fernando Perez <fperez@colorado.edu>
4688
4692
4689 * IPython/genutils.py (Term): Standardized the names of the Term
4693 * IPython/genutils.py (Term): Standardized the names of the Term
4690 class streams to cin/cout/cerr, following C++ naming conventions
4694 class streams to cin/cout/cerr, following C++ naming conventions
4691 (I can't use in/out/err because 'in' is not a valid attribute
4695 (I can't use in/out/err because 'in' is not a valid attribute
4692 name).
4696 name).
4693
4697
4694 * IPython/iplib.py (InteractiveShell.interact): don't increment
4698 * IPython/iplib.py (InteractiveShell.interact): don't increment
4695 the prompt if there's no user input. By Daniel 'Dang' Griffith
4699 the prompt if there's no user input. By Daniel 'Dang' Griffith
4696 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4700 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4697 Francois Pinard.
4701 Francois Pinard.
4698
4702
4699 2004-04-02 Fernando Perez <fperez@colorado.edu>
4703 2004-04-02 Fernando Perez <fperez@colorado.edu>
4700
4704
4701 * IPython/genutils.py (Stream.__init__): Modified to survive at
4705 * IPython/genutils.py (Stream.__init__): Modified to survive at
4702 least importing in contexts where stdin/out/err aren't true file
4706 least importing in contexts where stdin/out/err aren't true file
4703 objects, such as PyCrust (they lack fileno() and mode). However,
4707 objects, such as PyCrust (they lack fileno() and mode). However,
4704 the recovery facilities which rely on these things existing will
4708 the recovery facilities which rely on these things existing will
4705 not work.
4709 not work.
4706
4710
4707 2004-04-01 Fernando Perez <fperez@colorado.edu>
4711 2004-04-01 Fernando Perez <fperez@colorado.edu>
4708
4712
4709 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4713 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4710 use the new getoutputerror() function, so it properly
4714 use the new getoutputerror() function, so it properly
4711 distinguishes stdout/err.
4715 distinguishes stdout/err.
4712
4716
4713 * IPython/genutils.py (getoutputerror): added a function to
4717 * IPython/genutils.py (getoutputerror): added a function to
4714 capture separately the standard output and error of a command.
4718 capture separately the standard output and error of a command.
4715 After a comment from dang on the mailing lists. This code is
4719 After a comment from dang on the mailing lists. This code is
4716 basically a modified version of commands.getstatusoutput(), from
4720 basically a modified version of commands.getstatusoutput(), from
4717 the standard library.
4721 the standard library.
4718
4722
4719 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4723 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4720 '!!' as a special syntax (shorthand) to access @sx.
4724 '!!' as a special syntax (shorthand) to access @sx.
4721
4725
4722 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4726 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4723 command and return its output as a list split on '\n'.
4727 command and return its output as a list split on '\n'.
4724
4728
4725 2004-03-31 Fernando Perez <fperez@colorado.edu>
4729 2004-03-31 Fernando Perez <fperez@colorado.edu>
4726
4730
4727 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4731 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4728 method to dictionaries used as FakeModule instances if they lack
4732 method to dictionaries used as FakeModule instances if they lack
4729 it. At least pydoc in python2.3 breaks for runtime-defined
4733 it. At least pydoc in python2.3 breaks for runtime-defined
4730 functions without this hack. At some point I need to _really_
4734 functions without this hack. At some point I need to _really_
4731 understand what FakeModule is doing, because it's a gross hack.
4735 understand what FakeModule is doing, because it's a gross hack.
4732 But it solves Arnd's problem for now...
4736 But it solves Arnd's problem for now...
4733
4737
4734 2004-02-27 Fernando Perez <fperez@colorado.edu>
4738 2004-02-27 Fernando Perez <fperez@colorado.edu>
4735
4739
4736 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4740 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4737 mode would behave erratically. Also increased the number of
4741 mode would behave erratically. Also increased the number of
4738 possible logs in rotate mod to 999. Thanks to Rod Holland
4742 possible logs in rotate mod to 999. Thanks to Rod Holland
4739 <rhh@StructureLABS.com> for the report and fixes.
4743 <rhh@StructureLABS.com> for the report and fixes.
4740
4744
4741 2004-02-26 Fernando Perez <fperez@colorado.edu>
4745 2004-02-26 Fernando Perez <fperez@colorado.edu>
4742
4746
4743 * IPython/genutils.py (page): Check that the curses module really
4747 * IPython/genutils.py (page): Check that the curses module really
4744 has the initscr attribute before trying to use it. For some
4748 has the initscr attribute before trying to use it. For some
4745 reason, the Solaris curses module is missing this. I think this
4749 reason, the Solaris curses module is missing this. I think this
4746 should be considered a Solaris python bug, but I'm not sure.
4750 should be considered a Solaris python bug, but I'm not sure.
4747
4751
4748 2004-01-17 Fernando Perez <fperez@colorado.edu>
4752 2004-01-17 Fernando Perez <fperez@colorado.edu>
4749
4753
4750 * IPython/genutils.py (Stream.__init__): Changes to try to make
4754 * IPython/genutils.py (Stream.__init__): Changes to try to make
4751 ipython robust against stdin/out/err being closed by the user.
4755 ipython robust against stdin/out/err being closed by the user.
4752 This is 'user error' (and blocks a normal python session, at least
4756 This is 'user error' (and blocks a normal python session, at least
4753 the stdout case). However, Ipython should be able to survive such
4757 the stdout case). However, Ipython should be able to survive such
4754 instances of abuse as gracefully as possible. To simplify the
4758 instances of abuse as gracefully as possible. To simplify the
4755 coding and maintain compatibility with Gary Bishop's Term
4759 coding and maintain compatibility with Gary Bishop's Term
4756 contributions, I've made use of classmethods for this. I think
4760 contributions, I've made use of classmethods for this. I think
4757 this introduces a dependency on python 2.2.
4761 this introduces a dependency on python 2.2.
4758
4762
4759 2004-01-13 Fernando Perez <fperez@colorado.edu>
4763 2004-01-13 Fernando Perez <fperez@colorado.edu>
4760
4764
4761 * IPython/numutils.py (exp_safe): simplified the code a bit and
4765 * IPython/numutils.py (exp_safe): simplified the code a bit and
4762 removed the need for importing the kinds module altogether.
4766 removed the need for importing the kinds module altogether.
4763
4767
4764 2004-01-06 Fernando Perez <fperez@colorado.edu>
4768 2004-01-06 Fernando Perez <fperez@colorado.edu>
4765
4769
4766 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4770 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4767 a magic function instead, after some community feedback. No
4771 a magic function instead, after some community feedback. No
4768 special syntax will exist for it, but its name is deliberately
4772 special syntax will exist for it, but its name is deliberately
4769 very short.
4773 very short.
4770
4774
4771 2003-12-20 Fernando Perez <fperez@colorado.edu>
4775 2003-12-20 Fernando Perez <fperez@colorado.edu>
4772
4776
4773 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4777 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4774 new functionality, to automagically assign the result of a shell
4778 new functionality, to automagically assign the result of a shell
4775 command to a variable. I'll solicit some community feedback on
4779 command to a variable. I'll solicit some community feedback on
4776 this before making it permanent.
4780 this before making it permanent.
4777
4781
4778 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4782 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4779 requested about callables for which inspect couldn't obtain a
4783 requested about callables for which inspect couldn't obtain a
4780 proper argspec. Thanks to a crash report sent by Etienne
4784 proper argspec. Thanks to a crash report sent by Etienne
4781 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4785 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4782
4786
4783 2003-12-09 Fernando Perez <fperez@colorado.edu>
4787 2003-12-09 Fernando Perez <fperez@colorado.edu>
4784
4788
4785 * IPython/genutils.py (page): patch for the pager to work across
4789 * IPython/genutils.py (page): patch for the pager to work across
4786 various versions of Windows. By Gary Bishop.
4790 various versions of Windows. By Gary Bishop.
4787
4791
4788 2003-12-04 Fernando Perez <fperez@colorado.edu>
4792 2003-12-04 Fernando Perez <fperez@colorado.edu>
4789
4793
4790 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4794 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4791 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4795 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4792 While I tested this and it looks ok, there may still be corner
4796 While I tested this and it looks ok, there may still be corner
4793 cases I've missed.
4797 cases I've missed.
4794
4798
4795 2003-12-01 Fernando Perez <fperez@colorado.edu>
4799 2003-12-01 Fernando Perez <fperez@colorado.edu>
4796
4800
4797 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4801 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4798 where a line like 'p,q=1,2' would fail because the automagic
4802 where a line like 'p,q=1,2' would fail because the automagic
4799 system would be triggered for @p.
4803 system would be triggered for @p.
4800
4804
4801 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4805 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4802 cleanups, code unmodified.
4806 cleanups, code unmodified.
4803
4807
4804 * IPython/genutils.py (Term): added a class for IPython to handle
4808 * IPython/genutils.py (Term): added a class for IPython to handle
4805 output. In most cases it will just be a proxy for stdout/err, but
4809 output. In most cases it will just be a proxy for stdout/err, but
4806 having this allows modifications to be made for some platforms,
4810 having this allows modifications to be made for some platforms,
4807 such as handling color escapes under Windows. All of this code
4811 such as handling color escapes under Windows. All of this code
4808 was contributed by Gary Bishop, with minor modifications by me.
4812 was contributed by Gary Bishop, with minor modifications by me.
4809 The actual changes affect many files.
4813 The actual changes affect many files.
4810
4814
4811 2003-11-30 Fernando Perez <fperez@colorado.edu>
4815 2003-11-30 Fernando Perez <fperez@colorado.edu>
4812
4816
4813 * IPython/iplib.py (file_matches): new completion code, courtesy
4817 * IPython/iplib.py (file_matches): new completion code, courtesy
4814 of Jeff Collins. This enables filename completion again under
4818 of Jeff Collins. This enables filename completion again under
4815 python 2.3, which disabled it at the C level.
4819 python 2.3, which disabled it at the C level.
4816
4820
4817 2003-11-11 Fernando Perez <fperez@colorado.edu>
4821 2003-11-11 Fernando Perez <fperez@colorado.edu>
4818
4822
4819 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4823 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4820 for Numeric.array(map(...)), but often convenient.
4824 for Numeric.array(map(...)), but often convenient.
4821
4825
4822 2003-11-05 Fernando Perez <fperez@colorado.edu>
4826 2003-11-05 Fernando Perez <fperez@colorado.edu>
4823
4827
4824 * IPython/numutils.py (frange): Changed a call from int() to
4828 * IPython/numutils.py (frange): Changed a call from int() to
4825 int(round()) to prevent a problem reported with arange() in the
4829 int(round()) to prevent a problem reported with arange() in the
4826 numpy list.
4830 numpy list.
4827
4831
4828 2003-10-06 Fernando Perez <fperez@colorado.edu>
4832 2003-10-06 Fernando Perez <fperez@colorado.edu>
4829
4833
4830 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4834 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4831 prevent crashes if sys lacks an argv attribute (it happens with
4835 prevent crashes if sys lacks an argv attribute (it happens with
4832 embedded interpreters which build a bare-bones sys module).
4836 embedded interpreters which build a bare-bones sys module).
4833 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4837 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4834
4838
4835 2003-09-24 Fernando Perez <fperez@colorado.edu>
4839 2003-09-24 Fernando Perez <fperez@colorado.edu>
4836
4840
4837 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4841 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4838 to protect against poorly written user objects where __getattr__
4842 to protect against poorly written user objects where __getattr__
4839 raises exceptions other than AttributeError. Thanks to a bug
4843 raises exceptions other than AttributeError. Thanks to a bug
4840 report by Oliver Sander <osander-AT-gmx.de>.
4844 report by Oliver Sander <osander-AT-gmx.de>.
4841
4845
4842 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4846 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4843 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4847 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4844
4848
4845 2003-09-09 Fernando Perez <fperez@colorado.edu>
4849 2003-09-09 Fernando Perez <fperez@colorado.edu>
4846
4850
4847 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4851 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4848 unpacking a list whith a callable as first element would
4852 unpacking a list whith a callable as first element would
4849 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4853 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4850 Collins.
4854 Collins.
4851
4855
4852 2003-08-25 *** Released version 0.5.0
4856 2003-08-25 *** Released version 0.5.0
4853
4857
4854 2003-08-22 Fernando Perez <fperez@colorado.edu>
4858 2003-08-22 Fernando Perez <fperez@colorado.edu>
4855
4859
4856 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4860 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4857 improperly defined user exceptions. Thanks to feedback from Mark
4861 improperly defined user exceptions. Thanks to feedback from Mark
4858 Russell <mrussell-AT-verio.net>.
4862 Russell <mrussell-AT-verio.net>.
4859
4863
4860 2003-08-20 Fernando Perez <fperez@colorado.edu>
4864 2003-08-20 Fernando Perez <fperez@colorado.edu>
4861
4865
4862 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4866 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4863 printing so that it would print multi-line string forms starting
4867 printing so that it would print multi-line string forms starting
4864 with a new line. This way the formatting is better respected for
4868 with a new line. This way the formatting is better respected for
4865 objects which work hard to make nice string forms.
4869 objects which work hard to make nice string forms.
4866
4870
4867 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4871 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4868 autocall would overtake data access for objects with both
4872 autocall would overtake data access for objects with both
4869 __getitem__ and __call__.
4873 __getitem__ and __call__.
4870
4874
4871 2003-08-19 *** Released version 0.5.0-rc1
4875 2003-08-19 *** Released version 0.5.0-rc1
4872
4876
4873 2003-08-19 Fernando Perez <fperez@colorado.edu>
4877 2003-08-19 Fernando Perez <fperez@colorado.edu>
4874
4878
4875 * IPython/deep_reload.py (load_tail): single tiny change here
4879 * IPython/deep_reload.py (load_tail): single tiny change here
4876 seems to fix the long-standing bug of dreload() failing to work
4880 seems to fix the long-standing bug of dreload() failing to work
4877 for dotted names. But this module is pretty tricky, so I may have
4881 for dotted names. But this module is pretty tricky, so I may have
4878 missed some subtlety. Needs more testing!.
4882 missed some subtlety. Needs more testing!.
4879
4883
4880 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4884 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4881 exceptions which have badly implemented __str__ methods.
4885 exceptions which have badly implemented __str__ methods.
4882 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4886 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4883 which I've been getting reports about from Python 2.3 users. I
4887 which I've been getting reports about from Python 2.3 users. I
4884 wish I had a simple test case to reproduce the problem, so I could
4888 wish I had a simple test case to reproduce the problem, so I could
4885 either write a cleaner workaround or file a bug report if
4889 either write a cleaner workaround or file a bug report if
4886 necessary.
4890 necessary.
4887
4891
4888 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4892 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4889 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4893 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4890 a bug report by Tjabo Kloppenburg.
4894 a bug report by Tjabo Kloppenburg.
4891
4895
4892 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4896 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4893 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4897 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4894 seems rather unstable. Thanks to a bug report by Tjabo
4898 seems rather unstable. Thanks to a bug report by Tjabo
4895 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4899 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4896
4900
4897 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4901 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4898 this out soon because of the critical fixes in the inner loop for
4902 this out soon because of the critical fixes in the inner loop for
4899 generators.
4903 generators.
4900
4904
4901 * IPython/Magic.py (Magic.getargspec): removed. This (and
4905 * IPython/Magic.py (Magic.getargspec): removed. This (and
4902 _get_def) have been obsoleted by OInspect for a long time, I
4906 _get_def) have been obsoleted by OInspect for a long time, I
4903 hadn't noticed that they were dead code.
4907 hadn't noticed that they were dead code.
4904 (Magic._ofind): restored _ofind functionality for a few literals
4908 (Magic._ofind): restored _ofind functionality for a few literals
4905 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4909 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4906 for things like "hello".capitalize?, since that would require a
4910 for things like "hello".capitalize?, since that would require a
4907 potentially dangerous eval() again.
4911 potentially dangerous eval() again.
4908
4912
4909 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4913 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4910 logic a bit more to clean up the escapes handling and minimize the
4914 logic a bit more to clean up the escapes handling and minimize the
4911 use of _ofind to only necessary cases. The interactive 'feel' of
4915 use of _ofind to only necessary cases. The interactive 'feel' of
4912 IPython should have improved quite a bit with the changes in
4916 IPython should have improved quite a bit with the changes in
4913 _prefilter and _ofind (besides being far safer than before).
4917 _prefilter and _ofind (besides being far safer than before).
4914
4918
4915 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4919 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4916 obscure, never reported). Edit would fail to find the object to
4920 obscure, never reported). Edit would fail to find the object to
4917 edit under some circumstances.
4921 edit under some circumstances.
4918 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4922 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4919 which were causing double-calling of generators. Those eval calls
4923 which were causing double-calling of generators. Those eval calls
4920 were _very_ dangerous, since code with side effects could be
4924 were _very_ dangerous, since code with side effects could be
4921 triggered. As they say, 'eval is evil'... These were the
4925 triggered. As they say, 'eval is evil'... These were the
4922 nastiest evals in IPython. Besides, _ofind is now far simpler,
4926 nastiest evals in IPython. Besides, _ofind is now far simpler,
4923 and it should also be quite a bit faster. Its use of inspect is
4927 and it should also be quite a bit faster. Its use of inspect is
4924 also safer, so perhaps some of the inspect-related crashes I've
4928 also safer, so perhaps some of the inspect-related crashes I've
4925 seen lately with Python 2.3 might be taken care of. That will
4929 seen lately with Python 2.3 might be taken care of. That will
4926 need more testing.
4930 need more testing.
4927
4931
4928 2003-08-17 Fernando Perez <fperez@colorado.edu>
4932 2003-08-17 Fernando Perez <fperez@colorado.edu>
4929
4933
4930 * IPython/iplib.py (InteractiveShell._prefilter): significant
4934 * IPython/iplib.py (InteractiveShell._prefilter): significant
4931 simplifications to the logic for handling user escapes. Faster
4935 simplifications to the logic for handling user escapes. Faster
4932 and simpler code.
4936 and simpler code.
4933
4937
4934 2003-08-14 Fernando Perez <fperez@colorado.edu>
4938 2003-08-14 Fernando Perez <fperez@colorado.edu>
4935
4939
4936 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4940 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4937 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4941 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4938 but it should be quite a bit faster. And the recursive version
4942 but it should be quite a bit faster. And the recursive version
4939 generated O(log N) intermediate storage for all rank>1 arrays,
4943 generated O(log N) intermediate storage for all rank>1 arrays,
4940 even if they were contiguous.
4944 even if they were contiguous.
4941 (l1norm): Added this function.
4945 (l1norm): Added this function.
4942 (norm): Added this function for arbitrary norms (including
4946 (norm): Added this function for arbitrary norms (including
4943 l-infinity). l1 and l2 are still special cases for convenience
4947 l-infinity). l1 and l2 are still special cases for convenience
4944 and speed.
4948 and speed.
4945
4949
4946 2003-08-03 Fernando Perez <fperez@colorado.edu>
4950 2003-08-03 Fernando Perez <fperez@colorado.edu>
4947
4951
4948 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4952 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4949 exceptions, which now raise PendingDeprecationWarnings in Python
4953 exceptions, which now raise PendingDeprecationWarnings in Python
4950 2.3. There were some in Magic and some in Gnuplot2.
4954 2.3. There were some in Magic and some in Gnuplot2.
4951
4955
4952 2003-06-30 Fernando Perez <fperez@colorado.edu>
4956 2003-06-30 Fernando Perez <fperez@colorado.edu>
4953
4957
4954 * IPython/genutils.py (page): modified to call curses only for
4958 * IPython/genutils.py (page): modified to call curses only for
4955 terminals where TERM=='xterm'. After problems under many other
4959 terminals where TERM=='xterm'. After problems under many other
4956 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4960 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4957
4961
4958 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4962 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4959 would be triggered when readline was absent. This was just an old
4963 would be triggered when readline was absent. This was just an old
4960 debugging statement I'd forgotten to take out.
4964 debugging statement I'd forgotten to take out.
4961
4965
4962 2003-06-20 Fernando Perez <fperez@colorado.edu>
4966 2003-06-20 Fernando Perez <fperez@colorado.edu>
4963
4967
4964 * IPython/genutils.py (clock): modified to return only user time
4968 * IPython/genutils.py (clock): modified to return only user time
4965 (not counting system time), after a discussion on scipy. While
4969 (not counting system time), after a discussion on scipy. While
4966 system time may be a useful quantity occasionally, it may much
4970 system time may be a useful quantity occasionally, it may much
4967 more easily be skewed by occasional swapping or other similar
4971 more easily be skewed by occasional swapping or other similar
4968 activity.
4972 activity.
4969
4973
4970 2003-06-05 Fernando Perez <fperez@colorado.edu>
4974 2003-06-05 Fernando Perez <fperez@colorado.edu>
4971
4975
4972 * IPython/numutils.py (identity): new function, for building
4976 * IPython/numutils.py (identity): new function, for building
4973 arbitrary rank Kronecker deltas (mostly backwards compatible with
4977 arbitrary rank Kronecker deltas (mostly backwards compatible with
4974 Numeric.identity)
4978 Numeric.identity)
4975
4979
4976 2003-06-03 Fernando Perez <fperez@colorado.edu>
4980 2003-06-03 Fernando Perez <fperez@colorado.edu>
4977
4981
4978 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4982 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4979 arguments passed to magics with spaces, to allow trailing '\' to
4983 arguments passed to magics with spaces, to allow trailing '\' to
4980 work normally (mainly for Windows users).
4984 work normally (mainly for Windows users).
4981
4985
4982 2003-05-29 Fernando Perez <fperez@colorado.edu>
4986 2003-05-29 Fernando Perez <fperez@colorado.edu>
4983
4987
4984 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4988 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4985 instead of pydoc.help. This fixes a bizarre behavior where
4989 instead of pydoc.help. This fixes a bizarre behavior where
4986 printing '%s' % locals() would trigger the help system. Now
4990 printing '%s' % locals() would trigger the help system. Now
4987 ipython behaves like normal python does.
4991 ipython behaves like normal python does.
4988
4992
4989 Note that if one does 'from pydoc import help', the bizarre
4993 Note that if one does 'from pydoc import help', the bizarre
4990 behavior returns, but this will also happen in normal python, so
4994 behavior returns, but this will also happen in normal python, so
4991 it's not an ipython bug anymore (it has to do with how pydoc.help
4995 it's not an ipython bug anymore (it has to do with how pydoc.help
4992 is implemented).
4996 is implemented).
4993
4997
4994 2003-05-22 Fernando Perez <fperez@colorado.edu>
4998 2003-05-22 Fernando Perez <fperez@colorado.edu>
4995
4999
4996 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5000 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4997 return [] instead of None when nothing matches, also match to end
5001 return [] instead of None when nothing matches, also match to end
4998 of line. Patch by Gary Bishop.
5002 of line. Patch by Gary Bishop.
4999
5003
5000 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5004 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5001 protection as before, for files passed on the command line. This
5005 protection as before, for files passed on the command line. This
5002 prevents the CrashHandler from kicking in if user files call into
5006 prevents the CrashHandler from kicking in if user files call into
5003 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5007 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5004 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5008 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5005
5009
5006 2003-05-20 *** Released version 0.4.0
5010 2003-05-20 *** Released version 0.4.0
5007
5011
5008 2003-05-20 Fernando Perez <fperez@colorado.edu>
5012 2003-05-20 Fernando Perez <fperez@colorado.edu>
5009
5013
5010 * setup.py: added support for manpages. It's a bit hackish b/c of
5014 * setup.py: added support for manpages. It's a bit hackish b/c of
5011 a bug in the way the bdist_rpm distutils target handles gzipped
5015 a bug in the way the bdist_rpm distutils target handles gzipped
5012 manpages, but it works. After a patch by Jack.
5016 manpages, but it works. After a patch by Jack.
5013
5017
5014 2003-05-19 Fernando Perez <fperez@colorado.edu>
5018 2003-05-19 Fernando Perez <fperez@colorado.edu>
5015
5019
5016 * IPython/numutils.py: added a mockup of the kinds module, since
5020 * IPython/numutils.py: added a mockup of the kinds module, since
5017 it was recently removed from Numeric. This way, numutils will
5021 it was recently removed from Numeric. This way, numutils will
5018 work for all users even if they are missing kinds.
5022 work for all users even if they are missing kinds.
5019
5023
5020 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5024 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5021 failure, which can occur with SWIG-wrapped extensions. After a
5025 failure, which can occur with SWIG-wrapped extensions. After a
5022 crash report from Prabhu.
5026 crash report from Prabhu.
5023
5027
5024 2003-05-16 Fernando Perez <fperez@colorado.edu>
5028 2003-05-16 Fernando Perez <fperez@colorado.edu>
5025
5029
5026 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5030 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5027 protect ipython from user code which may call directly
5031 protect ipython from user code which may call directly
5028 sys.excepthook (this looks like an ipython crash to the user, even
5032 sys.excepthook (this looks like an ipython crash to the user, even
5029 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5033 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5030 This is especially important to help users of WxWindows, but may
5034 This is especially important to help users of WxWindows, but may
5031 also be useful in other cases.
5035 also be useful in other cases.
5032
5036
5033 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5037 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5034 an optional tb_offset to be specified, and to preserve exception
5038 an optional tb_offset to be specified, and to preserve exception
5035 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5039 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5036
5040
5037 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5041 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5038
5042
5039 2003-05-15 Fernando Perez <fperez@colorado.edu>
5043 2003-05-15 Fernando Perez <fperez@colorado.edu>
5040
5044
5041 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5045 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5042 installing for a new user under Windows.
5046 installing for a new user under Windows.
5043
5047
5044 2003-05-12 Fernando Perez <fperez@colorado.edu>
5048 2003-05-12 Fernando Perez <fperez@colorado.edu>
5045
5049
5046 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5050 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5047 handler for Emacs comint-based lines. Currently it doesn't do
5051 handler for Emacs comint-based lines. Currently it doesn't do
5048 much (but importantly, it doesn't update the history cache). In
5052 much (but importantly, it doesn't update the history cache). In
5049 the future it may be expanded if Alex needs more functionality
5053 the future it may be expanded if Alex needs more functionality
5050 there.
5054 there.
5051
5055
5052 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5056 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5053 info to crash reports.
5057 info to crash reports.
5054
5058
5055 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5059 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5056 just like Python's -c. Also fixed crash with invalid -color
5060 just like Python's -c. Also fixed crash with invalid -color
5057 option value at startup. Thanks to Will French
5061 option value at startup. Thanks to Will French
5058 <wfrench-AT-bestweb.net> for the bug report.
5062 <wfrench-AT-bestweb.net> for the bug report.
5059
5063
5060 2003-05-09 Fernando Perez <fperez@colorado.edu>
5064 2003-05-09 Fernando Perez <fperez@colorado.edu>
5061
5065
5062 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5066 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5063 to EvalDict (it's a mapping, after all) and simplified its code
5067 to EvalDict (it's a mapping, after all) and simplified its code
5064 quite a bit, after a nice discussion on c.l.py where Gustavo
5068 quite a bit, after a nice discussion on c.l.py where Gustavo
5065 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5069 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5066
5070
5067 2003-04-30 Fernando Perez <fperez@colorado.edu>
5071 2003-04-30 Fernando Perez <fperez@colorado.edu>
5068
5072
5069 * IPython/genutils.py (timings_out): modified it to reduce its
5073 * IPython/genutils.py (timings_out): modified it to reduce its
5070 overhead in the common reps==1 case.
5074 overhead in the common reps==1 case.
5071
5075
5072 2003-04-29 Fernando Perez <fperez@colorado.edu>
5076 2003-04-29 Fernando Perez <fperez@colorado.edu>
5073
5077
5074 * IPython/genutils.py (timings_out): Modified to use the resource
5078 * IPython/genutils.py (timings_out): Modified to use the resource
5075 module, which avoids the wraparound problems of time.clock().
5079 module, which avoids the wraparound problems of time.clock().
5076
5080
5077 2003-04-17 *** Released version 0.2.15pre4
5081 2003-04-17 *** Released version 0.2.15pre4
5078
5082
5079 2003-04-17 Fernando Perez <fperez@colorado.edu>
5083 2003-04-17 Fernando Perez <fperez@colorado.edu>
5080
5084
5081 * setup.py (scriptfiles): Split windows-specific stuff over to a
5085 * setup.py (scriptfiles): Split windows-specific stuff over to a
5082 separate file, in an attempt to have a Windows GUI installer.
5086 separate file, in an attempt to have a Windows GUI installer.
5083 That didn't work, but part of the groundwork is done.
5087 That didn't work, but part of the groundwork is done.
5084
5088
5085 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5089 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5086 indent/unindent with 4 spaces. Particularly useful in combination
5090 indent/unindent with 4 spaces. Particularly useful in combination
5087 with the new auto-indent option.
5091 with the new auto-indent option.
5088
5092
5089 2003-04-16 Fernando Perez <fperez@colorado.edu>
5093 2003-04-16 Fernando Perez <fperez@colorado.edu>
5090
5094
5091 * IPython/Magic.py: various replacements of self.rc for
5095 * IPython/Magic.py: various replacements of self.rc for
5092 self.shell.rc. A lot more remains to be done to fully disentangle
5096 self.shell.rc. A lot more remains to be done to fully disentangle
5093 this class from the main Shell class.
5097 this class from the main Shell class.
5094
5098
5095 * IPython/GnuplotRuntime.py: added checks for mouse support so
5099 * IPython/GnuplotRuntime.py: added checks for mouse support so
5096 that we don't try to enable it if the current gnuplot doesn't
5100 that we don't try to enable it if the current gnuplot doesn't
5097 really support it. Also added checks so that we don't try to
5101 really support it. Also added checks so that we don't try to
5098 enable persist under Windows (where Gnuplot doesn't recognize the
5102 enable persist under Windows (where Gnuplot doesn't recognize the
5099 option).
5103 option).
5100
5104
5101 * IPython/iplib.py (InteractiveShell.interact): Added optional
5105 * IPython/iplib.py (InteractiveShell.interact): Added optional
5102 auto-indenting code, after a patch by King C. Shu
5106 auto-indenting code, after a patch by King C. Shu
5103 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5107 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5104 get along well with pasting indented code. If I ever figure out
5108 get along well with pasting indented code. If I ever figure out
5105 how to make that part go well, it will become on by default.
5109 how to make that part go well, it will become on by default.
5106
5110
5107 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5111 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5108 crash ipython if there was an unmatched '%' in the user's prompt
5112 crash ipython if there was an unmatched '%' in the user's prompt
5109 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5113 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5110
5114
5111 * IPython/iplib.py (InteractiveShell.interact): removed the
5115 * IPython/iplib.py (InteractiveShell.interact): removed the
5112 ability to ask the user whether he wants to crash or not at the
5116 ability to ask the user whether he wants to crash or not at the
5113 'last line' exception handler. Calling functions at that point
5117 'last line' exception handler. Calling functions at that point
5114 changes the stack, and the error reports would have incorrect
5118 changes the stack, and the error reports would have incorrect
5115 tracebacks.
5119 tracebacks.
5116
5120
5117 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5121 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5118 pass through a peger a pretty-printed form of any object. After a
5122 pass through a peger a pretty-printed form of any object. After a
5119 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5123 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5120
5124
5121 2003-04-14 Fernando Perez <fperez@colorado.edu>
5125 2003-04-14 Fernando Perez <fperez@colorado.edu>
5122
5126
5123 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5127 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5124 all files in ~ would be modified at first install (instead of
5128 all files in ~ would be modified at first install (instead of
5125 ~/.ipython). This could be potentially disastrous, as the
5129 ~/.ipython). This could be potentially disastrous, as the
5126 modification (make line-endings native) could damage binary files.
5130 modification (make line-endings native) could damage binary files.
5127
5131
5128 2003-04-10 Fernando Perez <fperez@colorado.edu>
5132 2003-04-10 Fernando Perez <fperez@colorado.edu>
5129
5133
5130 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5134 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5131 handle only lines which are invalid python. This now means that
5135 handle only lines which are invalid python. This now means that
5132 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5136 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5133 for the bug report.
5137 for the bug report.
5134
5138
5135 2003-04-01 Fernando Perez <fperez@colorado.edu>
5139 2003-04-01 Fernando Perez <fperez@colorado.edu>
5136
5140
5137 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5141 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5138 where failing to set sys.last_traceback would crash pdb.pm().
5142 where failing to set sys.last_traceback would crash pdb.pm().
5139 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5143 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5140 report.
5144 report.
5141
5145
5142 2003-03-25 Fernando Perez <fperez@colorado.edu>
5146 2003-03-25 Fernando Perez <fperez@colorado.edu>
5143
5147
5144 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5148 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5145 before printing it (it had a lot of spurious blank lines at the
5149 before printing it (it had a lot of spurious blank lines at the
5146 end).
5150 end).
5147
5151
5148 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5152 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5149 output would be sent 21 times! Obviously people don't use this
5153 output would be sent 21 times! Obviously people don't use this
5150 too often, or I would have heard about it.
5154 too often, or I would have heard about it.
5151
5155
5152 2003-03-24 Fernando Perez <fperez@colorado.edu>
5156 2003-03-24 Fernando Perez <fperez@colorado.edu>
5153
5157
5154 * setup.py (scriptfiles): renamed the data_files parameter from
5158 * setup.py (scriptfiles): renamed the data_files parameter from
5155 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5159 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5156 for the patch.
5160 for the patch.
5157
5161
5158 2003-03-20 Fernando Perez <fperez@colorado.edu>
5162 2003-03-20 Fernando Perez <fperez@colorado.edu>
5159
5163
5160 * IPython/genutils.py (error): added error() and fatal()
5164 * IPython/genutils.py (error): added error() and fatal()
5161 functions.
5165 functions.
5162
5166
5163 2003-03-18 *** Released version 0.2.15pre3
5167 2003-03-18 *** Released version 0.2.15pre3
5164
5168
5165 2003-03-18 Fernando Perez <fperez@colorado.edu>
5169 2003-03-18 Fernando Perez <fperez@colorado.edu>
5166
5170
5167 * setupext/install_data_ext.py
5171 * setupext/install_data_ext.py
5168 (install_data_ext.initialize_options): Class contributed by Jack
5172 (install_data_ext.initialize_options): Class contributed by Jack
5169 Moffit for fixing the old distutils hack. He is sending this to
5173 Moffit for fixing the old distutils hack. He is sending this to
5170 the distutils folks so in the future we may not need it as a
5174 the distutils folks so in the future we may not need it as a
5171 private fix.
5175 private fix.
5172
5176
5173 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5177 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5174 changes for Debian packaging. See his patch for full details.
5178 changes for Debian packaging. See his patch for full details.
5175 The old distutils hack of making the ipythonrc* files carry a
5179 The old distutils hack of making the ipythonrc* files carry a
5176 bogus .py extension is gone, at last. Examples were moved to a
5180 bogus .py extension is gone, at last. Examples were moved to a
5177 separate subdir under doc/, and the separate executable scripts
5181 separate subdir under doc/, and the separate executable scripts
5178 now live in their own directory. Overall a great cleanup. The
5182 now live in their own directory. Overall a great cleanup. The
5179 manual was updated to use the new files, and setup.py has been
5183 manual was updated to use the new files, and setup.py has been
5180 fixed for this setup.
5184 fixed for this setup.
5181
5185
5182 * IPython/PyColorize.py (Parser.usage): made non-executable and
5186 * IPython/PyColorize.py (Parser.usage): made non-executable and
5183 created a pycolor wrapper around it to be included as a script.
5187 created a pycolor wrapper around it to be included as a script.
5184
5188
5185 2003-03-12 *** Released version 0.2.15pre2
5189 2003-03-12 *** Released version 0.2.15pre2
5186
5190
5187 2003-03-12 Fernando Perez <fperez@colorado.edu>
5191 2003-03-12 Fernando Perez <fperez@colorado.edu>
5188
5192
5189 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5193 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5190 long-standing problem with garbage characters in some terminals.
5194 long-standing problem with garbage characters in some terminals.
5191 The issue was really that the \001 and \002 escapes must _only_ be
5195 The issue was really that the \001 and \002 escapes must _only_ be
5192 passed to input prompts (which call readline), but _never_ to
5196 passed to input prompts (which call readline), but _never_ to
5193 normal text to be printed on screen. I changed ColorANSI to have
5197 normal text to be printed on screen. I changed ColorANSI to have
5194 two classes: TermColors and InputTermColors, each with the
5198 two classes: TermColors and InputTermColors, each with the
5195 appropriate escapes for input prompts or normal text. The code in
5199 appropriate escapes for input prompts or normal text. The code in
5196 Prompts.py got slightly more complicated, but this very old and
5200 Prompts.py got slightly more complicated, but this very old and
5197 annoying bug is finally fixed.
5201 annoying bug is finally fixed.
5198
5202
5199 All the credit for nailing down the real origin of this problem
5203 All the credit for nailing down the real origin of this problem
5200 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5204 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5201 *Many* thanks to him for spending quite a bit of effort on this.
5205 *Many* thanks to him for spending quite a bit of effort on this.
5202
5206
5203 2003-03-05 *** Released version 0.2.15pre1
5207 2003-03-05 *** Released version 0.2.15pre1
5204
5208
5205 2003-03-03 Fernando Perez <fperez@colorado.edu>
5209 2003-03-03 Fernando Perez <fperez@colorado.edu>
5206
5210
5207 * IPython/FakeModule.py: Moved the former _FakeModule to a
5211 * IPython/FakeModule.py: Moved the former _FakeModule to a
5208 separate file, because it's also needed by Magic (to fix a similar
5212 separate file, because it's also needed by Magic (to fix a similar
5209 pickle-related issue in @run).
5213 pickle-related issue in @run).
5210
5214
5211 2003-03-02 Fernando Perez <fperez@colorado.edu>
5215 2003-03-02 Fernando Perez <fperez@colorado.edu>
5212
5216
5213 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5217 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5214 the autocall option at runtime.
5218 the autocall option at runtime.
5215 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5219 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5216 across Magic.py to start separating Magic from InteractiveShell.
5220 across Magic.py to start separating Magic from InteractiveShell.
5217 (Magic._ofind): Fixed to return proper namespace for dotted
5221 (Magic._ofind): Fixed to return proper namespace for dotted
5218 names. Before, a dotted name would always return 'not currently
5222 names. Before, a dotted name would always return 'not currently
5219 defined', because it would find the 'parent'. s.x would be found,
5223 defined', because it would find the 'parent'. s.x would be found,
5220 but since 'x' isn't defined by itself, it would get confused.
5224 but since 'x' isn't defined by itself, it would get confused.
5221 (Magic.magic_run): Fixed pickling problems reported by Ralf
5225 (Magic.magic_run): Fixed pickling problems reported by Ralf
5222 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5226 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5223 that I'd used when Mike Heeter reported similar issues at the
5227 that I'd used when Mike Heeter reported similar issues at the
5224 top-level, but now for @run. It boils down to injecting the
5228 top-level, but now for @run. It boils down to injecting the
5225 namespace where code is being executed with something that looks
5229 namespace where code is being executed with something that looks
5226 enough like a module to fool pickle.dump(). Since a pickle stores
5230 enough like a module to fool pickle.dump(). Since a pickle stores
5227 a named reference to the importing module, we need this for
5231 a named reference to the importing module, we need this for
5228 pickles to save something sensible.
5232 pickles to save something sensible.
5229
5233
5230 * IPython/ipmaker.py (make_IPython): added an autocall option.
5234 * IPython/ipmaker.py (make_IPython): added an autocall option.
5231
5235
5232 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5236 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5233 the auto-eval code. Now autocalling is an option, and the code is
5237 the auto-eval code. Now autocalling is an option, and the code is
5234 also vastly safer. There is no more eval() involved at all.
5238 also vastly safer. There is no more eval() involved at all.
5235
5239
5236 2003-03-01 Fernando Perez <fperez@colorado.edu>
5240 2003-03-01 Fernando Perez <fperez@colorado.edu>
5237
5241
5238 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5242 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5239 dict with named keys instead of a tuple.
5243 dict with named keys instead of a tuple.
5240
5244
5241 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5245 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5242
5246
5243 * setup.py (make_shortcut): Fixed message about directories
5247 * setup.py (make_shortcut): Fixed message about directories
5244 created during Windows installation (the directories were ok, just
5248 created during Windows installation (the directories were ok, just
5245 the printed message was misleading). Thanks to Chris Liechti
5249 the printed message was misleading). Thanks to Chris Liechti
5246 <cliechti-AT-gmx.net> for the heads up.
5250 <cliechti-AT-gmx.net> for the heads up.
5247
5251
5248 2003-02-21 Fernando Perez <fperez@colorado.edu>
5252 2003-02-21 Fernando Perez <fperez@colorado.edu>
5249
5253
5250 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5254 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5251 of ValueError exception when checking for auto-execution. This
5255 of ValueError exception when checking for auto-execution. This
5252 one is raised by things like Numeric arrays arr.flat when the
5256 one is raised by things like Numeric arrays arr.flat when the
5253 array is non-contiguous.
5257 array is non-contiguous.
5254
5258
5255 2003-01-31 Fernando Perez <fperez@colorado.edu>
5259 2003-01-31 Fernando Perez <fperez@colorado.edu>
5256
5260
5257 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5261 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5258 not return any value at all (even though the command would get
5262 not return any value at all (even though the command would get
5259 executed).
5263 executed).
5260 (xsys): Flush stdout right after printing the command to ensure
5264 (xsys): Flush stdout right after printing the command to ensure
5261 proper ordering of commands and command output in the total
5265 proper ordering of commands and command output in the total
5262 output.
5266 output.
5263 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5267 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5264 system/getoutput as defaults. The old ones are kept for
5268 system/getoutput as defaults. The old ones are kept for
5265 compatibility reasons, so no code which uses this library needs
5269 compatibility reasons, so no code which uses this library needs
5266 changing.
5270 changing.
5267
5271
5268 2003-01-27 *** Released version 0.2.14
5272 2003-01-27 *** Released version 0.2.14
5269
5273
5270 2003-01-25 Fernando Perez <fperez@colorado.edu>
5274 2003-01-25 Fernando Perez <fperez@colorado.edu>
5271
5275
5272 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5276 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5273 functions defined in previous edit sessions could not be re-edited
5277 functions defined in previous edit sessions could not be re-edited
5274 (because the temp files were immediately removed). Now temp files
5278 (because the temp files were immediately removed). Now temp files
5275 are removed only at IPython's exit.
5279 are removed only at IPython's exit.
5276 (Magic.magic_run): Improved @run to perform shell-like expansions
5280 (Magic.magic_run): Improved @run to perform shell-like expansions
5277 on its arguments (~users and $VARS). With this, @run becomes more
5281 on its arguments (~users and $VARS). With this, @run becomes more
5278 like a normal command-line.
5282 like a normal command-line.
5279
5283
5280 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5284 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5281 bugs related to embedding and cleaned up that code. A fairly
5285 bugs related to embedding and cleaned up that code. A fairly
5282 important one was the impossibility to access the global namespace
5286 important one was the impossibility to access the global namespace
5283 through the embedded IPython (only local variables were visible).
5287 through the embedded IPython (only local variables were visible).
5284
5288
5285 2003-01-14 Fernando Perez <fperez@colorado.edu>
5289 2003-01-14 Fernando Perez <fperez@colorado.edu>
5286
5290
5287 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5291 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5288 auto-calling to be a bit more conservative. Now it doesn't get
5292 auto-calling to be a bit more conservative. Now it doesn't get
5289 triggered if any of '!=()<>' are in the rest of the input line, to
5293 triggered if any of '!=()<>' are in the rest of the input line, to
5290 allow comparing callables. Thanks to Alex for the heads up.
5294 allow comparing callables. Thanks to Alex for the heads up.
5291
5295
5292 2003-01-07 Fernando Perez <fperez@colorado.edu>
5296 2003-01-07 Fernando Perez <fperez@colorado.edu>
5293
5297
5294 * IPython/genutils.py (page): fixed estimation of the number of
5298 * IPython/genutils.py (page): fixed estimation of the number of
5295 lines in a string to be paged to simply count newlines. This
5299 lines in a string to be paged to simply count newlines. This
5296 prevents over-guessing due to embedded escape sequences. A better
5300 prevents over-guessing due to embedded escape sequences. A better
5297 long-term solution would involve stripping out the control chars
5301 long-term solution would involve stripping out the control chars
5298 for the count, but it's potentially so expensive I just don't
5302 for the count, but it's potentially so expensive I just don't
5299 think it's worth doing.
5303 think it's worth doing.
5300
5304
5301 2002-12-19 *** Released version 0.2.14pre50
5305 2002-12-19 *** Released version 0.2.14pre50
5302
5306
5303 2002-12-19 Fernando Perez <fperez@colorado.edu>
5307 2002-12-19 Fernando Perez <fperez@colorado.edu>
5304
5308
5305 * tools/release (version): Changed release scripts to inform
5309 * tools/release (version): Changed release scripts to inform
5306 Andrea and build a NEWS file with a list of recent changes.
5310 Andrea and build a NEWS file with a list of recent changes.
5307
5311
5308 * IPython/ColorANSI.py (__all__): changed terminal detection
5312 * IPython/ColorANSI.py (__all__): changed terminal detection
5309 code. Seems to work better for xterms without breaking
5313 code. Seems to work better for xterms without breaking
5310 konsole. Will need more testing to determine if WinXP and Mac OSX
5314 konsole. Will need more testing to determine if WinXP and Mac OSX
5311 also work ok.
5315 also work ok.
5312
5316
5313 2002-12-18 *** Released version 0.2.14pre49
5317 2002-12-18 *** Released version 0.2.14pre49
5314
5318
5315 2002-12-18 Fernando Perez <fperez@colorado.edu>
5319 2002-12-18 Fernando Perez <fperez@colorado.edu>
5316
5320
5317 * Docs: added new info about Mac OSX, from Andrea.
5321 * Docs: added new info about Mac OSX, from Andrea.
5318
5322
5319 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5323 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5320 allow direct plotting of python strings whose format is the same
5324 allow direct plotting of python strings whose format is the same
5321 of gnuplot data files.
5325 of gnuplot data files.
5322
5326
5323 2002-12-16 Fernando Perez <fperez@colorado.edu>
5327 2002-12-16 Fernando Perez <fperez@colorado.edu>
5324
5328
5325 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5329 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5326 value of exit question to be acknowledged.
5330 value of exit question to be acknowledged.
5327
5331
5328 2002-12-03 Fernando Perez <fperez@colorado.edu>
5332 2002-12-03 Fernando Perez <fperez@colorado.edu>
5329
5333
5330 * IPython/ipmaker.py: removed generators, which had been added
5334 * IPython/ipmaker.py: removed generators, which had been added
5331 by mistake in an earlier debugging run. This was causing trouble
5335 by mistake in an earlier debugging run. This was causing trouble
5332 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5336 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5333 for pointing this out.
5337 for pointing this out.
5334
5338
5335 2002-11-17 Fernando Perez <fperez@colorado.edu>
5339 2002-11-17 Fernando Perez <fperez@colorado.edu>
5336
5340
5337 * Manual: updated the Gnuplot section.
5341 * Manual: updated the Gnuplot section.
5338
5342
5339 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5343 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5340 a much better split of what goes in Runtime and what goes in
5344 a much better split of what goes in Runtime and what goes in
5341 Interactive.
5345 Interactive.
5342
5346
5343 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5347 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5344 being imported from iplib.
5348 being imported from iplib.
5345
5349
5346 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5350 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5347 for command-passing. Now the global Gnuplot instance is called
5351 for command-passing. Now the global Gnuplot instance is called
5348 'gp' instead of 'g', which was really a far too fragile and
5352 'gp' instead of 'g', which was really a far too fragile and
5349 common name.
5353 common name.
5350
5354
5351 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5355 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5352 bounding boxes generated by Gnuplot for square plots.
5356 bounding boxes generated by Gnuplot for square plots.
5353
5357
5354 * IPython/genutils.py (popkey): new function added. I should
5358 * IPython/genutils.py (popkey): new function added. I should
5355 suggest this on c.l.py as a dict method, it seems useful.
5359 suggest this on c.l.py as a dict method, it seems useful.
5356
5360
5357 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5361 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5358 to transparently handle PostScript generation. MUCH better than
5362 to transparently handle PostScript generation. MUCH better than
5359 the previous plot_eps/replot_eps (which I removed now). The code
5363 the previous plot_eps/replot_eps (which I removed now). The code
5360 is also fairly clean and well documented now (including
5364 is also fairly clean and well documented now (including
5361 docstrings).
5365 docstrings).
5362
5366
5363 2002-11-13 Fernando Perez <fperez@colorado.edu>
5367 2002-11-13 Fernando Perez <fperez@colorado.edu>
5364
5368
5365 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5369 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5366 (inconsistent with options).
5370 (inconsistent with options).
5367
5371
5368 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5372 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5369 manually disabled, I don't know why. Fixed it.
5373 manually disabled, I don't know why. Fixed it.
5370 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5374 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5371 eps output.
5375 eps output.
5372
5376
5373 2002-11-12 Fernando Perez <fperez@colorado.edu>
5377 2002-11-12 Fernando Perez <fperez@colorado.edu>
5374
5378
5375 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5379 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5376 don't propagate up to caller. Fixes crash reported by François
5380 don't propagate up to caller. Fixes crash reported by François
5377 Pinard.
5381 Pinard.
5378
5382
5379 2002-11-09 Fernando Perez <fperez@colorado.edu>
5383 2002-11-09 Fernando Perez <fperez@colorado.edu>
5380
5384
5381 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5385 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5382 history file for new users.
5386 history file for new users.
5383 (make_IPython): fixed bug where initial install would leave the
5387 (make_IPython): fixed bug where initial install would leave the
5384 user running in the .ipython dir.
5388 user running in the .ipython dir.
5385 (make_IPython): fixed bug where config dir .ipython would be
5389 (make_IPython): fixed bug where config dir .ipython would be
5386 created regardless of the given -ipythondir option. Thanks to Cory
5390 created regardless of the given -ipythondir option. Thanks to Cory
5387 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5391 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5388
5392
5389 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5393 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5390 type confirmations. Will need to use it in all of IPython's code
5394 type confirmations. Will need to use it in all of IPython's code
5391 consistently.
5395 consistently.
5392
5396
5393 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5397 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5394 context to print 31 lines instead of the default 5. This will make
5398 context to print 31 lines instead of the default 5. This will make
5395 the crash reports extremely detailed in case the problem is in
5399 the crash reports extremely detailed in case the problem is in
5396 libraries I don't have access to.
5400 libraries I don't have access to.
5397
5401
5398 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5402 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5399 line of defense' code to still crash, but giving users fair
5403 line of defense' code to still crash, but giving users fair
5400 warning. I don't want internal errors to go unreported: if there's
5404 warning. I don't want internal errors to go unreported: if there's
5401 an internal problem, IPython should crash and generate a full
5405 an internal problem, IPython should crash and generate a full
5402 report.
5406 report.
5403
5407
5404 2002-11-08 Fernando Perez <fperez@colorado.edu>
5408 2002-11-08 Fernando Perez <fperez@colorado.edu>
5405
5409
5406 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5410 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5407 otherwise uncaught exceptions which can appear if people set
5411 otherwise uncaught exceptions which can appear if people set
5408 sys.stdout to something badly broken. Thanks to a crash report
5412 sys.stdout to something badly broken. Thanks to a crash report
5409 from henni-AT-mail.brainbot.com.
5413 from henni-AT-mail.brainbot.com.
5410
5414
5411 2002-11-04 Fernando Perez <fperez@colorado.edu>
5415 2002-11-04 Fernando Perez <fperez@colorado.edu>
5412
5416
5413 * IPython/iplib.py (InteractiveShell.interact): added
5417 * IPython/iplib.py (InteractiveShell.interact): added
5414 __IPYTHON__active to the builtins. It's a flag which goes on when
5418 __IPYTHON__active to the builtins. It's a flag which goes on when
5415 the interaction starts and goes off again when it stops. This
5419 the interaction starts and goes off again when it stops. This
5416 allows embedding code to detect being inside IPython. Before this
5420 allows embedding code to detect being inside IPython. Before this
5417 was done via __IPYTHON__, but that only shows that an IPython
5421 was done via __IPYTHON__, but that only shows that an IPython
5418 instance has been created.
5422 instance has been created.
5419
5423
5420 * IPython/Magic.py (Magic.magic_env): I realized that in a
5424 * IPython/Magic.py (Magic.magic_env): I realized that in a
5421 UserDict, instance.data holds the data as a normal dict. So I
5425 UserDict, instance.data holds the data as a normal dict. So I
5422 modified @env to return os.environ.data instead of rebuilding a
5426 modified @env to return os.environ.data instead of rebuilding a
5423 dict by hand.
5427 dict by hand.
5424
5428
5425 2002-11-02 Fernando Perez <fperez@colorado.edu>
5429 2002-11-02 Fernando Perez <fperez@colorado.edu>
5426
5430
5427 * IPython/genutils.py (warn): changed so that level 1 prints no
5431 * IPython/genutils.py (warn): changed so that level 1 prints no
5428 header. Level 2 is now the default (with 'WARNING' header, as
5432 header. Level 2 is now the default (with 'WARNING' header, as
5429 before). I think I tracked all places where changes were needed in
5433 before). I think I tracked all places where changes were needed in
5430 IPython, but outside code using the old level numbering may have
5434 IPython, but outside code using the old level numbering may have
5431 broken.
5435 broken.
5432
5436
5433 * IPython/iplib.py (InteractiveShell.runcode): added this to
5437 * IPython/iplib.py (InteractiveShell.runcode): added this to
5434 handle the tracebacks in SystemExit traps correctly. The previous
5438 handle the tracebacks in SystemExit traps correctly. The previous
5435 code (through interact) was printing more of the stack than
5439 code (through interact) was printing more of the stack than
5436 necessary, showing IPython internal code to the user.
5440 necessary, showing IPython internal code to the user.
5437
5441
5438 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5442 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5439 default. Now that the default at the confirmation prompt is yes,
5443 default. Now that the default at the confirmation prompt is yes,
5440 it's not so intrusive. François' argument that ipython sessions
5444 it's not so intrusive. François' argument that ipython sessions
5441 tend to be complex enough not to lose them from an accidental C-d,
5445 tend to be complex enough not to lose them from an accidental C-d,
5442 is a valid one.
5446 is a valid one.
5443
5447
5444 * IPython/iplib.py (InteractiveShell.interact): added a
5448 * IPython/iplib.py (InteractiveShell.interact): added a
5445 showtraceback() call to the SystemExit trap, and modified the exit
5449 showtraceback() call to the SystemExit trap, and modified the exit
5446 confirmation to have yes as the default.
5450 confirmation to have yes as the default.
5447
5451
5448 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5452 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5449 this file. It's been gone from the code for a long time, this was
5453 this file. It's been gone from the code for a long time, this was
5450 simply leftover junk.
5454 simply leftover junk.
5451
5455
5452 2002-11-01 Fernando Perez <fperez@colorado.edu>
5456 2002-11-01 Fernando Perez <fperez@colorado.edu>
5453
5457
5454 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5458 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5455 added. If set, IPython now traps EOF and asks for
5459 added. If set, IPython now traps EOF and asks for
5456 confirmation. After a request by François Pinard.
5460 confirmation. After a request by François Pinard.
5457
5461
5458 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5462 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5459 of @abort, and with a new (better) mechanism for handling the
5463 of @abort, and with a new (better) mechanism for handling the
5460 exceptions.
5464 exceptions.
5461
5465
5462 2002-10-27 Fernando Perez <fperez@colorado.edu>
5466 2002-10-27 Fernando Perez <fperez@colorado.edu>
5463
5467
5464 * IPython/usage.py (__doc__): updated the --help information and
5468 * IPython/usage.py (__doc__): updated the --help information and
5465 the ipythonrc file to indicate that -log generates
5469 the ipythonrc file to indicate that -log generates
5466 ./ipython.log. Also fixed the corresponding info in @logstart.
5470 ./ipython.log. Also fixed the corresponding info in @logstart.
5467 This and several other fixes in the manuals thanks to reports by
5471 This and several other fixes in the manuals thanks to reports by
5468 François Pinard <pinard-AT-iro.umontreal.ca>.
5472 François Pinard <pinard-AT-iro.umontreal.ca>.
5469
5473
5470 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5474 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5471 refer to @logstart (instead of @log, which doesn't exist).
5475 refer to @logstart (instead of @log, which doesn't exist).
5472
5476
5473 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5477 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5474 AttributeError crash. Thanks to Christopher Armstrong
5478 AttributeError crash. Thanks to Christopher Armstrong
5475 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5479 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5476 introduced recently (in 0.2.14pre37) with the fix to the eval
5480 introduced recently (in 0.2.14pre37) with the fix to the eval
5477 problem mentioned below.
5481 problem mentioned below.
5478
5482
5479 2002-10-17 Fernando Perez <fperez@colorado.edu>
5483 2002-10-17 Fernando Perez <fperez@colorado.edu>
5480
5484
5481 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5485 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5482 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5486 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5483
5487
5484 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5488 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5485 this function to fix a problem reported by Alex Schmolck. He saw
5489 this function to fix a problem reported by Alex Schmolck. He saw
5486 it with list comprehensions and generators, which were getting
5490 it with list comprehensions and generators, which were getting
5487 called twice. The real problem was an 'eval' call in testing for
5491 called twice. The real problem was an 'eval' call in testing for
5488 automagic which was evaluating the input line silently.
5492 automagic which was evaluating the input line silently.
5489
5493
5490 This is a potentially very nasty bug, if the input has side
5494 This is a potentially very nasty bug, if the input has side
5491 effects which must not be repeated. The code is much cleaner now,
5495 effects which must not be repeated. The code is much cleaner now,
5492 without any blanket 'except' left and with a regexp test for
5496 without any blanket 'except' left and with a regexp test for
5493 actual function names.
5497 actual function names.
5494
5498
5495 But an eval remains, which I'm not fully comfortable with. I just
5499 But an eval remains, which I'm not fully comfortable with. I just
5496 don't know how to find out if an expression could be a callable in
5500 don't know how to find out if an expression could be a callable in
5497 the user's namespace without doing an eval on the string. However
5501 the user's namespace without doing an eval on the string. However
5498 that string is now much more strictly checked so that no code
5502 that string is now much more strictly checked so that no code
5499 slips by, so the eval should only happen for things that can
5503 slips by, so the eval should only happen for things that can
5500 really be only function/method names.
5504 really be only function/method names.
5501
5505
5502 2002-10-15 Fernando Perez <fperez@colorado.edu>
5506 2002-10-15 Fernando Perez <fperez@colorado.edu>
5503
5507
5504 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5508 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5505 OSX information to main manual, removed README_Mac_OSX file from
5509 OSX information to main manual, removed README_Mac_OSX file from
5506 distribution. Also updated credits for recent additions.
5510 distribution. Also updated credits for recent additions.
5507
5511
5508 2002-10-10 Fernando Perez <fperez@colorado.edu>
5512 2002-10-10 Fernando Perez <fperez@colorado.edu>
5509
5513
5510 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5514 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5511 terminal-related issues. Many thanks to Andrea Riciputi
5515 terminal-related issues. Many thanks to Andrea Riciputi
5512 <andrea.riciputi-AT-libero.it> for writing it.
5516 <andrea.riciputi-AT-libero.it> for writing it.
5513
5517
5514 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5518 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5515 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5519 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5516
5520
5517 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5521 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5518 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5522 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5519 <syver-en-AT-online.no> who both submitted patches for this problem.
5523 <syver-en-AT-online.no> who both submitted patches for this problem.
5520
5524
5521 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5525 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5522 global embedding to make sure that things don't overwrite user
5526 global embedding to make sure that things don't overwrite user
5523 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5527 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5524
5528
5525 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5529 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5526 compatibility. Thanks to Hayden Callow
5530 compatibility. Thanks to Hayden Callow
5527 <h.callow-AT-elec.canterbury.ac.nz>
5531 <h.callow-AT-elec.canterbury.ac.nz>
5528
5532
5529 2002-10-04 Fernando Perez <fperez@colorado.edu>
5533 2002-10-04 Fernando Perez <fperez@colorado.edu>
5530
5534
5531 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5535 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5532 Gnuplot.File objects.
5536 Gnuplot.File objects.
5533
5537
5534 2002-07-23 Fernando Perez <fperez@colorado.edu>
5538 2002-07-23 Fernando Perez <fperez@colorado.edu>
5535
5539
5536 * IPython/genutils.py (timing): Added timings() and timing() for
5540 * IPython/genutils.py (timing): Added timings() and timing() for
5537 quick access to the most commonly needed data, the execution
5541 quick access to the most commonly needed data, the execution
5538 times. Old timing() renamed to timings_out().
5542 times. Old timing() renamed to timings_out().
5539
5543
5540 2002-07-18 Fernando Perez <fperez@colorado.edu>
5544 2002-07-18 Fernando Perez <fperez@colorado.edu>
5541
5545
5542 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5546 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5543 bug with nested instances disrupting the parent's tab completion.
5547 bug with nested instances disrupting the parent's tab completion.
5544
5548
5545 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5549 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5546 all_completions code to begin the emacs integration.
5550 all_completions code to begin the emacs integration.
5547
5551
5548 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5552 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5549 argument to allow titling individual arrays when plotting.
5553 argument to allow titling individual arrays when plotting.
5550
5554
5551 2002-07-15 Fernando Perez <fperez@colorado.edu>
5555 2002-07-15 Fernando Perez <fperez@colorado.edu>
5552
5556
5553 * setup.py (make_shortcut): changed to retrieve the value of
5557 * setup.py (make_shortcut): changed to retrieve the value of
5554 'Program Files' directory from the registry (this value changes in
5558 'Program Files' directory from the registry (this value changes in
5555 non-english versions of Windows). Thanks to Thomas Fanslau
5559 non-english versions of Windows). Thanks to Thomas Fanslau
5556 <tfanslau-AT-gmx.de> for the report.
5560 <tfanslau-AT-gmx.de> for the report.
5557
5561
5558 2002-07-10 Fernando Perez <fperez@colorado.edu>
5562 2002-07-10 Fernando Perez <fperez@colorado.edu>
5559
5563
5560 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5564 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5561 a bug in pdb, which crashes if a line with only whitespace is
5565 a bug in pdb, which crashes if a line with only whitespace is
5562 entered. Bug report submitted to sourceforge.
5566 entered. Bug report submitted to sourceforge.
5563
5567
5564 2002-07-09 Fernando Perez <fperez@colorado.edu>
5568 2002-07-09 Fernando Perez <fperez@colorado.edu>
5565
5569
5566 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5570 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5567 reporting exceptions (it's a bug in inspect.py, I just set a
5571 reporting exceptions (it's a bug in inspect.py, I just set a
5568 workaround).
5572 workaround).
5569
5573
5570 2002-07-08 Fernando Perez <fperez@colorado.edu>
5574 2002-07-08 Fernando Perez <fperez@colorado.edu>
5571
5575
5572 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5576 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5573 __IPYTHON__ in __builtins__ to show up in user_ns.
5577 __IPYTHON__ in __builtins__ to show up in user_ns.
5574
5578
5575 2002-07-03 Fernando Perez <fperez@colorado.edu>
5579 2002-07-03 Fernando Perez <fperez@colorado.edu>
5576
5580
5577 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5581 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5578 name from @gp_set_instance to @gp_set_default.
5582 name from @gp_set_instance to @gp_set_default.
5579
5583
5580 * IPython/ipmaker.py (make_IPython): default editor value set to
5584 * IPython/ipmaker.py (make_IPython): default editor value set to
5581 '0' (a string), to match the rc file. Otherwise will crash when
5585 '0' (a string), to match the rc file. Otherwise will crash when
5582 .strip() is called on it.
5586 .strip() is called on it.
5583
5587
5584
5588
5585 2002-06-28 Fernando Perez <fperez@colorado.edu>
5589 2002-06-28 Fernando Perez <fperez@colorado.edu>
5586
5590
5587 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5591 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5588 of files in current directory when a file is executed via
5592 of files in current directory when a file is executed via
5589 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5593 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5590
5594
5591 * setup.py (manfiles): fix for rpm builds, submitted by RA
5595 * setup.py (manfiles): fix for rpm builds, submitted by RA
5592 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5596 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5593
5597
5594 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5598 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5595 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5599 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5596 string!). A. Schmolck caught this one.
5600 string!). A. Schmolck caught this one.
5597
5601
5598 2002-06-27 Fernando Perez <fperez@colorado.edu>
5602 2002-06-27 Fernando Perez <fperez@colorado.edu>
5599
5603
5600 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5604 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5601 defined files at the cmd line. __name__ wasn't being set to
5605 defined files at the cmd line. __name__ wasn't being set to
5602 __main__.
5606 __main__.
5603
5607
5604 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5608 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5605 regular lists and tuples besides Numeric arrays.
5609 regular lists and tuples besides Numeric arrays.
5606
5610
5607 * IPython/Prompts.py (CachedOutput.__call__): Added output
5611 * IPython/Prompts.py (CachedOutput.__call__): Added output
5608 supression for input ending with ';'. Similar to Mathematica and
5612 supression for input ending with ';'. Similar to Mathematica and
5609 Matlab. The _* vars and Out[] list are still updated, just like
5613 Matlab. The _* vars and Out[] list are still updated, just like
5610 Mathematica behaves.
5614 Mathematica behaves.
5611
5615
5612 2002-06-25 Fernando Perez <fperez@colorado.edu>
5616 2002-06-25 Fernando Perez <fperez@colorado.edu>
5613
5617
5614 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5618 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5615 .ini extensions for profiels under Windows.
5619 .ini extensions for profiels under Windows.
5616
5620
5617 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5621 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5618 string form. Fix contributed by Alexander Schmolck
5622 string form. Fix contributed by Alexander Schmolck
5619 <a.schmolck-AT-gmx.net>
5623 <a.schmolck-AT-gmx.net>
5620
5624
5621 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5625 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5622 pre-configured Gnuplot instance.
5626 pre-configured Gnuplot instance.
5623
5627
5624 2002-06-21 Fernando Perez <fperez@colorado.edu>
5628 2002-06-21 Fernando Perez <fperez@colorado.edu>
5625
5629
5626 * IPython/numutils.py (exp_safe): new function, works around the
5630 * IPython/numutils.py (exp_safe): new function, works around the
5627 underflow problems in Numeric.
5631 underflow problems in Numeric.
5628 (log2): New fn. Safe log in base 2: returns exact integer answer
5632 (log2): New fn. Safe log in base 2: returns exact integer answer
5629 for exact integer powers of 2.
5633 for exact integer powers of 2.
5630
5634
5631 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5635 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5632 properly.
5636 properly.
5633
5637
5634 2002-06-20 Fernando Perez <fperez@colorado.edu>
5638 2002-06-20 Fernando Perez <fperez@colorado.edu>
5635
5639
5636 * IPython/genutils.py (timing): new function like
5640 * IPython/genutils.py (timing): new function like
5637 Mathematica's. Similar to time_test, but returns more info.
5641 Mathematica's. Similar to time_test, but returns more info.
5638
5642
5639 2002-06-18 Fernando Perez <fperez@colorado.edu>
5643 2002-06-18 Fernando Perez <fperez@colorado.edu>
5640
5644
5641 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5645 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5642 according to Mike Heeter's suggestions.
5646 according to Mike Heeter's suggestions.
5643
5647
5644 2002-06-16 Fernando Perez <fperez@colorado.edu>
5648 2002-06-16 Fernando Perez <fperez@colorado.edu>
5645
5649
5646 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5650 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5647 system. GnuplotMagic is gone as a user-directory option. New files
5651 system. GnuplotMagic is gone as a user-directory option. New files
5648 make it easier to use all the gnuplot stuff both from external
5652 make it easier to use all the gnuplot stuff both from external
5649 programs as well as from IPython. Had to rewrite part of
5653 programs as well as from IPython. Had to rewrite part of
5650 hardcopy() b/c of a strange bug: often the ps files simply don't
5654 hardcopy() b/c of a strange bug: often the ps files simply don't
5651 get created, and require a repeat of the command (often several
5655 get created, and require a repeat of the command (often several
5652 times).
5656 times).
5653
5657
5654 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5658 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5655 resolve output channel at call time, so that if sys.stderr has
5659 resolve output channel at call time, so that if sys.stderr has
5656 been redirected by user this gets honored.
5660 been redirected by user this gets honored.
5657
5661
5658 2002-06-13 Fernando Perez <fperez@colorado.edu>
5662 2002-06-13 Fernando Perez <fperez@colorado.edu>
5659
5663
5660 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5664 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5661 IPShell. Kept a copy with the old names to avoid breaking people's
5665 IPShell. Kept a copy with the old names to avoid breaking people's
5662 embedded code.
5666 embedded code.
5663
5667
5664 * IPython/ipython: simplified it to the bare minimum after
5668 * IPython/ipython: simplified it to the bare minimum after
5665 Holger's suggestions. Added info about how to use it in
5669 Holger's suggestions. Added info about how to use it in
5666 PYTHONSTARTUP.
5670 PYTHONSTARTUP.
5667
5671
5668 * IPython/Shell.py (IPythonShell): changed the options passing
5672 * IPython/Shell.py (IPythonShell): changed the options passing
5669 from a string with funky %s replacements to a straight list. Maybe
5673 from a string with funky %s replacements to a straight list. Maybe
5670 a bit more typing, but it follows sys.argv conventions, so there's
5674 a bit more typing, but it follows sys.argv conventions, so there's
5671 less special-casing to remember.
5675 less special-casing to remember.
5672
5676
5673 2002-06-12 Fernando Perez <fperez@colorado.edu>
5677 2002-06-12 Fernando Perez <fperez@colorado.edu>
5674
5678
5675 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5679 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5676 command. Thanks to a suggestion by Mike Heeter.
5680 command. Thanks to a suggestion by Mike Heeter.
5677 (Magic.magic_pfile): added behavior to look at filenames if given
5681 (Magic.magic_pfile): added behavior to look at filenames if given
5678 arg is not a defined object.
5682 arg is not a defined object.
5679 (Magic.magic_save): New @save function to save code snippets. Also
5683 (Magic.magic_save): New @save function to save code snippets. Also
5680 a Mike Heeter idea.
5684 a Mike Heeter idea.
5681
5685
5682 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5686 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5683 plot() and replot(). Much more convenient now, especially for
5687 plot() and replot(). Much more convenient now, especially for
5684 interactive use.
5688 interactive use.
5685
5689
5686 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5690 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5687 filenames.
5691 filenames.
5688
5692
5689 2002-06-02 Fernando Perez <fperez@colorado.edu>
5693 2002-06-02 Fernando Perez <fperez@colorado.edu>
5690
5694
5691 * IPython/Struct.py (Struct.__init__): modified to admit
5695 * IPython/Struct.py (Struct.__init__): modified to admit
5692 initialization via another struct.
5696 initialization via another struct.
5693
5697
5694 * IPython/genutils.py (SystemExec.__init__): New stateful
5698 * IPython/genutils.py (SystemExec.__init__): New stateful
5695 interface to xsys and bq. Useful for writing system scripts.
5699 interface to xsys and bq. Useful for writing system scripts.
5696
5700
5697 2002-05-30 Fernando Perez <fperez@colorado.edu>
5701 2002-05-30 Fernando Perez <fperez@colorado.edu>
5698
5702
5699 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5703 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5700 documents. This will make the user download smaller (it's getting
5704 documents. This will make the user download smaller (it's getting
5701 too big).
5705 too big).
5702
5706
5703 2002-05-29 Fernando Perez <fperez@colorado.edu>
5707 2002-05-29 Fernando Perez <fperez@colorado.edu>
5704
5708
5705 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5709 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5706 fix problems with shelve and pickle. Seems to work, but I don't
5710 fix problems with shelve and pickle. Seems to work, but I don't
5707 know if corner cases break it. Thanks to Mike Heeter
5711 know if corner cases break it. Thanks to Mike Heeter
5708 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5712 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5709
5713
5710 2002-05-24 Fernando Perez <fperez@colorado.edu>
5714 2002-05-24 Fernando Perez <fperez@colorado.edu>
5711
5715
5712 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5716 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5713 macros having broken.
5717 macros having broken.
5714
5718
5715 2002-05-21 Fernando Perez <fperez@colorado.edu>
5719 2002-05-21 Fernando Perez <fperez@colorado.edu>
5716
5720
5717 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5721 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5718 introduced logging bug: all history before logging started was
5722 introduced logging bug: all history before logging started was
5719 being written one character per line! This came from the redesign
5723 being written one character per line! This came from the redesign
5720 of the input history as a special list which slices to strings,
5724 of the input history as a special list which slices to strings,
5721 not to lists.
5725 not to lists.
5722
5726
5723 2002-05-20 Fernando Perez <fperez@colorado.edu>
5727 2002-05-20 Fernando Perez <fperez@colorado.edu>
5724
5728
5725 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5729 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5726 be an attribute of all classes in this module. The design of these
5730 be an attribute of all classes in this module. The design of these
5727 classes needs some serious overhauling.
5731 classes needs some serious overhauling.
5728
5732
5729 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5733 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5730 which was ignoring '_' in option names.
5734 which was ignoring '_' in option names.
5731
5735
5732 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5736 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5733 'Verbose_novars' to 'Context' and made it the new default. It's a
5737 'Verbose_novars' to 'Context' and made it the new default. It's a
5734 bit more readable and also safer than verbose.
5738 bit more readable and also safer than verbose.
5735
5739
5736 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5740 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5737 triple-quoted strings.
5741 triple-quoted strings.
5738
5742
5739 * IPython/OInspect.py (__all__): new module exposing the object
5743 * IPython/OInspect.py (__all__): new module exposing the object
5740 introspection facilities. Now the corresponding magics are dummy
5744 introspection facilities. Now the corresponding magics are dummy
5741 wrappers around this. Having this module will make it much easier
5745 wrappers around this. Having this module will make it much easier
5742 to put these functions into our modified pdb.
5746 to put these functions into our modified pdb.
5743 This new object inspector system uses the new colorizing module,
5747 This new object inspector system uses the new colorizing module,
5744 so source code and other things are nicely syntax highlighted.
5748 so source code and other things are nicely syntax highlighted.
5745
5749
5746 2002-05-18 Fernando Perez <fperez@colorado.edu>
5750 2002-05-18 Fernando Perez <fperez@colorado.edu>
5747
5751
5748 * IPython/ColorANSI.py: Split the coloring tools into a separate
5752 * IPython/ColorANSI.py: Split the coloring tools into a separate
5749 module so I can use them in other code easier (they were part of
5753 module so I can use them in other code easier (they were part of
5750 ultraTB).
5754 ultraTB).
5751
5755
5752 2002-05-17 Fernando Perez <fperez@colorado.edu>
5756 2002-05-17 Fernando Perez <fperez@colorado.edu>
5753
5757
5754 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5758 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5755 fixed it to set the global 'g' also to the called instance, as
5759 fixed it to set the global 'g' also to the called instance, as
5756 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5760 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5757 user's 'g' variables).
5761 user's 'g' variables).
5758
5762
5759 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5763 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5760 global variables (aliases to _ih,_oh) so that users which expect
5764 global variables (aliases to _ih,_oh) so that users which expect
5761 In[5] or Out[7] to work aren't unpleasantly surprised.
5765 In[5] or Out[7] to work aren't unpleasantly surprised.
5762 (InputList.__getslice__): new class to allow executing slices of
5766 (InputList.__getslice__): new class to allow executing slices of
5763 input history directly. Very simple class, complements the use of
5767 input history directly. Very simple class, complements the use of
5764 macros.
5768 macros.
5765
5769
5766 2002-05-16 Fernando Perez <fperez@colorado.edu>
5770 2002-05-16 Fernando Perez <fperez@colorado.edu>
5767
5771
5768 * setup.py (docdirbase): make doc directory be just doc/IPython
5772 * setup.py (docdirbase): make doc directory be just doc/IPython
5769 without version numbers, it will reduce clutter for users.
5773 without version numbers, it will reduce clutter for users.
5770
5774
5771 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5775 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5772 execfile call to prevent possible memory leak. See for details:
5776 execfile call to prevent possible memory leak. See for details:
5773 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5777 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5774
5778
5775 2002-05-15 Fernando Perez <fperez@colorado.edu>
5779 2002-05-15 Fernando Perez <fperez@colorado.edu>
5776
5780
5777 * IPython/Magic.py (Magic.magic_psource): made the object
5781 * IPython/Magic.py (Magic.magic_psource): made the object
5778 introspection names be more standard: pdoc, pdef, pfile and
5782 introspection names be more standard: pdoc, pdef, pfile and
5779 psource. They all print/page their output, and it makes
5783 psource. They all print/page their output, and it makes
5780 remembering them easier. Kept old names for compatibility as
5784 remembering them easier. Kept old names for compatibility as
5781 aliases.
5785 aliases.
5782
5786
5783 2002-05-14 Fernando Perez <fperez@colorado.edu>
5787 2002-05-14 Fernando Perez <fperez@colorado.edu>
5784
5788
5785 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5789 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5786 what the mouse problem was. The trick is to use gnuplot with temp
5790 what the mouse problem was. The trick is to use gnuplot with temp
5787 files and NOT with pipes (for data communication), because having
5791 files and NOT with pipes (for data communication), because having
5788 both pipes and the mouse on is bad news.
5792 both pipes and the mouse on is bad news.
5789
5793
5790 2002-05-13 Fernando Perez <fperez@colorado.edu>
5794 2002-05-13 Fernando Perez <fperez@colorado.edu>
5791
5795
5792 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5796 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5793 bug. Information would be reported about builtins even when
5797 bug. Information would be reported about builtins even when
5794 user-defined functions overrode them.
5798 user-defined functions overrode them.
5795
5799
5796 2002-05-11 Fernando Perez <fperez@colorado.edu>
5800 2002-05-11 Fernando Perez <fperez@colorado.edu>
5797
5801
5798 * IPython/__init__.py (__all__): removed FlexCompleter from
5802 * IPython/__init__.py (__all__): removed FlexCompleter from
5799 __all__ so that things don't fail in platforms without readline.
5803 __all__ so that things don't fail in platforms without readline.
5800
5804
5801 2002-05-10 Fernando Perez <fperez@colorado.edu>
5805 2002-05-10 Fernando Perez <fperez@colorado.edu>
5802
5806
5803 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5807 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5804 it requires Numeric, effectively making Numeric a dependency for
5808 it requires Numeric, effectively making Numeric a dependency for
5805 IPython.
5809 IPython.
5806
5810
5807 * Released 0.2.13
5811 * Released 0.2.13
5808
5812
5809 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5813 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5810 profiler interface. Now all the major options from the profiler
5814 profiler interface. Now all the major options from the profiler
5811 module are directly supported in IPython, both for single
5815 module are directly supported in IPython, both for single
5812 expressions (@prun) and for full programs (@run -p).
5816 expressions (@prun) and for full programs (@run -p).
5813
5817
5814 2002-05-09 Fernando Perez <fperez@colorado.edu>
5818 2002-05-09 Fernando Perez <fperez@colorado.edu>
5815
5819
5816 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5820 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5817 magic properly formatted for screen.
5821 magic properly formatted for screen.
5818
5822
5819 * setup.py (make_shortcut): Changed things to put pdf version in
5823 * setup.py (make_shortcut): Changed things to put pdf version in
5820 doc/ instead of doc/manual (had to change lyxport a bit).
5824 doc/ instead of doc/manual (had to change lyxport a bit).
5821
5825
5822 * IPython/Magic.py (Profile.string_stats): made profile runs go
5826 * IPython/Magic.py (Profile.string_stats): made profile runs go
5823 through pager (they are long and a pager allows searching, saving,
5827 through pager (they are long and a pager allows searching, saving,
5824 etc.)
5828 etc.)
5825
5829
5826 2002-05-08 Fernando Perez <fperez@colorado.edu>
5830 2002-05-08 Fernando Perez <fperez@colorado.edu>
5827
5831
5828 * Released 0.2.12
5832 * Released 0.2.12
5829
5833
5830 2002-05-06 Fernando Perez <fperez@colorado.edu>
5834 2002-05-06 Fernando Perez <fperez@colorado.edu>
5831
5835
5832 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5836 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5833 introduced); 'hist n1 n2' was broken.
5837 introduced); 'hist n1 n2' was broken.
5834 (Magic.magic_pdb): added optional on/off arguments to @pdb
5838 (Magic.magic_pdb): added optional on/off arguments to @pdb
5835 (Magic.magic_run): added option -i to @run, which executes code in
5839 (Magic.magic_run): added option -i to @run, which executes code in
5836 the IPython namespace instead of a clean one. Also added @irun as
5840 the IPython namespace instead of a clean one. Also added @irun as
5837 an alias to @run -i.
5841 an alias to @run -i.
5838
5842
5839 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5843 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5840 fixed (it didn't really do anything, the namespaces were wrong).
5844 fixed (it didn't really do anything, the namespaces were wrong).
5841
5845
5842 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5846 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5843
5847
5844 * IPython/__init__.py (__all__): Fixed package namespace, now
5848 * IPython/__init__.py (__all__): Fixed package namespace, now
5845 'import IPython' does give access to IPython.<all> as
5849 'import IPython' does give access to IPython.<all> as
5846 expected. Also renamed __release__ to Release.
5850 expected. Also renamed __release__ to Release.
5847
5851
5848 * IPython/Debugger.py (__license__): created new Pdb class which
5852 * IPython/Debugger.py (__license__): created new Pdb class which
5849 functions like a drop-in for the normal pdb.Pdb but does NOT
5853 functions like a drop-in for the normal pdb.Pdb but does NOT
5850 import readline by default. This way it doesn't muck up IPython's
5854 import readline by default. This way it doesn't muck up IPython's
5851 readline handling, and now tab-completion finally works in the
5855 readline handling, and now tab-completion finally works in the
5852 debugger -- sort of. It completes things globally visible, but the
5856 debugger -- sort of. It completes things globally visible, but the
5853 completer doesn't track the stack as pdb walks it. That's a bit
5857 completer doesn't track the stack as pdb walks it. That's a bit
5854 tricky, and I'll have to implement it later.
5858 tricky, and I'll have to implement it later.
5855
5859
5856 2002-05-05 Fernando Perez <fperez@colorado.edu>
5860 2002-05-05 Fernando Perez <fperez@colorado.edu>
5857
5861
5858 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5862 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5859 magic docstrings when printed via ? (explicit \'s were being
5863 magic docstrings when printed via ? (explicit \'s were being
5860 printed).
5864 printed).
5861
5865
5862 * IPython/ipmaker.py (make_IPython): fixed namespace
5866 * IPython/ipmaker.py (make_IPython): fixed namespace
5863 identification bug. Now variables loaded via logs or command-line
5867 identification bug. Now variables loaded via logs or command-line
5864 files are recognized in the interactive namespace by @who.
5868 files are recognized in the interactive namespace by @who.
5865
5869
5866 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5870 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5867 log replay system stemming from the string form of Structs.
5871 log replay system stemming from the string form of Structs.
5868
5872
5869 * IPython/Magic.py (Macro.__init__): improved macros to properly
5873 * IPython/Magic.py (Macro.__init__): improved macros to properly
5870 handle magic commands in them.
5874 handle magic commands in them.
5871 (Magic.magic_logstart): usernames are now expanded so 'logstart
5875 (Magic.magic_logstart): usernames are now expanded so 'logstart
5872 ~/mylog' now works.
5876 ~/mylog' now works.
5873
5877
5874 * IPython/iplib.py (complete): fixed bug where paths starting with
5878 * IPython/iplib.py (complete): fixed bug where paths starting with
5875 '/' would be completed as magic names.
5879 '/' would be completed as magic names.
5876
5880
5877 2002-05-04 Fernando Perez <fperez@colorado.edu>
5881 2002-05-04 Fernando Perez <fperez@colorado.edu>
5878
5882
5879 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5883 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5880 allow running full programs under the profiler's control.
5884 allow running full programs under the profiler's control.
5881
5885
5882 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5886 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5883 mode to report exceptions verbosely but without formatting
5887 mode to report exceptions verbosely but without formatting
5884 variables. This addresses the issue of ipython 'freezing' (it's
5888 variables. This addresses the issue of ipython 'freezing' (it's
5885 not frozen, but caught in an expensive formatting loop) when huge
5889 not frozen, but caught in an expensive formatting loop) when huge
5886 variables are in the context of an exception.
5890 variables are in the context of an exception.
5887 (VerboseTB.text): Added '--->' markers at line where exception was
5891 (VerboseTB.text): Added '--->' markers at line where exception was
5888 triggered. Much clearer to read, especially in NoColor modes.
5892 triggered. Much clearer to read, especially in NoColor modes.
5889
5893
5890 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5894 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5891 implemented in reverse when changing to the new parse_options().
5895 implemented in reverse when changing to the new parse_options().
5892
5896
5893 2002-05-03 Fernando Perez <fperez@colorado.edu>
5897 2002-05-03 Fernando Perez <fperez@colorado.edu>
5894
5898
5895 * IPython/Magic.py (Magic.parse_options): new function so that
5899 * IPython/Magic.py (Magic.parse_options): new function so that
5896 magics can parse options easier.
5900 magics can parse options easier.
5897 (Magic.magic_prun): new function similar to profile.run(),
5901 (Magic.magic_prun): new function similar to profile.run(),
5898 suggested by Chris Hart.
5902 suggested by Chris Hart.
5899 (Magic.magic_cd): fixed behavior so that it only changes if
5903 (Magic.magic_cd): fixed behavior so that it only changes if
5900 directory actually is in history.
5904 directory actually is in history.
5901
5905
5902 * IPython/usage.py (__doc__): added information about potential
5906 * IPython/usage.py (__doc__): added information about potential
5903 slowness of Verbose exception mode when there are huge data
5907 slowness of Verbose exception mode when there are huge data
5904 structures to be formatted (thanks to Archie Paulson).
5908 structures to be formatted (thanks to Archie Paulson).
5905
5909
5906 * IPython/ipmaker.py (make_IPython): Changed default logging
5910 * IPython/ipmaker.py (make_IPython): Changed default logging
5907 (when simply called with -log) to use curr_dir/ipython.log in
5911 (when simply called with -log) to use curr_dir/ipython.log in
5908 rotate mode. Fixed crash which was occuring with -log before
5912 rotate mode. Fixed crash which was occuring with -log before
5909 (thanks to Jim Boyle).
5913 (thanks to Jim Boyle).
5910
5914
5911 2002-05-01 Fernando Perez <fperez@colorado.edu>
5915 2002-05-01 Fernando Perez <fperez@colorado.edu>
5912
5916
5913 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5917 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5914 was nasty -- though somewhat of a corner case).
5918 was nasty -- though somewhat of a corner case).
5915
5919
5916 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5920 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5917 text (was a bug).
5921 text (was a bug).
5918
5922
5919 2002-04-30 Fernando Perez <fperez@colorado.edu>
5923 2002-04-30 Fernando Perez <fperez@colorado.edu>
5920
5924
5921 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5925 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5922 a print after ^D or ^C from the user so that the In[] prompt
5926 a print after ^D or ^C from the user so that the In[] prompt
5923 doesn't over-run the gnuplot one.
5927 doesn't over-run the gnuplot one.
5924
5928
5925 2002-04-29 Fernando Perez <fperez@colorado.edu>
5929 2002-04-29 Fernando Perez <fperez@colorado.edu>
5926
5930
5927 * Released 0.2.10
5931 * Released 0.2.10
5928
5932
5929 * IPython/__release__.py (version): get date dynamically.
5933 * IPython/__release__.py (version): get date dynamically.
5930
5934
5931 * Misc. documentation updates thanks to Arnd's comments. Also ran
5935 * Misc. documentation updates thanks to Arnd's comments. Also ran
5932 a full spellcheck on the manual (hadn't been done in a while).
5936 a full spellcheck on the manual (hadn't been done in a while).
5933
5937
5934 2002-04-27 Fernando Perez <fperez@colorado.edu>
5938 2002-04-27 Fernando Perez <fperez@colorado.edu>
5935
5939
5936 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5940 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5937 starting a log in mid-session would reset the input history list.
5941 starting a log in mid-session would reset the input history list.
5938
5942
5939 2002-04-26 Fernando Perez <fperez@colorado.edu>
5943 2002-04-26 Fernando Perez <fperez@colorado.edu>
5940
5944
5941 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5945 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5942 all files were being included in an update. Now anything in
5946 all files were being included in an update. Now anything in
5943 UserConfig that matches [A-Za-z]*.py will go (this excludes
5947 UserConfig that matches [A-Za-z]*.py will go (this excludes
5944 __init__.py)
5948 __init__.py)
5945
5949
5946 2002-04-25 Fernando Perez <fperez@colorado.edu>
5950 2002-04-25 Fernando Perez <fperez@colorado.edu>
5947
5951
5948 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5952 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5949 to __builtins__ so that any form of embedded or imported code can
5953 to __builtins__ so that any form of embedded or imported code can
5950 test for being inside IPython.
5954 test for being inside IPython.
5951
5955
5952 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5956 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5953 changed to GnuplotMagic because it's now an importable module,
5957 changed to GnuplotMagic because it's now an importable module,
5954 this makes the name follow that of the standard Gnuplot module.
5958 this makes the name follow that of the standard Gnuplot module.
5955 GnuplotMagic can now be loaded at any time in mid-session.
5959 GnuplotMagic can now be loaded at any time in mid-session.
5956
5960
5957 2002-04-24 Fernando Perez <fperez@colorado.edu>
5961 2002-04-24 Fernando Perez <fperez@colorado.edu>
5958
5962
5959 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5963 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5960 the globals (IPython has its own namespace) and the
5964 the globals (IPython has its own namespace) and the
5961 PhysicalQuantity stuff is much better anyway.
5965 PhysicalQuantity stuff is much better anyway.
5962
5966
5963 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5967 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5964 embedding example to standard user directory for
5968 embedding example to standard user directory for
5965 distribution. Also put it in the manual.
5969 distribution. Also put it in the manual.
5966
5970
5967 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5971 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5968 instance as first argument (so it doesn't rely on some obscure
5972 instance as first argument (so it doesn't rely on some obscure
5969 hidden global).
5973 hidden global).
5970
5974
5971 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5975 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5972 delimiters. While it prevents ().TAB from working, it allows
5976 delimiters. While it prevents ().TAB from working, it allows
5973 completions in open (... expressions. This is by far a more common
5977 completions in open (... expressions. This is by far a more common
5974 case.
5978 case.
5975
5979
5976 2002-04-23 Fernando Perez <fperez@colorado.edu>
5980 2002-04-23 Fernando Perez <fperez@colorado.edu>
5977
5981
5978 * IPython/Extensions/InterpreterPasteInput.py: new
5982 * IPython/Extensions/InterpreterPasteInput.py: new
5979 syntax-processing module for pasting lines with >>> or ... at the
5983 syntax-processing module for pasting lines with >>> or ... at the
5980 start.
5984 start.
5981
5985
5982 * IPython/Extensions/PhysicalQ_Interactive.py
5986 * IPython/Extensions/PhysicalQ_Interactive.py
5983 (PhysicalQuantityInteractive.__int__): fixed to work with either
5987 (PhysicalQuantityInteractive.__int__): fixed to work with either
5984 Numeric or math.
5988 Numeric or math.
5985
5989
5986 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5990 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5987 provided profiles. Now we have:
5991 provided profiles. Now we have:
5988 -math -> math module as * and cmath with its own namespace.
5992 -math -> math module as * and cmath with its own namespace.
5989 -numeric -> Numeric as *, plus gnuplot & grace
5993 -numeric -> Numeric as *, plus gnuplot & grace
5990 -physics -> same as before
5994 -physics -> same as before
5991
5995
5992 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5996 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5993 user-defined magics wouldn't be found by @magic if they were
5997 user-defined magics wouldn't be found by @magic if they were
5994 defined as class methods. Also cleaned up the namespace search
5998 defined as class methods. Also cleaned up the namespace search
5995 logic and the string building (to use %s instead of many repeated
5999 logic and the string building (to use %s instead of many repeated
5996 string adds).
6000 string adds).
5997
6001
5998 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6002 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5999 of user-defined magics to operate with class methods (cleaner, in
6003 of user-defined magics to operate with class methods (cleaner, in
6000 line with the gnuplot code).
6004 line with the gnuplot code).
6001
6005
6002 2002-04-22 Fernando Perez <fperez@colorado.edu>
6006 2002-04-22 Fernando Perez <fperez@colorado.edu>
6003
6007
6004 * setup.py: updated dependency list so that manual is updated when
6008 * setup.py: updated dependency list so that manual is updated when
6005 all included files change.
6009 all included files change.
6006
6010
6007 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6011 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6008 the delimiter removal option (the fix is ugly right now).
6012 the delimiter removal option (the fix is ugly right now).
6009
6013
6010 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6014 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6011 all of the math profile (quicker loading, no conflict between
6015 all of the math profile (quicker loading, no conflict between
6012 g-9.8 and g-gnuplot).
6016 g-9.8 and g-gnuplot).
6013
6017
6014 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6018 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6015 name of post-mortem files to IPython_crash_report.txt.
6019 name of post-mortem files to IPython_crash_report.txt.
6016
6020
6017 * Cleanup/update of the docs. Added all the new readline info and
6021 * Cleanup/update of the docs. Added all the new readline info and
6018 formatted all lists as 'real lists'.
6022 formatted all lists as 'real lists'.
6019
6023
6020 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6024 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6021 tab-completion options, since the full readline parse_and_bind is
6025 tab-completion options, since the full readline parse_and_bind is
6022 now accessible.
6026 now accessible.
6023
6027
6024 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6028 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6025 handling of readline options. Now users can specify any string to
6029 handling of readline options. Now users can specify any string to
6026 be passed to parse_and_bind(), as well as the delimiters to be
6030 be passed to parse_and_bind(), as well as the delimiters to be
6027 removed.
6031 removed.
6028 (InteractiveShell.__init__): Added __name__ to the global
6032 (InteractiveShell.__init__): Added __name__ to the global
6029 namespace so that things like Itpl which rely on its existence
6033 namespace so that things like Itpl which rely on its existence
6030 don't crash.
6034 don't crash.
6031 (InteractiveShell._prefilter): Defined the default with a _ so
6035 (InteractiveShell._prefilter): Defined the default with a _ so
6032 that prefilter() is easier to override, while the default one
6036 that prefilter() is easier to override, while the default one
6033 remains available.
6037 remains available.
6034
6038
6035 2002-04-18 Fernando Perez <fperez@colorado.edu>
6039 2002-04-18 Fernando Perez <fperez@colorado.edu>
6036
6040
6037 * Added information about pdb in the docs.
6041 * Added information about pdb in the docs.
6038
6042
6039 2002-04-17 Fernando Perez <fperez@colorado.edu>
6043 2002-04-17 Fernando Perez <fperez@colorado.edu>
6040
6044
6041 * IPython/ipmaker.py (make_IPython): added rc_override option to
6045 * IPython/ipmaker.py (make_IPython): added rc_override option to
6042 allow passing config options at creation time which may override
6046 allow passing config options at creation time which may override
6043 anything set in the config files or command line. This is
6047 anything set in the config files or command line. This is
6044 particularly useful for configuring embedded instances.
6048 particularly useful for configuring embedded instances.
6045
6049
6046 2002-04-15 Fernando Perez <fperez@colorado.edu>
6050 2002-04-15 Fernando Perez <fperez@colorado.edu>
6047
6051
6048 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6052 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6049 crash embedded instances because of the input cache falling out of
6053 crash embedded instances because of the input cache falling out of
6050 sync with the output counter.
6054 sync with the output counter.
6051
6055
6052 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6056 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6053 mode which calls pdb after an uncaught exception in IPython itself.
6057 mode which calls pdb after an uncaught exception in IPython itself.
6054
6058
6055 2002-04-14 Fernando Perez <fperez@colorado.edu>
6059 2002-04-14 Fernando Perez <fperez@colorado.edu>
6056
6060
6057 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6061 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6058 readline, fix it back after each call.
6062 readline, fix it back after each call.
6059
6063
6060 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6064 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6061 method to force all access via __call__(), which guarantees that
6065 method to force all access via __call__(), which guarantees that
6062 traceback references are properly deleted.
6066 traceback references are properly deleted.
6063
6067
6064 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6068 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6065 improve printing when pprint is in use.
6069 improve printing when pprint is in use.
6066
6070
6067 2002-04-13 Fernando Perez <fperez@colorado.edu>
6071 2002-04-13 Fernando Perez <fperez@colorado.edu>
6068
6072
6069 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6073 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6070 exceptions aren't caught anymore. If the user triggers one, he
6074 exceptions aren't caught anymore. If the user triggers one, he
6071 should know why he's doing it and it should go all the way up,
6075 should know why he's doing it and it should go all the way up,
6072 just like any other exception. So now @abort will fully kill the
6076 just like any other exception. So now @abort will fully kill the
6073 embedded interpreter and the embedding code (unless that happens
6077 embedded interpreter and the embedding code (unless that happens
6074 to catch SystemExit).
6078 to catch SystemExit).
6075
6079
6076 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6080 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6077 and a debugger() method to invoke the interactive pdb debugger
6081 and a debugger() method to invoke the interactive pdb debugger
6078 after printing exception information. Also added the corresponding
6082 after printing exception information. Also added the corresponding
6079 -pdb option and @pdb magic to control this feature, and updated
6083 -pdb option and @pdb magic to control this feature, and updated
6080 the docs. After a suggestion from Christopher Hart
6084 the docs. After a suggestion from Christopher Hart
6081 (hart-AT-caltech.edu).
6085 (hart-AT-caltech.edu).
6082
6086
6083 2002-04-12 Fernando Perez <fperez@colorado.edu>
6087 2002-04-12 Fernando Perez <fperez@colorado.edu>
6084
6088
6085 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6089 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6086 the exception handlers defined by the user (not the CrashHandler)
6090 the exception handlers defined by the user (not the CrashHandler)
6087 so that user exceptions don't trigger an ipython bug report.
6091 so that user exceptions don't trigger an ipython bug report.
6088
6092
6089 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6093 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6090 configurable (it should have always been so).
6094 configurable (it should have always been so).
6091
6095
6092 2002-03-26 Fernando Perez <fperez@colorado.edu>
6096 2002-03-26 Fernando Perez <fperez@colorado.edu>
6093
6097
6094 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6098 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6095 and there to fix embedding namespace issues. This should all be
6099 and there to fix embedding namespace issues. This should all be
6096 done in a more elegant way.
6100 done in a more elegant way.
6097
6101
6098 2002-03-25 Fernando Perez <fperez@colorado.edu>
6102 2002-03-25 Fernando Perez <fperez@colorado.edu>
6099
6103
6100 * IPython/genutils.py (get_home_dir): Try to make it work under
6104 * IPython/genutils.py (get_home_dir): Try to make it work under
6101 win9x also.
6105 win9x also.
6102
6106
6103 2002-03-20 Fernando Perez <fperez@colorado.edu>
6107 2002-03-20 Fernando Perez <fperez@colorado.edu>
6104
6108
6105 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6109 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6106 sys.displayhook untouched upon __init__.
6110 sys.displayhook untouched upon __init__.
6107
6111
6108 2002-03-19 Fernando Perez <fperez@colorado.edu>
6112 2002-03-19 Fernando Perez <fperez@colorado.edu>
6109
6113
6110 * Released 0.2.9 (for embedding bug, basically).
6114 * Released 0.2.9 (for embedding bug, basically).
6111
6115
6112 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6116 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6113 exceptions so that enclosing shell's state can be restored.
6117 exceptions so that enclosing shell's state can be restored.
6114
6118
6115 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6119 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6116 naming conventions in the .ipython/ dir.
6120 naming conventions in the .ipython/ dir.
6117
6121
6118 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6122 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6119 from delimiters list so filenames with - in them get expanded.
6123 from delimiters list so filenames with - in them get expanded.
6120
6124
6121 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6125 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6122 sys.displayhook not being properly restored after an embedded call.
6126 sys.displayhook not being properly restored after an embedded call.
6123
6127
6124 2002-03-18 Fernando Perez <fperez@colorado.edu>
6128 2002-03-18 Fernando Perez <fperez@colorado.edu>
6125
6129
6126 * Released 0.2.8
6130 * Released 0.2.8
6127
6131
6128 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6132 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6129 some files weren't being included in a -upgrade.
6133 some files weren't being included in a -upgrade.
6130 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6134 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6131 on' so that the first tab completes.
6135 on' so that the first tab completes.
6132 (InteractiveShell.handle_magic): fixed bug with spaces around
6136 (InteractiveShell.handle_magic): fixed bug with spaces around
6133 quotes breaking many magic commands.
6137 quotes breaking many magic commands.
6134
6138
6135 * setup.py: added note about ignoring the syntax error messages at
6139 * setup.py: added note about ignoring the syntax error messages at
6136 installation.
6140 installation.
6137
6141
6138 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6142 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6139 streamlining the gnuplot interface, now there's only one magic @gp.
6143 streamlining the gnuplot interface, now there's only one magic @gp.
6140
6144
6141 2002-03-17 Fernando Perez <fperez@colorado.edu>
6145 2002-03-17 Fernando Perez <fperez@colorado.edu>
6142
6146
6143 * IPython/UserConfig/magic_gnuplot.py: new name for the
6147 * IPython/UserConfig/magic_gnuplot.py: new name for the
6144 example-magic_pm.py file. Much enhanced system, now with a shell
6148 example-magic_pm.py file. Much enhanced system, now with a shell
6145 for communicating directly with gnuplot, one command at a time.
6149 for communicating directly with gnuplot, one command at a time.
6146
6150
6147 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6151 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6148 setting __name__=='__main__'.
6152 setting __name__=='__main__'.
6149
6153
6150 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6154 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6151 mini-shell for accessing gnuplot from inside ipython. Should
6155 mini-shell for accessing gnuplot from inside ipython. Should
6152 extend it later for grace access too. Inspired by Arnd's
6156 extend it later for grace access too. Inspired by Arnd's
6153 suggestion.
6157 suggestion.
6154
6158
6155 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6159 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6156 calling magic functions with () in their arguments. Thanks to Arnd
6160 calling magic functions with () in their arguments. Thanks to Arnd
6157 Baecker for pointing this to me.
6161 Baecker for pointing this to me.
6158
6162
6159 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6163 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6160 infinitely for integer or complex arrays (only worked with floats).
6164 infinitely for integer or complex arrays (only worked with floats).
6161
6165
6162 2002-03-16 Fernando Perez <fperez@colorado.edu>
6166 2002-03-16 Fernando Perez <fperez@colorado.edu>
6163
6167
6164 * setup.py: Merged setup and setup_windows into a single script
6168 * setup.py: Merged setup and setup_windows into a single script
6165 which properly handles things for windows users.
6169 which properly handles things for windows users.
6166
6170
6167 2002-03-15 Fernando Perez <fperez@colorado.edu>
6171 2002-03-15 Fernando Perez <fperez@colorado.edu>
6168
6172
6169 * Big change to the manual: now the magics are all automatically
6173 * Big change to the manual: now the magics are all automatically
6170 documented. This information is generated from their docstrings
6174 documented. This information is generated from their docstrings
6171 and put in a latex file included by the manual lyx file. This way
6175 and put in a latex file included by the manual lyx file. This way
6172 we get always up to date information for the magics. The manual
6176 we get always up to date information for the magics. The manual
6173 now also has proper version information, also auto-synced.
6177 now also has proper version information, also auto-synced.
6174
6178
6175 For this to work, an undocumented --magic_docstrings option was added.
6179 For this to work, an undocumented --magic_docstrings option was added.
6176
6180
6177 2002-03-13 Fernando Perez <fperez@colorado.edu>
6181 2002-03-13 Fernando Perez <fperez@colorado.edu>
6178
6182
6179 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6183 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6180 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6184 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6181
6185
6182 2002-03-12 Fernando Perez <fperez@colorado.edu>
6186 2002-03-12 Fernando Perez <fperez@colorado.edu>
6183
6187
6184 * IPython/ultraTB.py (TermColors): changed color escapes again to
6188 * IPython/ultraTB.py (TermColors): changed color escapes again to
6185 fix the (old, reintroduced) line-wrapping bug. Basically, if
6189 fix the (old, reintroduced) line-wrapping bug. Basically, if
6186 \001..\002 aren't given in the color escapes, lines get wrapped
6190 \001..\002 aren't given in the color escapes, lines get wrapped
6187 weirdly. But giving those screws up old xterms and emacs terms. So
6191 weirdly. But giving those screws up old xterms and emacs terms. So
6188 I added some logic for emacs terms to be ok, but I can't identify old
6192 I added some logic for emacs terms to be ok, but I can't identify old
6189 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6193 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6190
6194
6191 2002-03-10 Fernando Perez <fperez@colorado.edu>
6195 2002-03-10 Fernando Perez <fperez@colorado.edu>
6192
6196
6193 * IPython/usage.py (__doc__): Various documentation cleanups and
6197 * IPython/usage.py (__doc__): Various documentation cleanups and
6194 updates, both in usage docstrings and in the manual.
6198 updates, both in usage docstrings and in the manual.
6195
6199
6196 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6200 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6197 handling of caching. Set minimum acceptabe value for having a
6201 handling of caching. Set minimum acceptabe value for having a
6198 cache at 20 values.
6202 cache at 20 values.
6199
6203
6200 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6204 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6201 install_first_time function to a method, renamed it and added an
6205 install_first_time function to a method, renamed it and added an
6202 'upgrade' mode. Now people can update their config directory with
6206 'upgrade' mode. Now people can update their config directory with
6203 a simple command line switch (-upgrade, also new).
6207 a simple command line switch (-upgrade, also new).
6204
6208
6205 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6209 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6206 @file (convenient for automagic users under Python >= 2.2).
6210 @file (convenient for automagic users under Python >= 2.2).
6207 Removed @files (it seemed more like a plural than an abbrev. of
6211 Removed @files (it seemed more like a plural than an abbrev. of
6208 'file show').
6212 'file show').
6209
6213
6210 * IPython/iplib.py (install_first_time): Fixed crash if there were
6214 * IPython/iplib.py (install_first_time): Fixed crash if there were
6211 backup files ('~') in .ipython/ install directory.
6215 backup files ('~') in .ipython/ install directory.
6212
6216
6213 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6217 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6214 system. Things look fine, but these changes are fairly
6218 system. Things look fine, but these changes are fairly
6215 intrusive. Test them for a few days.
6219 intrusive. Test them for a few days.
6216
6220
6217 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6221 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6218 the prompts system. Now all in/out prompt strings are user
6222 the prompts system. Now all in/out prompt strings are user
6219 controllable. This is particularly useful for embedding, as one
6223 controllable. This is particularly useful for embedding, as one
6220 can tag embedded instances with particular prompts.
6224 can tag embedded instances with particular prompts.
6221
6225
6222 Also removed global use of sys.ps1/2, which now allows nested
6226 Also removed global use of sys.ps1/2, which now allows nested
6223 embeddings without any problems. Added command-line options for
6227 embeddings without any problems. Added command-line options for
6224 the prompt strings.
6228 the prompt strings.
6225
6229
6226 2002-03-08 Fernando Perez <fperez@colorado.edu>
6230 2002-03-08 Fernando Perez <fperez@colorado.edu>
6227
6231
6228 * IPython/UserConfig/example-embed-short.py (ipshell): added
6232 * IPython/UserConfig/example-embed-short.py (ipshell): added
6229 example file with the bare minimum code for embedding.
6233 example file with the bare minimum code for embedding.
6230
6234
6231 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6235 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6232 functionality for the embeddable shell to be activated/deactivated
6236 functionality for the embeddable shell to be activated/deactivated
6233 either globally or at each call.
6237 either globally or at each call.
6234
6238
6235 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6239 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6236 rewriting the prompt with '--->' for auto-inputs with proper
6240 rewriting the prompt with '--->' for auto-inputs with proper
6237 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6241 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6238 this is handled by the prompts class itself, as it should.
6242 this is handled by the prompts class itself, as it should.
6239
6243
6240 2002-03-05 Fernando Perez <fperez@colorado.edu>
6244 2002-03-05 Fernando Perez <fperez@colorado.edu>
6241
6245
6242 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6246 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6243 @logstart to avoid name clashes with the math log function.
6247 @logstart to avoid name clashes with the math log function.
6244
6248
6245 * Big updates to X/Emacs section of the manual.
6249 * Big updates to X/Emacs section of the manual.
6246
6250
6247 * Removed ipython_emacs. Milan explained to me how to pass
6251 * Removed ipython_emacs. Milan explained to me how to pass
6248 arguments to ipython through Emacs. Some day I'm going to end up
6252 arguments to ipython through Emacs. Some day I'm going to end up
6249 learning some lisp...
6253 learning some lisp...
6250
6254
6251 2002-03-04 Fernando Perez <fperez@colorado.edu>
6255 2002-03-04 Fernando Perez <fperez@colorado.edu>
6252
6256
6253 * IPython/ipython_emacs: Created script to be used as the
6257 * IPython/ipython_emacs: Created script to be used as the
6254 py-python-command Emacs variable so we can pass IPython
6258 py-python-command Emacs variable so we can pass IPython
6255 parameters. I can't figure out how to tell Emacs directly to pass
6259 parameters. I can't figure out how to tell Emacs directly to pass
6256 parameters to IPython, so a dummy shell script will do it.
6260 parameters to IPython, so a dummy shell script will do it.
6257
6261
6258 Other enhancements made for things to work better under Emacs'
6262 Other enhancements made for things to work better under Emacs'
6259 various types of terminals. Many thanks to Milan Zamazal
6263 various types of terminals. Many thanks to Milan Zamazal
6260 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6264 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6261
6265
6262 2002-03-01 Fernando Perez <fperez@colorado.edu>
6266 2002-03-01 Fernando Perez <fperez@colorado.edu>
6263
6267
6264 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6268 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6265 that loading of readline is now optional. This gives better
6269 that loading of readline is now optional. This gives better
6266 control to emacs users.
6270 control to emacs users.
6267
6271
6268 * IPython/ultraTB.py (__date__): Modified color escape sequences
6272 * IPython/ultraTB.py (__date__): Modified color escape sequences
6269 and now things work fine under xterm and in Emacs' term buffers
6273 and now things work fine under xterm and in Emacs' term buffers
6270 (though not shell ones). Well, in emacs you get colors, but all
6274 (though not shell ones). Well, in emacs you get colors, but all
6271 seem to be 'light' colors (no difference between dark and light
6275 seem to be 'light' colors (no difference between dark and light
6272 ones). But the garbage chars are gone, and also in xterms. It
6276 ones). But the garbage chars are gone, and also in xterms. It
6273 seems that now I'm using 'cleaner' ansi sequences.
6277 seems that now I'm using 'cleaner' ansi sequences.
6274
6278
6275 2002-02-21 Fernando Perez <fperez@colorado.edu>
6279 2002-02-21 Fernando Perez <fperez@colorado.edu>
6276
6280
6277 * Released 0.2.7 (mainly to publish the scoping fix).
6281 * Released 0.2.7 (mainly to publish the scoping fix).
6278
6282
6279 * IPython/Logger.py (Logger.logstate): added. A corresponding
6283 * IPython/Logger.py (Logger.logstate): added. A corresponding
6280 @logstate magic was created.
6284 @logstate magic was created.
6281
6285
6282 * IPython/Magic.py: fixed nested scoping problem under Python
6286 * IPython/Magic.py: fixed nested scoping problem under Python
6283 2.1.x (automagic wasn't working).
6287 2.1.x (automagic wasn't working).
6284
6288
6285 2002-02-20 Fernando Perez <fperez@colorado.edu>
6289 2002-02-20 Fernando Perez <fperez@colorado.edu>
6286
6290
6287 * Released 0.2.6.
6291 * Released 0.2.6.
6288
6292
6289 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6293 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6290 option so that logs can come out without any headers at all.
6294 option so that logs can come out without any headers at all.
6291
6295
6292 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6296 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6293 SciPy.
6297 SciPy.
6294
6298
6295 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6299 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6296 that embedded IPython calls don't require vars() to be explicitly
6300 that embedded IPython calls don't require vars() to be explicitly
6297 passed. Now they are extracted from the caller's frame (code
6301 passed. Now they are extracted from the caller's frame (code
6298 snatched from Eric Jones' weave). Added better documentation to
6302 snatched from Eric Jones' weave). Added better documentation to
6299 the section on embedding and the example file.
6303 the section on embedding and the example file.
6300
6304
6301 * IPython/genutils.py (page): Changed so that under emacs, it just
6305 * IPython/genutils.py (page): Changed so that under emacs, it just
6302 prints the string. You can then page up and down in the emacs
6306 prints the string. You can then page up and down in the emacs
6303 buffer itself. This is how the builtin help() works.
6307 buffer itself. This is how the builtin help() works.
6304
6308
6305 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6309 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6306 macro scoping: macros need to be executed in the user's namespace
6310 macro scoping: macros need to be executed in the user's namespace
6307 to work as if they had been typed by the user.
6311 to work as if they had been typed by the user.
6308
6312
6309 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6313 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6310 execute automatically (no need to type 'exec...'). They then
6314 execute automatically (no need to type 'exec...'). They then
6311 behave like 'true macros'. The printing system was also modified
6315 behave like 'true macros'. The printing system was also modified
6312 for this to work.
6316 for this to work.
6313
6317
6314 2002-02-19 Fernando Perez <fperez@colorado.edu>
6318 2002-02-19 Fernando Perez <fperez@colorado.edu>
6315
6319
6316 * IPython/genutils.py (page_file): new function for paging files
6320 * IPython/genutils.py (page_file): new function for paging files
6317 in an OS-independent way. Also necessary for file viewing to work
6321 in an OS-independent way. Also necessary for file viewing to work
6318 well inside Emacs buffers.
6322 well inside Emacs buffers.
6319 (page): Added checks for being in an emacs buffer.
6323 (page): Added checks for being in an emacs buffer.
6320 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6324 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6321 same bug in iplib.
6325 same bug in iplib.
6322
6326
6323 2002-02-18 Fernando Perez <fperez@colorado.edu>
6327 2002-02-18 Fernando Perez <fperez@colorado.edu>
6324
6328
6325 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6329 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6326 of readline so that IPython can work inside an Emacs buffer.
6330 of readline so that IPython can work inside an Emacs buffer.
6327
6331
6328 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6332 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6329 method signatures (they weren't really bugs, but it looks cleaner
6333 method signatures (they weren't really bugs, but it looks cleaner
6330 and keeps PyChecker happy).
6334 and keeps PyChecker happy).
6331
6335
6332 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6336 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6333 for implementing various user-defined hooks. Currently only
6337 for implementing various user-defined hooks. Currently only
6334 display is done.
6338 display is done.
6335
6339
6336 * IPython/Prompts.py (CachedOutput._display): changed display
6340 * IPython/Prompts.py (CachedOutput._display): changed display
6337 functions so that they can be dynamically changed by users easily.
6341 functions so that they can be dynamically changed by users easily.
6338
6342
6339 * IPython/Extensions/numeric_formats.py (num_display): added an
6343 * IPython/Extensions/numeric_formats.py (num_display): added an
6340 extension for printing NumPy arrays in flexible manners. It
6344 extension for printing NumPy arrays in flexible manners. It
6341 doesn't do anything yet, but all the structure is in
6345 doesn't do anything yet, but all the structure is in
6342 place. Ultimately the plan is to implement output format control
6346 place. Ultimately the plan is to implement output format control
6343 like in Octave.
6347 like in Octave.
6344
6348
6345 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6349 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6346 methods are found at run-time by all the automatic machinery.
6350 methods are found at run-time by all the automatic machinery.
6347
6351
6348 2002-02-17 Fernando Perez <fperez@colorado.edu>
6352 2002-02-17 Fernando Perez <fperez@colorado.edu>
6349
6353
6350 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6354 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6351 whole file a little.
6355 whole file a little.
6352
6356
6353 * ToDo: closed this document. Now there's a new_design.lyx
6357 * ToDo: closed this document. Now there's a new_design.lyx
6354 document for all new ideas. Added making a pdf of it for the
6358 document for all new ideas. Added making a pdf of it for the
6355 end-user distro.
6359 end-user distro.
6356
6360
6357 * IPython/Logger.py (Logger.switch_log): Created this to replace
6361 * IPython/Logger.py (Logger.switch_log): Created this to replace
6358 logon() and logoff(). It also fixes a nasty crash reported by
6362 logon() and logoff(). It also fixes a nasty crash reported by
6359 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6363 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6360
6364
6361 * IPython/iplib.py (complete): got auto-completion to work with
6365 * IPython/iplib.py (complete): got auto-completion to work with
6362 automagic (I had wanted this for a long time).
6366 automagic (I had wanted this for a long time).
6363
6367
6364 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6368 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6365 to @file, since file() is now a builtin and clashes with automagic
6369 to @file, since file() is now a builtin and clashes with automagic
6366 for @file.
6370 for @file.
6367
6371
6368 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6372 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6369 of this was previously in iplib, which had grown to more than 2000
6373 of this was previously in iplib, which had grown to more than 2000
6370 lines, way too long. No new functionality, but it makes managing
6374 lines, way too long. No new functionality, but it makes managing
6371 the code a bit easier.
6375 the code a bit easier.
6372
6376
6373 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6377 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6374 information to crash reports.
6378 information to crash reports.
6375
6379
6376 2002-02-12 Fernando Perez <fperez@colorado.edu>
6380 2002-02-12 Fernando Perez <fperez@colorado.edu>
6377
6381
6378 * Released 0.2.5.
6382 * Released 0.2.5.
6379
6383
6380 2002-02-11 Fernando Perez <fperez@colorado.edu>
6384 2002-02-11 Fernando Perez <fperez@colorado.edu>
6381
6385
6382 * Wrote a relatively complete Windows installer. It puts
6386 * Wrote a relatively complete Windows installer. It puts
6383 everything in place, creates Start Menu entries and fixes the
6387 everything in place, creates Start Menu entries and fixes the
6384 color issues. Nothing fancy, but it works.
6388 color issues. Nothing fancy, but it works.
6385
6389
6386 2002-02-10 Fernando Perez <fperez@colorado.edu>
6390 2002-02-10 Fernando Perez <fperez@colorado.edu>
6387
6391
6388 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6392 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6389 os.path.expanduser() call so that we can type @run ~/myfile.py and
6393 os.path.expanduser() call so that we can type @run ~/myfile.py and
6390 have thigs work as expected.
6394 have thigs work as expected.
6391
6395
6392 * IPython/genutils.py (page): fixed exception handling so things
6396 * IPython/genutils.py (page): fixed exception handling so things
6393 work both in Unix and Windows correctly. Quitting a pager triggers
6397 work both in Unix and Windows correctly. Quitting a pager triggers
6394 an IOError/broken pipe in Unix, and in windows not finding a pager
6398 an IOError/broken pipe in Unix, and in windows not finding a pager
6395 is also an IOError, so I had to actually look at the return value
6399 is also an IOError, so I had to actually look at the return value
6396 of the exception, not just the exception itself. Should be ok now.
6400 of the exception, not just the exception itself. Should be ok now.
6397
6401
6398 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6402 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6399 modified to allow case-insensitive color scheme changes.
6403 modified to allow case-insensitive color scheme changes.
6400
6404
6401 2002-02-09 Fernando Perez <fperez@colorado.edu>
6405 2002-02-09 Fernando Perez <fperez@colorado.edu>
6402
6406
6403 * IPython/genutils.py (native_line_ends): new function to leave
6407 * IPython/genutils.py (native_line_ends): new function to leave
6404 user config files with os-native line-endings.
6408 user config files with os-native line-endings.
6405
6409
6406 * README and manual updates.
6410 * README and manual updates.
6407
6411
6408 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6412 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6409 instead of StringType to catch Unicode strings.
6413 instead of StringType to catch Unicode strings.
6410
6414
6411 * IPython/genutils.py (filefind): fixed bug for paths with
6415 * IPython/genutils.py (filefind): fixed bug for paths with
6412 embedded spaces (very common in Windows).
6416 embedded spaces (very common in Windows).
6413
6417
6414 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6418 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6415 files under Windows, so that they get automatically associated
6419 files under Windows, so that they get automatically associated
6416 with a text editor. Windows makes it a pain to handle
6420 with a text editor. Windows makes it a pain to handle
6417 extension-less files.
6421 extension-less files.
6418
6422
6419 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6423 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6420 warning about readline only occur for Posix. In Windows there's no
6424 warning about readline only occur for Posix. In Windows there's no
6421 way to get readline, so why bother with the warning.
6425 way to get readline, so why bother with the warning.
6422
6426
6423 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6427 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6424 for __str__ instead of dir(self), since dir() changed in 2.2.
6428 for __str__ instead of dir(self), since dir() changed in 2.2.
6425
6429
6426 * Ported to Windows! Tested on XP, I suspect it should work fine
6430 * Ported to Windows! Tested on XP, I suspect it should work fine
6427 on NT/2000, but I don't think it will work on 98 et al. That
6431 on NT/2000, but I don't think it will work on 98 et al. That
6428 series of Windows is such a piece of junk anyway that I won't try
6432 series of Windows is such a piece of junk anyway that I won't try
6429 porting it there. The XP port was straightforward, showed a few
6433 porting it there. The XP port was straightforward, showed a few
6430 bugs here and there (fixed all), in particular some string
6434 bugs here and there (fixed all), in particular some string
6431 handling stuff which required considering Unicode strings (which
6435 handling stuff which required considering Unicode strings (which
6432 Windows uses). This is good, but hasn't been too tested :) No
6436 Windows uses). This is good, but hasn't been too tested :) No
6433 fancy installer yet, I'll put a note in the manual so people at
6437 fancy installer yet, I'll put a note in the manual so people at
6434 least make manually a shortcut.
6438 least make manually a shortcut.
6435
6439
6436 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6440 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6437 into a single one, "colors". This now controls both prompt and
6441 into a single one, "colors". This now controls both prompt and
6438 exception color schemes, and can be changed both at startup
6442 exception color schemes, and can be changed both at startup
6439 (either via command-line switches or via ipythonrc files) and at
6443 (either via command-line switches or via ipythonrc files) and at
6440 runtime, with @colors.
6444 runtime, with @colors.
6441 (Magic.magic_run): renamed @prun to @run and removed the old
6445 (Magic.magic_run): renamed @prun to @run and removed the old
6442 @run. The two were too similar to warrant keeping both.
6446 @run. The two were too similar to warrant keeping both.
6443
6447
6444 2002-02-03 Fernando Perez <fperez@colorado.edu>
6448 2002-02-03 Fernando Perez <fperez@colorado.edu>
6445
6449
6446 * IPython/iplib.py (install_first_time): Added comment on how to
6450 * IPython/iplib.py (install_first_time): Added comment on how to
6447 configure the color options for first-time users. Put a <return>
6451 configure the color options for first-time users. Put a <return>
6448 request at the end so that small-terminal users get a chance to
6452 request at the end so that small-terminal users get a chance to
6449 read the startup info.
6453 read the startup info.
6450
6454
6451 2002-01-23 Fernando Perez <fperez@colorado.edu>
6455 2002-01-23 Fernando Perez <fperez@colorado.edu>
6452
6456
6453 * IPython/iplib.py (CachedOutput.update): Changed output memory
6457 * IPython/iplib.py (CachedOutput.update): Changed output memory
6454 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6458 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6455 input history we still use _i. Did this b/c these variable are
6459 input history we still use _i. Did this b/c these variable are
6456 very commonly used in interactive work, so the less we need to
6460 very commonly used in interactive work, so the less we need to
6457 type the better off we are.
6461 type the better off we are.
6458 (Magic.magic_prun): updated @prun to better handle the namespaces
6462 (Magic.magic_prun): updated @prun to better handle the namespaces
6459 the file will run in, including a fix for __name__ not being set
6463 the file will run in, including a fix for __name__ not being set
6460 before.
6464 before.
6461
6465
6462 2002-01-20 Fernando Perez <fperez@colorado.edu>
6466 2002-01-20 Fernando Perez <fperez@colorado.edu>
6463
6467
6464 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6468 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6465 extra garbage for Python 2.2. Need to look more carefully into
6469 extra garbage for Python 2.2. Need to look more carefully into
6466 this later.
6470 this later.
6467
6471
6468 2002-01-19 Fernando Perez <fperez@colorado.edu>
6472 2002-01-19 Fernando Perez <fperez@colorado.edu>
6469
6473
6470 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6474 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6471 display SyntaxError exceptions properly formatted when they occur
6475 display SyntaxError exceptions properly formatted when they occur
6472 (they can be triggered by imported code).
6476 (they can be triggered by imported code).
6473
6477
6474 2002-01-18 Fernando Perez <fperez@colorado.edu>
6478 2002-01-18 Fernando Perez <fperez@colorado.edu>
6475
6479
6476 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6480 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6477 SyntaxError exceptions are reported nicely formatted, instead of
6481 SyntaxError exceptions are reported nicely formatted, instead of
6478 spitting out only offset information as before.
6482 spitting out only offset information as before.
6479 (Magic.magic_prun): Added the @prun function for executing
6483 (Magic.magic_prun): Added the @prun function for executing
6480 programs with command line args inside IPython.
6484 programs with command line args inside IPython.
6481
6485
6482 2002-01-16 Fernando Perez <fperez@colorado.edu>
6486 2002-01-16 Fernando Perez <fperez@colorado.edu>
6483
6487
6484 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6488 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6485 to *not* include the last item given in a range. This brings their
6489 to *not* include the last item given in a range. This brings their
6486 behavior in line with Python's slicing:
6490 behavior in line with Python's slicing:
6487 a[n1:n2] -> a[n1]...a[n2-1]
6491 a[n1:n2] -> a[n1]...a[n2-1]
6488 It may be a bit less convenient, but I prefer to stick to Python's
6492 It may be a bit less convenient, but I prefer to stick to Python's
6489 conventions *everywhere*, so users never have to wonder.
6493 conventions *everywhere*, so users never have to wonder.
6490 (Magic.magic_macro): Added @macro function to ease the creation of
6494 (Magic.magic_macro): Added @macro function to ease the creation of
6491 macros.
6495 macros.
6492
6496
6493 2002-01-05 Fernando Perez <fperez@colorado.edu>
6497 2002-01-05 Fernando Perez <fperez@colorado.edu>
6494
6498
6495 * Released 0.2.4.
6499 * Released 0.2.4.
6496
6500
6497 * IPython/iplib.py (Magic.magic_pdef):
6501 * IPython/iplib.py (Magic.magic_pdef):
6498 (InteractiveShell.safe_execfile): report magic lines and error
6502 (InteractiveShell.safe_execfile): report magic lines and error
6499 lines without line numbers so one can easily copy/paste them for
6503 lines without line numbers so one can easily copy/paste them for
6500 re-execution.
6504 re-execution.
6501
6505
6502 * Updated manual with recent changes.
6506 * Updated manual with recent changes.
6503
6507
6504 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6508 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6505 docstring printing when class? is called. Very handy for knowing
6509 docstring printing when class? is called. Very handy for knowing
6506 how to create class instances (as long as __init__ is well
6510 how to create class instances (as long as __init__ is well
6507 documented, of course :)
6511 documented, of course :)
6508 (Magic.magic_doc): print both class and constructor docstrings.
6512 (Magic.magic_doc): print both class and constructor docstrings.
6509 (Magic.magic_pdef): give constructor info if passed a class and
6513 (Magic.magic_pdef): give constructor info if passed a class and
6510 __call__ info for callable object instances.
6514 __call__ info for callable object instances.
6511
6515
6512 2002-01-04 Fernando Perez <fperez@colorado.edu>
6516 2002-01-04 Fernando Perez <fperez@colorado.edu>
6513
6517
6514 * Made deep_reload() off by default. It doesn't always work
6518 * Made deep_reload() off by default. It doesn't always work
6515 exactly as intended, so it's probably safer to have it off. It's
6519 exactly as intended, so it's probably safer to have it off. It's
6516 still available as dreload() anyway, so nothing is lost.
6520 still available as dreload() anyway, so nothing is lost.
6517
6521
6518 2002-01-02 Fernando Perez <fperez@colorado.edu>
6522 2002-01-02 Fernando Perez <fperez@colorado.edu>
6519
6523
6520 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6524 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6521 so I wanted an updated release).
6525 so I wanted an updated release).
6522
6526
6523 2001-12-27 Fernando Perez <fperez@colorado.edu>
6527 2001-12-27 Fernando Perez <fperez@colorado.edu>
6524
6528
6525 * IPython/iplib.py (InteractiveShell.interact): Added the original
6529 * IPython/iplib.py (InteractiveShell.interact): Added the original
6526 code from 'code.py' for this module in order to change the
6530 code from 'code.py' for this module in order to change the
6527 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6531 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6528 the history cache would break when the user hit Ctrl-C, and
6532 the history cache would break when the user hit Ctrl-C, and
6529 interact() offers no way to add any hooks to it.
6533 interact() offers no way to add any hooks to it.
6530
6534
6531 2001-12-23 Fernando Perez <fperez@colorado.edu>
6535 2001-12-23 Fernando Perez <fperez@colorado.edu>
6532
6536
6533 * setup.py: added check for 'MANIFEST' before trying to remove
6537 * setup.py: added check for 'MANIFEST' before trying to remove
6534 it. Thanks to Sean Reifschneider.
6538 it. Thanks to Sean Reifschneider.
6535
6539
6536 2001-12-22 Fernando Perez <fperez@colorado.edu>
6540 2001-12-22 Fernando Perez <fperez@colorado.edu>
6537
6541
6538 * Released 0.2.2.
6542 * Released 0.2.2.
6539
6543
6540 * Finished (reasonably) writing the manual. Later will add the
6544 * Finished (reasonably) writing the manual. Later will add the
6541 python-standard navigation stylesheets, but for the time being
6545 python-standard navigation stylesheets, but for the time being
6542 it's fairly complete. Distribution will include html and pdf
6546 it's fairly complete. Distribution will include html and pdf
6543 versions.
6547 versions.
6544
6548
6545 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6549 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6546 (MayaVi author).
6550 (MayaVi author).
6547
6551
6548 2001-12-21 Fernando Perez <fperez@colorado.edu>
6552 2001-12-21 Fernando Perez <fperez@colorado.edu>
6549
6553
6550 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6554 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6551 good public release, I think (with the manual and the distutils
6555 good public release, I think (with the manual and the distutils
6552 installer). The manual can use some work, but that can go
6556 installer). The manual can use some work, but that can go
6553 slowly. Otherwise I think it's quite nice for end users. Next
6557 slowly. Otherwise I think it's quite nice for end users. Next
6554 summer, rewrite the guts of it...
6558 summer, rewrite the guts of it...
6555
6559
6556 * Changed format of ipythonrc files to use whitespace as the
6560 * Changed format of ipythonrc files to use whitespace as the
6557 separator instead of an explicit '='. Cleaner.
6561 separator instead of an explicit '='. Cleaner.
6558
6562
6559 2001-12-20 Fernando Perez <fperez@colorado.edu>
6563 2001-12-20 Fernando Perez <fperez@colorado.edu>
6560
6564
6561 * Started a manual in LyX. For now it's just a quick merge of the
6565 * Started a manual in LyX. For now it's just a quick merge of the
6562 various internal docstrings and READMEs. Later it may grow into a
6566 various internal docstrings and READMEs. Later it may grow into a
6563 nice, full-blown manual.
6567 nice, full-blown manual.
6564
6568
6565 * Set up a distutils based installer. Installation should now be
6569 * Set up a distutils based installer. Installation should now be
6566 trivially simple for end-users.
6570 trivially simple for end-users.
6567
6571
6568 2001-12-11 Fernando Perez <fperez@colorado.edu>
6572 2001-12-11 Fernando Perez <fperez@colorado.edu>
6569
6573
6570 * Released 0.2.0. First public release, announced it at
6574 * Released 0.2.0. First public release, announced it at
6571 comp.lang.python. From now on, just bugfixes...
6575 comp.lang.python. From now on, just bugfixes...
6572
6576
6573 * Went through all the files, set copyright/license notices and
6577 * Went through all the files, set copyright/license notices and
6574 cleaned up things. Ready for release.
6578 cleaned up things. Ready for release.
6575
6579
6576 2001-12-10 Fernando Perez <fperez@colorado.edu>
6580 2001-12-10 Fernando Perez <fperez@colorado.edu>
6577
6581
6578 * Changed the first-time installer not to use tarfiles. It's more
6582 * Changed the first-time installer not to use tarfiles. It's more
6579 robust now and less unix-dependent. Also makes it easier for
6583 robust now and less unix-dependent. Also makes it easier for
6580 people to later upgrade versions.
6584 people to later upgrade versions.
6581
6585
6582 * Changed @exit to @abort to reflect the fact that it's pretty
6586 * Changed @exit to @abort to reflect the fact that it's pretty
6583 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6587 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6584 becomes significant only when IPyhton is embedded: in that case,
6588 becomes significant only when IPyhton is embedded: in that case,
6585 C-D closes IPython only, but @abort kills the enclosing program
6589 C-D closes IPython only, but @abort kills the enclosing program
6586 too (unless it had called IPython inside a try catching
6590 too (unless it had called IPython inside a try catching
6587 SystemExit).
6591 SystemExit).
6588
6592
6589 * Created Shell module which exposes the actuall IPython Shell
6593 * Created Shell module which exposes the actuall IPython Shell
6590 classes, currently the normal and the embeddable one. This at
6594 classes, currently the normal and the embeddable one. This at
6591 least offers a stable interface we won't need to change when
6595 least offers a stable interface we won't need to change when
6592 (later) the internals are rewritten. That rewrite will be confined
6596 (later) the internals are rewritten. That rewrite will be confined
6593 to iplib and ipmaker, but the Shell interface should remain as is.
6597 to iplib and ipmaker, but the Shell interface should remain as is.
6594
6598
6595 * Added embed module which offers an embeddable IPShell object,
6599 * Added embed module which offers an embeddable IPShell object,
6596 useful to fire up IPython *inside* a running program. Great for
6600 useful to fire up IPython *inside* a running program. Great for
6597 debugging or dynamical data analysis.
6601 debugging or dynamical data analysis.
6598
6602
6599 2001-12-08 Fernando Perez <fperez@colorado.edu>
6603 2001-12-08 Fernando Perez <fperez@colorado.edu>
6600
6604
6601 * Fixed small bug preventing seeing info from methods of defined
6605 * Fixed small bug preventing seeing info from methods of defined
6602 objects (incorrect namespace in _ofind()).
6606 objects (incorrect namespace in _ofind()).
6603
6607
6604 * Documentation cleanup. Moved the main usage docstrings to a
6608 * Documentation cleanup. Moved the main usage docstrings to a
6605 separate file, usage.py (cleaner to maintain, and hopefully in the
6609 separate file, usage.py (cleaner to maintain, and hopefully in the
6606 future some perlpod-like way of producing interactive, man and
6610 future some perlpod-like way of producing interactive, man and
6607 html docs out of it will be found).
6611 html docs out of it will be found).
6608
6612
6609 * Added @profile to see your profile at any time.
6613 * Added @profile to see your profile at any time.
6610
6614
6611 * Added @p as an alias for 'print'. It's especially convenient if
6615 * Added @p as an alias for 'print'. It's especially convenient if
6612 using automagic ('p x' prints x).
6616 using automagic ('p x' prints x).
6613
6617
6614 * Small cleanups and fixes after a pychecker run.
6618 * Small cleanups and fixes after a pychecker run.
6615
6619
6616 * Changed the @cd command to handle @cd - and @cd -<n> for
6620 * Changed the @cd command to handle @cd - and @cd -<n> for
6617 visiting any directory in _dh.
6621 visiting any directory in _dh.
6618
6622
6619 * Introduced _dh, a history of visited directories. @dhist prints
6623 * Introduced _dh, a history of visited directories. @dhist prints
6620 it out with numbers.
6624 it out with numbers.
6621
6625
6622 2001-12-07 Fernando Perez <fperez@colorado.edu>
6626 2001-12-07 Fernando Perez <fperez@colorado.edu>
6623
6627
6624 * Released 0.1.22
6628 * Released 0.1.22
6625
6629
6626 * Made initialization a bit more robust against invalid color
6630 * Made initialization a bit more robust against invalid color
6627 options in user input (exit, not traceback-crash).
6631 options in user input (exit, not traceback-crash).
6628
6632
6629 * Changed the bug crash reporter to write the report only in the
6633 * Changed the bug crash reporter to write the report only in the
6630 user's .ipython directory. That way IPython won't litter people's
6634 user's .ipython directory. That way IPython won't litter people's
6631 hard disks with crash files all over the place. Also print on
6635 hard disks with crash files all over the place. Also print on
6632 screen the necessary mail command.
6636 screen the necessary mail command.
6633
6637
6634 * With the new ultraTB, implemented LightBG color scheme for light
6638 * With the new ultraTB, implemented LightBG color scheme for light
6635 background terminals. A lot of people like white backgrounds, so I
6639 background terminals. A lot of people like white backgrounds, so I
6636 guess we should at least give them something readable.
6640 guess we should at least give them something readable.
6637
6641
6638 2001-12-06 Fernando Perez <fperez@colorado.edu>
6642 2001-12-06 Fernando Perez <fperez@colorado.edu>
6639
6643
6640 * Modified the structure of ultraTB. Now there's a proper class
6644 * Modified the structure of ultraTB. Now there's a proper class
6641 for tables of color schemes which allow adding schemes easily and
6645 for tables of color schemes which allow adding schemes easily and
6642 switching the active scheme without creating a new instance every
6646 switching the active scheme without creating a new instance every
6643 time (which was ridiculous). The syntax for creating new schemes
6647 time (which was ridiculous). The syntax for creating new schemes
6644 is also cleaner. I think ultraTB is finally done, with a clean
6648 is also cleaner. I think ultraTB is finally done, with a clean
6645 class structure. Names are also much cleaner (now there's proper
6649 class structure. Names are also much cleaner (now there's proper
6646 color tables, no need for every variable to also have 'color' in
6650 color tables, no need for every variable to also have 'color' in
6647 its name).
6651 its name).
6648
6652
6649 * Broke down genutils into separate files. Now genutils only
6653 * Broke down genutils into separate files. Now genutils only
6650 contains utility functions, and classes have been moved to their
6654 contains utility functions, and classes have been moved to their
6651 own files (they had enough independent functionality to warrant
6655 own files (they had enough independent functionality to warrant
6652 it): ConfigLoader, OutputTrap, Struct.
6656 it): ConfigLoader, OutputTrap, Struct.
6653
6657
6654 2001-12-05 Fernando Perez <fperez@colorado.edu>
6658 2001-12-05 Fernando Perez <fperez@colorado.edu>
6655
6659
6656 * IPython turns 21! Released version 0.1.21, as a candidate for
6660 * IPython turns 21! Released version 0.1.21, as a candidate for
6657 public consumption. If all goes well, release in a few days.
6661 public consumption. If all goes well, release in a few days.
6658
6662
6659 * Fixed path bug (files in Extensions/ directory wouldn't be found
6663 * Fixed path bug (files in Extensions/ directory wouldn't be found
6660 unless IPython/ was explicitly in sys.path).
6664 unless IPython/ was explicitly in sys.path).
6661
6665
6662 * Extended the FlexCompleter class as MagicCompleter to allow
6666 * Extended the FlexCompleter class as MagicCompleter to allow
6663 completion of @-starting lines.
6667 completion of @-starting lines.
6664
6668
6665 * Created __release__.py file as a central repository for release
6669 * Created __release__.py file as a central repository for release
6666 info that other files can read from.
6670 info that other files can read from.
6667
6671
6668 * Fixed small bug in logging: when logging was turned on in
6672 * Fixed small bug in logging: when logging was turned on in
6669 mid-session, old lines with special meanings (!@?) were being
6673 mid-session, old lines with special meanings (!@?) were being
6670 logged without the prepended comment, which is necessary since
6674 logged without the prepended comment, which is necessary since
6671 they are not truly valid python syntax. This should make session
6675 they are not truly valid python syntax. This should make session
6672 restores produce less errors.
6676 restores produce less errors.
6673
6677
6674 * The namespace cleanup forced me to make a FlexCompleter class
6678 * The namespace cleanup forced me to make a FlexCompleter class
6675 which is nothing but a ripoff of rlcompleter, but with selectable
6679 which is nothing but a ripoff of rlcompleter, but with selectable
6676 namespace (rlcompleter only works in __main__.__dict__). I'll try
6680 namespace (rlcompleter only works in __main__.__dict__). I'll try
6677 to submit a note to the authors to see if this change can be
6681 to submit a note to the authors to see if this change can be
6678 incorporated in future rlcompleter releases (Dec.6: done)
6682 incorporated in future rlcompleter releases (Dec.6: done)
6679
6683
6680 * More fixes to namespace handling. It was a mess! Now all
6684 * More fixes to namespace handling. It was a mess! Now all
6681 explicit references to __main__.__dict__ are gone (except when
6685 explicit references to __main__.__dict__ are gone (except when
6682 really needed) and everything is handled through the namespace
6686 really needed) and everything is handled through the namespace
6683 dicts in the IPython instance. We seem to be getting somewhere
6687 dicts in the IPython instance. We seem to be getting somewhere
6684 with this, finally...
6688 with this, finally...
6685
6689
6686 * Small documentation updates.
6690 * Small documentation updates.
6687
6691
6688 * Created the Extensions directory under IPython (with an
6692 * Created the Extensions directory under IPython (with an
6689 __init__.py). Put the PhysicalQ stuff there. This directory should
6693 __init__.py). Put the PhysicalQ stuff there. This directory should
6690 be used for all special-purpose extensions.
6694 be used for all special-purpose extensions.
6691
6695
6692 * File renaming:
6696 * File renaming:
6693 ipythonlib --> ipmaker
6697 ipythonlib --> ipmaker
6694 ipplib --> iplib
6698 ipplib --> iplib
6695 This makes a bit more sense in terms of what these files actually do.
6699 This makes a bit more sense in terms of what these files actually do.
6696
6700
6697 * Moved all the classes and functions in ipythonlib to ipplib, so
6701 * Moved all the classes and functions in ipythonlib to ipplib, so
6698 now ipythonlib only has make_IPython(). This will ease up its
6702 now ipythonlib only has make_IPython(). This will ease up its
6699 splitting in smaller functional chunks later.
6703 splitting in smaller functional chunks later.
6700
6704
6701 * Cleaned up (done, I think) output of @whos. Better column
6705 * Cleaned up (done, I think) output of @whos. Better column
6702 formatting, and now shows str(var) for as much as it can, which is
6706 formatting, and now shows str(var) for as much as it can, which is
6703 typically what one gets with a 'print var'.
6707 typically what one gets with a 'print var'.
6704
6708
6705 2001-12-04 Fernando Perez <fperez@colorado.edu>
6709 2001-12-04 Fernando Perez <fperez@colorado.edu>
6706
6710
6707 * Fixed namespace problems. Now builtin/IPyhton/user names get
6711 * Fixed namespace problems. Now builtin/IPyhton/user names get
6708 properly reported in their namespace. Internal namespace handling
6712 properly reported in their namespace. Internal namespace handling
6709 is finally getting decent (not perfect yet, but much better than
6713 is finally getting decent (not perfect yet, but much better than
6710 the ad-hoc mess we had).
6714 the ad-hoc mess we had).
6711
6715
6712 * Removed -exit option. If people just want to run a python
6716 * Removed -exit option. If people just want to run a python
6713 script, that's what the normal interpreter is for. Less
6717 script, that's what the normal interpreter is for. Less
6714 unnecessary options, less chances for bugs.
6718 unnecessary options, less chances for bugs.
6715
6719
6716 * Added a crash handler which generates a complete post-mortem if
6720 * Added a crash handler which generates a complete post-mortem if
6717 IPython crashes. This will help a lot in tracking bugs down the
6721 IPython crashes. This will help a lot in tracking bugs down the
6718 road.
6722 road.
6719
6723
6720 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6724 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6721 which were boud to functions being reassigned would bypass the
6725 which were boud to functions being reassigned would bypass the
6722 logger, breaking the sync of _il with the prompt counter. This
6726 logger, breaking the sync of _il with the prompt counter. This
6723 would then crash IPython later when a new line was logged.
6727 would then crash IPython later when a new line was logged.
6724
6728
6725 2001-12-02 Fernando Perez <fperez@colorado.edu>
6729 2001-12-02 Fernando Perez <fperez@colorado.edu>
6726
6730
6727 * Made IPython a package. This means people don't have to clutter
6731 * Made IPython a package. This means people don't have to clutter
6728 their sys.path with yet another directory. Changed the INSTALL
6732 their sys.path with yet another directory. Changed the INSTALL
6729 file accordingly.
6733 file accordingly.
6730
6734
6731 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6735 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6732 sorts its output (so @who shows it sorted) and @whos formats the
6736 sorts its output (so @who shows it sorted) and @whos formats the
6733 table according to the width of the first column. Nicer, easier to
6737 table according to the width of the first column. Nicer, easier to
6734 read. Todo: write a generic table_format() which takes a list of
6738 read. Todo: write a generic table_format() which takes a list of
6735 lists and prints it nicely formatted, with optional row/column
6739 lists and prints it nicely formatted, with optional row/column
6736 separators and proper padding and justification.
6740 separators and proper padding and justification.
6737
6741
6738 * Released 0.1.20
6742 * Released 0.1.20
6739
6743
6740 * Fixed bug in @log which would reverse the inputcache list (a
6744 * Fixed bug in @log which would reverse the inputcache list (a
6741 copy operation was missing).
6745 copy operation was missing).
6742
6746
6743 * Code cleanup. @config was changed to use page(). Better, since
6747 * Code cleanup. @config was changed to use page(). Better, since
6744 its output is always quite long.
6748 its output is always quite long.
6745
6749
6746 * Itpl is back as a dependency. I was having too many problems
6750 * Itpl is back as a dependency. I was having too many problems
6747 getting the parametric aliases to work reliably, and it's just
6751 getting the parametric aliases to work reliably, and it's just
6748 easier to code weird string operations with it than playing %()s
6752 easier to code weird string operations with it than playing %()s
6749 games. It's only ~6k, so I don't think it's too big a deal.
6753 games. It's only ~6k, so I don't think it's too big a deal.
6750
6754
6751 * Found (and fixed) a very nasty bug with history. !lines weren't
6755 * Found (and fixed) a very nasty bug with history. !lines weren't
6752 getting cached, and the out of sync caches would crash
6756 getting cached, and the out of sync caches would crash
6753 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6757 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6754 division of labor a bit better. Bug fixed, cleaner structure.
6758 division of labor a bit better. Bug fixed, cleaner structure.
6755
6759
6756 2001-12-01 Fernando Perez <fperez@colorado.edu>
6760 2001-12-01 Fernando Perez <fperez@colorado.edu>
6757
6761
6758 * Released 0.1.19
6762 * Released 0.1.19
6759
6763
6760 * Added option -n to @hist to prevent line number printing. Much
6764 * Added option -n to @hist to prevent line number printing. Much
6761 easier to copy/paste code this way.
6765 easier to copy/paste code this way.
6762
6766
6763 * Created global _il to hold the input list. Allows easy
6767 * Created global _il to hold the input list. Allows easy
6764 re-execution of blocks of code by slicing it (inspired by Janko's
6768 re-execution of blocks of code by slicing it (inspired by Janko's
6765 comment on 'macros').
6769 comment on 'macros').
6766
6770
6767 * Small fixes and doc updates.
6771 * Small fixes and doc updates.
6768
6772
6769 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6773 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6770 much too fragile with automagic. Handles properly multi-line
6774 much too fragile with automagic. Handles properly multi-line
6771 statements and takes parameters.
6775 statements and takes parameters.
6772
6776
6773 2001-11-30 Fernando Perez <fperez@colorado.edu>
6777 2001-11-30 Fernando Perez <fperez@colorado.edu>
6774
6778
6775 * Version 0.1.18 released.
6779 * Version 0.1.18 released.
6776
6780
6777 * Fixed nasty namespace bug in initial module imports.
6781 * Fixed nasty namespace bug in initial module imports.
6778
6782
6779 * Added copyright/license notes to all code files (except
6783 * Added copyright/license notes to all code files (except
6780 DPyGetOpt). For the time being, LGPL. That could change.
6784 DPyGetOpt). For the time being, LGPL. That could change.
6781
6785
6782 * Rewrote a much nicer README, updated INSTALL, cleaned up
6786 * Rewrote a much nicer README, updated INSTALL, cleaned up
6783 ipythonrc-* samples.
6787 ipythonrc-* samples.
6784
6788
6785 * Overall code/documentation cleanup. Basically ready for
6789 * Overall code/documentation cleanup. Basically ready for
6786 release. Only remaining thing: licence decision (LGPL?).
6790 release. Only remaining thing: licence decision (LGPL?).
6787
6791
6788 * Converted load_config to a class, ConfigLoader. Now recursion
6792 * Converted load_config to a class, ConfigLoader. Now recursion
6789 control is better organized. Doesn't include the same file twice.
6793 control is better organized. Doesn't include the same file twice.
6790
6794
6791 2001-11-29 Fernando Perez <fperez@colorado.edu>
6795 2001-11-29 Fernando Perez <fperez@colorado.edu>
6792
6796
6793 * Got input history working. Changed output history variables from
6797 * Got input history working. Changed output history variables from
6794 _p to _o so that _i is for input and _o for output. Just cleaner
6798 _p to _o so that _i is for input and _o for output. Just cleaner
6795 convention.
6799 convention.
6796
6800
6797 * Implemented parametric aliases. This pretty much allows the
6801 * Implemented parametric aliases. This pretty much allows the
6798 alias system to offer full-blown shell convenience, I think.
6802 alias system to offer full-blown shell convenience, I think.
6799
6803
6800 * Version 0.1.17 released, 0.1.18 opened.
6804 * Version 0.1.17 released, 0.1.18 opened.
6801
6805
6802 * dot_ipython/ipythonrc (alias): added documentation.
6806 * dot_ipython/ipythonrc (alias): added documentation.
6803 (xcolor): Fixed small bug (xcolors -> xcolor)
6807 (xcolor): Fixed small bug (xcolors -> xcolor)
6804
6808
6805 * Changed the alias system. Now alias is a magic command to define
6809 * Changed the alias system. Now alias is a magic command to define
6806 aliases just like the shell. Rationale: the builtin magics should
6810 aliases just like the shell. Rationale: the builtin magics should
6807 be there for things deeply connected to IPython's
6811 be there for things deeply connected to IPython's
6808 architecture. And this is a much lighter system for what I think
6812 architecture. And this is a much lighter system for what I think
6809 is the really important feature: allowing users to define quickly
6813 is the really important feature: allowing users to define quickly
6810 magics that will do shell things for them, so they can customize
6814 magics that will do shell things for them, so they can customize
6811 IPython easily to match their work habits. If someone is really
6815 IPython easily to match their work habits. If someone is really
6812 desperate to have another name for a builtin alias, they can
6816 desperate to have another name for a builtin alias, they can
6813 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6817 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6814 works.
6818 works.
6815
6819
6816 2001-11-28 Fernando Perez <fperez@colorado.edu>
6820 2001-11-28 Fernando Perez <fperez@colorado.edu>
6817
6821
6818 * Changed @file so that it opens the source file at the proper
6822 * Changed @file so that it opens the source file at the proper
6819 line. Since it uses less, if your EDITOR environment is
6823 line. Since it uses less, if your EDITOR environment is
6820 configured, typing v will immediately open your editor of choice
6824 configured, typing v will immediately open your editor of choice
6821 right at the line where the object is defined. Not as quick as
6825 right at the line where the object is defined. Not as quick as
6822 having a direct @edit command, but for all intents and purposes it
6826 having a direct @edit command, but for all intents and purposes it
6823 works. And I don't have to worry about writing @edit to deal with
6827 works. And I don't have to worry about writing @edit to deal with
6824 all the editors, less does that.
6828 all the editors, less does that.
6825
6829
6826 * Version 0.1.16 released, 0.1.17 opened.
6830 * Version 0.1.16 released, 0.1.17 opened.
6827
6831
6828 * Fixed some nasty bugs in the page/page_dumb combo that could
6832 * Fixed some nasty bugs in the page/page_dumb combo that could
6829 crash IPython.
6833 crash IPython.
6830
6834
6831 2001-11-27 Fernando Perez <fperez@colorado.edu>
6835 2001-11-27 Fernando Perez <fperez@colorado.edu>
6832
6836
6833 * Version 0.1.15 released, 0.1.16 opened.
6837 * Version 0.1.15 released, 0.1.16 opened.
6834
6838
6835 * Finally got ? and ?? to work for undefined things: now it's
6839 * Finally got ? and ?? to work for undefined things: now it's
6836 possible to type {}.get? and get information about the get method
6840 possible to type {}.get? and get information about the get method
6837 of dicts, or os.path? even if only os is defined (so technically
6841 of dicts, or os.path? even if only os is defined (so technically
6838 os.path isn't). Works at any level. For example, after import os,
6842 os.path isn't). Works at any level. For example, after import os,
6839 os?, os.path?, os.path.abspath? all work. This is great, took some
6843 os?, os.path?, os.path.abspath? all work. This is great, took some
6840 work in _ofind.
6844 work in _ofind.
6841
6845
6842 * Fixed more bugs with logging. The sanest way to do it was to add
6846 * Fixed more bugs with logging. The sanest way to do it was to add
6843 to @log a 'mode' parameter. Killed two in one shot (this mode
6847 to @log a 'mode' parameter. Killed two in one shot (this mode
6844 option was a request of Janko's). I think it's finally clean
6848 option was a request of Janko's). I think it's finally clean
6845 (famous last words).
6849 (famous last words).
6846
6850
6847 * Added a page_dumb() pager which does a decent job of paging on
6851 * Added a page_dumb() pager which does a decent job of paging on
6848 screen, if better things (like less) aren't available. One less
6852 screen, if better things (like less) aren't available. One less
6849 unix dependency (someday maybe somebody will port this to
6853 unix dependency (someday maybe somebody will port this to
6850 windows).
6854 windows).
6851
6855
6852 * Fixed problem in magic_log: would lock of logging out if log
6856 * Fixed problem in magic_log: would lock of logging out if log
6853 creation failed (because it would still think it had succeeded).
6857 creation failed (because it would still think it had succeeded).
6854
6858
6855 * Improved the page() function using curses to auto-detect screen
6859 * Improved the page() function using curses to auto-detect screen
6856 size. Now it can make a much better decision on whether to print
6860 size. Now it can make a much better decision on whether to print
6857 or page a string. Option screen_length was modified: a value 0
6861 or page a string. Option screen_length was modified: a value 0
6858 means auto-detect, and that's the default now.
6862 means auto-detect, and that's the default now.
6859
6863
6860 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6864 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6861 go out. I'll test it for a few days, then talk to Janko about
6865 go out. I'll test it for a few days, then talk to Janko about
6862 licences and announce it.
6866 licences and announce it.
6863
6867
6864 * Fixed the length of the auto-generated ---> prompt which appears
6868 * Fixed the length of the auto-generated ---> prompt which appears
6865 for auto-parens and auto-quotes. Getting this right isn't trivial,
6869 for auto-parens and auto-quotes. Getting this right isn't trivial,
6866 with all the color escapes, different prompt types and optional
6870 with all the color escapes, different prompt types and optional
6867 separators. But it seems to be working in all the combinations.
6871 separators. But it seems to be working in all the combinations.
6868
6872
6869 2001-11-26 Fernando Perez <fperez@colorado.edu>
6873 2001-11-26 Fernando Perez <fperez@colorado.edu>
6870
6874
6871 * Wrote a regexp filter to get option types from the option names
6875 * Wrote a regexp filter to get option types from the option names
6872 string. This eliminates the need to manually keep two duplicate
6876 string. This eliminates the need to manually keep two duplicate
6873 lists.
6877 lists.
6874
6878
6875 * Removed the unneeded check_option_names. Now options are handled
6879 * Removed the unneeded check_option_names. Now options are handled
6876 in a much saner manner and it's easy to visually check that things
6880 in a much saner manner and it's easy to visually check that things
6877 are ok.
6881 are ok.
6878
6882
6879 * Updated version numbers on all files I modified to carry a
6883 * Updated version numbers on all files I modified to carry a
6880 notice so Janko and Nathan have clear version markers.
6884 notice so Janko and Nathan have clear version markers.
6881
6885
6882 * Updated docstring for ultraTB with my changes. I should send
6886 * Updated docstring for ultraTB with my changes. I should send
6883 this to Nathan.
6887 this to Nathan.
6884
6888
6885 * Lots of small fixes. Ran everything through pychecker again.
6889 * Lots of small fixes. Ran everything through pychecker again.
6886
6890
6887 * Made loading of deep_reload an cmd line option. If it's not too
6891 * Made loading of deep_reload an cmd line option. If it's not too
6888 kosher, now people can just disable it. With -nodeep_reload it's
6892 kosher, now people can just disable it. With -nodeep_reload it's
6889 still available as dreload(), it just won't overwrite reload().
6893 still available as dreload(), it just won't overwrite reload().
6890
6894
6891 * Moved many options to the no| form (-opt and -noopt
6895 * Moved many options to the no| form (-opt and -noopt
6892 accepted). Cleaner.
6896 accepted). Cleaner.
6893
6897
6894 * Changed magic_log so that if called with no parameters, it uses
6898 * Changed magic_log so that if called with no parameters, it uses
6895 'rotate' mode. That way auto-generated logs aren't automatically
6899 'rotate' mode. That way auto-generated logs aren't automatically
6896 over-written. For normal logs, now a backup is made if it exists
6900 over-written. For normal logs, now a backup is made if it exists
6897 (only 1 level of backups). A new 'backup' mode was added to the
6901 (only 1 level of backups). A new 'backup' mode was added to the
6898 Logger class to support this. This was a request by Janko.
6902 Logger class to support this. This was a request by Janko.
6899
6903
6900 * Added @logoff/@logon to stop/restart an active log.
6904 * Added @logoff/@logon to stop/restart an active log.
6901
6905
6902 * Fixed a lot of bugs in log saving/replay. It was pretty
6906 * Fixed a lot of bugs in log saving/replay. It was pretty
6903 broken. Now special lines (!@,/) appear properly in the command
6907 broken. Now special lines (!@,/) appear properly in the command
6904 history after a log replay.
6908 history after a log replay.
6905
6909
6906 * Tried and failed to implement full session saving via pickle. My
6910 * Tried and failed to implement full session saving via pickle. My
6907 idea was to pickle __main__.__dict__, but modules can't be
6911 idea was to pickle __main__.__dict__, but modules can't be
6908 pickled. This would be a better alternative to replaying logs, but
6912 pickled. This would be a better alternative to replaying logs, but
6909 seems quite tricky to get to work. Changed -session to be called
6913 seems quite tricky to get to work. Changed -session to be called
6910 -logplay, which more accurately reflects what it does. And if we
6914 -logplay, which more accurately reflects what it does. And if we
6911 ever get real session saving working, -session is now available.
6915 ever get real session saving working, -session is now available.
6912
6916
6913 * Implemented color schemes for prompts also. As for tracebacks,
6917 * Implemented color schemes for prompts also. As for tracebacks,
6914 currently only NoColor and Linux are supported. But now the
6918 currently only NoColor and Linux are supported. But now the
6915 infrastructure is in place, based on a generic ColorScheme
6919 infrastructure is in place, based on a generic ColorScheme
6916 class. So writing and activating new schemes both for the prompts
6920 class. So writing and activating new schemes both for the prompts
6917 and the tracebacks should be straightforward.
6921 and the tracebacks should be straightforward.
6918
6922
6919 * Version 0.1.13 released, 0.1.14 opened.
6923 * Version 0.1.13 released, 0.1.14 opened.
6920
6924
6921 * Changed handling of options for output cache. Now counter is
6925 * Changed handling of options for output cache. Now counter is
6922 hardwired starting at 1 and one specifies the maximum number of
6926 hardwired starting at 1 and one specifies the maximum number of
6923 entries *in the outcache* (not the max prompt counter). This is
6927 entries *in the outcache* (not the max prompt counter). This is
6924 much better, since many statements won't increase the cache
6928 much better, since many statements won't increase the cache
6925 count. It also eliminated some confusing options, now there's only
6929 count. It also eliminated some confusing options, now there's only
6926 one: cache_size.
6930 one: cache_size.
6927
6931
6928 * Added 'alias' magic function and magic_alias option in the
6932 * Added 'alias' magic function and magic_alias option in the
6929 ipythonrc file. Now the user can easily define whatever names he
6933 ipythonrc file. Now the user can easily define whatever names he
6930 wants for the magic functions without having to play weird
6934 wants for the magic functions without having to play weird
6931 namespace games. This gives IPython a real shell-like feel.
6935 namespace games. This gives IPython a real shell-like feel.
6932
6936
6933 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6937 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6934 @ or not).
6938 @ or not).
6935
6939
6936 This was one of the last remaining 'visible' bugs (that I know
6940 This was one of the last remaining 'visible' bugs (that I know
6937 of). I think if I can clean up the session loading so it works
6941 of). I think if I can clean up the session loading so it works
6938 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6942 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6939 about licensing).
6943 about licensing).
6940
6944
6941 2001-11-25 Fernando Perez <fperez@colorado.edu>
6945 2001-11-25 Fernando Perez <fperez@colorado.edu>
6942
6946
6943 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6947 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6944 there's a cleaner distinction between what ? and ?? show.
6948 there's a cleaner distinction between what ? and ?? show.
6945
6949
6946 * Added screen_length option. Now the user can define his own
6950 * Added screen_length option. Now the user can define his own
6947 screen size for page() operations.
6951 screen size for page() operations.
6948
6952
6949 * Implemented magic shell-like functions with automatic code
6953 * Implemented magic shell-like functions with automatic code
6950 generation. Now adding another function is just a matter of adding
6954 generation. Now adding another function is just a matter of adding
6951 an entry to a dict, and the function is dynamically generated at
6955 an entry to a dict, and the function is dynamically generated at
6952 run-time. Python has some really cool features!
6956 run-time. Python has some really cool features!
6953
6957
6954 * Renamed many options to cleanup conventions a little. Now all
6958 * Renamed many options to cleanup conventions a little. Now all
6955 are lowercase, and only underscores where needed. Also in the code
6959 are lowercase, and only underscores where needed. Also in the code
6956 option name tables are clearer.
6960 option name tables are clearer.
6957
6961
6958 * Changed prompts a little. Now input is 'In [n]:' instead of
6962 * Changed prompts a little. Now input is 'In [n]:' instead of
6959 'In[n]:='. This allows it the numbers to be aligned with the
6963 'In[n]:='. This allows it the numbers to be aligned with the
6960 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6964 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6961 Python (it was a Mathematica thing). The '...' continuation prompt
6965 Python (it was a Mathematica thing). The '...' continuation prompt
6962 was also changed a little to align better.
6966 was also changed a little to align better.
6963
6967
6964 * Fixed bug when flushing output cache. Not all _p<n> variables
6968 * Fixed bug when flushing output cache. Not all _p<n> variables
6965 exist, so their deletion needs to be wrapped in a try:
6969 exist, so their deletion needs to be wrapped in a try:
6966
6970
6967 * Figured out how to properly use inspect.formatargspec() (it
6971 * Figured out how to properly use inspect.formatargspec() (it
6968 requires the args preceded by *). So I removed all the code from
6972 requires the args preceded by *). So I removed all the code from
6969 _get_pdef in Magic, which was just replicating that.
6973 _get_pdef in Magic, which was just replicating that.
6970
6974
6971 * Added test to prefilter to allow redefining magic function names
6975 * Added test to prefilter to allow redefining magic function names
6972 as variables. This is ok, since the @ form is always available,
6976 as variables. This is ok, since the @ form is always available,
6973 but whe should allow the user to define a variable called 'ls' if
6977 but whe should allow the user to define a variable called 'ls' if
6974 he needs it.
6978 he needs it.
6975
6979
6976 * Moved the ToDo information from README into a separate ToDo.
6980 * Moved the ToDo information from README into a separate ToDo.
6977
6981
6978 * General code cleanup and small bugfixes. I think it's close to a
6982 * General code cleanup and small bugfixes. I think it's close to a
6979 state where it can be released, obviously with a big 'beta'
6983 state where it can be released, obviously with a big 'beta'
6980 warning on it.
6984 warning on it.
6981
6985
6982 * Got the magic function split to work. Now all magics are defined
6986 * Got the magic function split to work. Now all magics are defined
6983 in a separate class. It just organizes things a bit, and now
6987 in a separate class. It just organizes things a bit, and now
6984 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6988 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6985 was too long).
6989 was too long).
6986
6990
6987 * Changed @clear to @reset to avoid potential confusions with
6991 * Changed @clear to @reset to avoid potential confusions with
6988 the shell command clear. Also renamed @cl to @clear, which does
6992 the shell command clear. Also renamed @cl to @clear, which does
6989 exactly what people expect it to from their shell experience.
6993 exactly what people expect it to from their shell experience.
6990
6994
6991 Added a check to the @reset command (since it's so
6995 Added a check to the @reset command (since it's so
6992 destructive, it's probably a good idea to ask for confirmation).
6996 destructive, it's probably a good idea to ask for confirmation).
6993 But now reset only works for full namespace resetting. Since the
6997 But now reset only works for full namespace resetting. Since the
6994 del keyword is already there for deleting a few specific
6998 del keyword is already there for deleting a few specific
6995 variables, I don't see the point of having a redundant magic
6999 variables, I don't see the point of having a redundant magic
6996 function for the same task.
7000 function for the same task.
6997
7001
6998 2001-11-24 Fernando Perez <fperez@colorado.edu>
7002 2001-11-24 Fernando Perez <fperez@colorado.edu>
6999
7003
7000 * Updated the builtin docs (esp. the ? ones).
7004 * Updated the builtin docs (esp. the ? ones).
7001
7005
7002 * Ran all the code through pychecker. Not terribly impressed with
7006 * Ran all the code through pychecker. Not terribly impressed with
7003 it: lots of spurious warnings and didn't really find anything of
7007 it: lots of spurious warnings and didn't really find anything of
7004 substance (just a few modules being imported and not used).
7008 substance (just a few modules being imported and not used).
7005
7009
7006 * Implemented the new ultraTB functionality into IPython. New
7010 * Implemented the new ultraTB functionality into IPython. New
7007 option: xcolors. This chooses color scheme. xmode now only selects
7011 option: xcolors. This chooses color scheme. xmode now only selects
7008 between Plain and Verbose. Better orthogonality.
7012 between Plain and Verbose. Better orthogonality.
7009
7013
7010 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7014 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7011 mode and color scheme for the exception handlers. Now it's
7015 mode and color scheme for the exception handlers. Now it's
7012 possible to have the verbose traceback with no coloring.
7016 possible to have the verbose traceback with no coloring.
7013
7017
7014 2001-11-23 Fernando Perez <fperez@colorado.edu>
7018 2001-11-23 Fernando Perez <fperez@colorado.edu>
7015
7019
7016 * Version 0.1.12 released, 0.1.13 opened.
7020 * Version 0.1.12 released, 0.1.13 opened.
7017
7021
7018 * Removed option to set auto-quote and auto-paren escapes by
7022 * Removed option to set auto-quote and auto-paren escapes by
7019 user. The chances of breaking valid syntax are just too high. If
7023 user. The chances of breaking valid syntax are just too high. If
7020 someone *really* wants, they can always dig into the code.
7024 someone *really* wants, they can always dig into the code.
7021
7025
7022 * Made prompt separators configurable.
7026 * Made prompt separators configurable.
7023
7027
7024 2001-11-22 Fernando Perez <fperez@colorado.edu>
7028 2001-11-22 Fernando Perez <fperez@colorado.edu>
7025
7029
7026 * Small bugfixes in many places.
7030 * Small bugfixes in many places.
7027
7031
7028 * Removed the MyCompleter class from ipplib. It seemed redundant
7032 * Removed the MyCompleter class from ipplib. It seemed redundant
7029 with the C-p,C-n history search functionality. Less code to
7033 with the C-p,C-n history search functionality. Less code to
7030 maintain.
7034 maintain.
7031
7035
7032 * Moved all the original ipython.py code into ipythonlib.py. Right
7036 * Moved all the original ipython.py code into ipythonlib.py. Right
7033 now it's just one big dump into a function called make_IPython, so
7037 now it's just one big dump into a function called make_IPython, so
7034 no real modularity has been gained. But at least it makes the
7038 no real modularity has been gained. But at least it makes the
7035 wrapper script tiny, and since ipythonlib is a module, it gets
7039 wrapper script tiny, and since ipythonlib is a module, it gets
7036 compiled and startup is much faster.
7040 compiled and startup is much faster.
7037
7041
7038 This is a reasobably 'deep' change, so we should test it for a
7042 This is a reasobably 'deep' change, so we should test it for a
7039 while without messing too much more with the code.
7043 while without messing too much more with the code.
7040
7044
7041 2001-11-21 Fernando Perez <fperez@colorado.edu>
7045 2001-11-21 Fernando Perez <fperez@colorado.edu>
7042
7046
7043 * Version 0.1.11 released, 0.1.12 opened for further work.
7047 * Version 0.1.11 released, 0.1.12 opened for further work.
7044
7048
7045 * Removed dependency on Itpl. It was only needed in one place. It
7049 * Removed dependency on Itpl. It was only needed in one place. It
7046 would be nice if this became part of python, though. It makes life
7050 would be nice if this became part of python, though. It makes life
7047 *a lot* easier in some cases.
7051 *a lot* easier in some cases.
7048
7052
7049 * Simplified the prefilter code a bit. Now all handlers are
7053 * Simplified the prefilter code a bit. Now all handlers are
7050 expected to explicitly return a value (at least a blank string).
7054 expected to explicitly return a value (at least a blank string).
7051
7055
7052 * Heavy edits in ipplib. Removed the help system altogether. Now
7056 * Heavy edits in ipplib. Removed the help system altogether. Now
7053 obj?/?? is used for inspecting objects, a magic @doc prints
7057 obj?/?? is used for inspecting objects, a magic @doc prints
7054 docstrings, and full-blown Python help is accessed via the 'help'
7058 docstrings, and full-blown Python help is accessed via the 'help'
7055 keyword. This cleans up a lot of code (less to maintain) and does
7059 keyword. This cleans up a lot of code (less to maintain) and does
7056 the job. Since 'help' is now a standard Python component, might as
7060 the job. Since 'help' is now a standard Python component, might as
7057 well use it and remove duplicate functionality.
7061 well use it and remove duplicate functionality.
7058
7062
7059 Also removed the option to use ipplib as a standalone program. By
7063 Also removed the option to use ipplib as a standalone program. By
7060 now it's too dependent on other parts of IPython to function alone.
7064 now it's too dependent on other parts of IPython to function alone.
7061
7065
7062 * Fixed bug in genutils.pager. It would crash if the pager was
7066 * Fixed bug in genutils.pager. It would crash if the pager was
7063 exited immediately after opening (broken pipe).
7067 exited immediately after opening (broken pipe).
7064
7068
7065 * Trimmed down the VerboseTB reporting a little. The header is
7069 * Trimmed down the VerboseTB reporting a little. The header is
7066 much shorter now and the repeated exception arguments at the end
7070 much shorter now and the repeated exception arguments at the end
7067 have been removed. For interactive use the old header seemed a bit
7071 have been removed. For interactive use the old header seemed a bit
7068 excessive.
7072 excessive.
7069
7073
7070 * Fixed small bug in output of @whos for variables with multi-word
7074 * Fixed small bug in output of @whos for variables with multi-word
7071 types (only first word was displayed).
7075 types (only first word was displayed).
7072
7076
7073 2001-11-17 Fernando Perez <fperez@colorado.edu>
7077 2001-11-17 Fernando Perez <fperez@colorado.edu>
7074
7078
7075 * Version 0.1.10 released, 0.1.11 opened for further work.
7079 * Version 0.1.10 released, 0.1.11 opened for further work.
7076
7080
7077 * Modified dirs and friends. dirs now *returns* the stack (not
7081 * Modified dirs and friends. dirs now *returns* the stack (not
7078 prints), so one can manipulate it as a variable. Convenient to
7082 prints), so one can manipulate it as a variable. Convenient to
7079 travel along many directories.
7083 travel along many directories.
7080
7084
7081 * Fixed bug in magic_pdef: would only work with functions with
7085 * Fixed bug in magic_pdef: would only work with functions with
7082 arguments with default values.
7086 arguments with default values.
7083
7087
7084 2001-11-14 Fernando Perez <fperez@colorado.edu>
7088 2001-11-14 Fernando Perez <fperez@colorado.edu>
7085
7089
7086 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7090 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7087 example with IPython. Various other minor fixes and cleanups.
7091 example with IPython. Various other minor fixes and cleanups.
7088
7092
7089 * Version 0.1.9 released, 0.1.10 opened for further work.
7093 * Version 0.1.9 released, 0.1.10 opened for further work.
7090
7094
7091 * Added sys.path to the list of directories searched in the
7095 * Added sys.path to the list of directories searched in the
7092 execfile= option. It used to be the current directory and the
7096 execfile= option. It used to be the current directory and the
7093 user's IPYTHONDIR only.
7097 user's IPYTHONDIR only.
7094
7098
7095 2001-11-13 Fernando Perez <fperez@colorado.edu>
7099 2001-11-13 Fernando Perez <fperez@colorado.edu>
7096
7100
7097 * Reinstated the raw_input/prefilter separation that Janko had
7101 * Reinstated the raw_input/prefilter separation that Janko had
7098 initially. This gives a more convenient setup for extending the
7102 initially. This gives a more convenient setup for extending the
7099 pre-processor from the outside: raw_input always gets a string,
7103 pre-processor from the outside: raw_input always gets a string,
7100 and prefilter has to process it. We can then redefine prefilter
7104 and prefilter has to process it. We can then redefine prefilter
7101 from the outside and implement extensions for special
7105 from the outside and implement extensions for special
7102 purposes.
7106 purposes.
7103
7107
7104 Today I got one for inputting PhysicalQuantity objects
7108 Today I got one for inputting PhysicalQuantity objects
7105 (from Scientific) without needing any function calls at
7109 (from Scientific) without needing any function calls at
7106 all. Extremely convenient, and it's all done as a user-level
7110 all. Extremely convenient, and it's all done as a user-level
7107 extension (no IPython code was touched). Now instead of:
7111 extension (no IPython code was touched). Now instead of:
7108 a = PhysicalQuantity(4.2,'m/s**2')
7112 a = PhysicalQuantity(4.2,'m/s**2')
7109 one can simply say
7113 one can simply say
7110 a = 4.2 m/s**2
7114 a = 4.2 m/s**2
7111 or even
7115 or even
7112 a = 4.2 m/s^2
7116 a = 4.2 m/s^2
7113
7117
7114 I use this, but it's also a proof of concept: IPython really is
7118 I use this, but it's also a proof of concept: IPython really is
7115 fully user-extensible, even at the level of the parsing of the
7119 fully user-extensible, even at the level of the parsing of the
7116 command line. It's not trivial, but it's perfectly doable.
7120 command line. It's not trivial, but it's perfectly doable.
7117
7121
7118 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7122 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7119 the problem of modules being loaded in the inverse order in which
7123 the problem of modules being loaded in the inverse order in which
7120 they were defined in
7124 they were defined in
7121
7125
7122 * Version 0.1.8 released, 0.1.9 opened for further work.
7126 * Version 0.1.8 released, 0.1.9 opened for further work.
7123
7127
7124 * Added magics pdef, source and file. They respectively show the
7128 * Added magics pdef, source and file. They respectively show the
7125 definition line ('prototype' in C), source code and full python
7129 definition line ('prototype' in C), source code and full python
7126 file for any callable object. The object inspector oinfo uses
7130 file for any callable object. The object inspector oinfo uses
7127 these to show the same information.
7131 these to show the same information.
7128
7132
7129 * Version 0.1.7 released, 0.1.8 opened for further work.
7133 * Version 0.1.7 released, 0.1.8 opened for further work.
7130
7134
7131 * Separated all the magic functions into a class called Magic. The
7135 * Separated all the magic functions into a class called Magic. The
7132 InteractiveShell class was becoming too big for Xemacs to handle
7136 InteractiveShell class was becoming too big for Xemacs to handle
7133 (de-indenting a line would lock it up for 10 seconds while it
7137 (de-indenting a line would lock it up for 10 seconds while it
7134 backtracked on the whole class!)
7138 backtracked on the whole class!)
7135
7139
7136 FIXME: didn't work. It can be done, but right now namespaces are
7140 FIXME: didn't work. It can be done, but right now namespaces are
7137 all messed up. Do it later (reverted it for now, so at least
7141 all messed up. Do it later (reverted it for now, so at least
7138 everything works as before).
7142 everything works as before).
7139
7143
7140 * Got the object introspection system (magic_oinfo) working! I
7144 * Got the object introspection system (magic_oinfo) working! I
7141 think this is pretty much ready for release to Janko, so he can
7145 think this is pretty much ready for release to Janko, so he can
7142 test it for a while and then announce it. Pretty much 100% of what
7146 test it for a while and then announce it. Pretty much 100% of what
7143 I wanted for the 'phase 1' release is ready. Happy, tired.
7147 I wanted for the 'phase 1' release is ready. Happy, tired.
7144
7148
7145 2001-11-12 Fernando Perez <fperez@colorado.edu>
7149 2001-11-12 Fernando Perez <fperez@colorado.edu>
7146
7150
7147 * Version 0.1.6 released, 0.1.7 opened for further work.
7151 * Version 0.1.6 released, 0.1.7 opened for further work.
7148
7152
7149 * Fixed bug in printing: it used to test for truth before
7153 * Fixed bug in printing: it used to test for truth before
7150 printing, so 0 wouldn't print. Now checks for None.
7154 printing, so 0 wouldn't print. Now checks for None.
7151
7155
7152 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7156 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7153 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7157 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7154 reaches by hand into the outputcache. Think of a better way to do
7158 reaches by hand into the outputcache. Think of a better way to do
7155 this later.
7159 this later.
7156
7160
7157 * Various small fixes thanks to Nathan's comments.
7161 * Various small fixes thanks to Nathan's comments.
7158
7162
7159 * Changed magic_pprint to magic_Pprint. This way it doesn't
7163 * Changed magic_pprint to magic_Pprint. This way it doesn't
7160 collide with pprint() and the name is consistent with the command
7164 collide with pprint() and the name is consistent with the command
7161 line option.
7165 line option.
7162
7166
7163 * Changed prompt counter behavior to be fully like
7167 * Changed prompt counter behavior to be fully like
7164 Mathematica's. That is, even input that doesn't return a result
7168 Mathematica's. That is, even input that doesn't return a result
7165 raises the prompt counter. The old behavior was kind of confusing
7169 raises the prompt counter. The old behavior was kind of confusing
7166 (getting the same prompt number several times if the operation
7170 (getting the same prompt number several times if the operation
7167 didn't return a result).
7171 didn't return a result).
7168
7172
7169 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7173 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7170
7174
7171 * Fixed -Classic mode (wasn't working anymore).
7175 * Fixed -Classic mode (wasn't working anymore).
7172
7176
7173 * Added colored prompts using Nathan's new code. Colors are
7177 * Added colored prompts using Nathan's new code. Colors are
7174 currently hardwired, they can be user-configurable. For
7178 currently hardwired, they can be user-configurable. For
7175 developers, they can be chosen in file ipythonlib.py, at the
7179 developers, they can be chosen in file ipythonlib.py, at the
7176 beginning of the CachedOutput class def.
7180 beginning of the CachedOutput class def.
7177
7181
7178 2001-11-11 Fernando Perez <fperez@colorado.edu>
7182 2001-11-11 Fernando Perez <fperez@colorado.edu>
7179
7183
7180 * Version 0.1.5 released, 0.1.6 opened for further work.
7184 * Version 0.1.5 released, 0.1.6 opened for further work.
7181
7185
7182 * Changed magic_env to *return* the environment as a dict (not to
7186 * Changed magic_env to *return* the environment as a dict (not to
7183 print it). This way it prints, but it can also be processed.
7187 print it). This way it prints, but it can also be processed.
7184
7188
7185 * Added Verbose exception reporting to interactive
7189 * Added Verbose exception reporting to interactive
7186 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7190 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7187 traceback. Had to make some changes to the ultraTB file. This is
7191 traceback. Had to make some changes to the ultraTB file. This is
7188 probably the last 'big' thing in my mental todo list. This ties
7192 probably the last 'big' thing in my mental todo list. This ties
7189 in with the next entry:
7193 in with the next entry:
7190
7194
7191 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7195 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7192 has to specify is Plain, Color or Verbose for all exception
7196 has to specify is Plain, Color or Verbose for all exception
7193 handling.
7197 handling.
7194
7198
7195 * Removed ShellServices option. All this can really be done via
7199 * Removed ShellServices option. All this can really be done via
7196 the magic system. It's easier to extend, cleaner and has automatic
7200 the magic system. It's easier to extend, cleaner and has automatic
7197 namespace protection and documentation.
7201 namespace protection and documentation.
7198
7202
7199 2001-11-09 Fernando Perez <fperez@colorado.edu>
7203 2001-11-09 Fernando Perez <fperez@colorado.edu>
7200
7204
7201 * Fixed bug in output cache flushing (missing parameter to
7205 * Fixed bug in output cache flushing (missing parameter to
7202 __init__). Other small bugs fixed (found using pychecker).
7206 __init__). Other small bugs fixed (found using pychecker).
7203
7207
7204 * Version 0.1.4 opened for bugfixing.
7208 * Version 0.1.4 opened for bugfixing.
7205
7209
7206 2001-11-07 Fernando Perez <fperez@colorado.edu>
7210 2001-11-07 Fernando Perez <fperez@colorado.edu>
7207
7211
7208 * Version 0.1.3 released, mainly because of the raw_input bug.
7212 * Version 0.1.3 released, mainly because of the raw_input bug.
7209
7213
7210 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7214 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7211 and when testing for whether things were callable, a call could
7215 and when testing for whether things were callable, a call could
7212 actually be made to certain functions. They would get called again
7216 actually be made to certain functions. They would get called again
7213 once 'really' executed, with a resulting double call. A disaster
7217 once 'really' executed, with a resulting double call. A disaster
7214 in many cases (list.reverse() would never work!).
7218 in many cases (list.reverse() would never work!).
7215
7219
7216 * Removed prefilter() function, moved its code to raw_input (which
7220 * Removed prefilter() function, moved its code to raw_input (which
7217 after all was just a near-empty caller for prefilter). This saves
7221 after all was just a near-empty caller for prefilter). This saves
7218 a function call on every prompt, and simplifies the class a tiny bit.
7222 a function call on every prompt, and simplifies the class a tiny bit.
7219
7223
7220 * Fix _ip to __ip name in magic example file.
7224 * Fix _ip to __ip name in magic example file.
7221
7225
7222 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7226 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7223 work with non-gnu versions of tar.
7227 work with non-gnu versions of tar.
7224
7228
7225 2001-11-06 Fernando Perez <fperez@colorado.edu>
7229 2001-11-06 Fernando Perez <fperez@colorado.edu>
7226
7230
7227 * Version 0.1.2. Just to keep track of the recent changes.
7231 * Version 0.1.2. Just to keep track of the recent changes.
7228
7232
7229 * Fixed nasty bug in output prompt routine. It used to check 'if
7233 * Fixed nasty bug in output prompt routine. It used to check 'if
7230 arg != None...'. Problem is, this fails if arg implements a
7234 arg != None...'. Problem is, this fails if arg implements a
7231 special comparison (__cmp__) which disallows comparing to
7235 special comparison (__cmp__) which disallows comparing to
7232 None. Found it when trying to use the PhysicalQuantity module from
7236 None. Found it when trying to use the PhysicalQuantity module from
7233 ScientificPython.
7237 ScientificPython.
7234
7238
7235 2001-11-05 Fernando Perez <fperez@colorado.edu>
7239 2001-11-05 Fernando Perez <fperez@colorado.edu>
7236
7240
7237 * Also added dirs. Now the pushd/popd/dirs family functions
7241 * Also added dirs. Now the pushd/popd/dirs family functions
7238 basically like the shell, with the added convenience of going home
7242 basically like the shell, with the added convenience of going home
7239 when called with no args.
7243 when called with no args.
7240
7244
7241 * pushd/popd slightly modified to mimic shell behavior more
7245 * pushd/popd slightly modified to mimic shell behavior more
7242 closely.
7246 closely.
7243
7247
7244 * Added env,pushd,popd from ShellServices as magic functions. I
7248 * Added env,pushd,popd from ShellServices as magic functions. I
7245 think the cleanest will be to port all desired functions from
7249 think the cleanest will be to port all desired functions from
7246 ShellServices as magics and remove ShellServices altogether. This
7250 ShellServices as magics and remove ShellServices altogether. This
7247 will provide a single, clean way of adding functionality
7251 will provide a single, clean way of adding functionality
7248 (shell-type or otherwise) to IP.
7252 (shell-type or otherwise) to IP.
7249
7253
7250 2001-11-04 Fernando Perez <fperez@colorado.edu>
7254 2001-11-04 Fernando Perez <fperez@colorado.edu>
7251
7255
7252 * Added .ipython/ directory to sys.path. This way users can keep
7256 * Added .ipython/ directory to sys.path. This way users can keep
7253 customizations there and access them via import.
7257 customizations there and access them via import.
7254
7258
7255 2001-11-03 Fernando Perez <fperez@colorado.edu>
7259 2001-11-03 Fernando Perez <fperez@colorado.edu>
7256
7260
7257 * Opened version 0.1.1 for new changes.
7261 * Opened version 0.1.1 for new changes.
7258
7262
7259 * Changed version number to 0.1.0: first 'public' release, sent to
7263 * Changed version number to 0.1.0: first 'public' release, sent to
7260 Nathan and Janko.
7264 Nathan and Janko.
7261
7265
7262 * Lots of small fixes and tweaks.
7266 * Lots of small fixes and tweaks.
7263
7267
7264 * Minor changes to whos format. Now strings are shown, snipped if
7268 * Minor changes to whos format. Now strings are shown, snipped if
7265 too long.
7269 too long.
7266
7270
7267 * Changed ShellServices to work on __main__ so they show up in @who
7271 * Changed ShellServices to work on __main__ so they show up in @who
7268
7272
7269 * Help also works with ? at the end of a line:
7273 * Help also works with ? at the end of a line:
7270 ?sin and sin?
7274 ?sin and sin?
7271 both produce the same effect. This is nice, as often I use the
7275 both produce the same effect. This is nice, as often I use the
7272 tab-complete to find the name of a method, but I used to then have
7276 tab-complete to find the name of a method, but I used to then have
7273 to go to the beginning of the line to put a ? if I wanted more
7277 to go to the beginning of the line to put a ? if I wanted more
7274 info. Now I can just add the ? and hit return. Convenient.
7278 info. Now I can just add the ? and hit return. Convenient.
7275
7279
7276 2001-11-02 Fernando Perez <fperez@colorado.edu>
7280 2001-11-02 Fernando Perez <fperez@colorado.edu>
7277
7281
7278 * Python version check (>=2.1) added.
7282 * Python version check (>=2.1) added.
7279
7283
7280 * Added LazyPython documentation. At this point the docs are quite
7284 * Added LazyPython documentation. At this point the docs are quite
7281 a mess. A cleanup is in order.
7285 a mess. A cleanup is in order.
7282
7286
7283 * Auto-installer created. For some bizarre reason, the zipfiles
7287 * Auto-installer created. For some bizarre reason, the zipfiles
7284 module isn't working on my system. So I made a tar version
7288 module isn't working on my system. So I made a tar version
7285 (hopefully the command line options in various systems won't kill
7289 (hopefully the command line options in various systems won't kill
7286 me).
7290 me).
7287
7291
7288 * Fixes to Struct in genutils. Now all dictionary-like methods are
7292 * Fixes to Struct in genutils. Now all dictionary-like methods are
7289 protected (reasonably).
7293 protected (reasonably).
7290
7294
7291 * Added pager function to genutils and changed ? to print usage
7295 * Added pager function to genutils and changed ? to print usage
7292 note through it (it was too long).
7296 note through it (it was too long).
7293
7297
7294 * Added the LazyPython functionality. Works great! I changed the
7298 * Added the LazyPython functionality. Works great! I changed the
7295 auto-quote escape to ';', it's on home row and next to '. But
7299 auto-quote escape to ';', it's on home row and next to '. But
7296 both auto-quote and auto-paren (still /) escapes are command-line
7300 both auto-quote and auto-paren (still /) escapes are command-line
7297 parameters.
7301 parameters.
7298
7302
7299
7303
7300 2001-11-01 Fernando Perez <fperez@colorado.edu>
7304 2001-11-01 Fernando Perez <fperez@colorado.edu>
7301
7305
7302 * Version changed to 0.0.7. Fairly large change: configuration now
7306 * Version changed to 0.0.7. Fairly large change: configuration now
7303 is all stored in a directory, by default .ipython. There, all
7307 is all stored in a directory, by default .ipython. There, all
7304 config files have normal looking names (not .names)
7308 config files have normal looking names (not .names)
7305
7309
7306 * Version 0.0.6 Released first to Lucas and Archie as a test
7310 * Version 0.0.6 Released first to Lucas and Archie as a test
7307 run. Since it's the first 'semi-public' release, change version to
7311 run. Since it's the first 'semi-public' release, change version to
7308 > 0.0.6 for any changes now.
7312 > 0.0.6 for any changes now.
7309
7313
7310 * Stuff I had put in the ipplib.py changelog:
7314 * Stuff I had put in the ipplib.py changelog:
7311
7315
7312 Changes to InteractiveShell:
7316 Changes to InteractiveShell:
7313
7317
7314 - Made the usage message a parameter.
7318 - Made the usage message a parameter.
7315
7319
7316 - Require the name of the shell variable to be given. It's a bit
7320 - Require the name of the shell variable to be given. It's a bit
7317 of a hack, but allows the name 'shell' not to be hardwired in the
7321 of a hack, but allows the name 'shell' not to be hardwired in the
7318 magic (@) handler, which is problematic b/c it requires
7322 magic (@) handler, which is problematic b/c it requires
7319 polluting the global namespace with 'shell'. This in turn is
7323 polluting the global namespace with 'shell'. This in turn is
7320 fragile: if a user redefines a variable called shell, things
7324 fragile: if a user redefines a variable called shell, things
7321 break.
7325 break.
7322
7326
7323 - magic @: all functions available through @ need to be defined
7327 - magic @: all functions available through @ need to be defined
7324 as magic_<name>, even though they can be called simply as
7328 as magic_<name>, even though they can be called simply as
7325 @<name>. This allows the special command @magic to gather
7329 @<name>. This allows the special command @magic to gather
7326 information automatically about all existing magic functions,
7330 information automatically about all existing magic functions,
7327 even if they are run-time user extensions, by parsing the shell
7331 even if they are run-time user extensions, by parsing the shell
7328 instance __dict__ looking for special magic_ names.
7332 instance __dict__ looking for special magic_ names.
7329
7333
7330 - mainloop: added *two* local namespace parameters. This allows
7334 - mainloop: added *two* local namespace parameters. This allows
7331 the class to differentiate between parameters which were there
7335 the class to differentiate between parameters which were there
7332 before and after command line initialization was processed. This
7336 before and after command line initialization was processed. This
7333 way, later @who can show things loaded at startup by the
7337 way, later @who can show things loaded at startup by the
7334 user. This trick was necessary to make session saving/reloading
7338 user. This trick was necessary to make session saving/reloading
7335 really work: ideally after saving/exiting/reloading a session,
7339 really work: ideally after saving/exiting/reloading a session,
7336 *everything* should look the same, including the output of @who. I
7340 *everything* should look the same, including the output of @who. I
7337 was only able to make this work with this double namespace
7341 was only able to make this work with this double namespace
7338 trick.
7342 trick.
7339
7343
7340 - added a header to the logfile which allows (almost) full
7344 - added a header to the logfile which allows (almost) full
7341 session restoring.
7345 session restoring.
7342
7346
7343 - prepend lines beginning with @ or !, with a and log
7347 - prepend lines beginning with @ or !, with a and log
7344 them. Why? !lines: may be useful to know what you did @lines:
7348 them. Why? !lines: may be useful to know what you did @lines:
7345 they may affect session state. So when restoring a session, at
7349 they may affect session state. So when restoring a session, at
7346 least inform the user of their presence. I couldn't quite get
7350 least inform the user of their presence. I couldn't quite get
7347 them to properly re-execute, but at least the user is warned.
7351 them to properly re-execute, but at least the user is warned.
7348
7352
7349 * Started ChangeLog.
7353 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now