##// END OF EJS Templates
missed changelog in previous commit
fperez -
Show More
@@ -1,6886 +1,6892 b''
1 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/Magic.py (magic_colors): fix win32-related error message
4 that could appear under *nix when readline was missing. Patch by
5 Scott Jackson, closes #175.
6
1 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
7 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
9 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
4 completer that it traits-aware, so that traits objects don't show
10 completer that it traits-aware, so that traits objects don't show
5 all of their internal attributes all the time.
11 all of their internal attributes all the time.
6
12
7 * IPython/genutils.py (dir2): moved this code from inside
13 * IPython/genutils.py (dir2): moved this code from inside
8 completer.py to expose it publicly, so I could use it in the
14 completer.py to expose it publicly, so I could use it in the
9 wildcards bugfix.
15 wildcards bugfix.
10
16
11 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
17 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
12 Stefan with Traits.
18 Stefan with Traits.
13
19
14 * IPython/completer.py (Completer.attr_matches): change internal
20 * IPython/completer.py (Completer.attr_matches): change internal
15 var name from 'object' to 'obj', since 'object' is now a builtin
21 var name from 'object' to 'obj', since 'object' is now a builtin
16 and this can lead to weird bugs if reusing this code elsewhere.
22 and this can lead to weird bugs if reusing this code elsewhere.
17
23
18 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
24 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
19
25
20 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
26 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
21 'foo?' and update the code to prevent printing of default
27 'foo?' and update the code to prevent printing of default
22 docstrings that started appearing after I added support for
28 docstrings that started appearing after I added support for
23 new-style classes. The approach I'm using isn't ideal (I just
29 new-style classes. The approach I'm using isn't ideal (I just
24 special-case those strings) but I'm not sure how to more robustly
30 special-case those strings) but I'm not sure how to more robustly
25 differentiate between truly user-written strings and Python's
31 differentiate between truly user-written strings and Python's
26 automatic ones.
32 automatic ones.
27
33
28 2007-07-09 Ville Vainio <vivainio@gmail.com>
34 2007-07-09 Ville Vainio <vivainio@gmail.com>
29
35
30 * completer.py: Applied Matthew Neeley's patch:
36 * completer.py: Applied Matthew Neeley's patch:
31 Dynamic attributes from trait_names and _getAttributeNames are added
37 Dynamic attributes from trait_names and _getAttributeNames are added
32 to the list of tab completions, but when this happens, the attribute
38 to the list of tab completions, but when this happens, the attribute
33 list is turned into a set, so the attributes are unordered when
39 list is turned into a set, so the attributes are unordered when
34 printed, which makes it hard to find the right completion. This patch
40 printed, which makes it hard to find the right completion. This patch
35 turns this set back into a list and sort it.
41 turns this set back into a list and sort it.
36
42
37 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
43 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
38
44
39 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
45 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
40 classes in various inspector functions.
46 classes in various inspector functions.
41
47
42 2007-06-28 Ville Vainio <vivainio@gmail.com>
48 2007-06-28 Ville Vainio <vivainio@gmail.com>
43
49
44 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
50 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
45 Implement "shadow" namespace, and callable aliases that reside there.
51 Implement "shadow" namespace, and callable aliases that reside there.
46 Use them by:
52 Use them by:
47
53
48 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
54 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
49
55
50 foo hello world
56 foo hello world
51 (gets translated to:)
57 (gets translated to:)
52 _sh.foo(r"""hello world""")
58 _sh.foo(r"""hello world""")
53
59
54 In practice, this kind of alias can take the role of a magic function
60 In practice, this kind of alias can take the role of a magic function
55
61
56 * New generic inspect_object, called on obj? and obj??
62 * New generic inspect_object, called on obj? and obj??
57
63
58 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
64 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
59
65
60 * IPython/ultraTB.py (findsource): fix a problem with
66 * IPython/ultraTB.py (findsource): fix a problem with
61 inspect.getfile that can cause crashes during traceback construction.
67 inspect.getfile that can cause crashes during traceback construction.
62
68
63 2007-06-14 Ville Vainio <vivainio@gmail.com>
69 2007-06-14 Ville Vainio <vivainio@gmail.com>
64
70
65 * iplib.py (handle_auto): Try to use ascii for printing "--->"
71 * iplib.py (handle_auto): Try to use ascii for printing "--->"
66 autocall rewrite indication, becausesometimes unicode fails to print
72 autocall rewrite indication, becausesometimes unicode fails to print
67 properly (and you get ' - - - '). Use plain uncoloured ---> for
73 properly (and you get ' - - - '). Use plain uncoloured ---> for
68 unicode.
74 unicode.
69
75
70 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
76 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
71
77
72 . pickleshare 'hash' commands (hget, hset, hcompress,
78 . pickleshare 'hash' commands (hget, hset, hcompress,
73 hdict) for efficient shadow history storage.
79 hdict) for efficient shadow history storage.
74
80
75 2007-06-13 Ville Vainio <vivainio@gmail.com>
81 2007-06-13 Ville Vainio <vivainio@gmail.com>
76
82
77 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
83 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
78 Added kw arg 'interactive', tell whether vars should be visible
84 Added kw arg 'interactive', tell whether vars should be visible
79 with %whos.
85 with %whos.
80
86
81 2007-06-11 Ville Vainio <vivainio@gmail.com>
87 2007-06-11 Ville Vainio <vivainio@gmail.com>
82
88
83 * pspersistence.py, Magic.py, iplib.py: directory history now saved
89 * pspersistence.py, Magic.py, iplib.py: directory history now saved
84 to db
90 to db
85
91
86 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
92 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
87 Also, it exits IPython immediately after evaluating the command (just like
93 Also, it exits IPython immediately after evaluating the command (just like
88 std python)
94 std python)
89
95
90 2007-06-05 Walter Doerwald <walter@livinglogic.de>
96 2007-06-05 Walter Doerwald <walter@livinglogic.de>
91
97
92 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
98 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
93 Python string and captures the output. (Idea and original patch by
99 Python string and captures the output. (Idea and original patch by
94 StοΏ½fan van der Walt)
100 StοΏ½fan van der Walt)
95
101
96 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
102 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
97
103
98 * IPython/ultraTB.py (VerboseTB.text): update printing of
104 * IPython/ultraTB.py (VerboseTB.text): update printing of
99 exception types for Python 2.5 (now all exceptions in the stdlib
105 exception types for Python 2.5 (now all exceptions in the stdlib
100 are new-style classes).
106 are new-style classes).
101
107
102 2007-05-31 Walter Doerwald <walter@livinglogic.de>
108 2007-05-31 Walter Doerwald <walter@livinglogic.de>
103
109
104 * IPython/Extensions/igrid.py: Add new commands refresh and
110 * IPython/Extensions/igrid.py: Add new commands refresh and
105 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
111 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
106 the iterator once (refresh) or after every x seconds (refresh_timer).
112 the iterator once (refresh) or after every x seconds (refresh_timer).
107 Add a working implementation of "searchexpression", where the text
113 Add a working implementation of "searchexpression", where the text
108 entered is not the text to search for, but an expression that must
114 entered is not the text to search for, but an expression that must
109 be true. Added display of shortcuts to the menu. Added commands "pickinput"
115 be true. Added display of shortcuts to the menu. Added commands "pickinput"
110 and "pickinputattr" that put the object or attribute under the cursor
116 and "pickinputattr" that put the object or attribute under the cursor
111 in the input line. Split the statusbar to be able to display the currently
117 in the input line. Split the statusbar to be able to display the currently
112 active refresh interval. (Patch by Nik Tautenhahn)
118 active refresh interval. (Patch by Nik Tautenhahn)
113
119
114 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
120 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
115
121
116 * fixing set_term_title to use ctypes as default
122 * fixing set_term_title to use ctypes as default
117
123
118 * fixing set_term_title fallback to work when curent dir
124 * fixing set_term_title fallback to work when curent dir
119 is on a windows network share
125 is on a windows network share
120
126
121 2007-05-28 Ville Vainio <vivainio@gmail.com>
127 2007-05-28 Ville Vainio <vivainio@gmail.com>
122
128
123 * %cpaste: strip + with > from left (diffs).
129 * %cpaste: strip + with > from left (diffs).
124
130
125 * iplib.py: Fix crash when readline not installed
131 * iplib.py: Fix crash when readline not installed
126
132
127 2007-05-26 Ville Vainio <vivainio@gmail.com>
133 2007-05-26 Ville Vainio <vivainio@gmail.com>
128
134
129 * generics.py: intruduce easy to extend result_display generic
135 * generics.py: intruduce easy to extend result_display generic
130 function (using simplegeneric.py).
136 function (using simplegeneric.py).
131
137
132 * Fixed the append functionality of %set.
138 * Fixed the append functionality of %set.
133
139
134 2007-05-25 Ville Vainio <vivainio@gmail.com>
140 2007-05-25 Ville Vainio <vivainio@gmail.com>
135
141
136 * New magic: %rep (fetch / run old commands from history)
142 * New magic: %rep (fetch / run old commands from history)
137
143
138 * New extension: mglob (%mglob magic), for powerful glob / find /filter
144 * New extension: mglob (%mglob magic), for powerful glob / find /filter
139 like functionality
145 like functionality
140
146
141 % maghistory.py: %hist -g PATTERM greps the history for pattern
147 % maghistory.py: %hist -g PATTERM greps the history for pattern
142
148
143 2007-05-24 Walter Doerwald <walter@livinglogic.de>
149 2007-05-24 Walter Doerwald <walter@livinglogic.de>
144
150
145 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
151 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
146 browse the IPython input history
152 browse the IPython input history
147
153
148 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
154 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
149 (mapped to "i") can be used to put the object under the curser in the input
155 (mapped to "i") can be used to put the object under the curser in the input
150 line. pickinputattr (mapped to "I") does the same for the attribute under
156 line. pickinputattr (mapped to "I") does the same for the attribute under
151 the cursor.
157 the cursor.
152
158
153 2007-05-24 Ville Vainio <vivainio@gmail.com>
159 2007-05-24 Ville Vainio <vivainio@gmail.com>
154
160
155 * Grand magic cleansing (changeset [2380]):
161 * Grand magic cleansing (changeset [2380]):
156
162
157 * Introduce ipy_legacy.py where the following magics were
163 * Introduce ipy_legacy.py where the following magics were
158 moved:
164 moved:
159
165
160 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
166 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
161
167
162 If you need them, either use default profile or "import ipy_legacy"
168 If you need them, either use default profile or "import ipy_legacy"
163 in your ipy_user_conf.py
169 in your ipy_user_conf.py
164
170
165 * Move sh and scipy profile to Extensions from UserConfig. this implies
171 * Move sh and scipy profile to Extensions from UserConfig. this implies
166 you should not edit them, but you don't need to run %upgrade when
172 you should not edit them, but you don't need to run %upgrade when
167 upgrading IPython anymore.
173 upgrading IPython anymore.
168
174
169 * %hist/%history now operates in "raw" mode by default. To get the old
175 * %hist/%history now operates in "raw" mode by default. To get the old
170 behaviour, run '%hist -n' (native mode).
176 behaviour, run '%hist -n' (native mode).
171
177
172 * split ipy_stock_completers.py to ipy_stock_completers.py and
178 * split ipy_stock_completers.py to ipy_stock_completers.py and
173 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
179 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
174 installed as default.
180 installed as default.
175
181
176 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
182 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
177 handling.
183 handling.
178
184
179 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
185 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
180 input if readline is available.
186 input if readline is available.
181
187
182 2007-05-23 Ville Vainio <vivainio@gmail.com>
188 2007-05-23 Ville Vainio <vivainio@gmail.com>
183
189
184 * macro.py: %store uses __getstate__ properly
190 * macro.py: %store uses __getstate__ properly
185
191
186 * exesetup.py: added new setup script for creating
192 * exesetup.py: added new setup script for creating
187 standalone IPython executables with py2exe (i.e.
193 standalone IPython executables with py2exe (i.e.
188 no python installation required).
194 no python installation required).
189
195
190 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
196 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
191 its place.
197 its place.
192
198
193 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
199 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
194
200
195 2007-05-21 Ville Vainio <vivainio@gmail.com>
201 2007-05-21 Ville Vainio <vivainio@gmail.com>
196
202
197 * platutil_win32.py (set_term_title): handle
203 * platutil_win32.py (set_term_title): handle
198 failure of 'title' system call properly.
204 failure of 'title' system call properly.
199
205
200 2007-05-17 Walter Doerwald <walter@livinglogic.de>
206 2007-05-17 Walter Doerwald <walter@livinglogic.de>
201
207
202 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
208 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
203 (Bug detected by Paul Mueller).
209 (Bug detected by Paul Mueller).
204
210
205 2007-05-16 Ville Vainio <vivainio@gmail.com>
211 2007-05-16 Ville Vainio <vivainio@gmail.com>
206
212
207 * ipy_profile_sci.py, ipython_win_post_install.py: Create
213 * ipy_profile_sci.py, ipython_win_post_install.py: Create
208 new "sci" profile, effectively a modern version of the old
214 new "sci" profile, effectively a modern version of the old
209 "scipy" profile (which is now slated for deprecation).
215 "scipy" profile (which is now slated for deprecation).
210
216
211 2007-05-15 Ville Vainio <vivainio@gmail.com>
217 2007-05-15 Ville Vainio <vivainio@gmail.com>
212
218
213 * pycolorize.py, pycolor.1: Paul Mueller's patches that
219 * pycolorize.py, pycolor.1: Paul Mueller's patches that
214 make pycolorize read input from stdin when run without arguments.
220 make pycolorize read input from stdin when run without arguments.
215
221
216 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
222 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
217
223
218 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
224 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
219 it in sh profile (instead of ipy_system_conf.py).
225 it in sh profile (instead of ipy_system_conf.py).
220
226
221 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
227 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
222 aliases are now lower case on windows (MyCommand.exe => mycommand).
228 aliases are now lower case on windows (MyCommand.exe => mycommand).
223
229
224 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
230 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
225 Macros are now callable objects that inherit from ipapi.IPyAutocall,
231 Macros are now callable objects that inherit from ipapi.IPyAutocall,
226 i.e. get autocalled regardless of system autocall setting.
232 i.e. get autocalled regardless of system autocall setting.
227
233
228 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
234 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
229
235
230 * IPython/rlineimpl.py: check for clear_history in readline and
236 * IPython/rlineimpl.py: check for clear_history in readline and
231 make it a dummy no-op if not available. This function isn't
237 make it a dummy no-op if not available. This function isn't
232 guaranteed to be in the API and appeared in Python 2.4, so we need
238 guaranteed to be in the API and appeared in Python 2.4, so we need
233 to check it ourselves. Also, clean up this file quite a bit.
239 to check it ourselves. Also, clean up this file quite a bit.
234
240
235 * ipython.1: update man page and full manual with information
241 * ipython.1: update man page and full manual with information
236 about threads (remove outdated warning). Closes #151.
242 about threads (remove outdated warning). Closes #151.
237
243
238 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
244 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
239
245
240 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
246 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
241 in trunk (note that this made it into the 0.8.1 release already,
247 in trunk (note that this made it into the 0.8.1 release already,
242 but the changelogs didn't get coordinated). Many thanks to Gael
248 but the changelogs didn't get coordinated). Many thanks to Gael
243 Varoquaux <gael.varoquaux-AT-normalesup.org>
249 Varoquaux <gael.varoquaux-AT-normalesup.org>
244
250
245 2007-05-09 *** Released version 0.8.1
251 2007-05-09 *** Released version 0.8.1
246
252
247 2007-05-10 Walter Doerwald <walter@livinglogic.de>
253 2007-05-10 Walter Doerwald <walter@livinglogic.de>
248
254
249 * IPython/Extensions/igrid.py: Incorporate html help into
255 * IPython/Extensions/igrid.py: Incorporate html help into
250 the module, so we don't have to search for the file.
256 the module, so we don't have to search for the file.
251
257
252 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
258 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
253
259
254 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
260 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
255
261
256 2007-04-30 Ville Vainio <vivainio@gmail.com>
262 2007-04-30 Ville Vainio <vivainio@gmail.com>
257
263
258 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
264 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
259 user has illegal (non-ascii) home directory name
265 user has illegal (non-ascii) home directory name
260
266
261 2007-04-27 Ville Vainio <vivainio@gmail.com>
267 2007-04-27 Ville Vainio <vivainio@gmail.com>
262
268
263 * platutils_win32.py: implement set_term_title for windows
269 * platutils_win32.py: implement set_term_title for windows
264
270
265 * Update version number
271 * Update version number
266
272
267 * ipy_profile_sh.py: more informative prompt (2 dir levels)
273 * ipy_profile_sh.py: more informative prompt (2 dir levels)
268
274
269 2007-04-26 Walter Doerwald <walter@livinglogic.de>
275 2007-04-26 Walter Doerwald <walter@livinglogic.de>
270
276
271 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
277 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
272 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
278 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
273 bug discovered by Ville).
279 bug discovered by Ville).
274
280
275 2007-04-26 Ville Vainio <vivainio@gmail.com>
281 2007-04-26 Ville Vainio <vivainio@gmail.com>
276
282
277 * Extensions/ipy_completers.py: Olivier's module completer now
283 * Extensions/ipy_completers.py: Olivier's module completer now
278 saves the list of root modules if it takes > 4 secs on the first run.
284 saves the list of root modules if it takes > 4 secs on the first run.
279
285
280 * Magic.py (%rehashx): %rehashx now clears the completer cache
286 * Magic.py (%rehashx): %rehashx now clears the completer cache
281
287
282
288
283 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
289 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
284
290
285 * ipython.el: fix incorrect color scheme, reported by Stefan.
291 * ipython.el: fix incorrect color scheme, reported by Stefan.
286 Closes #149.
292 Closes #149.
287
293
288 * IPython/PyColorize.py (Parser.format2): fix state-handling
294 * IPython/PyColorize.py (Parser.format2): fix state-handling
289 logic. I still don't like how that code handles state, but at
295 logic. I still don't like how that code handles state, but at
290 least now it should be correct, if inelegant. Closes #146.
296 least now it should be correct, if inelegant. Closes #146.
291
297
292 2007-04-25 Ville Vainio <vivainio@gmail.com>
298 2007-04-25 Ville Vainio <vivainio@gmail.com>
293
299
294 * Extensions/ipy_which.py: added extension for %which magic, works
300 * Extensions/ipy_which.py: added extension for %which magic, works
295 a lot like unix 'which' but also finds and expands aliases, and
301 a lot like unix 'which' but also finds and expands aliases, and
296 allows wildcards.
302 allows wildcards.
297
303
298 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
304 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
299 as opposed to returning nothing.
305 as opposed to returning nothing.
300
306
301 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
307 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
302 ipy_stock_completers on default profile, do import on sh profile.
308 ipy_stock_completers on default profile, do import on sh profile.
303
309
304 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
310 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
305
311
306 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
312 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
307 like ipython.py foo.py which raised a IndexError.
313 like ipython.py foo.py which raised a IndexError.
308
314
309 2007-04-21 Ville Vainio <vivainio@gmail.com>
315 2007-04-21 Ville Vainio <vivainio@gmail.com>
310
316
311 * Extensions/ipy_extutil.py: added extension to manage other ipython
317 * Extensions/ipy_extutil.py: added extension to manage other ipython
312 extensions. Now only supports 'ls' == list extensions.
318 extensions. Now only supports 'ls' == list extensions.
313
319
314 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
320 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
315
321
316 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
322 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
317 would prevent use of the exception system outside of a running
323 would prevent use of the exception system outside of a running
318 IPython instance.
324 IPython instance.
319
325
320 2007-04-20 Ville Vainio <vivainio@gmail.com>
326 2007-04-20 Ville Vainio <vivainio@gmail.com>
321
327
322 * Extensions/ipy_render.py: added extension for easy
328 * Extensions/ipy_render.py: added extension for easy
323 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
329 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
324 'Iptl' template notation,
330 'Iptl' template notation,
325
331
326 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
332 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
327 safer & faster 'import' completer.
333 safer & faster 'import' completer.
328
334
329 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
335 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
330 and _ip.defalias(name, command).
336 and _ip.defalias(name, command).
331
337
332 * Extensions/ipy_exportdb.py: New extension for exporting all the
338 * Extensions/ipy_exportdb.py: New extension for exporting all the
333 %store'd data in a portable format (normal ipapi calls like
339 %store'd data in a portable format (normal ipapi calls like
334 defmacro() etc.)
340 defmacro() etc.)
335
341
336 2007-04-19 Ville Vainio <vivainio@gmail.com>
342 2007-04-19 Ville Vainio <vivainio@gmail.com>
337
343
338 * upgrade_dir.py: skip junk files like *.pyc
344 * upgrade_dir.py: skip junk files like *.pyc
339
345
340 * Release.py: version number to 0.8.1
346 * Release.py: version number to 0.8.1
341
347
342 2007-04-18 Ville Vainio <vivainio@gmail.com>
348 2007-04-18 Ville Vainio <vivainio@gmail.com>
343
349
344 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
350 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
345 and later on win32.
351 and later on win32.
346
352
347 2007-04-16 Ville Vainio <vivainio@gmail.com>
353 2007-04-16 Ville Vainio <vivainio@gmail.com>
348
354
349 * iplib.py (showtraceback): Do not crash when running w/o readline.
355 * iplib.py (showtraceback): Do not crash when running w/o readline.
350
356
351 2007-04-12 Walter Doerwald <walter@livinglogic.de>
357 2007-04-12 Walter Doerwald <walter@livinglogic.de>
352
358
353 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
359 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
354 sorted (case sensitive with files and dirs mixed).
360 sorted (case sensitive with files and dirs mixed).
355
361
356 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
362 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
357
363
358 * IPython/Release.py (version): Open trunk for 0.8.1 development.
364 * IPython/Release.py (version): Open trunk for 0.8.1 development.
359
365
360 2007-04-10 *** Released version 0.8.0
366 2007-04-10 *** Released version 0.8.0
361
367
362 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
368 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
363
369
364 * Tag 0.8.0 for release.
370 * Tag 0.8.0 for release.
365
371
366 * IPython/iplib.py (reloadhist): add API function to cleanly
372 * IPython/iplib.py (reloadhist): add API function to cleanly
367 reload the readline history, which was growing inappropriately on
373 reload the readline history, which was growing inappropriately on
368 every %run call.
374 every %run call.
369
375
370 * win32_manual_post_install.py (run): apply last part of Nicolas
376 * win32_manual_post_install.py (run): apply last part of Nicolas
371 Pernetty's patch (I'd accidentally applied it in a different
377 Pernetty's patch (I'd accidentally applied it in a different
372 directory and this particular file didn't get patched).
378 directory and this particular file didn't get patched).
373
379
374 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
380 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
375
381
376 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
382 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
377 find the main thread id and use the proper API call. Thanks to
383 find the main thread id and use the proper API call. Thanks to
378 Stefan for the fix.
384 Stefan for the fix.
379
385
380 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
386 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
381 unit tests to reflect fixed ticket #52, and add more tests sent by
387 unit tests to reflect fixed ticket #52, and add more tests sent by
382 him.
388 him.
383
389
384 * IPython/iplib.py (raw_input): restore the readline completer
390 * IPython/iplib.py (raw_input): restore the readline completer
385 state on every input, in case third-party code messed it up.
391 state on every input, in case third-party code messed it up.
386 (_prefilter): revert recent addition of early-escape checks which
392 (_prefilter): revert recent addition of early-escape checks which
387 prevent many valid alias calls from working.
393 prevent many valid alias calls from working.
388
394
389 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
395 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
390 flag for sigint handler so we don't run a full signal() call on
396 flag for sigint handler so we don't run a full signal() call on
391 each runcode access.
397 each runcode access.
392
398
393 * IPython/Magic.py (magic_whos): small improvement to diagnostic
399 * IPython/Magic.py (magic_whos): small improvement to diagnostic
394 message.
400 message.
395
401
396 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
402 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
397
403
398 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
404 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
399 asynchronous exceptions working, i.e., Ctrl-C can actually
405 asynchronous exceptions working, i.e., Ctrl-C can actually
400 interrupt long-running code in the multithreaded shells.
406 interrupt long-running code in the multithreaded shells.
401
407
402 This is using Tomer Filiba's great ctypes-based trick:
408 This is using Tomer Filiba's great ctypes-based trick:
403 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
409 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
404 this in the past, but hadn't been able to make it work before. So
410 this in the past, but hadn't been able to make it work before. So
405 far it looks like it's actually running, but this needs more
411 far it looks like it's actually running, but this needs more
406 testing. If it really works, I'll be *very* happy, and we'll owe
412 testing. If it really works, I'll be *very* happy, and we'll owe
407 a huge thank you to Tomer. My current implementation is ugly,
413 a huge thank you to Tomer. My current implementation is ugly,
408 hackish and uses nasty globals, but I don't want to try and clean
414 hackish and uses nasty globals, but I don't want to try and clean
409 anything up until we know if it actually works.
415 anything up until we know if it actually works.
410
416
411 NOTE: this feature needs ctypes to work. ctypes is included in
417 NOTE: this feature needs ctypes to work. ctypes is included in
412 Python2.5, but 2.4 users will need to manually install it. This
418 Python2.5, but 2.4 users will need to manually install it. This
413 feature makes multi-threaded shells so much more usable that it's
419 feature makes multi-threaded shells so much more usable that it's
414 a minor price to pay (ctypes is very easy to install, already a
420 a minor price to pay (ctypes is very easy to install, already a
415 requirement for win32 and available in major linux distros).
421 requirement for win32 and available in major linux distros).
416
422
417 2007-04-04 Ville Vainio <vivainio@gmail.com>
423 2007-04-04 Ville Vainio <vivainio@gmail.com>
418
424
419 * Extensions/ipy_completers.py, ipy_stock_completers.py:
425 * Extensions/ipy_completers.py, ipy_stock_completers.py:
420 Moved implementations of 'bundled' completers to ipy_completers.py,
426 Moved implementations of 'bundled' completers to ipy_completers.py,
421 they are only enabled in ipy_stock_completers.py.
427 they are only enabled in ipy_stock_completers.py.
422
428
423 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
429 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
424
430
425 * IPython/PyColorize.py (Parser.format2): Fix identation of
431 * IPython/PyColorize.py (Parser.format2): Fix identation of
426 colorzied output and return early if color scheme is NoColor, to
432 colorzied output and return early if color scheme is NoColor, to
427 avoid unnecessary and expensive tokenization. Closes #131.
433 avoid unnecessary and expensive tokenization. Closes #131.
428
434
429 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
435 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
430
436
431 * IPython/Debugger.py: disable the use of pydb version 1.17. It
437 * IPython/Debugger.py: disable the use of pydb version 1.17. It
432 has a critical bug (a missing import that makes post-mortem not
438 has a critical bug (a missing import that makes post-mortem not
433 work at all). Unfortunately as of this time, this is the version
439 work at all). Unfortunately as of this time, this is the version
434 shipped with Ubuntu Edgy, so quite a few people have this one. I
440 shipped with Ubuntu Edgy, so quite a few people have this one. I
435 hope Edgy will update to a more recent package.
441 hope Edgy will update to a more recent package.
436
442
437 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
443 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
438
444
439 * IPython/iplib.py (_prefilter): close #52, second part of a patch
445 * IPython/iplib.py (_prefilter): close #52, second part of a patch
440 set by Stefan (only the first part had been applied before).
446 set by Stefan (only the first part had been applied before).
441
447
442 * IPython/Extensions/ipy_stock_completers.py (module_completer):
448 * IPython/Extensions/ipy_stock_completers.py (module_completer):
443 remove usage of the dangerous pkgutil.walk_packages(). See
449 remove usage of the dangerous pkgutil.walk_packages(). See
444 details in comments left in the code.
450 details in comments left in the code.
445
451
446 * IPython/Magic.py (magic_whos): add support for numpy arrays
452 * IPython/Magic.py (magic_whos): add support for numpy arrays
447 similar to what we had for Numeric.
453 similar to what we had for Numeric.
448
454
449 * IPython/completer.py (IPCompleter.complete): extend the
455 * IPython/completer.py (IPCompleter.complete): extend the
450 complete() call API to support completions by other mechanisms
456 complete() call API to support completions by other mechanisms
451 than readline. Closes #109.
457 than readline. Closes #109.
452
458
453 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
459 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
454 protect against a bug in Python's execfile(). Closes #123.
460 protect against a bug in Python's execfile(). Closes #123.
455
461
456 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
462 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
457
463
458 * IPython/iplib.py (split_user_input): ensure that when splitting
464 * IPython/iplib.py (split_user_input): ensure that when splitting
459 user input, the part that can be treated as a python name is pure
465 user input, the part that can be treated as a python name is pure
460 ascii (Python identifiers MUST be pure ascii). Part of the
466 ascii (Python identifiers MUST be pure ascii). Part of the
461 ongoing Unicode support work.
467 ongoing Unicode support work.
462
468
463 * IPython/Prompts.py (prompt_specials_color): Add \N for the
469 * IPython/Prompts.py (prompt_specials_color): Add \N for the
464 actual prompt number, without any coloring. This allows users to
470 actual prompt number, without any coloring. This allows users to
465 produce numbered prompts with their own colors. Added after a
471 produce numbered prompts with their own colors. Added after a
466 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
472 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
467
473
468 2007-03-31 Walter Doerwald <walter@livinglogic.de>
474 2007-03-31 Walter Doerwald <walter@livinglogic.de>
469
475
470 * IPython/Extensions/igrid.py: Map the return key
476 * IPython/Extensions/igrid.py: Map the return key
471 to enter() and shift-return to enterattr().
477 to enter() and shift-return to enterattr().
472
478
473 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
479 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
474
480
475 * IPython/Magic.py (magic_psearch): add unicode support by
481 * IPython/Magic.py (magic_psearch): add unicode support by
476 encoding to ascii the input, since this routine also only deals
482 encoding to ascii the input, since this routine also only deals
477 with valid Python names. Fixes a bug reported by Stefan.
483 with valid Python names. Fixes a bug reported by Stefan.
478
484
479 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
485 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
480
486
481 * IPython/Magic.py (_inspect): convert unicode input into ascii
487 * IPython/Magic.py (_inspect): convert unicode input into ascii
482 before trying to evaluate it as a Python identifier. This fixes a
488 before trying to evaluate it as a Python identifier. This fixes a
483 problem that the new unicode support had introduced when analyzing
489 problem that the new unicode support had introduced when analyzing
484 long definition lines for functions.
490 long definition lines for functions.
485
491
486 2007-03-24 Walter Doerwald <walter@livinglogic.de>
492 2007-03-24 Walter Doerwald <walter@livinglogic.de>
487
493
488 * IPython/Extensions/igrid.py: Fix picking. Using
494 * IPython/Extensions/igrid.py: Fix picking. Using
489 igrid with wxPython 2.6 and -wthread should work now.
495 igrid with wxPython 2.6 and -wthread should work now.
490 igrid.display() simply tries to create a frame without
496 igrid.display() simply tries to create a frame without
491 an application. Only if this fails an application is created.
497 an application. Only if this fails an application is created.
492
498
493 2007-03-23 Walter Doerwald <walter@livinglogic.de>
499 2007-03-23 Walter Doerwald <walter@livinglogic.de>
494
500
495 * IPython/Extensions/path.py: Updated to version 2.2.
501 * IPython/Extensions/path.py: Updated to version 2.2.
496
502
497 2007-03-23 Ville Vainio <vivainio@gmail.com>
503 2007-03-23 Ville Vainio <vivainio@gmail.com>
498
504
499 * iplib.py: recursive alias expansion now works better, so that
505 * iplib.py: recursive alias expansion now works better, so that
500 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
506 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
501 doesn't trip up the process, if 'd' has been aliased to 'ls'.
507 doesn't trip up the process, if 'd' has been aliased to 'ls'.
502
508
503 * Extensions/ipy_gnuglobal.py added, provides %global magic
509 * Extensions/ipy_gnuglobal.py added, provides %global magic
504 for users of http://www.gnu.org/software/global
510 for users of http://www.gnu.org/software/global
505
511
506 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
512 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
507 Closes #52. Patch by Stefan van der Walt.
513 Closes #52. Patch by Stefan van der Walt.
508
514
509 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
515 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
510
516
511 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
517 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
512 respect the __file__ attribute when using %run. Thanks to a bug
518 respect the __file__ attribute when using %run. Thanks to a bug
513 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
519 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
514
520
515 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
521 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
516
522
517 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
523 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
518 input. Patch sent by Stefan.
524 input. Patch sent by Stefan.
519
525
520 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
526 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
521 * IPython/Extensions/ipy_stock_completer.py
527 * IPython/Extensions/ipy_stock_completer.py
522 shlex_split, fix bug in shlex_split. len function
528 shlex_split, fix bug in shlex_split. len function
523 call was missing an if statement. Caused shlex_split to
529 call was missing an if statement. Caused shlex_split to
524 sometimes return "" as last element.
530 sometimes return "" as last element.
525
531
526 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
532 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
527
533
528 * IPython/completer.py
534 * IPython/completer.py
529 (IPCompleter.file_matches.single_dir_expand): fix a problem
535 (IPCompleter.file_matches.single_dir_expand): fix a problem
530 reported by Stefan, where directories containign a single subdir
536 reported by Stefan, where directories containign a single subdir
531 would be completed too early.
537 would be completed too early.
532
538
533 * IPython/Shell.py (_load_pylab): Make the execution of 'from
539 * IPython/Shell.py (_load_pylab): Make the execution of 'from
534 pylab import *' when -pylab is given be optional. A new flag,
540 pylab import *' when -pylab is given be optional. A new flag,
535 pylab_import_all controls this behavior, the default is True for
541 pylab_import_all controls this behavior, the default is True for
536 backwards compatibility.
542 backwards compatibility.
537
543
538 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
544 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
539 modified) R. Bernstein's patch for fully syntax highlighted
545 modified) R. Bernstein's patch for fully syntax highlighted
540 tracebacks. The functionality is also available under ultraTB for
546 tracebacks. The functionality is also available under ultraTB for
541 non-ipython users (someone using ultraTB but outside an ipython
547 non-ipython users (someone using ultraTB but outside an ipython
542 session). They can select the color scheme by setting the
548 session). They can select the color scheme by setting the
543 module-level global DEFAULT_SCHEME. The highlight functionality
549 module-level global DEFAULT_SCHEME. The highlight functionality
544 also works when debugging.
550 also works when debugging.
545
551
546 * IPython/genutils.py (IOStream.close): small patch by
552 * IPython/genutils.py (IOStream.close): small patch by
547 R. Bernstein for improved pydb support.
553 R. Bernstein for improved pydb support.
548
554
549 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
555 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
550 DaveS <davls@telus.net> to improve support of debugging under
556 DaveS <davls@telus.net> to improve support of debugging under
551 NTEmacs, including improved pydb behavior.
557 NTEmacs, including improved pydb behavior.
552
558
553 * IPython/Magic.py (magic_prun): Fix saving of profile info for
559 * IPython/Magic.py (magic_prun): Fix saving of profile info for
554 Python 2.5, where the stats object API changed a little. Thanks
560 Python 2.5, where the stats object API changed a little. Thanks
555 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
561 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
556
562
557 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
563 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
558 Pernetty's patch to improve support for (X)Emacs under Win32.
564 Pernetty's patch to improve support for (X)Emacs under Win32.
559
565
560 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
566 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
561
567
562 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
568 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
563 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
569 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
564 a report by Nik Tautenhahn.
570 a report by Nik Tautenhahn.
565
571
566 2007-03-16 Walter Doerwald <walter@livinglogic.de>
572 2007-03-16 Walter Doerwald <walter@livinglogic.de>
567
573
568 * setup.py: Add the igrid help files to the list of data files
574 * setup.py: Add the igrid help files to the list of data files
569 to be installed alongside igrid.
575 to be installed alongside igrid.
570 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
576 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
571 Show the input object of the igrid browser as the window tile.
577 Show the input object of the igrid browser as the window tile.
572 Show the object the cursor is on in the statusbar.
578 Show the object the cursor is on in the statusbar.
573
579
574 2007-03-15 Ville Vainio <vivainio@gmail.com>
580 2007-03-15 Ville Vainio <vivainio@gmail.com>
575
581
576 * Extensions/ipy_stock_completers.py: Fixed exception
582 * Extensions/ipy_stock_completers.py: Fixed exception
577 on mismatching quotes in %run completer. Patch by
583 on mismatching quotes in %run completer. Patch by
578 JοΏ½rgen Stenarson. Closes #127.
584 JοΏ½rgen Stenarson. Closes #127.
579
585
580 2007-03-14 Ville Vainio <vivainio@gmail.com>
586 2007-03-14 Ville Vainio <vivainio@gmail.com>
581
587
582 * Extensions/ext_rehashdir.py: Do not do auto_alias
588 * Extensions/ext_rehashdir.py: Do not do auto_alias
583 in %rehashdir, it clobbers %store'd aliases.
589 in %rehashdir, it clobbers %store'd aliases.
584
590
585 * UserConfig/ipy_profile_sh.py: envpersist.py extension
591 * UserConfig/ipy_profile_sh.py: envpersist.py extension
586 (beefed up %env) imported for sh profile.
592 (beefed up %env) imported for sh profile.
587
593
588 2007-03-10 Walter Doerwald <walter@livinglogic.de>
594 2007-03-10 Walter Doerwald <walter@livinglogic.de>
589
595
590 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
596 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
591 as the default browser.
597 as the default browser.
592 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
598 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
593 As igrid displays all attributes it ever encounters, fetch() (which has
599 As igrid displays all attributes it ever encounters, fetch() (which has
594 been renamed to _fetch()) doesn't have to recalculate the display attributes
600 been renamed to _fetch()) doesn't have to recalculate the display attributes
595 every time a new item is fetched. This should speed up scrolling.
601 every time a new item is fetched. This should speed up scrolling.
596
602
597 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
603 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
598
604
599 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
605 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
600 Schmolck's recently reported tab-completion bug (my previous one
606 Schmolck's recently reported tab-completion bug (my previous one
601 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
607 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
602
608
603 2007-03-09 Walter Doerwald <walter@livinglogic.de>
609 2007-03-09 Walter Doerwald <walter@livinglogic.de>
604
610
605 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
611 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
606 Close help window if exiting igrid.
612 Close help window if exiting igrid.
607
613
608 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
614 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
609
615
610 * IPython/Extensions/ipy_defaults.py: Check if readline is available
616 * IPython/Extensions/ipy_defaults.py: Check if readline is available
611 before calling functions from readline.
617 before calling functions from readline.
612
618
613 2007-03-02 Walter Doerwald <walter@livinglogic.de>
619 2007-03-02 Walter Doerwald <walter@livinglogic.de>
614
620
615 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
621 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
616 igrid is a wxPython-based display object for ipipe. If your system has
622 igrid is a wxPython-based display object for ipipe. If your system has
617 wx installed igrid will be the default display. Without wx ipipe falls
623 wx installed igrid will be the default display. Without wx ipipe falls
618 back to ibrowse (which needs curses). If no curses is installed ipipe
624 back to ibrowse (which needs curses). If no curses is installed ipipe
619 falls back to idump.
625 falls back to idump.
620
626
621 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
627 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
622
628
623 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
629 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
624 my changes from yesterday, they introduced bugs. Will reactivate
630 my changes from yesterday, they introduced bugs. Will reactivate
625 once I get a correct solution, which will be much easier thanks to
631 once I get a correct solution, which will be much easier thanks to
626 Dan Milstein's new prefilter test suite.
632 Dan Milstein's new prefilter test suite.
627
633
628 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
634 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
629
635
630 * IPython/iplib.py (split_user_input): fix input splitting so we
636 * IPython/iplib.py (split_user_input): fix input splitting so we
631 don't attempt attribute accesses on things that can't possibly be
637 don't attempt attribute accesses on things that can't possibly be
632 valid Python attributes. After a bug report by Alex Schmolck.
638 valid Python attributes. After a bug report by Alex Schmolck.
633 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
639 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
634 %magic with explicit % prefix.
640 %magic with explicit % prefix.
635
641
636 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
642 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
637
643
638 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
644 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
639 avoid a DeprecationWarning from GTK.
645 avoid a DeprecationWarning from GTK.
640
646
641 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
647 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
642
648
643 * IPython/genutils.py (clock): I modified clock() to return total
649 * IPython/genutils.py (clock): I modified clock() to return total
644 time, user+system. This is a more commonly needed metric. I also
650 time, user+system. This is a more commonly needed metric. I also
645 introduced the new clocku/clocks to get only user/system time if
651 introduced the new clocku/clocks to get only user/system time if
646 one wants those instead.
652 one wants those instead.
647
653
648 ***WARNING: API CHANGE*** clock() used to return only user time,
654 ***WARNING: API CHANGE*** clock() used to return only user time,
649 so if you want exactly the same results as before, use clocku
655 so if you want exactly the same results as before, use clocku
650 instead.
656 instead.
651
657
652 2007-02-22 Ville Vainio <vivainio@gmail.com>
658 2007-02-22 Ville Vainio <vivainio@gmail.com>
653
659
654 * IPython/Extensions/ipy_p4.py: Extension for improved
660 * IPython/Extensions/ipy_p4.py: Extension for improved
655 p4 (perforce version control system) experience.
661 p4 (perforce version control system) experience.
656 Adds %p4 magic with p4 command completion and
662 Adds %p4 magic with p4 command completion and
657 automatic -G argument (marshall output as python dict)
663 automatic -G argument (marshall output as python dict)
658
664
659 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
665 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
660
666
661 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
667 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
662 stop marks.
668 stop marks.
663 (ClearingMixin): a simple mixin to easily make a Demo class clear
669 (ClearingMixin): a simple mixin to easily make a Demo class clear
664 the screen in between blocks and have empty marquees. The
670 the screen in between blocks and have empty marquees. The
665 ClearDemo and ClearIPDemo classes that use it are included.
671 ClearDemo and ClearIPDemo classes that use it are included.
666
672
667 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
673 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
668
674
669 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
675 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
670 protect against exceptions at Python shutdown time. Patch
676 protect against exceptions at Python shutdown time. Patch
671 sumbmitted to upstream.
677 sumbmitted to upstream.
672
678
673 2007-02-14 Walter Doerwald <walter@livinglogic.de>
679 2007-02-14 Walter Doerwald <walter@livinglogic.de>
674
680
675 * IPython/Extensions/ibrowse.py: If entering the first object level
681 * IPython/Extensions/ibrowse.py: If entering the first object level
676 (i.e. the object for which the browser has been started) fails,
682 (i.e. the object for which the browser has been started) fails,
677 now the error is raised directly (aborting the browser) instead of
683 now the error is raised directly (aborting the browser) instead of
678 running into an empty levels list later.
684 running into an empty levels list later.
679
685
680 2007-02-03 Walter Doerwald <walter@livinglogic.de>
686 2007-02-03 Walter Doerwald <walter@livinglogic.de>
681
687
682 * IPython/Extensions/ipipe.py: Add an xrepr implementation
688 * IPython/Extensions/ipipe.py: Add an xrepr implementation
683 for the noitem object.
689 for the noitem object.
684
690
685 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
691 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
686
692
687 * IPython/completer.py (Completer.attr_matches): Fix small
693 * IPython/completer.py (Completer.attr_matches): Fix small
688 tab-completion bug with Enthought Traits objects with units.
694 tab-completion bug with Enthought Traits objects with units.
689 Thanks to a bug report by Tom Denniston
695 Thanks to a bug report by Tom Denniston
690 <tom.denniston-AT-alum.dartmouth.org>.
696 <tom.denniston-AT-alum.dartmouth.org>.
691
697
692 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
698 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
693
699
694 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
700 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
695 bug where only .ipy or .py would be completed. Once the first
701 bug where only .ipy or .py would be completed. Once the first
696 argument to %run has been given, all completions are valid because
702 argument to %run has been given, all completions are valid because
697 they are the arguments to the script, which may well be non-python
703 they are the arguments to the script, which may well be non-python
698 filenames.
704 filenames.
699
705
700 * IPython/irunner.py (InteractiveRunner.run_source): major updates
706 * IPython/irunner.py (InteractiveRunner.run_source): major updates
701 to irunner to allow it to correctly support real doctesting of
707 to irunner to allow it to correctly support real doctesting of
702 out-of-process ipython code.
708 out-of-process ipython code.
703
709
704 * IPython/Magic.py (magic_cd): Make the setting of the terminal
710 * IPython/Magic.py (magic_cd): Make the setting of the terminal
705 title an option (-noterm_title) because it completely breaks
711 title an option (-noterm_title) because it completely breaks
706 doctesting.
712 doctesting.
707
713
708 * IPython/demo.py: fix IPythonDemo class that was not actually working.
714 * IPython/demo.py: fix IPythonDemo class that was not actually working.
709
715
710 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
716 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
711
717
712 * IPython/irunner.py (main): fix small bug where extensions were
718 * IPython/irunner.py (main): fix small bug where extensions were
713 not being correctly recognized.
719 not being correctly recognized.
714
720
715 2007-01-23 Walter Doerwald <walter@livinglogic.de>
721 2007-01-23 Walter Doerwald <walter@livinglogic.de>
716
722
717 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
723 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
718 a string containing a single line yields the string itself as the
724 a string containing a single line yields the string itself as the
719 only item.
725 only item.
720
726
721 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
727 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
722 object if it's the same as the one on the last level (This avoids
728 object if it's the same as the one on the last level (This avoids
723 infinite recursion for one line strings).
729 infinite recursion for one line strings).
724
730
725 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
731 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
726
732
727 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
733 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
728 all output streams before printing tracebacks. This ensures that
734 all output streams before printing tracebacks. This ensures that
729 user output doesn't end up interleaved with traceback output.
735 user output doesn't end up interleaved with traceback output.
730
736
731 2007-01-10 Ville Vainio <vivainio@gmail.com>
737 2007-01-10 Ville Vainio <vivainio@gmail.com>
732
738
733 * Extensions/envpersist.py: Turbocharged %env that remembers
739 * Extensions/envpersist.py: Turbocharged %env that remembers
734 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
740 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
735 "%env VISUAL=jed".
741 "%env VISUAL=jed".
736
742
737 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
743 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
738
744
739 * IPython/iplib.py (showtraceback): ensure that we correctly call
745 * IPython/iplib.py (showtraceback): ensure that we correctly call
740 custom handlers in all cases (some with pdb were slipping through,
746 custom handlers in all cases (some with pdb were slipping through,
741 but I'm not exactly sure why).
747 but I'm not exactly sure why).
742
748
743 * IPython/Debugger.py (Tracer.__init__): added new class to
749 * IPython/Debugger.py (Tracer.__init__): added new class to
744 support set_trace-like usage of IPython's enhanced debugger.
750 support set_trace-like usage of IPython's enhanced debugger.
745
751
746 2006-12-24 Ville Vainio <vivainio@gmail.com>
752 2006-12-24 Ville Vainio <vivainio@gmail.com>
747
753
748 * ipmaker.py: more informative message when ipy_user_conf
754 * ipmaker.py: more informative message when ipy_user_conf
749 import fails (suggest running %upgrade).
755 import fails (suggest running %upgrade).
750
756
751 * tools/run_ipy_in_profiler.py: Utility to see where
757 * tools/run_ipy_in_profiler.py: Utility to see where
752 the time during IPython startup is spent.
758 the time during IPython startup is spent.
753
759
754 2006-12-20 Ville Vainio <vivainio@gmail.com>
760 2006-12-20 Ville Vainio <vivainio@gmail.com>
755
761
756 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
762 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
757
763
758 * ipapi.py: Add new ipapi method, expand_alias.
764 * ipapi.py: Add new ipapi method, expand_alias.
759
765
760 * Release.py: Bump up version to 0.7.4.svn
766 * Release.py: Bump up version to 0.7.4.svn
761
767
762 2006-12-17 Ville Vainio <vivainio@gmail.com>
768 2006-12-17 Ville Vainio <vivainio@gmail.com>
763
769
764 * Extensions/jobctrl.py: Fixed &cmd arg arg...
770 * Extensions/jobctrl.py: Fixed &cmd arg arg...
765 to work properly on posix too
771 to work properly on posix too
766
772
767 * Release.py: Update revnum (version is still just 0.7.3).
773 * Release.py: Update revnum (version is still just 0.7.3).
768
774
769 2006-12-15 Ville Vainio <vivainio@gmail.com>
775 2006-12-15 Ville Vainio <vivainio@gmail.com>
770
776
771 * scripts/ipython_win_post_install: create ipython.py in
777 * scripts/ipython_win_post_install: create ipython.py in
772 prefix + "/scripts".
778 prefix + "/scripts".
773
779
774 * Release.py: Update version to 0.7.3.
780 * Release.py: Update version to 0.7.3.
775
781
776 2006-12-14 Ville Vainio <vivainio@gmail.com>
782 2006-12-14 Ville Vainio <vivainio@gmail.com>
777
783
778 * scripts/ipython_win_post_install: Overwrite old shortcuts
784 * scripts/ipython_win_post_install: Overwrite old shortcuts
779 if they already exist
785 if they already exist
780
786
781 * Release.py: release 0.7.3rc2
787 * Release.py: release 0.7.3rc2
782
788
783 2006-12-13 Ville Vainio <vivainio@gmail.com>
789 2006-12-13 Ville Vainio <vivainio@gmail.com>
784
790
785 * Branch and update Release.py for 0.7.3rc1
791 * Branch and update Release.py for 0.7.3rc1
786
792
787 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
793 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
788
794
789 * IPython/Shell.py (IPShellWX): update for current WX naming
795 * IPython/Shell.py (IPShellWX): update for current WX naming
790 conventions, to avoid a deprecation warning with current WX
796 conventions, to avoid a deprecation warning with current WX
791 versions. Thanks to a report by Danny Shevitz.
797 versions. Thanks to a report by Danny Shevitz.
792
798
793 2006-12-12 Ville Vainio <vivainio@gmail.com>
799 2006-12-12 Ville Vainio <vivainio@gmail.com>
794
800
795 * ipmaker.py: apply david cournapeau's patch to make
801 * ipmaker.py: apply david cournapeau's patch to make
796 import_some work properly even when ipythonrc does
802 import_some work properly even when ipythonrc does
797 import_some on empty list (it was an old bug!).
803 import_some on empty list (it was an old bug!).
798
804
799 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
805 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
800 Add deprecation note to ipythonrc and a url to wiki
806 Add deprecation note to ipythonrc and a url to wiki
801 in ipy_user_conf.py
807 in ipy_user_conf.py
802
808
803
809
804 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
810 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
805 as if it was typed on IPython command prompt, i.e.
811 as if it was typed on IPython command prompt, i.e.
806 as IPython script.
812 as IPython script.
807
813
808 * example-magic.py, magic_grepl.py: remove outdated examples
814 * example-magic.py, magic_grepl.py: remove outdated examples
809
815
810 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
816 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
811
817
812 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
818 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
813 is called before any exception has occurred.
819 is called before any exception has occurred.
814
820
815 2006-12-08 Ville Vainio <vivainio@gmail.com>
821 2006-12-08 Ville Vainio <vivainio@gmail.com>
816
822
817 * Extensions/ipy_stock_completers.py: fix cd completer
823 * Extensions/ipy_stock_completers.py: fix cd completer
818 to translate /'s to \'s again.
824 to translate /'s to \'s again.
819
825
820 * completer.py: prevent traceback on file completions w/
826 * completer.py: prevent traceback on file completions w/
821 backslash.
827 backslash.
822
828
823 * Release.py: Update release number to 0.7.3b3 for release
829 * Release.py: Update release number to 0.7.3b3 for release
824
830
825 2006-12-07 Ville Vainio <vivainio@gmail.com>
831 2006-12-07 Ville Vainio <vivainio@gmail.com>
826
832
827 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
833 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
828 while executing external code. Provides more shell-like behaviour
834 while executing external code. Provides more shell-like behaviour
829 and overall better response to ctrl + C / ctrl + break.
835 and overall better response to ctrl + C / ctrl + break.
830
836
831 * tools/make_tarball.py: new script to create tarball straight from svn
837 * tools/make_tarball.py: new script to create tarball straight from svn
832 (setup.py sdist doesn't work on win32).
838 (setup.py sdist doesn't work on win32).
833
839
834 * Extensions/ipy_stock_completers.py: fix cd completer to give up
840 * Extensions/ipy_stock_completers.py: fix cd completer to give up
835 on dirnames with spaces and use the default completer instead.
841 on dirnames with spaces and use the default completer instead.
836
842
837 * Revision.py: Change version to 0.7.3b2 for release.
843 * Revision.py: Change version to 0.7.3b2 for release.
838
844
839 2006-12-05 Ville Vainio <vivainio@gmail.com>
845 2006-12-05 Ville Vainio <vivainio@gmail.com>
840
846
841 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
847 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
842 pydb patch 4 (rm debug printing, py 2.5 checking)
848 pydb patch 4 (rm debug printing, py 2.5 checking)
843
849
844 2006-11-30 Walter Doerwald <walter@livinglogic.de>
850 2006-11-30 Walter Doerwald <walter@livinglogic.de>
845 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
851 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
846 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
852 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
847 "refreshfind" (mapped to "R") does the same but tries to go back to the same
853 "refreshfind" (mapped to "R") does the same but tries to go back to the same
848 object the cursor was on before the refresh. The command "markrange" is
854 object the cursor was on before the refresh. The command "markrange" is
849 mapped to "%" now.
855 mapped to "%" now.
850 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
856 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
851
857
852 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
858 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
853
859
854 * IPython/Magic.py (magic_debug): new %debug magic to activate the
860 * IPython/Magic.py (magic_debug): new %debug magic to activate the
855 interactive debugger on the last traceback, without having to call
861 interactive debugger on the last traceback, without having to call
856 %pdb and rerun your code. Made minor changes in various modules,
862 %pdb and rerun your code. Made minor changes in various modules,
857 should automatically recognize pydb if available.
863 should automatically recognize pydb if available.
858
864
859 2006-11-28 Ville Vainio <vivainio@gmail.com>
865 2006-11-28 Ville Vainio <vivainio@gmail.com>
860
866
861 * completer.py: If the text start with !, show file completions
867 * completer.py: If the text start with !, show file completions
862 properly. This helps when trying to complete command name
868 properly. This helps when trying to complete command name
863 for shell escapes.
869 for shell escapes.
864
870
865 2006-11-27 Ville Vainio <vivainio@gmail.com>
871 2006-11-27 Ville Vainio <vivainio@gmail.com>
866
872
867 * ipy_stock_completers.py: bzr completer submitted by Stefan van
873 * ipy_stock_completers.py: bzr completer submitted by Stefan van
868 der Walt. Clean up svn and hg completers by using a common
874 der Walt. Clean up svn and hg completers by using a common
869 vcs_completer.
875 vcs_completer.
870
876
871 2006-11-26 Ville Vainio <vivainio@gmail.com>
877 2006-11-26 Ville Vainio <vivainio@gmail.com>
872
878
873 * Remove ipconfig and %config; you should use _ip.options structure
879 * Remove ipconfig and %config; you should use _ip.options structure
874 directly instead!
880 directly instead!
875
881
876 * genutils.py: add wrap_deprecated function for deprecating callables
882 * genutils.py: add wrap_deprecated function for deprecating callables
877
883
878 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
884 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
879 _ip.system instead. ipalias is redundant.
885 _ip.system instead. ipalias is redundant.
880
886
881 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
887 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
882 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
888 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
883 explicit.
889 explicit.
884
890
885 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
891 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
886 completer. Try it by entering 'hg ' and pressing tab.
892 completer. Try it by entering 'hg ' and pressing tab.
887
893
888 * macro.py: Give Macro a useful __repr__ method
894 * macro.py: Give Macro a useful __repr__ method
889
895
890 * Magic.py: %whos abbreviates the typename of Macro for brevity.
896 * Magic.py: %whos abbreviates the typename of Macro for brevity.
891
897
892 2006-11-24 Walter Doerwald <walter@livinglogic.de>
898 2006-11-24 Walter Doerwald <walter@livinglogic.de>
893 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
899 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
894 we don't get a duplicate ipipe module, where registration of the xrepr
900 we don't get a duplicate ipipe module, where registration of the xrepr
895 implementation for Text is useless.
901 implementation for Text is useless.
896
902
897 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
903 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
898
904
899 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
905 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
900
906
901 2006-11-24 Ville Vainio <vivainio@gmail.com>
907 2006-11-24 Ville Vainio <vivainio@gmail.com>
902
908
903 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
909 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
904 try to use "cProfile" instead of the slower pure python
910 try to use "cProfile" instead of the slower pure python
905 "profile"
911 "profile"
906
912
907 2006-11-23 Ville Vainio <vivainio@gmail.com>
913 2006-11-23 Ville Vainio <vivainio@gmail.com>
908
914
909 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
915 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
910 Qt+IPython+Designer link in documentation.
916 Qt+IPython+Designer link in documentation.
911
917
912 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
918 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
913 correct Pdb object to %pydb.
919 correct Pdb object to %pydb.
914
920
915
921
916 2006-11-22 Walter Doerwald <walter@livinglogic.de>
922 2006-11-22 Walter Doerwald <walter@livinglogic.de>
917 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
923 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
918 generic xrepr(), otherwise the list implementation would kick in.
924 generic xrepr(), otherwise the list implementation would kick in.
919
925
920 2006-11-21 Ville Vainio <vivainio@gmail.com>
926 2006-11-21 Ville Vainio <vivainio@gmail.com>
921
927
922 * upgrade_dir.py: Now actually overwrites a nonmodified user file
928 * upgrade_dir.py: Now actually overwrites a nonmodified user file
923 with one from UserConfig.
929 with one from UserConfig.
924
930
925 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
931 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
926 it was missing which broke the sh profile.
932 it was missing which broke the sh profile.
927
933
928 * completer.py: file completer now uses explicit '/' instead
934 * completer.py: file completer now uses explicit '/' instead
929 of os.path.join, expansion of 'foo' was broken on win32
935 of os.path.join, expansion of 'foo' was broken on win32
930 if there was one directory with name 'foobar'.
936 if there was one directory with name 'foobar'.
931
937
932 * A bunch of patches from Kirill Smelkov:
938 * A bunch of patches from Kirill Smelkov:
933
939
934 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
940 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
935
941
936 * [patch 7/9] Implement %page -r (page in raw mode) -
942 * [patch 7/9] Implement %page -r (page in raw mode) -
937
943
938 * [patch 5/9] ScientificPython webpage has moved
944 * [patch 5/9] ScientificPython webpage has moved
939
945
940 * [patch 4/9] The manual mentions %ds, should be %dhist
946 * [patch 4/9] The manual mentions %ds, should be %dhist
941
947
942 * [patch 3/9] Kill old bits from %prun doc.
948 * [patch 3/9] Kill old bits from %prun doc.
943
949
944 * [patch 1/9] Fix typos here and there.
950 * [patch 1/9] Fix typos here and there.
945
951
946 2006-11-08 Ville Vainio <vivainio@gmail.com>
952 2006-11-08 Ville Vainio <vivainio@gmail.com>
947
953
948 * completer.py (attr_matches): catch all exceptions raised
954 * completer.py (attr_matches): catch all exceptions raised
949 by eval of expr with dots.
955 by eval of expr with dots.
950
956
951 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
957 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
952
958
953 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
959 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
954 input if it starts with whitespace. This allows you to paste
960 input if it starts with whitespace. This allows you to paste
955 indented input from any editor without manually having to type in
961 indented input from any editor without manually having to type in
956 the 'if 1:', which is convenient when working interactively.
962 the 'if 1:', which is convenient when working interactively.
957 Slightly modifed version of a patch by Bo Peng
963 Slightly modifed version of a patch by Bo Peng
958 <bpeng-AT-rice.edu>.
964 <bpeng-AT-rice.edu>.
959
965
960 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
966 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
961
967
962 * IPython/irunner.py (main): modified irunner so it automatically
968 * IPython/irunner.py (main): modified irunner so it automatically
963 recognizes the right runner to use based on the extension (.py for
969 recognizes the right runner to use based on the extension (.py for
964 python, .ipy for ipython and .sage for sage).
970 python, .ipy for ipython and .sage for sage).
965
971
966 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
972 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
967 visible in ipapi as ip.config(), to programatically control the
973 visible in ipapi as ip.config(), to programatically control the
968 internal rc object. There's an accompanying %config magic for
974 internal rc object. There's an accompanying %config magic for
969 interactive use, which has been enhanced to match the
975 interactive use, which has been enhanced to match the
970 funtionality in ipconfig.
976 funtionality in ipconfig.
971
977
972 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
978 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
973 so it's not just a toggle, it now takes an argument. Add support
979 so it's not just a toggle, it now takes an argument. Add support
974 for a customizable header when making system calls, as the new
980 for a customizable header when making system calls, as the new
975 system_header variable in the ipythonrc file.
981 system_header variable in the ipythonrc file.
976
982
977 2006-11-03 Walter Doerwald <walter@livinglogic.de>
983 2006-11-03 Walter Doerwald <walter@livinglogic.de>
978
984
979 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
985 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
980 generic functions (using Philip J. Eby's simplegeneric package).
986 generic functions (using Philip J. Eby's simplegeneric package).
981 This makes it possible to customize the display of third-party classes
987 This makes it possible to customize the display of third-party classes
982 without having to monkeypatch them. xiter() no longer supports a mode
988 without having to monkeypatch them. xiter() no longer supports a mode
983 argument and the XMode class has been removed. The same functionality can
989 argument and the XMode class has been removed. The same functionality can
984 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
990 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
985 One consequence of the switch to generic functions is that xrepr() and
991 One consequence of the switch to generic functions is that xrepr() and
986 xattrs() implementation must define the default value for the mode
992 xattrs() implementation must define the default value for the mode
987 argument themselves and xattrs() implementations must return real
993 argument themselves and xattrs() implementations must return real
988 descriptors.
994 descriptors.
989
995
990 * IPython/external: This new subpackage will contain all third-party
996 * IPython/external: This new subpackage will contain all third-party
991 packages that are bundled with IPython. (The first one is simplegeneric).
997 packages that are bundled with IPython. (The first one is simplegeneric).
992
998
993 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
999 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
994 directory which as been dropped in r1703.
1000 directory which as been dropped in r1703.
995
1001
996 * IPython/Extensions/ipipe.py (iless): Fixed.
1002 * IPython/Extensions/ipipe.py (iless): Fixed.
997
1003
998 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1004 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
999
1005
1000 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1001
1007
1002 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1008 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1003 handling in variable expansion so that shells and magics recognize
1009 handling in variable expansion so that shells and magics recognize
1004 function local scopes correctly. Bug reported by Brian.
1010 function local scopes correctly. Bug reported by Brian.
1005
1011
1006 * scripts/ipython: remove the very first entry in sys.path which
1012 * scripts/ipython: remove the very first entry in sys.path which
1007 Python auto-inserts for scripts, so that sys.path under IPython is
1013 Python auto-inserts for scripts, so that sys.path under IPython is
1008 as similar as possible to that under plain Python.
1014 as similar as possible to that under plain Python.
1009
1015
1010 * IPython/completer.py (IPCompleter.file_matches): Fix
1016 * IPython/completer.py (IPCompleter.file_matches): Fix
1011 tab-completion so that quotes are not closed unless the completion
1017 tab-completion so that quotes are not closed unless the completion
1012 is unambiguous. After a request by Stefan. Minor cleanups in
1018 is unambiguous. After a request by Stefan. Minor cleanups in
1013 ipy_stock_completers.
1019 ipy_stock_completers.
1014
1020
1015 2006-11-02 Ville Vainio <vivainio@gmail.com>
1021 2006-11-02 Ville Vainio <vivainio@gmail.com>
1016
1022
1017 * ipy_stock_completers.py: Add %run and %cd completers.
1023 * ipy_stock_completers.py: Add %run and %cd completers.
1018
1024
1019 * completer.py: Try running custom completer for both
1025 * completer.py: Try running custom completer for both
1020 "foo" and "%foo" if the command is just "foo". Ignore case
1026 "foo" and "%foo" if the command is just "foo". Ignore case
1021 when filtering possible completions.
1027 when filtering possible completions.
1022
1028
1023 * UserConfig/ipy_user_conf.py: install stock completers as default
1029 * UserConfig/ipy_user_conf.py: install stock completers as default
1024
1030
1025 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1031 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1026 simplified readline history save / restore through a wrapper
1032 simplified readline history save / restore through a wrapper
1027 function
1033 function
1028
1034
1029
1035
1030 2006-10-31 Ville Vainio <vivainio@gmail.com>
1036 2006-10-31 Ville Vainio <vivainio@gmail.com>
1031
1037
1032 * strdispatch.py, completer.py, ipy_stock_completers.py:
1038 * strdispatch.py, completer.py, ipy_stock_completers.py:
1033 Allow str_key ("command") in completer hooks. Implement
1039 Allow str_key ("command") in completer hooks. Implement
1034 trivial completer for 'import' (stdlib modules only). Rename
1040 trivial completer for 'import' (stdlib modules only). Rename
1035 ipy_linux_package_managers.py to ipy_stock_completers.py.
1041 ipy_linux_package_managers.py to ipy_stock_completers.py.
1036 SVN completer.
1042 SVN completer.
1037
1043
1038 * Extensions/ledit.py: %magic line editor for easily and
1044 * Extensions/ledit.py: %magic line editor for easily and
1039 incrementally manipulating lists of strings. The magic command
1045 incrementally manipulating lists of strings. The magic command
1040 name is %led.
1046 name is %led.
1041
1047
1042 2006-10-30 Ville Vainio <vivainio@gmail.com>
1048 2006-10-30 Ville Vainio <vivainio@gmail.com>
1043
1049
1044 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1050 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1045 Bernsteins's patches for pydb integration.
1051 Bernsteins's patches for pydb integration.
1046 http://bashdb.sourceforge.net/pydb/
1052 http://bashdb.sourceforge.net/pydb/
1047
1053
1048 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1054 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1049 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1055 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1050 custom completer hook to allow the users to implement their own
1056 custom completer hook to allow the users to implement their own
1051 completers. See ipy_linux_package_managers.py for example. The
1057 completers. See ipy_linux_package_managers.py for example. The
1052 hook name is 'complete_command'.
1058 hook name is 'complete_command'.
1053
1059
1054 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1060 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1055
1061
1056 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1062 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1057 Numeric leftovers.
1063 Numeric leftovers.
1058
1064
1059 * ipython.el (py-execute-region): apply Stefan's patch to fix
1065 * ipython.el (py-execute-region): apply Stefan's patch to fix
1060 garbled results if the python shell hasn't been previously started.
1066 garbled results if the python shell hasn't been previously started.
1061
1067
1062 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1068 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1063 pretty generic function and useful for other things.
1069 pretty generic function and useful for other things.
1064
1070
1065 * IPython/OInspect.py (getsource): Add customizable source
1071 * IPython/OInspect.py (getsource): Add customizable source
1066 extractor. After a request/patch form W. Stein (SAGE).
1072 extractor. After a request/patch form W. Stein (SAGE).
1067
1073
1068 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1074 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1069 window size to a more reasonable value from what pexpect does,
1075 window size to a more reasonable value from what pexpect does,
1070 since their choice causes wrapping bugs with long input lines.
1076 since their choice causes wrapping bugs with long input lines.
1071
1077
1072 2006-10-28 Ville Vainio <vivainio@gmail.com>
1078 2006-10-28 Ville Vainio <vivainio@gmail.com>
1073
1079
1074 * Magic.py (%run): Save and restore the readline history from
1080 * Magic.py (%run): Save and restore the readline history from
1075 file around %run commands to prevent side effects from
1081 file around %run commands to prevent side effects from
1076 %runned programs that might use readline (e.g. pydb).
1082 %runned programs that might use readline (e.g. pydb).
1077
1083
1078 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1084 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1079 invoking the pydb enhanced debugger.
1085 invoking the pydb enhanced debugger.
1080
1086
1081 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1087 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1082
1088
1083 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1089 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1084 call the base class method and propagate the return value to
1090 call the base class method and propagate the return value to
1085 ifile. This is now done by path itself.
1091 ifile. This is now done by path itself.
1086
1092
1087 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1093 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1088
1094
1089 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1095 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1090 api: set_crash_handler(), to expose the ability to change the
1096 api: set_crash_handler(), to expose the ability to change the
1091 internal crash handler.
1097 internal crash handler.
1092
1098
1093 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1099 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1094 the various parameters of the crash handler so that apps using
1100 the various parameters of the crash handler so that apps using
1095 IPython as their engine can customize crash handling. Ipmlemented
1101 IPython as their engine can customize crash handling. Ipmlemented
1096 at the request of SAGE.
1102 at the request of SAGE.
1097
1103
1098 2006-10-14 Ville Vainio <vivainio@gmail.com>
1104 2006-10-14 Ville Vainio <vivainio@gmail.com>
1099
1105
1100 * Magic.py, ipython.el: applied first "safe" part of Rocky
1106 * Magic.py, ipython.el: applied first "safe" part of Rocky
1101 Bernstein's patch set for pydb integration.
1107 Bernstein's patch set for pydb integration.
1102
1108
1103 * Magic.py (%unalias, %alias): %store'd aliases can now be
1109 * Magic.py (%unalias, %alias): %store'd aliases can now be
1104 removed with '%unalias'. %alias w/o args now shows most
1110 removed with '%unalias'. %alias w/o args now shows most
1105 interesting (stored / manually defined) aliases last
1111 interesting (stored / manually defined) aliases last
1106 where they catch the eye w/o scrolling.
1112 where they catch the eye w/o scrolling.
1107
1113
1108 * Magic.py (%rehashx), ext_rehashdir.py: files with
1114 * Magic.py (%rehashx), ext_rehashdir.py: files with
1109 'py' extension are always considered executable, even
1115 'py' extension are always considered executable, even
1110 when not in PATHEXT environment variable.
1116 when not in PATHEXT environment variable.
1111
1117
1112 2006-10-12 Ville Vainio <vivainio@gmail.com>
1118 2006-10-12 Ville Vainio <vivainio@gmail.com>
1113
1119
1114 * jobctrl.py: Add new "jobctrl" extension for spawning background
1120 * jobctrl.py: Add new "jobctrl" extension for spawning background
1115 processes with "&find /". 'import jobctrl' to try it out. Requires
1121 processes with "&find /". 'import jobctrl' to try it out. Requires
1116 'subprocess' module, standard in python 2.4+.
1122 'subprocess' module, standard in python 2.4+.
1117
1123
1118 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1124 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1119 so if foo -> bar and bar -> baz, then foo -> baz.
1125 so if foo -> bar and bar -> baz, then foo -> baz.
1120
1126
1121 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1127 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1122
1128
1123 * IPython/Magic.py (Magic.parse_options): add a new posix option
1129 * IPython/Magic.py (Magic.parse_options): add a new posix option
1124 to allow parsing of input args in magics that doesn't strip quotes
1130 to allow parsing of input args in magics that doesn't strip quotes
1125 (if posix=False). This also closes %timeit bug reported by
1131 (if posix=False). This also closes %timeit bug reported by
1126 Stefan.
1132 Stefan.
1127
1133
1128 2006-10-03 Ville Vainio <vivainio@gmail.com>
1134 2006-10-03 Ville Vainio <vivainio@gmail.com>
1129
1135
1130 * iplib.py (raw_input, interact): Return ValueError catching for
1136 * iplib.py (raw_input, interact): Return ValueError catching for
1131 raw_input. Fixes infinite loop for sys.stdin.close() or
1137 raw_input. Fixes infinite loop for sys.stdin.close() or
1132 sys.stdout.close().
1138 sys.stdout.close().
1133
1139
1134 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1140 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1135
1141
1136 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1142 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1137 to help in handling doctests. irunner is now pretty useful for
1143 to help in handling doctests. irunner is now pretty useful for
1138 running standalone scripts and simulate a full interactive session
1144 running standalone scripts and simulate a full interactive session
1139 in a format that can be then pasted as a doctest.
1145 in a format that can be then pasted as a doctest.
1140
1146
1141 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1147 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1142 on top of the default (useless) ones. This also fixes the nasty
1148 on top of the default (useless) ones. This also fixes the nasty
1143 way in which 2.5's Quitter() exits (reverted [1785]).
1149 way in which 2.5's Quitter() exits (reverted [1785]).
1144
1150
1145 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1151 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1146 2.5.
1152 2.5.
1147
1153
1148 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1154 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1149 color scheme is updated as well when color scheme is changed
1155 color scheme is updated as well when color scheme is changed
1150 interactively.
1156 interactively.
1151
1157
1152 2006-09-27 Ville Vainio <vivainio@gmail.com>
1158 2006-09-27 Ville Vainio <vivainio@gmail.com>
1153
1159
1154 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1160 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1155 infinite loop and just exit. It's a hack, but will do for a while.
1161 infinite loop and just exit. It's a hack, but will do for a while.
1156
1162
1157 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1163 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1158
1164
1159 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1165 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1160 the constructor, this makes it possible to get a list of only directories
1166 the constructor, this makes it possible to get a list of only directories
1161 or only files.
1167 or only files.
1162
1168
1163 2006-08-12 Ville Vainio <vivainio@gmail.com>
1169 2006-08-12 Ville Vainio <vivainio@gmail.com>
1164
1170
1165 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1171 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1166 they broke unittest
1172 they broke unittest
1167
1173
1168 2006-08-11 Ville Vainio <vivainio@gmail.com>
1174 2006-08-11 Ville Vainio <vivainio@gmail.com>
1169
1175
1170 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1176 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1171 by resolving issue properly, i.e. by inheriting FakeModule
1177 by resolving issue properly, i.e. by inheriting FakeModule
1172 from types.ModuleType. Pickling ipython interactive data
1178 from types.ModuleType. Pickling ipython interactive data
1173 should still work as usual (testing appreciated).
1179 should still work as usual (testing appreciated).
1174
1180
1175 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1181 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1176
1182
1177 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1183 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1178 running under python 2.3 with code from 2.4 to fix a bug with
1184 running under python 2.3 with code from 2.4 to fix a bug with
1179 help(). Reported by the Debian maintainers, Norbert Tretkowski
1185 help(). Reported by the Debian maintainers, Norbert Tretkowski
1180 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1186 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1181 <afayolle-AT-debian.org>.
1187 <afayolle-AT-debian.org>.
1182
1188
1183 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1189 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1184
1190
1185 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1191 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1186 (which was displaying "quit" twice).
1192 (which was displaying "quit" twice).
1187
1193
1188 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1194 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1189
1195
1190 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1196 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1191 the mode argument).
1197 the mode argument).
1192
1198
1193 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1199 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1194
1200
1195 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1201 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1196 not running under IPython.
1202 not running under IPython.
1197
1203
1198 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1204 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1199 and make it iterable (iterating over the attribute itself). Add two new
1205 and make it iterable (iterating over the attribute itself). Add two new
1200 magic strings for __xattrs__(): If the string starts with "-", the attribute
1206 magic strings for __xattrs__(): If the string starts with "-", the attribute
1201 will not be displayed in ibrowse's detail view (but it can still be
1207 will not be displayed in ibrowse's detail view (but it can still be
1202 iterated over). This makes it possible to add attributes that are large
1208 iterated over). This makes it possible to add attributes that are large
1203 lists or generator methods to the detail view. Replace magic attribute names
1209 lists or generator methods to the detail view. Replace magic attribute names
1204 and _attrname() and _getattr() with "descriptors": For each type of magic
1210 and _attrname() and _getattr() with "descriptors": For each type of magic
1205 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1211 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1206 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1212 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1207 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1213 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1208 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1214 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1209 are still supported.
1215 are still supported.
1210
1216
1211 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1217 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1212 fails in ibrowse.fetch(), the exception object is added as the last item
1218 fails in ibrowse.fetch(), the exception object is added as the last item
1213 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1219 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1214 a generator throws an exception midway through execution.
1220 a generator throws an exception midway through execution.
1215
1221
1216 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1222 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1217 encoding into methods.
1223 encoding into methods.
1218
1224
1219 2006-07-26 Ville Vainio <vivainio@gmail.com>
1225 2006-07-26 Ville Vainio <vivainio@gmail.com>
1220
1226
1221 * iplib.py: history now stores multiline input as single
1227 * iplib.py: history now stores multiline input as single
1222 history entries. Patch by Jorgen Cederlof.
1228 history entries. Patch by Jorgen Cederlof.
1223
1229
1224 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1230 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1225
1231
1226 * IPython/Extensions/ibrowse.py: Make cursor visible over
1232 * IPython/Extensions/ibrowse.py: Make cursor visible over
1227 non existing attributes.
1233 non existing attributes.
1228
1234
1229 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1235 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1230
1236
1231 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1237 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1232 error output of the running command doesn't mess up the screen.
1238 error output of the running command doesn't mess up the screen.
1233
1239
1234 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1240 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1235
1241
1236 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1242 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1237 argument. This sorts the items themselves.
1243 argument. This sorts the items themselves.
1238
1244
1239 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1245 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1240
1246
1241 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1247 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1242 Compile expression strings into code objects. This should speed
1248 Compile expression strings into code objects. This should speed
1243 up ifilter and friends somewhat.
1249 up ifilter and friends somewhat.
1244
1250
1245 2006-07-08 Ville Vainio <vivainio@gmail.com>
1251 2006-07-08 Ville Vainio <vivainio@gmail.com>
1246
1252
1247 * Magic.py: %cpaste now strips > from the beginning of lines
1253 * Magic.py: %cpaste now strips > from the beginning of lines
1248 to ease pasting quoted code from emails. Contributed by
1254 to ease pasting quoted code from emails. Contributed by
1249 Stefan van der Walt.
1255 Stefan van der Walt.
1250
1256
1251 2006-06-29 Ville Vainio <vivainio@gmail.com>
1257 2006-06-29 Ville Vainio <vivainio@gmail.com>
1252
1258
1253 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1259 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1254 mode, patch contributed by Darren Dale. NEEDS TESTING!
1260 mode, patch contributed by Darren Dale. NEEDS TESTING!
1255
1261
1256 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1262 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1257
1263
1258 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1264 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1259 a blue background. Fix fetching new display rows when the browser
1265 a blue background. Fix fetching new display rows when the browser
1260 scrolls more than a screenful (e.g. by using the goto command).
1266 scrolls more than a screenful (e.g. by using the goto command).
1261
1267
1262 2006-06-27 Ville Vainio <vivainio@gmail.com>
1268 2006-06-27 Ville Vainio <vivainio@gmail.com>
1263
1269
1264 * Magic.py (_inspect, _ofind) Apply David Huard's
1270 * Magic.py (_inspect, _ofind) Apply David Huard's
1265 patch for displaying the correct docstring for 'property'
1271 patch for displaying the correct docstring for 'property'
1266 attributes.
1272 attributes.
1267
1273
1268 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1274 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1269
1275
1270 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1276 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1271 commands into the methods implementing them.
1277 commands into the methods implementing them.
1272
1278
1273 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1279 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1274
1280
1275 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1281 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1276 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1282 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1277 autoindent support was authored by Jin Liu.
1283 autoindent support was authored by Jin Liu.
1278
1284
1279 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1285 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1280
1286
1281 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1287 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1282 for keymaps with a custom class that simplifies handling.
1288 for keymaps with a custom class that simplifies handling.
1283
1289
1284 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1290 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1285
1291
1286 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1292 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1287 resizing. This requires Python 2.5 to work.
1293 resizing. This requires Python 2.5 to work.
1288
1294
1289 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1295 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1290
1296
1291 * IPython/Extensions/ibrowse.py: Add two new commands to
1297 * IPython/Extensions/ibrowse.py: Add two new commands to
1292 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1298 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1293 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1299 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1294 attributes again. Remapped the help command to "?". Display
1300 attributes again. Remapped the help command to "?". Display
1295 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1301 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1296 as keys for the "home" and "end" commands. Add three new commands
1302 as keys for the "home" and "end" commands. Add three new commands
1297 to the input mode for "find" and friends: "delend" (CTRL-K)
1303 to the input mode for "find" and friends: "delend" (CTRL-K)
1298 deletes to the end of line. "incsearchup" searches upwards in the
1304 deletes to the end of line. "incsearchup" searches upwards in the
1299 command history for an input that starts with the text before the cursor.
1305 command history for an input that starts with the text before the cursor.
1300 "incsearchdown" does the same downwards. Removed a bogus mapping of
1306 "incsearchdown" does the same downwards. Removed a bogus mapping of
1301 the x key to "delete".
1307 the x key to "delete".
1302
1308
1303 2006-06-15 Ville Vainio <vivainio@gmail.com>
1309 2006-06-15 Ville Vainio <vivainio@gmail.com>
1304
1310
1305 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1311 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1306 used to create prompts dynamically, instead of the "old" way of
1312 used to create prompts dynamically, instead of the "old" way of
1307 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1313 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1308 way still works (it's invoked by the default hook), of course.
1314 way still works (it's invoked by the default hook), of course.
1309
1315
1310 * Prompts.py: added generate_output_prompt hook for altering output
1316 * Prompts.py: added generate_output_prompt hook for altering output
1311 prompt
1317 prompt
1312
1318
1313 * Release.py: Changed version string to 0.7.3.svn.
1319 * Release.py: Changed version string to 0.7.3.svn.
1314
1320
1315 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1321 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1316
1322
1317 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1323 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1318 the call to fetch() always tries to fetch enough data for at least one
1324 the call to fetch() always tries to fetch enough data for at least one
1319 full screen. This makes it possible to simply call moveto(0,0,True) in
1325 full screen. This makes it possible to simply call moveto(0,0,True) in
1320 the constructor. Fix typos and removed the obsolete goto attribute.
1326 the constructor. Fix typos and removed the obsolete goto attribute.
1321
1327
1322 2006-06-12 Ville Vainio <vivainio@gmail.com>
1328 2006-06-12 Ville Vainio <vivainio@gmail.com>
1323
1329
1324 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1330 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1325 allowing $variable interpolation within multiline statements,
1331 allowing $variable interpolation within multiline statements,
1326 though so far only with "sh" profile for a testing period.
1332 though so far only with "sh" profile for a testing period.
1327 The patch also enables splitting long commands with \ but it
1333 The patch also enables splitting long commands with \ but it
1328 doesn't work properly yet.
1334 doesn't work properly yet.
1329
1335
1330 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1336 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1331
1337
1332 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1338 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1333 input history and the position of the cursor in the input history for
1339 input history and the position of the cursor in the input history for
1334 the find, findbackwards and goto command.
1340 the find, findbackwards and goto command.
1335
1341
1336 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1342 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1337
1343
1338 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1344 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1339 implements the basic functionality of browser commands that require
1345 implements the basic functionality of browser commands that require
1340 input. Reimplement the goto, find and findbackwards commands as
1346 input. Reimplement the goto, find and findbackwards commands as
1341 subclasses of _CommandInput. Add an input history and keymaps to those
1347 subclasses of _CommandInput. Add an input history and keymaps to those
1342 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1348 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1343 execute commands.
1349 execute commands.
1344
1350
1345 2006-06-07 Ville Vainio <vivainio@gmail.com>
1351 2006-06-07 Ville Vainio <vivainio@gmail.com>
1346
1352
1347 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1353 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1348 running the batch files instead of leaving the session open.
1354 running the batch files instead of leaving the session open.
1349
1355
1350 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1356 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1351
1357
1352 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1358 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1353 the original fix was incomplete. Patch submitted by W. Maier.
1359 the original fix was incomplete. Patch submitted by W. Maier.
1354
1360
1355 2006-06-07 Ville Vainio <vivainio@gmail.com>
1361 2006-06-07 Ville Vainio <vivainio@gmail.com>
1356
1362
1357 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1363 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1358 Confirmation prompts can be supressed by 'quiet' option.
1364 Confirmation prompts can be supressed by 'quiet' option.
1359 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1365 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1360
1366
1361 2006-06-06 *** Released version 0.7.2
1367 2006-06-06 *** Released version 0.7.2
1362
1368
1363 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1369 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1364
1370
1365 * IPython/Release.py (version): Made 0.7.2 final for release.
1371 * IPython/Release.py (version): Made 0.7.2 final for release.
1366 Repo tagged and release cut.
1372 Repo tagged and release cut.
1367
1373
1368 2006-06-05 Ville Vainio <vivainio@gmail.com>
1374 2006-06-05 Ville Vainio <vivainio@gmail.com>
1369
1375
1370 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1376 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1371 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1377 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1372
1378
1373 * upgrade_dir.py: try import 'path' module a bit harder
1379 * upgrade_dir.py: try import 'path' module a bit harder
1374 (for %upgrade)
1380 (for %upgrade)
1375
1381
1376 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1382 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1383
1378 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1384 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1379 instead of looping 20 times.
1385 instead of looping 20 times.
1380
1386
1381 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1387 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1382 correctly at initialization time. Bug reported by Krishna Mohan
1388 correctly at initialization time. Bug reported by Krishna Mohan
1383 Gundu <gkmohan-AT-gmail.com> on the user list.
1389 Gundu <gkmohan-AT-gmail.com> on the user list.
1384
1390
1385 * IPython/Release.py (version): Mark 0.7.2 version to start
1391 * IPython/Release.py (version): Mark 0.7.2 version to start
1386 testing for release on 06/06.
1392 testing for release on 06/06.
1387
1393
1388 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1394 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1389
1395
1390 * scripts/irunner: thin script interface so users don't have to
1396 * scripts/irunner: thin script interface so users don't have to
1391 find the module and call it as an executable, since modules rarely
1397 find the module and call it as an executable, since modules rarely
1392 live in people's PATH.
1398 live in people's PATH.
1393
1399
1394 * IPython/irunner.py (InteractiveRunner.__init__): added
1400 * IPython/irunner.py (InteractiveRunner.__init__): added
1395 delaybeforesend attribute to control delays with newer versions of
1401 delaybeforesend attribute to control delays with newer versions of
1396 pexpect. Thanks to detailed help from pexpect's author, Noah
1402 pexpect. Thanks to detailed help from pexpect's author, Noah
1397 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1403 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1398 correctly (it works in NoColor mode).
1404 correctly (it works in NoColor mode).
1399
1405
1400 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1406 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1401 SAGE list, from improper log() calls.
1407 SAGE list, from improper log() calls.
1402
1408
1403 2006-05-31 Ville Vainio <vivainio@gmail.com>
1409 2006-05-31 Ville Vainio <vivainio@gmail.com>
1404
1410
1405 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1411 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1406 with args in parens to work correctly with dirs that have spaces.
1412 with args in parens to work correctly with dirs that have spaces.
1407
1413
1408 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1414 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1409
1415
1410 * IPython/Logger.py (Logger.logstart): add option to log raw input
1416 * IPython/Logger.py (Logger.logstart): add option to log raw input
1411 instead of the processed one. A -r flag was added to the
1417 instead of the processed one. A -r flag was added to the
1412 %logstart magic used for controlling logging.
1418 %logstart magic used for controlling logging.
1413
1419
1414 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1420 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1421
1416 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1422 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1417 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1423 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1418 recognize the option. After a bug report by Will Maier. This
1424 recognize the option. After a bug report by Will Maier. This
1419 closes #64 (will do it after confirmation from W. Maier).
1425 closes #64 (will do it after confirmation from W. Maier).
1420
1426
1421 * IPython/irunner.py: New module to run scripts as if manually
1427 * IPython/irunner.py: New module to run scripts as if manually
1422 typed into an interactive environment, based on pexpect. After a
1428 typed into an interactive environment, based on pexpect. After a
1423 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1429 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1424 ipython-user list. Simple unittests in the tests/ directory.
1430 ipython-user list. Simple unittests in the tests/ directory.
1425
1431
1426 * tools/release: add Will Maier, OpenBSD port maintainer, to
1432 * tools/release: add Will Maier, OpenBSD port maintainer, to
1427 recepients list. We are now officially part of the OpenBSD ports:
1433 recepients list. We are now officially part of the OpenBSD ports:
1428 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1434 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1429 work.
1435 work.
1430
1436
1431 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1437 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1432
1438
1433 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1439 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1434 so that it doesn't break tkinter apps.
1440 so that it doesn't break tkinter apps.
1435
1441
1436 * IPython/iplib.py (_prefilter): fix bug where aliases would
1442 * IPython/iplib.py (_prefilter): fix bug where aliases would
1437 shadow variables when autocall was fully off. Reported by SAGE
1443 shadow variables when autocall was fully off. Reported by SAGE
1438 author William Stein.
1444 author William Stein.
1439
1445
1440 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1446 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1441 at what detail level strings are computed when foo? is requested.
1447 at what detail level strings are computed when foo? is requested.
1442 This allows users to ask for example that the string form of an
1448 This allows users to ask for example that the string form of an
1443 object is only computed when foo?? is called, or even never, by
1449 object is only computed when foo?? is called, or even never, by
1444 setting the object_info_string_level >= 2 in the configuration
1450 setting the object_info_string_level >= 2 in the configuration
1445 file. This new option has been added and documented. After a
1451 file. This new option has been added and documented. After a
1446 request by SAGE to be able to control the printing of very large
1452 request by SAGE to be able to control the printing of very large
1447 objects more easily.
1453 objects more easily.
1448
1454
1449 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1455 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1450
1456
1451 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1457 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1452 from sys.argv, to be 100% consistent with how Python itself works
1458 from sys.argv, to be 100% consistent with how Python itself works
1453 (as seen for example with python -i file.py). After a bug report
1459 (as seen for example with python -i file.py). After a bug report
1454 by Jeffrey Collins.
1460 by Jeffrey Collins.
1455
1461
1456 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1462 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1457 nasty bug which was preventing custom namespaces with -pylab,
1463 nasty bug which was preventing custom namespaces with -pylab,
1458 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1464 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1459 compatibility (long gone from mpl).
1465 compatibility (long gone from mpl).
1460
1466
1461 * IPython/ipapi.py (make_session): name change: create->make. We
1467 * IPython/ipapi.py (make_session): name change: create->make. We
1462 use make in other places (ipmaker,...), it's shorter and easier to
1468 use make in other places (ipmaker,...), it's shorter and easier to
1463 type and say, etc. I'm trying to clean things before 0.7.2 so
1469 type and say, etc. I'm trying to clean things before 0.7.2 so
1464 that I can keep things stable wrt to ipapi in the chainsaw branch.
1470 that I can keep things stable wrt to ipapi in the chainsaw branch.
1465
1471
1466 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1472 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1467 python-mode recognizes our debugger mode. Add support for
1473 python-mode recognizes our debugger mode. Add support for
1468 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1474 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1469 <m.liu.jin-AT-gmail.com> originally written by
1475 <m.liu.jin-AT-gmail.com> originally written by
1470 doxgen-AT-newsmth.net (with minor modifications for xemacs
1476 doxgen-AT-newsmth.net (with minor modifications for xemacs
1471 compatibility)
1477 compatibility)
1472
1478
1473 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1479 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1474 tracebacks when walking the stack so that the stack tracking system
1480 tracebacks when walking the stack so that the stack tracking system
1475 in emacs' python-mode can identify the frames correctly.
1481 in emacs' python-mode can identify the frames correctly.
1476
1482
1477 * IPython/ipmaker.py (make_IPython): make the internal (and
1483 * IPython/ipmaker.py (make_IPython): make the internal (and
1478 default config) autoedit_syntax value false by default. Too many
1484 default config) autoedit_syntax value false by default. Too many
1479 users have complained to me (both on and off-list) about problems
1485 users have complained to me (both on and off-list) about problems
1480 with this option being on by default, so I'm making it default to
1486 with this option being on by default, so I'm making it default to
1481 off. It can still be enabled by anyone via the usual mechanisms.
1487 off. It can still be enabled by anyone via the usual mechanisms.
1482
1488
1483 * IPython/completer.py (Completer.attr_matches): add support for
1489 * IPython/completer.py (Completer.attr_matches): add support for
1484 PyCrust-style _getAttributeNames magic method. Patch contributed
1490 PyCrust-style _getAttributeNames magic method. Patch contributed
1485 by <mscott-AT-goldenspud.com>. Closes #50.
1491 by <mscott-AT-goldenspud.com>. Closes #50.
1486
1492
1487 * IPython/iplib.py (InteractiveShell.__init__): remove the
1493 * IPython/iplib.py (InteractiveShell.__init__): remove the
1488 deletion of exit/quit from __builtin__, which can break
1494 deletion of exit/quit from __builtin__, which can break
1489 third-party tools like the Zope debugging console. The
1495 third-party tools like the Zope debugging console. The
1490 %exit/%quit magics remain. In general, it's probably a good idea
1496 %exit/%quit magics remain. In general, it's probably a good idea
1491 not to delete anything from __builtin__, since we never know what
1497 not to delete anything from __builtin__, since we never know what
1492 that will break. In any case, python now (for 2.5) will support
1498 that will break. In any case, python now (for 2.5) will support
1493 'real' exit/quit, so this issue is moot. Closes #55.
1499 'real' exit/quit, so this issue is moot. Closes #55.
1494
1500
1495 * IPython/genutils.py (with_obj): rename the 'with' function to
1501 * IPython/genutils.py (with_obj): rename the 'with' function to
1496 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1502 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1497 becomes a language keyword. Closes #53.
1503 becomes a language keyword. Closes #53.
1498
1504
1499 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1505 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1500 __file__ attribute to this so it fools more things into thinking
1506 __file__ attribute to this so it fools more things into thinking
1501 it is a real module. Closes #59.
1507 it is a real module. Closes #59.
1502
1508
1503 * IPython/Magic.py (magic_edit): add -n option to open the editor
1509 * IPython/Magic.py (magic_edit): add -n option to open the editor
1504 at a specific line number. After a patch by Stefan van der Walt.
1510 at a specific line number. After a patch by Stefan van der Walt.
1505
1511
1506 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1512 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1507
1513
1508 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1514 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1509 reason the file could not be opened. After automatic crash
1515 reason the file could not be opened. After automatic crash
1510 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1516 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1511 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1517 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1512 (_should_recompile): Don't fire editor if using %bg, since there
1518 (_should_recompile): Don't fire editor if using %bg, since there
1513 is no file in the first place. From the same report as above.
1519 is no file in the first place. From the same report as above.
1514 (raw_input): protect against faulty third-party prefilters. After
1520 (raw_input): protect against faulty third-party prefilters. After
1515 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1521 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1516 while running under SAGE.
1522 while running under SAGE.
1517
1523
1518 2006-05-23 Ville Vainio <vivainio@gmail.com>
1524 2006-05-23 Ville Vainio <vivainio@gmail.com>
1519
1525
1520 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1526 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1521 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1527 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1522 now returns None (again), unless dummy is specifically allowed by
1528 now returns None (again), unless dummy is specifically allowed by
1523 ipapi.get(allow_dummy=True).
1529 ipapi.get(allow_dummy=True).
1524
1530
1525 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1531 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1526
1532
1527 * IPython: remove all 2.2-compatibility objects and hacks from
1533 * IPython: remove all 2.2-compatibility objects and hacks from
1528 everywhere, since we only support 2.3 at this point. Docs
1534 everywhere, since we only support 2.3 at this point. Docs
1529 updated.
1535 updated.
1530
1536
1531 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1537 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1532 Anything requiring extra validation can be turned into a Python
1538 Anything requiring extra validation can be turned into a Python
1533 property in the future. I used a property for the db one b/c
1539 property in the future. I used a property for the db one b/c
1534 there was a nasty circularity problem with the initialization
1540 there was a nasty circularity problem with the initialization
1535 order, which right now I don't have time to clean up.
1541 order, which right now I don't have time to clean up.
1536
1542
1537 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1543 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1538 another locking bug reported by Jorgen. I'm not 100% sure though,
1544 another locking bug reported by Jorgen. I'm not 100% sure though,
1539 so more testing is needed...
1545 so more testing is needed...
1540
1546
1541 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1547 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1542
1548
1543 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1549 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1544 local variables from any routine in user code (typically executed
1550 local variables from any routine in user code (typically executed
1545 with %run) directly into the interactive namespace. Very useful
1551 with %run) directly into the interactive namespace. Very useful
1546 when doing complex debugging.
1552 when doing complex debugging.
1547 (IPythonNotRunning): Changed the default None object to a dummy
1553 (IPythonNotRunning): Changed the default None object to a dummy
1548 whose attributes can be queried as well as called without
1554 whose attributes can be queried as well as called without
1549 exploding, to ease writing code which works transparently both in
1555 exploding, to ease writing code which works transparently both in
1550 and out of ipython and uses some of this API.
1556 and out of ipython and uses some of this API.
1551
1557
1552 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1558 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1553
1559
1554 * IPython/hooks.py (result_display): Fix the fact that our display
1560 * IPython/hooks.py (result_display): Fix the fact that our display
1555 hook was using str() instead of repr(), as the default python
1561 hook was using str() instead of repr(), as the default python
1556 console does. This had gone unnoticed b/c it only happened if
1562 console does. This had gone unnoticed b/c it only happened if
1557 %Pprint was off, but the inconsistency was there.
1563 %Pprint was off, but the inconsistency was there.
1558
1564
1559 2006-05-15 Ville Vainio <vivainio@gmail.com>
1565 2006-05-15 Ville Vainio <vivainio@gmail.com>
1560
1566
1561 * Oinspect.py: Only show docstring for nonexisting/binary files
1567 * Oinspect.py: Only show docstring for nonexisting/binary files
1562 when doing object??, closing ticket #62
1568 when doing object??, closing ticket #62
1563
1569
1564 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1570 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1565
1571
1566 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1572 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1567 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1573 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1568 was being released in a routine which hadn't checked if it had
1574 was being released in a routine which hadn't checked if it had
1569 been the one to acquire it.
1575 been the one to acquire it.
1570
1576
1571 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1577 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1572
1578
1573 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1579 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1574
1580
1575 2006-04-11 Ville Vainio <vivainio@gmail.com>
1581 2006-04-11 Ville Vainio <vivainio@gmail.com>
1576
1582
1577 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1583 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1578 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1584 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1579 prefilters, allowing stuff like magics and aliases in the file.
1585 prefilters, allowing stuff like magics and aliases in the file.
1580
1586
1581 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1587 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1582 added. Supported now are "%clear in" and "%clear out" (clear input and
1588 added. Supported now are "%clear in" and "%clear out" (clear input and
1583 output history, respectively). Also fixed CachedOutput.flush to
1589 output history, respectively). Also fixed CachedOutput.flush to
1584 properly flush the output cache.
1590 properly flush the output cache.
1585
1591
1586 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1592 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1587 half-success (and fail explicitly).
1593 half-success (and fail explicitly).
1588
1594
1589 2006-03-28 Ville Vainio <vivainio@gmail.com>
1595 2006-03-28 Ville Vainio <vivainio@gmail.com>
1590
1596
1591 * iplib.py: Fix quoting of aliases so that only argless ones
1597 * iplib.py: Fix quoting of aliases so that only argless ones
1592 are quoted
1598 are quoted
1593
1599
1594 2006-03-28 Ville Vainio <vivainio@gmail.com>
1600 2006-03-28 Ville Vainio <vivainio@gmail.com>
1595
1601
1596 * iplib.py: Quote aliases with spaces in the name.
1602 * iplib.py: Quote aliases with spaces in the name.
1597 "c:\program files\blah\bin" is now legal alias target.
1603 "c:\program files\blah\bin" is now legal alias target.
1598
1604
1599 * ext_rehashdir.py: Space no longer allowed as arg
1605 * ext_rehashdir.py: Space no longer allowed as arg
1600 separator, since space is legal in path names.
1606 separator, since space is legal in path names.
1601
1607
1602 2006-03-16 Ville Vainio <vivainio@gmail.com>
1608 2006-03-16 Ville Vainio <vivainio@gmail.com>
1603
1609
1604 * upgrade_dir.py: Take path.py from Extensions, correcting
1610 * upgrade_dir.py: Take path.py from Extensions, correcting
1605 %upgrade magic
1611 %upgrade magic
1606
1612
1607 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1613 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1608
1614
1609 * hooks.py: Only enclose editor binary in quotes if legal and
1615 * hooks.py: Only enclose editor binary in quotes if legal and
1610 necessary (space in the name, and is an existing file). Fixes a bug
1616 necessary (space in the name, and is an existing file). Fixes a bug
1611 reported by Zachary Pincus.
1617 reported by Zachary Pincus.
1612
1618
1613 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1619 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1614
1620
1615 * Manual: thanks to a tip on proper color handling for Emacs, by
1621 * Manual: thanks to a tip on proper color handling for Emacs, by
1616 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1622 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1617
1623
1618 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1624 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1619 by applying the provided patch. Thanks to Liu Jin
1625 by applying the provided patch. Thanks to Liu Jin
1620 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1626 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1621 XEmacs/Linux, I'm trusting the submitter that it actually helps
1627 XEmacs/Linux, I'm trusting the submitter that it actually helps
1622 under win32/GNU Emacs. Will revisit if any problems are reported.
1628 under win32/GNU Emacs. Will revisit if any problems are reported.
1623
1629
1624 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1630 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1625
1631
1626 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1632 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1627 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1633 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1628
1634
1629 2006-03-12 Ville Vainio <vivainio@gmail.com>
1635 2006-03-12 Ville Vainio <vivainio@gmail.com>
1630
1636
1631 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1637 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1632 Torsten Marek.
1638 Torsten Marek.
1633
1639
1634 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1640 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1635
1641
1636 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1642 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1637 line ranges works again.
1643 line ranges works again.
1638
1644
1639 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1645 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1640
1646
1641 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1647 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1642 and friends, after a discussion with Zach Pincus on ipython-user.
1648 and friends, after a discussion with Zach Pincus on ipython-user.
1643 I'm not 100% sure, but after thinking about it quite a bit, it may
1649 I'm not 100% sure, but after thinking about it quite a bit, it may
1644 be OK. Testing with the multithreaded shells didn't reveal any
1650 be OK. Testing with the multithreaded shells didn't reveal any
1645 problems, but let's keep an eye out.
1651 problems, but let's keep an eye out.
1646
1652
1647 In the process, I fixed a few things which were calling
1653 In the process, I fixed a few things which were calling
1648 self.InteractiveTB() directly (like safe_execfile), which is a
1654 self.InteractiveTB() directly (like safe_execfile), which is a
1649 mistake: ALL exception reporting should be done by calling
1655 mistake: ALL exception reporting should be done by calling
1650 self.showtraceback(), which handles state and tab-completion and
1656 self.showtraceback(), which handles state and tab-completion and
1651 more.
1657 more.
1652
1658
1653 2006-03-01 Ville Vainio <vivainio@gmail.com>
1659 2006-03-01 Ville Vainio <vivainio@gmail.com>
1654
1660
1655 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1661 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1656 To use, do "from ipipe import *".
1662 To use, do "from ipipe import *".
1657
1663
1658 2006-02-24 Ville Vainio <vivainio@gmail.com>
1664 2006-02-24 Ville Vainio <vivainio@gmail.com>
1659
1665
1660 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1666 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1661 "cleanly" and safely than the older upgrade mechanism.
1667 "cleanly" and safely than the older upgrade mechanism.
1662
1668
1663 2006-02-21 Ville Vainio <vivainio@gmail.com>
1669 2006-02-21 Ville Vainio <vivainio@gmail.com>
1664
1670
1665 * Magic.py: %save works again.
1671 * Magic.py: %save works again.
1666
1672
1667 2006-02-15 Ville Vainio <vivainio@gmail.com>
1673 2006-02-15 Ville Vainio <vivainio@gmail.com>
1668
1674
1669 * Magic.py: %Pprint works again
1675 * Magic.py: %Pprint works again
1670
1676
1671 * Extensions/ipy_sane_defaults.py: Provide everything provided
1677 * Extensions/ipy_sane_defaults.py: Provide everything provided
1672 in default ipythonrc, to make it possible to have a completely empty
1678 in default ipythonrc, to make it possible to have a completely empty
1673 ipythonrc (and thus completely rc-file free configuration)
1679 ipythonrc (and thus completely rc-file free configuration)
1674
1680
1675 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1681 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1676
1682
1677 * IPython/hooks.py (editor): quote the call to the editor command,
1683 * IPython/hooks.py (editor): quote the call to the editor command,
1678 to allow commands with spaces in them. Problem noted by watching
1684 to allow commands with spaces in them. Problem noted by watching
1679 Ian Oswald's video about textpad under win32 at
1685 Ian Oswald's video about textpad under win32 at
1680 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1686 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1681
1687
1682 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1688 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1683 describing magics (we haven't used @ for a loong time).
1689 describing magics (we haven't used @ for a loong time).
1684
1690
1685 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1691 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1686 contributed by marienz to close
1692 contributed by marienz to close
1687 http://www.scipy.net/roundup/ipython/issue53.
1693 http://www.scipy.net/roundup/ipython/issue53.
1688
1694
1689 2006-02-10 Ville Vainio <vivainio@gmail.com>
1695 2006-02-10 Ville Vainio <vivainio@gmail.com>
1690
1696
1691 * genutils.py: getoutput now works in win32 too
1697 * genutils.py: getoutput now works in win32 too
1692
1698
1693 * completer.py: alias and magic completion only invoked
1699 * completer.py: alias and magic completion only invoked
1694 at the first "item" in the line, to avoid "cd %store"
1700 at the first "item" in the line, to avoid "cd %store"
1695 nonsense.
1701 nonsense.
1696
1702
1697 2006-02-09 Ville Vainio <vivainio@gmail.com>
1703 2006-02-09 Ville Vainio <vivainio@gmail.com>
1698
1704
1699 * test/*: Added a unit testing framework (finally).
1705 * test/*: Added a unit testing framework (finally).
1700 '%run runtests.py' to run test_*.
1706 '%run runtests.py' to run test_*.
1701
1707
1702 * ipapi.py: Exposed runlines and set_custom_exc
1708 * ipapi.py: Exposed runlines and set_custom_exc
1703
1709
1704 2006-02-07 Ville Vainio <vivainio@gmail.com>
1710 2006-02-07 Ville Vainio <vivainio@gmail.com>
1705
1711
1706 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1712 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1707 instead use "f(1 2)" as before.
1713 instead use "f(1 2)" as before.
1708
1714
1709 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1715 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1710
1716
1711 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1717 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1712 facilities, for demos processed by the IPython input filter
1718 facilities, for demos processed by the IPython input filter
1713 (IPythonDemo), and for running a script one-line-at-a-time as a
1719 (IPythonDemo), and for running a script one-line-at-a-time as a
1714 demo, both for pure Python (LineDemo) and for IPython-processed
1720 demo, both for pure Python (LineDemo) and for IPython-processed
1715 input (IPythonLineDemo). After a request by Dave Kohel, from the
1721 input (IPythonLineDemo). After a request by Dave Kohel, from the
1716 SAGE team.
1722 SAGE team.
1717 (Demo.edit): added an edit() method to the demo objects, to edit
1723 (Demo.edit): added an edit() method to the demo objects, to edit
1718 the in-memory copy of the last executed block.
1724 the in-memory copy of the last executed block.
1719
1725
1720 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1726 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1721 processing to %edit, %macro and %save. These commands can now be
1727 processing to %edit, %macro and %save. These commands can now be
1722 invoked on the unprocessed input as it was typed by the user
1728 invoked on the unprocessed input as it was typed by the user
1723 (without any prefilters applied). After requests by the SAGE team
1729 (without any prefilters applied). After requests by the SAGE team
1724 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1730 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1725
1731
1726 2006-02-01 Ville Vainio <vivainio@gmail.com>
1732 2006-02-01 Ville Vainio <vivainio@gmail.com>
1727
1733
1728 * setup.py, eggsetup.py: easy_install ipython==dev works
1734 * setup.py, eggsetup.py: easy_install ipython==dev works
1729 correctly now (on Linux)
1735 correctly now (on Linux)
1730
1736
1731 * ipy_user_conf,ipmaker: user config changes, removed spurious
1737 * ipy_user_conf,ipmaker: user config changes, removed spurious
1732 warnings
1738 warnings
1733
1739
1734 * iplib: if rc.banner is string, use it as is.
1740 * iplib: if rc.banner is string, use it as is.
1735
1741
1736 * Magic: %pycat accepts a string argument and pages it's contents.
1742 * Magic: %pycat accepts a string argument and pages it's contents.
1737
1743
1738
1744
1739 2006-01-30 Ville Vainio <vivainio@gmail.com>
1745 2006-01-30 Ville Vainio <vivainio@gmail.com>
1740
1746
1741 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1747 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1742 Now %store and bookmarks work through PickleShare, meaning that
1748 Now %store and bookmarks work through PickleShare, meaning that
1743 concurrent access is possible and all ipython sessions see the
1749 concurrent access is possible and all ipython sessions see the
1744 same database situation all the time, instead of snapshot of
1750 same database situation all the time, instead of snapshot of
1745 the situation when the session was started. Hence, %bookmark
1751 the situation when the session was started. Hence, %bookmark
1746 results are immediately accessible from othes sessions. The database
1752 results are immediately accessible from othes sessions. The database
1747 is also available for use by user extensions. See:
1753 is also available for use by user extensions. See:
1748 http://www.python.org/pypi/pickleshare
1754 http://www.python.org/pypi/pickleshare
1749
1755
1750 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1756 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1751
1757
1752 * aliases can now be %store'd
1758 * aliases can now be %store'd
1753
1759
1754 * path.py moved to Extensions so that pickleshare does not need
1760 * path.py moved to Extensions so that pickleshare does not need
1755 IPython-specific import. Extensions added to pythonpath right
1761 IPython-specific import. Extensions added to pythonpath right
1756 at __init__.
1762 at __init__.
1757
1763
1758 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1764 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1759 called with _ip.system and the pre-transformed command string.
1765 called with _ip.system and the pre-transformed command string.
1760
1766
1761 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1767 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1762
1768
1763 * IPython/iplib.py (interact): Fix that we were not catching
1769 * IPython/iplib.py (interact): Fix that we were not catching
1764 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1770 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1765 logic here had to change, but it's fixed now.
1771 logic here had to change, but it's fixed now.
1766
1772
1767 2006-01-29 Ville Vainio <vivainio@gmail.com>
1773 2006-01-29 Ville Vainio <vivainio@gmail.com>
1768
1774
1769 * iplib.py: Try to import pyreadline on Windows.
1775 * iplib.py: Try to import pyreadline on Windows.
1770
1776
1771 2006-01-27 Ville Vainio <vivainio@gmail.com>
1777 2006-01-27 Ville Vainio <vivainio@gmail.com>
1772
1778
1773 * iplib.py: Expose ipapi as _ip in builtin namespace.
1779 * iplib.py: Expose ipapi as _ip in builtin namespace.
1774 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1780 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1775 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1781 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1776 syntax now produce _ip.* variant of the commands.
1782 syntax now produce _ip.* variant of the commands.
1777
1783
1778 * "_ip.options().autoedit_syntax = 2" automatically throws
1784 * "_ip.options().autoedit_syntax = 2" automatically throws
1779 user to editor for syntax error correction without prompting.
1785 user to editor for syntax error correction without prompting.
1780
1786
1781 2006-01-27 Ville Vainio <vivainio@gmail.com>
1787 2006-01-27 Ville Vainio <vivainio@gmail.com>
1782
1788
1783 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1789 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1784 'ipython' at argv[0]) executed through command line.
1790 'ipython' at argv[0]) executed through command line.
1785 NOTE: this DEPRECATES calling ipython with multiple scripts
1791 NOTE: this DEPRECATES calling ipython with multiple scripts
1786 ("ipython a.py b.py c.py")
1792 ("ipython a.py b.py c.py")
1787
1793
1788 * iplib.py, hooks.py: Added configurable input prefilter,
1794 * iplib.py, hooks.py: Added configurable input prefilter,
1789 named 'input_prefilter'. See ext_rescapture.py for example
1795 named 'input_prefilter'. See ext_rescapture.py for example
1790 usage.
1796 usage.
1791
1797
1792 * ext_rescapture.py, Magic.py: Better system command output capture
1798 * ext_rescapture.py, Magic.py: Better system command output capture
1793 through 'var = !ls' (deprecates user-visible %sc). Same notation
1799 through 'var = !ls' (deprecates user-visible %sc). Same notation
1794 applies for magics, 'var = %alias' assigns alias list to var.
1800 applies for magics, 'var = %alias' assigns alias list to var.
1795
1801
1796 * ipapi.py: added meta() for accessing extension-usable data store.
1802 * ipapi.py: added meta() for accessing extension-usable data store.
1797
1803
1798 * iplib.py: added InteractiveShell.getapi(). New magics should be
1804 * iplib.py: added InteractiveShell.getapi(). New magics should be
1799 written doing self.getapi() instead of using the shell directly.
1805 written doing self.getapi() instead of using the shell directly.
1800
1806
1801 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1807 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1802 %store foo >> ~/myfoo.txt to store variables to files (in clean
1808 %store foo >> ~/myfoo.txt to store variables to files (in clean
1803 textual form, not a restorable pickle).
1809 textual form, not a restorable pickle).
1804
1810
1805 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1811 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1806
1812
1807 * usage.py, Magic.py: added %quickref
1813 * usage.py, Magic.py: added %quickref
1808
1814
1809 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1815 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1810
1816
1811 * GetoptErrors when invoking magics etc. with wrong args
1817 * GetoptErrors when invoking magics etc. with wrong args
1812 are now more helpful:
1818 are now more helpful:
1813 GetoptError: option -l not recognized (allowed: "qb" )
1819 GetoptError: option -l not recognized (allowed: "qb" )
1814
1820
1815 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1821 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1816
1822
1817 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1823 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1818 computationally intensive blocks don't appear to stall the demo.
1824 computationally intensive blocks don't appear to stall the demo.
1819
1825
1820 2006-01-24 Ville Vainio <vivainio@gmail.com>
1826 2006-01-24 Ville Vainio <vivainio@gmail.com>
1821
1827
1822 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1828 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1823 value to manipulate resulting history entry.
1829 value to manipulate resulting history entry.
1824
1830
1825 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1831 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1826 to instance methods of IPApi class, to make extending an embedded
1832 to instance methods of IPApi class, to make extending an embedded
1827 IPython feasible. See ext_rehashdir.py for example usage.
1833 IPython feasible. See ext_rehashdir.py for example usage.
1828
1834
1829 * Merged 1071-1076 from branches/0.7.1
1835 * Merged 1071-1076 from branches/0.7.1
1830
1836
1831
1837
1832 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1838 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1833
1839
1834 * tools/release (daystamp): Fix build tools to use the new
1840 * tools/release (daystamp): Fix build tools to use the new
1835 eggsetup.py script to build lightweight eggs.
1841 eggsetup.py script to build lightweight eggs.
1836
1842
1837 * Applied changesets 1062 and 1064 before 0.7.1 release.
1843 * Applied changesets 1062 and 1064 before 0.7.1 release.
1838
1844
1839 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1845 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1840 see the raw input history (without conversions like %ls ->
1846 see the raw input history (without conversions like %ls ->
1841 ipmagic("ls")). After a request from W. Stein, SAGE
1847 ipmagic("ls")). After a request from W. Stein, SAGE
1842 (http://modular.ucsd.edu/sage) developer. This information is
1848 (http://modular.ucsd.edu/sage) developer. This information is
1843 stored in the input_hist_raw attribute of the IPython instance, so
1849 stored in the input_hist_raw attribute of the IPython instance, so
1844 developers can access it if needed (it's an InputList instance).
1850 developers can access it if needed (it's an InputList instance).
1845
1851
1846 * Versionstring = 0.7.2.svn
1852 * Versionstring = 0.7.2.svn
1847
1853
1848 * eggsetup.py: A separate script for constructing eggs, creates
1854 * eggsetup.py: A separate script for constructing eggs, creates
1849 proper launch scripts even on Windows (an .exe file in
1855 proper launch scripts even on Windows (an .exe file in
1850 \python24\scripts).
1856 \python24\scripts).
1851
1857
1852 * ipapi.py: launch_new_instance, launch entry point needed for the
1858 * ipapi.py: launch_new_instance, launch entry point needed for the
1853 egg.
1859 egg.
1854
1860
1855 2006-01-23 Ville Vainio <vivainio@gmail.com>
1861 2006-01-23 Ville Vainio <vivainio@gmail.com>
1856
1862
1857 * Added %cpaste magic for pasting python code
1863 * Added %cpaste magic for pasting python code
1858
1864
1859 2006-01-22 Ville Vainio <vivainio@gmail.com>
1865 2006-01-22 Ville Vainio <vivainio@gmail.com>
1860
1866
1861 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1867 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1862
1868
1863 * Versionstring = 0.7.2.svn
1869 * Versionstring = 0.7.2.svn
1864
1870
1865 * eggsetup.py: A separate script for constructing eggs, creates
1871 * eggsetup.py: A separate script for constructing eggs, creates
1866 proper launch scripts even on Windows (an .exe file in
1872 proper launch scripts even on Windows (an .exe file in
1867 \python24\scripts).
1873 \python24\scripts).
1868
1874
1869 * ipapi.py: launch_new_instance, launch entry point needed for the
1875 * ipapi.py: launch_new_instance, launch entry point needed for the
1870 egg.
1876 egg.
1871
1877
1872 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1878 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1873
1879
1874 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1880 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1875 %pfile foo would print the file for foo even if it was a binary.
1881 %pfile foo would print the file for foo even if it was a binary.
1876 Now, extensions '.so' and '.dll' are skipped.
1882 Now, extensions '.so' and '.dll' are skipped.
1877
1883
1878 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1884 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1879 bug, where macros would fail in all threaded modes. I'm not 100%
1885 bug, where macros would fail in all threaded modes. I'm not 100%
1880 sure, so I'm going to put out an rc instead of making a release
1886 sure, so I'm going to put out an rc instead of making a release
1881 today, and wait for feedback for at least a few days.
1887 today, and wait for feedback for at least a few days.
1882
1888
1883 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1889 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1884 it...) the handling of pasting external code with autoindent on.
1890 it...) the handling of pasting external code with autoindent on.
1885 To get out of a multiline input, the rule will appear for most
1891 To get out of a multiline input, the rule will appear for most
1886 users unchanged: two blank lines or change the indent level
1892 users unchanged: two blank lines or change the indent level
1887 proposed by IPython. But there is a twist now: you can
1893 proposed by IPython. But there is a twist now: you can
1888 add/subtract only *one or two spaces*. If you add/subtract three
1894 add/subtract only *one or two spaces*. If you add/subtract three
1889 or more (unless you completely delete the line), IPython will
1895 or more (unless you completely delete the line), IPython will
1890 accept that line, and you'll need to enter a second one of pure
1896 accept that line, and you'll need to enter a second one of pure
1891 whitespace. I know it sounds complicated, but I can't find a
1897 whitespace. I know it sounds complicated, but I can't find a
1892 different solution that covers all the cases, with the right
1898 different solution that covers all the cases, with the right
1893 heuristics. Hopefully in actual use, nobody will really notice
1899 heuristics. Hopefully in actual use, nobody will really notice
1894 all these strange rules and things will 'just work'.
1900 all these strange rules and things will 'just work'.
1895
1901
1896 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1897
1903
1898 * IPython/iplib.py (interact): catch exceptions which can be
1904 * IPython/iplib.py (interact): catch exceptions which can be
1899 triggered asynchronously by signal handlers. Thanks to an
1905 triggered asynchronously by signal handlers. Thanks to an
1900 automatic crash report, submitted by Colin Kingsley
1906 automatic crash report, submitted by Colin Kingsley
1901 <tercel-AT-gentoo.org>.
1907 <tercel-AT-gentoo.org>.
1902
1908
1903 2006-01-20 Ville Vainio <vivainio@gmail.com>
1909 2006-01-20 Ville Vainio <vivainio@gmail.com>
1904
1910
1905 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1911 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1906 (%rehashdir, very useful, try it out) of how to extend ipython
1912 (%rehashdir, very useful, try it out) of how to extend ipython
1907 with new magics. Also added Extensions dir to pythonpath to make
1913 with new magics. Also added Extensions dir to pythonpath to make
1908 importing extensions easy.
1914 importing extensions easy.
1909
1915
1910 * %store now complains when trying to store interactively declared
1916 * %store now complains when trying to store interactively declared
1911 classes / instances of those classes.
1917 classes / instances of those classes.
1912
1918
1913 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1919 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1914 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1920 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1915 if they exist, and ipy_user_conf.py with some defaults is created for
1921 if they exist, and ipy_user_conf.py with some defaults is created for
1916 the user.
1922 the user.
1917
1923
1918 * Startup rehashing done by the config file, not InterpreterExec.
1924 * Startup rehashing done by the config file, not InterpreterExec.
1919 This means system commands are available even without selecting the
1925 This means system commands are available even without selecting the
1920 pysh profile. It's the sensible default after all.
1926 pysh profile. It's the sensible default after all.
1921
1927
1922 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1928 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1923
1929
1924 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1930 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1925 multiline code with autoindent on working. But I am really not
1931 multiline code with autoindent on working. But I am really not
1926 sure, so this needs more testing. Will commit a debug-enabled
1932 sure, so this needs more testing. Will commit a debug-enabled
1927 version for now, while I test it some more, so that Ville and
1933 version for now, while I test it some more, so that Ville and
1928 others may also catch any problems. Also made
1934 others may also catch any problems. Also made
1929 self.indent_current_str() a method, to ensure that there's no
1935 self.indent_current_str() a method, to ensure that there's no
1930 chance of the indent space count and the corresponding string
1936 chance of the indent space count and the corresponding string
1931 falling out of sync. All code needing the string should just call
1937 falling out of sync. All code needing the string should just call
1932 the method.
1938 the method.
1933
1939
1934 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1940 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1935
1941
1936 * IPython/Magic.py (magic_edit): fix check for when users don't
1942 * IPython/Magic.py (magic_edit): fix check for when users don't
1937 save their output files, the try/except was in the wrong section.
1943 save their output files, the try/except was in the wrong section.
1938
1944
1939 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1945 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1940
1946
1941 * IPython/Magic.py (magic_run): fix __file__ global missing from
1947 * IPython/Magic.py (magic_run): fix __file__ global missing from
1942 script's namespace when executed via %run. After a report by
1948 script's namespace when executed via %run. After a report by
1943 Vivian.
1949 Vivian.
1944
1950
1945 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1951 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1946 when using python 2.4. The parent constructor changed in 2.4, and
1952 when using python 2.4. The parent constructor changed in 2.4, and
1947 we need to track it directly (we can't call it, as it messes up
1953 we need to track it directly (we can't call it, as it messes up
1948 readline and tab-completion inside our pdb would stop working).
1954 readline and tab-completion inside our pdb would stop working).
1949 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1955 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1950
1956
1951 2006-01-16 Ville Vainio <vivainio@gmail.com>
1957 2006-01-16 Ville Vainio <vivainio@gmail.com>
1952
1958
1953 * Ipython/magic.py: Reverted back to old %edit functionality
1959 * Ipython/magic.py: Reverted back to old %edit functionality
1954 that returns file contents on exit.
1960 that returns file contents on exit.
1955
1961
1956 * IPython/path.py: Added Jason Orendorff's "path" module to
1962 * IPython/path.py: Added Jason Orendorff's "path" module to
1957 IPython tree, http://www.jorendorff.com/articles/python/path/.
1963 IPython tree, http://www.jorendorff.com/articles/python/path/.
1958 You can get path objects conveniently through %sc, and !!, e.g.:
1964 You can get path objects conveniently through %sc, and !!, e.g.:
1959 sc files=ls
1965 sc files=ls
1960 for p in files.paths: # or files.p
1966 for p in files.paths: # or files.p
1961 print p,p.mtime
1967 print p,p.mtime
1962
1968
1963 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1969 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1964 now work again without considering the exclusion regexp -
1970 now work again without considering the exclusion regexp -
1965 hence, things like ',foo my/path' turn to 'foo("my/path")'
1971 hence, things like ',foo my/path' turn to 'foo("my/path")'
1966 instead of syntax error.
1972 instead of syntax error.
1967
1973
1968
1974
1969 2006-01-14 Ville Vainio <vivainio@gmail.com>
1975 2006-01-14 Ville Vainio <vivainio@gmail.com>
1970
1976
1971 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1977 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1972 ipapi decorators for python 2.4 users, options() provides access to rc
1978 ipapi decorators for python 2.4 users, options() provides access to rc
1973 data.
1979 data.
1974
1980
1975 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1981 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1976 as path separators (even on Linux ;-). Space character after
1982 as path separators (even on Linux ;-). Space character after
1977 backslash (as yielded by tab completer) is still space;
1983 backslash (as yielded by tab completer) is still space;
1978 "%cd long\ name" works as expected.
1984 "%cd long\ name" works as expected.
1979
1985
1980 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1986 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1981 as "chain of command", with priority. API stays the same,
1987 as "chain of command", with priority. API stays the same,
1982 TryNext exception raised by a hook function signals that
1988 TryNext exception raised by a hook function signals that
1983 current hook failed and next hook should try handling it, as
1989 current hook failed and next hook should try handling it, as
1984 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1990 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1985 requested configurable display hook, which is now implemented.
1991 requested configurable display hook, which is now implemented.
1986
1992
1987 2006-01-13 Ville Vainio <vivainio@gmail.com>
1993 2006-01-13 Ville Vainio <vivainio@gmail.com>
1988
1994
1989 * IPython/platutils*.py: platform specific utility functions,
1995 * IPython/platutils*.py: platform specific utility functions,
1990 so far only set_term_title is implemented (change terminal
1996 so far only set_term_title is implemented (change terminal
1991 label in windowing systems). %cd now changes the title to
1997 label in windowing systems). %cd now changes the title to
1992 current dir.
1998 current dir.
1993
1999
1994 * IPython/Release.py: Added myself to "authors" list,
2000 * IPython/Release.py: Added myself to "authors" list,
1995 had to create new files.
2001 had to create new files.
1996
2002
1997 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2003 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1998 shell escape; not a known bug but had potential to be one in the
2004 shell escape; not a known bug but had potential to be one in the
1999 future.
2005 future.
2000
2006
2001 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2007 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2002 extension API for IPython! See the module for usage example. Fix
2008 extension API for IPython! See the module for usage example. Fix
2003 OInspect for docstring-less magic functions.
2009 OInspect for docstring-less magic functions.
2004
2010
2005
2011
2006 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2012 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2007
2013
2008 * IPython/iplib.py (raw_input): temporarily deactivate all
2014 * IPython/iplib.py (raw_input): temporarily deactivate all
2009 attempts at allowing pasting of code with autoindent on. It
2015 attempts at allowing pasting of code with autoindent on. It
2010 introduced bugs (reported by Prabhu) and I can't seem to find a
2016 introduced bugs (reported by Prabhu) and I can't seem to find a
2011 robust combination which works in all cases. Will have to revisit
2017 robust combination which works in all cases. Will have to revisit
2012 later.
2018 later.
2013
2019
2014 * IPython/genutils.py: remove isspace() function. We've dropped
2020 * IPython/genutils.py: remove isspace() function. We've dropped
2015 2.2 compatibility, so it's OK to use the string method.
2021 2.2 compatibility, so it's OK to use the string method.
2016
2022
2017 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2023 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2018
2024
2019 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2025 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2020 matching what NOT to autocall on, to include all python binary
2026 matching what NOT to autocall on, to include all python binary
2021 operators (including things like 'and', 'or', 'is' and 'in').
2027 operators (including things like 'and', 'or', 'is' and 'in').
2022 Prompted by a bug report on 'foo & bar', but I realized we had
2028 Prompted by a bug report on 'foo & bar', but I realized we had
2023 many more potential bug cases with other operators. The regexp is
2029 many more potential bug cases with other operators. The regexp is
2024 self.re_exclude_auto, it's fairly commented.
2030 self.re_exclude_auto, it's fairly commented.
2025
2031
2026 2006-01-12 Ville Vainio <vivainio@gmail.com>
2032 2006-01-12 Ville Vainio <vivainio@gmail.com>
2027
2033
2028 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2034 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2029 Prettified and hardened string/backslash quoting with ipsystem(),
2035 Prettified and hardened string/backslash quoting with ipsystem(),
2030 ipalias() and ipmagic(). Now even \ characters are passed to
2036 ipalias() and ipmagic(). Now even \ characters are passed to
2031 %magics, !shell escapes and aliases exactly as they are in the
2037 %magics, !shell escapes and aliases exactly as they are in the
2032 ipython command line. Should improve backslash experience,
2038 ipython command line. Should improve backslash experience,
2033 particularly in Windows (path delimiter for some commands that
2039 particularly in Windows (path delimiter for some commands that
2034 won't understand '/'), but Unix benefits as well (regexps). %cd
2040 won't understand '/'), but Unix benefits as well (regexps). %cd
2035 magic still doesn't support backslash path delimiters, though. Also
2041 magic still doesn't support backslash path delimiters, though. Also
2036 deleted all pretense of supporting multiline command strings in
2042 deleted all pretense of supporting multiline command strings in
2037 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2043 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2038
2044
2039 * doc/build_doc_instructions.txt added. Documentation on how to
2045 * doc/build_doc_instructions.txt added. Documentation on how to
2040 use doc/update_manual.py, added yesterday. Both files contributed
2046 use doc/update_manual.py, added yesterday. Both files contributed
2041 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2047 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2042 doc/*.sh for deprecation at a later date.
2048 doc/*.sh for deprecation at a later date.
2043
2049
2044 * /ipython.py Added ipython.py to root directory for
2050 * /ipython.py Added ipython.py to root directory for
2045 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2051 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2046 ipython.py) and development convenience (no need to keep doing
2052 ipython.py) and development convenience (no need to keep doing
2047 "setup.py install" between changes).
2053 "setup.py install" between changes).
2048
2054
2049 * Made ! and !! shell escapes work (again) in multiline expressions:
2055 * Made ! and !! shell escapes work (again) in multiline expressions:
2050 if 1:
2056 if 1:
2051 !ls
2057 !ls
2052 !!ls
2058 !!ls
2053
2059
2054 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2060 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2055
2061
2056 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2062 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2057 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2063 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2058 module in case-insensitive installation. Was causing crashes
2064 module in case-insensitive installation. Was causing crashes
2059 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2065 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2060
2066
2061 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2067 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2062 <marienz-AT-gentoo.org>, closes
2068 <marienz-AT-gentoo.org>, closes
2063 http://www.scipy.net/roundup/ipython/issue51.
2069 http://www.scipy.net/roundup/ipython/issue51.
2064
2070
2065 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2071 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2066
2072
2067 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2073 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2068 problem of excessive CPU usage under *nix and keyboard lag under
2074 problem of excessive CPU usage under *nix and keyboard lag under
2069 win32.
2075 win32.
2070
2076
2071 2006-01-10 *** Released version 0.7.0
2077 2006-01-10 *** Released version 0.7.0
2072
2078
2073 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2079 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2074
2080
2075 * IPython/Release.py (revision): tag version number to 0.7.0,
2081 * IPython/Release.py (revision): tag version number to 0.7.0,
2076 ready for release.
2082 ready for release.
2077
2083
2078 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2084 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2079 it informs the user of the name of the temp. file used. This can
2085 it informs the user of the name of the temp. file used. This can
2080 help if you decide later to reuse that same file, so you know
2086 help if you decide later to reuse that same file, so you know
2081 where to copy the info from.
2087 where to copy the info from.
2082
2088
2083 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2089 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2084
2090
2085 * setup_bdist_egg.py: little script to build an egg. Added
2091 * setup_bdist_egg.py: little script to build an egg. Added
2086 support in the release tools as well.
2092 support in the release tools as well.
2087
2093
2088 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2094 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2089
2095
2090 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2096 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2091 version selection (new -wxversion command line and ipythonrc
2097 version selection (new -wxversion command line and ipythonrc
2092 parameter). Patch contributed by Arnd Baecker
2098 parameter). Patch contributed by Arnd Baecker
2093 <arnd.baecker-AT-web.de>.
2099 <arnd.baecker-AT-web.de>.
2094
2100
2095 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2101 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2096 embedded instances, for variables defined at the interactive
2102 embedded instances, for variables defined at the interactive
2097 prompt of the embedded ipython. Reported by Arnd.
2103 prompt of the embedded ipython. Reported by Arnd.
2098
2104
2099 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2105 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2100 it can be used as a (stateful) toggle, or with a direct parameter.
2106 it can be used as a (stateful) toggle, or with a direct parameter.
2101
2107
2102 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2108 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2103 could be triggered in certain cases and cause the traceback
2109 could be triggered in certain cases and cause the traceback
2104 printer not to work.
2110 printer not to work.
2105
2111
2106 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2112 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2107
2113
2108 * IPython/iplib.py (_should_recompile): Small fix, closes
2114 * IPython/iplib.py (_should_recompile): Small fix, closes
2109 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2115 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2110
2116
2111 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2117 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2112
2118
2113 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2119 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2114 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2120 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2115 Moad for help with tracking it down.
2121 Moad for help with tracking it down.
2116
2122
2117 * IPython/iplib.py (handle_auto): fix autocall handling for
2123 * IPython/iplib.py (handle_auto): fix autocall handling for
2118 objects which support BOTH __getitem__ and __call__ (so that f [x]
2124 objects which support BOTH __getitem__ and __call__ (so that f [x]
2119 is left alone, instead of becoming f([x]) automatically).
2125 is left alone, instead of becoming f([x]) automatically).
2120
2126
2121 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2127 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2122 Ville's patch.
2128 Ville's patch.
2123
2129
2124 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2130 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2125
2131
2126 * IPython/iplib.py (handle_auto): changed autocall semantics to
2132 * IPython/iplib.py (handle_auto): changed autocall semantics to
2127 include 'smart' mode, where the autocall transformation is NOT
2133 include 'smart' mode, where the autocall transformation is NOT
2128 applied if there are no arguments on the line. This allows you to
2134 applied if there are no arguments on the line. This allows you to
2129 just type 'foo' if foo is a callable to see its internal form,
2135 just type 'foo' if foo is a callable to see its internal form,
2130 instead of having it called with no arguments (typically a
2136 instead of having it called with no arguments (typically a
2131 mistake). The old 'full' autocall still exists: for that, you
2137 mistake). The old 'full' autocall still exists: for that, you
2132 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2138 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2133
2139
2134 * IPython/completer.py (Completer.attr_matches): add
2140 * IPython/completer.py (Completer.attr_matches): add
2135 tab-completion support for Enthoughts' traits. After a report by
2141 tab-completion support for Enthoughts' traits. After a report by
2136 Arnd and a patch by Prabhu.
2142 Arnd and a patch by Prabhu.
2137
2143
2138 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2144 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2139
2145
2140 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2146 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2141 Schmolck's patch to fix inspect.getinnerframes().
2147 Schmolck's patch to fix inspect.getinnerframes().
2142
2148
2143 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2149 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2144 for embedded instances, regarding handling of namespaces and items
2150 for embedded instances, regarding handling of namespaces and items
2145 added to the __builtin__ one. Multiple embedded instances and
2151 added to the __builtin__ one. Multiple embedded instances and
2146 recursive embeddings should work better now (though I'm not sure
2152 recursive embeddings should work better now (though I'm not sure
2147 I've got all the corner cases fixed, that code is a bit of a brain
2153 I've got all the corner cases fixed, that code is a bit of a brain
2148 twister).
2154 twister).
2149
2155
2150 * IPython/Magic.py (magic_edit): added support to edit in-memory
2156 * IPython/Magic.py (magic_edit): added support to edit in-memory
2151 macros (automatically creates the necessary temp files). %edit
2157 macros (automatically creates the necessary temp files). %edit
2152 also doesn't return the file contents anymore, it's just noise.
2158 also doesn't return the file contents anymore, it's just noise.
2153
2159
2154 * IPython/completer.py (Completer.attr_matches): revert change to
2160 * IPython/completer.py (Completer.attr_matches): revert change to
2155 complete only on attributes listed in __all__. I realized it
2161 complete only on attributes listed in __all__. I realized it
2156 cripples the tab-completion system as a tool for exploring the
2162 cripples the tab-completion system as a tool for exploring the
2157 internals of unknown libraries (it renders any non-__all__
2163 internals of unknown libraries (it renders any non-__all__
2158 attribute off-limits). I got bit by this when trying to see
2164 attribute off-limits). I got bit by this when trying to see
2159 something inside the dis module.
2165 something inside the dis module.
2160
2166
2161 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2167 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2162
2168
2163 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2169 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2164 namespace for users and extension writers to hold data in. This
2170 namespace for users and extension writers to hold data in. This
2165 follows the discussion in
2171 follows the discussion in
2166 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2172 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2167
2173
2168 * IPython/completer.py (IPCompleter.complete): small patch to help
2174 * IPython/completer.py (IPCompleter.complete): small patch to help
2169 tab-completion under Emacs, after a suggestion by John Barnard
2175 tab-completion under Emacs, after a suggestion by John Barnard
2170 <barnarj-AT-ccf.org>.
2176 <barnarj-AT-ccf.org>.
2171
2177
2172 * IPython/Magic.py (Magic.extract_input_slices): added support for
2178 * IPython/Magic.py (Magic.extract_input_slices): added support for
2173 the slice notation in magics to use N-M to represent numbers N...M
2179 the slice notation in magics to use N-M to represent numbers N...M
2174 (closed endpoints). This is used by %macro and %save.
2180 (closed endpoints). This is used by %macro and %save.
2175
2181
2176 * IPython/completer.py (Completer.attr_matches): for modules which
2182 * IPython/completer.py (Completer.attr_matches): for modules which
2177 define __all__, complete only on those. After a patch by Jeffrey
2183 define __all__, complete only on those. After a patch by Jeffrey
2178 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2184 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2179 speed up this routine.
2185 speed up this routine.
2180
2186
2181 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2187 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2182 don't know if this is the end of it, but the behavior now is
2188 don't know if this is the end of it, but the behavior now is
2183 certainly much more correct. Note that coupled with macros,
2189 certainly much more correct. Note that coupled with macros,
2184 slightly surprising (at first) behavior may occur: a macro will in
2190 slightly surprising (at first) behavior may occur: a macro will in
2185 general expand to multiple lines of input, so upon exiting, the
2191 general expand to multiple lines of input, so upon exiting, the
2186 in/out counters will both be bumped by the corresponding amount
2192 in/out counters will both be bumped by the corresponding amount
2187 (as if the macro's contents had been typed interactively). Typing
2193 (as if the macro's contents had been typed interactively). Typing
2188 %hist will reveal the intermediate (silently processed) lines.
2194 %hist will reveal the intermediate (silently processed) lines.
2189
2195
2190 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2196 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2191 pickle to fail (%run was overwriting __main__ and not restoring
2197 pickle to fail (%run was overwriting __main__ and not restoring
2192 it, but pickle relies on __main__ to operate).
2198 it, but pickle relies on __main__ to operate).
2193
2199
2194 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2200 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2195 using properties, but forgot to make the main InteractiveShell
2201 using properties, but forgot to make the main InteractiveShell
2196 class a new-style class. Properties fail silently, and
2202 class a new-style class. Properties fail silently, and
2197 mysteriously, with old-style class (getters work, but
2203 mysteriously, with old-style class (getters work, but
2198 setters don't do anything).
2204 setters don't do anything).
2199
2205
2200 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2206 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2207
2202 * IPython/Magic.py (magic_history): fix history reporting bug (I
2208 * IPython/Magic.py (magic_history): fix history reporting bug (I
2203 know some nasties are still there, I just can't seem to find a
2209 know some nasties are still there, I just can't seem to find a
2204 reproducible test case to track them down; the input history is
2210 reproducible test case to track them down; the input history is
2205 falling out of sync...)
2211 falling out of sync...)
2206
2212
2207 * IPython/iplib.py (handle_shell_escape): fix bug where both
2213 * IPython/iplib.py (handle_shell_escape): fix bug where both
2208 aliases and system accesses where broken for indented code (such
2214 aliases and system accesses where broken for indented code (such
2209 as loops).
2215 as loops).
2210
2216
2211 * IPython/genutils.py (shell): fix small but critical bug for
2217 * IPython/genutils.py (shell): fix small but critical bug for
2212 win32 system access.
2218 win32 system access.
2213
2219
2214 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2220 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2215
2221
2216 * IPython/iplib.py (showtraceback): remove use of the
2222 * IPython/iplib.py (showtraceback): remove use of the
2217 sys.last_{type/value/traceback} structures, which are non
2223 sys.last_{type/value/traceback} structures, which are non
2218 thread-safe.
2224 thread-safe.
2219 (_prefilter): change control flow to ensure that we NEVER
2225 (_prefilter): change control flow to ensure that we NEVER
2220 introspect objects when autocall is off. This will guarantee that
2226 introspect objects when autocall is off. This will guarantee that
2221 having an input line of the form 'x.y', where access to attribute
2227 having an input line of the form 'x.y', where access to attribute
2222 'y' has side effects, doesn't trigger the side effect TWICE. It
2228 'y' has side effects, doesn't trigger the side effect TWICE. It
2223 is important to note that, with autocall on, these side effects
2229 is important to note that, with autocall on, these side effects
2224 can still happen.
2230 can still happen.
2225 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2231 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2226 trio. IPython offers these three kinds of special calls which are
2232 trio. IPython offers these three kinds of special calls which are
2227 not python code, and it's a good thing to have their call method
2233 not python code, and it's a good thing to have their call method
2228 be accessible as pure python functions (not just special syntax at
2234 be accessible as pure python functions (not just special syntax at
2229 the command line). It gives us a better internal implementation
2235 the command line). It gives us a better internal implementation
2230 structure, as well as exposing these for user scripting more
2236 structure, as well as exposing these for user scripting more
2231 cleanly.
2237 cleanly.
2232
2238
2233 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2239 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2234 file. Now that they'll be more likely to be used with the
2240 file. Now that they'll be more likely to be used with the
2235 persistance system (%store), I want to make sure their module path
2241 persistance system (%store), I want to make sure their module path
2236 doesn't change in the future, so that we don't break things for
2242 doesn't change in the future, so that we don't break things for
2237 users' persisted data.
2243 users' persisted data.
2238
2244
2239 * IPython/iplib.py (autoindent_update): move indentation
2245 * IPython/iplib.py (autoindent_update): move indentation
2240 management into the _text_ processing loop, not the keyboard
2246 management into the _text_ processing loop, not the keyboard
2241 interactive one. This is necessary to correctly process non-typed
2247 interactive one. This is necessary to correctly process non-typed
2242 multiline input (such as macros).
2248 multiline input (such as macros).
2243
2249
2244 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2250 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2245 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2251 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2246 which was producing problems in the resulting manual.
2252 which was producing problems in the resulting manual.
2247 (magic_whos): improve reporting of instances (show their class,
2253 (magic_whos): improve reporting of instances (show their class,
2248 instead of simply printing 'instance' which isn't terribly
2254 instead of simply printing 'instance' which isn't terribly
2249 informative).
2255 informative).
2250
2256
2251 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2257 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2252 (minor mods) to support network shares under win32.
2258 (minor mods) to support network shares under win32.
2253
2259
2254 * IPython/winconsole.py (get_console_size): add new winconsole
2260 * IPython/winconsole.py (get_console_size): add new winconsole
2255 module and fixes to page_dumb() to improve its behavior under
2261 module and fixes to page_dumb() to improve its behavior under
2256 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2262 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2257
2263
2258 * IPython/Magic.py (Macro): simplified Macro class to just
2264 * IPython/Magic.py (Macro): simplified Macro class to just
2259 subclass list. We've had only 2.2 compatibility for a very long
2265 subclass list. We've had only 2.2 compatibility for a very long
2260 time, yet I was still avoiding subclassing the builtin types. No
2266 time, yet I was still avoiding subclassing the builtin types. No
2261 more (I'm also starting to use properties, though I won't shift to
2267 more (I'm also starting to use properties, though I won't shift to
2262 2.3-specific features quite yet).
2268 2.3-specific features quite yet).
2263 (magic_store): added Ville's patch for lightweight variable
2269 (magic_store): added Ville's patch for lightweight variable
2264 persistence, after a request on the user list by Matt Wilkie
2270 persistence, after a request on the user list by Matt Wilkie
2265 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2271 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2266 details.
2272 details.
2267
2273
2268 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2274 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2269 changed the default logfile name from 'ipython.log' to
2275 changed the default logfile name from 'ipython.log' to
2270 'ipython_log.py'. These logs are real python files, and now that
2276 'ipython_log.py'. These logs are real python files, and now that
2271 we have much better multiline support, people are more likely to
2277 we have much better multiline support, people are more likely to
2272 want to use them as such. Might as well name them correctly.
2278 want to use them as such. Might as well name them correctly.
2273
2279
2274 * IPython/Magic.py: substantial cleanup. While we can't stop
2280 * IPython/Magic.py: substantial cleanup. While we can't stop
2275 using magics as mixins, due to the existing customizations 'out
2281 using magics as mixins, due to the existing customizations 'out
2276 there' which rely on the mixin naming conventions, at least I
2282 there' which rely on the mixin naming conventions, at least I
2277 cleaned out all cross-class name usage. So once we are OK with
2283 cleaned out all cross-class name usage. So once we are OK with
2278 breaking compatibility, the two systems can be separated.
2284 breaking compatibility, the two systems can be separated.
2279
2285
2280 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2286 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2281 anymore, and the class is a fair bit less hideous as well. New
2287 anymore, and the class is a fair bit less hideous as well. New
2282 features were also introduced: timestamping of input, and logging
2288 features were also introduced: timestamping of input, and logging
2283 of output results. These are user-visible with the -t and -o
2289 of output results. These are user-visible with the -t and -o
2284 options to %logstart. Closes
2290 options to %logstart. Closes
2285 http://www.scipy.net/roundup/ipython/issue11 and a request by
2291 http://www.scipy.net/roundup/ipython/issue11 and a request by
2286 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2292 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2287
2293
2288 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2294 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2289
2295
2290 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2296 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2291 better handle backslashes in paths. See the thread 'More Windows
2297 better handle backslashes in paths. See the thread 'More Windows
2292 questions part 2 - \/ characters revisited' on the iypthon user
2298 questions part 2 - \/ characters revisited' on the iypthon user
2293 list:
2299 list:
2294 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2300 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2295
2301
2296 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2302 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2297
2303
2298 (InteractiveShell.__init__): change threaded shells to not use the
2304 (InteractiveShell.__init__): change threaded shells to not use the
2299 ipython crash handler. This was causing more problems than not,
2305 ipython crash handler. This was causing more problems than not,
2300 as exceptions in the main thread (GUI code, typically) would
2306 as exceptions in the main thread (GUI code, typically) would
2301 always show up as a 'crash', when they really weren't.
2307 always show up as a 'crash', when they really weren't.
2302
2308
2303 The colors and exception mode commands (%colors/%xmode) have been
2309 The colors and exception mode commands (%colors/%xmode) have been
2304 synchronized to also take this into account, so users can get
2310 synchronized to also take this into account, so users can get
2305 verbose exceptions for their threaded code as well. I also added
2311 verbose exceptions for their threaded code as well. I also added
2306 support for activating pdb inside this exception handler as well,
2312 support for activating pdb inside this exception handler as well,
2307 so now GUI authors can use IPython's enhanced pdb at runtime.
2313 so now GUI authors can use IPython's enhanced pdb at runtime.
2308
2314
2309 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2315 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2310 true by default, and add it to the shipped ipythonrc file. Since
2316 true by default, and add it to the shipped ipythonrc file. Since
2311 this asks the user before proceeding, I think it's OK to make it
2317 this asks the user before proceeding, I think it's OK to make it
2312 true by default.
2318 true by default.
2313
2319
2314 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2320 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2315 of the previous special-casing of input in the eval loop. I think
2321 of the previous special-casing of input in the eval loop. I think
2316 this is cleaner, as they really are commands and shouldn't have
2322 this is cleaner, as they really are commands and shouldn't have
2317 a special role in the middle of the core code.
2323 a special role in the middle of the core code.
2318
2324
2319 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2325 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2320
2326
2321 * IPython/iplib.py (edit_syntax_error): added support for
2327 * IPython/iplib.py (edit_syntax_error): added support for
2322 automatically reopening the editor if the file had a syntax error
2328 automatically reopening the editor if the file had a syntax error
2323 in it. Thanks to scottt who provided the patch at:
2329 in it. Thanks to scottt who provided the patch at:
2324 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2330 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2325 version committed).
2331 version committed).
2326
2332
2327 * IPython/iplib.py (handle_normal): add suport for multi-line
2333 * IPython/iplib.py (handle_normal): add suport for multi-line
2328 input with emtpy lines. This fixes
2334 input with emtpy lines. This fixes
2329 http://www.scipy.net/roundup/ipython/issue43 and a similar
2335 http://www.scipy.net/roundup/ipython/issue43 and a similar
2330 discussion on the user list.
2336 discussion on the user list.
2331
2337
2332 WARNING: a behavior change is necessarily introduced to support
2338 WARNING: a behavior change is necessarily introduced to support
2333 blank lines: now a single blank line with whitespace does NOT
2339 blank lines: now a single blank line with whitespace does NOT
2334 break the input loop, which means that when autoindent is on, by
2340 break the input loop, which means that when autoindent is on, by
2335 default hitting return on the next (indented) line does NOT exit.
2341 default hitting return on the next (indented) line does NOT exit.
2336
2342
2337 Instead, to exit a multiline input you can either have:
2343 Instead, to exit a multiline input you can either have:
2338
2344
2339 - TWO whitespace lines (just hit return again), or
2345 - TWO whitespace lines (just hit return again), or
2340 - a single whitespace line of a different length than provided
2346 - a single whitespace line of a different length than provided
2341 by the autoindent (add or remove a space).
2347 by the autoindent (add or remove a space).
2342
2348
2343 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2349 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2344 module to better organize all readline-related functionality.
2350 module to better organize all readline-related functionality.
2345 I've deleted FlexCompleter and put all completion clases here.
2351 I've deleted FlexCompleter and put all completion clases here.
2346
2352
2347 * IPython/iplib.py (raw_input): improve indentation management.
2353 * IPython/iplib.py (raw_input): improve indentation management.
2348 It is now possible to paste indented code with autoindent on, and
2354 It is now possible to paste indented code with autoindent on, and
2349 the code is interpreted correctly (though it still looks bad on
2355 the code is interpreted correctly (though it still looks bad on
2350 screen, due to the line-oriented nature of ipython).
2356 screen, due to the line-oriented nature of ipython).
2351 (MagicCompleter.complete): change behavior so that a TAB key on an
2357 (MagicCompleter.complete): change behavior so that a TAB key on an
2352 otherwise empty line actually inserts a tab, instead of completing
2358 otherwise empty line actually inserts a tab, instead of completing
2353 on the entire global namespace. This makes it easier to use the
2359 on the entire global namespace. This makes it easier to use the
2354 TAB key for indentation. After a request by Hans Meine
2360 TAB key for indentation. After a request by Hans Meine
2355 <hans_meine-AT-gmx.net>
2361 <hans_meine-AT-gmx.net>
2356 (_prefilter): add support so that typing plain 'exit' or 'quit'
2362 (_prefilter): add support so that typing plain 'exit' or 'quit'
2357 does a sensible thing. Originally I tried to deviate as little as
2363 does a sensible thing. Originally I tried to deviate as little as
2358 possible from the default python behavior, but even that one may
2364 possible from the default python behavior, but even that one may
2359 change in this direction (thread on python-dev to that effect).
2365 change in this direction (thread on python-dev to that effect).
2360 Regardless, ipython should do the right thing even if CPython's
2366 Regardless, ipython should do the right thing even if CPython's
2361 '>>>' prompt doesn't.
2367 '>>>' prompt doesn't.
2362 (InteractiveShell): removed subclassing code.InteractiveConsole
2368 (InteractiveShell): removed subclassing code.InteractiveConsole
2363 class. By now we'd overridden just about all of its methods: I've
2369 class. By now we'd overridden just about all of its methods: I've
2364 copied the remaining two over, and now ipython is a standalone
2370 copied the remaining two over, and now ipython is a standalone
2365 class. This will provide a clearer picture for the chainsaw
2371 class. This will provide a clearer picture for the chainsaw
2366 branch refactoring.
2372 branch refactoring.
2367
2373
2368 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2374 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2369
2375
2370 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2376 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2371 failures for objects which break when dir() is called on them.
2377 failures for objects which break when dir() is called on them.
2372
2378
2373 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2379 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2374 distinct local and global namespaces in the completer API. This
2380 distinct local and global namespaces in the completer API. This
2375 change allows us to properly handle completion with distinct
2381 change allows us to properly handle completion with distinct
2376 scopes, including in embedded instances (this had never really
2382 scopes, including in embedded instances (this had never really
2377 worked correctly).
2383 worked correctly).
2378
2384
2379 Note: this introduces a change in the constructor for
2385 Note: this introduces a change in the constructor for
2380 MagicCompleter, as a new global_namespace parameter is now the
2386 MagicCompleter, as a new global_namespace parameter is now the
2381 second argument (the others were bumped one position).
2387 second argument (the others were bumped one position).
2382
2388
2383 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2389 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2384
2390
2385 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2391 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2386 embedded instances (which can be done now thanks to Vivian's
2392 embedded instances (which can be done now thanks to Vivian's
2387 frame-handling fixes for pdb).
2393 frame-handling fixes for pdb).
2388 (InteractiveShell.__init__): Fix namespace handling problem in
2394 (InteractiveShell.__init__): Fix namespace handling problem in
2389 embedded instances. We were overwriting __main__ unconditionally,
2395 embedded instances. We were overwriting __main__ unconditionally,
2390 and this should only be done for 'full' (non-embedded) IPython;
2396 and this should only be done for 'full' (non-embedded) IPython;
2391 embedded instances must respect the caller's __main__. Thanks to
2397 embedded instances must respect the caller's __main__. Thanks to
2392 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2398 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2393
2399
2394 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2400 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2395
2401
2396 * setup.py: added download_url to setup(). This registers the
2402 * setup.py: added download_url to setup(). This registers the
2397 download address at PyPI, which is not only useful to humans
2403 download address at PyPI, which is not only useful to humans
2398 browsing the site, but is also picked up by setuptools (the Eggs
2404 browsing the site, but is also picked up by setuptools (the Eggs
2399 machinery). Thanks to Ville and R. Kern for the info/discussion
2405 machinery). Thanks to Ville and R. Kern for the info/discussion
2400 on this.
2406 on this.
2401
2407
2402 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2408 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2403
2409
2404 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2410 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2405 This brings a lot of nice functionality to the pdb mode, which now
2411 This brings a lot of nice functionality to the pdb mode, which now
2406 has tab-completion, syntax highlighting, and better stack handling
2412 has tab-completion, syntax highlighting, and better stack handling
2407 than before. Many thanks to Vivian De Smedt
2413 than before. Many thanks to Vivian De Smedt
2408 <vivian-AT-vdesmedt.com> for the original patches.
2414 <vivian-AT-vdesmedt.com> for the original patches.
2409
2415
2410 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2416 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2411
2417
2412 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2418 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2413 sequence to consistently accept the banner argument. The
2419 sequence to consistently accept the banner argument. The
2414 inconsistency was tripping SAGE, thanks to Gary Zablackis
2420 inconsistency was tripping SAGE, thanks to Gary Zablackis
2415 <gzabl-AT-yahoo.com> for the report.
2421 <gzabl-AT-yahoo.com> for the report.
2416
2422
2417 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2423 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2424
2419 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2425 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2420 Fix bug where a naked 'alias' call in the ipythonrc file would
2426 Fix bug where a naked 'alias' call in the ipythonrc file would
2421 cause a crash. Bug reported by Jorgen Stenarson.
2427 cause a crash. Bug reported by Jorgen Stenarson.
2422
2428
2423 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2429 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2424
2430
2425 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2431 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2426 startup time.
2432 startup time.
2427
2433
2428 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2434 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2429 instances had introduced a bug with globals in normal code. Now
2435 instances had introduced a bug with globals in normal code. Now
2430 it's working in all cases.
2436 it's working in all cases.
2431
2437
2432 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2438 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2433 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2439 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2434 has been introduced to set the default case sensitivity of the
2440 has been introduced to set the default case sensitivity of the
2435 searches. Users can still select either mode at runtime on a
2441 searches. Users can still select either mode at runtime on a
2436 per-search basis.
2442 per-search basis.
2437
2443
2438 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2444 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2439
2445
2440 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2446 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2441 attributes in wildcard searches for subclasses. Modified version
2447 attributes in wildcard searches for subclasses. Modified version
2442 of a patch by Jorgen.
2448 of a patch by Jorgen.
2443
2449
2444 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2450 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2445
2451
2446 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2452 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2447 embedded instances. I added a user_global_ns attribute to the
2453 embedded instances. I added a user_global_ns attribute to the
2448 InteractiveShell class to handle this.
2454 InteractiveShell class to handle this.
2449
2455
2450 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2456 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2451
2457
2452 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2458 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2453 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2459 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2454 (reported under win32, but may happen also in other platforms).
2460 (reported under win32, but may happen also in other platforms).
2455 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2461 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2456
2462
2457 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2463 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2458
2464
2459 * IPython/Magic.py (magic_psearch): new support for wildcard
2465 * IPython/Magic.py (magic_psearch): new support for wildcard
2460 patterns. Now, typing ?a*b will list all names which begin with a
2466 patterns. Now, typing ?a*b will list all names which begin with a
2461 and end in b, for example. The %psearch magic has full
2467 and end in b, for example. The %psearch magic has full
2462 docstrings. Many thanks to JΓΆrgen Stenarson
2468 docstrings. Many thanks to JΓΆrgen Stenarson
2463 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2469 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2464 implementing this functionality.
2470 implementing this functionality.
2465
2471
2466 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2472 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2467
2473
2468 * Manual: fixed long-standing annoyance of double-dashes (as in
2474 * Manual: fixed long-standing annoyance of double-dashes (as in
2469 --prefix=~, for example) being stripped in the HTML version. This
2475 --prefix=~, for example) being stripped in the HTML version. This
2470 is a latex2html bug, but a workaround was provided. Many thanks
2476 is a latex2html bug, but a workaround was provided. Many thanks
2471 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2477 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2472 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2478 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2473 rolling. This seemingly small issue had tripped a number of users
2479 rolling. This seemingly small issue had tripped a number of users
2474 when first installing, so I'm glad to see it gone.
2480 when first installing, so I'm glad to see it gone.
2475
2481
2476 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2482 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2477
2483
2478 * IPython/Extensions/numeric_formats.py: fix missing import,
2484 * IPython/Extensions/numeric_formats.py: fix missing import,
2479 reported by Stephen Walton.
2485 reported by Stephen Walton.
2480
2486
2481 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2487 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2482
2488
2483 * IPython/demo.py: finish demo module, fully documented now.
2489 * IPython/demo.py: finish demo module, fully documented now.
2484
2490
2485 * IPython/genutils.py (file_read): simple little utility to read a
2491 * IPython/genutils.py (file_read): simple little utility to read a
2486 file and ensure it's closed afterwards.
2492 file and ensure it's closed afterwards.
2487
2493
2488 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2494 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2489
2495
2490 * IPython/demo.py (Demo.__init__): added support for individually
2496 * IPython/demo.py (Demo.__init__): added support for individually
2491 tagging blocks for automatic execution.
2497 tagging blocks for automatic execution.
2492
2498
2493 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2499 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2494 syntax-highlighted python sources, requested by John.
2500 syntax-highlighted python sources, requested by John.
2495
2501
2496 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2502 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2497
2503
2498 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2504 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2499 finishing.
2505 finishing.
2500
2506
2501 * IPython/genutils.py (shlex_split): moved from Magic to here,
2507 * IPython/genutils.py (shlex_split): moved from Magic to here,
2502 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2508 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2503
2509
2504 * IPython/demo.py (Demo.__init__): added support for silent
2510 * IPython/demo.py (Demo.__init__): added support for silent
2505 blocks, improved marks as regexps, docstrings written.
2511 blocks, improved marks as regexps, docstrings written.
2506 (Demo.__init__): better docstring, added support for sys.argv.
2512 (Demo.__init__): better docstring, added support for sys.argv.
2507
2513
2508 * IPython/genutils.py (marquee): little utility used by the demo
2514 * IPython/genutils.py (marquee): little utility used by the demo
2509 code, handy in general.
2515 code, handy in general.
2510
2516
2511 * IPython/demo.py (Demo.__init__): new class for interactive
2517 * IPython/demo.py (Demo.__init__): new class for interactive
2512 demos. Not documented yet, I just wrote it in a hurry for
2518 demos. Not documented yet, I just wrote it in a hurry for
2513 scipy'05. Will docstring later.
2519 scipy'05. Will docstring later.
2514
2520
2515 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2521 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2516
2522
2517 * IPython/Shell.py (sigint_handler): Drastic simplification which
2523 * IPython/Shell.py (sigint_handler): Drastic simplification which
2518 also seems to make Ctrl-C work correctly across threads! This is
2524 also seems to make Ctrl-C work correctly across threads! This is
2519 so simple, that I can't beleive I'd missed it before. Needs more
2525 so simple, that I can't beleive I'd missed it before. Needs more
2520 testing, though.
2526 testing, though.
2521 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2527 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2522 like this before...
2528 like this before...
2523
2529
2524 * IPython/genutils.py (get_home_dir): add protection against
2530 * IPython/genutils.py (get_home_dir): add protection against
2525 non-dirs in win32 registry.
2531 non-dirs in win32 registry.
2526
2532
2527 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2533 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2528 bug where dict was mutated while iterating (pysh crash).
2534 bug where dict was mutated while iterating (pysh crash).
2529
2535
2530 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2536 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2531
2537
2532 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2538 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2533 spurious newlines added by this routine. After a report by
2539 spurious newlines added by this routine. After a report by
2534 F. Mantegazza.
2540 F. Mantegazza.
2535
2541
2536 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2542 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2537
2543
2538 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2544 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2539 calls. These were a leftover from the GTK 1.x days, and can cause
2545 calls. These were a leftover from the GTK 1.x days, and can cause
2540 problems in certain cases (after a report by John Hunter).
2546 problems in certain cases (after a report by John Hunter).
2541
2547
2542 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2548 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2543 os.getcwd() fails at init time. Thanks to patch from David Remahl
2549 os.getcwd() fails at init time. Thanks to patch from David Remahl
2544 <chmod007-AT-mac.com>.
2550 <chmod007-AT-mac.com>.
2545 (InteractiveShell.__init__): prevent certain special magics from
2551 (InteractiveShell.__init__): prevent certain special magics from
2546 being shadowed by aliases. Closes
2552 being shadowed by aliases. Closes
2547 http://www.scipy.net/roundup/ipython/issue41.
2553 http://www.scipy.net/roundup/ipython/issue41.
2548
2554
2549 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2555 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2550
2556
2551 * IPython/iplib.py (InteractiveShell.complete): Added new
2557 * IPython/iplib.py (InteractiveShell.complete): Added new
2552 top-level completion method to expose the completion mechanism
2558 top-level completion method to expose the completion mechanism
2553 beyond readline-based environments.
2559 beyond readline-based environments.
2554
2560
2555 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2561 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2556
2562
2557 * tools/ipsvnc (svnversion): fix svnversion capture.
2563 * tools/ipsvnc (svnversion): fix svnversion capture.
2558
2564
2559 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2565 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2560 attribute to self, which was missing. Before, it was set by a
2566 attribute to self, which was missing. Before, it was set by a
2561 routine which in certain cases wasn't being called, so the
2567 routine which in certain cases wasn't being called, so the
2562 instance could end up missing the attribute. This caused a crash.
2568 instance could end up missing the attribute. This caused a crash.
2563 Closes http://www.scipy.net/roundup/ipython/issue40.
2569 Closes http://www.scipy.net/roundup/ipython/issue40.
2564
2570
2565 2005-08-16 Fernando Perez <fperez@colorado.edu>
2571 2005-08-16 Fernando Perez <fperez@colorado.edu>
2566
2572
2567 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2573 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2568 contains non-string attribute. Closes
2574 contains non-string attribute. Closes
2569 http://www.scipy.net/roundup/ipython/issue38.
2575 http://www.scipy.net/roundup/ipython/issue38.
2570
2576
2571 2005-08-14 Fernando Perez <fperez@colorado.edu>
2577 2005-08-14 Fernando Perez <fperez@colorado.edu>
2572
2578
2573 * tools/ipsvnc: Minor improvements, to add changeset info.
2579 * tools/ipsvnc: Minor improvements, to add changeset info.
2574
2580
2575 2005-08-12 Fernando Perez <fperez@colorado.edu>
2581 2005-08-12 Fernando Perez <fperez@colorado.edu>
2576
2582
2577 * IPython/iplib.py (runsource): remove self.code_to_run_src
2583 * IPython/iplib.py (runsource): remove self.code_to_run_src
2578 attribute. I realized this is nothing more than
2584 attribute. I realized this is nothing more than
2579 '\n'.join(self.buffer), and having the same data in two different
2585 '\n'.join(self.buffer), and having the same data in two different
2580 places is just asking for synchronization bugs. This may impact
2586 places is just asking for synchronization bugs. This may impact
2581 people who have custom exception handlers, so I need to warn
2587 people who have custom exception handlers, so I need to warn
2582 ipython-dev about it (F. Mantegazza may use them).
2588 ipython-dev about it (F. Mantegazza may use them).
2583
2589
2584 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2590 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2585
2591
2586 * IPython/genutils.py: fix 2.2 compatibility (generators)
2592 * IPython/genutils.py: fix 2.2 compatibility (generators)
2587
2593
2588 2005-07-18 Fernando Perez <fperez@colorado.edu>
2594 2005-07-18 Fernando Perez <fperez@colorado.edu>
2589
2595
2590 * IPython/genutils.py (get_home_dir): fix to help users with
2596 * IPython/genutils.py (get_home_dir): fix to help users with
2591 invalid $HOME under win32.
2597 invalid $HOME under win32.
2592
2598
2593 2005-07-17 Fernando Perez <fperez@colorado.edu>
2599 2005-07-17 Fernando Perez <fperez@colorado.edu>
2594
2600
2595 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2601 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2596 some old hacks and clean up a bit other routines; code should be
2602 some old hacks and clean up a bit other routines; code should be
2597 simpler and a bit faster.
2603 simpler and a bit faster.
2598
2604
2599 * IPython/iplib.py (interact): removed some last-resort attempts
2605 * IPython/iplib.py (interact): removed some last-resort attempts
2600 to survive broken stdout/stderr. That code was only making it
2606 to survive broken stdout/stderr. That code was only making it
2601 harder to abstract out the i/o (necessary for gui integration),
2607 harder to abstract out the i/o (necessary for gui integration),
2602 and the crashes it could prevent were extremely rare in practice
2608 and the crashes it could prevent were extremely rare in practice
2603 (besides being fully user-induced in a pretty violent manner).
2609 (besides being fully user-induced in a pretty violent manner).
2604
2610
2605 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2611 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2606 Nothing major yet, but the code is simpler to read; this should
2612 Nothing major yet, but the code is simpler to read; this should
2607 make it easier to do more serious modifications in the future.
2613 make it easier to do more serious modifications in the future.
2608
2614
2609 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2615 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2610 which broke in .15 (thanks to a report by Ville).
2616 which broke in .15 (thanks to a report by Ville).
2611
2617
2612 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2618 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2613 be quite correct, I know next to nothing about unicode). This
2619 be quite correct, I know next to nothing about unicode). This
2614 will allow unicode strings to be used in prompts, amongst other
2620 will allow unicode strings to be used in prompts, amongst other
2615 cases. It also will prevent ipython from crashing when unicode
2621 cases. It also will prevent ipython from crashing when unicode
2616 shows up unexpectedly in many places. If ascii encoding fails, we
2622 shows up unexpectedly in many places. If ascii encoding fails, we
2617 assume utf_8. Currently the encoding is not a user-visible
2623 assume utf_8. Currently the encoding is not a user-visible
2618 setting, though it could be made so if there is demand for it.
2624 setting, though it could be made so if there is demand for it.
2619
2625
2620 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2626 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2621
2627
2622 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2628 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2623
2629
2624 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2630 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2625
2631
2626 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2632 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2627 code can work transparently for 2.2/2.3.
2633 code can work transparently for 2.2/2.3.
2628
2634
2629 2005-07-16 Fernando Perez <fperez@colorado.edu>
2635 2005-07-16 Fernando Perez <fperez@colorado.edu>
2630
2636
2631 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2637 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2632 out of the color scheme table used for coloring exception
2638 out of the color scheme table used for coloring exception
2633 tracebacks. This allows user code to add new schemes at runtime.
2639 tracebacks. This allows user code to add new schemes at runtime.
2634 This is a minimally modified version of the patch at
2640 This is a minimally modified version of the patch at
2635 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2641 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2636 for the contribution.
2642 for the contribution.
2637
2643
2638 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2644 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2639 slightly modified version of the patch in
2645 slightly modified version of the patch in
2640 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2646 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2641 to remove the previous try/except solution (which was costlier).
2647 to remove the previous try/except solution (which was costlier).
2642 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2648 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2643
2649
2644 2005-06-08 Fernando Perez <fperez@colorado.edu>
2650 2005-06-08 Fernando Perez <fperez@colorado.edu>
2645
2651
2646 * IPython/iplib.py (write/write_err): Add methods to abstract all
2652 * IPython/iplib.py (write/write_err): Add methods to abstract all
2647 I/O a bit more.
2653 I/O a bit more.
2648
2654
2649 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2655 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2650 warning, reported by Aric Hagberg, fix by JD Hunter.
2656 warning, reported by Aric Hagberg, fix by JD Hunter.
2651
2657
2652 2005-06-02 *** Released version 0.6.15
2658 2005-06-02 *** Released version 0.6.15
2653
2659
2654 2005-06-01 Fernando Perez <fperez@colorado.edu>
2660 2005-06-01 Fernando Perez <fperez@colorado.edu>
2655
2661
2656 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2662 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2657 tab-completion of filenames within open-quoted strings. Note that
2663 tab-completion of filenames within open-quoted strings. Note that
2658 this requires that in ~/.ipython/ipythonrc, users change the
2664 this requires that in ~/.ipython/ipythonrc, users change the
2659 readline delimiters configuration to read:
2665 readline delimiters configuration to read:
2660
2666
2661 readline_remove_delims -/~
2667 readline_remove_delims -/~
2662
2668
2663
2669
2664 2005-05-31 *** Released version 0.6.14
2670 2005-05-31 *** Released version 0.6.14
2665
2671
2666 2005-05-29 Fernando Perez <fperez@colorado.edu>
2672 2005-05-29 Fernando Perez <fperez@colorado.edu>
2667
2673
2668 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2674 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2669 with files not on the filesystem. Reported by Eliyahu Sandler
2675 with files not on the filesystem. Reported by Eliyahu Sandler
2670 <eli@gondolin.net>
2676 <eli@gondolin.net>
2671
2677
2672 2005-05-22 Fernando Perez <fperez@colorado.edu>
2678 2005-05-22 Fernando Perez <fperez@colorado.edu>
2673
2679
2674 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2680 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2675 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2681 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2676
2682
2677 2005-05-19 Fernando Perez <fperez@colorado.edu>
2683 2005-05-19 Fernando Perez <fperez@colorado.edu>
2678
2684
2679 * IPython/iplib.py (safe_execfile): close a file which could be
2685 * IPython/iplib.py (safe_execfile): close a file which could be
2680 left open (causing problems in win32, which locks open files).
2686 left open (causing problems in win32, which locks open files).
2681 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2687 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2682
2688
2683 2005-05-18 Fernando Perez <fperez@colorado.edu>
2689 2005-05-18 Fernando Perez <fperez@colorado.edu>
2684
2690
2685 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2691 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2686 keyword arguments correctly to safe_execfile().
2692 keyword arguments correctly to safe_execfile().
2687
2693
2688 2005-05-13 Fernando Perez <fperez@colorado.edu>
2694 2005-05-13 Fernando Perez <fperez@colorado.edu>
2689
2695
2690 * ipython.1: Added info about Qt to manpage, and threads warning
2696 * ipython.1: Added info about Qt to manpage, and threads warning
2691 to usage page (invoked with --help).
2697 to usage page (invoked with --help).
2692
2698
2693 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2699 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2694 new matcher (it goes at the end of the priority list) to do
2700 new matcher (it goes at the end of the priority list) to do
2695 tab-completion on named function arguments. Submitted by George
2701 tab-completion on named function arguments. Submitted by George
2696 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2702 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2697 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2703 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2698 for more details.
2704 for more details.
2699
2705
2700 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2706 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2701 SystemExit exceptions in the script being run. Thanks to a report
2707 SystemExit exceptions in the script being run. Thanks to a report
2702 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2708 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2703 producing very annoying behavior when running unit tests.
2709 producing very annoying behavior when running unit tests.
2704
2710
2705 2005-05-12 Fernando Perez <fperez@colorado.edu>
2711 2005-05-12 Fernando Perez <fperez@colorado.edu>
2706
2712
2707 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2713 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2708 which I'd broken (again) due to a changed regexp. In the process,
2714 which I'd broken (again) due to a changed regexp. In the process,
2709 added ';' as an escape to auto-quote the whole line without
2715 added ';' as an escape to auto-quote the whole line without
2710 splitting its arguments. Thanks to a report by Jerry McRae
2716 splitting its arguments. Thanks to a report by Jerry McRae
2711 <qrs0xyc02-AT-sneakemail.com>.
2717 <qrs0xyc02-AT-sneakemail.com>.
2712
2718
2713 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2719 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2714 possible crashes caused by a TokenError. Reported by Ed Schofield
2720 possible crashes caused by a TokenError. Reported by Ed Schofield
2715 <schofield-AT-ftw.at>.
2721 <schofield-AT-ftw.at>.
2716
2722
2717 2005-05-06 Fernando Perez <fperez@colorado.edu>
2723 2005-05-06 Fernando Perez <fperez@colorado.edu>
2718
2724
2719 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2725 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2720
2726
2721 2005-04-29 Fernando Perez <fperez@colorado.edu>
2727 2005-04-29 Fernando Perez <fperez@colorado.edu>
2722
2728
2723 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2729 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2724 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2730 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2725 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2731 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2726 which provides support for Qt interactive usage (similar to the
2732 which provides support for Qt interactive usage (similar to the
2727 existing one for WX and GTK). This had been often requested.
2733 existing one for WX and GTK). This had been often requested.
2728
2734
2729 2005-04-14 *** Released version 0.6.13
2735 2005-04-14 *** Released version 0.6.13
2730
2736
2731 2005-04-08 Fernando Perez <fperez@colorado.edu>
2737 2005-04-08 Fernando Perez <fperez@colorado.edu>
2732
2738
2733 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2739 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2734 from _ofind, which gets called on almost every input line. Now,
2740 from _ofind, which gets called on almost every input line. Now,
2735 we only try to get docstrings if they are actually going to be
2741 we only try to get docstrings if they are actually going to be
2736 used (the overhead of fetching unnecessary docstrings can be
2742 used (the overhead of fetching unnecessary docstrings can be
2737 noticeable for certain objects, such as Pyro proxies).
2743 noticeable for certain objects, such as Pyro proxies).
2738
2744
2739 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2745 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2740 for completers. For some reason I had been passing them the state
2746 for completers. For some reason I had been passing them the state
2741 variable, which completers never actually need, and was in
2747 variable, which completers never actually need, and was in
2742 conflict with the rlcompleter API. Custom completers ONLY need to
2748 conflict with the rlcompleter API. Custom completers ONLY need to
2743 take the text parameter.
2749 take the text parameter.
2744
2750
2745 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2751 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2746 work correctly in pysh. I've also moved all the logic which used
2752 work correctly in pysh. I've also moved all the logic which used
2747 to be in pysh.py here, which will prevent problems with future
2753 to be in pysh.py here, which will prevent problems with future
2748 upgrades. However, this time I must warn users to update their
2754 upgrades. However, this time I must warn users to update their
2749 pysh profile to include the line
2755 pysh profile to include the line
2750
2756
2751 import_all IPython.Extensions.InterpreterExec
2757 import_all IPython.Extensions.InterpreterExec
2752
2758
2753 because otherwise things won't work for them. They MUST also
2759 because otherwise things won't work for them. They MUST also
2754 delete pysh.py and the line
2760 delete pysh.py and the line
2755
2761
2756 execfile pysh.py
2762 execfile pysh.py
2757
2763
2758 from their ipythonrc-pysh.
2764 from their ipythonrc-pysh.
2759
2765
2760 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2766 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2761 robust in the face of objects whose dir() returns non-strings
2767 robust in the face of objects whose dir() returns non-strings
2762 (which it shouldn't, but some broken libs like ITK do). Thanks to
2768 (which it shouldn't, but some broken libs like ITK do). Thanks to
2763 a patch by John Hunter (implemented differently, though). Also
2769 a patch by John Hunter (implemented differently, though). Also
2764 minor improvements by using .extend instead of + on lists.
2770 minor improvements by using .extend instead of + on lists.
2765
2771
2766 * pysh.py:
2772 * pysh.py:
2767
2773
2768 2005-04-06 Fernando Perez <fperez@colorado.edu>
2774 2005-04-06 Fernando Perez <fperez@colorado.edu>
2769
2775
2770 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2776 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2771 by default, so that all users benefit from it. Those who don't
2777 by default, so that all users benefit from it. Those who don't
2772 want it can still turn it off.
2778 want it can still turn it off.
2773
2779
2774 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2780 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2775 config file, I'd forgotten about this, so users were getting it
2781 config file, I'd forgotten about this, so users were getting it
2776 off by default.
2782 off by default.
2777
2783
2778 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2784 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2779 consistency. Now magics can be called in multiline statements,
2785 consistency. Now magics can be called in multiline statements,
2780 and python variables can be expanded in magic calls via $var.
2786 and python variables can be expanded in magic calls via $var.
2781 This makes the magic system behave just like aliases or !system
2787 This makes the magic system behave just like aliases or !system
2782 calls.
2788 calls.
2783
2789
2784 2005-03-28 Fernando Perez <fperez@colorado.edu>
2790 2005-03-28 Fernando Perez <fperez@colorado.edu>
2785
2791
2786 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2792 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2787 expensive string additions for building command. Add support for
2793 expensive string additions for building command. Add support for
2788 trailing ';' when autocall is used.
2794 trailing ';' when autocall is used.
2789
2795
2790 2005-03-26 Fernando Perez <fperez@colorado.edu>
2796 2005-03-26 Fernando Perez <fperez@colorado.edu>
2791
2797
2792 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2798 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2793 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2799 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2794 ipython.el robust against prompts with any number of spaces
2800 ipython.el robust against prompts with any number of spaces
2795 (including 0) after the ':' character.
2801 (including 0) after the ':' character.
2796
2802
2797 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2803 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2798 continuation prompt, which misled users to think the line was
2804 continuation prompt, which misled users to think the line was
2799 already indented. Closes debian Bug#300847, reported to me by
2805 already indented. Closes debian Bug#300847, reported to me by
2800 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2806 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2801
2807
2802 2005-03-23 Fernando Perez <fperez@colorado.edu>
2808 2005-03-23 Fernando Perez <fperez@colorado.edu>
2803
2809
2804 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2810 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2805 properly aligned if they have embedded newlines.
2811 properly aligned if they have embedded newlines.
2806
2812
2807 * IPython/iplib.py (runlines): Add a public method to expose
2813 * IPython/iplib.py (runlines): Add a public method to expose
2808 IPython's code execution machinery, so that users can run strings
2814 IPython's code execution machinery, so that users can run strings
2809 as if they had been typed at the prompt interactively.
2815 as if they had been typed at the prompt interactively.
2810 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2816 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2811 methods which can call the system shell, but with python variable
2817 methods which can call the system shell, but with python variable
2812 expansion. The three such methods are: __IPYTHON__.system,
2818 expansion. The three such methods are: __IPYTHON__.system,
2813 .getoutput and .getoutputerror. These need to be documented in a
2819 .getoutput and .getoutputerror. These need to be documented in a
2814 'public API' section (to be written) of the manual.
2820 'public API' section (to be written) of the manual.
2815
2821
2816 2005-03-20 Fernando Perez <fperez@colorado.edu>
2822 2005-03-20 Fernando Perez <fperez@colorado.edu>
2817
2823
2818 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2824 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2819 for custom exception handling. This is quite powerful, and it
2825 for custom exception handling. This is quite powerful, and it
2820 allows for user-installable exception handlers which can trap
2826 allows for user-installable exception handlers which can trap
2821 custom exceptions at runtime and treat them separately from
2827 custom exceptions at runtime and treat them separately from
2822 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2828 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2823 Mantegazza <mantegazza-AT-ill.fr>.
2829 Mantegazza <mantegazza-AT-ill.fr>.
2824 (InteractiveShell.set_custom_completer): public API function to
2830 (InteractiveShell.set_custom_completer): public API function to
2825 add new completers at runtime.
2831 add new completers at runtime.
2826
2832
2827 2005-03-19 Fernando Perez <fperez@colorado.edu>
2833 2005-03-19 Fernando Perez <fperez@colorado.edu>
2828
2834
2829 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2835 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2830 allow objects which provide their docstrings via non-standard
2836 allow objects which provide their docstrings via non-standard
2831 mechanisms (like Pyro proxies) to still be inspected by ipython's
2837 mechanisms (like Pyro proxies) to still be inspected by ipython's
2832 ? system.
2838 ? system.
2833
2839
2834 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2840 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2835 automatic capture system. I tried quite hard to make it work
2841 automatic capture system. I tried quite hard to make it work
2836 reliably, and simply failed. I tried many combinations with the
2842 reliably, and simply failed. I tried many combinations with the
2837 subprocess module, but eventually nothing worked in all needed
2843 subprocess module, but eventually nothing worked in all needed
2838 cases (not blocking stdin for the child, duplicating stdout
2844 cases (not blocking stdin for the child, duplicating stdout
2839 without blocking, etc). The new %sc/%sx still do capture to these
2845 without blocking, etc). The new %sc/%sx still do capture to these
2840 magical list/string objects which make shell use much more
2846 magical list/string objects which make shell use much more
2841 conveninent, so not all is lost.
2847 conveninent, so not all is lost.
2842
2848
2843 XXX - FIX MANUAL for the change above!
2849 XXX - FIX MANUAL for the change above!
2844
2850
2845 (runsource): I copied code.py's runsource() into ipython to modify
2851 (runsource): I copied code.py's runsource() into ipython to modify
2846 it a bit. Now the code object and source to be executed are
2852 it a bit. Now the code object and source to be executed are
2847 stored in ipython. This makes this info accessible to third-party
2853 stored in ipython. This makes this info accessible to third-party
2848 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2854 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2849 Mantegazza <mantegazza-AT-ill.fr>.
2855 Mantegazza <mantegazza-AT-ill.fr>.
2850
2856
2851 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2857 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2852 history-search via readline (like C-p/C-n). I'd wanted this for a
2858 history-search via readline (like C-p/C-n). I'd wanted this for a
2853 long time, but only recently found out how to do it. For users
2859 long time, but only recently found out how to do it. For users
2854 who already have their ipythonrc files made and want this, just
2860 who already have their ipythonrc files made and want this, just
2855 add:
2861 add:
2856
2862
2857 readline_parse_and_bind "\e[A": history-search-backward
2863 readline_parse_and_bind "\e[A": history-search-backward
2858 readline_parse_and_bind "\e[B": history-search-forward
2864 readline_parse_and_bind "\e[B": history-search-forward
2859
2865
2860 2005-03-18 Fernando Perez <fperez@colorado.edu>
2866 2005-03-18 Fernando Perez <fperez@colorado.edu>
2861
2867
2862 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2868 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2863 LSString and SList classes which allow transparent conversions
2869 LSString and SList classes which allow transparent conversions
2864 between list mode and whitespace-separated string.
2870 between list mode and whitespace-separated string.
2865 (magic_r): Fix recursion problem in %r.
2871 (magic_r): Fix recursion problem in %r.
2866
2872
2867 * IPython/genutils.py (LSString): New class to be used for
2873 * IPython/genutils.py (LSString): New class to be used for
2868 automatic storage of the results of all alias/system calls in _o
2874 automatic storage of the results of all alias/system calls in _o
2869 and _e (stdout/err). These provide a .l/.list attribute which
2875 and _e (stdout/err). These provide a .l/.list attribute which
2870 does automatic splitting on newlines. This means that for most
2876 does automatic splitting on newlines. This means that for most
2871 uses, you'll never need to do capturing of output with %sc/%sx
2877 uses, you'll never need to do capturing of output with %sc/%sx
2872 anymore, since ipython keeps this always done for you. Note that
2878 anymore, since ipython keeps this always done for you. Note that
2873 only the LAST results are stored, the _o/e variables are
2879 only the LAST results are stored, the _o/e variables are
2874 overwritten on each call. If you need to save their contents
2880 overwritten on each call. If you need to save their contents
2875 further, simply bind them to any other name.
2881 further, simply bind them to any other name.
2876
2882
2877 2005-03-17 Fernando Perez <fperez@colorado.edu>
2883 2005-03-17 Fernando Perez <fperez@colorado.edu>
2878
2884
2879 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2885 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2880 prompt namespace handling.
2886 prompt namespace handling.
2881
2887
2882 2005-03-16 Fernando Perez <fperez@colorado.edu>
2888 2005-03-16 Fernando Perez <fperez@colorado.edu>
2883
2889
2884 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2890 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2885 classic prompts to be '>>> ' (final space was missing, and it
2891 classic prompts to be '>>> ' (final space was missing, and it
2886 trips the emacs python mode).
2892 trips the emacs python mode).
2887 (BasePrompt.__str__): Added safe support for dynamic prompt
2893 (BasePrompt.__str__): Added safe support for dynamic prompt
2888 strings. Now you can set your prompt string to be '$x', and the
2894 strings. Now you can set your prompt string to be '$x', and the
2889 value of x will be printed from your interactive namespace. The
2895 value of x will be printed from your interactive namespace. The
2890 interpolation syntax includes the full Itpl support, so
2896 interpolation syntax includes the full Itpl support, so
2891 ${foo()+x+bar()} is a valid prompt string now, and the function
2897 ${foo()+x+bar()} is a valid prompt string now, and the function
2892 calls will be made at runtime.
2898 calls will be made at runtime.
2893
2899
2894 2005-03-15 Fernando Perez <fperez@colorado.edu>
2900 2005-03-15 Fernando Perez <fperez@colorado.edu>
2895
2901
2896 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2902 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2897 avoid name clashes in pylab. %hist still works, it just forwards
2903 avoid name clashes in pylab. %hist still works, it just forwards
2898 the call to %history.
2904 the call to %history.
2899
2905
2900 2005-03-02 *** Released version 0.6.12
2906 2005-03-02 *** Released version 0.6.12
2901
2907
2902 2005-03-02 Fernando Perez <fperez@colorado.edu>
2908 2005-03-02 Fernando Perez <fperez@colorado.edu>
2903
2909
2904 * IPython/iplib.py (handle_magic): log magic calls properly as
2910 * IPython/iplib.py (handle_magic): log magic calls properly as
2905 ipmagic() function calls.
2911 ipmagic() function calls.
2906
2912
2907 * IPython/Magic.py (magic_time): Improved %time to support
2913 * IPython/Magic.py (magic_time): Improved %time to support
2908 statements and provide wall-clock as well as CPU time.
2914 statements and provide wall-clock as well as CPU time.
2909
2915
2910 2005-02-27 Fernando Perez <fperez@colorado.edu>
2916 2005-02-27 Fernando Perez <fperez@colorado.edu>
2911
2917
2912 * IPython/hooks.py: New hooks module, to expose user-modifiable
2918 * IPython/hooks.py: New hooks module, to expose user-modifiable
2913 IPython functionality in a clean manner. For now only the editor
2919 IPython functionality in a clean manner. For now only the editor
2914 hook is actually written, and other thigns which I intend to turn
2920 hook is actually written, and other thigns which I intend to turn
2915 into proper hooks aren't yet there. The display and prefilter
2921 into proper hooks aren't yet there. The display and prefilter
2916 stuff, for example, should be hooks. But at least now the
2922 stuff, for example, should be hooks. But at least now the
2917 framework is in place, and the rest can be moved here with more
2923 framework is in place, and the rest can be moved here with more
2918 time later. IPython had had a .hooks variable for a long time for
2924 time later. IPython had had a .hooks variable for a long time for
2919 this purpose, but I'd never actually used it for anything.
2925 this purpose, but I'd never actually used it for anything.
2920
2926
2921 2005-02-26 Fernando Perez <fperez@colorado.edu>
2927 2005-02-26 Fernando Perez <fperez@colorado.edu>
2922
2928
2923 * IPython/ipmaker.py (make_IPython): make the default ipython
2929 * IPython/ipmaker.py (make_IPython): make the default ipython
2924 directory be called _ipython under win32, to follow more the
2930 directory be called _ipython under win32, to follow more the
2925 naming peculiarities of that platform (where buggy software like
2931 naming peculiarities of that platform (where buggy software like
2926 Visual Sourcesafe breaks with .named directories). Reported by
2932 Visual Sourcesafe breaks with .named directories). Reported by
2927 Ville Vainio.
2933 Ville Vainio.
2928
2934
2929 2005-02-23 Fernando Perez <fperez@colorado.edu>
2935 2005-02-23 Fernando Perez <fperez@colorado.edu>
2930
2936
2931 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2937 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2932 auto_aliases for win32 which were causing problems. Users can
2938 auto_aliases for win32 which were causing problems. Users can
2933 define the ones they personally like.
2939 define the ones they personally like.
2934
2940
2935 2005-02-21 Fernando Perez <fperez@colorado.edu>
2941 2005-02-21 Fernando Perez <fperez@colorado.edu>
2936
2942
2937 * IPython/Magic.py (magic_time): new magic to time execution of
2943 * IPython/Magic.py (magic_time): new magic to time execution of
2938 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2944 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2939
2945
2940 2005-02-19 Fernando Perez <fperez@colorado.edu>
2946 2005-02-19 Fernando Perez <fperez@colorado.edu>
2941
2947
2942 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2948 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2943 into keys (for prompts, for example).
2949 into keys (for prompts, for example).
2944
2950
2945 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2951 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2946 prompts in case users want them. This introduces a small behavior
2952 prompts in case users want them. This introduces a small behavior
2947 change: ipython does not automatically add a space to all prompts
2953 change: ipython does not automatically add a space to all prompts
2948 anymore. To get the old prompts with a space, users should add it
2954 anymore. To get the old prompts with a space, users should add it
2949 manually to their ipythonrc file, so for example prompt_in1 should
2955 manually to their ipythonrc file, so for example prompt_in1 should
2950 now read 'In [\#]: ' instead of 'In [\#]:'.
2956 now read 'In [\#]: ' instead of 'In [\#]:'.
2951 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2957 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2952 file) to control left-padding of secondary prompts.
2958 file) to control left-padding of secondary prompts.
2953
2959
2954 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2960 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2955 the profiler can't be imported. Fix for Debian, which removed
2961 the profiler can't be imported. Fix for Debian, which removed
2956 profile.py because of License issues. I applied a slightly
2962 profile.py because of License issues. I applied a slightly
2957 modified version of the original Debian patch at
2963 modified version of the original Debian patch at
2958 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2964 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2959
2965
2960 2005-02-17 Fernando Perez <fperez@colorado.edu>
2966 2005-02-17 Fernando Perez <fperez@colorado.edu>
2961
2967
2962 * IPython/genutils.py (native_line_ends): Fix bug which would
2968 * IPython/genutils.py (native_line_ends): Fix bug which would
2963 cause improper line-ends under win32 b/c I was not opening files
2969 cause improper line-ends under win32 b/c I was not opening files
2964 in binary mode. Bug report and fix thanks to Ville.
2970 in binary mode. Bug report and fix thanks to Ville.
2965
2971
2966 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2972 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2967 trying to catch spurious foo[1] autocalls. My fix actually broke
2973 trying to catch spurious foo[1] autocalls. My fix actually broke
2968 ',/' autoquote/call with explicit escape (bad regexp).
2974 ',/' autoquote/call with explicit escape (bad regexp).
2969
2975
2970 2005-02-15 *** Released version 0.6.11
2976 2005-02-15 *** Released version 0.6.11
2971
2977
2972 2005-02-14 Fernando Perez <fperez@colorado.edu>
2978 2005-02-14 Fernando Perez <fperez@colorado.edu>
2973
2979
2974 * IPython/background_jobs.py: New background job management
2980 * IPython/background_jobs.py: New background job management
2975 subsystem. This is implemented via a new set of classes, and
2981 subsystem. This is implemented via a new set of classes, and
2976 IPython now provides a builtin 'jobs' object for background job
2982 IPython now provides a builtin 'jobs' object for background job
2977 execution. A convenience %bg magic serves as a lightweight
2983 execution. A convenience %bg magic serves as a lightweight
2978 frontend for starting the more common type of calls. This was
2984 frontend for starting the more common type of calls. This was
2979 inspired by discussions with B. Granger and the BackgroundCommand
2985 inspired by discussions with B. Granger and the BackgroundCommand
2980 class described in the book Python Scripting for Computational
2986 class described in the book Python Scripting for Computational
2981 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2987 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2982 (although ultimately no code from this text was used, as IPython's
2988 (although ultimately no code from this text was used, as IPython's
2983 system is a separate implementation).
2989 system is a separate implementation).
2984
2990
2985 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2991 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2986 to control the completion of single/double underscore names
2992 to control the completion of single/double underscore names
2987 separately. As documented in the example ipytonrc file, the
2993 separately. As documented in the example ipytonrc file, the
2988 readline_omit__names variable can now be set to 2, to omit even
2994 readline_omit__names variable can now be set to 2, to omit even
2989 single underscore names. Thanks to a patch by Brian Wong
2995 single underscore names. Thanks to a patch by Brian Wong
2990 <BrianWong-AT-AirgoNetworks.Com>.
2996 <BrianWong-AT-AirgoNetworks.Com>.
2991 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2997 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2992 be autocalled as foo([1]) if foo were callable. A problem for
2998 be autocalled as foo([1]) if foo were callable. A problem for
2993 things which are both callable and implement __getitem__.
2999 things which are both callable and implement __getitem__.
2994 (init_readline): Fix autoindentation for win32. Thanks to a patch
3000 (init_readline): Fix autoindentation for win32. Thanks to a patch
2995 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3001 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2996
3002
2997 2005-02-12 Fernando Perez <fperez@colorado.edu>
3003 2005-02-12 Fernando Perez <fperez@colorado.edu>
2998
3004
2999 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3005 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3000 which I had written long ago to sort out user error messages which
3006 which I had written long ago to sort out user error messages which
3001 may occur during startup. This seemed like a good idea initially,
3007 may occur during startup. This seemed like a good idea initially,
3002 but it has proven a disaster in retrospect. I don't want to
3008 but it has proven a disaster in retrospect. I don't want to
3003 change much code for now, so my fix is to set the internal 'debug'
3009 change much code for now, so my fix is to set the internal 'debug'
3004 flag to true everywhere, whose only job was precisely to control
3010 flag to true everywhere, whose only job was precisely to control
3005 this subsystem. This closes issue 28 (as well as avoiding all
3011 this subsystem. This closes issue 28 (as well as avoiding all
3006 sorts of strange hangups which occur from time to time).
3012 sorts of strange hangups which occur from time to time).
3007
3013
3008 2005-02-07 Fernando Perez <fperez@colorado.edu>
3014 2005-02-07 Fernando Perez <fperez@colorado.edu>
3009
3015
3010 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3016 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3011 previous call produced a syntax error.
3017 previous call produced a syntax error.
3012
3018
3013 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3019 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3014 classes without constructor.
3020 classes without constructor.
3015
3021
3016 2005-02-06 Fernando Perez <fperez@colorado.edu>
3022 2005-02-06 Fernando Perez <fperez@colorado.edu>
3017
3023
3018 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3024 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3019 completions with the results of each matcher, so we return results
3025 completions with the results of each matcher, so we return results
3020 to the user from all namespaces. This breaks with ipython
3026 to the user from all namespaces. This breaks with ipython
3021 tradition, but I think it's a nicer behavior. Now you get all
3027 tradition, but I think it's a nicer behavior. Now you get all
3022 possible completions listed, from all possible namespaces (python,
3028 possible completions listed, from all possible namespaces (python,
3023 filesystem, magics...) After a request by John Hunter
3029 filesystem, magics...) After a request by John Hunter
3024 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3030 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3025
3031
3026 2005-02-05 Fernando Perez <fperez@colorado.edu>
3032 2005-02-05 Fernando Perez <fperez@colorado.edu>
3027
3033
3028 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3034 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3029 the call had quote characters in it (the quotes were stripped).
3035 the call had quote characters in it (the quotes were stripped).
3030
3036
3031 2005-01-31 Fernando Perez <fperez@colorado.edu>
3037 2005-01-31 Fernando Perez <fperez@colorado.edu>
3032
3038
3033 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3039 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3034 Itpl.itpl() to make the code more robust against psyco
3040 Itpl.itpl() to make the code more robust against psyco
3035 optimizations.
3041 optimizations.
3036
3042
3037 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3043 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3038 of causing an exception. Quicker, cleaner.
3044 of causing an exception. Quicker, cleaner.
3039
3045
3040 2005-01-28 Fernando Perez <fperez@colorado.edu>
3046 2005-01-28 Fernando Perez <fperez@colorado.edu>
3041
3047
3042 * scripts/ipython_win_post_install.py (install): hardcode
3048 * scripts/ipython_win_post_install.py (install): hardcode
3043 sys.prefix+'python.exe' as the executable path. It turns out that
3049 sys.prefix+'python.exe' as the executable path. It turns out that
3044 during the post-installation run, sys.executable resolves to the
3050 during the post-installation run, sys.executable resolves to the
3045 name of the binary installer! I should report this as a distutils
3051 name of the binary installer! I should report this as a distutils
3046 bug, I think. I updated the .10 release with this tiny fix, to
3052 bug, I think. I updated the .10 release with this tiny fix, to
3047 avoid annoying the lists further.
3053 avoid annoying the lists further.
3048
3054
3049 2005-01-27 *** Released version 0.6.10
3055 2005-01-27 *** Released version 0.6.10
3050
3056
3051 2005-01-27 Fernando Perez <fperez@colorado.edu>
3057 2005-01-27 Fernando Perez <fperez@colorado.edu>
3052
3058
3053 * IPython/numutils.py (norm): Added 'inf' as optional name for
3059 * IPython/numutils.py (norm): Added 'inf' as optional name for
3054 L-infinity norm, included references to mathworld.com for vector
3060 L-infinity norm, included references to mathworld.com for vector
3055 norm definitions.
3061 norm definitions.
3056 (amin/amax): added amin/amax for array min/max. Similar to what
3062 (amin/amax): added amin/amax for array min/max. Similar to what
3057 pylab ships with after the recent reorganization of names.
3063 pylab ships with after the recent reorganization of names.
3058 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3064 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3059
3065
3060 * ipython.el: committed Alex's recent fixes and improvements.
3066 * ipython.el: committed Alex's recent fixes and improvements.
3061 Tested with python-mode from CVS, and it looks excellent. Since
3067 Tested with python-mode from CVS, and it looks excellent. Since
3062 python-mode hasn't released anything in a while, I'm temporarily
3068 python-mode hasn't released anything in a while, I'm temporarily
3063 putting a copy of today's CVS (v 4.70) of python-mode in:
3069 putting a copy of today's CVS (v 4.70) of python-mode in:
3064 http://ipython.scipy.org/tmp/python-mode.el
3070 http://ipython.scipy.org/tmp/python-mode.el
3065
3071
3066 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3072 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3067 sys.executable for the executable name, instead of assuming it's
3073 sys.executable for the executable name, instead of assuming it's
3068 called 'python.exe' (the post-installer would have produced broken
3074 called 'python.exe' (the post-installer would have produced broken
3069 setups on systems with a differently named python binary).
3075 setups on systems with a differently named python binary).
3070
3076
3071 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3077 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3072 references to os.linesep, to make the code more
3078 references to os.linesep, to make the code more
3073 platform-independent. This is also part of the win32 coloring
3079 platform-independent. This is also part of the win32 coloring
3074 fixes.
3080 fixes.
3075
3081
3076 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3082 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3077 lines, which actually cause coloring bugs because the length of
3083 lines, which actually cause coloring bugs because the length of
3078 the line is very difficult to correctly compute with embedded
3084 the line is very difficult to correctly compute with embedded
3079 escapes. This was the source of all the coloring problems under
3085 escapes. This was the source of all the coloring problems under
3080 Win32. I think that _finally_, Win32 users have a properly
3086 Win32. I think that _finally_, Win32 users have a properly
3081 working ipython in all respects. This would never have happened
3087 working ipython in all respects. This would never have happened
3082 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3088 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3083
3089
3084 2005-01-26 *** Released version 0.6.9
3090 2005-01-26 *** Released version 0.6.9
3085
3091
3086 2005-01-25 Fernando Perez <fperez@colorado.edu>
3092 2005-01-25 Fernando Perez <fperez@colorado.edu>
3087
3093
3088 * setup.py: finally, we have a true Windows installer, thanks to
3094 * setup.py: finally, we have a true Windows installer, thanks to
3089 the excellent work of Viktor Ransmayr
3095 the excellent work of Viktor Ransmayr
3090 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3096 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3091 Windows users. The setup routine is quite a bit cleaner thanks to
3097 Windows users. The setup routine is quite a bit cleaner thanks to
3092 this, and the post-install script uses the proper functions to
3098 this, and the post-install script uses the proper functions to
3093 allow a clean de-installation using the standard Windows Control
3099 allow a clean de-installation using the standard Windows Control
3094 Panel.
3100 Panel.
3095
3101
3096 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3102 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3097 environment variable under all OSes (including win32) if
3103 environment variable under all OSes (including win32) if
3098 available. This will give consistency to win32 users who have set
3104 available. This will give consistency to win32 users who have set
3099 this variable for any reason. If os.environ['HOME'] fails, the
3105 this variable for any reason. If os.environ['HOME'] fails, the
3100 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3106 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3101
3107
3102 2005-01-24 Fernando Perez <fperez@colorado.edu>
3108 2005-01-24 Fernando Perez <fperez@colorado.edu>
3103
3109
3104 * IPython/numutils.py (empty_like): add empty_like(), similar to
3110 * IPython/numutils.py (empty_like): add empty_like(), similar to
3105 zeros_like() but taking advantage of the new empty() Numeric routine.
3111 zeros_like() but taking advantage of the new empty() Numeric routine.
3106
3112
3107 2005-01-23 *** Released version 0.6.8
3113 2005-01-23 *** Released version 0.6.8
3108
3114
3109 2005-01-22 Fernando Perez <fperez@colorado.edu>
3115 2005-01-22 Fernando Perez <fperez@colorado.edu>
3110
3116
3111 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3117 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3112 automatic show() calls. After discussing things with JDH, it
3118 automatic show() calls. After discussing things with JDH, it
3113 turns out there are too many corner cases where this can go wrong.
3119 turns out there are too many corner cases where this can go wrong.
3114 It's best not to try to be 'too smart', and simply have ipython
3120 It's best not to try to be 'too smart', and simply have ipython
3115 reproduce as much as possible the default behavior of a normal
3121 reproduce as much as possible the default behavior of a normal
3116 python shell.
3122 python shell.
3117
3123
3118 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3124 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3119 line-splitting regexp and _prefilter() to avoid calling getattr()
3125 line-splitting regexp and _prefilter() to avoid calling getattr()
3120 on assignments. This closes
3126 on assignments. This closes
3121 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3127 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3122 readline uses getattr(), so a simple <TAB> keypress is still
3128 readline uses getattr(), so a simple <TAB> keypress is still
3123 enough to trigger getattr() calls on an object.
3129 enough to trigger getattr() calls on an object.
3124
3130
3125 2005-01-21 Fernando Perez <fperez@colorado.edu>
3131 2005-01-21 Fernando Perez <fperez@colorado.edu>
3126
3132
3127 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3133 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3128 docstring under pylab so it doesn't mask the original.
3134 docstring under pylab so it doesn't mask the original.
3129
3135
3130 2005-01-21 *** Released version 0.6.7
3136 2005-01-21 *** Released version 0.6.7
3131
3137
3132 2005-01-21 Fernando Perez <fperez@colorado.edu>
3138 2005-01-21 Fernando Perez <fperez@colorado.edu>
3133
3139
3134 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3140 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3135 signal handling for win32 users in multithreaded mode.
3141 signal handling for win32 users in multithreaded mode.
3136
3142
3137 2005-01-17 Fernando Perez <fperez@colorado.edu>
3143 2005-01-17 Fernando Perez <fperez@colorado.edu>
3138
3144
3139 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3145 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3140 instances with no __init__. After a crash report by Norbert Nemec
3146 instances with no __init__. After a crash report by Norbert Nemec
3141 <Norbert-AT-nemec-online.de>.
3147 <Norbert-AT-nemec-online.de>.
3142
3148
3143 2005-01-14 Fernando Perez <fperez@colorado.edu>
3149 2005-01-14 Fernando Perez <fperez@colorado.edu>
3144
3150
3145 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3151 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3146 names for verbose exceptions, when multiple dotted names and the
3152 names for verbose exceptions, when multiple dotted names and the
3147 'parent' object were present on the same line.
3153 'parent' object were present on the same line.
3148
3154
3149 2005-01-11 Fernando Perez <fperez@colorado.edu>
3155 2005-01-11 Fernando Perez <fperez@colorado.edu>
3150
3156
3151 * IPython/genutils.py (flag_calls): new utility to trap and flag
3157 * IPython/genutils.py (flag_calls): new utility to trap and flag
3152 calls in functions. I need it to clean up matplotlib support.
3158 calls in functions. I need it to clean up matplotlib support.
3153 Also removed some deprecated code in genutils.
3159 Also removed some deprecated code in genutils.
3154
3160
3155 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3161 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3156 that matplotlib scripts called with %run, which don't call show()
3162 that matplotlib scripts called with %run, which don't call show()
3157 themselves, still have their plotting windows open.
3163 themselves, still have their plotting windows open.
3158
3164
3159 2005-01-05 Fernando Perez <fperez@colorado.edu>
3165 2005-01-05 Fernando Perez <fperez@colorado.edu>
3160
3166
3161 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3167 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3162 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3168 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3163
3169
3164 2004-12-19 Fernando Perez <fperez@colorado.edu>
3170 2004-12-19 Fernando Perez <fperez@colorado.edu>
3165
3171
3166 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3172 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3167 parent_runcode, which was an eyesore. The same result can be
3173 parent_runcode, which was an eyesore. The same result can be
3168 obtained with Python's regular superclass mechanisms.
3174 obtained with Python's regular superclass mechanisms.
3169
3175
3170 2004-12-17 Fernando Perez <fperez@colorado.edu>
3176 2004-12-17 Fernando Perez <fperez@colorado.edu>
3171
3177
3172 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3178 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3173 reported by Prabhu.
3179 reported by Prabhu.
3174 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3180 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3175 sys.stderr) instead of explicitly calling sys.stderr. This helps
3181 sys.stderr) instead of explicitly calling sys.stderr. This helps
3176 maintain our I/O abstractions clean, for future GUI embeddings.
3182 maintain our I/O abstractions clean, for future GUI embeddings.
3177
3183
3178 * IPython/genutils.py (info): added new utility for sys.stderr
3184 * IPython/genutils.py (info): added new utility for sys.stderr
3179 unified info message handling (thin wrapper around warn()).
3185 unified info message handling (thin wrapper around warn()).
3180
3186
3181 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3187 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3182 composite (dotted) names on verbose exceptions.
3188 composite (dotted) names on verbose exceptions.
3183 (VerboseTB.nullrepr): harden against another kind of errors which
3189 (VerboseTB.nullrepr): harden against another kind of errors which
3184 Python's inspect module can trigger, and which were crashing
3190 Python's inspect module can trigger, and which were crashing
3185 IPython. Thanks to a report by Marco Lombardi
3191 IPython. Thanks to a report by Marco Lombardi
3186 <mlombard-AT-ma010192.hq.eso.org>.
3192 <mlombard-AT-ma010192.hq.eso.org>.
3187
3193
3188 2004-12-13 *** Released version 0.6.6
3194 2004-12-13 *** Released version 0.6.6
3189
3195
3190 2004-12-12 Fernando Perez <fperez@colorado.edu>
3196 2004-12-12 Fernando Perez <fperez@colorado.edu>
3191
3197
3192 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3198 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3193 generated by pygtk upon initialization if it was built without
3199 generated by pygtk upon initialization if it was built without
3194 threads (for matplotlib users). After a crash reported by
3200 threads (for matplotlib users). After a crash reported by
3195 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3201 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3196
3202
3197 * IPython/ipmaker.py (make_IPython): fix small bug in the
3203 * IPython/ipmaker.py (make_IPython): fix small bug in the
3198 import_some parameter for multiple imports.
3204 import_some parameter for multiple imports.
3199
3205
3200 * IPython/iplib.py (ipmagic): simplified the interface of
3206 * IPython/iplib.py (ipmagic): simplified the interface of
3201 ipmagic() to take a single string argument, just as it would be
3207 ipmagic() to take a single string argument, just as it would be
3202 typed at the IPython cmd line.
3208 typed at the IPython cmd line.
3203 (ipalias): Added new ipalias() with an interface identical to
3209 (ipalias): Added new ipalias() with an interface identical to
3204 ipmagic(). This completes exposing a pure python interface to the
3210 ipmagic(). This completes exposing a pure python interface to the
3205 alias and magic system, which can be used in loops or more complex
3211 alias and magic system, which can be used in loops or more complex
3206 code where IPython's automatic line mangling is not active.
3212 code where IPython's automatic line mangling is not active.
3207
3213
3208 * IPython/genutils.py (timing): changed interface of timing to
3214 * IPython/genutils.py (timing): changed interface of timing to
3209 simply run code once, which is the most common case. timings()
3215 simply run code once, which is the most common case. timings()
3210 remains unchanged, for the cases where you want multiple runs.
3216 remains unchanged, for the cases where you want multiple runs.
3211
3217
3212 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3218 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3213 bug where Python2.2 crashes with exec'ing code which does not end
3219 bug where Python2.2 crashes with exec'ing code which does not end
3214 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3220 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3215 before.
3221 before.
3216
3222
3217 2004-12-10 Fernando Perez <fperez@colorado.edu>
3223 2004-12-10 Fernando Perez <fperez@colorado.edu>
3218
3224
3219 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3225 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3220 -t to -T, to accomodate the new -t flag in %run (the %run and
3226 -t to -T, to accomodate the new -t flag in %run (the %run and
3221 %prun options are kind of intermixed, and it's not easy to change
3227 %prun options are kind of intermixed, and it's not easy to change
3222 this with the limitations of python's getopt).
3228 this with the limitations of python's getopt).
3223
3229
3224 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3230 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3225 the execution of scripts. It's not as fine-tuned as timeit.py,
3231 the execution of scripts. It's not as fine-tuned as timeit.py,
3226 but it works from inside ipython (and under 2.2, which lacks
3232 but it works from inside ipython (and under 2.2, which lacks
3227 timeit.py). Optionally a number of runs > 1 can be given for
3233 timeit.py). Optionally a number of runs > 1 can be given for
3228 timing very short-running code.
3234 timing very short-running code.
3229
3235
3230 * IPython/genutils.py (uniq_stable): new routine which returns a
3236 * IPython/genutils.py (uniq_stable): new routine which returns a
3231 list of unique elements in any iterable, but in stable order of
3237 list of unique elements in any iterable, but in stable order of
3232 appearance. I needed this for the ultraTB fixes, and it's a handy
3238 appearance. I needed this for the ultraTB fixes, and it's a handy
3233 utility.
3239 utility.
3234
3240
3235 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3241 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3236 dotted names in Verbose exceptions. This had been broken since
3242 dotted names in Verbose exceptions. This had been broken since
3237 the very start, now x.y will properly be printed in a Verbose
3243 the very start, now x.y will properly be printed in a Verbose
3238 traceback, instead of x being shown and y appearing always as an
3244 traceback, instead of x being shown and y appearing always as an
3239 'undefined global'. Getting this to work was a bit tricky,
3245 'undefined global'. Getting this to work was a bit tricky,
3240 because by default python tokenizers are stateless. Saved by
3246 because by default python tokenizers are stateless. Saved by
3241 python's ability to easily add a bit of state to an arbitrary
3247 python's ability to easily add a bit of state to an arbitrary
3242 function (without needing to build a full-blown callable object).
3248 function (without needing to build a full-blown callable object).
3243
3249
3244 Also big cleanup of this code, which had horrendous runtime
3250 Also big cleanup of this code, which had horrendous runtime
3245 lookups of zillions of attributes for colorization. Moved all
3251 lookups of zillions of attributes for colorization. Moved all
3246 this code into a few templates, which make it cleaner and quicker.
3252 this code into a few templates, which make it cleaner and quicker.
3247
3253
3248 Printout quality was also improved for Verbose exceptions: one
3254 Printout quality was also improved for Verbose exceptions: one
3249 variable per line, and memory addresses are printed (this can be
3255 variable per line, and memory addresses are printed (this can be
3250 quite handy in nasty debugging situations, which is what Verbose
3256 quite handy in nasty debugging situations, which is what Verbose
3251 is for).
3257 is for).
3252
3258
3253 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3259 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3254 the command line as scripts to be loaded by embedded instances.
3260 the command line as scripts to be loaded by embedded instances.
3255 Doing so has the potential for an infinite recursion if there are
3261 Doing so has the potential for an infinite recursion if there are
3256 exceptions thrown in the process. This fixes a strange crash
3262 exceptions thrown in the process. This fixes a strange crash
3257 reported by Philippe MULLER <muller-AT-irit.fr>.
3263 reported by Philippe MULLER <muller-AT-irit.fr>.
3258
3264
3259 2004-12-09 Fernando Perez <fperez@colorado.edu>
3265 2004-12-09 Fernando Perez <fperez@colorado.edu>
3260
3266
3261 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3267 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3262 to reflect new names in matplotlib, which now expose the
3268 to reflect new names in matplotlib, which now expose the
3263 matlab-compatible interface via a pylab module instead of the
3269 matlab-compatible interface via a pylab module instead of the
3264 'matlab' name. The new code is backwards compatible, so users of
3270 'matlab' name. The new code is backwards compatible, so users of
3265 all matplotlib versions are OK. Patch by J. Hunter.
3271 all matplotlib versions are OK. Patch by J. Hunter.
3266
3272
3267 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3273 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3268 of __init__ docstrings for instances (class docstrings are already
3274 of __init__ docstrings for instances (class docstrings are already
3269 automatically printed). Instances with customized docstrings
3275 automatically printed). Instances with customized docstrings
3270 (indep. of the class) are also recognized and all 3 separate
3276 (indep. of the class) are also recognized and all 3 separate
3271 docstrings are printed (instance, class, constructor). After some
3277 docstrings are printed (instance, class, constructor). After some
3272 comments/suggestions by J. Hunter.
3278 comments/suggestions by J. Hunter.
3273
3279
3274 2004-12-05 Fernando Perez <fperez@colorado.edu>
3280 2004-12-05 Fernando Perez <fperez@colorado.edu>
3275
3281
3276 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3282 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3277 warnings when tab-completion fails and triggers an exception.
3283 warnings when tab-completion fails and triggers an exception.
3278
3284
3279 2004-12-03 Fernando Perez <fperez@colorado.edu>
3285 2004-12-03 Fernando Perez <fperez@colorado.edu>
3280
3286
3281 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3287 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3282 be triggered when using 'run -p'. An incorrect option flag was
3288 be triggered when using 'run -p'. An incorrect option flag was
3283 being set ('d' instead of 'D').
3289 being set ('d' instead of 'D').
3284 (manpage): fix missing escaped \- sign.
3290 (manpage): fix missing escaped \- sign.
3285
3291
3286 2004-11-30 *** Released version 0.6.5
3292 2004-11-30 *** Released version 0.6.5
3287
3293
3288 2004-11-30 Fernando Perez <fperez@colorado.edu>
3294 2004-11-30 Fernando Perez <fperez@colorado.edu>
3289
3295
3290 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3296 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3291 setting with -d option.
3297 setting with -d option.
3292
3298
3293 * setup.py (docfiles): Fix problem where the doc glob I was using
3299 * setup.py (docfiles): Fix problem where the doc glob I was using
3294 was COMPLETELY BROKEN. It was giving the right files by pure
3300 was COMPLETELY BROKEN. It was giving the right files by pure
3295 accident, but failed once I tried to include ipython.el. Note:
3301 accident, but failed once I tried to include ipython.el. Note:
3296 glob() does NOT allow you to do exclusion on multiple endings!
3302 glob() does NOT allow you to do exclusion on multiple endings!
3297
3303
3298 2004-11-29 Fernando Perez <fperez@colorado.edu>
3304 2004-11-29 Fernando Perez <fperez@colorado.edu>
3299
3305
3300 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3306 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3301 the manpage as the source. Better formatting & consistency.
3307 the manpage as the source. Better formatting & consistency.
3302
3308
3303 * IPython/Magic.py (magic_run): Added new -d option, to run
3309 * IPython/Magic.py (magic_run): Added new -d option, to run
3304 scripts under the control of the python pdb debugger. Note that
3310 scripts under the control of the python pdb debugger. Note that
3305 this required changing the %prun option -d to -D, to avoid a clash
3311 this required changing the %prun option -d to -D, to avoid a clash
3306 (since %run must pass options to %prun, and getopt is too dumb to
3312 (since %run must pass options to %prun, and getopt is too dumb to
3307 handle options with string values with embedded spaces). Thanks
3313 handle options with string values with embedded spaces). Thanks
3308 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3314 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3309 (magic_who_ls): added type matching to %who and %whos, so that one
3315 (magic_who_ls): added type matching to %who and %whos, so that one
3310 can filter their output to only include variables of certain
3316 can filter their output to only include variables of certain
3311 types. Another suggestion by Matthew.
3317 types. Another suggestion by Matthew.
3312 (magic_whos): Added memory summaries in kb and Mb for arrays.
3318 (magic_whos): Added memory summaries in kb and Mb for arrays.
3313 (magic_who): Improve formatting (break lines every 9 vars).
3319 (magic_who): Improve formatting (break lines every 9 vars).
3314
3320
3315 2004-11-28 Fernando Perez <fperez@colorado.edu>
3321 2004-11-28 Fernando Perez <fperez@colorado.edu>
3316
3322
3317 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3323 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3318 cache when empty lines were present.
3324 cache when empty lines were present.
3319
3325
3320 2004-11-24 Fernando Perez <fperez@colorado.edu>
3326 2004-11-24 Fernando Perez <fperez@colorado.edu>
3321
3327
3322 * IPython/usage.py (__doc__): document the re-activated threading
3328 * IPython/usage.py (__doc__): document the re-activated threading
3323 options for WX and GTK.
3329 options for WX and GTK.
3324
3330
3325 2004-11-23 Fernando Perez <fperez@colorado.edu>
3331 2004-11-23 Fernando Perez <fperez@colorado.edu>
3326
3332
3327 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3333 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3328 the -wthread and -gthread options, along with a new -tk one to try
3334 the -wthread and -gthread options, along with a new -tk one to try
3329 and coordinate Tk threading with wx/gtk. The tk support is very
3335 and coordinate Tk threading with wx/gtk. The tk support is very
3330 platform dependent, since it seems to require Tcl and Tk to be
3336 platform dependent, since it seems to require Tcl and Tk to be
3331 built with threads (Fedora1/2 appears NOT to have it, but in
3337 built with threads (Fedora1/2 appears NOT to have it, but in
3332 Prabhu's Debian boxes it works OK). But even with some Tk
3338 Prabhu's Debian boxes it works OK). But even with some Tk
3333 limitations, this is a great improvement.
3339 limitations, this is a great improvement.
3334
3340
3335 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3341 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3336 info in user prompts. Patch by Prabhu.
3342 info in user prompts. Patch by Prabhu.
3337
3343
3338 2004-11-18 Fernando Perez <fperez@colorado.edu>
3344 2004-11-18 Fernando Perez <fperez@colorado.edu>
3339
3345
3340 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3346 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3341 EOFErrors and bail, to avoid infinite loops if a non-terminating
3347 EOFErrors and bail, to avoid infinite loops if a non-terminating
3342 file is fed into ipython. Patch submitted in issue 19 by user,
3348 file is fed into ipython. Patch submitted in issue 19 by user,
3343 many thanks.
3349 many thanks.
3344
3350
3345 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3351 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3346 autoquote/parens in continuation prompts, which can cause lots of
3352 autoquote/parens in continuation prompts, which can cause lots of
3347 problems. Closes roundup issue 20.
3353 problems. Closes roundup issue 20.
3348
3354
3349 2004-11-17 Fernando Perez <fperez@colorado.edu>
3355 2004-11-17 Fernando Perez <fperez@colorado.edu>
3350
3356
3351 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3357 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3352 reported as debian bug #280505. I'm not sure my local changelog
3358 reported as debian bug #280505. I'm not sure my local changelog
3353 entry has the proper debian format (Jack?).
3359 entry has the proper debian format (Jack?).
3354
3360
3355 2004-11-08 *** Released version 0.6.4
3361 2004-11-08 *** Released version 0.6.4
3356
3362
3357 2004-11-08 Fernando Perez <fperez@colorado.edu>
3363 2004-11-08 Fernando Perez <fperez@colorado.edu>
3358
3364
3359 * IPython/iplib.py (init_readline): Fix exit message for Windows
3365 * IPython/iplib.py (init_readline): Fix exit message for Windows
3360 when readline is active. Thanks to a report by Eric Jones
3366 when readline is active. Thanks to a report by Eric Jones
3361 <eric-AT-enthought.com>.
3367 <eric-AT-enthought.com>.
3362
3368
3363 2004-11-07 Fernando Perez <fperez@colorado.edu>
3369 2004-11-07 Fernando Perez <fperez@colorado.edu>
3364
3370
3365 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3371 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3366 sometimes seen by win2k/cygwin users.
3372 sometimes seen by win2k/cygwin users.
3367
3373
3368 2004-11-06 Fernando Perez <fperez@colorado.edu>
3374 2004-11-06 Fernando Perez <fperez@colorado.edu>
3369
3375
3370 * IPython/iplib.py (interact): Change the handling of %Exit from
3376 * IPython/iplib.py (interact): Change the handling of %Exit from
3371 trying to propagate a SystemExit to an internal ipython flag.
3377 trying to propagate a SystemExit to an internal ipython flag.
3372 This is less elegant than using Python's exception mechanism, but
3378 This is less elegant than using Python's exception mechanism, but
3373 I can't get that to work reliably with threads, so under -pylab
3379 I can't get that to work reliably with threads, so under -pylab
3374 %Exit was hanging IPython. Cross-thread exception handling is
3380 %Exit was hanging IPython. Cross-thread exception handling is
3375 really a bitch. Thaks to a bug report by Stephen Walton
3381 really a bitch. Thaks to a bug report by Stephen Walton
3376 <stephen.walton-AT-csun.edu>.
3382 <stephen.walton-AT-csun.edu>.
3377
3383
3378 2004-11-04 Fernando Perez <fperez@colorado.edu>
3384 2004-11-04 Fernando Perez <fperez@colorado.edu>
3379
3385
3380 * IPython/iplib.py (raw_input_original): store a pointer to the
3386 * IPython/iplib.py (raw_input_original): store a pointer to the
3381 true raw_input to harden against code which can modify it
3387 true raw_input to harden against code which can modify it
3382 (wx.py.PyShell does this and would otherwise crash ipython).
3388 (wx.py.PyShell does this and would otherwise crash ipython).
3383 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3389 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3384
3390
3385 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3391 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3386 Ctrl-C problem, which does not mess up the input line.
3392 Ctrl-C problem, which does not mess up the input line.
3387
3393
3388 2004-11-03 Fernando Perez <fperez@colorado.edu>
3394 2004-11-03 Fernando Perez <fperez@colorado.edu>
3389
3395
3390 * IPython/Release.py: Changed licensing to BSD, in all files.
3396 * IPython/Release.py: Changed licensing to BSD, in all files.
3391 (name): lowercase name for tarball/RPM release.
3397 (name): lowercase name for tarball/RPM release.
3392
3398
3393 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3399 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3394 use throughout ipython.
3400 use throughout ipython.
3395
3401
3396 * IPython/Magic.py (Magic._ofind): Switch to using the new
3402 * IPython/Magic.py (Magic._ofind): Switch to using the new
3397 OInspect.getdoc() function.
3403 OInspect.getdoc() function.
3398
3404
3399 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3405 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3400 of the line currently being canceled via Ctrl-C. It's extremely
3406 of the line currently being canceled via Ctrl-C. It's extremely
3401 ugly, but I don't know how to do it better (the problem is one of
3407 ugly, but I don't know how to do it better (the problem is one of
3402 handling cross-thread exceptions).
3408 handling cross-thread exceptions).
3403
3409
3404 2004-10-28 Fernando Perez <fperez@colorado.edu>
3410 2004-10-28 Fernando Perez <fperez@colorado.edu>
3405
3411
3406 * IPython/Shell.py (signal_handler): add signal handlers to trap
3412 * IPython/Shell.py (signal_handler): add signal handlers to trap
3407 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3413 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3408 report by Francesc Alted.
3414 report by Francesc Alted.
3409
3415
3410 2004-10-21 Fernando Perez <fperez@colorado.edu>
3416 2004-10-21 Fernando Perez <fperez@colorado.edu>
3411
3417
3412 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3418 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3413 to % for pysh syntax extensions.
3419 to % for pysh syntax extensions.
3414
3420
3415 2004-10-09 Fernando Perez <fperez@colorado.edu>
3421 2004-10-09 Fernando Perez <fperez@colorado.edu>
3416
3422
3417 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3423 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3418 arrays to print a more useful summary, without calling str(arr).
3424 arrays to print a more useful summary, without calling str(arr).
3419 This avoids the problem of extremely lengthy computations which
3425 This avoids the problem of extremely lengthy computations which
3420 occur if arr is large, and appear to the user as a system lockup
3426 occur if arr is large, and appear to the user as a system lockup
3421 with 100% cpu activity. After a suggestion by Kristian Sandberg
3427 with 100% cpu activity. After a suggestion by Kristian Sandberg
3422 <Kristian.Sandberg@colorado.edu>.
3428 <Kristian.Sandberg@colorado.edu>.
3423 (Magic.__init__): fix bug in global magic escapes not being
3429 (Magic.__init__): fix bug in global magic escapes not being
3424 correctly set.
3430 correctly set.
3425
3431
3426 2004-10-08 Fernando Perez <fperez@colorado.edu>
3432 2004-10-08 Fernando Perez <fperez@colorado.edu>
3427
3433
3428 * IPython/Magic.py (__license__): change to absolute imports of
3434 * IPython/Magic.py (__license__): change to absolute imports of
3429 ipython's own internal packages, to start adapting to the absolute
3435 ipython's own internal packages, to start adapting to the absolute
3430 import requirement of PEP-328.
3436 import requirement of PEP-328.
3431
3437
3432 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3438 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3433 files, and standardize author/license marks through the Release
3439 files, and standardize author/license marks through the Release
3434 module instead of having per/file stuff (except for files with
3440 module instead of having per/file stuff (except for files with
3435 particular licenses, like the MIT/PSF-licensed codes).
3441 particular licenses, like the MIT/PSF-licensed codes).
3436
3442
3437 * IPython/Debugger.py: remove dead code for python 2.1
3443 * IPython/Debugger.py: remove dead code for python 2.1
3438
3444
3439 2004-10-04 Fernando Perez <fperez@colorado.edu>
3445 2004-10-04 Fernando Perez <fperez@colorado.edu>
3440
3446
3441 * IPython/iplib.py (ipmagic): New function for accessing magics
3447 * IPython/iplib.py (ipmagic): New function for accessing magics
3442 via a normal python function call.
3448 via a normal python function call.
3443
3449
3444 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3450 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3445 from '@' to '%', to accomodate the new @decorator syntax of python
3451 from '@' to '%', to accomodate the new @decorator syntax of python
3446 2.4.
3452 2.4.
3447
3453
3448 2004-09-29 Fernando Perez <fperez@colorado.edu>
3454 2004-09-29 Fernando Perez <fperez@colorado.edu>
3449
3455
3450 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3456 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3451 matplotlib.use to prevent running scripts which try to switch
3457 matplotlib.use to prevent running scripts which try to switch
3452 interactive backends from within ipython. This will just crash
3458 interactive backends from within ipython. This will just crash
3453 the python interpreter, so we can't allow it (but a detailed error
3459 the python interpreter, so we can't allow it (but a detailed error
3454 is given to the user).
3460 is given to the user).
3455
3461
3456 2004-09-28 Fernando Perez <fperez@colorado.edu>
3462 2004-09-28 Fernando Perez <fperez@colorado.edu>
3457
3463
3458 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3464 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3459 matplotlib-related fixes so that using @run with non-matplotlib
3465 matplotlib-related fixes so that using @run with non-matplotlib
3460 scripts doesn't pop up spurious plot windows. This requires
3466 scripts doesn't pop up spurious plot windows. This requires
3461 matplotlib >= 0.63, where I had to make some changes as well.
3467 matplotlib >= 0.63, where I had to make some changes as well.
3462
3468
3463 * IPython/ipmaker.py (make_IPython): update version requirement to
3469 * IPython/ipmaker.py (make_IPython): update version requirement to
3464 python 2.2.
3470 python 2.2.
3465
3471
3466 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3472 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3467 banner arg for embedded customization.
3473 banner arg for embedded customization.
3468
3474
3469 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3475 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3470 explicit uses of __IP as the IPython's instance name. Now things
3476 explicit uses of __IP as the IPython's instance name. Now things
3471 are properly handled via the shell.name value. The actual code
3477 are properly handled via the shell.name value. The actual code
3472 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3478 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3473 is much better than before. I'll clean things completely when the
3479 is much better than before. I'll clean things completely when the
3474 magic stuff gets a real overhaul.
3480 magic stuff gets a real overhaul.
3475
3481
3476 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3482 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3477 minor changes to debian dir.
3483 minor changes to debian dir.
3478
3484
3479 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3485 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3480 pointer to the shell itself in the interactive namespace even when
3486 pointer to the shell itself in the interactive namespace even when
3481 a user-supplied dict is provided. This is needed for embedding
3487 a user-supplied dict is provided. This is needed for embedding
3482 purposes (found by tests with Michel Sanner).
3488 purposes (found by tests with Michel Sanner).
3483
3489
3484 2004-09-27 Fernando Perez <fperez@colorado.edu>
3490 2004-09-27 Fernando Perez <fperez@colorado.edu>
3485
3491
3486 * IPython/UserConfig/ipythonrc: remove []{} from
3492 * IPython/UserConfig/ipythonrc: remove []{} from
3487 readline_remove_delims, so that things like [modname.<TAB> do
3493 readline_remove_delims, so that things like [modname.<TAB> do
3488 proper completion. This disables [].TAB, but that's a less common
3494 proper completion. This disables [].TAB, but that's a less common
3489 case than module names in list comprehensions, for example.
3495 case than module names in list comprehensions, for example.
3490 Thanks to a report by Andrea Riciputi.
3496 Thanks to a report by Andrea Riciputi.
3491
3497
3492 2004-09-09 Fernando Perez <fperez@colorado.edu>
3498 2004-09-09 Fernando Perez <fperez@colorado.edu>
3493
3499
3494 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3500 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3495 blocking problems in win32 and osx. Fix by John.
3501 blocking problems in win32 and osx. Fix by John.
3496
3502
3497 2004-09-08 Fernando Perez <fperez@colorado.edu>
3503 2004-09-08 Fernando Perez <fperez@colorado.edu>
3498
3504
3499 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3505 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3500 for Win32 and OSX. Fix by John Hunter.
3506 for Win32 and OSX. Fix by John Hunter.
3501
3507
3502 2004-08-30 *** Released version 0.6.3
3508 2004-08-30 *** Released version 0.6.3
3503
3509
3504 2004-08-30 Fernando Perez <fperez@colorado.edu>
3510 2004-08-30 Fernando Perez <fperez@colorado.edu>
3505
3511
3506 * setup.py (isfile): Add manpages to list of dependent files to be
3512 * setup.py (isfile): Add manpages to list of dependent files to be
3507 updated.
3513 updated.
3508
3514
3509 2004-08-27 Fernando Perez <fperez@colorado.edu>
3515 2004-08-27 Fernando Perez <fperez@colorado.edu>
3510
3516
3511 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3517 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3512 for now. They don't really work with standalone WX/GTK code
3518 for now. They don't really work with standalone WX/GTK code
3513 (though matplotlib IS working fine with both of those backends).
3519 (though matplotlib IS working fine with both of those backends).
3514 This will neeed much more testing. I disabled most things with
3520 This will neeed much more testing. I disabled most things with
3515 comments, so turning it back on later should be pretty easy.
3521 comments, so turning it back on later should be pretty easy.
3516
3522
3517 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3523 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3518 autocalling of expressions like r'foo', by modifying the line
3524 autocalling of expressions like r'foo', by modifying the line
3519 split regexp. Closes
3525 split regexp. Closes
3520 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3526 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3521 Riley <ipythonbugs-AT-sabi.net>.
3527 Riley <ipythonbugs-AT-sabi.net>.
3522 (InteractiveShell.mainloop): honor --nobanner with banner
3528 (InteractiveShell.mainloop): honor --nobanner with banner
3523 extensions.
3529 extensions.
3524
3530
3525 * IPython/Shell.py: Significant refactoring of all classes, so
3531 * IPython/Shell.py: Significant refactoring of all classes, so
3526 that we can really support ALL matplotlib backends and threading
3532 that we can really support ALL matplotlib backends and threading
3527 models (John spotted a bug with Tk which required this). Now we
3533 models (John spotted a bug with Tk which required this). Now we
3528 should support single-threaded, WX-threads and GTK-threads, both
3534 should support single-threaded, WX-threads and GTK-threads, both
3529 for generic code and for matplotlib.
3535 for generic code and for matplotlib.
3530
3536
3531 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3537 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3532 -pylab, to simplify things for users. Will also remove the pylab
3538 -pylab, to simplify things for users. Will also remove the pylab
3533 profile, since now all of matplotlib configuration is directly
3539 profile, since now all of matplotlib configuration is directly
3534 handled here. This also reduces startup time.
3540 handled here. This also reduces startup time.
3535
3541
3536 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3542 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3537 shell wasn't being correctly called. Also in IPShellWX.
3543 shell wasn't being correctly called. Also in IPShellWX.
3538
3544
3539 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3545 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3540 fine-tune banner.
3546 fine-tune banner.
3541
3547
3542 * IPython/numutils.py (spike): Deprecate these spike functions,
3548 * IPython/numutils.py (spike): Deprecate these spike functions,
3543 delete (long deprecated) gnuplot_exec handler.
3549 delete (long deprecated) gnuplot_exec handler.
3544
3550
3545 2004-08-26 Fernando Perez <fperez@colorado.edu>
3551 2004-08-26 Fernando Perez <fperez@colorado.edu>
3546
3552
3547 * ipython.1: Update for threading options, plus some others which
3553 * ipython.1: Update for threading options, plus some others which
3548 were missing.
3554 were missing.
3549
3555
3550 * IPython/ipmaker.py (__call__): Added -wthread option for
3556 * IPython/ipmaker.py (__call__): Added -wthread option for
3551 wxpython thread handling. Make sure threading options are only
3557 wxpython thread handling. Make sure threading options are only
3552 valid at the command line.
3558 valid at the command line.
3553
3559
3554 * scripts/ipython: moved shell selection into a factory function
3560 * scripts/ipython: moved shell selection into a factory function
3555 in Shell.py, to keep the starter script to a minimum.
3561 in Shell.py, to keep the starter script to a minimum.
3556
3562
3557 2004-08-25 Fernando Perez <fperez@colorado.edu>
3563 2004-08-25 Fernando Perez <fperez@colorado.edu>
3558
3564
3559 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3565 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3560 John. Along with some recent changes he made to matplotlib, the
3566 John. Along with some recent changes he made to matplotlib, the
3561 next versions of both systems should work very well together.
3567 next versions of both systems should work very well together.
3562
3568
3563 2004-08-24 Fernando Perez <fperez@colorado.edu>
3569 2004-08-24 Fernando Perez <fperez@colorado.edu>
3564
3570
3565 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3571 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3566 tried to switch the profiling to using hotshot, but I'm getting
3572 tried to switch the profiling to using hotshot, but I'm getting
3567 strange errors from prof.runctx() there. I may be misreading the
3573 strange errors from prof.runctx() there. I may be misreading the
3568 docs, but it looks weird. For now the profiling code will
3574 docs, but it looks weird. For now the profiling code will
3569 continue to use the standard profiler.
3575 continue to use the standard profiler.
3570
3576
3571 2004-08-23 Fernando Perez <fperez@colorado.edu>
3577 2004-08-23 Fernando Perez <fperez@colorado.edu>
3572
3578
3573 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3579 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3574 threaded shell, by John Hunter. It's not quite ready yet, but
3580 threaded shell, by John Hunter. It's not quite ready yet, but
3575 close.
3581 close.
3576
3582
3577 2004-08-22 Fernando Perez <fperez@colorado.edu>
3583 2004-08-22 Fernando Perez <fperez@colorado.edu>
3578
3584
3579 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3585 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3580 in Magic and ultraTB.
3586 in Magic and ultraTB.
3581
3587
3582 * ipython.1: document threading options in manpage.
3588 * ipython.1: document threading options in manpage.
3583
3589
3584 * scripts/ipython: Changed name of -thread option to -gthread,
3590 * scripts/ipython: Changed name of -thread option to -gthread,
3585 since this is GTK specific. I want to leave the door open for a
3591 since this is GTK specific. I want to leave the door open for a
3586 -wthread option for WX, which will most likely be necessary. This
3592 -wthread option for WX, which will most likely be necessary. This
3587 change affects usage and ipmaker as well.
3593 change affects usage and ipmaker as well.
3588
3594
3589 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3595 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3590 handle the matplotlib shell issues. Code by John Hunter
3596 handle the matplotlib shell issues. Code by John Hunter
3591 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3597 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3592 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3598 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3593 broken (and disabled for end users) for now, but it puts the
3599 broken (and disabled for end users) for now, but it puts the
3594 infrastructure in place.
3600 infrastructure in place.
3595
3601
3596 2004-08-21 Fernando Perez <fperez@colorado.edu>
3602 2004-08-21 Fernando Perez <fperez@colorado.edu>
3597
3603
3598 * ipythonrc-pylab: Add matplotlib support.
3604 * ipythonrc-pylab: Add matplotlib support.
3599
3605
3600 * matplotlib_config.py: new files for matplotlib support, part of
3606 * matplotlib_config.py: new files for matplotlib support, part of
3601 the pylab profile.
3607 the pylab profile.
3602
3608
3603 * IPython/usage.py (__doc__): documented the threading options.
3609 * IPython/usage.py (__doc__): documented the threading options.
3604
3610
3605 2004-08-20 Fernando Perez <fperez@colorado.edu>
3611 2004-08-20 Fernando Perez <fperez@colorado.edu>
3606
3612
3607 * ipython: Modified the main calling routine to handle the -thread
3613 * ipython: Modified the main calling routine to handle the -thread
3608 and -mpthread options. This needs to be done as a top-level hack,
3614 and -mpthread options. This needs to be done as a top-level hack,
3609 because it determines which class to instantiate for IPython
3615 because it determines which class to instantiate for IPython
3610 itself.
3616 itself.
3611
3617
3612 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3618 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3613 classes to support multithreaded GTK operation without blocking,
3619 classes to support multithreaded GTK operation without blocking,
3614 and matplotlib with all backends. This is a lot of still very
3620 and matplotlib with all backends. This is a lot of still very
3615 experimental code, and threads are tricky. So it may still have a
3621 experimental code, and threads are tricky. So it may still have a
3616 few rough edges... This code owes a lot to
3622 few rough edges... This code owes a lot to
3617 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3623 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3618 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3624 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3619 to John Hunter for all the matplotlib work.
3625 to John Hunter for all the matplotlib work.
3620
3626
3621 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3627 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3622 options for gtk thread and matplotlib support.
3628 options for gtk thread and matplotlib support.
3623
3629
3624 2004-08-16 Fernando Perez <fperez@colorado.edu>
3630 2004-08-16 Fernando Perez <fperez@colorado.edu>
3625
3631
3626 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3632 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3627 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3633 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3628 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3634 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3629
3635
3630 2004-08-11 Fernando Perez <fperez@colorado.edu>
3636 2004-08-11 Fernando Perez <fperez@colorado.edu>
3631
3637
3632 * setup.py (isfile): Fix build so documentation gets updated for
3638 * setup.py (isfile): Fix build so documentation gets updated for
3633 rpms (it was only done for .tgz builds).
3639 rpms (it was only done for .tgz builds).
3634
3640
3635 2004-08-10 Fernando Perez <fperez@colorado.edu>
3641 2004-08-10 Fernando Perez <fperez@colorado.edu>
3636
3642
3637 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3643 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3638
3644
3639 * iplib.py : Silence syntax error exceptions in tab-completion.
3645 * iplib.py : Silence syntax error exceptions in tab-completion.
3640
3646
3641 2004-08-05 Fernando Perez <fperez@colorado.edu>
3647 2004-08-05 Fernando Perez <fperez@colorado.edu>
3642
3648
3643 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3649 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3644 'color off' mark for continuation prompts. This was causing long
3650 'color off' mark for continuation prompts. This was causing long
3645 continuation lines to mis-wrap.
3651 continuation lines to mis-wrap.
3646
3652
3647 2004-08-01 Fernando Perez <fperez@colorado.edu>
3653 2004-08-01 Fernando Perez <fperez@colorado.edu>
3648
3654
3649 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3655 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3650 for building ipython to be a parameter. All this is necessary
3656 for building ipython to be a parameter. All this is necessary
3651 right now to have a multithreaded version, but this insane
3657 right now to have a multithreaded version, but this insane
3652 non-design will be cleaned up soon. For now, it's a hack that
3658 non-design will be cleaned up soon. For now, it's a hack that
3653 works.
3659 works.
3654
3660
3655 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3661 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3656 args in various places. No bugs so far, but it's a dangerous
3662 args in various places. No bugs so far, but it's a dangerous
3657 practice.
3663 practice.
3658
3664
3659 2004-07-31 Fernando Perez <fperez@colorado.edu>
3665 2004-07-31 Fernando Perez <fperez@colorado.edu>
3660
3666
3661 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3667 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3662 fix completion of files with dots in their names under most
3668 fix completion of files with dots in their names under most
3663 profiles (pysh was OK because the completion order is different).
3669 profiles (pysh was OK because the completion order is different).
3664
3670
3665 2004-07-27 Fernando Perez <fperez@colorado.edu>
3671 2004-07-27 Fernando Perez <fperez@colorado.edu>
3666
3672
3667 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3673 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3668 keywords manually, b/c the one in keyword.py was removed in python
3674 keywords manually, b/c the one in keyword.py was removed in python
3669 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3675 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3670 This is NOT a bug under python 2.3 and earlier.
3676 This is NOT a bug under python 2.3 and earlier.
3671
3677
3672 2004-07-26 Fernando Perez <fperez@colorado.edu>
3678 2004-07-26 Fernando Perez <fperez@colorado.edu>
3673
3679
3674 * IPython/ultraTB.py (VerboseTB.text): Add another
3680 * IPython/ultraTB.py (VerboseTB.text): Add another
3675 linecache.checkcache() call to try to prevent inspect.py from
3681 linecache.checkcache() call to try to prevent inspect.py from
3676 crashing under python 2.3. I think this fixes
3682 crashing under python 2.3. I think this fixes
3677 http://www.scipy.net/roundup/ipython/issue17.
3683 http://www.scipy.net/roundup/ipython/issue17.
3678
3684
3679 2004-07-26 *** Released version 0.6.2
3685 2004-07-26 *** Released version 0.6.2
3680
3686
3681 2004-07-26 Fernando Perez <fperez@colorado.edu>
3687 2004-07-26 Fernando Perez <fperez@colorado.edu>
3682
3688
3683 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3689 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3684 fail for any number.
3690 fail for any number.
3685 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3691 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3686 empty bookmarks.
3692 empty bookmarks.
3687
3693
3688 2004-07-26 *** Released version 0.6.1
3694 2004-07-26 *** Released version 0.6.1
3689
3695
3690 2004-07-26 Fernando Perez <fperez@colorado.edu>
3696 2004-07-26 Fernando Perez <fperez@colorado.edu>
3691
3697
3692 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3698 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3693
3699
3694 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3700 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3695 escaping '()[]{}' in filenames.
3701 escaping '()[]{}' in filenames.
3696
3702
3697 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3703 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3698 Python 2.2 users who lack a proper shlex.split.
3704 Python 2.2 users who lack a proper shlex.split.
3699
3705
3700 2004-07-19 Fernando Perez <fperez@colorado.edu>
3706 2004-07-19 Fernando Perez <fperez@colorado.edu>
3701
3707
3702 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3708 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3703 for reading readline's init file. I follow the normal chain:
3709 for reading readline's init file. I follow the normal chain:
3704 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3710 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3705 report by Mike Heeter. This closes
3711 report by Mike Heeter. This closes
3706 http://www.scipy.net/roundup/ipython/issue16.
3712 http://www.scipy.net/roundup/ipython/issue16.
3707
3713
3708 2004-07-18 Fernando Perez <fperez@colorado.edu>
3714 2004-07-18 Fernando Perez <fperez@colorado.edu>
3709
3715
3710 * IPython/iplib.py (__init__): Add better handling of '\' under
3716 * IPython/iplib.py (__init__): Add better handling of '\' under
3711 Win32 for filenames. After a patch by Ville.
3717 Win32 for filenames. After a patch by Ville.
3712
3718
3713 2004-07-17 Fernando Perez <fperez@colorado.edu>
3719 2004-07-17 Fernando Perez <fperez@colorado.edu>
3714
3720
3715 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3721 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3716 autocalling would be triggered for 'foo is bar' if foo is
3722 autocalling would be triggered for 'foo is bar' if foo is
3717 callable. I also cleaned up the autocall detection code to use a
3723 callable. I also cleaned up the autocall detection code to use a
3718 regexp, which is faster. Bug reported by Alexander Schmolck.
3724 regexp, which is faster. Bug reported by Alexander Schmolck.
3719
3725
3720 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3726 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3721 '?' in them would confuse the help system. Reported by Alex
3727 '?' in them would confuse the help system. Reported by Alex
3722 Schmolck.
3728 Schmolck.
3723
3729
3724 2004-07-16 Fernando Perez <fperez@colorado.edu>
3730 2004-07-16 Fernando Perez <fperez@colorado.edu>
3725
3731
3726 * IPython/GnuplotInteractive.py (__all__): added plot2.
3732 * IPython/GnuplotInteractive.py (__all__): added plot2.
3727
3733
3728 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3734 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3729 plotting dictionaries, lists or tuples of 1d arrays.
3735 plotting dictionaries, lists or tuples of 1d arrays.
3730
3736
3731 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3737 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3732 optimizations.
3738 optimizations.
3733
3739
3734 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3740 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3735 the information which was there from Janko's original IPP code:
3741 the information which was there from Janko's original IPP code:
3736
3742
3737 03.05.99 20:53 porto.ifm.uni-kiel.de
3743 03.05.99 20:53 porto.ifm.uni-kiel.de
3738 --Started changelog.
3744 --Started changelog.
3739 --make clear do what it say it does
3745 --make clear do what it say it does
3740 --added pretty output of lines from inputcache
3746 --added pretty output of lines from inputcache
3741 --Made Logger a mixin class, simplifies handling of switches
3747 --Made Logger a mixin class, simplifies handling of switches
3742 --Added own completer class. .string<TAB> expands to last history
3748 --Added own completer class. .string<TAB> expands to last history
3743 line which starts with string. The new expansion is also present
3749 line which starts with string. The new expansion is also present
3744 with Ctrl-r from the readline library. But this shows, who this
3750 with Ctrl-r from the readline library. But this shows, who this
3745 can be done for other cases.
3751 can be done for other cases.
3746 --Added convention that all shell functions should accept a
3752 --Added convention that all shell functions should accept a
3747 parameter_string This opens the door for different behaviour for
3753 parameter_string This opens the door for different behaviour for
3748 each function. @cd is a good example of this.
3754 each function. @cd is a good example of this.
3749
3755
3750 04.05.99 12:12 porto.ifm.uni-kiel.de
3756 04.05.99 12:12 porto.ifm.uni-kiel.de
3751 --added logfile rotation
3757 --added logfile rotation
3752 --added new mainloop method which freezes first the namespace
3758 --added new mainloop method which freezes first the namespace
3753
3759
3754 07.05.99 21:24 porto.ifm.uni-kiel.de
3760 07.05.99 21:24 porto.ifm.uni-kiel.de
3755 --added the docreader classes. Now there is a help system.
3761 --added the docreader classes. Now there is a help system.
3756 -This is only a first try. Currently it's not easy to put new
3762 -This is only a first try. Currently it's not easy to put new
3757 stuff in the indices. But this is the way to go. Info would be
3763 stuff in the indices. But this is the way to go. Info would be
3758 better, but HTML is every where and not everybody has an info
3764 better, but HTML is every where and not everybody has an info
3759 system installed and it's not so easy to change html-docs to info.
3765 system installed and it's not so easy to change html-docs to info.
3760 --added global logfile option
3766 --added global logfile option
3761 --there is now a hook for object inspection method pinfo needs to
3767 --there is now a hook for object inspection method pinfo needs to
3762 be provided for this. Can be reached by two '??'.
3768 be provided for this. Can be reached by two '??'.
3763
3769
3764 08.05.99 20:51 porto.ifm.uni-kiel.de
3770 08.05.99 20:51 porto.ifm.uni-kiel.de
3765 --added a README
3771 --added a README
3766 --bug in rc file. Something has changed so functions in the rc
3772 --bug in rc file. Something has changed so functions in the rc
3767 file need to reference the shell and not self. Not clear if it's a
3773 file need to reference the shell and not self. Not clear if it's a
3768 bug or feature.
3774 bug or feature.
3769 --changed rc file for new behavior
3775 --changed rc file for new behavior
3770
3776
3771 2004-07-15 Fernando Perez <fperez@colorado.edu>
3777 2004-07-15 Fernando Perez <fperez@colorado.edu>
3772
3778
3773 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3779 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3774 cache was falling out of sync in bizarre manners when multi-line
3780 cache was falling out of sync in bizarre manners when multi-line
3775 input was present. Minor optimizations and cleanup.
3781 input was present. Minor optimizations and cleanup.
3776
3782
3777 (Logger): Remove old Changelog info for cleanup. This is the
3783 (Logger): Remove old Changelog info for cleanup. This is the
3778 information which was there from Janko's original code:
3784 information which was there from Janko's original code:
3779
3785
3780 Changes to Logger: - made the default log filename a parameter
3786 Changes to Logger: - made the default log filename a parameter
3781
3787
3782 - put a check for lines beginning with !@? in log(). Needed
3788 - put a check for lines beginning with !@? in log(). Needed
3783 (even if the handlers properly log their lines) for mid-session
3789 (even if the handlers properly log their lines) for mid-session
3784 logging activation to work properly. Without this, lines logged
3790 logging activation to work properly. Without this, lines logged
3785 in mid session, which get read from the cache, would end up
3791 in mid session, which get read from the cache, would end up
3786 'bare' (with !@? in the open) in the log. Now they are caught
3792 'bare' (with !@? in the open) in the log. Now they are caught
3787 and prepended with a #.
3793 and prepended with a #.
3788
3794
3789 * IPython/iplib.py (InteractiveShell.init_readline): added check
3795 * IPython/iplib.py (InteractiveShell.init_readline): added check
3790 in case MagicCompleter fails to be defined, so we don't crash.
3796 in case MagicCompleter fails to be defined, so we don't crash.
3791
3797
3792 2004-07-13 Fernando Perez <fperez@colorado.edu>
3798 2004-07-13 Fernando Perez <fperez@colorado.edu>
3793
3799
3794 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3800 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3795 of EPS if the requested filename ends in '.eps'.
3801 of EPS if the requested filename ends in '.eps'.
3796
3802
3797 2004-07-04 Fernando Perez <fperez@colorado.edu>
3803 2004-07-04 Fernando Perez <fperez@colorado.edu>
3798
3804
3799 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3805 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3800 escaping of quotes when calling the shell.
3806 escaping of quotes when calling the shell.
3801
3807
3802 2004-07-02 Fernando Perez <fperez@colorado.edu>
3808 2004-07-02 Fernando Perez <fperez@colorado.edu>
3803
3809
3804 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3810 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3805 gettext not working because we were clobbering '_'. Fixes
3811 gettext not working because we were clobbering '_'. Fixes
3806 http://www.scipy.net/roundup/ipython/issue6.
3812 http://www.scipy.net/roundup/ipython/issue6.
3807
3813
3808 2004-07-01 Fernando Perez <fperez@colorado.edu>
3814 2004-07-01 Fernando Perez <fperez@colorado.edu>
3809
3815
3810 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3816 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3811 into @cd. Patch by Ville.
3817 into @cd. Patch by Ville.
3812
3818
3813 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3819 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3814 new function to store things after ipmaker runs. Patch by Ville.
3820 new function to store things after ipmaker runs. Patch by Ville.
3815 Eventually this will go away once ipmaker is removed and the class
3821 Eventually this will go away once ipmaker is removed and the class
3816 gets cleaned up, but for now it's ok. Key functionality here is
3822 gets cleaned up, but for now it's ok. Key functionality here is
3817 the addition of the persistent storage mechanism, a dict for
3823 the addition of the persistent storage mechanism, a dict for
3818 keeping data across sessions (for now just bookmarks, but more can
3824 keeping data across sessions (for now just bookmarks, but more can
3819 be implemented later).
3825 be implemented later).
3820
3826
3821 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3827 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3822 persistent across sections. Patch by Ville, I modified it
3828 persistent across sections. Patch by Ville, I modified it
3823 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3829 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3824 added a '-l' option to list all bookmarks.
3830 added a '-l' option to list all bookmarks.
3825
3831
3826 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3832 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3827 center for cleanup. Registered with atexit.register(). I moved
3833 center for cleanup. Registered with atexit.register(). I moved
3828 here the old exit_cleanup(). After a patch by Ville.
3834 here the old exit_cleanup(). After a patch by Ville.
3829
3835
3830 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3836 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3831 characters in the hacked shlex_split for python 2.2.
3837 characters in the hacked shlex_split for python 2.2.
3832
3838
3833 * IPython/iplib.py (file_matches): more fixes to filenames with
3839 * IPython/iplib.py (file_matches): more fixes to filenames with
3834 whitespace in them. It's not perfect, but limitations in python's
3840 whitespace in them. It's not perfect, but limitations in python's
3835 readline make it impossible to go further.
3841 readline make it impossible to go further.
3836
3842
3837 2004-06-29 Fernando Perez <fperez@colorado.edu>
3843 2004-06-29 Fernando Perez <fperez@colorado.edu>
3838
3844
3839 * IPython/iplib.py (file_matches): escape whitespace correctly in
3845 * IPython/iplib.py (file_matches): escape whitespace correctly in
3840 filename completions. Bug reported by Ville.
3846 filename completions. Bug reported by Ville.
3841
3847
3842 2004-06-28 Fernando Perez <fperez@colorado.edu>
3848 2004-06-28 Fernando Perez <fperez@colorado.edu>
3843
3849
3844 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3850 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3845 the history file will be called 'history-PROFNAME' (or just
3851 the history file will be called 'history-PROFNAME' (or just
3846 'history' if no profile is loaded). I was getting annoyed at
3852 'history' if no profile is loaded). I was getting annoyed at
3847 getting my Numerical work history clobbered by pysh sessions.
3853 getting my Numerical work history clobbered by pysh sessions.
3848
3854
3849 * IPython/iplib.py (InteractiveShell.__init__): Internal
3855 * IPython/iplib.py (InteractiveShell.__init__): Internal
3850 getoutputerror() function so that we can honor the system_verbose
3856 getoutputerror() function so that we can honor the system_verbose
3851 flag for _all_ system calls. I also added escaping of #
3857 flag for _all_ system calls. I also added escaping of #
3852 characters here to avoid confusing Itpl.
3858 characters here to avoid confusing Itpl.
3853
3859
3854 * IPython/Magic.py (shlex_split): removed call to shell in
3860 * IPython/Magic.py (shlex_split): removed call to shell in
3855 parse_options and replaced it with shlex.split(). The annoying
3861 parse_options and replaced it with shlex.split(). The annoying
3856 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3862 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3857 to backport it from 2.3, with several frail hacks (the shlex
3863 to backport it from 2.3, with several frail hacks (the shlex
3858 module is rather limited in 2.2). Thanks to a suggestion by Ville
3864 module is rather limited in 2.2). Thanks to a suggestion by Ville
3859 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3865 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3860 problem.
3866 problem.
3861
3867
3862 (Magic.magic_system_verbose): new toggle to print the actual
3868 (Magic.magic_system_verbose): new toggle to print the actual
3863 system calls made by ipython. Mainly for debugging purposes.
3869 system calls made by ipython. Mainly for debugging purposes.
3864
3870
3865 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3871 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3866 doesn't support persistence. Reported (and fix suggested) by
3872 doesn't support persistence. Reported (and fix suggested) by
3867 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3873 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3868
3874
3869 2004-06-26 Fernando Perez <fperez@colorado.edu>
3875 2004-06-26 Fernando Perez <fperez@colorado.edu>
3870
3876
3871 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3877 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3872 continue prompts.
3878 continue prompts.
3873
3879
3874 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3880 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3875 function (basically a big docstring) and a few more things here to
3881 function (basically a big docstring) and a few more things here to
3876 speedup startup. pysh.py is now very lightweight. We want because
3882 speedup startup. pysh.py is now very lightweight. We want because
3877 it gets execfile'd, while InterpreterExec gets imported, so
3883 it gets execfile'd, while InterpreterExec gets imported, so
3878 byte-compilation saves time.
3884 byte-compilation saves time.
3879
3885
3880 2004-06-25 Fernando Perez <fperez@colorado.edu>
3886 2004-06-25 Fernando Perez <fperez@colorado.edu>
3881
3887
3882 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3888 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3883 -NUM', which was recently broken.
3889 -NUM', which was recently broken.
3884
3890
3885 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3891 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3886 in multi-line input (but not !!, which doesn't make sense there).
3892 in multi-line input (but not !!, which doesn't make sense there).
3887
3893
3888 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3894 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3889 It's just too useful, and people can turn it off in the less
3895 It's just too useful, and people can turn it off in the less
3890 common cases where it's a problem.
3896 common cases where it's a problem.
3891
3897
3892 2004-06-24 Fernando Perez <fperez@colorado.edu>
3898 2004-06-24 Fernando Perez <fperez@colorado.edu>
3893
3899
3894 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3900 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3895 special syntaxes (like alias calling) is now allied in multi-line
3901 special syntaxes (like alias calling) is now allied in multi-line
3896 input. This is still _very_ experimental, but it's necessary for
3902 input. This is still _very_ experimental, but it's necessary for
3897 efficient shell usage combining python looping syntax with system
3903 efficient shell usage combining python looping syntax with system
3898 calls. For now it's restricted to aliases, I don't think it
3904 calls. For now it's restricted to aliases, I don't think it
3899 really even makes sense to have this for magics.
3905 really even makes sense to have this for magics.
3900
3906
3901 2004-06-23 Fernando Perez <fperez@colorado.edu>
3907 2004-06-23 Fernando Perez <fperez@colorado.edu>
3902
3908
3903 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3909 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3904 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3910 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3905
3911
3906 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3912 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3907 extensions under Windows (after code sent by Gary Bishop). The
3913 extensions under Windows (after code sent by Gary Bishop). The
3908 extensions considered 'executable' are stored in IPython's rc
3914 extensions considered 'executable' are stored in IPython's rc
3909 structure as win_exec_ext.
3915 structure as win_exec_ext.
3910
3916
3911 * IPython/genutils.py (shell): new function, like system() but
3917 * IPython/genutils.py (shell): new function, like system() but
3912 without return value. Very useful for interactive shell work.
3918 without return value. Very useful for interactive shell work.
3913
3919
3914 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3920 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3915 delete aliases.
3921 delete aliases.
3916
3922
3917 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3923 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3918 sure that the alias table doesn't contain python keywords.
3924 sure that the alias table doesn't contain python keywords.
3919
3925
3920 2004-06-21 Fernando Perez <fperez@colorado.edu>
3926 2004-06-21 Fernando Perez <fperez@colorado.edu>
3921
3927
3922 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3928 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3923 non-existent items are found in $PATH. Reported by Thorsten.
3929 non-existent items are found in $PATH. Reported by Thorsten.
3924
3930
3925 2004-06-20 Fernando Perez <fperez@colorado.edu>
3931 2004-06-20 Fernando Perez <fperez@colorado.edu>
3926
3932
3927 * IPython/iplib.py (complete): modified the completer so that the
3933 * IPython/iplib.py (complete): modified the completer so that the
3928 order of priorities can be easily changed at runtime.
3934 order of priorities can be easily changed at runtime.
3929
3935
3930 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3936 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3931 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3937 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3932
3938
3933 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3939 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3934 expand Python variables prepended with $ in all system calls. The
3940 expand Python variables prepended with $ in all system calls. The
3935 same was done to InteractiveShell.handle_shell_escape. Now all
3941 same was done to InteractiveShell.handle_shell_escape. Now all
3936 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3942 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3937 expansion of python variables and expressions according to the
3943 expansion of python variables and expressions according to the
3938 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3944 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3939
3945
3940 Though PEP-215 has been rejected, a similar (but simpler) one
3946 Though PEP-215 has been rejected, a similar (but simpler) one
3941 seems like it will go into Python 2.4, PEP-292 -
3947 seems like it will go into Python 2.4, PEP-292 -
3942 http://www.python.org/peps/pep-0292.html.
3948 http://www.python.org/peps/pep-0292.html.
3943
3949
3944 I'll keep the full syntax of PEP-215, since IPython has since the
3950 I'll keep the full syntax of PEP-215, since IPython has since the
3945 start used Ka-Ping Yee's reference implementation discussed there
3951 start used Ka-Ping Yee's reference implementation discussed there
3946 (Itpl), and I actually like the powerful semantics it offers.
3952 (Itpl), and I actually like the powerful semantics it offers.
3947
3953
3948 In order to access normal shell variables, the $ has to be escaped
3954 In order to access normal shell variables, the $ has to be escaped
3949 via an extra $. For example:
3955 via an extra $. For example:
3950
3956
3951 In [7]: PATH='a python variable'
3957 In [7]: PATH='a python variable'
3952
3958
3953 In [8]: !echo $PATH
3959 In [8]: !echo $PATH
3954 a python variable
3960 a python variable
3955
3961
3956 In [9]: !echo $$PATH
3962 In [9]: !echo $$PATH
3957 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3963 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3958
3964
3959 (Magic.parse_options): escape $ so the shell doesn't evaluate
3965 (Magic.parse_options): escape $ so the shell doesn't evaluate
3960 things prematurely.
3966 things prematurely.
3961
3967
3962 * IPython/iplib.py (InteractiveShell.call_alias): added the
3968 * IPython/iplib.py (InteractiveShell.call_alias): added the
3963 ability for aliases to expand python variables via $.
3969 ability for aliases to expand python variables via $.
3964
3970
3965 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3971 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3966 system, now there's a @rehash/@rehashx pair of magics. These work
3972 system, now there's a @rehash/@rehashx pair of magics. These work
3967 like the csh rehash command, and can be invoked at any time. They
3973 like the csh rehash command, and can be invoked at any time. They
3968 build a table of aliases to everything in the user's $PATH
3974 build a table of aliases to everything in the user's $PATH
3969 (@rehash uses everything, @rehashx is slower but only adds
3975 (@rehash uses everything, @rehashx is slower but only adds
3970 executable files). With this, the pysh.py-based shell profile can
3976 executable files). With this, the pysh.py-based shell profile can
3971 now simply call rehash upon startup, and full access to all
3977 now simply call rehash upon startup, and full access to all
3972 programs in the user's path is obtained.
3978 programs in the user's path is obtained.
3973
3979
3974 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3980 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3975 functionality is now fully in place. I removed the old dynamic
3981 functionality is now fully in place. I removed the old dynamic
3976 code generation based approach, in favor of a much lighter one
3982 code generation based approach, in favor of a much lighter one
3977 based on a simple dict. The advantage is that this allows me to
3983 based on a simple dict. The advantage is that this allows me to
3978 now have thousands of aliases with negligible cost (unthinkable
3984 now have thousands of aliases with negligible cost (unthinkable
3979 with the old system).
3985 with the old system).
3980
3986
3981 2004-06-19 Fernando Perez <fperez@colorado.edu>
3987 2004-06-19 Fernando Perez <fperez@colorado.edu>
3982
3988
3983 * IPython/iplib.py (__init__): extended MagicCompleter class to
3989 * IPython/iplib.py (__init__): extended MagicCompleter class to
3984 also complete (last in priority) on user aliases.
3990 also complete (last in priority) on user aliases.
3985
3991
3986 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3992 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3987 call to eval.
3993 call to eval.
3988 (ItplNS.__init__): Added a new class which functions like Itpl,
3994 (ItplNS.__init__): Added a new class which functions like Itpl,
3989 but allows configuring the namespace for the evaluation to occur
3995 but allows configuring the namespace for the evaluation to occur
3990 in.
3996 in.
3991
3997
3992 2004-06-18 Fernando Perez <fperez@colorado.edu>
3998 2004-06-18 Fernando Perez <fperez@colorado.edu>
3993
3999
3994 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4000 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3995 better message when 'exit' or 'quit' are typed (a common newbie
4001 better message when 'exit' or 'quit' are typed (a common newbie
3996 confusion).
4002 confusion).
3997
4003
3998 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4004 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3999 check for Windows users.
4005 check for Windows users.
4000
4006
4001 * IPython/iplib.py (InteractiveShell.user_setup): removed
4007 * IPython/iplib.py (InteractiveShell.user_setup): removed
4002 disabling of colors for Windows. I'll test at runtime and issue a
4008 disabling of colors for Windows. I'll test at runtime and issue a
4003 warning if Gary's readline isn't found, as to nudge users to
4009 warning if Gary's readline isn't found, as to nudge users to
4004 download it.
4010 download it.
4005
4011
4006 2004-06-16 Fernando Perez <fperez@colorado.edu>
4012 2004-06-16 Fernando Perez <fperez@colorado.edu>
4007
4013
4008 * IPython/genutils.py (Stream.__init__): changed to print errors
4014 * IPython/genutils.py (Stream.__init__): changed to print errors
4009 to sys.stderr. I had a circular dependency here. Now it's
4015 to sys.stderr. I had a circular dependency here. Now it's
4010 possible to run ipython as IDLE's shell (consider this pre-alpha,
4016 possible to run ipython as IDLE's shell (consider this pre-alpha,
4011 since true stdout things end up in the starting terminal instead
4017 since true stdout things end up in the starting terminal instead
4012 of IDLE's out).
4018 of IDLE's out).
4013
4019
4014 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4020 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4015 users who haven't # updated their prompt_in2 definitions. Remove
4021 users who haven't # updated their prompt_in2 definitions. Remove
4016 eventually.
4022 eventually.
4017 (multiple_replace): added credit to original ASPN recipe.
4023 (multiple_replace): added credit to original ASPN recipe.
4018
4024
4019 2004-06-15 Fernando Perez <fperez@colorado.edu>
4025 2004-06-15 Fernando Perez <fperez@colorado.edu>
4020
4026
4021 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4027 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4022 list of auto-defined aliases.
4028 list of auto-defined aliases.
4023
4029
4024 2004-06-13 Fernando Perez <fperez@colorado.edu>
4030 2004-06-13 Fernando Perez <fperez@colorado.edu>
4025
4031
4026 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4032 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4027 install was really requested (so setup.py can be used for other
4033 install was really requested (so setup.py can be used for other
4028 things under Windows).
4034 things under Windows).
4029
4035
4030 2004-06-10 Fernando Perez <fperez@colorado.edu>
4036 2004-06-10 Fernando Perez <fperez@colorado.edu>
4031
4037
4032 * IPython/Logger.py (Logger.create_log): Manually remove any old
4038 * IPython/Logger.py (Logger.create_log): Manually remove any old
4033 backup, since os.remove may fail under Windows. Fixes bug
4039 backup, since os.remove may fail under Windows. Fixes bug
4034 reported by Thorsten.
4040 reported by Thorsten.
4035
4041
4036 2004-06-09 Fernando Perez <fperez@colorado.edu>
4042 2004-06-09 Fernando Perez <fperez@colorado.edu>
4037
4043
4038 * examples/example-embed.py: fixed all references to %n (replaced
4044 * examples/example-embed.py: fixed all references to %n (replaced
4039 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4045 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4040 for all examples and the manual as well.
4046 for all examples and the manual as well.
4041
4047
4042 2004-06-08 Fernando Perez <fperez@colorado.edu>
4048 2004-06-08 Fernando Perez <fperez@colorado.edu>
4043
4049
4044 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4050 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4045 alignment and color management. All 3 prompt subsystems now
4051 alignment and color management. All 3 prompt subsystems now
4046 inherit from BasePrompt.
4052 inherit from BasePrompt.
4047
4053
4048 * tools/release: updates for windows installer build and tag rpms
4054 * tools/release: updates for windows installer build and tag rpms
4049 with python version (since paths are fixed).
4055 with python version (since paths are fixed).
4050
4056
4051 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4057 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4052 which will become eventually obsolete. Also fixed the default
4058 which will become eventually obsolete. Also fixed the default
4053 prompt_in2 to use \D, so at least new users start with the correct
4059 prompt_in2 to use \D, so at least new users start with the correct
4054 defaults.
4060 defaults.
4055 WARNING: Users with existing ipythonrc files will need to apply
4061 WARNING: Users with existing ipythonrc files will need to apply
4056 this fix manually!
4062 this fix manually!
4057
4063
4058 * setup.py: make windows installer (.exe). This is finally the
4064 * setup.py: make windows installer (.exe). This is finally the
4059 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4065 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4060 which I hadn't included because it required Python 2.3 (or recent
4066 which I hadn't included because it required Python 2.3 (or recent
4061 distutils).
4067 distutils).
4062
4068
4063 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4069 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4064 usage of new '\D' escape.
4070 usage of new '\D' escape.
4065
4071
4066 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4072 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4067 lacks os.getuid())
4073 lacks os.getuid())
4068 (CachedOutput.set_colors): Added the ability to turn coloring
4074 (CachedOutput.set_colors): Added the ability to turn coloring
4069 on/off with @colors even for manually defined prompt colors. It
4075 on/off with @colors even for manually defined prompt colors. It
4070 uses a nasty global, but it works safely and via the generic color
4076 uses a nasty global, but it works safely and via the generic color
4071 handling mechanism.
4077 handling mechanism.
4072 (Prompt2.__init__): Introduced new escape '\D' for continuation
4078 (Prompt2.__init__): Introduced new escape '\D' for continuation
4073 prompts. It represents the counter ('\#') as dots.
4079 prompts. It represents the counter ('\#') as dots.
4074 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4080 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4075 need to update their ipythonrc files and replace '%n' with '\D' in
4081 need to update their ipythonrc files and replace '%n' with '\D' in
4076 their prompt_in2 settings everywhere. Sorry, but there's
4082 their prompt_in2 settings everywhere. Sorry, but there's
4077 otherwise no clean way to get all prompts to properly align. The
4083 otherwise no clean way to get all prompts to properly align. The
4078 ipythonrc shipped with IPython has been updated.
4084 ipythonrc shipped with IPython has been updated.
4079
4085
4080 2004-06-07 Fernando Perez <fperez@colorado.edu>
4086 2004-06-07 Fernando Perez <fperez@colorado.edu>
4081
4087
4082 * setup.py (isfile): Pass local_icons option to latex2html, so the
4088 * setup.py (isfile): Pass local_icons option to latex2html, so the
4083 resulting HTML file is self-contained. Thanks to
4089 resulting HTML file is self-contained. Thanks to
4084 dryice-AT-liu.com.cn for the tip.
4090 dryice-AT-liu.com.cn for the tip.
4085
4091
4086 * pysh.py: I created a new profile 'shell', which implements a
4092 * pysh.py: I created a new profile 'shell', which implements a
4087 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4093 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4088 system shell, nor will it become one anytime soon. It's mainly
4094 system shell, nor will it become one anytime soon. It's mainly
4089 meant to illustrate the use of the new flexible bash-like prompts.
4095 meant to illustrate the use of the new flexible bash-like prompts.
4090 I guess it could be used by hardy souls for true shell management,
4096 I guess it could be used by hardy souls for true shell management,
4091 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4097 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4092 profile. This uses the InterpreterExec extension provided by
4098 profile. This uses the InterpreterExec extension provided by
4093 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4099 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4094
4100
4095 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4101 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4096 auto-align itself with the length of the previous input prompt
4102 auto-align itself with the length of the previous input prompt
4097 (taking into account the invisible color escapes).
4103 (taking into account the invisible color escapes).
4098 (CachedOutput.__init__): Large restructuring of this class. Now
4104 (CachedOutput.__init__): Large restructuring of this class. Now
4099 all three prompts (primary1, primary2, output) are proper objects,
4105 all three prompts (primary1, primary2, output) are proper objects,
4100 managed by the 'parent' CachedOutput class. The code is still a
4106 managed by the 'parent' CachedOutput class. The code is still a
4101 bit hackish (all prompts share state via a pointer to the cache),
4107 bit hackish (all prompts share state via a pointer to the cache),
4102 but it's overall far cleaner than before.
4108 but it's overall far cleaner than before.
4103
4109
4104 * IPython/genutils.py (getoutputerror): modified to add verbose,
4110 * IPython/genutils.py (getoutputerror): modified to add verbose,
4105 debug and header options. This makes the interface of all getout*
4111 debug and header options. This makes the interface of all getout*
4106 functions uniform.
4112 functions uniform.
4107 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4113 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4108
4114
4109 * IPython/Magic.py (Magic.default_option): added a function to
4115 * IPython/Magic.py (Magic.default_option): added a function to
4110 allow registering default options for any magic command. This
4116 allow registering default options for any magic command. This
4111 makes it easy to have profiles which customize the magics globally
4117 makes it easy to have profiles which customize the magics globally
4112 for a certain use. The values set through this function are
4118 for a certain use. The values set through this function are
4113 picked up by the parse_options() method, which all magics should
4119 picked up by the parse_options() method, which all magics should
4114 use to parse their options.
4120 use to parse their options.
4115
4121
4116 * IPython/genutils.py (warn): modified the warnings framework to
4122 * IPython/genutils.py (warn): modified the warnings framework to
4117 use the Term I/O class. I'm trying to slowly unify all of
4123 use the Term I/O class. I'm trying to slowly unify all of
4118 IPython's I/O operations to pass through Term.
4124 IPython's I/O operations to pass through Term.
4119
4125
4120 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4126 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4121 the secondary prompt to correctly match the length of the primary
4127 the secondary prompt to correctly match the length of the primary
4122 one for any prompt. Now multi-line code will properly line up
4128 one for any prompt. Now multi-line code will properly line up
4123 even for path dependent prompts, such as the new ones available
4129 even for path dependent prompts, such as the new ones available
4124 via the prompt_specials.
4130 via the prompt_specials.
4125
4131
4126 2004-06-06 Fernando Perez <fperez@colorado.edu>
4132 2004-06-06 Fernando Perez <fperez@colorado.edu>
4127
4133
4128 * IPython/Prompts.py (prompt_specials): Added the ability to have
4134 * IPython/Prompts.py (prompt_specials): Added the ability to have
4129 bash-like special sequences in the prompts, which get
4135 bash-like special sequences in the prompts, which get
4130 automatically expanded. Things like hostname, current working
4136 automatically expanded. Things like hostname, current working
4131 directory and username are implemented already, but it's easy to
4137 directory and username are implemented already, but it's easy to
4132 add more in the future. Thanks to a patch by W.J. van der Laan
4138 add more in the future. Thanks to a patch by W.J. van der Laan
4133 <gnufnork-AT-hetdigitalegat.nl>
4139 <gnufnork-AT-hetdigitalegat.nl>
4134 (prompt_specials): Added color support for prompt strings, so
4140 (prompt_specials): Added color support for prompt strings, so
4135 users can define arbitrary color setups for their prompts.
4141 users can define arbitrary color setups for their prompts.
4136
4142
4137 2004-06-05 Fernando Perez <fperez@colorado.edu>
4143 2004-06-05 Fernando Perez <fperez@colorado.edu>
4138
4144
4139 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4145 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4140 code to load Gary Bishop's readline and configure it
4146 code to load Gary Bishop's readline and configure it
4141 automatically. Thanks to Gary for help on this.
4147 automatically. Thanks to Gary for help on this.
4142
4148
4143 2004-06-01 Fernando Perez <fperez@colorado.edu>
4149 2004-06-01 Fernando Perez <fperez@colorado.edu>
4144
4150
4145 * IPython/Logger.py (Logger.create_log): fix bug for logging
4151 * IPython/Logger.py (Logger.create_log): fix bug for logging
4146 with no filename (previous fix was incomplete).
4152 with no filename (previous fix was incomplete).
4147
4153
4148 2004-05-25 Fernando Perez <fperez@colorado.edu>
4154 2004-05-25 Fernando Perez <fperez@colorado.edu>
4149
4155
4150 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4156 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4151 parens would get passed to the shell.
4157 parens would get passed to the shell.
4152
4158
4153 2004-05-20 Fernando Perez <fperez@colorado.edu>
4159 2004-05-20 Fernando Perez <fperez@colorado.edu>
4154
4160
4155 * IPython/Magic.py (Magic.magic_prun): changed default profile
4161 * IPython/Magic.py (Magic.magic_prun): changed default profile
4156 sort order to 'time' (the more common profiling need).
4162 sort order to 'time' (the more common profiling need).
4157
4163
4158 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4164 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4159 so that source code shown is guaranteed in sync with the file on
4165 so that source code shown is guaranteed in sync with the file on
4160 disk (also changed in psource). Similar fix to the one for
4166 disk (also changed in psource). Similar fix to the one for
4161 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4167 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4162 <yann.ledu-AT-noos.fr>.
4168 <yann.ledu-AT-noos.fr>.
4163
4169
4164 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4170 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4165 with a single option would not be correctly parsed. Closes
4171 with a single option would not be correctly parsed. Closes
4166 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4172 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4167 introduced in 0.6.0 (on 2004-05-06).
4173 introduced in 0.6.0 (on 2004-05-06).
4168
4174
4169 2004-05-13 *** Released version 0.6.0
4175 2004-05-13 *** Released version 0.6.0
4170
4176
4171 2004-05-13 Fernando Perez <fperez@colorado.edu>
4177 2004-05-13 Fernando Perez <fperez@colorado.edu>
4172
4178
4173 * debian/: Added debian/ directory to CVS, so that debian support
4179 * debian/: Added debian/ directory to CVS, so that debian support
4174 is publicly accessible. The debian package is maintained by Jack
4180 is publicly accessible. The debian package is maintained by Jack
4175 Moffit <jack-AT-xiph.org>.
4181 Moffit <jack-AT-xiph.org>.
4176
4182
4177 * Documentation: included the notes about an ipython-based system
4183 * Documentation: included the notes about an ipython-based system
4178 shell (the hypothetical 'pysh') into the new_design.pdf document,
4184 shell (the hypothetical 'pysh') into the new_design.pdf document,
4179 so that these ideas get distributed to users along with the
4185 so that these ideas get distributed to users along with the
4180 official documentation.
4186 official documentation.
4181
4187
4182 2004-05-10 Fernando Perez <fperez@colorado.edu>
4188 2004-05-10 Fernando Perez <fperez@colorado.edu>
4183
4189
4184 * IPython/Logger.py (Logger.create_log): fix recently introduced
4190 * IPython/Logger.py (Logger.create_log): fix recently introduced
4185 bug (misindented line) where logstart would fail when not given an
4191 bug (misindented line) where logstart would fail when not given an
4186 explicit filename.
4192 explicit filename.
4187
4193
4188 2004-05-09 Fernando Perez <fperez@colorado.edu>
4194 2004-05-09 Fernando Perez <fperez@colorado.edu>
4189
4195
4190 * IPython/Magic.py (Magic.parse_options): skip system call when
4196 * IPython/Magic.py (Magic.parse_options): skip system call when
4191 there are no options to look for. Faster, cleaner for the common
4197 there are no options to look for. Faster, cleaner for the common
4192 case.
4198 case.
4193
4199
4194 * Documentation: many updates to the manual: describing Windows
4200 * Documentation: many updates to the manual: describing Windows
4195 support better, Gnuplot updates, credits, misc small stuff. Also
4201 support better, Gnuplot updates, credits, misc small stuff. Also
4196 updated the new_design doc a bit.
4202 updated the new_design doc a bit.
4197
4203
4198 2004-05-06 *** Released version 0.6.0.rc1
4204 2004-05-06 *** Released version 0.6.0.rc1
4199
4205
4200 2004-05-06 Fernando Perez <fperez@colorado.edu>
4206 2004-05-06 Fernando Perez <fperez@colorado.edu>
4201
4207
4202 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4208 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4203 operations to use the vastly more efficient list/''.join() method.
4209 operations to use the vastly more efficient list/''.join() method.
4204 (FormattedTB.text): Fix
4210 (FormattedTB.text): Fix
4205 http://www.scipy.net/roundup/ipython/issue12 - exception source
4211 http://www.scipy.net/roundup/ipython/issue12 - exception source
4206 extract not updated after reload. Thanks to Mike Salib
4212 extract not updated after reload. Thanks to Mike Salib
4207 <msalib-AT-mit.edu> for pinning the source of the problem.
4213 <msalib-AT-mit.edu> for pinning the source of the problem.
4208 Fortunately, the solution works inside ipython and doesn't require
4214 Fortunately, the solution works inside ipython and doesn't require
4209 any changes to python proper.
4215 any changes to python proper.
4210
4216
4211 * IPython/Magic.py (Magic.parse_options): Improved to process the
4217 * IPython/Magic.py (Magic.parse_options): Improved to process the
4212 argument list as a true shell would (by actually using the
4218 argument list as a true shell would (by actually using the
4213 underlying system shell). This way, all @magics automatically get
4219 underlying system shell). This way, all @magics automatically get
4214 shell expansion for variables. Thanks to a comment by Alex
4220 shell expansion for variables. Thanks to a comment by Alex
4215 Schmolck.
4221 Schmolck.
4216
4222
4217 2004-04-04 Fernando Perez <fperez@colorado.edu>
4223 2004-04-04 Fernando Perez <fperez@colorado.edu>
4218
4224
4219 * IPython/iplib.py (InteractiveShell.interact): Added a special
4225 * IPython/iplib.py (InteractiveShell.interact): Added a special
4220 trap for a debugger quit exception, which is basically impossible
4226 trap for a debugger quit exception, which is basically impossible
4221 to handle by normal mechanisms, given what pdb does to the stack.
4227 to handle by normal mechanisms, given what pdb does to the stack.
4222 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4228 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4223
4229
4224 2004-04-03 Fernando Perez <fperez@colorado.edu>
4230 2004-04-03 Fernando Perez <fperez@colorado.edu>
4225
4231
4226 * IPython/genutils.py (Term): Standardized the names of the Term
4232 * IPython/genutils.py (Term): Standardized the names of the Term
4227 class streams to cin/cout/cerr, following C++ naming conventions
4233 class streams to cin/cout/cerr, following C++ naming conventions
4228 (I can't use in/out/err because 'in' is not a valid attribute
4234 (I can't use in/out/err because 'in' is not a valid attribute
4229 name).
4235 name).
4230
4236
4231 * IPython/iplib.py (InteractiveShell.interact): don't increment
4237 * IPython/iplib.py (InteractiveShell.interact): don't increment
4232 the prompt if there's no user input. By Daniel 'Dang' Griffith
4238 the prompt if there's no user input. By Daniel 'Dang' Griffith
4233 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4239 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4234 Francois Pinard.
4240 Francois Pinard.
4235
4241
4236 2004-04-02 Fernando Perez <fperez@colorado.edu>
4242 2004-04-02 Fernando Perez <fperez@colorado.edu>
4237
4243
4238 * IPython/genutils.py (Stream.__init__): Modified to survive at
4244 * IPython/genutils.py (Stream.__init__): Modified to survive at
4239 least importing in contexts where stdin/out/err aren't true file
4245 least importing in contexts where stdin/out/err aren't true file
4240 objects, such as PyCrust (they lack fileno() and mode). However,
4246 objects, such as PyCrust (they lack fileno() and mode). However,
4241 the recovery facilities which rely on these things existing will
4247 the recovery facilities which rely on these things existing will
4242 not work.
4248 not work.
4243
4249
4244 2004-04-01 Fernando Perez <fperez@colorado.edu>
4250 2004-04-01 Fernando Perez <fperez@colorado.edu>
4245
4251
4246 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4252 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4247 use the new getoutputerror() function, so it properly
4253 use the new getoutputerror() function, so it properly
4248 distinguishes stdout/err.
4254 distinguishes stdout/err.
4249
4255
4250 * IPython/genutils.py (getoutputerror): added a function to
4256 * IPython/genutils.py (getoutputerror): added a function to
4251 capture separately the standard output and error of a command.
4257 capture separately the standard output and error of a command.
4252 After a comment from dang on the mailing lists. This code is
4258 After a comment from dang on the mailing lists. This code is
4253 basically a modified version of commands.getstatusoutput(), from
4259 basically a modified version of commands.getstatusoutput(), from
4254 the standard library.
4260 the standard library.
4255
4261
4256 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4262 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4257 '!!' as a special syntax (shorthand) to access @sx.
4263 '!!' as a special syntax (shorthand) to access @sx.
4258
4264
4259 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4265 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4260 command and return its output as a list split on '\n'.
4266 command and return its output as a list split on '\n'.
4261
4267
4262 2004-03-31 Fernando Perez <fperez@colorado.edu>
4268 2004-03-31 Fernando Perez <fperez@colorado.edu>
4263
4269
4264 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4270 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4265 method to dictionaries used as FakeModule instances if they lack
4271 method to dictionaries used as FakeModule instances if they lack
4266 it. At least pydoc in python2.3 breaks for runtime-defined
4272 it. At least pydoc in python2.3 breaks for runtime-defined
4267 functions without this hack. At some point I need to _really_
4273 functions without this hack. At some point I need to _really_
4268 understand what FakeModule is doing, because it's a gross hack.
4274 understand what FakeModule is doing, because it's a gross hack.
4269 But it solves Arnd's problem for now...
4275 But it solves Arnd's problem for now...
4270
4276
4271 2004-02-27 Fernando Perez <fperez@colorado.edu>
4277 2004-02-27 Fernando Perez <fperez@colorado.edu>
4272
4278
4273 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4279 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4274 mode would behave erratically. Also increased the number of
4280 mode would behave erratically. Also increased the number of
4275 possible logs in rotate mod to 999. Thanks to Rod Holland
4281 possible logs in rotate mod to 999. Thanks to Rod Holland
4276 <rhh@StructureLABS.com> for the report and fixes.
4282 <rhh@StructureLABS.com> for the report and fixes.
4277
4283
4278 2004-02-26 Fernando Perez <fperez@colorado.edu>
4284 2004-02-26 Fernando Perez <fperez@colorado.edu>
4279
4285
4280 * IPython/genutils.py (page): Check that the curses module really
4286 * IPython/genutils.py (page): Check that the curses module really
4281 has the initscr attribute before trying to use it. For some
4287 has the initscr attribute before trying to use it. For some
4282 reason, the Solaris curses module is missing this. I think this
4288 reason, the Solaris curses module is missing this. I think this
4283 should be considered a Solaris python bug, but I'm not sure.
4289 should be considered a Solaris python bug, but I'm not sure.
4284
4290
4285 2004-01-17 Fernando Perez <fperez@colorado.edu>
4291 2004-01-17 Fernando Perez <fperez@colorado.edu>
4286
4292
4287 * IPython/genutils.py (Stream.__init__): Changes to try to make
4293 * IPython/genutils.py (Stream.__init__): Changes to try to make
4288 ipython robust against stdin/out/err being closed by the user.
4294 ipython robust against stdin/out/err being closed by the user.
4289 This is 'user error' (and blocks a normal python session, at least
4295 This is 'user error' (and blocks a normal python session, at least
4290 the stdout case). However, Ipython should be able to survive such
4296 the stdout case). However, Ipython should be able to survive such
4291 instances of abuse as gracefully as possible. To simplify the
4297 instances of abuse as gracefully as possible. To simplify the
4292 coding and maintain compatibility with Gary Bishop's Term
4298 coding and maintain compatibility with Gary Bishop's Term
4293 contributions, I've made use of classmethods for this. I think
4299 contributions, I've made use of classmethods for this. I think
4294 this introduces a dependency on python 2.2.
4300 this introduces a dependency on python 2.2.
4295
4301
4296 2004-01-13 Fernando Perez <fperez@colorado.edu>
4302 2004-01-13 Fernando Perez <fperez@colorado.edu>
4297
4303
4298 * IPython/numutils.py (exp_safe): simplified the code a bit and
4304 * IPython/numutils.py (exp_safe): simplified the code a bit and
4299 removed the need for importing the kinds module altogether.
4305 removed the need for importing the kinds module altogether.
4300
4306
4301 2004-01-06 Fernando Perez <fperez@colorado.edu>
4307 2004-01-06 Fernando Perez <fperez@colorado.edu>
4302
4308
4303 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4309 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4304 a magic function instead, after some community feedback. No
4310 a magic function instead, after some community feedback. No
4305 special syntax will exist for it, but its name is deliberately
4311 special syntax will exist for it, but its name is deliberately
4306 very short.
4312 very short.
4307
4313
4308 2003-12-20 Fernando Perez <fperez@colorado.edu>
4314 2003-12-20 Fernando Perez <fperez@colorado.edu>
4309
4315
4310 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4316 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4311 new functionality, to automagically assign the result of a shell
4317 new functionality, to automagically assign the result of a shell
4312 command to a variable. I'll solicit some community feedback on
4318 command to a variable. I'll solicit some community feedback on
4313 this before making it permanent.
4319 this before making it permanent.
4314
4320
4315 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4321 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4316 requested about callables for which inspect couldn't obtain a
4322 requested about callables for which inspect couldn't obtain a
4317 proper argspec. Thanks to a crash report sent by Etienne
4323 proper argspec. Thanks to a crash report sent by Etienne
4318 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4324 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4319
4325
4320 2003-12-09 Fernando Perez <fperez@colorado.edu>
4326 2003-12-09 Fernando Perez <fperez@colorado.edu>
4321
4327
4322 * IPython/genutils.py (page): patch for the pager to work across
4328 * IPython/genutils.py (page): patch for the pager to work across
4323 various versions of Windows. By Gary Bishop.
4329 various versions of Windows. By Gary Bishop.
4324
4330
4325 2003-12-04 Fernando Perez <fperez@colorado.edu>
4331 2003-12-04 Fernando Perez <fperez@colorado.edu>
4326
4332
4327 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4333 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4328 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4334 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4329 While I tested this and it looks ok, there may still be corner
4335 While I tested this and it looks ok, there may still be corner
4330 cases I've missed.
4336 cases I've missed.
4331
4337
4332 2003-12-01 Fernando Perez <fperez@colorado.edu>
4338 2003-12-01 Fernando Perez <fperez@colorado.edu>
4333
4339
4334 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4340 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4335 where a line like 'p,q=1,2' would fail because the automagic
4341 where a line like 'p,q=1,2' would fail because the automagic
4336 system would be triggered for @p.
4342 system would be triggered for @p.
4337
4343
4338 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4344 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4339 cleanups, code unmodified.
4345 cleanups, code unmodified.
4340
4346
4341 * IPython/genutils.py (Term): added a class for IPython to handle
4347 * IPython/genutils.py (Term): added a class for IPython to handle
4342 output. In most cases it will just be a proxy for stdout/err, but
4348 output. In most cases it will just be a proxy for stdout/err, but
4343 having this allows modifications to be made for some platforms,
4349 having this allows modifications to be made for some platforms,
4344 such as handling color escapes under Windows. All of this code
4350 such as handling color escapes under Windows. All of this code
4345 was contributed by Gary Bishop, with minor modifications by me.
4351 was contributed by Gary Bishop, with minor modifications by me.
4346 The actual changes affect many files.
4352 The actual changes affect many files.
4347
4353
4348 2003-11-30 Fernando Perez <fperez@colorado.edu>
4354 2003-11-30 Fernando Perez <fperez@colorado.edu>
4349
4355
4350 * IPython/iplib.py (file_matches): new completion code, courtesy
4356 * IPython/iplib.py (file_matches): new completion code, courtesy
4351 of Jeff Collins. This enables filename completion again under
4357 of Jeff Collins. This enables filename completion again under
4352 python 2.3, which disabled it at the C level.
4358 python 2.3, which disabled it at the C level.
4353
4359
4354 2003-11-11 Fernando Perez <fperez@colorado.edu>
4360 2003-11-11 Fernando Perez <fperez@colorado.edu>
4355
4361
4356 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4362 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4357 for Numeric.array(map(...)), but often convenient.
4363 for Numeric.array(map(...)), but often convenient.
4358
4364
4359 2003-11-05 Fernando Perez <fperez@colorado.edu>
4365 2003-11-05 Fernando Perez <fperez@colorado.edu>
4360
4366
4361 * IPython/numutils.py (frange): Changed a call from int() to
4367 * IPython/numutils.py (frange): Changed a call from int() to
4362 int(round()) to prevent a problem reported with arange() in the
4368 int(round()) to prevent a problem reported with arange() in the
4363 numpy list.
4369 numpy list.
4364
4370
4365 2003-10-06 Fernando Perez <fperez@colorado.edu>
4371 2003-10-06 Fernando Perez <fperez@colorado.edu>
4366
4372
4367 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4373 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4368 prevent crashes if sys lacks an argv attribute (it happens with
4374 prevent crashes if sys lacks an argv attribute (it happens with
4369 embedded interpreters which build a bare-bones sys module).
4375 embedded interpreters which build a bare-bones sys module).
4370 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4376 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4371
4377
4372 2003-09-24 Fernando Perez <fperez@colorado.edu>
4378 2003-09-24 Fernando Perez <fperez@colorado.edu>
4373
4379
4374 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4380 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4375 to protect against poorly written user objects where __getattr__
4381 to protect against poorly written user objects where __getattr__
4376 raises exceptions other than AttributeError. Thanks to a bug
4382 raises exceptions other than AttributeError. Thanks to a bug
4377 report by Oliver Sander <osander-AT-gmx.de>.
4383 report by Oliver Sander <osander-AT-gmx.de>.
4378
4384
4379 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4385 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4380 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4386 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4381
4387
4382 2003-09-09 Fernando Perez <fperez@colorado.edu>
4388 2003-09-09 Fernando Perez <fperez@colorado.edu>
4383
4389
4384 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4390 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4385 unpacking a list whith a callable as first element would
4391 unpacking a list whith a callable as first element would
4386 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4392 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4387 Collins.
4393 Collins.
4388
4394
4389 2003-08-25 *** Released version 0.5.0
4395 2003-08-25 *** Released version 0.5.0
4390
4396
4391 2003-08-22 Fernando Perez <fperez@colorado.edu>
4397 2003-08-22 Fernando Perez <fperez@colorado.edu>
4392
4398
4393 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4399 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4394 improperly defined user exceptions. Thanks to feedback from Mark
4400 improperly defined user exceptions. Thanks to feedback from Mark
4395 Russell <mrussell-AT-verio.net>.
4401 Russell <mrussell-AT-verio.net>.
4396
4402
4397 2003-08-20 Fernando Perez <fperez@colorado.edu>
4403 2003-08-20 Fernando Perez <fperez@colorado.edu>
4398
4404
4399 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4405 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4400 printing so that it would print multi-line string forms starting
4406 printing so that it would print multi-line string forms starting
4401 with a new line. This way the formatting is better respected for
4407 with a new line. This way the formatting is better respected for
4402 objects which work hard to make nice string forms.
4408 objects which work hard to make nice string forms.
4403
4409
4404 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4410 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4405 autocall would overtake data access for objects with both
4411 autocall would overtake data access for objects with both
4406 __getitem__ and __call__.
4412 __getitem__ and __call__.
4407
4413
4408 2003-08-19 *** Released version 0.5.0-rc1
4414 2003-08-19 *** Released version 0.5.0-rc1
4409
4415
4410 2003-08-19 Fernando Perez <fperez@colorado.edu>
4416 2003-08-19 Fernando Perez <fperez@colorado.edu>
4411
4417
4412 * IPython/deep_reload.py (load_tail): single tiny change here
4418 * IPython/deep_reload.py (load_tail): single tiny change here
4413 seems to fix the long-standing bug of dreload() failing to work
4419 seems to fix the long-standing bug of dreload() failing to work
4414 for dotted names. But this module is pretty tricky, so I may have
4420 for dotted names. But this module is pretty tricky, so I may have
4415 missed some subtlety. Needs more testing!.
4421 missed some subtlety. Needs more testing!.
4416
4422
4417 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4423 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4418 exceptions which have badly implemented __str__ methods.
4424 exceptions which have badly implemented __str__ methods.
4419 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4425 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4420 which I've been getting reports about from Python 2.3 users. I
4426 which I've been getting reports about from Python 2.3 users. I
4421 wish I had a simple test case to reproduce the problem, so I could
4427 wish I had a simple test case to reproduce the problem, so I could
4422 either write a cleaner workaround or file a bug report if
4428 either write a cleaner workaround or file a bug report if
4423 necessary.
4429 necessary.
4424
4430
4425 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4431 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4426 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4432 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4427 a bug report by Tjabo Kloppenburg.
4433 a bug report by Tjabo Kloppenburg.
4428
4434
4429 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4435 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4430 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4436 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4431 seems rather unstable. Thanks to a bug report by Tjabo
4437 seems rather unstable. Thanks to a bug report by Tjabo
4432 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4438 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4433
4439
4434 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4440 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4435 this out soon because of the critical fixes in the inner loop for
4441 this out soon because of the critical fixes in the inner loop for
4436 generators.
4442 generators.
4437
4443
4438 * IPython/Magic.py (Magic.getargspec): removed. This (and
4444 * IPython/Magic.py (Magic.getargspec): removed. This (and
4439 _get_def) have been obsoleted by OInspect for a long time, I
4445 _get_def) have been obsoleted by OInspect for a long time, I
4440 hadn't noticed that they were dead code.
4446 hadn't noticed that they were dead code.
4441 (Magic._ofind): restored _ofind functionality for a few literals
4447 (Magic._ofind): restored _ofind functionality for a few literals
4442 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4448 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4443 for things like "hello".capitalize?, since that would require a
4449 for things like "hello".capitalize?, since that would require a
4444 potentially dangerous eval() again.
4450 potentially dangerous eval() again.
4445
4451
4446 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4452 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4447 logic a bit more to clean up the escapes handling and minimize the
4453 logic a bit more to clean up the escapes handling and minimize the
4448 use of _ofind to only necessary cases. The interactive 'feel' of
4454 use of _ofind to only necessary cases. The interactive 'feel' of
4449 IPython should have improved quite a bit with the changes in
4455 IPython should have improved quite a bit with the changes in
4450 _prefilter and _ofind (besides being far safer than before).
4456 _prefilter and _ofind (besides being far safer than before).
4451
4457
4452 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4458 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4453 obscure, never reported). Edit would fail to find the object to
4459 obscure, never reported). Edit would fail to find the object to
4454 edit under some circumstances.
4460 edit under some circumstances.
4455 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4461 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4456 which were causing double-calling of generators. Those eval calls
4462 which were causing double-calling of generators. Those eval calls
4457 were _very_ dangerous, since code with side effects could be
4463 were _very_ dangerous, since code with side effects could be
4458 triggered. As they say, 'eval is evil'... These were the
4464 triggered. As they say, 'eval is evil'... These were the
4459 nastiest evals in IPython. Besides, _ofind is now far simpler,
4465 nastiest evals in IPython. Besides, _ofind is now far simpler,
4460 and it should also be quite a bit faster. Its use of inspect is
4466 and it should also be quite a bit faster. Its use of inspect is
4461 also safer, so perhaps some of the inspect-related crashes I've
4467 also safer, so perhaps some of the inspect-related crashes I've
4462 seen lately with Python 2.3 might be taken care of. That will
4468 seen lately with Python 2.3 might be taken care of. That will
4463 need more testing.
4469 need more testing.
4464
4470
4465 2003-08-17 Fernando Perez <fperez@colorado.edu>
4471 2003-08-17 Fernando Perez <fperez@colorado.edu>
4466
4472
4467 * IPython/iplib.py (InteractiveShell._prefilter): significant
4473 * IPython/iplib.py (InteractiveShell._prefilter): significant
4468 simplifications to the logic for handling user escapes. Faster
4474 simplifications to the logic for handling user escapes. Faster
4469 and simpler code.
4475 and simpler code.
4470
4476
4471 2003-08-14 Fernando Perez <fperez@colorado.edu>
4477 2003-08-14 Fernando Perez <fperez@colorado.edu>
4472
4478
4473 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4479 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4474 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4480 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4475 but it should be quite a bit faster. And the recursive version
4481 but it should be quite a bit faster. And the recursive version
4476 generated O(log N) intermediate storage for all rank>1 arrays,
4482 generated O(log N) intermediate storage for all rank>1 arrays,
4477 even if they were contiguous.
4483 even if they were contiguous.
4478 (l1norm): Added this function.
4484 (l1norm): Added this function.
4479 (norm): Added this function for arbitrary norms (including
4485 (norm): Added this function for arbitrary norms (including
4480 l-infinity). l1 and l2 are still special cases for convenience
4486 l-infinity). l1 and l2 are still special cases for convenience
4481 and speed.
4487 and speed.
4482
4488
4483 2003-08-03 Fernando Perez <fperez@colorado.edu>
4489 2003-08-03 Fernando Perez <fperez@colorado.edu>
4484
4490
4485 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4491 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4486 exceptions, which now raise PendingDeprecationWarnings in Python
4492 exceptions, which now raise PendingDeprecationWarnings in Python
4487 2.3. There were some in Magic and some in Gnuplot2.
4493 2.3. There were some in Magic and some in Gnuplot2.
4488
4494
4489 2003-06-30 Fernando Perez <fperez@colorado.edu>
4495 2003-06-30 Fernando Perez <fperez@colorado.edu>
4490
4496
4491 * IPython/genutils.py (page): modified to call curses only for
4497 * IPython/genutils.py (page): modified to call curses only for
4492 terminals where TERM=='xterm'. After problems under many other
4498 terminals where TERM=='xterm'. After problems under many other
4493 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4499 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4494
4500
4495 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4501 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4496 would be triggered when readline was absent. This was just an old
4502 would be triggered when readline was absent. This was just an old
4497 debugging statement I'd forgotten to take out.
4503 debugging statement I'd forgotten to take out.
4498
4504
4499 2003-06-20 Fernando Perez <fperez@colorado.edu>
4505 2003-06-20 Fernando Perez <fperez@colorado.edu>
4500
4506
4501 * IPython/genutils.py (clock): modified to return only user time
4507 * IPython/genutils.py (clock): modified to return only user time
4502 (not counting system time), after a discussion on scipy. While
4508 (not counting system time), after a discussion on scipy. While
4503 system time may be a useful quantity occasionally, it may much
4509 system time may be a useful quantity occasionally, it may much
4504 more easily be skewed by occasional swapping or other similar
4510 more easily be skewed by occasional swapping or other similar
4505 activity.
4511 activity.
4506
4512
4507 2003-06-05 Fernando Perez <fperez@colorado.edu>
4513 2003-06-05 Fernando Perez <fperez@colorado.edu>
4508
4514
4509 * IPython/numutils.py (identity): new function, for building
4515 * IPython/numutils.py (identity): new function, for building
4510 arbitrary rank Kronecker deltas (mostly backwards compatible with
4516 arbitrary rank Kronecker deltas (mostly backwards compatible with
4511 Numeric.identity)
4517 Numeric.identity)
4512
4518
4513 2003-06-03 Fernando Perez <fperez@colorado.edu>
4519 2003-06-03 Fernando Perez <fperez@colorado.edu>
4514
4520
4515 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4521 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4516 arguments passed to magics with spaces, to allow trailing '\' to
4522 arguments passed to magics with spaces, to allow trailing '\' to
4517 work normally (mainly for Windows users).
4523 work normally (mainly for Windows users).
4518
4524
4519 2003-05-29 Fernando Perez <fperez@colorado.edu>
4525 2003-05-29 Fernando Perez <fperez@colorado.edu>
4520
4526
4521 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4527 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4522 instead of pydoc.help. This fixes a bizarre behavior where
4528 instead of pydoc.help. This fixes a bizarre behavior where
4523 printing '%s' % locals() would trigger the help system. Now
4529 printing '%s' % locals() would trigger the help system. Now
4524 ipython behaves like normal python does.
4530 ipython behaves like normal python does.
4525
4531
4526 Note that if one does 'from pydoc import help', the bizarre
4532 Note that if one does 'from pydoc import help', the bizarre
4527 behavior returns, but this will also happen in normal python, so
4533 behavior returns, but this will also happen in normal python, so
4528 it's not an ipython bug anymore (it has to do with how pydoc.help
4534 it's not an ipython bug anymore (it has to do with how pydoc.help
4529 is implemented).
4535 is implemented).
4530
4536
4531 2003-05-22 Fernando Perez <fperez@colorado.edu>
4537 2003-05-22 Fernando Perez <fperez@colorado.edu>
4532
4538
4533 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4539 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4534 return [] instead of None when nothing matches, also match to end
4540 return [] instead of None when nothing matches, also match to end
4535 of line. Patch by Gary Bishop.
4541 of line. Patch by Gary Bishop.
4536
4542
4537 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4543 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4538 protection as before, for files passed on the command line. This
4544 protection as before, for files passed on the command line. This
4539 prevents the CrashHandler from kicking in if user files call into
4545 prevents the CrashHandler from kicking in if user files call into
4540 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4546 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4541 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4547 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4542
4548
4543 2003-05-20 *** Released version 0.4.0
4549 2003-05-20 *** Released version 0.4.0
4544
4550
4545 2003-05-20 Fernando Perez <fperez@colorado.edu>
4551 2003-05-20 Fernando Perez <fperez@colorado.edu>
4546
4552
4547 * setup.py: added support for manpages. It's a bit hackish b/c of
4553 * setup.py: added support for manpages. It's a bit hackish b/c of
4548 a bug in the way the bdist_rpm distutils target handles gzipped
4554 a bug in the way the bdist_rpm distutils target handles gzipped
4549 manpages, but it works. After a patch by Jack.
4555 manpages, but it works. After a patch by Jack.
4550
4556
4551 2003-05-19 Fernando Perez <fperez@colorado.edu>
4557 2003-05-19 Fernando Perez <fperez@colorado.edu>
4552
4558
4553 * IPython/numutils.py: added a mockup of the kinds module, since
4559 * IPython/numutils.py: added a mockup of the kinds module, since
4554 it was recently removed from Numeric. This way, numutils will
4560 it was recently removed from Numeric. This way, numutils will
4555 work for all users even if they are missing kinds.
4561 work for all users even if they are missing kinds.
4556
4562
4557 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4563 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4558 failure, which can occur with SWIG-wrapped extensions. After a
4564 failure, which can occur with SWIG-wrapped extensions. After a
4559 crash report from Prabhu.
4565 crash report from Prabhu.
4560
4566
4561 2003-05-16 Fernando Perez <fperez@colorado.edu>
4567 2003-05-16 Fernando Perez <fperez@colorado.edu>
4562
4568
4563 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4569 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4564 protect ipython from user code which may call directly
4570 protect ipython from user code which may call directly
4565 sys.excepthook (this looks like an ipython crash to the user, even
4571 sys.excepthook (this looks like an ipython crash to the user, even
4566 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4572 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4567 This is especially important to help users of WxWindows, but may
4573 This is especially important to help users of WxWindows, but may
4568 also be useful in other cases.
4574 also be useful in other cases.
4569
4575
4570 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4576 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4571 an optional tb_offset to be specified, and to preserve exception
4577 an optional tb_offset to be specified, and to preserve exception
4572 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4578 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4573
4579
4574 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4580 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4575
4581
4576 2003-05-15 Fernando Perez <fperez@colorado.edu>
4582 2003-05-15 Fernando Perez <fperez@colorado.edu>
4577
4583
4578 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4584 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4579 installing for a new user under Windows.
4585 installing for a new user under Windows.
4580
4586
4581 2003-05-12 Fernando Perez <fperez@colorado.edu>
4587 2003-05-12 Fernando Perez <fperez@colorado.edu>
4582
4588
4583 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4589 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4584 handler for Emacs comint-based lines. Currently it doesn't do
4590 handler for Emacs comint-based lines. Currently it doesn't do
4585 much (but importantly, it doesn't update the history cache). In
4591 much (but importantly, it doesn't update the history cache). In
4586 the future it may be expanded if Alex needs more functionality
4592 the future it may be expanded if Alex needs more functionality
4587 there.
4593 there.
4588
4594
4589 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4595 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4590 info to crash reports.
4596 info to crash reports.
4591
4597
4592 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4598 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4593 just like Python's -c. Also fixed crash with invalid -color
4599 just like Python's -c. Also fixed crash with invalid -color
4594 option value at startup. Thanks to Will French
4600 option value at startup. Thanks to Will French
4595 <wfrench-AT-bestweb.net> for the bug report.
4601 <wfrench-AT-bestweb.net> for the bug report.
4596
4602
4597 2003-05-09 Fernando Perez <fperez@colorado.edu>
4603 2003-05-09 Fernando Perez <fperez@colorado.edu>
4598
4604
4599 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4605 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4600 to EvalDict (it's a mapping, after all) and simplified its code
4606 to EvalDict (it's a mapping, after all) and simplified its code
4601 quite a bit, after a nice discussion on c.l.py where Gustavo
4607 quite a bit, after a nice discussion on c.l.py where Gustavo
4602 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4608 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4603
4609
4604 2003-04-30 Fernando Perez <fperez@colorado.edu>
4610 2003-04-30 Fernando Perez <fperez@colorado.edu>
4605
4611
4606 * IPython/genutils.py (timings_out): modified it to reduce its
4612 * IPython/genutils.py (timings_out): modified it to reduce its
4607 overhead in the common reps==1 case.
4613 overhead in the common reps==1 case.
4608
4614
4609 2003-04-29 Fernando Perez <fperez@colorado.edu>
4615 2003-04-29 Fernando Perez <fperez@colorado.edu>
4610
4616
4611 * IPython/genutils.py (timings_out): Modified to use the resource
4617 * IPython/genutils.py (timings_out): Modified to use the resource
4612 module, which avoids the wraparound problems of time.clock().
4618 module, which avoids the wraparound problems of time.clock().
4613
4619
4614 2003-04-17 *** Released version 0.2.15pre4
4620 2003-04-17 *** Released version 0.2.15pre4
4615
4621
4616 2003-04-17 Fernando Perez <fperez@colorado.edu>
4622 2003-04-17 Fernando Perez <fperez@colorado.edu>
4617
4623
4618 * setup.py (scriptfiles): Split windows-specific stuff over to a
4624 * setup.py (scriptfiles): Split windows-specific stuff over to a
4619 separate file, in an attempt to have a Windows GUI installer.
4625 separate file, in an attempt to have a Windows GUI installer.
4620 That didn't work, but part of the groundwork is done.
4626 That didn't work, but part of the groundwork is done.
4621
4627
4622 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4628 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4623 indent/unindent with 4 spaces. Particularly useful in combination
4629 indent/unindent with 4 spaces. Particularly useful in combination
4624 with the new auto-indent option.
4630 with the new auto-indent option.
4625
4631
4626 2003-04-16 Fernando Perez <fperez@colorado.edu>
4632 2003-04-16 Fernando Perez <fperez@colorado.edu>
4627
4633
4628 * IPython/Magic.py: various replacements of self.rc for
4634 * IPython/Magic.py: various replacements of self.rc for
4629 self.shell.rc. A lot more remains to be done to fully disentangle
4635 self.shell.rc. A lot more remains to be done to fully disentangle
4630 this class from the main Shell class.
4636 this class from the main Shell class.
4631
4637
4632 * IPython/GnuplotRuntime.py: added checks for mouse support so
4638 * IPython/GnuplotRuntime.py: added checks for mouse support so
4633 that we don't try to enable it if the current gnuplot doesn't
4639 that we don't try to enable it if the current gnuplot doesn't
4634 really support it. Also added checks so that we don't try to
4640 really support it. Also added checks so that we don't try to
4635 enable persist under Windows (where Gnuplot doesn't recognize the
4641 enable persist under Windows (where Gnuplot doesn't recognize the
4636 option).
4642 option).
4637
4643
4638 * IPython/iplib.py (InteractiveShell.interact): Added optional
4644 * IPython/iplib.py (InteractiveShell.interact): Added optional
4639 auto-indenting code, after a patch by King C. Shu
4645 auto-indenting code, after a patch by King C. Shu
4640 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4646 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4641 get along well with pasting indented code. If I ever figure out
4647 get along well with pasting indented code. If I ever figure out
4642 how to make that part go well, it will become on by default.
4648 how to make that part go well, it will become on by default.
4643
4649
4644 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4650 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4645 crash ipython if there was an unmatched '%' in the user's prompt
4651 crash ipython if there was an unmatched '%' in the user's prompt
4646 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4652 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4647
4653
4648 * IPython/iplib.py (InteractiveShell.interact): removed the
4654 * IPython/iplib.py (InteractiveShell.interact): removed the
4649 ability to ask the user whether he wants to crash or not at the
4655 ability to ask the user whether he wants to crash or not at the
4650 'last line' exception handler. Calling functions at that point
4656 'last line' exception handler. Calling functions at that point
4651 changes the stack, and the error reports would have incorrect
4657 changes the stack, and the error reports would have incorrect
4652 tracebacks.
4658 tracebacks.
4653
4659
4654 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4660 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4655 pass through a peger a pretty-printed form of any object. After a
4661 pass through a peger a pretty-printed form of any object. After a
4656 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4662 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4657
4663
4658 2003-04-14 Fernando Perez <fperez@colorado.edu>
4664 2003-04-14 Fernando Perez <fperez@colorado.edu>
4659
4665
4660 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4666 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4661 all files in ~ would be modified at first install (instead of
4667 all files in ~ would be modified at first install (instead of
4662 ~/.ipython). This could be potentially disastrous, as the
4668 ~/.ipython). This could be potentially disastrous, as the
4663 modification (make line-endings native) could damage binary files.
4669 modification (make line-endings native) could damage binary files.
4664
4670
4665 2003-04-10 Fernando Perez <fperez@colorado.edu>
4671 2003-04-10 Fernando Perez <fperez@colorado.edu>
4666
4672
4667 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4673 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4668 handle only lines which are invalid python. This now means that
4674 handle only lines which are invalid python. This now means that
4669 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4675 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4670 for the bug report.
4676 for the bug report.
4671
4677
4672 2003-04-01 Fernando Perez <fperez@colorado.edu>
4678 2003-04-01 Fernando Perez <fperez@colorado.edu>
4673
4679
4674 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4680 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4675 where failing to set sys.last_traceback would crash pdb.pm().
4681 where failing to set sys.last_traceback would crash pdb.pm().
4676 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4682 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4677 report.
4683 report.
4678
4684
4679 2003-03-25 Fernando Perez <fperez@colorado.edu>
4685 2003-03-25 Fernando Perez <fperez@colorado.edu>
4680
4686
4681 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4687 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4682 before printing it (it had a lot of spurious blank lines at the
4688 before printing it (it had a lot of spurious blank lines at the
4683 end).
4689 end).
4684
4690
4685 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4691 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4686 output would be sent 21 times! Obviously people don't use this
4692 output would be sent 21 times! Obviously people don't use this
4687 too often, or I would have heard about it.
4693 too often, or I would have heard about it.
4688
4694
4689 2003-03-24 Fernando Perez <fperez@colorado.edu>
4695 2003-03-24 Fernando Perez <fperez@colorado.edu>
4690
4696
4691 * setup.py (scriptfiles): renamed the data_files parameter from
4697 * setup.py (scriptfiles): renamed the data_files parameter from
4692 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4698 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4693 for the patch.
4699 for the patch.
4694
4700
4695 2003-03-20 Fernando Perez <fperez@colorado.edu>
4701 2003-03-20 Fernando Perez <fperez@colorado.edu>
4696
4702
4697 * IPython/genutils.py (error): added error() and fatal()
4703 * IPython/genutils.py (error): added error() and fatal()
4698 functions.
4704 functions.
4699
4705
4700 2003-03-18 *** Released version 0.2.15pre3
4706 2003-03-18 *** Released version 0.2.15pre3
4701
4707
4702 2003-03-18 Fernando Perez <fperez@colorado.edu>
4708 2003-03-18 Fernando Perez <fperez@colorado.edu>
4703
4709
4704 * setupext/install_data_ext.py
4710 * setupext/install_data_ext.py
4705 (install_data_ext.initialize_options): Class contributed by Jack
4711 (install_data_ext.initialize_options): Class contributed by Jack
4706 Moffit for fixing the old distutils hack. He is sending this to
4712 Moffit for fixing the old distutils hack. He is sending this to
4707 the distutils folks so in the future we may not need it as a
4713 the distutils folks so in the future we may not need it as a
4708 private fix.
4714 private fix.
4709
4715
4710 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4716 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4711 changes for Debian packaging. See his patch for full details.
4717 changes for Debian packaging. See his patch for full details.
4712 The old distutils hack of making the ipythonrc* files carry a
4718 The old distutils hack of making the ipythonrc* files carry a
4713 bogus .py extension is gone, at last. Examples were moved to a
4719 bogus .py extension is gone, at last. Examples were moved to a
4714 separate subdir under doc/, and the separate executable scripts
4720 separate subdir under doc/, and the separate executable scripts
4715 now live in their own directory. Overall a great cleanup. The
4721 now live in their own directory. Overall a great cleanup. The
4716 manual was updated to use the new files, and setup.py has been
4722 manual was updated to use the new files, and setup.py has been
4717 fixed for this setup.
4723 fixed for this setup.
4718
4724
4719 * IPython/PyColorize.py (Parser.usage): made non-executable and
4725 * IPython/PyColorize.py (Parser.usage): made non-executable and
4720 created a pycolor wrapper around it to be included as a script.
4726 created a pycolor wrapper around it to be included as a script.
4721
4727
4722 2003-03-12 *** Released version 0.2.15pre2
4728 2003-03-12 *** Released version 0.2.15pre2
4723
4729
4724 2003-03-12 Fernando Perez <fperez@colorado.edu>
4730 2003-03-12 Fernando Perez <fperez@colorado.edu>
4725
4731
4726 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4732 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4727 long-standing problem with garbage characters in some terminals.
4733 long-standing problem with garbage characters in some terminals.
4728 The issue was really that the \001 and \002 escapes must _only_ be
4734 The issue was really that the \001 and \002 escapes must _only_ be
4729 passed to input prompts (which call readline), but _never_ to
4735 passed to input prompts (which call readline), but _never_ to
4730 normal text to be printed on screen. I changed ColorANSI to have
4736 normal text to be printed on screen. I changed ColorANSI to have
4731 two classes: TermColors and InputTermColors, each with the
4737 two classes: TermColors and InputTermColors, each with the
4732 appropriate escapes for input prompts or normal text. The code in
4738 appropriate escapes for input prompts or normal text. The code in
4733 Prompts.py got slightly more complicated, but this very old and
4739 Prompts.py got slightly more complicated, but this very old and
4734 annoying bug is finally fixed.
4740 annoying bug is finally fixed.
4735
4741
4736 All the credit for nailing down the real origin of this problem
4742 All the credit for nailing down the real origin of this problem
4737 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4743 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4738 *Many* thanks to him for spending quite a bit of effort on this.
4744 *Many* thanks to him for spending quite a bit of effort on this.
4739
4745
4740 2003-03-05 *** Released version 0.2.15pre1
4746 2003-03-05 *** Released version 0.2.15pre1
4741
4747
4742 2003-03-03 Fernando Perez <fperez@colorado.edu>
4748 2003-03-03 Fernando Perez <fperez@colorado.edu>
4743
4749
4744 * IPython/FakeModule.py: Moved the former _FakeModule to a
4750 * IPython/FakeModule.py: Moved the former _FakeModule to a
4745 separate file, because it's also needed by Magic (to fix a similar
4751 separate file, because it's also needed by Magic (to fix a similar
4746 pickle-related issue in @run).
4752 pickle-related issue in @run).
4747
4753
4748 2003-03-02 Fernando Perez <fperez@colorado.edu>
4754 2003-03-02 Fernando Perez <fperez@colorado.edu>
4749
4755
4750 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4756 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4751 the autocall option at runtime.
4757 the autocall option at runtime.
4752 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4758 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4753 across Magic.py to start separating Magic from InteractiveShell.
4759 across Magic.py to start separating Magic from InteractiveShell.
4754 (Magic._ofind): Fixed to return proper namespace for dotted
4760 (Magic._ofind): Fixed to return proper namespace for dotted
4755 names. Before, a dotted name would always return 'not currently
4761 names. Before, a dotted name would always return 'not currently
4756 defined', because it would find the 'parent'. s.x would be found,
4762 defined', because it would find the 'parent'. s.x would be found,
4757 but since 'x' isn't defined by itself, it would get confused.
4763 but since 'x' isn't defined by itself, it would get confused.
4758 (Magic.magic_run): Fixed pickling problems reported by Ralf
4764 (Magic.magic_run): Fixed pickling problems reported by Ralf
4759 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4765 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4760 that I'd used when Mike Heeter reported similar issues at the
4766 that I'd used when Mike Heeter reported similar issues at the
4761 top-level, but now for @run. It boils down to injecting the
4767 top-level, but now for @run. It boils down to injecting the
4762 namespace where code is being executed with something that looks
4768 namespace where code is being executed with something that looks
4763 enough like a module to fool pickle.dump(). Since a pickle stores
4769 enough like a module to fool pickle.dump(). Since a pickle stores
4764 a named reference to the importing module, we need this for
4770 a named reference to the importing module, we need this for
4765 pickles to save something sensible.
4771 pickles to save something sensible.
4766
4772
4767 * IPython/ipmaker.py (make_IPython): added an autocall option.
4773 * IPython/ipmaker.py (make_IPython): added an autocall option.
4768
4774
4769 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4775 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4770 the auto-eval code. Now autocalling is an option, and the code is
4776 the auto-eval code. Now autocalling is an option, and the code is
4771 also vastly safer. There is no more eval() involved at all.
4777 also vastly safer. There is no more eval() involved at all.
4772
4778
4773 2003-03-01 Fernando Perez <fperez@colorado.edu>
4779 2003-03-01 Fernando Perez <fperez@colorado.edu>
4774
4780
4775 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4781 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4776 dict with named keys instead of a tuple.
4782 dict with named keys instead of a tuple.
4777
4783
4778 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4784 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4779
4785
4780 * setup.py (make_shortcut): Fixed message about directories
4786 * setup.py (make_shortcut): Fixed message about directories
4781 created during Windows installation (the directories were ok, just
4787 created during Windows installation (the directories were ok, just
4782 the printed message was misleading). Thanks to Chris Liechti
4788 the printed message was misleading). Thanks to Chris Liechti
4783 <cliechti-AT-gmx.net> for the heads up.
4789 <cliechti-AT-gmx.net> for the heads up.
4784
4790
4785 2003-02-21 Fernando Perez <fperez@colorado.edu>
4791 2003-02-21 Fernando Perez <fperez@colorado.edu>
4786
4792
4787 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4793 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4788 of ValueError exception when checking for auto-execution. This
4794 of ValueError exception when checking for auto-execution. This
4789 one is raised by things like Numeric arrays arr.flat when the
4795 one is raised by things like Numeric arrays arr.flat when the
4790 array is non-contiguous.
4796 array is non-contiguous.
4791
4797
4792 2003-01-31 Fernando Perez <fperez@colorado.edu>
4798 2003-01-31 Fernando Perez <fperez@colorado.edu>
4793
4799
4794 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4800 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4795 not return any value at all (even though the command would get
4801 not return any value at all (even though the command would get
4796 executed).
4802 executed).
4797 (xsys): Flush stdout right after printing the command to ensure
4803 (xsys): Flush stdout right after printing the command to ensure
4798 proper ordering of commands and command output in the total
4804 proper ordering of commands and command output in the total
4799 output.
4805 output.
4800 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4806 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4801 system/getoutput as defaults. The old ones are kept for
4807 system/getoutput as defaults. The old ones are kept for
4802 compatibility reasons, so no code which uses this library needs
4808 compatibility reasons, so no code which uses this library needs
4803 changing.
4809 changing.
4804
4810
4805 2003-01-27 *** Released version 0.2.14
4811 2003-01-27 *** Released version 0.2.14
4806
4812
4807 2003-01-25 Fernando Perez <fperez@colorado.edu>
4813 2003-01-25 Fernando Perez <fperez@colorado.edu>
4808
4814
4809 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4815 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4810 functions defined in previous edit sessions could not be re-edited
4816 functions defined in previous edit sessions could not be re-edited
4811 (because the temp files were immediately removed). Now temp files
4817 (because the temp files were immediately removed). Now temp files
4812 are removed only at IPython's exit.
4818 are removed only at IPython's exit.
4813 (Magic.magic_run): Improved @run to perform shell-like expansions
4819 (Magic.magic_run): Improved @run to perform shell-like expansions
4814 on its arguments (~users and $VARS). With this, @run becomes more
4820 on its arguments (~users and $VARS). With this, @run becomes more
4815 like a normal command-line.
4821 like a normal command-line.
4816
4822
4817 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4823 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4818 bugs related to embedding and cleaned up that code. A fairly
4824 bugs related to embedding and cleaned up that code. A fairly
4819 important one was the impossibility to access the global namespace
4825 important one was the impossibility to access the global namespace
4820 through the embedded IPython (only local variables were visible).
4826 through the embedded IPython (only local variables were visible).
4821
4827
4822 2003-01-14 Fernando Perez <fperez@colorado.edu>
4828 2003-01-14 Fernando Perez <fperez@colorado.edu>
4823
4829
4824 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4830 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4825 auto-calling to be a bit more conservative. Now it doesn't get
4831 auto-calling to be a bit more conservative. Now it doesn't get
4826 triggered if any of '!=()<>' are in the rest of the input line, to
4832 triggered if any of '!=()<>' are in the rest of the input line, to
4827 allow comparing callables. Thanks to Alex for the heads up.
4833 allow comparing callables. Thanks to Alex for the heads up.
4828
4834
4829 2003-01-07 Fernando Perez <fperez@colorado.edu>
4835 2003-01-07 Fernando Perez <fperez@colorado.edu>
4830
4836
4831 * IPython/genutils.py (page): fixed estimation of the number of
4837 * IPython/genutils.py (page): fixed estimation of the number of
4832 lines in a string to be paged to simply count newlines. This
4838 lines in a string to be paged to simply count newlines. This
4833 prevents over-guessing due to embedded escape sequences. A better
4839 prevents over-guessing due to embedded escape sequences. A better
4834 long-term solution would involve stripping out the control chars
4840 long-term solution would involve stripping out the control chars
4835 for the count, but it's potentially so expensive I just don't
4841 for the count, but it's potentially so expensive I just don't
4836 think it's worth doing.
4842 think it's worth doing.
4837
4843
4838 2002-12-19 *** Released version 0.2.14pre50
4844 2002-12-19 *** Released version 0.2.14pre50
4839
4845
4840 2002-12-19 Fernando Perez <fperez@colorado.edu>
4846 2002-12-19 Fernando Perez <fperez@colorado.edu>
4841
4847
4842 * tools/release (version): Changed release scripts to inform
4848 * tools/release (version): Changed release scripts to inform
4843 Andrea and build a NEWS file with a list of recent changes.
4849 Andrea and build a NEWS file with a list of recent changes.
4844
4850
4845 * IPython/ColorANSI.py (__all__): changed terminal detection
4851 * IPython/ColorANSI.py (__all__): changed terminal detection
4846 code. Seems to work better for xterms without breaking
4852 code. Seems to work better for xterms without breaking
4847 konsole. Will need more testing to determine if WinXP and Mac OSX
4853 konsole. Will need more testing to determine if WinXP and Mac OSX
4848 also work ok.
4854 also work ok.
4849
4855
4850 2002-12-18 *** Released version 0.2.14pre49
4856 2002-12-18 *** Released version 0.2.14pre49
4851
4857
4852 2002-12-18 Fernando Perez <fperez@colorado.edu>
4858 2002-12-18 Fernando Perez <fperez@colorado.edu>
4853
4859
4854 * Docs: added new info about Mac OSX, from Andrea.
4860 * Docs: added new info about Mac OSX, from Andrea.
4855
4861
4856 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4862 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4857 allow direct plotting of python strings whose format is the same
4863 allow direct plotting of python strings whose format is the same
4858 of gnuplot data files.
4864 of gnuplot data files.
4859
4865
4860 2002-12-16 Fernando Perez <fperez@colorado.edu>
4866 2002-12-16 Fernando Perez <fperez@colorado.edu>
4861
4867
4862 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4868 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4863 value of exit question to be acknowledged.
4869 value of exit question to be acknowledged.
4864
4870
4865 2002-12-03 Fernando Perez <fperez@colorado.edu>
4871 2002-12-03 Fernando Perez <fperez@colorado.edu>
4866
4872
4867 * IPython/ipmaker.py: removed generators, which had been added
4873 * IPython/ipmaker.py: removed generators, which had been added
4868 by mistake in an earlier debugging run. This was causing trouble
4874 by mistake in an earlier debugging run. This was causing trouble
4869 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4875 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4870 for pointing this out.
4876 for pointing this out.
4871
4877
4872 2002-11-17 Fernando Perez <fperez@colorado.edu>
4878 2002-11-17 Fernando Perez <fperez@colorado.edu>
4873
4879
4874 * Manual: updated the Gnuplot section.
4880 * Manual: updated the Gnuplot section.
4875
4881
4876 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4882 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4877 a much better split of what goes in Runtime and what goes in
4883 a much better split of what goes in Runtime and what goes in
4878 Interactive.
4884 Interactive.
4879
4885
4880 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4886 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4881 being imported from iplib.
4887 being imported from iplib.
4882
4888
4883 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4889 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4884 for command-passing. Now the global Gnuplot instance is called
4890 for command-passing. Now the global Gnuplot instance is called
4885 'gp' instead of 'g', which was really a far too fragile and
4891 'gp' instead of 'g', which was really a far too fragile and
4886 common name.
4892 common name.
4887
4893
4888 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4894 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4889 bounding boxes generated by Gnuplot for square plots.
4895 bounding boxes generated by Gnuplot for square plots.
4890
4896
4891 * IPython/genutils.py (popkey): new function added. I should
4897 * IPython/genutils.py (popkey): new function added. I should
4892 suggest this on c.l.py as a dict method, it seems useful.
4898 suggest this on c.l.py as a dict method, it seems useful.
4893
4899
4894 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4900 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4895 to transparently handle PostScript generation. MUCH better than
4901 to transparently handle PostScript generation. MUCH better than
4896 the previous plot_eps/replot_eps (which I removed now). The code
4902 the previous plot_eps/replot_eps (which I removed now). The code
4897 is also fairly clean and well documented now (including
4903 is also fairly clean and well documented now (including
4898 docstrings).
4904 docstrings).
4899
4905
4900 2002-11-13 Fernando Perez <fperez@colorado.edu>
4906 2002-11-13 Fernando Perez <fperez@colorado.edu>
4901
4907
4902 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4908 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4903 (inconsistent with options).
4909 (inconsistent with options).
4904
4910
4905 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4911 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4906 manually disabled, I don't know why. Fixed it.
4912 manually disabled, I don't know why. Fixed it.
4907 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4913 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4908 eps output.
4914 eps output.
4909
4915
4910 2002-11-12 Fernando Perez <fperez@colorado.edu>
4916 2002-11-12 Fernando Perez <fperez@colorado.edu>
4911
4917
4912 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4918 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4913 don't propagate up to caller. Fixes crash reported by François
4919 don't propagate up to caller. Fixes crash reported by François
4914 Pinard.
4920 Pinard.
4915
4921
4916 2002-11-09 Fernando Perez <fperez@colorado.edu>
4922 2002-11-09 Fernando Perez <fperez@colorado.edu>
4917
4923
4918 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4924 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4919 history file for new users.
4925 history file for new users.
4920 (make_IPython): fixed bug where initial install would leave the
4926 (make_IPython): fixed bug where initial install would leave the
4921 user running in the .ipython dir.
4927 user running in the .ipython dir.
4922 (make_IPython): fixed bug where config dir .ipython would be
4928 (make_IPython): fixed bug where config dir .ipython would be
4923 created regardless of the given -ipythondir option. Thanks to Cory
4929 created regardless of the given -ipythondir option. Thanks to Cory
4924 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4930 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4925
4931
4926 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4932 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4927 type confirmations. Will need to use it in all of IPython's code
4933 type confirmations. Will need to use it in all of IPython's code
4928 consistently.
4934 consistently.
4929
4935
4930 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4936 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4931 context to print 31 lines instead of the default 5. This will make
4937 context to print 31 lines instead of the default 5. This will make
4932 the crash reports extremely detailed in case the problem is in
4938 the crash reports extremely detailed in case the problem is in
4933 libraries I don't have access to.
4939 libraries I don't have access to.
4934
4940
4935 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4941 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4936 line of defense' code to still crash, but giving users fair
4942 line of defense' code to still crash, but giving users fair
4937 warning. I don't want internal errors to go unreported: if there's
4943 warning. I don't want internal errors to go unreported: if there's
4938 an internal problem, IPython should crash and generate a full
4944 an internal problem, IPython should crash and generate a full
4939 report.
4945 report.
4940
4946
4941 2002-11-08 Fernando Perez <fperez@colorado.edu>
4947 2002-11-08 Fernando Perez <fperez@colorado.edu>
4942
4948
4943 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4949 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4944 otherwise uncaught exceptions which can appear if people set
4950 otherwise uncaught exceptions which can appear if people set
4945 sys.stdout to something badly broken. Thanks to a crash report
4951 sys.stdout to something badly broken. Thanks to a crash report
4946 from henni-AT-mail.brainbot.com.
4952 from henni-AT-mail.brainbot.com.
4947
4953
4948 2002-11-04 Fernando Perez <fperez@colorado.edu>
4954 2002-11-04 Fernando Perez <fperez@colorado.edu>
4949
4955
4950 * IPython/iplib.py (InteractiveShell.interact): added
4956 * IPython/iplib.py (InteractiveShell.interact): added
4951 __IPYTHON__active to the builtins. It's a flag which goes on when
4957 __IPYTHON__active to the builtins. It's a flag which goes on when
4952 the interaction starts and goes off again when it stops. This
4958 the interaction starts and goes off again when it stops. This
4953 allows embedding code to detect being inside IPython. Before this
4959 allows embedding code to detect being inside IPython. Before this
4954 was done via __IPYTHON__, but that only shows that an IPython
4960 was done via __IPYTHON__, but that only shows that an IPython
4955 instance has been created.
4961 instance has been created.
4956
4962
4957 * IPython/Magic.py (Magic.magic_env): I realized that in a
4963 * IPython/Magic.py (Magic.magic_env): I realized that in a
4958 UserDict, instance.data holds the data as a normal dict. So I
4964 UserDict, instance.data holds the data as a normal dict. So I
4959 modified @env to return os.environ.data instead of rebuilding a
4965 modified @env to return os.environ.data instead of rebuilding a
4960 dict by hand.
4966 dict by hand.
4961
4967
4962 2002-11-02 Fernando Perez <fperez@colorado.edu>
4968 2002-11-02 Fernando Perez <fperez@colorado.edu>
4963
4969
4964 * IPython/genutils.py (warn): changed so that level 1 prints no
4970 * IPython/genutils.py (warn): changed so that level 1 prints no
4965 header. Level 2 is now the default (with 'WARNING' header, as
4971 header. Level 2 is now the default (with 'WARNING' header, as
4966 before). I think I tracked all places where changes were needed in
4972 before). I think I tracked all places where changes were needed in
4967 IPython, but outside code using the old level numbering may have
4973 IPython, but outside code using the old level numbering may have
4968 broken.
4974 broken.
4969
4975
4970 * IPython/iplib.py (InteractiveShell.runcode): added this to
4976 * IPython/iplib.py (InteractiveShell.runcode): added this to
4971 handle the tracebacks in SystemExit traps correctly. The previous
4977 handle the tracebacks in SystemExit traps correctly. The previous
4972 code (through interact) was printing more of the stack than
4978 code (through interact) was printing more of the stack than
4973 necessary, showing IPython internal code to the user.
4979 necessary, showing IPython internal code to the user.
4974
4980
4975 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4981 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4976 default. Now that the default at the confirmation prompt is yes,
4982 default. Now that the default at the confirmation prompt is yes,
4977 it's not so intrusive. François' argument that ipython sessions
4983 it's not so intrusive. François' argument that ipython sessions
4978 tend to be complex enough not to lose them from an accidental C-d,
4984 tend to be complex enough not to lose them from an accidental C-d,
4979 is a valid one.
4985 is a valid one.
4980
4986
4981 * IPython/iplib.py (InteractiveShell.interact): added a
4987 * IPython/iplib.py (InteractiveShell.interact): added a
4982 showtraceback() call to the SystemExit trap, and modified the exit
4988 showtraceback() call to the SystemExit trap, and modified the exit
4983 confirmation to have yes as the default.
4989 confirmation to have yes as the default.
4984
4990
4985 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4991 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4986 this file. It's been gone from the code for a long time, this was
4992 this file. It's been gone from the code for a long time, this was
4987 simply leftover junk.
4993 simply leftover junk.
4988
4994
4989 2002-11-01 Fernando Perez <fperez@colorado.edu>
4995 2002-11-01 Fernando Perez <fperez@colorado.edu>
4990
4996
4991 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4997 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4992 added. If set, IPython now traps EOF and asks for
4998 added. If set, IPython now traps EOF and asks for
4993 confirmation. After a request by François Pinard.
4999 confirmation. After a request by François Pinard.
4994
5000
4995 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5001 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4996 of @abort, and with a new (better) mechanism for handling the
5002 of @abort, and with a new (better) mechanism for handling the
4997 exceptions.
5003 exceptions.
4998
5004
4999 2002-10-27 Fernando Perez <fperez@colorado.edu>
5005 2002-10-27 Fernando Perez <fperez@colorado.edu>
5000
5006
5001 * IPython/usage.py (__doc__): updated the --help information and
5007 * IPython/usage.py (__doc__): updated the --help information and
5002 the ipythonrc file to indicate that -log generates
5008 the ipythonrc file to indicate that -log generates
5003 ./ipython.log. Also fixed the corresponding info in @logstart.
5009 ./ipython.log. Also fixed the corresponding info in @logstart.
5004 This and several other fixes in the manuals thanks to reports by
5010 This and several other fixes in the manuals thanks to reports by
5005 François Pinard <pinard-AT-iro.umontreal.ca>.
5011 François Pinard <pinard-AT-iro.umontreal.ca>.
5006
5012
5007 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5013 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5008 refer to @logstart (instead of @log, which doesn't exist).
5014 refer to @logstart (instead of @log, which doesn't exist).
5009
5015
5010 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5016 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5011 AttributeError crash. Thanks to Christopher Armstrong
5017 AttributeError crash. Thanks to Christopher Armstrong
5012 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5018 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5013 introduced recently (in 0.2.14pre37) with the fix to the eval
5019 introduced recently (in 0.2.14pre37) with the fix to the eval
5014 problem mentioned below.
5020 problem mentioned below.
5015
5021
5016 2002-10-17 Fernando Perez <fperez@colorado.edu>
5022 2002-10-17 Fernando Perez <fperez@colorado.edu>
5017
5023
5018 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5024 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5019 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5025 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5020
5026
5021 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5027 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5022 this function to fix a problem reported by Alex Schmolck. He saw
5028 this function to fix a problem reported by Alex Schmolck. He saw
5023 it with list comprehensions and generators, which were getting
5029 it with list comprehensions and generators, which were getting
5024 called twice. The real problem was an 'eval' call in testing for
5030 called twice. The real problem was an 'eval' call in testing for
5025 automagic which was evaluating the input line silently.
5031 automagic which was evaluating the input line silently.
5026
5032
5027 This is a potentially very nasty bug, if the input has side
5033 This is a potentially very nasty bug, if the input has side
5028 effects which must not be repeated. The code is much cleaner now,
5034 effects which must not be repeated. The code is much cleaner now,
5029 without any blanket 'except' left and with a regexp test for
5035 without any blanket 'except' left and with a regexp test for
5030 actual function names.
5036 actual function names.
5031
5037
5032 But an eval remains, which I'm not fully comfortable with. I just
5038 But an eval remains, which I'm not fully comfortable with. I just
5033 don't know how to find out if an expression could be a callable in
5039 don't know how to find out if an expression could be a callable in
5034 the user's namespace without doing an eval on the string. However
5040 the user's namespace without doing an eval on the string. However
5035 that string is now much more strictly checked so that no code
5041 that string is now much more strictly checked so that no code
5036 slips by, so the eval should only happen for things that can
5042 slips by, so the eval should only happen for things that can
5037 really be only function/method names.
5043 really be only function/method names.
5038
5044
5039 2002-10-15 Fernando Perez <fperez@colorado.edu>
5045 2002-10-15 Fernando Perez <fperez@colorado.edu>
5040
5046
5041 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5047 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5042 OSX information to main manual, removed README_Mac_OSX file from
5048 OSX information to main manual, removed README_Mac_OSX file from
5043 distribution. Also updated credits for recent additions.
5049 distribution. Also updated credits for recent additions.
5044
5050
5045 2002-10-10 Fernando Perez <fperez@colorado.edu>
5051 2002-10-10 Fernando Perez <fperez@colorado.edu>
5046
5052
5047 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5053 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5048 terminal-related issues. Many thanks to Andrea Riciputi
5054 terminal-related issues. Many thanks to Andrea Riciputi
5049 <andrea.riciputi-AT-libero.it> for writing it.
5055 <andrea.riciputi-AT-libero.it> for writing it.
5050
5056
5051 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5057 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5052 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5058 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5053
5059
5054 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5060 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5055 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5061 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5056 <syver-en-AT-online.no> who both submitted patches for this problem.
5062 <syver-en-AT-online.no> who both submitted patches for this problem.
5057
5063
5058 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5064 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5059 global embedding to make sure that things don't overwrite user
5065 global embedding to make sure that things don't overwrite user
5060 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5066 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5061
5067
5062 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5068 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5063 compatibility. Thanks to Hayden Callow
5069 compatibility. Thanks to Hayden Callow
5064 <h.callow-AT-elec.canterbury.ac.nz>
5070 <h.callow-AT-elec.canterbury.ac.nz>
5065
5071
5066 2002-10-04 Fernando Perez <fperez@colorado.edu>
5072 2002-10-04 Fernando Perez <fperez@colorado.edu>
5067
5073
5068 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5074 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5069 Gnuplot.File objects.
5075 Gnuplot.File objects.
5070
5076
5071 2002-07-23 Fernando Perez <fperez@colorado.edu>
5077 2002-07-23 Fernando Perez <fperez@colorado.edu>
5072
5078
5073 * IPython/genutils.py (timing): Added timings() and timing() for
5079 * IPython/genutils.py (timing): Added timings() and timing() for
5074 quick access to the most commonly needed data, the execution
5080 quick access to the most commonly needed data, the execution
5075 times. Old timing() renamed to timings_out().
5081 times. Old timing() renamed to timings_out().
5076
5082
5077 2002-07-18 Fernando Perez <fperez@colorado.edu>
5083 2002-07-18 Fernando Perez <fperez@colorado.edu>
5078
5084
5079 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5085 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5080 bug with nested instances disrupting the parent's tab completion.
5086 bug with nested instances disrupting the parent's tab completion.
5081
5087
5082 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5088 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5083 all_completions code to begin the emacs integration.
5089 all_completions code to begin the emacs integration.
5084
5090
5085 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5091 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5086 argument to allow titling individual arrays when plotting.
5092 argument to allow titling individual arrays when plotting.
5087
5093
5088 2002-07-15 Fernando Perez <fperez@colorado.edu>
5094 2002-07-15 Fernando Perez <fperez@colorado.edu>
5089
5095
5090 * setup.py (make_shortcut): changed to retrieve the value of
5096 * setup.py (make_shortcut): changed to retrieve the value of
5091 'Program Files' directory from the registry (this value changes in
5097 'Program Files' directory from the registry (this value changes in
5092 non-english versions of Windows). Thanks to Thomas Fanslau
5098 non-english versions of Windows). Thanks to Thomas Fanslau
5093 <tfanslau-AT-gmx.de> for the report.
5099 <tfanslau-AT-gmx.de> for the report.
5094
5100
5095 2002-07-10 Fernando Perez <fperez@colorado.edu>
5101 2002-07-10 Fernando Perez <fperez@colorado.edu>
5096
5102
5097 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5103 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5098 a bug in pdb, which crashes if a line with only whitespace is
5104 a bug in pdb, which crashes if a line with only whitespace is
5099 entered. Bug report submitted to sourceforge.
5105 entered. Bug report submitted to sourceforge.
5100
5106
5101 2002-07-09 Fernando Perez <fperez@colorado.edu>
5107 2002-07-09 Fernando Perez <fperez@colorado.edu>
5102
5108
5103 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5109 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5104 reporting exceptions (it's a bug in inspect.py, I just set a
5110 reporting exceptions (it's a bug in inspect.py, I just set a
5105 workaround).
5111 workaround).
5106
5112
5107 2002-07-08 Fernando Perez <fperez@colorado.edu>
5113 2002-07-08 Fernando Perez <fperez@colorado.edu>
5108
5114
5109 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5115 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5110 __IPYTHON__ in __builtins__ to show up in user_ns.
5116 __IPYTHON__ in __builtins__ to show up in user_ns.
5111
5117
5112 2002-07-03 Fernando Perez <fperez@colorado.edu>
5118 2002-07-03 Fernando Perez <fperez@colorado.edu>
5113
5119
5114 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5120 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5115 name from @gp_set_instance to @gp_set_default.
5121 name from @gp_set_instance to @gp_set_default.
5116
5122
5117 * IPython/ipmaker.py (make_IPython): default editor value set to
5123 * IPython/ipmaker.py (make_IPython): default editor value set to
5118 '0' (a string), to match the rc file. Otherwise will crash when
5124 '0' (a string), to match the rc file. Otherwise will crash when
5119 .strip() is called on it.
5125 .strip() is called on it.
5120
5126
5121
5127
5122 2002-06-28 Fernando Perez <fperez@colorado.edu>
5128 2002-06-28 Fernando Perez <fperez@colorado.edu>
5123
5129
5124 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5130 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5125 of files in current directory when a file is executed via
5131 of files in current directory when a file is executed via
5126 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5132 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5127
5133
5128 * setup.py (manfiles): fix for rpm builds, submitted by RA
5134 * setup.py (manfiles): fix for rpm builds, submitted by RA
5129 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5135 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5130
5136
5131 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5137 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5132 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5138 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5133 string!). A. Schmolck caught this one.
5139 string!). A. Schmolck caught this one.
5134
5140
5135 2002-06-27 Fernando Perez <fperez@colorado.edu>
5141 2002-06-27 Fernando Perez <fperez@colorado.edu>
5136
5142
5137 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5143 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5138 defined files at the cmd line. __name__ wasn't being set to
5144 defined files at the cmd line. __name__ wasn't being set to
5139 __main__.
5145 __main__.
5140
5146
5141 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5147 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5142 regular lists and tuples besides Numeric arrays.
5148 regular lists and tuples besides Numeric arrays.
5143
5149
5144 * IPython/Prompts.py (CachedOutput.__call__): Added output
5150 * IPython/Prompts.py (CachedOutput.__call__): Added output
5145 supression for input ending with ';'. Similar to Mathematica and
5151 supression for input ending with ';'. Similar to Mathematica and
5146 Matlab. The _* vars and Out[] list are still updated, just like
5152 Matlab. The _* vars and Out[] list are still updated, just like
5147 Mathematica behaves.
5153 Mathematica behaves.
5148
5154
5149 2002-06-25 Fernando Perez <fperez@colorado.edu>
5155 2002-06-25 Fernando Perez <fperez@colorado.edu>
5150
5156
5151 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5157 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5152 .ini extensions for profiels under Windows.
5158 .ini extensions for profiels under Windows.
5153
5159
5154 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5160 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5155 string form. Fix contributed by Alexander Schmolck
5161 string form. Fix contributed by Alexander Schmolck
5156 <a.schmolck-AT-gmx.net>
5162 <a.schmolck-AT-gmx.net>
5157
5163
5158 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5164 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5159 pre-configured Gnuplot instance.
5165 pre-configured Gnuplot instance.
5160
5166
5161 2002-06-21 Fernando Perez <fperez@colorado.edu>
5167 2002-06-21 Fernando Perez <fperez@colorado.edu>
5162
5168
5163 * IPython/numutils.py (exp_safe): new function, works around the
5169 * IPython/numutils.py (exp_safe): new function, works around the
5164 underflow problems in Numeric.
5170 underflow problems in Numeric.
5165 (log2): New fn. Safe log in base 2: returns exact integer answer
5171 (log2): New fn. Safe log in base 2: returns exact integer answer
5166 for exact integer powers of 2.
5172 for exact integer powers of 2.
5167
5173
5168 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5174 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5169 properly.
5175 properly.
5170
5176
5171 2002-06-20 Fernando Perez <fperez@colorado.edu>
5177 2002-06-20 Fernando Perez <fperez@colorado.edu>
5172
5178
5173 * IPython/genutils.py (timing): new function like
5179 * IPython/genutils.py (timing): new function like
5174 Mathematica's. Similar to time_test, but returns more info.
5180 Mathematica's. Similar to time_test, but returns more info.
5175
5181
5176 2002-06-18 Fernando Perez <fperez@colorado.edu>
5182 2002-06-18 Fernando Perez <fperez@colorado.edu>
5177
5183
5178 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5184 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5179 according to Mike Heeter's suggestions.
5185 according to Mike Heeter's suggestions.
5180
5186
5181 2002-06-16 Fernando Perez <fperez@colorado.edu>
5187 2002-06-16 Fernando Perez <fperez@colorado.edu>
5182
5188
5183 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5189 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5184 system. GnuplotMagic is gone as a user-directory option. New files
5190 system. GnuplotMagic is gone as a user-directory option. New files
5185 make it easier to use all the gnuplot stuff both from external
5191 make it easier to use all the gnuplot stuff both from external
5186 programs as well as from IPython. Had to rewrite part of
5192 programs as well as from IPython. Had to rewrite part of
5187 hardcopy() b/c of a strange bug: often the ps files simply don't
5193 hardcopy() b/c of a strange bug: often the ps files simply don't
5188 get created, and require a repeat of the command (often several
5194 get created, and require a repeat of the command (often several
5189 times).
5195 times).
5190
5196
5191 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5197 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5192 resolve output channel at call time, so that if sys.stderr has
5198 resolve output channel at call time, so that if sys.stderr has
5193 been redirected by user this gets honored.
5199 been redirected by user this gets honored.
5194
5200
5195 2002-06-13 Fernando Perez <fperez@colorado.edu>
5201 2002-06-13 Fernando Perez <fperez@colorado.edu>
5196
5202
5197 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5203 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5198 IPShell. Kept a copy with the old names to avoid breaking people's
5204 IPShell. Kept a copy with the old names to avoid breaking people's
5199 embedded code.
5205 embedded code.
5200
5206
5201 * IPython/ipython: simplified it to the bare minimum after
5207 * IPython/ipython: simplified it to the bare minimum after
5202 Holger's suggestions. Added info about how to use it in
5208 Holger's suggestions. Added info about how to use it in
5203 PYTHONSTARTUP.
5209 PYTHONSTARTUP.
5204
5210
5205 * IPython/Shell.py (IPythonShell): changed the options passing
5211 * IPython/Shell.py (IPythonShell): changed the options passing
5206 from a string with funky %s replacements to a straight list. Maybe
5212 from a string with funky %s replacements to a straight list. Maybe
5207 a bit more typing, but it follows sys.argv conventions, so there's
5213 a bit more typing, but it follows sys.argv conventions, so there's
5208 less special-casing to remember.
5214 less special-casing to remember.
5209
5215
5210 2002-06-12 Fernando Perez <fperez@colorado.edu>
5216 2002-06-12 Fernando Perez <fperez@colorado.edu>
5211
5217
5212 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5218 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5213 command. Thanks to a suggestion by Mike Heeter.
5219 command. Thanks to a suggestion by Mike Heeter.
5214 (Magic.magic_pfile): added behavior to look at filenames if given
5220 (Magic.magic_pfile): added behavior to look at filenames if given
5215 arg is not a defined object.
5221 arg is not a defined object.
5216 (Magic.magic_save): New @save function to save code snippets. Also
5222 (Magic.magic_save): New @save function to save code snippets. Also
5217 a Mike Heeter idea.
5223 a Mike Heeter idea.
5218
5224
5219 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5225 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5220 plot() and replot(). Much more convenient now, especially for
5226 plot() and replot(). Much more convenient now, especially for
5221 interactive use.
5227 interactive use.
5222
5228
5223 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5229 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5224 filenames.
5230 filenames.
5225
5231
5226 2002-06-02 Fernando Perez <fperez@colorado.edu>
5232 2002-06-02 Fernando Perez <fperez@colorado.edu>
5227
5233
5228 * IPython/Struct.py (Struct.__init__): modified to admit
5234 * IPython/Struct.py (Struct.__init__): modified to admit
5229 initialization via another struct.
5235 initialization via another struct.
5230
5236
5231 * IPython/genutils.py (SystemExec.__init__): New stateful
5237 * IPython/genutils.py (SystemExec.__init__): New stateful
5232 interface to xsys and bq. Useful for writing system scripts.
5238 interface to xsys and bq. Useful for writing system scripts.
5233
5239
5234 2002-05-30 Fernando Perez <fperez@colorado.edu>
5240 2002-05-30 Fernando Perez <fperez@colorado.edu>
5235
5241
5236 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5242 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5237 documents. This will make the user download smaller (it's getting
5243 documents. This will make the user download smaller (it's getting
5238 too big).
5244 too big).
5239
5245
5240 2002-05-29 Fernando Perez <fperez@colorado.edu>
5246 2002-05-29 Fernando Perez <fperez@colorado.edu>
5241
5247
5242 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5248 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5243 fix problems with shelve and pickle. Seems to work, but I don't
5249 fix problems with shelve and pickle. Seems to work, but I don't
5244 know if corner cases break it. Thanks to Mike Heeter
5250 know if corner cases break it. Thanks to Mike Heeter
5245 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5251 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5246
5252
5247 2002-05-24 Fernando Perez <fperez@colorado.edu>
5253 2002-05-24 Fernando Perez <fperez@colorado.edu>
5248
5254
5249 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5255 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5250 macros having broken.
5256 macros having broken.
5251
5257
5252 2002-05-21 Fernando Perez <fperez@colorado.edu>
5258 2002-05-21 Fernando Perez <fperez@colorado.edu>
5253
5259
5254 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5260 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5255 introduced logging bug: all history before logging started was
5261 introduced logging bug: all history before logging started was
5256 being written one character per line! This came from the redesign
5262 being written one character per line! This came from the redesign
5257 of the input history as a special list which slices to strings,
5263 of the input history as a special list which slices to strings,
5258 not to lists.
5264 not to lists.
5259
5265
5260 2002-05-20 Fernando Perez <fperez@colorado.edu>
5266 2002-05-20 Fernando Perez <fperez@colorado.edu>
5261
5267
5262 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5268 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5263 be an attribute of all classes in this module. The design of these
5269 be an attribute of all classes in this module. The design of these
5264 classes needs some serious overhauling.
5270 classes needs some serious overhauling.
5265
5271
5266 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5272 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5267 which was ignoring '_' in option names.
5273 which was ignoring '_' in option names.
5268
5274
5269 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5275 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5270 'Verbose_novars' to 'Context' and made it the new default. It's a
5276 'Verbose_novars' to 'Context' and made it the new default. It's a
5271 bit more readable and also safer than verbose.
5277 bit more readable and also safer than verbose.
5272
5278
5273 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5279 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5274 triple-quoted strings.
5280 triple-quoted strings.
5275
5281
5276 * IPython/OInspect.py (__all__): new module exposing the object
5282 * IPython/OInspect.py (__all__): new module exposing the object
5277 introspection facilities. Now the corresponding magics are dummy
5283 introspection facilities. Now the corresponding magics are dummy
5278 wrappers around this. Having this module will make it much easier
5284 wrappers around this. Having this module will make it much easier
5279 to put these functions into our modified pdb.
5285 to put these functions into our modified pdb.
5280 This new object inspector system uses the new colorizing module,
5286 This new object inspector system uses the new colorizing module,
5281 so source code and other things are nicely syntax highlighted.
5287 so source code and other things are nicely syntax highlighted.
5282
5288
5283 2002-05-18 Fernando Perez <fperez@colorado.edu>
5289 2002-05-18 Fernando Perez <fperez@colorado.edu>
5284
5290
5285 * IPython/ColorANSI.py: Split the coloring tools into a separate
5291 * IPython/ColorANSI.py: Split the coloring tools into a separate
5286 module so I can use them in other code easier (they were part of
5292 module so I can use them in other code easier (they were part of
5287 ultraTB).
5293 ultraTB).
5288
5294
5289 2002-05-17 Fernando Perez <fperez@colorado.edu>
5295 2002-05-17 Fernando Perez <fperez@colorado.edu>
5290
5296
5291 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5297 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5292 fixed it to set the global 'g' also to the called instance, as
5298 fixed it to set the global 'g' also to the called instance, as
5293 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5299 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5294 user's 'g' variables).
5300 user's 'g' variables).
5295
5301
5296 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5302 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5297 global variables (aliases to _ih,_oh) so that users which expect
5303 global variables (aliases to _ih,_oh) so that users which expect
5298 In[5] or Out[7] to work aren't unpleasantly surprised.
5304 In[5] or Out[7] to work aren't unpleasantly surprised.
5299 (InputList.__getslice__): new class to allow executing slices of
5305 (InputList.__getslice__): new class to allow executing slices of
5300 input history directly. Very simple class, complements the use of
5306 input history directly. Very simple class, complements the use of
5301 macros.
5307 macros.
5302
5308
5303 2002-05-16 Fernando Perez <fperez@colorado.edu>
5309 2002-05-16 Fernando Perez <fperez@colorado.edu>
5304
5310
5305 * setup.py (docdirbase): make doc directory be just doc/IPython
5311 * setup.py (docdirbase): make doc directory be just doc/IPython
5306 without version numbers, it will reduce clutter for users.
5312 without version numbers, it will reduce clutter for users.
5307
5313
5308 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5314 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5309 execfile call to prevent possible memory leak. See for details:
5315 execfile call to prevent possible memory leak. See for details:
5310 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5316 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5311
5317
5312 2002-05-15 Fernando Perez <fperez@colorado.edu>
5318 2002-05-15 Fernando Perez <fperez@colorado.edu>
5313
5319
5314 * IPython/Magic.py (Magic.magic_psource): made the object
5320 * IPython/Magic.py (Magic.magic_psource): made the object
5315 introspection names be more standard: pdoc, pdef, pfile and
5321 introspection names be more standard: pdoc, pdef, pfile and
5316 psource. They all print/page their output, and it makes
5322 psource. They all print/page their output, and it makes
5317 remembering them easier. Kept old names for compatibility as
5323 remembering them easier. Kept old names for compatibility as
5318 aliases.
5324 aliases.
5319
5325
5320 2002-05-14 Fernando Perez <fperez@colorado.edu>
5326 2002-05-14 Fernando Perez <fperez@colorado.edu>
5321
5327
5322 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5328 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5323 what the mouse problem was. The trick is to use gnuplot with temp
5329 what the mouse problem was. The trick is to use gnuplot with temp
5324 files and NOT with pipes (for data communication), because having
5330 files and NOT with pipes (for data communication), because having
5325 both pipes and the mouse on is bad news.
5331 both pipes and the mouse on is bad news.
5326
5332
5327 2002-05-13 Fernando Perez <fperez@colorado.edu>
5333 2002-05-13 Fernando Perez <fperez@colorado.edu>
5328
5334
5329 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5335 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5330 bug. Information would be reported about builtins even when
5336 bug. Information would be reported about builtins even when
5331 user-defined functions overrode them.
5337 user-defined functions overrode them.
5332
5338
5333 2002-05-11 Fernando Perez <fperez@colorado.edu>
5339 2002-05-11 Fernando Perez <fperez@colorado.edu>
5334
5340
5335 * IPython/__init__.py (__all__): removed FlexCompleter from
5341 * IPython/__init__.py (__all__): removed FlexCompleter from
5336 __all__ so that things don't fail in platforms without readline.
5342 __all__ so that things don't fail in platforms without readline.
5337
5343
5338 2002-05-10 Fernando Perez <fperez@colorado.edu>
5344 2002-05-10 Fernando Perez <fperez@colorado.edu>
5339
5345
5340 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5346 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5341 it requires Numeric, effectively making Numeric a dependency for
5347 it requires Numeric, effectively making Numeric a dependency for
5342 IPython.
5348 IPython.
5343
5349
5344 * Released 0.2.13
5350 * Released 0.2.13
5345
5351
5346 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5352 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5347 profiler interface. Now all the major options from the profiler
5353 profiler interface. Now all the major options from the profiler
5348 module are directly supported in IPython, both for single
5354 module are directly supported in IPython, both for single
5349 expressions (@prun) and for full programs (@run -p).
5355 expressions (@prun) and for full programs (@run -p).
5350
5356
5351 2002-05-09 Fernando Perez <fperez@colorado.edu>
5357 2002-05-09 Fernando Perez <fperez@colorado.edu>
5352
5358
5353 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5359 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5354 magic properly formatted for screen.
5360 magic properly formatted for screen.
5355
5361
5356 * setup.py (make_shortcut): Changed things to put pdf version in
5362 * setup.py (make_shortcut): Changed things to put pdf version in
5357 doc/ instead of doc/manual (had to change lyxport a bit).
5363 doc/ instead of doc/manual (had to change lyxport a bit).
5358
5364
5359 * IPython/Magic.py (Profile.string_stats): made profile runs go
5365 * IPython/Magic.py (Profile.string_stats): made profile runs go
5360 through pager (they are long and a pager allows searching, saving,
5366 through pager (they are long and a pager allows searching, saving,
5361 etc.)
5367 etc.)
5362
5368
5363 2002-05-08 Fernando Perez <fperez@colorado.edu>
5369 2002-05-08 Fernando Perez <fperez@colorado.edu>
5364
5370
5365 * Released 0.2.12
5371 * Released 0.2.12
5366
5372
5367 2002-05-06 Fernando Perez <fperez@colorado.edu>
5373 2002-05-06 Fernando Perez <fperez@colorado.edu>
5368
5374
5369 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5375 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5370 introduced); 'hist n1 n2' was broken.
5376 introduced); 'hist n1 n2' was broken.
5371 (Magic.magic_pdb): added optional on/off arguments to @pdb
5377 (Magic.magic_pdb): added optional on/off arguments to @pdb
5372 (Magic.magic_run): added option -i to @run, which executes code in
5378 (Magic.magic_run): added option -i to @run, which executes code in
5373 the IPython namespace instead of a clean one. Also added @irun as
5379 the IPython namespace instead of a clean one. Also added @irun as
5374 an alias to @run -i.
5380 an alias to @run -i.
5375
5381
5376 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5382 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5377 fixed (it didn't really do anything, the namespaces were wrong).
5383 fixed (it didn't really do anything, the namespaces were wrong).
5378
5384
5379 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5385 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5380
5386
5381 * IPython/__init__.py (__all__): Fixed package namespace, now
5387 * IPython/__init__.py (__all__): Fixed package namespace, now
5382 'import IPython' does give access to IPython.<all> as
5388 'import IPython' does give access to IPython.<all> as
5383 expected. Also renamed __release__ to Release.
5389 expected. Also renamed __release__ to Release.
5384
5390
5385 * IPython/Debugger.py (__license__): created new Pdb class which
5391 * IPython/Debugger.py (__license__): created new Pdb class which
5386 functions like a drop-in for the normal pdb.Pdb but does NOT
5392 functions like a drop-in for the normal pdb.Pdb but does NOT
5387 import readline by default. This way it doesn't muck up IPython's
5393 import readline by default. This way it doesn't muck up IPython's
5388 readline handling, and now tab-completion finally works in the
5394 readline handling, and now tab-completion finally works in the
5389 debugger -- sort of. It completes things globally visible, but the
5395 debugger -- sort of. It completes things globally visible, but the
5390 completer doesn't track the stack as pdb walks it. That's a bit
5396 completer doesn't track the stack as pdb walks it. That's a bit
5391 tricky, and I'll have to implement it later.
5397 tricky, and I'll have to implement it later.
5392
5398
5393 2002-05-05 Fernando Perez <fperez@colorado.edu>
5399 2002-05-05 Fernando Perez <fperez@colorado.edu>
5394
5400
5395 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5401 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5396 magic docstrings when printed via ? (explicit \'s were being
5402 magic docstrings when printed via ? (explicit \'s were being
5397 printed).
5403 printed).
5398
5404
5399 * IPython/ipmaker.py (make_IPython): fixed namespace
5405 * IPython/ipmaker.py (make_IPython): fixed namespace
5400 identification bug. Now variables loaded via logs or command-line
5406 identification bug. Now variables loaded via logs or command-line
5401 files are recognized in the interactive namespace by @who.
5407 files are recognized in the interactive namespace by @who.
5402
5408
5403 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5409 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5404 log replay system stemming from the string form of Structs.
5410 log replay system stemming from the string form of Structs.
5405
5411
5406 * IPython/Magic.py (Macro.__init__): improved macros to properly
5412 * IPython/Magic.py (Macro.__init__): improved macros to properly
5407 handle magic commands in them.
5413 handle magic commands in them.
5408 (Magic.magic_logstart): usernames are now expanded so 'logstart
5414 (Magic.magic_logstart): usernames are now expanded so 'logstart
5409 ~/mylog' now works.
5415 ~/mylog' now works.
5410
5416
5411 * IPython/iplib.py (complete): fixed bug where paths starting with
5417 * IPython/iplib.py (complete): fixed bug where paths starting with
5412 '/' would be completed as magic names.
5418 '/' would be completed as magic names.
5413
5419
5414 2002-05-04 Fernando Perez <fperez@colorado.edu>
5420 2002-05-04 Fernando Perez <fperez@colorado.edu>
5415
5421
5416 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5422 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5417 allow running full programs under the profiler's control.
5423 allow running full programs under the profiler's control.
5418
5424
5419 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5425 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5420 mode to report exceptions verbosely but without formatting
5426 mode to report exceptions verbosely but without formatting
5421 variables. This addresses the issue of ipython 'freezing' (it's
5427 variables. This addresses the issue of ipython 'freezing' (it's
5422 not frozen, but caught in an expensive formatting loop) when huge
5428 not frozen, but caught in an expensive formatting loop) when huge
5423 variables are in the context of an exception.
5429 variables are in the context of an exception.
5424 (VerboseTB.text): Added '--->' markers at line where exception was
5430 (VerboseTB.text): Added '--->' markers at line where exception was
5425 triggered. Much clearer to read, especially in NoColor modes.
5431 triggered. Much clearer to read, especially in NoColor modes.
5426
5432
5427 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5433 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5428 implemented in reverse when changing to the new parse_options().
5434 implemented in reverse when changing to the new parse_options().
5429
5435
5430 2002-05-03 Fernando Perez <fperez@colorado.edu>
5436 2002-05-03 Fernando Perez <fperez@colorado.edu>
5431
5437
5432 * IPython/Magic.py (Magic.parse_options): new function so that
5438 * IPython/Magic.py (Magic.parse_options): new function so that
5433 magics can parse options easier.
5439 magics can parse options easier.
5434 (Magic.magic_prun): new function similar to profile.run(),
5440 (Magic.magic_prun): new function similar to profile.run(),
5435 suggested by Chris Hart.
5441 suggested by Chris Hart.
5436 (Magic.magic_cd): fixed behavior so that it only changes if
5442 (Magic.magic_cd): fixed behavior so that it only changes if
5437 directory actually is in history.
5443 directory actually is in history.
5438
5444
5439 * IPython/usage.py (__doc__): added information about potential
5445 * IPython/usage.py (__doc__): added information about potential
5440 slowness of Verbose exception mode when there are huge data
5446 slowness of Verbose exception mode when there are huge data
5441 structures to be formatted (thanks to Archie Paulson).
5447 structures to be formatted (thanks to Archie Paulson).
5442
5448
5443 * IPython/ipmaker.py (make_IPython): Changed default logging
5449 * IPython/ipmaker.py (make_IPython): Changed default logging
5444 (when simply called with -log) to use curr_dir/ipython.log in
5450 (when simply called with -log) to use curr_dir/ipython.log in
5445 rotate mode. Fixed crash which was occuring with -log before
5451 rotate mode. Fixed crash which was occuring with -log before
5446 (thanks to Jim Boyle).
5452 (thanks to Jim Boyle).
5447
5453
5448 2002-05-01 Fernando Perez <fperez@colorado.edu>
5454 2002-05-01 Fernando Perez <fperez@colorado.edu>
5449
5455
5450 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5456 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5451 was nasty -- though somewhat of a corner case).
5457 was nasty -- though somewhat of a corner case).
5452
5458
5453 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5459 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5454 text (was a bug).
5460 text (was a bug).
5455
5461
5456 2002-04-30 Fernando Perez <fperez@colorado.edu>
5462 2002-04-30 Fernando Perez <fperez@colorado.edu>
5457
5463
5458 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5464 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5459 a print after ^D or ^C from the user so that the In[] prompt
5465 a print after ^D or ^C from the user so that the In[] prompt
5460 doesn't over-run the gnuplot one.
5466 doesn't over-run the gnuplot one.
5461
5467
5462 2002-04-29 Fernando Perez <fperez@colorado.edu>
5468 2002-04-29 Fernando Perez <fperez@colorado.edu>
5463
5469
5464 * Released 0.2.10
5470 * Released 0.2.10
5465
5471
5466 * IPython/__release__.py (version): get date dynamically.
5472 * IPython/__release__.py (version): get date dynamically.
5467
5473
5468 * Misc. documentation updates thanks to Arnd's comments. Also ran
5474 * Misc. documentation updates thanks to Arnd's comments. Also ran
5469 a full spellcheck on the manual (hadn't been done in a while).
5475 a full spellcheck on the manual (hadn't been done in a while).
5470
5476
5471 2002-04-27 Fernando Perez <fperez@colorado.edu>
5477 2002-04-27 Fernando Perez <fperez@colorado.edu>
5472
5478
5473 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5479 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5474 starting a log in mid-session would reset the input history list.
5480 starting a log in mid-session would reset the input history list.
5475
5481
5476 2002-04-26 Fernando Perez <fperez@colorado.edu>
5482 2002-04-26 Fernando Perez <fperez@colorado.edu>
5477
5483
5478 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5484 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5479 all files were being included in an update. Now anything in
5485 all files were being included in an update. Now anything in
5480 UserConfig that matches [A-Za-z]*.py will go (this excludes
5486 UserConfig that matches [A-Za-z]*.py will go (this excludes
5481 __init__.py)
5487 __init__.py)
5482
5488
5483 2002-04-25 Fernando Perez <fperez@colorado.edu>
5489 2002-04-25 Fernando Perez <fperez@colorado.edu>
5484
5490
5485 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5491 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5486 to __builtins__ so that any form of embedded or imported code can
5492 to __builtins__ so that any form of embedded or imported code can
5487 test for being inside IPython.
5493 test for being inside IPython.
5488
5494
5489 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5495 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5490 changed to GnuplotMagic because it's now an importable module,
5496 changed to GnuplotMagic because it's now an importable module,
5491 this makes the name follow that of the standard Gnuplot module.
5497 this makes the name follow that of the standard Gnuplot module.
5492 GnuplotMagic can now be loaded at any time in mid-session.
5498 GnuplotMagic can now be loaded at any time in mid-session.
5493
5499
5494 2002-04-24 Fernando Perez <fperez@colorado.edu>
5500 2002-04-24 Fernando Perez <fperez@colorado.edu>
5495
5501
5496 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5502 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5497 the globals (IPython has its own namespace) and the
5503 the globals (IPython has its own namespace) and the
5498 PhysicalQuantity stuff is much better anyway.
5504 PhysicalQuantity stuff is much better anyway.
5499
5505
5500 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5506 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5501 embedding example to standard user directory for
5507 embedding example to standard user directory for
5502 distribution. Also put it in the manual.
5508 distribution. Also put it in the manual.
5503
5509
5504 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5510 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5505 instance as first argument (so it doesn't rely on some obscure
5511 instance as first argument (so it doesn't rely on some obscure
5506 hidden global).
5512 hidden global).
5507
5513
5508 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5514 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5509 delimiters. While it prevents ().TAB from working, it allows
5515 delimiters. While it prevents ().TAB from working, it allows
5510 completions in open (... expressions. This is by far a more common
5516 completions in open (... expressions. This is by far a more common
5511 case.
5517 case.
5512
5518
5513 2002-04-23 Fernando Perez <fperez@colorado.edu>
5519 2002-04-23 Fernando Perez <fperez@colorado.edu>
5514
5520
5515 * IPython/Extensions/InterpreterPasteInput.py: new
5521 * IPython/Extensions/InterpreterPasteInput.py: new
5516 syntax-processing module for pasting lines with >>> or ... at the
5522 syntax-processing module for pasting lines with >>> or ... at the
5517 start.
5523 start.
5518
5524
5519 * IPython/Extensions/PhysicalQ_Interactive.py
5525 * IPython/Extensions/PhysicalQ_Interactive.py
5520 (PhysicalQuantityInteractive.__int__): fixed to work with either
5526 (PhysicalQuantityInteractive.__int__): fixed to work with either
5521 Numeric or math.
5527 Numeric or math.
5522
5528
5523 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5529 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5524 provided profiles. Now we have:
5530 provided profiles. Now we have:
5525 -math -> math module as * and cmath with its own namespace.
5531 -math -> math module as * and cmath with its own namespace.
5526 -numeric -> Numeric as *, plus gnuplot & grace
5532 -numeric -> Numeric as *, plus gnuplot & grace
5527 -physics -> same as before
5533 -physics -> same as before
5528
5534
5529 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5535 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5530 user-defined magics wouldn't be found by @magic if they were
5536 user-defined magics wouldn't be found by @magic if they were
5531 defined as class methods. Also cleaned up the namespace search
5537 defined as class methods. Also cleaned up the namespace search
5532 logic and the string building (to use %s instead of many repeated
5538 logic and the string building (to use %s instead of many repeated
5533 string adds).
5539 string adds).
5534
5540
5535 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5541 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5536 of user-defined magics to operate with class methods (cleaner, in
5542 of user-defined magics to operate with class methods (cleaner, in
5537 line with the gnuplot code).
5543 line with the gnuplot code).
5538
5544
5539 2002-04-22 Fernando Perez <fperez@colorado.edu>
5545 2002-04-22 Fernando Perez <fperez@colorado.edu>
5540
5546
5541 * setup.py: updated dependency list so that manual is updated when
5547 * setup.py: updated dependency list so that manual is updated when
5542 all included files change.
5548 all included files change.
5543
5549
5544 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5550 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5545 the delimiter removal option (the fix is ugly right now).
5551 the delimiter removal option (the fix is ugly right now).
5546
5552
5547 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5553 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5548 all of the math profile (quicker loading, no conflict between
5554 all of the math profile (quicker loading, no conflict between
5549 g-9.8 and g-gnuplot).
5555 g-9.8 and g-gnuplot).
5550
5556
5551 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5557 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5552 name of post-mortem files to IPython_crash_report.txt.
5558 name of post-mortem files to IPython_crash_report.txt.
5553
5559
5554 * Cleanup/update of the docs. Added all the new readline info and
5560 * Cleanup/update of the docs. Added all the new readline info and
5555 formatted all lists as 'real lists'.
5561 formatted all lists as 'real lists'.
5556
5562
5557 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5563 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5558 tab-completion options, since the full readline parse_and_bind is
5564 tab-completion options, since the full readline parse_and_bind is
5559 now accessible.
5565 now accessible.
5560
5566
5561 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5567 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5562 handling of readline options. Now users can specify any string to
5568 handling of readline options. Now users can specify any string to
5563 be passed to parse_and_bind(), as well as the delimiters to be
5569 be passed to parse_and_bind(), as well as the delimiters to be
5564 removed.
5570 removed.
5565 (InteractiveShell.__init__): Added __name__ to the global
5571 (InteractiveShell.__init__): Added __name__ to the global
5566 namespace so that things like Itpl which rely on its existence
5572 namespace so that things like Itpl which rely on its existence
5567 don't crash.
5573 don't crash.
5568 (InteractiveShell._prefilter): Defined the default with a _ so
5574 (InteractiveShell._prefilter): Defined the default with a _ so
5569 that prefilter() is easier to override, while the default one
5575 that prefilter() is easier to override, while the default one
5570 remains available.
5576 remains available.
5571
5577
5572 2002-04-18 Fernando Perez <fperez@colorado.edu>
5578 2002-04-18 Fernando Perez <fperez@colorado.edu>
5573
5579
5574 * Added information about pdb in the docs.
5580 * Added information about pdb in the docs.
5575
5581
5576 2002-04-17 Fernando Perez <fperez@colorado.edu>
5582 2002-04-17 Fernando Perez <fperez@colorado.edu>
5577
5583
5578 * IPython/ipmaker.py (make_IPython): added rc_override option to
5584 * IPython/ipmaker.py (make_IPython): added rc_override option to
5579 allow passing config options at creation time which may override
5585 allow passing config options at creation time which may override
5580 anything set in the config files or command line. This is
5586 anything set in the config files or command line. This is
5581 particularly useful for configuring embedded instances.
5587 particularly useful for configuring embedded instances.
5582
5588
5583 2002-04-15 Fernando Perez <fperez@colorado.edu>
5589 2002-04-15 Fernando Perez <fperez@colorado.edu>
5584
5590
5585 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5591 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5586 crash embedded instances because of the input cache falling out of
5592 crash embedded instances because of the input cache falling out of
5587 sync with the output counter.
5593 sync with the output counter.
5588
5594
5589 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5595 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5590 mode which calls pdb after an uncaught exception in IPython itself.
5596 mode which calls pdb after an uncaught exception in IPython itself.
5591
5597
5592 2002-04-14 Fernando Perez <fperez@colorado.edu>
5598 2002-04-14 Fernando Perez <fperez@colorado.edu>
5593
5599
5594 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5600 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5595 readline, fix it back after each call.
5601 readline, fix it back after each call.
5596
5602
5597 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5603 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5598 method to force all access via __call__(), which guarantees that
5604 method to force all access via __call__(), which guarantees that
5599 traceback references are properly deleted.
5605 traceback references are properly deleted.
5600
5606
5601 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5607 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5602 improve printing when pprint is in use.
5608 improve printing when pprint is in use.
5603
5609
5604 2002-04-13 Fernando Perez <fperez@colorado.edu>
5610 2002-04-13 Fernando Perez <fperez@colorado.edu>
5605
5611
5606 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5612 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5607 exceptions aren't caught anymore. If the user triggers one, he
5613 exceptions aren't caught anymore. If the user triggers one, he
5608 should know why he's doing it and it should go all the way up,
5614 should know why he's doing it and it should go all the way up,
5609 just like any other exception. So now @abort will fully kill the
5615 just like any other exception. So now @abort will fully kill the
5610 embedded interpreter and the embedding code (unless that happens
5616 embedded interpreter and the embedding code (unless that happens
5611 to catch SystemExit).
5617 to catch SystemExit).
5612
5618
5613 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5619 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5614 and a debugger() method to invoke the interactive pdb debugger
5620 and a debugger() method to invoke the interactive pdb debugger
5615 after printing exception information. Also added the corresponding
5621 after printing exception information. Also added the corresponding
5616 -pdb option and @pdb magic to control this feature, and updated
5622 -pdb option and @pdb magic to control this feature, and updated
5617 the docs. After a suggestion from Christopher Hart
5623 the docs. After a suggestion from Christopher Hart
5618 (hart-AT-caltech.edu).
5624 (hart-AT-caltech.edu).
5619
5625
5620 2002-04-12 Fernando Perez <fperez@colorado.edu>
5626 2002-04-12 Fernando Perez <fperez@colorado.edu>
5621
5627
5622 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5628 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5623 the exception handlers defined by the user (not the CrashHandler)
5629 the exception handlers defined by the user (not the CrashHandler)
5624 so that user exceptions don't trigger an ipython bug report.
5630 so that user exceptions don't trigger an ipython bug report.
5625
5631
5626 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5632 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5627 configurable (it should have always been so).
5633 configurable (it should have always been so).
5628
5634
5629 2002-03-26 Fernando Perez <fperez@colorado.edu>
5635 2002-03-26 Fernando Perez <fperez@colorado.edu>
5630
5636
5631 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5637 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5632 and there to fix embedding namespace issues. This should all be
5638 and there to fix embedding namespace issues. This should all be
5633 done in a more elegant way.
5639 done in a more elegant way.
5634
5640
5635 2002-03-25 Fernando Perez <fperez@colorado.edu>
5641 2002-03-25 Fernando Perez <fperez@colorado.edu>
5636
5642
5637 * IPython/genutils.py (get_home_dir): Try to make it work under
5643 * IPython/genutils.py (get_home_dir): Try to make it work under
5638 win9x also.
5644 win9x also.
5639
5645
5640 2002-03-20 Fernando Perez <fperez@colorado.edu>
5646 2002-03-20 Fernando Perez <fperez@colorado.edu>
5641
5647
5642 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5648 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5643 sys.displayhook untouched upon __init__.
5649 sys.displayhook untouched upon __init__.
5644
5650
5645 2002-03-19 Fernando Perez <fperez@colorado.edu>
5651 2002-03-19 Fernando Perez <fperez@colorado.edu>
5646
5652
5647 * Released 0.2.9 (for embedding bug, basically).
5653 * Released 0.2.9 (for embedding bug, basically).
5648
5654
5649 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5655 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5650 exceptions so that enclosing shell's state can be restored.
5656 exceptions so that enclosing shell's state can be restored.
5651
5657
5652 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5658 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5653 naming conventions in the .ipython/ dir.
5659 naming conventions in the .ipython/ dir.
5654
5660
5655 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5661 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5656 from delimiters list so filenames with - in them get expanded.
5662 from delimiters list so filenames with - in them get expanded.
5657
5663
5658 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5664 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5659 sys.displayhook not being properly restored after an embedded call.
5665 sys.displayhook not being properly restored after an embedded call.
5660
5666
5661 2002-03-18 Fernando Perez <fperez@colorado.edu>
5667 2002-03-18 Fernando Perez <fperez@colorado.edu>
5662
5668
5663 * Released 0.2.8
5669 * Released 0.2.8
5664
5670
5665 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5671 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5666 some files weren't being included in a -upgrade.
5672 some files weren't being included in a -upgrade.
5667 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5673 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5668 on' so that the first tab completes.
5674 on' so that the first tab completes.
5669 (InteractiveShell.handle_magic): fixed bug with spaces around
5675 (InteractiveShell.handle_magic): fixed bug with spaces around
5670 quotes breaking many magic commands.
5676 quotes breaking many magic commands.
5671
5677
5672 * setup.py: added note about ignoring the syntax error messages at
5678 * setup.py: added note about ignoring the syntax error messages at
5673 installation.
5679 installation.
5674
5680
5675 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5681 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5676 streamlining the gnuplot interface, now there's only one magic @gp.
5682 streamlining the gnuplot interface, now there's only one magic @gp.
5677
5683
5678 2002-03-17 Fernando Perez <fperez@colorado.edu>
5684 2002-03-17 Fernando Perez <fperez@colorado.edu>
5679
5685
5680 * IPython/UserConfig/magic_gnuplot.py: new name for the
5686 * IPython/UserConfig/magic_gnuplot.py: new name for the
5681 example-magic_pm.py file. Much enhanced system, now with a shell
5687 example-magic_pm.py file. Much enhanced system, now with a shell
5682 for communicating directly with gnuplot, one command at a time.
5688 for communicating directly with gnuplot, one command at a time.
5683
5689
5684 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5690 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5685 setting __name__=='__main__'.
5691 setting __name__=='__main__'.
5686
5692
5687 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5693 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5688 mini-shell for accessing gnuplot from inside ipython. Should
5694 mini-shell for accessing gnuplot from inside ipython. Should
5689 extend it later for grace access too. Inspired by Arnd's
5695 extend it later for grace access too. Inspired by Arnd's
5690 suggestion.
5696 suggestion.
5691
5697
5692 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5698 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5693 calling magic functions with () in their arguments. Thanks to Arnd
5699 calling magic functions with () in their arguments. Thanks to Arnd
5694 Baecker for pointing this to me.
5700 Baecker for pointing this to me.
5695
5701
5696 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5702 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5697 infinitely for integer or complex arrays (only worked with floats).
5703 infinitely for integer or complex arrays (only worked with floats).
5698
5704
5699 2002-03-16 Fernando Perez <fperez@colorado.edu>
5705 2002-03-16 Fernando Perez <fperez@colorado.edu>
5700
5706
5701 * setup.py: Merged setup and setup_windows into a single script
5707 * setup.py: Merged setup and setup_windows into a single script
5702 which properly handles things for windows users.
5708 which properly handles things for windows users.
5703
5709
5704 2002-03-15 Fernando Perez <fperez@colorado.edu>
5710 2002-03-15 Fernando Perez <fperez@colorado.edu>
5705
5711
5706 * Big change to the manual: now the magics are all automatically
5712 * Big change to the manual: now the magics are all automatically
5707 documented. This information is generated from their docstrings
5713 documented. This information is generated from their docstrings
5708 and put in a latex file included by the manual lyx file. This way
5714 and put in a latex file included by the manual lyx file. This way
5709 we get always up to date information for the magics. The manual
5715 we get always up to date information for the magics. The manual
5710 now also has proper version information, also auto-synced.
5716 now also has proper version information, also auto-synced.
5711
5717
5712 For this to work, an undocumented --magic_docstrings option was added.
5718 For this to work, an undocumented --magic_docstrings option was added.
5713
5719
5714 2002-03-13 Fernando Perez <fperez@colorado.edu>
5720 2002-03-13 Fernando Perez <fperez@colorado.edu>
5715
5721
5716 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5722 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5717 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5723 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5718
5724
5719 2002-03-12 Fernando Perez <fperez@colorado.edu>
5725 2002-03-12 Fernando Perez <fperez@colorado.edu>
5720
5726
5721 * IPython/ultraTB.py (TermColors): changed color escapes again to
5727 * IPython/ultraTB.py (TermColors): changed color escapes again to
5722 fix the (old, reintroduced) line-wrapping bug. Basically, if
5728 fix the (old, reintroduced) line-wrapping bug. Basically, if
5723 \001..\002 aren't given in the color escapes, lines get wrapped
5729 \001..\002 aren't given in the color escapes, lines get wrapped
5724 weirdly. But giving those screws up old xterms and emacs terms. So
5730 weirdly. But giving those screws up old xterms and emacs terms. So
5725 I added some logic for emacs terms to be ok, but I can't identify old
5731 I added some logic for emacs terms to be ok, but I can't identify old
5726 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5732 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5727
5733
5728 2002-03-10 Fernando Perez <fperez@colorado.edu>
5734 2002-03-10 Fernando Perez <fperez@colorado.edu>
5729
5735
5730 * IPython/usage.py (__doc__): Various documentation cleanups and
5736 * IPython/usage.py (__doc__): Various documentation cleanups and
5731 updates, both in usage docstrings and in the manual.
5737 updates, both in usage docstrings and in the manual.
5732
5738
5733 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5739 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5734 handling of caching. Set minimum acceptabe value for having a
5740 handling of caching. Set minimum acceptabe value for having a
5735 cache at 20 values.
5741 cache at 20 values.
5736
5742
5737 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5743 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5738 install_first_time function to a method, renamed it and added an
5744 install_first_time function to a method, renamed it and added an
5739 'upgrade' mode. Now people can update their config directory with
5745 'upgrade' mode. Now people can update their config directory with
5740 a simple command line switch (-upgrade, also new).
5746 a simple command line switch (-upgrade, also new).
5741
5747
5742 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5748 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5743 @file (convenient for automagic users under Python >= 2.2).
5749 @file (convenient for automagic users under Python >= 2.2).
5744 Removed @files (it seemed more like a plural than an abbrev. of
5750 Removed @files (it seemed more like a plural than an abbrev. of
5745 'file show').
5751 'file show').
5746
5752
5747 * IPython/iplib.py (install_first_time): Fixed crash if there were
5753 * IPython/iplib.py (install_first_time): Fixed crash if there were
5748 backup files ('~') in .ipython/ install directory.
5754 backup files ('~') in .ipython/ install directory.
5749
5755
5750 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5756 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5751 system. Things look fine, but these changes are fairly
5757 system. Things look fine, but these changes are fairly
5752 intrusive. Test them for a few days.
5758 intrusive. Test them for a few days.
5753
5759
5754 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5760 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5755 the prompts system. Now all in/out prompt strings are user
5761 the prompts system. Now all in/out prompt strings are user
5756 controllable. This is particularly useful for embedding, as one
5762 controllable. This is particularly useful for embedding, as one
5757 can tag embedded instances with particular prompts.
5763 can tag embedded instances with particular prompts.
5758
5764
5759 Also removed global use of sys.ps1/2, which now allows nested
5765 Also removed global use of sys.ps1/2, which now allows nested
5760 embeddings without any problems. Added command-line options for
5766 embeddings without any problems. Added command-line options for
5761 the prompt strings.
5767 the prompt strings.
5762
5768
5763 2002-03-08 Fernando Perez <fperez@colorado.edu>
5769 2002-03-08 Fernando Perez <fperez@colorado.edu>
5764
5770
5765 * IPython/UserConfig/example-embed-short.py (ipshell): added
5771 * IPython/UserConfig/example-embed-short.py (ipshell): added
5766 example file with the bare minimum code for embedding.
5772 example file with the bare minimum code for embedding.
5767
5773
5768 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5774 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5769 functionality for the embeddable shell to be activated/deactivated
5775 functionality for the embeddable shell to be activated/deactivated
5770 either globally or at each call.
5776 either globally or at each call.
5771
5777
5772 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5778 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5773 rewriting the prompt with '--->' for auto-inputs with proper
5779 rewriting the prompt with '--->' for auto-inputs with proper
5774 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5780 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5775 this is handled by the prompts class itself, as it should.
5781 this is handled by the prompts class itself, as it should.
5776
5782
5777 2002-03-05 Fernando Perez <fperez@colorado.edu>
5783 2002-03-05 Fernando Perez <fperez@colorado.edu>
5778
5784
5779 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5785 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5780 @logstart to avoid name clashes with the math log function.
5786 @logstart to avoid name clashes with the math log function.
5781
5787
5782 * Big updates to X/Emacs section of the manual.
5788 * Big updates to X/Emacs section of the manual.
5783
5789
5784 * Removed ipython_emacs. Milan explained to me how to pass
5790 * Removed ipython_emacs. Milan explained to me how to pass
5785 arguments to ipython through Emacs. Some day I'm going to end up
5791 arguments to ipython through Emacs. Some day I'm going to end up
5786 learning some lisp...
5792 learning some lisp...
5787
5793
5788 2002-03-04 Fernando Perez <fperez@colorado.edu>
5794 2002-03-04 Fernando Perez <fperez@colorado.edu>
5789
5795
5790 * IPython/ipython_emacs: Created script to be used as the
5796 * IPython/ipython_emacs: Created script to be used as the
5791 py-python-command Emacs variable so we can pass IPython
5797 py-python-command Emacs variable so we can pass IPython
5792 parameters. I can't figure out how to tell Emacs directly to pass
5798 parameters. I can't figure out how to tell Emacs directly to pass
5793 parameters to IPython, so a dummy shell script will do it.
5799 parameters to IPython, so a dummy shell script will do it.
5794
5800
5795 Other enhancements made for things to work better under Emacs'
5801 Other enhancements made for things to work better under Emacs'
5796 various types of terminals. Many thanks to Milan Zamazal
5802 various types of terminals. Many thanks to Milan Zamazal
5797 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5803 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5798
5804
5799 2002-03-01 Fernando Perez <fperez@colorado.edu>
5805 2002-03-01 Fernando Perez <fperez@colorado.edu>
5800
5806
5801 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5807 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5802 that loading of readline is now optional. This gives better
5808 that loading of readline is now optional. This gives better
5803 control to emacs users.
5809 control to emacs users.
5804
5810
5805 * IPython/ultraTB.py (__date__): Modified color escape sequences
5811 * IPython/ultraTB.py (__date__): Modified color escape sequences
5806 and now things work fine under xterm and in Emacs' term buffers
5812 and now things work fine under xterm and in Emacs' term buffers
5807 (though not shell ones). Well, in emacs you get colors, but all
5813 (though not shell ones). Well, in emacs you get colors, but all
5808 seem to be 'light' colors (no difference between dark and light
5814 seem to be 'light' colors (no difference between dark and light
5809 ones). But the garbage chars are gone, and also in xterms. It
5815 ones). But the garbage chars are gone, and also in xterms. It
5810 seems that now I'm using 'cleaner' ansi sequences.
5816 seems that now I'm using 'cleaner' ansi sequences.
5811
5817
5812 2002-02-21 Fernando Perez <fperez@colorado.edu>
5818 2002-02-21 Fernando Perez <fperez@colorado.edu>
5813
5819
5814 * Released 0.2.7 (mainly to publish the scoping fix).
5820 * Released 0.2.7 (mainly to publish the scoping fix).
5815
5821
5816 * IPython/Logger.py (Logger.logstate): added. A corresponding
5822 * IPython/Logger.py (Logger.logstate): added. A corresponding
5817 @logstate magic was created.
5823 @logstate magic was created.
5818
5824
5819 * IPython/Magic.py: fixed nested scoping problem under Python
5825 * IPython/Magic.py: fixed nested scoping problem under Python
5820 2.1.x (automagic wasn't working).
5826 2.1.x (automagic wasn't working).
5821
5827
5822 2002-02-20 Fernando Perez <fperez@colorado.edu>
5828 2002-02-20 Fernando Perez <fperez@colorado.edu>
5823
5829
5824 * Released 0.2.6.
5830 * Released 0.2.6.
5825
5831
5826 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5832 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5827 option so that logs can come out without any headers at all.
5833 option so that logs can come out without any headers at all.
5828
5834
5829 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5835 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5830 SciPy.
5836 SciPy.
5831
5837
5832 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5838 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5833 that embedded IPython calls don't require vars() to be explicitly
5839 that embedded IPython calls don't require vars() to be explicitly
5834 passed. Now they are extracted from the caller's frame (code
5840 passed. Now they are extracted from the caller's frame (code
5835 snatched from Eric Jones' weave). Added better documentation to
5841 snatched from Eric Jones' weave). Added better documentation to
5836 the section on embedding and the example file.
5842 the section on embedding and the example file.
5837
5843
5838 * IPython/genutils.py (page): Changed so that under emacs, it just
5844 * IPython/genutils.py (page): Changed so that under emacs, it just
5839 prints the string. You can then page up and down in the emacs
5845 prints the string. You can then page up and down in the emacs
5840 buffer itself. This is how the builtin help() works.
5846 buffer itself. This is how the builtin help() works.
5841
5847
5842 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5848 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5843 macro scoping: macros need to be executed in the user's namespace
5849 macro scoping: macros need to be executed in the user's namespace
5844 to work as if they had been typed by the user.
5850 to work as if they had been typed by the user.
5845
5851
5846 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5852 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5847 execute automatically (no need to type 'exec...'). They then
5853 execute automatically (no need to type 'exec...'). They then
5848 behave like 'true macros'. The printing system was also modified
5854 behave like 'true macros'. The printing system was also modified
5849 for this to work.
5855 for this to work.
5850
5856
5851 2002-02-19 Fernando Perez <fperez@colorado.edu>
5857 2002-02-19 Fernando Perez <fperez@colorado.edu>
5852
5858
5853 * IPython/genutils.py (page_file): new function for paging files
5859 * IPython/genutils.py (page_file): new function for paging files
5854 in an OS-independent way. Also necessary for file viewing to work
5860 in an OS-independent way. Also necessary for file viewing to work
5855 well inside Emacs buffers.
5861 well inside Emacs buffers.
5856 (page): Added checks for being in an emacs buffer.
5862 (page): Added checks for being in an emacs buffer.
5857 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5863 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5858 same bug in iplib.
5864 same bug in iplib.
5859
5865
5860 2002-02-18 Fernando Perez <fperez@colorado.edu>
5866 2002-02-18 Fernando Perez <fperez@colorado.edu>
5861
5867
5862 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5868 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5863 of readline so that IPython can work inside an Emacs buffer.
5869 of readline so that IPython can work inside an Emacs buffer.
5864
5870
5865 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5871 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5866 method signatures (they weren't really bugs, but it looks cleaner
5872 method signatures (they weren't really bugs, but it looks cleaner
5867 and keeps PyChecker happy).
5873 and keeps PyChecker happy).
5868
5874
5869 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5875 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5870 for implementing various user-defined hooks. Currently only
5876 for implementing various user-defined hooks. Currently only
5871 display is done.
5877 display is done.
5872
5878
5873 * IPython/Prompts.py (CachedOutput._display): changed display
5879 * IPython/Prompts.py (CachedOutput._display): changed display
5874 functions so that they can be dynamically changed by users easily.
5880 functions so that they can be dynamically changed by users easily.
5875
5881
5876 * IPython/Extensions/numeric_formats.py (num_display): added an
5882 * IPython/Extensions/numeric_formats.py (num_display): added an
5877 extension for printing NumPy arrays in flexible manners. It
5883 extension for printing NumPy arrays in flexible manners. It
5878 doesn't do anything yet, but all the structure is in
5884 doesn't do anything yet, but all the structure is in
5879 place. Ultimately the plan is to implement output format control
5885 place. Ultimately the plan is to implement output format control
5880 like in Octave.
5886 like in Octave.
5881
5887
5882 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5888 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5883 methods are found at run-time by all the automatic machinery.
5889 methods are found at run-time by all the automatic machinery.
5884
5890
5885 2002-02-17 Fernando Perez <fperez@colorado.edu>
5891 2002-02-17 Fernando Perez <fperez@colorado.edu>
5886
5892
5887 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5893 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5888 whole file a little.
5894 whole file a little.
5889
5895
5890 * ToDo: closed this document. Now there's a new_design.lyx
5896 * ToDo: closed this document. Now there's a new_design.lyx
5891 document for all new ideas. Added making a pdf of it for the
5897 document for all new ideas. Added making a pdf of it for the
5892 end-user distro.
5898 end-user distro.
5893
5899
5894 * IPython/Logger.py (Logger.switch_log): Created this to replace
5900 * IPython/Logger.py (Logger.switch_log): Created this to replace
5895 logon() and logoff(). It also fixes a nasty crash reported by
5901 logon() and logoff(). It also fixes a nasty crash reported by
5896 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5902 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5897
5903
5898 * IPython/iplib.py (complete): got auto-completion to work with
5904 * IPython/iplib.py (complete): got auto-completion to work with
5899 automagic (I had wanted this for a long time).
5905 automagic (I had wanted this for a long time).
5900
5906
5901 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5907 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5902 to @file, since file() is now a builtin and clashes with automagic
5908 to @file, since file() is now a builtin and clashes with automagic
5903 for @file.
5909 for @file.
5904
5910
5905 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5911 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5906 of this was previously in iplib, which had grown to more than 2000
5912 of this was previously in iplib, which had grown to more than 2000
5907 lines, way too long. No new functionality, but it makes managing
5913 lines, way too long. No new functionality, but it makes managing
5908 the code a bit easier.
5914 the code a bit easier.
5909
5915
5910 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5916 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5911 information to crash reports.
5917 information to crash reports.
5912
5918
5913 2002-02-12 Fernando Perez <fperez@colorado.edu>
5919 2002-02-12 Fernando Perez <fperez@colorado.edu>
5914
5920
5915 * Released 0.2.5.
5921 * Released 0.2.5.
5916
5922
5917 2002-02-11 Fernando Perez <fperez@colorado.edu>
5923 2002-02-11 Fernando Perez <fperez@colorado.edu>
5918
5924
5919 * Wrote a relatively complete Windows installer. It puts
5925 * Wrote a relatively complete Windows installer. It puts
5920 everything in place, creates Start Menu entries and fixes the
5926 everything in place, creates Start Menu entries and fixes the
5921 color issues. Nothing fancy, but it works.
5927 color issues. Nothing fancy, but it works.
5922
5928
5923 2002-02-10 Fernando Perez <fperez@colorado.edu>
5929 2002-02-10 Fernando Perez <fperez@colorado.edu>
5924
5930
5925 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5931 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5926 os.path.expanduser() call so that we can type @run ~/myfile.py and
5932 os.path.expanduser() call so that we can type @run ~/myfile.py and
5927 have thigs work as expected.
5933 have thigs work as expected.
5928
5934
5929 * IPython/genutils.py (page): fixed exception handling so things
5935 * IPython/genutils.py (page): fixed exception handling so things
5930 work both in Unix and Windows correctly. Quitting a pager triggers
5936 work both in Unix and Windows correctly. Quitting a pager triggers
5931 an IOError/broken pipe in Unix, and in windows not finding a pager
5937 an IOError/broken pipe in Unix, and in windows not finding a pager
5932 is also an IOError, so I had to actually look at the return value
5938 is also an IOError, so I had to actually look at the return value
5933 of the exception, not just the exception itself. Should be ok now.
5939 of the exception, not just the exception itself. Should be ok now.
5934
5940
5935 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5941 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5936 modified to allow case-insensitive color scheme changes.
5942 modified to allow case-insensitive color scheme changes.
5937
5943
5938 2002-02-09 Fernando Perez <fperez@colorado.edu>
5944 2002-02-09 Fernando Perez <fperez@colorado.edu>
5939
5945
5940 * IPython/genutils.py (native_line_ends): new function to leave
5946 * IPython/genutils.py (native_line_ends): new function to leave
5941 user config files with os-native line-endings.
5947 user config files with os-native line-endings.
5942
5948
5943 * README and manual updates.
5949 * README and manual updates.
5944
5950
5945 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5951 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5946 instead of StringType to catch Unicode strings.
5952 instead of StringType to catch Unicode strings.
5947
5953
5948 * IPython/genutils.py (filefind): fixed bug for paths with
5954 * IPython/genutils.py (filefind): fixed bug for paths with
5949 embedded spaces (very common in Windows).
5955 embedded spaces (very common in Windows).
5950
5956
5951 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5957 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5952 files under Windows, so that they get automatically associated
5958 files under Windows, so that they get automatically associated
5953 with a text editor. Windows makes it a pain to handle
5959 with a text editor. Windows makes it a pain to handle
5954 extension-less files.
5960 extension-less files.
5955
5961
5956 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5962 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5957 warning about readline only occur for Posix. In Windows there's no
5963 warning about readline only occur for Posix. In Windows there's no
5958 way to get readline, so why bother with the warning.
5964 way to get readline, so why bother with the warning.
5959
5965
5960 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5966 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5961 for __str__ instead of dir(self), since dir() changed in 2.2.
5967 for __str__ instead of dir(self), since dir() changed in 2.2.
5962
5968
5963 * Ported to Windows! Tested on XP, I suspect it should work fine
5969 * Ported to Windows! Tested on XP, I suspect it should work fine
5964 on NT/2000, but I don't think it will work on 98 et al. That
5970 on NT/2000, but I don't think it will work on 98 et al. That
5965 series of Windows is such a piece of junk anyway that I won't try
5971 series of Windows is such a piece of junk anyway that I won't try
5966 porting it there. The XP port was straightforward, showed a few
5972 porting it there. The XP port was straightforward, showed a few
5967 bugs here and there (fixed all), in particular some string
5973 bugs here and there (fixed all), in particular some string
5968 handling stuff which required considering Unicode strings (which
5974 handling stuff which required considering Unicode strings (which
5969 Windows uses). This is good, but hasn't been too tested :) No
5975 Windows uses). This is good, but hasn't been too tested :) No
5970 fancy installer yet, I'll put a note in the manual so people at
5976 fancy installer yet, I'll put a note in the manual so people at
5971 least make manually a shortcut.
5977 least make manually a shortcut.
5972
5978
5973 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5979 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5974 into a single one, "colors". This now controls both prompt and
5980 into a single one, "colors". This now controls both prompt and
5975 exception color schemes, and can be changed both at startup
5981 exception color schemes, and can be changed both at startup
5976 (either via command-line switches or via ipythonrc files) and at
5982 (either via command-line switches or via ipythonrc files) and at
5977 runtime, with @colors.
5983 runtime, with @colors.
5978 (Magic.magic_run): renamed @prun to @run and removed the old
5984 (Magic.magic_run): renamed @prun to @run and removed the old
5979 @run. The two were too similar to warrant keeping both.
5985 @run. The two were too similar to warrant keeping both.
5980
5986
5981 2002-02-03 Fernando Perez <fperez@colorado.edu>
5987 2002-02-03 Fernando Perez <fperez@colorado.edu>
5982
5988
5983 * IPython/iplib.py (install_first_time): Added comment on how to
5989 * IPython/iplib.py (install_first_time): Added comment on how to
5984 configure the color options for first-time users. Put a <return>
5990 configure the color options for first-time users. Put a <return>
5985 request at the end so that small-terminal users get a chance to
5991 request at the end so that small-terminal users get a chance to
5986 read the startup info.
5992 read the startup info.
5987
5993
5988 2002-01-23 Fernando Perez <fperez@colorado.edu>
5994 2002-01-23 Fernando Perez <fperez@colorado.edu>
5989
5995
5990 * IPython/iplib.py (CachedOutput.update): Changed output memory
5996 * IPython/iplib.py (CachedOutput.update): Changed output memory
5991 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5997 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5992 input history we still use _i. Did this b/c these variable are
5998 input history we still use _i. Did this b/c these variable are
5993 very commonly used in interactive work, so the less we need to
5999 very commonly used in interactive work, so the less we need to
5994 type the better off we are.
6000 type the better off we are.
5995 (Magic.magic_prun): updated @prun to better handle the namespaces
6001 (Magic.magic_prun): updated @prun to better handle the namespaces
5996 the file will run in, including a fix for __name__ not being set
6002 the file will run in, including a fix for __name__ not being set
5997 before.
6003 before.
5998
6004
5999 2002-01-20 Fernando Perez <fperez@colorado.edu>
6005 2002-01-20 Fernando Perez <fperez@colorado.edu>
6000
6006
6001 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6007 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6002 extra garbage for Python 2.2. Need to look more carefully into
6008 extra garbage for Python 2.2. Need to look more carefully into
6003 this later.
6009 this later.
6004
6010
6005 2002-01-19 Fernando Perez <fperez@colorado.edu>
6011 2002-01-19 Fernando Perez <fperez@colorado.edu>
6006
6012
6007 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6013 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6008 display SyntaxError exceptions properly formatted when they occur
6014 display SyntaxError exceptions properly formatted when they occur
6009 (they can be triggered by imported code).
6015 (they can be triggered by imported code).
6010
6016
6011 2002-01-18 Fernando Perez <fperez@colorado.edu>
6017 2002-01-18 Fernando Perez <fperez@colorado.edu>
6012
6018
6013 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6019 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6014 SyntaxError exceptions are reported nicely formatted, instead of
6020 SyntaxError exceptions are reported nicely formatted, instead of
6015 spitting out only offset information as before.
6021 spitting out only offset information as before.
6016 (Magic.magic_prun): Added the @prun function for executing
6022 (Magic.magic_prun): Added the @prun function for executing
6017 programs with command line args inside IPython.
6023 programs with command line args inside IPython.
6018
6024
6019 2002-01-16 Fernando Perez <fperez@colorado.edu>
6025 2002-01-16 Fernando Perez <fperez@colorado.edu>
6020
6026
6021 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6027 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6022 to *not* include the last item given in a range. This brings their
6028 to *not* include the last item given in a range. This brings their
6023 behavior in line with Python's slicing:
6029 behavior in line with Python's slicing:
6024 a[n1:n2] -> a[n1]...a[n2-1]
6030 a[n1:n2] -> a[n1]...a[n2-1]
6025 It may be a bit less convenient, but I prefer to stick to Python's
6031 It may be a bit less convenient, but I prefer to stick to Python's
6026 conventions *everywhere*, so users never have to wonder.
6032 conventions *everywhere*, so users never have to wonder.
6027 (Magic.magic_macro): Added @macro function to ease the creation of
6033 (Magic.magic_macro): Added @macro function to ease the creation of
6028 macros.
6034 macros.
6029
6035
6030 2002-01-05 Fernando Perez <fperez@colorado.edu>
6036 2002-01-05 Fernando Perez <fperez@colorado.edu>
6031
6037
6032 * Released 0.2.4.
6038 * Released 0.2.4.
6033
6039
6034 * IPython/iplib.py (Magic.magic_pdef):
6040 * IPython/iplib.py (Magic.magic_pdef):
6035 (InteractiveShell.safe_execfile): report magic lines and error
6041 (InteractiveShell.safe_execfile): report magic lines and error
6036 lines without line numbers so one can easily copy/paste them for
6042 lines without line numbers so one can easily copy/paste them for
6037 re-execution.
6043 re-execution.
6038
6044
6039 * Updated manual with recent changes.
6045 * Updated manual with recent changes.
6040
6046
6041 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6047 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6042 docstring printing when class? is called. Very handy for knowing
6048 docstring printing when class? is called. Very handy for knowing
6043 how to create class instances (as long as __init__ is well
6049 how to create class instances (as long as __init__ is well
6044 documented, of course :)
6050 documented, of course :)
6045 (Magic.magic_doc): print both class and constructor docstrings.
6051 (Magic.magic_doc): print both class and constructor docstrings.
6046 (Magic.magic_pdef): give constructor info if passed a class and
6052 (Magic.magic_pdef): give constructor info if passed a class and
6047 __call__ info for callable object instances.
6053 __call__ info for callable object instances.
6048
6054
6049 2002-01-04 Fernando Perez <fperez@colorado.edu>
6055 2002-01-04 Fernando Perez <fperez@colorado.edu>
6050
6056
6051 * Made deep_reload() off by default. It doesn't always work
6057 * Made deep_reload() off by default. It doesn't always work
6052 exactly as intended, so it's probably safer to have it off. It's
6058 exactly as intended, so it's probably safer to have it off. It's
6053 still available as dreload() anyway, so nothing is lost.
6059 still available as dreload() anyway, so nothing is lost.
6054
6060
6055 2002-01-02 Fernando Perez <fperez@colorado.edu>
6061 2002-01-02 Fernando Perez <fperez@colorado.edu>
6056
6062
6057 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6063 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6058 so I wanted an updated release).
6064 so I wanted an updated release).
6059
6065
6060 2001-12-27 Fernando Perez <fperez@colorado.edu>
6066 2001-12-27 Fernando Perez <fperez@colorado.edu>
6061
6067
6062 * IPython/iplib.py (InteractiveShell.interact): Added the original
6068 * IPython/iplib.py (InteractiveShell.interact): Added the original
6063 code from 'code.py' for this module in order to change the
6069 code from 'code.py' for this module in order to change the
6064 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6070 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6065 the history cache would break when the user hit Ctrl-C, and
6071 the history cache would break when the user hit Ctrl-C, and
6066 interact() offers no way to add any hooks to it.
6072 interact() offers no way to add any hooks to it.
6067
6073
6068 2001-12-23 Fernando Perez <fperez@colorado.edu>
6074 2001-12-23 Fernando Perez <fperez@colorado.edu>
6069
6075
6070 * setup.py: added check for 'MANIFEST' before trying to remove
6076 * setup.py: added check for 'MANIFEST' before trying to remove
6071 it. Thanks to Sean Reifschneider.
6077 it. Thanks to Sean Reifschneider.
6072
6078
6073 2001-12-22 Fernando Perez <fperez@colorado.edu>
6079 2001-12-22 Fernando Perez <fperez@colorado.edu>
6074
6080
6075 * Released 0.2.2.
6081 * Released 0.2.2.
6076
6082
6077 * Finished (reasonably) writing the manual. Later will add the
6083 * Finished (reasonably) writing the manual. Later will add the
6078 python-standard navigation stylesheets, but for the time being
6084 python-standard navigation stylesheets, but for the time being
6079 it's fairly complete. Distribution will include html and pdf
6085 it's fairly complete. Distribution will include html and pdf
6080 versions.
6086 versions.
6081
6087
6082 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6088 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6083 (MayaVi author).
6089 (MayaVi author).
6084
6090
6085 2001-12-21 Fernando Perez <fperez@colorado.edu>
6091 2001-12-21 Fernando Perez <fperez@colorado.edu>
6086
6092
6087 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6093 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6088 good public release, I think (with the manual and the distutils
6094 good public release, I think (with the manual and the distutils
6089 installer). The manual can use some work, but that can go
6095 installer). The manual can use some work, but that can go
6090 slowly. Otherwise I think it's quite nice for end users. Next
6096 slowly. Otherwise I think it's quite nice for end users. Next
6091 summer, rewrite the guts of it...
6097 summer, rewrite the guts of it...
6092
6098
6093 * Changed format of ipythonrc files to use whitespace as the
6099 * Changed format of ipythonrc files to use whitespace as the
6094 separator instead of an explicit '='. Cleaner.
6100 separator instead of an explicit '='. Cleaner.
6095
6101
6096 2001-12-20 Fernando Perez <fperez@colorado.edu>
6102 2001-12-20 Fernando Perez <fperez@colorado.edu>
6097
6103
6098 * Started a manual in LyX. For now it's just a quick merge of the
6104 * Started a manual in LyX. For now it's just a quick merge of the
6099 various internal docstrings and READMEs. Later it may grow into a
6105 various internal docstrings and READMEs. Later it may grow into a
6100 nice, full-blown manual.
6106 nice, full-blown manual.
6101
6107
6102 * Set up a distutils based installer. Installation should now be
6108 * Set up a distutils based installer. Installation should now be
6103 trivially simple for end-users.
6109 trivially simple for end-users.
6104
6110
6105 2001-12-11 Fernando Perez <fperez@colorado.edu>
6111 2001-12-11 Fernando Perez <fperez@colorado.edu>
6106
6112
6107 * Released 0.2.0. First public release, announced it at
6113 * Released 0.2.0. First public release, announced it at
6108 comp.lang.python. From now on, just bugfixes...
6114 comp.lang.python. From now on, just bugfixes...
6109
6115
6110 * Went through all the files, set copyright/license notices and
6116 * Went through all the files, set copyright/license notices and
6111 cleaned up things. Ready for release.
6117 cleaned up things. Ready for release.
6112
6118
6113 2001-12-10 Fernando Perez <fperez@colorado.edu>
6119 2001-12-10 Fernando Perez <fperez@colorado.edu>
6114
6120
6115 * Changed the first-time installer not to use tarfiles. It's more
6121 * Changed the first-time installer not to use tarfiles. It's more
6116 robust now and less unix-dependent. Also makes it easier for
6122 robust now and less unix-dependent. Also makes it easier for
6117 people to later upgrade versions.
6123 people to later upgrade versions.
6118
6124
6119 * Changed @exit to @abort to reflect the fact that it's pretty
6125 * Changed @exit to @abort to reflect the fact that it's pretty
6120 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6126 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6121 becomes significant only when IPyhton is embedded: in that case,
6127 becomes significant only when IPyhton is embedded: in that case,
6122 C-D closes IPython only, but @abort kills the enclosing program
6128 C-D closes IPython only, but @abort kills the enclosing program
6123 too (unless it had called IPython inside a try catching
6129 too (unless it had called IPython inside a try catching
6124 SystemExit).
6130 SystemExit).
6125
6131
6126 * Created Shell module which exposes the actuall IPython Shell
6132 * Created Shell module which exposes the actuall IPython Shell
6127 classes, currently the normal and the embeddable one. This at
6133 classes, currently the normal and the embeddable one. This at
6128 least offers a stable interface we won't need to change when
6134 least offers a stable interface we won't need to change when
6129 (later) the internals are rewritten. That rewrite will be confined
6135 (later) the internals are rewritten. That rewrite will be confined
6130 to iplib and ipmaker, but the Shell interface should remain as is.
6136 to iplib and ipmaker, but the Shell interface should remain as is.
6131
6137
6132 * Added embed module which offers an embeddable IPShell object,
6138 * Added embed module which offers an embeddable IPShell object,
6133 useful to fire up IPython *inside* a running program. Great for
6139 useful to fire up IPython *inside* a running program. Great for
6134 debugging or dynamical data analysis.
6140 debugging or dynamical data analysis.
6135
6141
6136 2001-12-08 Fernando Perez <fperez@colorado.edu>
6142 2001-12-08 Fernando Perez <fperez@colorado.edu>
6137
6143
6138 * Fixed small bug preventing seeing info from methods of defined
6144 * Fixed small bug preventing seeing info from methods of defined
6139 objects (incorrect namespace in _ofind()).
6145 objects (incorrect namespace in _ofind()).
6140
6146
6141 * Documentation cleanup. Moved the main usage docstrings to a
6147 * Documentation cleanup. Moved the main usage docstrings to a
6142 separate file, usage.py (cleaner to maintain, and hopefully in the
6148 separate file, usage.py (cleaner to maintain, and hopefully in the
6143 future some perlpod-like way of producing interactive, man and
6149 future some perlpod-like way of producing interactive, man and
6144 html docs out of it will be found).
6150 html docs out of it will be found).
6145
6151
6146 * Added @profile to see your profile at any time.
6152 * Added @profile to see your profile at any time.
6147
6153
6148 * Added @p as an alias for 'print'. It's especially convenient if
6154 * Added @p as an alias for 'print'. It's especially convenient if
6149 using automagic ('p x' prints x).
6155 using automagic ('p x' prints x).
6150
6156
6151 * Small cleanups and fixes after a pychecker run.
6157 * Small cleanups and fixes after a pychecker run.
6152
6158
6153 * Changed the @cd command to handle @cd - and @cd -<n> for
6159 * Changed the @cd command to handle @cd - and @cd -<n> for
6154 visiting any directory in _dh.
6160 visiting any directory in _dh.
6155
6161
6156 * Introduced _dh, a history of visited directories. @dhist prints
6162 * Introduced _dh, a history of visited directories. @dhist prints
6157 it out with numbers.
6163 it out with numbers.
6158
6164
6159 2001-12-07 Fernando Perez <fperez@colorado.edu>
6165 2001-12-07 Fernando Perez <fperez@colorado.edu>
6160
6166
6161 * Released 0.1.22
6167 * Released 0.1.22
6162
6168
6163 * Made initialization a bit more robust against invalid color
6169 * Made initialization a bit more robust against invalid color
6164 options in user input (exit, not traceback-crash).
6170 options in user input (exit, not traceback-crash).
6165
6171
6166 * Changed the bug crash reporter to write the report only in the
6172 * Changed the bug crash reporter to write the report only in the
6167 user's .ipython directory. That way IPython won't litter people's
6173 user's .ipython directory. That way IPython won't litter people's
6168 hard disks with crash files all over the place. Also print on
6174 hard disks with crash files all over the place. Also print on
6169 screen the necessary mail command.
6175 screen the necessary mail command.
6170
6176
6171 * With the new ultraTB, implemented LightBG color scheme for light
6177 * With the new ultraTB, implemented LightBG color scheme for light
6172 background terminals. A lot of people like white backgrounds, so I
6178 background terminals. A lot of people like white backgrounds, so I
6173 guess we should at least give them something readable.
6179 guess we should at least give them something readable.
6174
6180
6175 2001-12-06 Fernando Perez <fperez@colorado.edu>
6181 2001-12-06 Fernando Perez <fperez@colorado.edu>
6176
6182
6177 * Modified the structure of ultraTB. Now there's a proper class
6183 * Modified the structure of ultraTB. Now there's a proper class
6178 for tables of color schemes which allow adding schemes easily and
6184 for tables of color schemes which allow adding schemes easily and
6179 switching the active scheme without creating a new instance every
6185 switching the active scheme without creating a new instance every
6180 time (which was ridiculous). The syntax for creating new schemes
6186 time (which was ridiculous). The syntax for creating new schemes
6181 is also cleaner. I think ultraTB is finally done, with a clean
6187 is also cleaner. I think ultraTB is finally done, with a clean
6182 class structure. Names are also much cleaner (now there's proper
6188 class structure. Names are also much cleaner (now there's proper
6183 color tables, no need for every variable to also have 'color' in
6189 color tables, no need for every variable to also have 'color' in
6184 its name).
6190 its name).
6185
6191
6186 * Broke down genutils into separate files. Now genutils only
6192 * Broke down genutils into separate files. Now genutils only
6187 contains utility functions, and classes have been moved to their
6193 contains utility functions, and classes have been moved to their
6188 own files (they had enough independent functionality to warrant
6194 own files (they had enough independent functionality to warrant
6189 it): ConfigLoader, OutputTrap, Struct.
6195 it): ConfigLoader, OutputTrap, Struct.
6190
6196
6191 2001-12-05 Fernando Perez <fperez@colorado.edu>
6197 2001-12-05 Fernando Perez <fperez@colorado.edu>
6192
6198
6193 * IPython turns 21! Released version 0.1.21, as a candidate for
6199 * IPython turns 21! Released version 0.1.21, as a candidate for
6194 public consumption. If all goes well, release in a few days.
6200 public consumption. If all goes well, release in a few days.
6195
6201
6196 * Fixed path bug (files in Extensions/ directory wouldn't be found
6202 * Fixed path bug (files in Extensions/ directory wouldn't be found
6197 unless IPython/ was explicitly in sys.path).
6203 unless IPython/ was explicitly in sys.path).
6198
6204
6199 * Extended the FlexCompleter class as MagicCompleter to allow
6205 * Extended the FlexCompleter class as MagicCompleter to allow
6200 completion of @-starting lines.
6206 completion of @-starting lines.
6201
6207
6202 * Created __release__.py file as a central repository for release
6208 * Created __release__.py file as a central repository for release
6203 info that other files can read from.
6209 info that other files can read from.
6204
6210
6205 * Fixed small bug in logging: when logging was turned on in
6211 * Fixed small bug in logging: when logging was turned on in
6206 mid-session, old lines with special meanings (!@?) were being
6212 mid-session, old lines with special meanings (!@?) were being
6207 logged without the prepended comment, which is necessary since
6213 logged without the prepended comment, which is necessary since
6208 they are not truly valid python syntax. This should make session
6214 they are not truly valid python syntax. This should make session
6209 restores produce less errors.
6215 restores produce less errors.
6210
6216
6211 * The namespace cleanup forced me to make a FlexCompleter class
6217 * The namespace cleanup forced me to make a FlexCompleter class
6212 which is nothing but a ripoff of rlcompleter, but with selectable
6218 which is nothing but a ripoff of rlcompleter, but with selectable
6213 namespace (rlcompleter only works in __main__.__dict__). I'll try
6219 namespace (rlcompleter only works in __main__.__dict__). I'll try
6214 to submit a note to the authors to see if this change can be
6220 to submit a note to the authors to see if this change can be
6215 incorporated in future rlcompleter releases (Dec.6: done)
6221 incorporated in future rlcompleter releases (Dec.6: done)
6216
6222
6217 * More fixes to namespace handling. It was a mess! Now all
6223 * More fixes to namespace handling. It was a mess! Now all
6218 explicit references to __main__.__dict__ are gone (except when
6224 explicit references to __main__.__dict__ are gone (except when
6219 really needed) and everything is handled through the namespace
6225 really needed) and everything is handled through the namespace
6220 dicts in the IPython instance. We seem to be getting somewhere
6226 dicts in the IPython instance. We seem to be getting somewhere
6221 with this, finally...
6227 with this, finally...
6222
6228
6223 * Small documentation updates.
6229 * Small documentation updates.
6224
6230
6225 * Created the Extensions directory under IPython (with an
6231 * Created the Extensions directory under IPython (with an
6226 __init__.py). Put the PhysicalQ stuff there. This directory should
6232 __init__.py). Put the PhysicalQ stuff there. This directory should
6227 be used for all special-purpose extensions.
6233 be used for all special-purpose extensions.
6228
6234
6229 * File renaming:
6235 * File renaming:
6230 ipythonlib --> ipmaker
6236 ipythonlib --> ipmaker
6231 ipplib --> iplib
6237 ipplib --> iplib
6232 This makes a bit more sense in terms of what these files actually do.
6238 This makes a bit more sense in terms of what these files actually do.
6233
6239
6234 * Moved all the classes and functions in ipythonlib to ipplib, so
6240 * Moved all the classes and functions in ipythonlib to ipplib, so
6235 now ipythonlib only has make_IPython(). This will ease up its
6241 now ipythonlib only has make_IPython(). This will ease up its
6236 splitting in smaller functional chunks later.
6242 splitting in smaller functional chunks later.
6237
6243
6238 * Cleaned up (done, I think) output of @whos. Better column
6244 * Cleaned up (done, I think) output of @whos. Better column
6239 formatting, and now shows str(var) for as much as it can, which is
6245 formatting, and now shows str(var) for as much as it can, which is
6240 typically what one gets with a 'print var'.
6246 typically what one gets with a 'print var'.
6241
6247
6242 2001-12-04 Fernando Perez <fperez@colorado.edu>
6248 2001-12-04 Fernando Perez <fperez@colorado.edu>
6243
6249
6244 * Fixed namespace problems. Now builtin/IPyhton/user names get
6250 * Fixed namespace problems. Now builtin/IPyhton/user names get
6245 properly reported in their namespace. Internal namespace handling
6251 properly reported in their namespace. Internal namespace handling
6246 is finally getting decent (not perfect yet, but much better than
6252 is finally getting decent (not perfect yet, but much better than
6247 the ad-hoc mess we had).
6253 the ad-hoc mess we had).
6248
6254
6249 * Removed -exit option. If people just want to run a python
6255 * Removed -exit option. If people just want to run a python
6250 script, that's what the normal interpreter is for. Less
6256 script, that's what the normal interpreter is for. Less
6251 unnecessary options, less chances for bugs.
6257 unnecessary options, less chances for bugs.
6252
6258
6253 * Added a crash handler which generates a complete post-mortem if
6259 * Added a crash handler which generates a complete post-mortem if
6254 IPython crashes. This will help a lot in tracking bugs down the
6260 IPython crashes. This will help a lot in tracking bugs down the
6255 road.
6261 road.
6256
6262
6257 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6263 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6258 which were boud to functions being reassigned would bypass the
6264 which were boud to functions being reassigned would bypass the
6259 logger, breaking the sync of _il with the prompt counter. This
6265 logger, breaking the sync of _il with the prompt counter. This
6260 would then crash IPython later when a new line was logged.
6266 would then crash IPython later when a new line was logged.
6261
6267
6262 2001-12-02 Fernando Perez <fperez@colorado.edu>
6268 2001-12-02 Fernando Perez <fperez@colorado.edu>
6263
6269
6264 * Made IPython a package. This means people don't have to clutter
6270 * Made IPython a package. This means people don't have to clutter
6265 their sys.path with yet another directory. Changed the INSTALL
6271 their sys.path with yet another directory. Changed the INSTALL
6266 file accordingly.
6272 file accordingly.
6267
6273
6268 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6274 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6269 sorts its output (so @who shows it sorted) and @whos formats the
6275 sorts its output (so @who shows it sorted) and @whos formats the
6270 table according to the width of the first column. Nicer, easier to
6276 table according to the width of the first column. Nicer, easier to
6271 read. Todo: write a generic table_format() which takes a list of
6277 read. Todo: write a generic table_format() which takes a list of
6272 lists and prints it nicely formatted, with optional row/column
6278 lists and prints it nicely formatted, with optional row/column
6273 separators and proper padding and justification.
6279 separators and proper padding and justification.
6274
6280
6275 * Released 0.1.20
6281 * Released 0.1.20
6276
6282
6277 * Fixed bug in @log which would reverse the inputcache list (a
6283 * Fixed bug in @log which would reverse the inputcache list (a
6278 copy operation was missing).
6284 copy operation was missing).
6279
6285
6280 * Code cleanup. @config was changed to use page(). Better, since
6286 * Code cleanup. @config was changed to use page(). Better, since
6281 its output is always quite long.
6287 its output is always quite long.
6282
6288
6283 * Itpl is back as a dependency. I was having too many problems
6289 * Itpl is back as a dependency. I was having too many problems
6284 getting the parametric aliases to work reliably, and it's just
6290 getting the parametric aliases to work reliably, and it's just
6285 easier to code weird string operations with it than playing %()s
6291 easier to code weird string operations with it than playing %()s
6286 games. It's only ~6k, so I don't think it's too big a deal.
6292 games. It's only ~6k, so I don't think it's too big a deal.
6287
6293
6288 * Found (and fixed) a very nasty bug with history. !lines weren't
6294 * Found (and fixed) a very nasty bug with history. !lines weren't
6289 getting cached, and the out of sync caches would crash
6295 getting cached, and the out of sync caches would crash
6290 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6296 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6291 division of labor a bit better. Bug fixed, cleaner structure.
6297 division of labor a bit better. Bug fixed, cleaner structure.
6292
6298
6293 2001-12-01 Fernando Perez <fperez@colorado.edu>
6299 2001-12-01 Fernando Perez <fperez@colorado.edu>
6294
6300
6295 * Released 0.1.19
6301 * Released 0.1.19
6296
6302
6297 * Added option -n to @hist to prevent line number printing. Much
6303 * Added option -n to @hist to prevent line number printing. Much
6298 easier to copy/paste code this way.
6304 easier to copy/paste code this way.
6299
6305
6300 * Created global _il to hold the input list. Allows easy
6306 * Created global _il to hold the input list. Allows easy
6301 re-execution of blocks of code by slicing it (inspired by Janko's
6307 re-execution of blocks of code by slicing it (inspired by Janko's
6302 comment on 'macros').
6308 comment on 'macros').
6303
6309
6304 * Small fixes and doc updates.
6310 * Small fixes and doc updates.
6305
6311
6306 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6312 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6307 much too fragile with automagic. Handles properly multi-line
6313 much too fragile with automagic. Handles properly multi-line
6308 statements and takes parameters.
6314 statements and takes parameters.
6309
6315
6310 2001-11-30 Fernando Perez <fperez@colorado.edu>
6316 2001-11-30 Fernando Perez <fperez@colorado.edu>
6311
6317
6312 * Version 0.1.18 released.
6318 * Version 0.1.18 released.
6313
6319
6314 * Fixed nasty namespace bug in initial module imports.
6320 * Fixed nasty namespace bug in initial module imports.
6315
6321
6316 * Added copyright/license notes to all code files (except
6322 * Added copyright/license notes to all code files (except
6317 DPyGetOpt). For the time being, LGPL. That could change.
6323 DPyGetOpt). For the time being, LGPL. That could change.
6318
6324
6319 * Rewrote a much nicer README, updated INSTALL, cleaned up
6325 * Rewrote a much nicer README, updated INSTALL, cleaned up
6320 ipythonrc-* samples.
6326 ipythonrc-* samples.
6321
6327
6322 * Overall code/documentation cleanup. Basically ready for
6328 * Overall code/documentation cleanup. Basically ready for
6323 release. Only remaining thing: licence decision (LGPL?).
6329 release. Only remaining thing: licence decision (LGPL?).
6324
6330
6325 * Converted load_config to a class, ConfigLoader. Now recursion
6331 * Converted load_config to a class, ConfigLoader. Now recursion
6326 control is better organized. Doesn't include the same file twice.
6332 control is better organized. Doesn't include the same file twice.
6327
6333
6328 2001-11-29 Fernando Perez <fperez@colorado.edu>
6334 2001-11-29 Fernando Perez <fperez@colorado.edu>
6329
6335
6330 * Got input history working. Changed output history variables from
6336 * Got input history working. Changed output history variables from
6331 _p to _o so that _i is for input and _o for output. Just cleaner
6337 _p to _o so that _i is for input and _o for output. Just cleaner
6332 convention.
6338 convention.
6333
6339
6334 * Implemented parametric aliases. This pretty much allows the
6340 * Implemented parametric aliases. This pretty much allows the
6335 alias system to offer full-blown shell convenience, I think.
6341 alias system to offer full-blown shell convenience, I think.
6336
6342
6337 * Version 0.1.17 released, 0.1.18 opened.
6343 * Version 0.1.17 released, 0.1.18 opened.
6338
6344
6339 * dot_ipython/ipythonrc (alias): added documentation.
6345 * dot_ipython/ipythonrc (alias): added documentation.
6340 (xcolor): Fixed small bug (xcolors -> xcolor)
6346 (xcolor): Fixed small bug (xcolors -> xcolor)
6341
6347
6342 * Changed the alias system. Now alias is a magic command to define
6348 * Changed the alias system. Now alias is a magic command to define
6343 aliases just like the shell. Rationale: the builtin magics should
6349 aliases just like the shell. Rationale: the builtin magics should
6344 be there for things deeply connected to IPython's
6350 be there for things deeply connected to IPython's
6345 architecture. And this is a much lighter system for what I think
6351 architecture. And this is a much lighter system for what I think
6346 is the really important feature: allowing users to define quickly
6352 is the really important feature: allowing users to define quickly
6347 magics that will do shell things for them, so they can customize
6353 magics that will do shell things for them, so they can customize
6348 IPython easily to match their work habits. If someone is really
6354 IPython easily to match their work habits. If someone is really
6349 desperate to have another name for a builtin alias, they can
6355 desperate to have another name for a builtin alias, they can
6350 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6356 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6351 works.
6357 works.
6352
6358
6353 2001-11-28 Fernando Perez <fperez@colorado.edu>
6359 2001-11-28 Fernando Perez <fperez@colorado.edu>
6354
6360
6355 * Changed @file so that it opens the source file at the proper
6361 * Changed @file so that it opens the source file at the proper
6356 line. Since it uses less, if your EDITOR environment is
6362 line. Since it uses less, if your EDITOR environment is
6357 configured, typing v will immediately open your editor of choice
6363 configured, typing v will immediately open your editor of choice
6358 right at the line where the object is defined. Not as quick as
6364 right at the line where the object is defined. Not as quick as
6359 having a direct @edit command, but for all intents and purposes it
6365 having a direct @edit command, but for all intents and purposes it
6360 works. And I don't have to worry about writing @edit to deal with
6366 works. And I don't have to worry about writing @edit to deal with
6361 all the editors, less does that.
6367 all the editors, less does that.
6362
6368
6363 * Version 0.1.16 released, 0.1.17 opened.
6369 * Version 0.1.16 released, 0.1.17 opened.
6364
6370
6365 * Fixed some nasty bugs in the page/page_dumb combo that could
6371 * Fixed some nasty bugs in the page/page_dumb combo that could
6366 crash IPython.
6372 crash IPython.
6367
6373
6368 2001-11-27 Fernando Perez <fperez@colorado.edu>
6374 2001-11-27 Fernando Perez <fperez@colorado.edu>
6369
6375
6370 * Version 0.1.15 released, 0.1.16 opened.
6376 * Version 0.1.15 released, 0.1.16 opened.
6371
6377
6372 * Finally got ? and ?? to work for undefined things: now it's
6378 * Finally got ? and ?? to work for undefined things: now it's
6373 possible to type {}.get? and get information about the get method
6379 possible to type {}.get? and get information about the get method
6374 of dicts, or os.path? even if only os is defined (so technically
6380 of dicts, or os.path? even if only os is defined (so technically
6375 os.path isn't). Works at any level. For example, after import os,
6381 os.path isn't). Works at any level. For example, after import os,
6376 os?, os.path?, os.path.abspath? all work. This is great, took some
6382 os?, os.path?, os.path.abspath? all work. This is great, took some
6377 work in _ofind.
6383 work in _ofind.
6378
6384
6379 * Fixed more bugs with logging. The sanest way to do it was to add
6385 * Fixed more bugs with logging. The sanest way to do it was to add
6380 to @log a 'mode' parameter. Killed two in one shot (this mode
6386 to @log a 'mode' parameter. Killed two in one shot (this mode
6381 option was a request of Janko's). I think it's finally clean
6387 option was a request of Janko's). I think it's finally clean
6382 (famous last words).
6388 (famous last words).
6383
6389
6384 * Added a page_dumb() pager which does a decent job of paging on
6390 * Added a page_dumb() pager which does a decent job of paging on
6385 screen, if better things (like less) aren't available. One less
6391 screen, if better things (like less) aren't available. One less
6386 unix dependency (someday maybe somebody will port this to
6392 unix dependency (someday maybe somebody will port this to
6387 windows).
6393 windows).
6388
6394
6389 * Fixed problem in magic_log: would lock of logging out if log
6395 * Fixed problem in magic_log: would lock of logging out if log
6390 creation failed (because it would still think it had succeeded).
6396 creation failed (because it would still think it had succeeded).
6391
6397
6392 * Improved the page() function using curses to auto-detect screen
6398 * Improved the page() function using curses to auto-detect screen
6393 size. Now it can make a much better decision on whether to print
6399 size. Now it can make a much better decision on whether to print
6394 or page a string. Option screen_length was modified: a value 0
6400 or page a string. Option screen_length was modified: a value 0
6395 means auto-detect, and that's the default now.
6401 means auto-detect, and that's the default now.
6396
6402
6397 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6403 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6398 go out. I'll test it for a few days, then talk to Janko about
6404 go out. I'll test it for a few days, then talk to Janko about
6399 licences and announce it.
6405 licences and announce it.
6400
6406
6401 * Fixed the length of the auto-generated ---> prompt which appears
6407 * Fixed the length of the auto-generated ---> prompt which appears
6402 for auto-parens and auto-quotes. Getting this right isn't trivial,
6408 for auto-parens and auto-quotes. Getting this right isn't trivial,
6403 with all the color escapes, different prompt types and optional
6409 with all the color escapes, different prompt types and optional
6404 separators. But it seems to be working in all the combinations.
6410 separators. But it seems to be working in all the combinations.
6405
6411
6406 2001-11-26 Fernando Perez <fperez@colorado.edu>
6412 2001-11-26 Fernando Perez <fperez@colorado.edu>
6407
6413
6408 * Wrote a regexp filter to get option types from the option names
6414 * Wrote a regexp filter to get option types from the option names
6409 string. This eliminates the need to manually keep two duplicate
6415 string. This eliminates the need to manually keep two duplicate
6410 lists.
6416 lists.
6411
6417
6412 * Removed the unneeded check_option_names. Now options are handled
6418 * Removed the unneeded check_option_names. Now options are handled
6413 in a much saner manner and it's easy to visually check that things
6419 in a much saner manner and it's easy to visually check that things
6414 are ok.
6420 are ok.
6415
6421
6416 * Updated version numbers on all files I modified to carry a
6422 * Updated version numbers on all files I modified to carry a
6417 notice so Janko and Nathan have clear version markers.
6423 notice so Janko and Nathan have clear version markers.
6418
6424
6419 * Updated docstring for ultraTB with my changes. I should send
6425 * Updated docstring for ultraTB with my changes. I should send
6420 this to Nathan.
6426 this to Nathan.
6421
6427
6422 * Lots of small fixes. Ran everything through pychecker again.
6428 * Lots of small fixes. Ran everything through pychecker again.
6423
6429
6424 * Made loading of deep_reload an cmd line option. If it's not too
6430 * Made loading of deep_reload an cmd line option. If it's not too
6425 kosher, now people can just disable it. With -nodeep_reload it's
6431 kosher, now people can just disable it. With -nodeep_reload it's
6426 still available as dreload(), it just won't overwrite reload().
6432 still available as dreload(), it just won't overwrite reload().
6427
6433
6428 * Moved many options to the no| form (-opt and -noopt
6434 * Moved many options to the no| form (-opt and -noopt
6429 accepted). Cleaner.
6435 accepted). Cleaner.
6430
6436
6431 * Changed magic_log so that if called with no parameters, it uses
6437 * Changed magic_log so that if called with no parameters, it uses
6432 'rotate' mode. That way auto-generated logs aren't automatically
6438 'rotate' mode. That way auto-generated logs aren't automatically
6433 over-written. For normal logs, now a backup is made if it exists
6439 over-written. For normal logs, now a backup is made if it exists
6434 (only 1 level of backups). A new 'backup' mode was added to the
6440 (only 1 level of backups). A new 'backup' mode was added to the
6435 Logger class to support this. This was a request by Janko.
6441 Logger class to support this. This was a request by Janko.
6436
6442
6437 * Added @logoff/@logon to stop/restart an active log.
6443 * Added @logoff/@logon to stop/restart an active log.
6438
6444
6439 * Fixed a lot of bugs in log saving/replay. It was pretty
6445 * Fixed a lot of bugs in log saving/replay. It was pretty
6440 broken. Now special lines (!@,/) appear properly in the command
6446 broken. Now special lines (!@,/) appear properly in the command
6441 history after a log replay.
6447 history after a log replay.
6442
6448
6443 * Tried and failed to implement full session saving via pickle. My
6449 * Tried and failed to implement full session saving via pickle. My
6444 idea was to pickle __main__.__dict__, but modules can't be
6450 idea was to pickle __main__.__dict__, but modules can't be
6445 pickled. This would be a better alternative to replaying logs, but
6451 pickled. This would be a better alternative to replaying logs, but
6446 seems quite tricky to get to work. Changed -session to be called
6452 seems quite tricky to get to work. Changed -session to be called
6447 -logplay, which more accurately reflects what it does. And if we
6453 -logplay, which more accurately reflects what it does. And if we
6448 ever get real session saving working, -session is now available.
6454 ever get real session saving working, -session is now available.
6449
6455
6450 * Implemented color schemes for prompts also. As for tracebacks,
6456 * Implemented color schemes for prompts also. As for tracebacks,
6451 currently only NoColor and Linux are supported. But now the
6457 currently only NoColor and Linux are supported. But now the
6452 infrastructure is in place, based on a generic ColorScheme
6458 infrastructure is in place, based on a generic ColorScheme
6453 class. So writing and activating new schemes both for the prompts
6459 class. So writing and activating new schemes both for the prompts
6454 and the tracebacks should be straightforward.
6460 and the tracebacks should be straightforward.
6455
6461
6456 * Version 0.1.13 released, 0.1.14 opened.
6462 * Version 0.1.13 released, 0.1.14 opened.
6457
6463
6458 * Changed handling of options for output cache. Now counter is
6464 * Changed handling of options for output cache. Now counter is
6459 hardwired starting at 1 and one specifies the maximum number of
6465 hardwired starting at 1 and one specifies the maximum number of
6460 entries *in the outcache* (not the max prompt counter). This is
6466 entries *in the outcache* (not the max prompt counter). This is
6461 much better, since many statements won't increase the cache
6467 much better, since many statements won't increase the cache
6462 count. It also eliminated some confusing options, now there's only
6468 count. It also eliminated some confusing options, now there's only
6463 one: cache_size.
6469 one: cache_size.
6464
6470
6465 * Added 'alias' magic function and magic_alias option in the
6471 * Added 'alias' magic function and magic_alias option in the
6466 ipythonrc file. Now the user can easily define whatever names he
6472 ipythonrc file. Now the user can easily define whatever names he
6467 wants for the magic functions without having to play weird
6473 wants for the magic functions without having to play weird
6468 namespace games. This gives IPython a real shell-like feel.
6474 namespace games. This gives IPython a real shell-like feel.
6469
6475
6470 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6476 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6471 @ or not).
6477 @ or not).
6472
6478
6473 This was one of the last remaining 'visible' bugs (that I know
6479 This was one of the last remaining 'visible' bugs (that I know
6474 of). I think if I can clean up the session loading so it works
6480 of). I think if I can clean up the session loading so it works
6475 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6481 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6476 about licensing).
6482 about licensing).
6477
6483
6478 2001-11-25 Fernando Perez <fperez@colorado.edu>
6484 2001-11-25 Fernando Perez <fperez@colorado.edu>
6479
6485
6480 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6486 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6481 there's a cleaner distinction between what ? and ?? show.
6487 there's a cleaner distinction between what ? and ?? show.
6482
6488
6483 * Added screen_length option. Now the user can define his own
6489 * Added screen_length option. Now the user can define his own
6484 screen size for page() operations.
6490 screen size for page() operations.
6485
6491
6486 * Implemented magic shell-like functions with automatic code
6492 * Implemented magic shell-like functions with automatic code
6487 generation. Now adding another function is just a matter of adding
6493 generation. Now adding another function is just a matter of adding
6488 an entry to a dict, and the function is dynamically generated at
6494 an entry to a dict, and the function is dynamically generated at
6489 run-time. Python has some really cool features!
6495 run-time. Python has some really cool features!
6490
6496
6491 * Renamed many options to cleanup conventions a little. Now all
6497 * Renamed many options to cleanup conventions a little. Now all
6492 are lowercase, and only underscores where needed. Also in the code
6498 are lowercase, and only underscores where needed. Also in the code
6493 option name tables are clearer.
6499 option name tables are clearer.
6494
6500
6495 * Changed prompts a little. Now input is 'In [n]:' instead of
6501 * Changed prompts a little. Now input is 'In [n]:' instead of
6496 'In[n]:='. This allows it the numbers to be aligned with the
6502 'In[n]:='. This allows it the numbers to be aligned with the
6497 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6503 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6498 Python (it was a Mathematica thing). The '...' continuation prompt
6504 Python (it was a Mathematica thing). The '...' continuation prompt
6499 was also changed a little to align better.
6505 was also changed a little to align better.
6500
6506
6501 * Fixed bug when flushing output cache. Not all _p<n> variables
6507 * Fixed bug when flushing output cache. Not all _p<n> variables
6502 exist, so their deletion needs to be wrapped in a try:
6508 exist, so their deletion needs to be wrapped in a try:
6503
6509
6504 * Figured out how to properly use inspect.formatargspec() (it
6510 * Figured out how to properly use inspect.formatargspec() (it
6505 requires the args preceded by *). So I removed all the code from
6511 requires the args preceded by *). So I removed all the code from
6506 _get_pdef in Magic, which was just replicating that.
6512 _get_pdef in Magic, which was just replicating that.
6507
6513
6508 * Added test to prefilter to allow redefining magic function names
6514 * Added test to prefilter to allow redefining magic function names
6509 as variables. This is ok, since the @ form is always available,
6515 as variables. This is ok, since the @ form is always available,
6510 but whe should allow the user to define a variable called 'ls' if
6516 but whe should allow the user to define a variable called 'ls' if
6511 he needs it.
6517 he needs it.
6512
6518
6513 * Moved the ToDo information from README into a separate ToDo.
6519 * Moved the ToDo information from README into a separate ToDo.
6514
6520
6515 * General code cleanup and small bugfixes. I think it's close to a
6521 * General code cleanup and small bugfixes. I think it's close to a
6516 state where it can be released, obviously with a big 'beta'
6522 state where it can be released, obviously with a big 'beta'
6517 warning on it.
6523 warning on it.
6518
6524
6519 * Got the magic function split to work. Now all magics are defined
6525 * Got the magic function split to work. Now all magics are defined
6520 in a separate class. It just organizes things a bit, and now
6526 in a separate class. It just organizes things a bit, and now
6521 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6527 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6522 was too long).
6528 was too long).
6523
6529
6524 * Changed @clear to @reset to avoid potential confusions with
6530 * Changed @clear to @reset to avoid potential confusions with
6525 the shell command clear. Also renamed @cl to @clear, which does
6531 the shell command clear. Also renamed @cl to @clear, which does
6526 exactly what people expect it to from their shell experience.
6532 exactly what people expect it to from their shell experience.
6527
6533
6528 Added a check to the @reset command (since it's so
6534 Added a check to the @reset command (since it's so
6529 destructive, it's probably a good idea to ask for confirmation).
6535 destructive, it's probably a good idea to ask for confirmation).
6530 But now reset only works for full namespace resetting. Since the
6536 But now reset only works for full namespace resetting. Since the
6531 del keyword is already there for deleting a few specific
6537 del keyword is already there for deleting a few specific
6532 variables, I don't see the point of having a redundant magic
6538 variables, I don't see the point of having a redundant magic
6533 function for the same task.
6539 function for the same task.
6534
6540
6535 2001-11-24 Fernando Perez <fperez@colorado.edu>
6541 2001-11-24 Fernando Perez <fperez@colorado.edu>
6536
6542
6537 * Updated the builtin docs (esp. the ? ones).
6543 * Updated the builtin docs (esp. the ? ones).
6538
6544
6539 * Ran all the code through pychecker. Not terribly impressed with
6545 * Ran all the code through pychecker. Not terribly impressed with
6540 it: lots of spurious warnings and didn't really find anything of
6546 it: lots of spurious warnings and didn't really find anything of
6541 substance (just a few modules being imported and not used).
6547 substance (just a few modules being imported and not used).
6542
6548
6543 * Implemented the new ultraTB functionality into IPython. New
6549 * Implemented the new ultraTB functionality into IPython. New
6544 option: xcolors. This chooses color scheme. xmode now only selects
6550 option: xcolors. This chooses color scheme. xmode now only selects
6545 between Plain and Verbose. Better orthogonality.
6551 between Plain and Verbose. Better orthogonality.
6546
6552
6547 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6553 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6548 mode and color scheme for the exception handlers. Now it's
6554 mode and color scheme for the exception handlers. Now it's
6549 possible to have the verbose traceback with no coloring.
6555 possible to have the verbose traceback with no coloring.
6550
6556
6551 2001-11-23 Fernando Perez <fperez@colorado.edu>
6557 2001-11-23 Fernando Perez <fperez@colorado.edu>
6552
6558
6553 * Version 0.1.12 released, 0.1.13 opened.
6559 * Version 0.1.12 released, 0.1.13 opened.
6554
6560
6555 * Removed option to set auto-quote and auto-paren escapes by
6561 * Removed option to set auto-quote and auto-paren escapes by
6556 user. The chances of breaking valid syntax are just too high. If
6562 user. The chances of breaking valid syntax are just too high. If
6557 someone *really* wants, they can always dig into the code.
6563 someone *really* wants, they can always dig into the code.
6558
6564
6559 * Made prompt separators configurable.
6565 * Made prompt separators configurable.
6560
6566
6561 2001-11-22 Fernando Perez <fperez@colorado.edu>
6567 2001-11-22 Fernando Perez <fperez@colorado.edu>
6562
6568
6563 * Small bugfixes in many places.
6569 * Small bugfixes in many places.
6564
6570
6565 * Removed the MyCompleter class from ipplib. It seemed redundant
6571 * Removed the MyCompleter class from ipplib. It seemed redundant
6566 with the C-p,C-n history search functionality. Less code to
6572 with the C-p,C-n history search functionality. Less code to
6567 maintain.
6573 maintain.
6568
6574
6569 * Moved all the original ipython.py code into ipythonlib.py. Right
6575 * Moved all the original ipython.py code into ipythonlib.py. Right
6570 now it's just one big dump into a function called make_IPython, so
6576 now it's just one big dump into a function called make_IPython, so
6571 no real modularity has been gained. But at least it makes the
6577 no real modularity has been gained. But at least it makes the
6572 wrapper script tiny, and since ipythonlib is a module, it gets
6578 wrapper script tiny, and since ipythonlib is a module, it gets
6573 compiled and startup is much faster.
6579 compiled and startup is much faster.
6574
6580
6575 This is a reasobably 'deep' change, so we should test it for a
6581 This is a reasobably 'deep' change, so we should test it for a
6576 while without messing too much more with the code.
6582 while without messing too much more with the code.
6577
6583
6578 2001-11-21 Fernando Perez <fperez@colorado.edu>
6584 2001-11-21 Fernando Perez <fperez@colorado.edu>
6579
6585
6580 * Version 0.1.11 released, 0.1.12 opened for further work.
6586 * Version 0.1.11 released, 0.1.12 opened for further work.
6581
6587
6582 * Removed dependency on Itpl. It was only needed in one place. It
6588 * Removed dependency on Itpl. It was only needed in one place. It
6583 would be nice if this became part of python, though. It makes life
6589 would be nice if this became part of python, though. It makes life
6584 *a lot* easier in some cases.
6590 *a lot* easier in some cases.
6585
6591
6586 * Simplified the prefilter code a bit. Now all handlers are
6592 * Simplified the prefilter code a bit. Now all handlers are
6587 expected to explicitly return a value (at least a blank string).
6593 expected to explicitly return a value (at least a blank string).
6588
6594
6589 * Heavy edits in ipplib. Removed the help system altogether. Now
6595 * Heavy edits in ipplib. Removed the help system altogether. Now
6590 obj?/?? is used for inspecting objects, a magic @doc prints
6596 obj?/?? is used for inspecting objects, a magic @doc prints
6591 docstrings, and full-blown Python help is accessed via the 'help'
6597 docstrings, and full-blown Python help is accessed via the 'help'
6592 keyword. This cleans up a lot of code (less to maintain) and does
6598 keyword. This cleans up a lot of code (less to maintain) and does
6593 the job. Since 'help' is now a standard Python component, might as
6599 the job. Since 'help' is now a standard Python component, might as
6594 well use it and remove duplicate functionality.
6600 well use it and remove duplicate functionality.
6595
6601
6596 Also removed the option to use ipplib as a standalone program. By
6602 Also removed the option to use ipplib as a standalone program. By
6597 now it's too dependent on other parts of IPython to function alone.
6603 now it's too dependent on other parts of IPython to function alone.
6598
6604
6599 * Fixed bug in genutils.pager. It would crash if the pager was
6605 * Fixed bug in genutils.pager. It would crash if the pager was
6600 exited immediately after opening (broken pipe).
6606 exited immediately after opening (broken pipe).
6601
6607
6602 * Trimmed down the VerboseTB reporting a little. The header is
6608 * Trimmed down the VerboseTB reporting a little. The header is
6603 much shorter now and the repeated exception arguments at the end
6609 much shorter now and the repeated exception arguments at the end
6604 have been removed. For interactive use the old header seemed a bit
6610 have been removed. For interactive use the old header seemed a bit
6605 excessive.
6611 excessive.
6606
6612
6607 * Fixed small bug in output of @whos for variables with multi-word
6613 * Fixed small bug in output of @whos for variables with multi-word
6608 types (only first word was displayed).
6614 types (only first word was displayed).
6609
6615
6610 2001-11-17 Fernando Perez <fperez@colorado.edu>
6616 2001-11-17 Fernando Perez <fperez@colorado.edu>
6611
6617
6612 * Version 0.1.10 released, 0.1.11 opened for further work.
6618 * Version 0.1.10 released, 0.1.11 opened for further work.
6613
6619
6614 * Modified dirs and friends. dirs now *returns* the stack (not
6620 * Modified dirs and friends. dirs now *returns* the stack (not
6615 prints), so one can manipulate it as a variable. Convenient to
6621 prints), so one can manipulate it as a variable. Convenient to
6616 travel along many directories.
6622 travel along many directories.
6617
6623
6618 * Fixed bug in magic_pdef: would only work with functions with
6624 * Fixed bug in magic_pdef: would only work with functions with
6619 arguments with default values.
6625 arguments with default values.
6620
6626
6621 2001-11-14 Fernando Perez <fperez@colorado.edu>
6627 2001-11-14 Fernando Perez <fperez@colorado.edu>
6622
6628
6623 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6629 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6624 example with IPython. Various other minor fixes and cleanups.
6630 example with IPython. Various other minor fixes and cleanups.
6625
6631
6626 * Version 0.1.9 released, 0.1.10 opened for further work.
6632 * Version 0.1.9 released, 0.1.10 opened for further work.
6627
6633
6628 * Added sys.path to the list of directories searched in the
6634 * Added sys.path to the list of directories searched in the
6629 execfile= option. It used to be the current directory and the
6635 execfile= option. It used to be the current directory and the
6630 user's IPYTHONDIR only.
6636 user's IPYTHONDIR only.
6631
6637
6632 2001-11-13 Fernando Perez <fperez@colorado.edu>
6638 2001-11-13 Fernando Perez <fperez@colorado.edu>
6633
6639
6634 * Reinstated the raw_input/prefilter separation that Janko had
6640 * Reinstated the raw_input/prefilter separation that Janko had
6635 initially. This gives a more convenient setup for extending the
6641 initially. This gives a more convenient setup for extending the
6636 pre-processor from the outside: raw_input always gets a string,
6642 pre-processor from the outside: raw_input always gets a string,
6637 and prefilter has to process it. We can then redefine prefilter
6643 and prefilter has to process it. We can then redefine prefilter
6638 from the outside and implement extensions for special
6644 from the outside and implement extensions for special
6639 purposes.
6645 purposes.
6640
6646
6641 Today I got one for inputting PhysicalQuantity objects
6647 Today I got one for inputting PhysicalQuantity objects
6642 (from Scientific) without needing any function calls at
6648 (from Scientific) without needing any function calls at
6643 all. Extremely convenient, and it's all done as a user-level
6649 all. Extremely convenient, and it's all done as a user-level
6644 extension (no IPython code was touched). Now instead of:
6650 extension (no IPython code was touched). Now instead of:
6645 a = PhysicalQuantity(4.2,'m/s**2')
6651 a = PhysicalQuantity(4.2,'m/s**2')
6646 one can simply say
6652 one can simply say
6647 a = 4.2 m/s**2
6653 a = 4.2 m/s**2
6648 or even
6654 or even
6649 a = 4.2 m/s^2
6655 a = 4.2 m/s^2
6650
6656
6651 I use this, but it's also a proof of concept: IPython really is
6657 I use this, but it's also a proof of concept: IPython really is
6652 fully user-extensible, even at the level of the parsing of the
6658 fully user-extensible, even at the level of the parsing of the
6653 command line. It's not trivial, but it's perfectly doable.
6659 command line. It's not trivial, but it's perfectly doable.
6654
6660
6655 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6661 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6656 the problem of modules being loaded in the inverse order in which
6662 the problem of modules being loaded in the inverse order in which
6657 they were defined in
6663 they were defined in
6658
6664
6659 * Version 0.1.8 released, 0.1.9 opened for further work.
6665 * Version 0.1.8 released, 0.1.9 opened for further work.
6660
6666
6661 * Added magics pdef, source and file. They respectively show the
6667 * Added magics pdef, source and file. They respectively show the
6662 definition line ('prototype' in C), source code and full python
6668 definition line ('prototype' in C), source code and full python
6663 file for any callable object. The object inspector oinfo uses
6669 file for any callable object. The object inspector oinfo uses
6664 these to show the same information.
6670 these to show the same information.
6665
6671
6666 * Version 0.1.7 released, 0.1.8 opened for further work.
6672 * Version 0.1.7 released, 0.1.8 opened for further work.
6667
6673
6668 * Separated all the magic functions into a class called Magic. The
6674 * Separated all the magic functions into a class called Magic. The
6669 InteractiveShell class was becoming too big for Xemacs to handle
6675 InteractiveShell class was becoming too big for Xemacs to handle
6670 (de-indenting a line would lock it up for 10 seconds while it
6676 (de-indenting a line would lock it up for 10 seconds while it
6671 backtracked on the whole class!)
6677 backtracked on the whole class!)
6672
6678
6673 FIXME: didn't work. It can be done, but right now namespaces are
6679 FIXME: didn't work. It can be done, but right now namespaces are
6674 all messed up. Do it later (reverted it for now, so at least
6680 all messed up. Do it later (reverted it for now, so at least
6675 everything works as before).
6681 everything works as before).
6676
6682
6677 * Got the object introspection system (magic_oinfo) working! I
6683 * Got the object introspection system (magic_oinfo) working! I
6678 think this is pretty much ready for release to Janko, so he can
6684 think this is pretty much ready for release to Janko, so he can
6679 test it for a while and then announce it. Pretty much 100% of what
6685 test it for a while and then announce it. Pretty much 100% of what
6680 I wanted for the 'phase 1' release is ready. Happy, tired.
6686 I wanted for the 'phase 1' release is ready. Happy, tired.
6681
6687
6682 2001-11-12 Fernando Perez <fperez@colorado.edu>
6688 2001-11-12 Fernando Perez <fperez@colorado.edu>
6683
6689
6684 * Version 0.1.6 released, 0.1.7 opened for further work.
6690 * Version 0.1.6 released, 0.1.7 opened for further work.
6685
6691
6686 * Fixed bug in printing: it used to test for truth before
6692 * Fixed bug in printing: it used to test for truth before
6687 printing, so 0 wouldn't print. Now checks for None.
6693 printing, so 0 wouldn't print. Now checks for None.
6688
6694
6689 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6695 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6690 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6696 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6691 reaches by hand into the outputcache. Think of a better way to do
6697 reaches by hand into the outputcache. Think of a better way to do
6692 this later.
6698 this later.
6693
6699
6694 * Various small fixes thanks to Nathan's comments.
6700 * Various small fixes thanks to Nathan's comments.
6695
6701
6696 * Changed magic_pprint to magic_Pprint. This way it doesn't
6702 * Changed magic_pprint to magic_Pprint. This way it doesn't
6697 collide with pprint() and the name is consistent with the command
6703 collide with pprint() and the name is consistent with the command
6698 line option.
6704 line option.
6699
6705
6700 * Changed prompt counter behavior to be fully like
6706 * Changed prompt counter behavior to be fully like
6701 Mathematica's. That is, even input that doesn't return a result
6707 Mathematica's. That is, even input that doesn't return a result
6702 raises the prompt counter. The old behavior was kind of confusing
6708 raises the prompt counter. The old behavior was kind of confusing
6703 (getting the same prompt number several times if the operation
6709 (getting the same prompt number several times if the operation
6704 didn't return a result).
6710 didn't return a result).
6705
6711
6706 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6712 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6707
6713
6708 * Fixed -Classic mode (wasn't working anymore).
6714 * Fixed -Classic mode (wasn't working anymore).
6709
6715
6710 * Added colored prompts using Nathan's new code. Colors are
6716 * Added colored prompts using Nathan's new code. Colors are
6711 currently hardwired, they can be user-configurable. For
6717 currently hardwired, they can be user-configurable. For
6712 developers, they can be chosen in file ipythonlib.py, at the
6718 developers, they can be chosen in file ipythonlib.py, at the
6713 beginning of the CachedOutput class def.
6719 beginning of the CachedOutput class def.
6714
6720
6715 2001-11-11 Fernando Perez <fperez@colorado.edu>
6721 2001-11-11 Fernando Perez <fperez@colorado.edu>
6716
6722
6717 * Version 0.1.5 released, 0.1.6 opened for further work.
6723 * Version 0.1.5 released, 0.1.6 opened for further work.
6718
6724
6719 * Changed magic_env to *return* the environment as a dict (not to
6725 * Changed magic_env to *return* the environment as a dict (not to
6720 print it). This way it prints, but it can also be processed.
6726 print it). This way it prints, but it can also be processed.
6721
6727
6722 * Added Verbose exception reporting to interactive
6728 * Added Verbose exception reporting to interactive
6723 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6729 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6724 traceback. Had to make some changes to the ultraTB file. This is
6730 traceback. Had to make some changes to the ultraTB file. This is
6725 probably the last 'big' thing in my mental todo list. This ties
6731 probably the last 'big' thing in my mental todo list. This ties
6726 in with the next entry:
6732 in with the next entry:
6727
6733
6728 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6734 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6729 has to specify is Plain, Color or Verbose for all exception
6735 has to specify is Plain, Color or Verbose for all exception
6730 handling.
6736 handling.
6731
6737
6732 * Removed ShellServices option. All this can really be done via
6738 * Removed ShellServices option. All this can really be done via
6733 the magic system. It's easier to extend, cleaner and has automatic
6739 the magic system. It's easier to extend, cleaner and has automatic
6734 namespace protection and documentation.
6740 namespace protection and documentation.
6735
6741
6736 2001-11-09 Fernando Perez <fperez@colorado.edu>
6742 2001-11-09 Fernando Perez <fperez@colorado.edu>
6737
6743
6738 * Fixed bug in output cache flushing (missing parameter to
6744 * Fixed bug in output cache flushing (missing parameter to
6739 __init__). Other small bugs fixed (found using pychecker).
6745 __init__). Other small bugs fixed (found using pychecker).
6740
6746
6741 * Version 0.1.4 opened for bugfixing.
6747 * Version 0.1.4 opened for bugfixing.
6742
6748
6743 2001-11-07 Fernando Perez <fperez@colorado.edu>
6749 2001-11-07 Fernando Perez <fperez@colorado.edu>
6744
6750
6745 * Version 0.1.3 released, mainly because of the raw_input bug.
6751 * Version 0.1.3 released, mainly because of the raw_input bug.
6746
6752
6747 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6753 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6748 and when testing for whether things were callable, a call could
6754 and when testing for whether things were callable, a call could
6749 actually be made to certain functions. They would get called again
6755 actually be made to certain functions. They would get called again
6750 once 'really' executed, with a resulting double call. A disaster
6756 once 'really' executed, with a resulting double call. A disaster
6751 in many cases (list.reverse() would never work!).
6757 in many cases (list.reverse() would never work!).
6752
6758
6753 * Removed prefilter() function, moved its code to raw_input (which
6759 * Removed prefilter() function, moved its code to raw_input (which
6754 after all was just a near-empty caller for prefilter). This saves
6760 after all was just a near-empty caller for prefilter). This saves
6755 a function call on every prompt, and simplifies the class a tiny bit.
6761 a function call on every prompt, and simplifies the class a tiny bit.
6756
6762
6757 * Fix _ip to __ip name in magic example file.
6763 * Fix _ip to __ip name in magic example file.
6758
6764
6759 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6765 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6760 work with non-gnu versions of tar.
6766 work with non-gnu versions of tar.
6761
6767
6762 2001-11-06 Fernando Perez <fperez@colorado.edu>
6768 2001-11-06 Fernando Perez <fperez@colorado.edu>
6763
6769
6764 * Version 0.1.2. Just to keep track of the recent changes.
6770 * Version 0.1.2. Just to keep track of the recent changes.
6765
6771
6766 * Fixed nasty bug in output prompt routine. It used to check 'if
6772 * Fixed nasty bug in output prompt routine. It used to check 'if
6767 arg != None...'. Problem is, this fails if arg implements a
6773 arg != None...'. Problem is, this fails if arg implements a
6768 special comparison (__cmp__) which disallows comparing to
6774 special comparison (__cmp__) which disallows comparing to
6769 None. Found it when trying to use the PhysicalQuantity module from
6775 None. Found it when trying to use the PhysicalQuantity module from
6770 ScientificPython.
6776 ScientificPython.
6771
6777
6772 2001-11-05 Fernando Perez <fperez@colorado.edu>
6778 2001-11-05 Fernando Perez <fperez@colorado.edu>
6773
6779
6774 * Also added dirs. Now the pushd/popd/dirs family functions
6780 * Also added dirs. Now the pushd/popd/dirs family functions
6775 basically like the shell, with the added convenience of going home
6781 basically like the shell, with the added convenience of going home
6776 when called with no args.
6782 when called with no args.
6777
6783
6778 * pushd/popd slightly modified to mimic shell behavior more
6784 * pushd/popd slightly modified to mimic shell behavior more
6779 closely.
6785 closely.
6780
6786
6781 * Added env,pushd,popd from ShellServices as magic functions. I
6787 * Added env,pushd,popd from ShellServices as magic functions. I
6782 think the cleanest will be to port all desired functions from
6788 think the cleanest will be to port all desired functions from
6783 ShellServices as magics and remove ShellServices altogether. This
6789 ShellServices as magics and remove ShellServices altogether. This
6784 will provide a single, clean way of adding functionality
6790 will provide a single, clean way of adding functionality
6785 (shell-type or otherwise) to IP.
6791 (shell-type or otherwise) to IP.
6786
6792
6787 2001-11-04 Fernando Perez <fperez@colorado.edu>
6793 2001-11-04 Fernando Perez <fperez@colorado.edu>
6788
6794
6789 * Added .ipython/ directory to sys.path. This way users can keep
6795 * Added .ipython/ directory to sys.path. This way users can keep
6790 customizations there and access them via import.
6796 customizations there and access them via import.
6791
6797
6792 2001-11-03 Fernando Perez <fperez@colorado.edu>
6798 2001-11-03 Fernando Perez <fperez@colorado.edu>
6793
6799
6794 * Opened version 0.1.1 for new changes.
6800 * Opened version 0.1.1 for new changes.
6795
6801
6796 * Changed version number to 0.1.0: first 'public' release, sent to
6802 * Changed version number to 0.1.0: first 'public' release, sent to
6797 Nathan and Janko.
6803 Nathan and Janko.
6798
6804
6799 * Lots of small fixes and tweaks.
6805 * Lots of small fixes and tweaks.
6800
6806
6801 * Minor changes to whos format. Now strings are shown, snipped if
6807 * Minor changes to whos format. Now strings are shown, snipped if
6802 too long.
6808 too long.
6803
6809
6804 * Changed ShellServices to work on __main__ so they show up in @who
6810 * Changed ShellServices to work on __main__ so they show up in @who
6805
6811
6806 * Help also works with ? at the end of a line:
6812 * Help also works with ? at the end of a line:
6807 ?sin and sin?
6813 ?sin and sin?
6808 both produce the same effect. This is nice, as often I use the
6814 both produce the same effect. This is nice, as often I use the
6809 tab-complete to find the name of a method, but I used to then have
6815 tab-complete to find the name of a method, but I used to then have
6810 to go to the beginning of the line to put a ? if I wanted more
6816 to go to the beginning of the line to put a ? if I wanted more
6811 info. Now I can just add the ? and hit return. Convenient.
6817 info. Now I can just add the ? and hit return. Convenient.
6812
6818
6813 2001-11-02 Fernando Perez <fperez@colorado.edu>
6819 2001-11-02 Fernando Perez <fperez@colorado.edu>
6814
6820
6815 * Python version check (>=2.1) added.
6821 * Python version check (>=2.1) added.
6816
6822
6817 * Added LazyPython documentation. At this point the docs are quite
6823 * Added LazyPython documentation. At this point the docs are quite
6818 a mess. A cleanup is in order.
6824 a mess. A cleanup is in order.
6819
6825
6820 * Auto-installer created. For some bizarre reason, the zipfiles
6826 * Auto-installer created. For some bizarre reason, the zipfiles
6821 module isn't working on my system. So I made a tar version
6827 module isn't working on my system. So I made a tar version
6822 (hopefully the command line options in various systems won't kill
6828 (hopefully the command line options in various systems won't kill
6823 me).
6829 me).
6824
6830
6825 * Fixes to Struct in genutils. Now all dictionary-like methods are
6831 * Fixes to Struct in genutils. Now all dictionary-like methods are
6826 protected (reasonably).
6832 protected (reasonably).
6827
6833
6828 * Added pager function to genutils and changed ? to print usage
6834 * Added pager function to genutils and changed ? to print usage
6829 note through it (it was too long).
6835 note through it (it was too long).
6830
6836
6831 * Added the LazyPython functionality. Works great! I changed the
6837 * Added the LazyPython functionality. Works great! I changed the
6832 auto-quote escape to ';', it's on home row and next to '. But
6838 auto-quote escape to ';', it's on home row and next to '. But
6833 both auto-quote and auto-paren (still /) escapes are command-line
6839 both auto-quote and auto-paren (still /) escapes are command-line
6834 parameters.
6840 parameters.
6835
6841
6836
6842
6837 2001-11-01 Fernando Perez <fperez@colorado.edu>
6843 2001-11-01 Fernando Perez <fperez@colorado.edu>
6838
6844
6839 * Version changed to 0.0.7. Fairly large change: configuration now
6845 * Version changed to 0.0.7. Fairly large change: configuration now
6840 is all stored in a directory, by default .ipython. There, all
6846 is all stored in a directory, by default .ipython. There, all
6841 config files have normal looking names (not .names)
6847 config files have normal looking names (not .names)
6842
6848
6843 * Version 0.0.6 Released first to Lucas and Archie as a test
6849 * Version 0.0.6 Released first to Lucas and Archie as a test
6844 run. Since it's the first 'semi-public' release, change version to
6850 run. Since it's the first 'semi-public' release, change version to
6845 > 0.0.6 for any changes now.
6851 > 0.0.6 for any changes now.
6846
6852
6847 * Stuff I had put in the ipplib.py changelog:
6853 * Stuff I had put in the ipplib.py changelog:
6848
6854
6849 Changes to InteractiveShell:
6855 Changes to InteractiveShell:
6850
6856
6851 - Made the usage message a parameter.
6857 - Made the usage message a parameter.
6852
6858
6853 - Require the name of the shell variable to be given. It's a bit
6859 - Require the name of the shell variable to be given. It's a bit
6854 of a hack, but allows the name 'shell' not to be hardwired in the
6860 of a hack, but allows the name 'shell' not to be hardwired in the
6855 magic (@) handler, which is problematic b/c it requires
6861 magic (@) handler, which is problematic b/c it requires
6856 polluting the global namespace with 'shell'. This in turn is
6862 polluting the global namespace with 'shell'. This in turn is
6857 fragile: if a user redefines a variable called shell, things
6863 fragile: if a user redefines a variable called shell, things
6858 break.
6864 break.
6859
6865
6860 - magic @: all functions available through @ need to be defined
6866 - magic @: all functions available through @ need to be defined
6861 as magic_<name>, even though they can be called simply as
6867 as magic_<name>, even though they can be called simply as
6862 @<name>. This allows the special command @magic to gather
6868 @<name>. This allows the special command @magic to gather
6863 information automatically about all existing magic functions,
6869 information automatically about all existing magic functions,
6864 even if they are run-time user extensions, by parsing the shell
6870 even if they are run-time user extensions, by parsing the shell
6865 instance __dict__ looking for special magic_ names.
6871 instance __dict__ looking for special magic_ names.
6866
6872
6867 - mainloop: added *two* local namespace parameters. This allows
6873 - mainloop: added *two* local namespace parameters. This allows
6868 the class to differentiate between parameters which were there
6874 the class to differentiate between parameters which were there
6869 before and after command line initialization was processed. This
6875 before and after command line initialization was processed. This
6870 way, later @who can show things loaded at startup by the
6876 way, later @who can show things loaded at startup by the
6871 user. This trick was necessary to make session saving/reloading
6877 user. This trick was necessary to make session saving/reloading
6872 really work: ideally after saving/exiting/reloading a session,
6878 really work: ideally after saving/exiting/reloading a session,
6873 *everything* should look the same, including the output of @who. I
6879 *everything* should look the same, including the output of @who. I
6874 was only able to make this work with this double namespace
6880 was only able to make this work with this double namespace
6875 trick.
6881 trick.
6876
6882
6877 - added a header to the logfile which allows (almost) full
6883 - added a header to the logfile which allows (almost) full
6878 session restoring.
6884 session restoring.
6879
6885
6880 - prepend lines beginning with @ or !, with a and log
6886 - prepend lines beginning with @ or !, with a and log
6881 them. Why? !lines: may be useful to know what you did @lines:
6887 them. Why? !lines: may be useful to know what you did @lines:
6882 they may affect session state. So when restoring a session, at
6888 they may affect session state. So when restoring a session, at
6883 least inform the user of their presence. I couldn't quite get
6889 least inform the user of their presence. I couldn't quite get
6884 them to properly re-execute, but at least the user is warned.
6890 them to properly re-execute, but at least the user is warned.
6885
6891
6886 * Started ChangeLog.
6892 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now