##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,6744 +1,6766 b''
1 2007-05-28 Ville Vainio <vivainio@gmail.com>
2
3 * %cpaste: strip + with > from left (diffs).
4
5 * iplib.py: Fix crash when readline not installed
6
7 2007-05-26 Ville Vainio <vivainio@gmail.com>
8
9 * generics.py: intruduce easy to extend result_display generic
10 function (using simplegeneric.py).
11
12 * Fixed the append functionality of %set.
13
14 2007-05-25 Ville Vainio <vivainio@gmail.com>
15
16 * New magic: %rep (fetch / run old commands from history)
17
18 * New extension: mglob (%mglob magic), for powerful glob / find /filter
19 like functionality
20
21 % maghistory.py: %hist -g PATTERM greps the history for pattern
22
1 2007-05-24 Walter Doerwald <walter@livinglogic.de>
23 2007-05-24 Walter Doerwald <walter@livinglogic.de>
2
24
3 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
25 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
4 browse the IPython input history
26 browse the IPython input history
5
27
6 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
28 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
7 (mapped to "i") can be used to put the object under the curser in the input
29 (mapped to "i") can be used to put the object under the curser in the input
8 line. pickinputattr (mapped to "I") does the same for the attribute under
30 line. pickinputattr (mapped to "I") does the same for the attribute under
9 the cursor.
31 the cursor.
10
32
11 2007-05-24 Ville Vainio <vivainio@gmail.com>
33 2007-05-24 Ville Vainio <vivainio@gmail.com>
12
34
13 * Grand magic cleansing (changeset [2380]):
35 * Grand magic cleansing (changeset [2380]):
14
36
15 * Introduce ipy_legacy.py where the following magics were
37 * Introduce ipy_legacy.py where the following magics were
16 moved:
38 moved:
17
39
18 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
40 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
19
41
20 If you need them, either use default profile or "import ipy_legacy"
42 If you need them, either use default profile or "import ipy_legacy"
21 in your ipy_user_conf.py
43 in your ipy_user_conf.py
22
44
23 * Move sh and scipy profile to Extensions from UserConfig. this implies
45 * Move sh and scipy profile to Extensions from UserConfig. this implies
24 you should not edit them, but you don't need to run %upgrade when
46 you should not edit them, but you don't need to run %upgrade when
25 upgrading IPython anymore.
47 upgrading IPython anymore.
26
48
27 * %hist/%history now operates in "raw" mode by default. To get the old
49 * %hist/%history now operates in "raw" mode by default. To get the old
28 behaviour, run '%hist -n' (native mode).
50 behaviour, run '%hist -n' (native mode).
29
51
30 * split ipy_stock_completers.py to ipy_stock_completers.py and
52 * split ipy_stock_completers.py to ipy_stock_completers.py and
31 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
53 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
32 installed as default.
54 installed as default.
33
55
34 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
56 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
35 handling.
57 handling.
36
58
37 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
59 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
38 input if readline is available.
60 input if readline is available.
39
61
40 2007-05-23 Ville Vainio <vivainio@gmail.com>
62 2007-05-23 Ville Vainio <vivainio@gmail.com>
41
63
42 * macro.py: %store uses __getstate__ properly
64 * macro.py: %store uses __getstate__ properly
43
65
44 * exesetup.py: added new setup script for creating
66 * exesetup.py: added new setup script for creating
45 standalone IPython executables with py2exe (i.e.
67 standalone IPython executables with py2exe (i.e.
46 no python installation required).
68 no python installation required).
47
69
48 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
70 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
49 its place.
71 its place.
50
72
51 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
73 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
52
74
53 2007-05-21 Ville Vainio <vivainio@gmail.com>
75 2007-05-21 Ville Vainio <vivainio@gmail.com>
54
76
55 * platutil_win32.py (set_term_title): handle
77 * platutil_win32.py (set_term_title): handle
56 failure of 'title' system call properly.
78 failure of 'title' system call properly.
57
79
58 2007-05-17 Walter Doerwald <walter@livinglogic.de>
80 2007-05-17 Walter Doerwald <walter@livinglogic.de>
59
81
60 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
82 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
61 (Bug detected by Paul Mueller).
83 (Bug detected by Paul Mueller).
62
84
63 2007-05-16 Ville Vainio <vivainio@gmail.com>
85 2007-05-16 Ville Vainio <vivainio@gmail.com>
64
86
65 * ipy_profile_sci.py, ipython_win_post_install.py: Create
87 * ipy_profile_sci.py, ipython_win_post_install.py: Create
66 new "sci" profile, effectively a modern version of the old
88 new "sci" profile, effectively a modern version of the old
67 "scipy" profile (which is now slated for deprecation).
89 "scipy" profile (which is now slated for deprecation).
68
90
69 2007-05-15 Ville Vainio <vivainio@gmail.com>
91 2007-05-15 Ville Vainio <vivainio@gmail.com>
70
92
71 * pycolorize.py, pycolor.1: Paul Mueller's patches that
93 * pycolorize.py, pycolor.1: Paul Mueller's patches that
72 make pycolorize read input from stdin when run without arguments.
94 make pycolorize read input from stdin when run without arguments.
73
95
74 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
96 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
75
97
76 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
98 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
77 it in sh profile (instead of ipy_system_conf.py).
99 it in sh profile (instead of ipy_system_conf.py).
78
100
79 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
101 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
80 aliases are now lower case on windows (MyCommand.exe => mycommand).
102 aliases are now lower case on windows (MyCommand.exe => mycommand).
81
103
82 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
104 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
83 Macros are now callable objects that inherit from ipapi.IPyAutocall,
105 Macros are now callable objects that inherit from ipapi.IPyAutocall,
84 i.e. get autocalled regardless of system autocall setting.
106 i.e. get autocalled regardless of system autocall setting.
85
107
86 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
108 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
87
109
88 * IPython/rlineimpl.py: check for clear_history in readline and
110 * IPython/rlineimpl.py: check for clear_history in readline and
89 make it a dummy no-op if not available. This function isn't
111 make it a dummy no-op if not available. This function isn't
90 guaranteed to be in the API and appeared in Python 2.4, so we need
112 guaranteed to be in the API and appeared in Python 2.4, so we need
91 to check it ourselves. Also, clean up this file quite a bit.
113 to check it ourselves. Also, clean up this file quite a bit.
92
114
93 * ipython.1: update man page and full manual with information
115 * ipython.1: update man page and full manual with information
94 about threads (remove outdated warning). Closes #151.
116 about threads (remove outdated warning). Closes #151.
95
117
96 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
118 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
97
119
98 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
120 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
99 in trunk (note that this made it into the 0.8.1 release already,
121 in trunk (note that this made it into the 0.8.1 release already,
100 but the changelogs didn't get coordinated). Many thanks to Gael
122 but the changelogs didn't get coordinated). Many thanks to Gael
101 Varoquaux <gael.varoquaux-AT-normalesup.org>
123 Varoquaux <gael.varoquaux-AT-normalesup.org>
102
124
103 2007-05-09 *** Released version 0.8.1
125 2007-05-09 *** Released version 0.8.1
104
126
105 2007-05-10 Walter Doerwald <walter@livinglogic.de>
127 2007-05-10 Walter Doerwald <walter@livinglogic.de>
106
128
107 * IPython/Extensions/igrid.py: Incorporate html help into
129 * IPython/Extensions/igrid.py: Incorporate html help into
108 the module, so we don't have to search for the file.
130 the module, so we don't have to search for the file.
109
131
110 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
132 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
111
133
112 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
134 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
113
135
114 2007-04-30 Ville Vainio <vivainio@gmail.com>
136 2007-04-30 Ville Vainio <vivainio@gmail.com>
115
137
116 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
138 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
117 user has illegal (non-ascii) home directory name
139 user has illegal (non-ascii) home directory name
118
140
119 2007-04-27 Ville Vainio <vivainio@gmail.com>
141 2007-04-27 Ville Vainio <vivainio@gmail.com>
120
142
121 * platutils_win32.py: implement set_term_title for windows
143 * platutils_win32.py: implement set_term_title for windows
122
144
123 * Update version number
145 * Update version number
124
146
125 * ipy_profile_sh.py: more informative prompt (2 dir levels)
147 * ipy_profile_sh.py: more informative prompt (2 dir levels)
126
148
127 2007-04-26 Walter Doerwald <walter@livinglogic.de>
149 2007-04-26 Walter Doerwald <walter@livinglogic.de>
128
150
129 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
151 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
130 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
152 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
131 bug discovered by Ville).
153 bug discovered by Ville).
132
154
133 2007-04-26 Ville Vainio <vivainio@gmail.com>
155 2007-04-26 Ville Vainio <vivainio@gmail.com>
134
156
135 * Extensions/ipy_completers.py: Olivier's module completer now
157 * Extensions/ipy_completers.py: Olivier's module completer now
136 saves the list of root modules if it takes > 4 secs on the first run.
158 saves the list of root modules if it takes > 4 secs on the first run.
137
159
138 * Magic.py (%rehashx): %rehashx now clears the completer cache
160 * Magic.py (%rehashx): %rehashx now clears the completer cache
139
161
140
162
141 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
163 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
142
164
143 * ipython.el: fix incorrect color scheme, reported by Stefan.
165 * ipython.el: fix incorrect color scheme, reported by Stefan.
144 Closes #149.
166 Closes #149.
145
167
146 * IPython/PyColorize.py (Parser.format2): fix state-handling
168 * IPython/PyColorize.py (Parser.format2): fix state-handling
147 logic. I still don't like how that code handles state, but at
169 logic. I still don't like how that code handles state, but at
148 least now it should be correct, if inelegant. Closes #146.
170 least now it should be correct, if inelegant. Closes #146.
149
171
150 2007-04-25 Ville Vainio <vivainio@gmail.com>
172 2007-04-25 Ville Vainio <vivainio@gmail.com>
151
173
152 * Extensions/ipy_which.py: added extension for %which magic, works
174 * Extensions/ipy_which.py: added extension for %which magic, works
153 a lot like unix 'which' but also finds and expands aliases, and
175 a lot like unix 'which' but also finds and expands aliases, and
154 allows wildcards.
176 allows wildcards.
155
177
156 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
178 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
157 as opposed to returning nothing.
179 as opposed to returning nothing.
158
180
159 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
181 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
160 ipy_stock_completers on default profile, do import on sh profile.
182 ipy_stock_completers on default profile, do import on sh profile.
161
183
162 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
184 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
163
185
164 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
186 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
165 like ipython.py foo.py which raised a IndexError.
187 like ipython.py foo.py which raised a IndexError.
166
188
167 2007-04-21 Ville Vainio <vivainio@gmail.com>
189 2007-04-21 Ville Vainio <vivainio@gmail.com>
168
190
169 * Extensions/ipy_extutil.py: added extension to manage other ipython
191 * Extensions/ipy_extutil.py: added extension to manage other ipython
170 extensions. Now only supports 'ls' == list extensions.
192 extensions. Now only supports 'ls' == list extensions.
171
193
172 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
194 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
173
195
174 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
196 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
175 would prevent use of the exception system outside of a running
197 would prevent use of the exception system outside of a running
176 IPython instance.
198 IPython instance.
177
199
178 2007-04-20 Ville Vainio <vivainio@gmail.com>
200 2007-04-20 Ville Vainio <vivainio@gmail.com>
179
201
180 * Extensions/ipy_render.py: added extension for easy
202 * Extensions/ipy_render.py: added extension for easy
181 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
203 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
182 'Iptl' template notation,
204 'Iptl' template notation,
183
205
184 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
206 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
185 safer & faster 'import' completer.
207 safer & faster 'import' completer.
186
208
187 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
209 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
188 and _ip.defalias(name, command).
210 and _ip.defalias(name, command).
189
211
190 * Extensions/ipy_exportdb.py: New extension for exporting all the
212 * Extensions/ipy_exportdb.py: New extension for exporting all the
191 %store'd data in a portable format (normal ipapi calls like
213 %store'd data in a portable format (normal ipapi calls like
192 defmacro() etc.)
214 defmacro() etc.)
193
215
194 2007-04-19 Ville Vainio <vivainio@gmail.com>
216 2007-04-19 Ville Vainio <vivainio@gmail.com>
195
217
196 * upgrade_dir.py: skip junk files like *.pyc
218 * upgrade_dir.py: skip junk files like *.pyc
197
219
198 * Release.py: version number to 0.8.1
220 * Release.py: version number to 0.8.1
199
221
200 2007-04-18 Ville Vainio <vivainio@gmail.com>
222 2007-04-18 Ville Vainio <vivainio@gmail.com>
201
223
202 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
224 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
203 and later on win32.
225 and later on win32.
204
226
205 2007-04-16 Ville Vainio <vivainio@gmail.com>
227 2007-04-16 Ville Vainio <vivainio@gmail.com>
206
228
207 * iplib.py (showtraceback): Do not crash when running w/o readline.
229 * iplib.py (showtraceback): Do not crash when running w/o readline.
208
230
209 2007-04-12 Walter Doerwald <walter@livinglogic.de>
231 2007-04-12 Walter Doerwald <walter@livinglogic.de>
210
232
211 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
233 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
212 sorted (case sensitive with files and dirs mixed).
234 sorted (case sensitive with files and dirs mixed).
213
235
214 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
236 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
215
237
216 * IPython/Release.py (version): Open trunk for 0.8.1 development.
238 * IPython/Release.py (version): Open trunk for 0.8.1 development.
217
239
218 2007-04-10 *** Released version 0.8.0
240 2007-04-10 *** Released version 0.8.0
219
241
220 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
242 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
221
243
222 * Tag 0.8.0 for release.
244 * Tag 0.8.0 for release.
223
245
224 * IPython/iplib.py (reloadhist): add API function to cleanly
246 * IPython/iplib.py (reloadhist): add API function to cleanly
225 reload the readline history, which was growing inappropriately on
247 reload the readline history, which was growing inappropriately on
226 every %run call.
248 every %run call.
227
249
228 * win32_manual_post_install.py (run): apply last part of Nicolas
250 * win32_manual_post_install.py (run): apply last part of Nicolas
229 Pernetty's patch (I'd accidentally applied it in a different
251 Pernetty's patch (I'd accidentally applied it in a different
230 directory and this particular file didn't get patched).
252 directory and this particular file didn't get patched).
231
253
232 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
254 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
233
255
234 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
256 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
235 find the main thread id and use the proper API call. Thanks to
257 find the main thread id and use the proper API call. Thanks to
236 Stefan for the fix.
258 Stefan for the fix.
237
259
238 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
260 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
239 unit tests to reflect fixed ticket #52, and add more tests sent by
261 unit tests to reflect fixed ticket #52, and add more tests sent by
240 him.
262 him.
241
263
242 * IPython/iplib.py (raw_input): restore the readline completer
264 * IPython/iplib.py (raw_input): restore the readline completer
243 state on every input, in case third-party code messed it up.
265 state on every input, in case third-party code messed it up.
244 (_prefilter): revert recent addition of early-escape checks which
266 (_prefilter): revert recent addition of early-escape checks which
245 prevent many valid alias calls from working.
267 prevent many valid alias calls from working.
246
268
247 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
269 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
248 flag for sigint handler so we don't run a full signal() call on
270 flag for sigint handler so we don't run a full signal() call on
249 each runcode access.
271 each runcode access.
250
272
251 * IPython/Magic.py (magic_whos): small improvement to diagnostic
273 * IPython/Magic.py (magic_whos): small improvement to diagnostic
252 message.
274 message.
253
275
254 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
276 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
255
277
256 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
278 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
257 asynchronous exceptions working, i.e., Ctrl-C can actually
279 asynchronous exceptions working, i.e., Ctrl-C can actually
258 interrupt long-running code in the multithreaded shells.
280 interrupt long-running code in the multithreaded shells.
259
281
260 This is using Tomer Filiba's great ctypes-based trick:
282 This is using Tomer Filiba's great ctypes-based trick:
261 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
283 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
262 this in the past, but hadn't been able to make it work before. So
284 this in the past, but hadn't been able to make it work before. So
263 far it looks like it's actually running, but this needs more
285 far it looks like it's actually running, but this needs more
264 testing. If it really works, I'll be *very* happy, and we'll owe
286 testing. If it really works, I'll be *very* happy, and we'll owe
265 a huge thank you to Tomer. My current implementation is ugly,
287 a huge thank you to Tomer. My current implementation is ugly,
266 hackish and uses nasty globals, but I don't want to try and clean
288 hackish and uses nasty globals, but I don't want to try and clean
267 anything up until we know if it actually works.
289 anything up until we know if it actually works.
268
290
269 NOTE: this feature needs ctypes to work. ctypes is included in
291 NOTE: this feature needs ctypes to work. ctypes is included in
270 Python2.5, but 2.4 users will need to manually install it. This
292 Python2.5, but 2.4 users will need to manually install it. This
271 feature makes multi-threaded shells so much more usable that it's
293 feature makes multi-threaded shells so much more usable that it's
272 a minor price to pay (ctypes is very easy to install, already a
294 a minor price to pay (ctypes is very easy to install, already a
273 requirement for win32 and available in major linux distros).
295 requirement for win32 and available in major linux distros).
274
296
275 2007-04-04 Ville Vainio <vivainio@gmail.com>
297 2007-04-04 Ville Vainio <vivainio@gmail.com>
276
298
277 * Extensions/ipy_completers.py, ipy_stock_completers.py:
299 * Extensions/ipy_completers.py, ipy_stock_completers.py:
278 Moved implementations of 'bundled' completers to ipy_completers.py,
300 Moved implementations of 'bundled' completers to ipy_completers.py,
279 they are only enabled in ipy_stock_completers.py.
301 they are only enabled in ipy_stock_completers.py.
280
302
281 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
303 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
282
304
283 * IPython/PyColorize.py (Parser.format2): Fix identation of
305 * IPython/PyColorize.py (Parser.format2): Fix identation of
284 colorzied output and return early if color scheme is NoColor, to
306 colorzied output and return early if color scheme is NoColor, to
285 avoid unnecessary and expensive tokenization. Closes #131.
307 avoid unnecessary and expensive tokenization. Closes #131.
286
308
287 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
309 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
288
310
289 * IPython/Debugger.py: disable the use of pydb version 1.17. It
311 * IPython/Debugger.py: disable the use of pydb version 1.17. It
290 has a critical bug (a missing import that makes post-mortem not
312 has a critical bug (a missing import that makes post-mortem not
291 work at all). Unfortunately as of this time, this is the version
313 work at all). Unfortunately as of this time, this is the version
292 shipped with Ubuntu Edgy, so quite a few people have this one. I
314 shipped with Ubuntu Edgy, so quite a few people have this one. I
293 hope Edgy will update to a more recent package.
315 hope Edgy will update to a more recent package.
294
316
295 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
317 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
296
318
297 * IPython/iplib.py (_prefilter): close #52, second part of a patch
319 * IPython/iplib.py (_prefilter): close #52, second part of a patch
298 set by Stefan (only the first part had been applied before).
320 set by Stefan (only the first part had been applied before).
299
321
300 * IPython/Extensions/ipy_stock_completers.py (module_completer):
322 * IPython/Extensions/ipy_stock_completers.py (module_completer):
301 remove usage of the dangerous pkgutil.walk_packages(). See
323 remove usage of the dangerous pkgutil.walk_packages(). See
302 details in comments left in the code.
324 details in comments left in the code.
303
325
304 * IPython/Magic.py (magic_whos): add support for numpy arrays
326 * IPython/Magic.py (magic_whos): add support for numpy arrays
305 similar to what we had for Numeric.
327 similar to what we had for Numeric.
306
328
307 * IPython/completer.py (IPCompleter.complete): extend the
329 * IPython/completer.py (IPCompleter.complete): extend the
308 complete() call API to support completions by other mechanisms
330 complete() call API to support completions by other mechanisms
309 than readline. Closes #109.
331 than readline. Closes #109.
310
332
311 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
333 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
312 protect against a bug in Python's execfile(). Closes #123.
334 protect against a bug in Python's execfile(). Closes #123.
313
335
314 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
336 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
315
337
316 * IPython/iplib.py (split_user_input): ensure that when splitting
338 * IPython/iplib.py (split_user_input): ensure that when splitting
317 user input, the part that can be treated as a python name is pure
339 user input, the part that can be treated as a python name is pure
318 ascii (Python identifiers MUST be pure ascii). Part of the
340 ascii (Python identifiers MUST be pure ascii). Part of the
319 ongoing Unicode support work.
341 ongoing Unicode support work.
320
342
321 * IPython/Prompts.py (prompt_specials_color): Add \N for the
343 * IPython/Prompts.py (prompt_specials_color): Add \N for the
322 actual prompt number, without any coloring. This allows users to
344 actual prompt number, without any coloring. This allows users to
323 produce numbered prompts with their own colors. Added after a
345 produce numbered prompts with their own colors. Added after a
324 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
346 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
325
347
326 2007-03-31 Walter Doerwald <walter@livinglogic.de>
348 2007-03-31 Walter Doerwald <walter@livinglogic.de>
327
349
328 * IPython/Extensions/igrid.py: Map the return key
350 * IPython/Extensions/igrid.py: Map the return key
329 to enter() and shift-return to enterattr().
351 to enter() and shift-return to enterattr().
330
352
331 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
353 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
332
354
333 * IPython/Magic.py (magic_psearch): add unicode support by
355 * IPython/Magic.py (magic_psearch): add unicode support by
334 encoding to ascii the input, since this routine also only deals
356 encoding to ascii the input, since this routine also only deals
335 with valid Python names. Fixes a bug reported by Stefan.
357 with valid Python names. Fixes a bug reported by Stefan.
336
358
337 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
359 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
338
360
339 * IPython/Magic.py (_inspect): convert unicode input into ascii
361 * IPython/Magic.py (_inspect): convert unicode input into ascii
340 before trying to evaluate it as a Python identifier. This fixes a
362 before trying to evaluate it as a Python identifier. This fixes a
341 problem that the new unicode support had introduced when analyzing
363 problem that the new unicode support had introduced when analyzing
342 long definition lines for functions.
364 long definition lines for functions.
343
365
344 2007-03-24 Walter Doerwald <walter@livinglogic.de>
366 2007-03-24 Walter Doerwald <walter@livinglogic.de>
345
367
346 * IPython/Extensions/igrid.py: Fix picking. Using
368 * IPython/Extensions/igrid.py: Fix picking. Using
347 igrid with wxPython 2.6 and -wthread should work now.
369 igrid with wxPython 2.6 and -wthread should work now.
348 igrid.display() simply tries to create a frame without
370 igrid.display() simply tries to create a frame without
349 an application. Only if this fails an application is created.
371 an application. Only if this fails an application is created.
350
372
351 2007-03-23 Walter Doerwald <walter@livinglogic.de>
373 2007-03-23 Walter Doerwald <walter@livinglogic.de>
352
374
353 * IPython/Extensions/path.py: Updated to version 2.2.
375 * IPython/Extensions/path.py: Updated to version 2.2.
354
376
355 2007-03-23 Ville Vainio <vivainio@gmail.com>
377 2007-03-23 Ville Vainio <vivainio@gmail.com>
356
378
357 * iplib.py: recursive alias expansion now works better, so that
379 * iplib.py: recursive alias expansion now works better, so that
358 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
380 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
359 doesn't trip up the process, if 'd' has been aliased to 'ls'.
381 doesn't trip up the process, if 'd' has been aliased to 'ls'.
360
382
361 * Extensions/ipy_gnuglobal.py added, provides %global magic
383 * Extensions/ipy_gnuglobal.py added, provides %global magic
362 for users of http://www.gnu.org/software/global
384 for users of http://www.gnu.org/software/global
363
385
364 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
386 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
365 Closes #52. Patch by Stefan van der Walt.
387 Closes #52. Patch by Stefan van der Walt.
366
388
367 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
389 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
368
390
369 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
391 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
370 respect the __file__ attribute when using %run. Thanks to a bug
392 respect the __file__ attribute when using %run. Thanks to a bug
371 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
393 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
372
394
373 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
395 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
374
396
375 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
397 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
376 input. Patch sent by Stefan.
398 input. Patch sent by Stefan.
377
399
378 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
400 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
379 * IPython/Extensions/ipy_stock_completer.py
401 * IPython/Extensions/ipy_stock_completer.py
380 shlex_split, fix bug in shlex_split. len function
402 shlex_split, fix bug in shlex_split. len function
381 call was missing an if statement. Caused shlex_split to
403 call was missing an if statement. Caused shlex_split to
382 sometimes return "" as last element.
404 sometimes return "" as last element.
383
405
384 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
385
407
386 * IPython/completer.py
408 * IPython/completer.py
387 (IPCompleter.file_matches.single_dir_expand): fix a problem
409 (IPCompleter.file_matches.single_dir_expand): fix a problem
388 reported by Stefan, where directories containign a single subdir
410 reported by Stefan, where directories containign a single subdir
389 would be completed too early.
411 would be completed too early.
390
412
391 * IPython/Shell.py (_load_pylab): Make the execution of 'from
413 * IPython/Shell.py (_load_pylab): Make the execution of 'from
392 pylab import *' when -pylab is given be optional. A new flag,
414 pylab import *' when -pylab is given be optional. A new flag,
393 pylab_import_all controls this behavior, the default is True for
415 pylab_import_all controls this behavior, the default is True for
394 backwards compatibility.
416 backwards compatibility.
395
417
396 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
418 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
397 modified) R. Bernstein's patch for fully syntax highlighted
419 modified) R. Bernstein's patch for fully syntax highlighted
398 tracebacks. The functionality is also available under ultraTB for
420 tracebacks. The functionality is also available under ultraTB for
399 non-ipython users (someone using ultraTB but outside an ipython
421 non-ipython users (someone using ultraTB but outside an ipython
400 session). They can select the color scheme by setting the
422 session). They can select the color scheme by setting the
401 module-level global DEFAULT_SCHEME. The highlight functionality
423 module-level global DEFAULT_SCHEME. The highlight functionality
402 also works when debugging.
424 also works when debugging.
403
425
404 * IPython/genutils.py (IOStream.close): small patch by
426 * IPython/genutils.py (IOStream.close): small patch by
405 R. Bernstein for improved pydb support.
427 R. Bernstein for improved pydb support.
406
428
407 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
429 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
408 DaveS <davls@telus.net> to improve support of debugging under
430 DaveS <davls@telus.net> to improve support of debugging under
409 NTEmacs, including improved pydb behavior.
431 NTEmacs, including improved pydb behavior.
410
432
411 * IPython/Magic.py (magic_prun): Fix saving of profile info for
433 * IPython/Magic.py (magic_prun): Fix saving of profile info for
412 Python 2.5, where the stats object API changed a little. Thanks
434 Python 2.5, where the stats object API changed a little. Thanks
413 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
435 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
414
436
415 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
437 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
416 Pernetty's patch to improve support for (X)Emacs under Win32.
438 Pernetty's patch to improve support for (X)Emacs under Win32.
417
439
418 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
440 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
419
441
420 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
442 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
421 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
443 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
422 a report by Nik Tautenhahn.
444 a report by Nik Tautenhahn.
423
445
424 2007-03-16 Walter Doerwald <walter@livinglogic.de>
446 2007-03-16 Walter Doerwald <walter@livinglogic.de>
425
447
426 * setup.py: Add the igrid help files to the list of data files
448 * setup.py: Add the igrid help files to the list of data files
427 to be installed alongside igrid.
449 to be installed alongside igrid.
428 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
450 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
429 Show the input object of the igrid browser as the window tile.
451 Show the input object of the igrid browser as the window tile.
430 Show the object the cursor is on in the statusbar.
452 Show the object the cursor is on in the statusbar.
431
453
432 2007-03-15 Ville Vainio <vivainio@gmail.com>
454 2007-03-15 Ville Vainio <vivainio@gmail.com>
433
455
434 * Extensions/ipy_stock_completers.py: Fixed exception
456 * Extensions/ipy_stock_completers.py: Fixed exception
435 on mismatching quotes in %run completer. Patch by
457 on mismatching quotes in %run completer. Patch by
436 JοΏ½rgen Stenarson. Closes #127.
458 JοΏ½rgen Stenarson. Closes #127.
437
459
438 2007-03-14 Ville Vainio <vivainio@gmail.com>
460 2007-03-14 Ville Vainio <vivainio@gmail.com>
439
461
440 * Extensions/ext_rehashdir.py: Do not do auto_alias
462 * Extensions/ext_rehashdir.py: Do not do auto_alias
441 in %rehashdir, it clobbers %store'd aliases.
463 in %rehashdir, it clobbers %store'd aliases.
442
464
443 * UserConfig/ipy_profile_sh.py: envpersist.py extension
465 * UserConfig/ipy_profile_sh.py: envpersist.py extension
444 (beefed up %env) imported for sh profile.
466 (beefed up %env) imported for sh profile.
445
467
446 2007-03-10 Walter Doerwald <walter@livinglogic.de>
468 2007-03-10 Walter Doerwald <walter@livinglogic.de>
447
469
448 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
470 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
449 as the default browser.
471 as the default browser.
450 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
472 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
451 As igrid displays all attributes it ever encounters, fetch() (which has
473 As igrid displays all attributes it ever encounters, fetch() (which has
452 been renamed to _fetch()) doesn't have to recalculate the display attributes
474 been renamed to _fetch()) doesn't have to recalculate the display attributes
453 every time a new item is fetched. This should speed up scrolling.
475 every time a new item is fetched. This should speed up scrolling.
454
476
455 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
477 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
456
478
457 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
479 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
458 Schmolck's recently reported tab-completion bug (my previous one
480 Schmolck's recently reported tab-completion bug (my previous one
459 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
481 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
460
482
461 2007-03-09 Walter Doerwald <walter@livinglogic.de>
483 2007-03-09 Walter Doerwald <walter@livinglogic.de>
462
484
463 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
485 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
464 Close help window if exiting igrid.
486 Close help window if exiting igrid.
465
487
466 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
488 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
467
489
468 * IPython/Extensions/ipy_defaults.py: Check if readline is available
490 * IPython/Extensions/ipy_defaults.py: Check if readline is available
469 before calling functions from readline.
491 before calling functions from readline.
470
492
471 2007-03-02 Walter Doerwald <walter@livinglogic.de>
493 2007-03-02 Walter Doerwald <walter@livinglogic.de>
472
494
473 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
495 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
474 igrid is a wxPython-based display object for ipipe. If your system has
496 igrid is a wxPython-based display object for ipipe. If your system has
475 wx installed igrid will be the default display. Without wx ipipe falls
497 wx installed igrid will be the default display. Without wx ipipe falls
476 back to ibrowse (which needs curses). If no curses is installed ipipe
498 back to ibrowse (which needs curses). If no curses is installed ipipe
477 falls back to idump.
499 falls back to idump.
478
500
479 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
501 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
480
502
481 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
503 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
482 my changes from yesterday, they introduced bugs. Will reactivate
504 my changes from yesterday, they introduced bugs. Will reactivate
483 once I get a correct solution, which will be much easier thanks to
505 once I get a correct solution, which will be much easier thanks to
484 Dan Milstein's new prefilter test suite.
506 Dan Milstein's new prefilter test suite.
485
507
486 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
508 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
487
509
488 * IPython/iplib.py (split_user_input): fix input splitting so we
510 * IPython/iplib.py (split_user_input): fix input splitting so we
489 don't attempt attribute accesses on things that can't possibly be
511 don't attempt attribute accesses on things that can't possibly be
490 valid Python attributes. After a bug report by Alex Schmolck.
512 valid Python attributes. After a bug report by Alex Schmolck.
491 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
513 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
492 %magic with explicit % prefix.
514 %magic with explicit % prefix.
493
515
494 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
516 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
495
517
496 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
518 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
497 avoid a DeprecationWarning from GTK.
519 avoid a DeprecationWarning from GTK.
498
520
499 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
521 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
500
522
501 * IPython/genutils.py (clock): I modified clock() to return total
523 * IPython/genutils.py (clock): I modified clock() to return total
502 time, user+system. This is a more commonly needed metric. I also
524 time, user+system. This is a more commonly needed metric. I also
503 introduced the new clocku/clocks to get only user/system time if
525 introduced the new clocku/clocks to get only user/system time if
504 one wants those instead.
526 one wants those instead.
505
527
506 ***WARNING: API CHANGE*** clock() used to return only user time,
528 ***WARNING: API CHANGE*** clock() used to return only user time,
507 so if you want exactly the same results as before, use clocku
529 so if you want exactly the same results as before, use clocku
508 instead.
530 instead.
509
531
510 2007-02-22 Ville Vainio <vivainio@gmail.com>
532 2007-02-22 Ville Vainio <vivainio@gmail.com>
511
533
512 * IPython/Extensions/ipy_p4.py: Extension for improved
534 * IPython/Extensions/ipy_p4.py: Extension for improved
513 p4 (perforce version control system) experience.
535 p4 (perforce version control system) experience.
514 Adds %p4 magic with p4 command completion and
536 Adds %p4 magic with p4 command completion and
515 automatic -G argument (marshall output as python dict)
537 automatic -G argument (marshall output as python dict)
516
538
517 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
539 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
518
540
519 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
541 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
520 stop marks.
542 stop marks.
521 (ClearingMixin): a simple mixin to easily make a Demo class clear
543 (ClearingMixin): a simple mixin to easily make a Demo class clear
522 the screen in between blocks and have empty marquees. The
544 the screen in between blocks and have empty marquees. The
523 ClearDemo and ClearIPDemo classes that use it are included.
545 ClearDemo and ClearIPDemo classes that use it are included.
524
546
525 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
547 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
526
548
527 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
549 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
528 protect against exceptions at Python shutdown time. Patch
550 protect against exceptions at Python shutdown time. Patch
529 sumbmitted to upstream.
551 sumbmitted to upstream.
530
552
531 2007-02-14 Walter Doerwald <walter@livinglogic.de>
553 2007-02-14 Walter Doerwald <walter@livinglogic.de>
532
554
533 * IPython/Extensions/ibrowse.py: If entering the first object level
555 * IPython/Extensions/ibrowse.py: If entering the first object level
534 (i.e. the object for which the browser has been started) fails,
556 (i.e. the object for which the browser has been started) fails,
535 now the error is raised directly (aborting the browser) instead of
557 now the error is raised directly (aborting the browser) instead of
536 running into an empty levels list later.
558 running into an empty levels list later.
537
559
538 2007-02-03 Walter Doerwald <walter@livinglogic.de>
560 2007-02-03 Walter Doerwald <walter@livinglogic.de>
539
561
540 * IPython/Extensions/ipipe.py: Add an xrepr implementation
562 * IPython/Extensions/ipipe.py: Add an xrepr implementation
541 for the noitem object.
563 for the noitem object.
542
564
543 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
565 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
544
566
545 * IPython/completer.py (Completer.attr_matches): Fix small
567 * IPython/completer.py (Completer.attr_matches): Fix small
546 tab-completion bug with Enthought Traits objects with units.
568 tab-completion bug with Enthought Traits objects with units.
547 Thanks to a bug report by Tom Denniston
569 Thanks to a bug report by Tom Denniston
548 <tom.denniston-AT-alum.dartmouth.org>.
570 <tom.denniston-AT-alum.dartmouth.org>.
549
571
550 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
572 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
551
573
552 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
574 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
553 bug where only .ipy or .py would be completed. Once the first
575 bug where only .ipy or .py would be completed. Once the first
554 argument to %run has been given, all completions are valid because
576 argument to %run has been given, all completions are valid because
555 they are the arguments to the script, which may well be non-python
577 they are the arguments to the script, which may well be non-python
556 filenames.
578 filenames.
557
579
558 * IPython/irunner.py (InteractiveRunner.run_source): major updates
580 * IPython/irunner.py (InteractiveRunner.run_source): major updates
559 to irunner to allow it to correctly support real doctesting of
581 to irunner to allow it to correctly support real doctesting of
560 out-of-process ipython code.
582 out-of-process ipython code.
561
583
562 * IPython/Magic.py (magic_cd): Make the setting of the terminal
584 * IPython/Magic.py (magic_cd): Make the setting of the terminal
563 title an option (-noterm_title) because it completely breaks
585 title an option (-noterm_title) because it completely breaks
564 doctesting.
586 doctesting.
565
587
566 * IPython/demo.py: fix IPythonDemo class that was not actually working.
588 * IPython/demo.py: fix IPythonDemo class that was not actually working.
567
589
568 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
590 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
569
591
570 * IPython/irunner.py (main): fix small bug where extensions were
592 * IPython/irunner.py (main): fix small bug where extensions were
571 not being correctly recognized.
593 not being correctly recognized.
572
594
573 2007-01-23 Walter Doerwald <walter@livinglogic.de>
595 2007-01-23 Walter Doerwald <walter@livinglogic.de>
574
596
575 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
597 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
576 a string containing a single line yields the string itself as the
598 a string containing a single line yields the string itself as the
577 only item.
599 only item.
578
600
579 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
601 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
580 object if it's the same as the one on the last level (This avoids
602 object if it's the same as the one on the last level (This avoids
581 infinite recursion for one line strings).
603 infinite recursion for one line strings).
582
604
583 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
605 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
584
606
585 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
607 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
586 all output streams before printing tracebacks. This ensures that
608 all output streams before printing tracebacks. This ensures that
587 user output doesn't end up interleaved with traceback output.
609 user output doesn't end up interleaved with traceback output.
588
610
589 2007-01-10 Ville Vainio <vivainio@gmail.com>
611 2007-01-10 Ville Vainio <vivainio@gmail.com>
590
612
591 * Extensions/envpersist.py: Turbocharged %env that remembers
613 * Extensions/envpersist.py: Turbocharged %env that remembers
592 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
614 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
593 "%env VISUAL=jed".
615 "%env VISUAL=jed".
594
616
595 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
617 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
596
618
597 * IPython/iplib.py (showtraceback): ensure that we correctly call
619 * IPython/iplib.py (showtraceback): ensure that we correctly call
598 custom handlers in all cases (some with pdb were slipping through,
620 custom handlers in all cases (some with pdb were slipping through,
599 but I'm not exactly sure why).
621 but I'm not exactly sure why).
600
622
601 * IPython/Debugger.py (Tracer.__init__): added new class to
623 * IPython/Debugger.py (Tracer.__init__): added new class to
602 support set_trace-like usage of IPython's enhanced debugger.
624 support set_trace-like usage of IPython's enhanced debugger.
603
625
604 2006-12-24 Ville Vainio <vivainio@gmail.com>
626 2006-12-24 Ville Vainio <vivainio@gmail.com>
605
627
606 * ipmaker.py: more informative message when ipy_user_conf
628 * ipmaker.py: more informative message when ipy_user_conf
607 import fails (suggest running %upgrade).
629 import fails (suggest running %upgrade).
608
630
609 * tools/run_ipy_in_profiler.py: Utility to see where
631 * tools/run_ipy_in_profiler.py: Utility to see where
610 the time during IPython startup is spent.
632 the time during IPython startup is spent.
611
633
612 2006-12-20 Ville Vainio <vivainio@gmail.com>
634 2006-12-20 Ville Vainio <vivainio@gmail.com>
613
635
614 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
636 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
615
637
616 * ipapi.py: Add new ipapi method, expand_alias.
638 * ipapi.py: Add new ipapi method, expand_alias.
617
639
618 * Release.py: Bump up version to 0.7.4.svn
640 * Release.py: Bump up version to 0.7.4.svn
619
641
620 2006-12-17 Ville Vainio <vivainio@gmail.com>
642 2006-12-17 Ville Vainio <vivainio@gmail.com>
621
643
622 * Extensions/jobctrl.py: Fixed &cmd arg arg...
644 * Extensions/jobctrl.py: Fixed &cmd arg arg...
623 to work properly on posix too
645 to work properly on posix too
624
646
625 * Release.py: Update revnum (version is still just 0.7.3).
647 * Release.py: Update revnum (version is still just 0.7.3).
626
648
627 2006-12-15 Ville Vainio <vivainio@gmail.com>
649 2006-12-15 Ville Vainio <vivainio@gmail.com>
628
650
629 * scripts/ipython_win_post_install: create ipython.py in
651 * scripts/ipython_win_post_install: create ipython.py in
630 prefix + "/scripts".
652 prefix + "/scripts".
631
653
632 * Release.py: Update version to 0.7.3.
654 * Release.py: Update version to 0.7.3.
633
655
634 2006-12-14 Ville Vainio <vivainio@gmail.com>
656 2006-12-14 Ville Vainio <vivainio@gmail.com>
635
657
636 * scripts/ipython_win_post_install: Overwrite old shortcuts
658 * scripts/ipython_win_post_install: Overwrite old shortcuts
637 if they already exist
659 if they already exist
638
660
639 * Release.py: release 0.7.3rc2
661 * Release.py: release 0.7.3rc2
640
662
641 2006-12-13 Ville Vainio <vivainio@gmail.com>
663 2006-12-13 Ville Vainio <vivainio@gmail.com>
642
664
643 * Branch and update Release.py for 0.7.3rc1
665 * Branch and update Release.py for 0.7.3rc1
644
666
645 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
667 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
646
668
647 * IPython/Shell.py (IPShellWX): update for current WX naming
669 * IPython/Shell.py (IPShellWX): update for current WX naming
648 conventions, to avoid a deprecation warning with current WX
670 conventions, to avoid a deprecation warning with current WX
649 versions. Thanks to a report by Danny Shevitz.
671 versions. Thanks to a report by Danny Shevitz.
650
672
651 2006-12-12 Ville Vainio <vivainio@gmail.com>
673 2006-12-12 Ville Vainio <vivainio@gmail.com>
652
674
653 * ipmaker.py: apply david cournapeau's patch to make
675 * ipmaker.py: apply david cournapeau's patch to make
654 import_some work properly even when ipythonrc does
676 import_some work properly even when ipythonrc does
655 import_some on empty list (it was an old bug!).
677 import_some on empty list (it was an old bug!).
656
678
657 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
679 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
658 Add deprecation note to ipythonrc and a url to wiki
680 Add deprecation note to ipythonrc and a url to wiki
659 in ipy_user_conf.py
681 in ipy_user_conf.py
660
682
661
683
662 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
684 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
663 as if it was typed on IPython command prompt, i.e.
685 as if it was typed on IPython command prompt, i.e.
664 as IPython script.
686 as IPython script.
665
687
666 * example-magic.py, magic_grepl.py: remove outdated examples
688 * example-magic.py, magic_grepl.py: remove outdated examples
667
689
668 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
690 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
669
691
670 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
692 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
671 is called before any exception has occurred.
693 is called before any exception has occurred.
672
694
673 2006-12-08 Ville Vainio <vivainio@gmail.com>
695 2006-12-08 Ville Vainio <vivainio@gmail.com>
674
696
675 * Extensions/ipy_stock_completers.py: fix cd completer
697 * Extensions/ipy_stock_completers.py: fix cd completer
676 to translate /'s to \'s again.
698 to translate /'s to \'s again.
677
699
678 * completer.py: prevent traceback on file completions w/
700 * completer.py: prevent traceback on file completions w/
679 backslash.
701 backslash.
680
702
681 * Release.py: Update release number to 0.7.3b3 for release
703 * Release.py: Update release number to 0.7.3b3 for release
682
704
683 2006-12-07 Ville Vainio <vivainio@gmail.com>
705 2006-12-07 Ville Vainio <vivainio@gmail.com>
684
706
685 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
707 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
686 while executing external code. Provides more shell-like behaviour
708 while executing external code. Provides more shell-like behaviour
687 and overall better response to ctrl + C / ctrl + break.
709 and overall better response to ctrl + C / ctrl + break.
688
710
689 * tools/make_tarball.py: new script to create tarball straight from svn
711 * tools/make_tarball.py: new script to create tarball straight from svn
690 (setup.py sdist doesn't work on win32).
712 (setup.py sdist doesn't work on win32).
691
713
692 * Extensions/ipy_stock_completers.py: fix cd completer to give up
714 * Extensions/ipy_stock_completers.py: fix cd completer to give up
693 on dirnames with spaces and use the default completer instead.
715 on dirnames with spaces and use the default completer instead.
694
716
695 * Revision.py: Change version to 0.7.3b2 for release.
717 * Revision.py: Change version to 0.7.3b2 for release.
696
718
697 2006-12-05 Ville Vainio <vivainio@gmail.com>
719 2006-12-05 Ville Vainio <vivainio@gmail.com>
698
720
699 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
721 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
700 pydb patch 4 (rm debug printing, py 2.5 checking)
722 pydb patch 4 (rm debug printing, py 2.5 checking)
701
723
702 2006-11-30 Walter Doerwald <walter@livinglogic.de>
724 2006-11-30 Walter Doerwald <walter@livinglogic.de>
703 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
725 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
704 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
726 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
705 "refreshfind" (mapped to "R") does the same but tries to go back to the same
727 "refreshfind" (mapped to "R") does the same but tries to go back to the same
706 object the cursor was on before the refresh. The command "markrange" is
728 object the cursor was on before the refresh. The command "markrange" is
707 mapped to "%" now.
729 mapped to "%" now.
708 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
730 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
709
731
710 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
732 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
711
733
712 * IPython/Magic.py (magic_debug): new %debug magic to activate the
734 * IPython/Magic.py (magic_debug): new %debug magic to activate the
713 interactive debugger on the last traceback, without having to call
735 interactive debugger on the last traceback, without having to call
714 %pdb and rerun your code. Made minor changes in various modules,
736 %pdb and rerun your code. Made minor changes in various modules,
715 should automatically recognize pydb if available.
737 should automatically recognize pydb if available.
716
738
717 2006-11-28 Ville Vainio <vivainio@gmail.com>
739 2006-11-28 Ville Vainio <vivainio@gmail.com>
718
740
719 * completer.py: If the text start with !, show file completions
741 * completer.py: If the text start with !, show file completions
720 properly. This helps when trying to complete command name
742 properly. This helps when trying to complete command name
721 for shell escapes.
743 for shell escapes.
722
744
723 2006-11-27 Ville Vainio <vivainio@gmail.com>
745 2006-11-27 Ville Vainio <vivainio@gmail.com>
724
746
725 * ipy_stock_completers.py: bzr completer submitted by Stefan van
747 * ipy_stock_completers.py: bzr completer submitted by Stefan van
726 der Walt. Clean up svn and hg completers by using a common
748 der Walt. Clean up svn and hg completers by using a common
727 vcs_completer.
749 vcs_completer.
728
750
729 2006-11-26 Ville Vainio <vivainio@gmail.com>
751 2006-11-26 Ville Vainio <vivainio@gmail.com>
730
752
731 * Remove ipconfig and %config; you should use _ip.options structure
753 * Remove ipconfig and %config; you should use _ip.options structure
732 directly instead!
754 directly instead!
733
755
734 * genutils.py: add wrap_deprecated function for deprecating callables
756 * genutils.py: add wrap_deprecated function for deprecating callables
735
757
736 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
758 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
737 _ip.system instead. ipalias is redundant.
759 _ip.system instead. ipalias is redundant.
738
760
739 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
761 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
740 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
762 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
741 explicit.
763 explicit.
742
764
743 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
765 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
744 completer. Try it by entering 'hg ' and pressing tab.
766 completer. Try it by entering 'hg ' and pressing tab.
745
767
746 * macro.py: Give Macro a useful __repr__ method
768 * macro.py: Give Macro a useful __repr__ method
747
769
748 * Magic.py: %whos abbreviates the typename of Macro for brevity.
770 * Magic.py: %whos abbreviates the typename of Macro for brevity.
749
771
750 2006-11-24 Walter Doerwald <walter@livinglogic.de>
772 2006-11-24 Walter Doerwald <walter@livinglogic.de>
751 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
773 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
752 we don't get a duplicate ipipe module, where registration of the xrepr
774 we don't get a duplicate ipipe module, where registration of the xrepr
753 implementation for Text is useless.
775 implementation for Text is useless.
754
776
755 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
777 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
756
778
757 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
779 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
758
780
759 2006-11-24 Ville Vainio <vivainio@gmail.com>
781 2006-11-24 Ville Vainio <vivainio@gmail.com>
760
782
761 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
783 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
762 try to use "cProfile" instead of the slower pure python
784 try to use "cProfile" instead of the slower pure python
763 "profile"
785 "profile"
764
786
765 2006-11-23 Ville Vainio <vivainio@gmail.com>
787 2006-11-23 Ville Vainio <vivainio@gmail.com>
766
788
767 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
789 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
768 Qt+IPython+Designer link in documentation.
790 Qt+IPython+Designer link in documentation.
769
791
770 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
792 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
771 correct Pdb object to %pydb.
793 correct Pdb object to %pydb.
772
794
773
795
774 2006-11-22 Walter Doerwald <walter@livinglogic.de>
796 2006-11-22 Walter Doerwald <walter@livinglogic.de>
775 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
797 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
776 generic xrepr(), otherwise the list implementation would kick in.
798 generic xrepr(), otherwise the list implementation would kick in.
777
799
778 2006-11-21 Ville Vainio <vivainio@gmail.com>
800 2006-11-21 Ville Vainio <vivainio@gmail.com>
779
801
780 * upgrade_dir.py: Now actually overwrites a nonmodified user file
802 * upgrade_dir.py: Now actually overwrites a nonmodified user file
781 with one from UserConfig.
803 with one from UserConfig.
782
804
783 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
805 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
784 it was missing which broke the sh profile.
806 it was missing which broke the sh profile.
785
807
786 * completer.py: file completer now uses explicit '/' instead
808 * completer.py: file completer now uses explicit '/' instead
787 of os.path.join, expansion of 'foo' was broken on win32
809 of os.path.join, expansion of 'foo' was broken on win32
788 if there was one directory with name 'foobar'.
810 if there was one directory with name 'foobar'.
789
811
790 * A bunch of patches from Kirill Smelkov:
812 * A bunch of patches from Kirill Smelkov:
791
813
792 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
814 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
793
815
794 * [patch 7/9] Implement %page -r (page in raw mode) -
816 * [patch 7/9] Implement %page -r (page in raw mode) -
795
817
796 * [patch 5/9] ScientificPython webpage has moved
818 * [patch 5/9] ScientificPython webpage has moved
797
819
798 * [patch 4/9] The manual mentions %ds, should be %dhist
820 * [patch 4/9] The manual mentions %ds, should be %dhist
799
821
800 * [patch 3/9] Kill old bits from %prun doc.
822 * [patch 3/9] Kill old bits from %prun doc.
801
823
802 * [patch 1/9] Fix typos here and there.
824 * [patch 1/9] Fix typos here and there.
803
825
804 2006-11-08 Ville Vainio <vivainio@gmail.com>
826 2006-11-08 Ville Vainio <vivainio@gmail.com>
805
827
806 * completer.py (attr_matches): catch all exceptions raised
828 * completer.py (attr_matches): catch all exceptions raised
807 by eval of expr with dots.
829 by eval of expr with dots.
808
830
809 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
831 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
810
832
811 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
833 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
812 input if it starts with whitespace. This allows you to paste
834 input if it starts with whitespace. This allows you to paste
813 indented input from any editor without manually having to type in
835 indented input from any editor without manually having to type in
814 the 'if 1:', which is convenient when working interactively.
836 the 'if 1:', which is convenient when working interactively.
815 Slightly modifed version of a patch by Bo Peng
837 Slightly modifed version of a patch by Bo Peng
816 <bpeng-AT-rice.edu>.
838 <bpeng-AT-rice.edu>.
817
839
818 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
840 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
819
841
820 * IPython/irunner.py (main): modified irunner so it automatically
842 * IPython/irunner.py (main): modified irunner so it automatically
821 recognizes the right runner to use based on the extension (.py for
843 recognizes the right runner to use based on the extension (.py for
822 python, .ipy for ipython and .sage for sage).
844 python, .ipy for ipython and .sage for sage).
823
845
824 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
846 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
825 visible in ipapi as ip.config(), to programatically control the
847 visible in ipapi as ip.config(), to programatically control the
826 internal rc object. There's an accompanying %config magic for
848 internal rc object. There's an accompanying %config magic for
827 interactive use, which has been enhanced to match the
849 interactive use, which has been enhanced to match the
828 funtionality in ipconfig.
850 funtionality in ipconfig.
829
851
830 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
852 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
831 so it's not just a toggle, it now takes an argument. Add support
853 so it's not just a toggle, it now takes an argument. Add support
832 for a customizable header when making system calls, as the new
854 for a customizable header when making system calls, as the new
833 system_header variable in the ipythonrc file.
855 system_header variable in the ipythonrc file.
834
856
835 2006-11-03 Walter Doerwald <walter@livinglogic.de>
857 2006-11-03 Walter Doerwald <walter@livinglogic.de>
836
858
837 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
859 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
838 generic functions (using Philip J. Eby's simplegeneric package).
860 generic functions (using Philip J. Eby's simplegeneric package).
839 This makes it possible to customize the display of third-party classes
861 This makes it possible to customize the display of third-party classes
840 without having to monkeypatch them. xiter() no longer supports a mode
862 without having to monkeypatch them. xiter() no longer supports a mode
841 argument and the XMode class has been removed. The same functionality can
863 argument and the XMode class has been removed. The same functionality can
842 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
864 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
843 One consequence of the switch to generic functions is that xrepr() and
865 One consequence of the switch to generic functions is that xrepr() and
844 xattrs() implementation must define the default value for the mode
866 xattrs() implementation must define the default value for the mode
845 argument themselves and xattrs() implementations must return real
867 argument themselves and xattrs() implementations must return real
846 descriptors.
868 descriptors.
847
869
848 * IPython/external: This new subpackage will contain all third-party
870 * IPython/external: This new subpackage will contain all third-party
849 packages that are bundled with IPython. (The first one is simplegeneric).
871 packages that are bundled with IPython. (The first one is simplegeneric).
850
872
851 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
873 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
852 directory which as been dropped in r1703.
874 directory which as been dropped in r1703.
853
875
854 * IPython/Extensions/ipipe.py (iless): Fixed.
876 * IPython/Extensions/ipipe.py (iless): Fixed.
855
877
856 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
878 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
857
879
858 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
880 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
859
881
860 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
882 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
861 handling in variable expansion so that shells and magics recognize
883 handling in variable expansion so that shells and magics recognize
862 function local scopes correctly. Bug reported by Brian.
884 function local scopes correctly. Bug reported by Brian.
863
885
864 * scripts/ipython: remove the very first entry in sys.path which
886 * scripts/ipython: remove the very first entry in sys.path which
865 Python auto-inserts for scripts, so that sys.path under IPython is
887 Python auto-inserts for scripts, so that sys.path under IPython is
866 as similar as possible to that under plain Python.
888 as similar as possible to that under plain Python.
867
889
868 * IPython/completer.py (IPCompleter.file_matches): Fix
890 * IPython/completer.py (IPCompleter.file_matches): Fix
869 tab-completion so that quotes are not closed unless the completion
891 tab-completion so that quotes are not closed unless the completion
870 is unambiguous. After a request by Stefan. Minor cleanups in
892 is unambiguous. After a request by Stefan. Minor cleanups in
871 ipy_stock_completers.
893 ipy_stock_completers.
872
894
873 2006-11-02 Ville Vainio <vivainio@gmail.com>
895 2006-11-02 Ville Vainio <vivainio@gmail.com>
874
896
875 * ipy_stock_completers.py: Add %run and %cd completers.
897 * ipy_stock_completers.py: Add %run and %cd completers.
876
898
877 * completer.py: Try running custom completer for both
899 * completer.py: Try running custom completer for both
878 "foo" and "%foo" if the command is just "foo". Ignore case
900 "foo" and "%foo" if the command is just "foo". Ignore case
879 when filtering possible completions.
901 when filtering possible completions.
880
902
881 * UserConfig/ipy_user_conf.py: install stock completers as default
903 * UserConfig/ipy_user_conf.py: install stock completers as default
882
904
883 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
905 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
884 simplified readline history save / restore through a wrapper
906 simplified readline history save / restore through a wrapper
885 function
907 function
886
908
887
909
888 2006-10-31 Ville Vainio <vivainio@gmail.com>
910 2006-10-31 Ville Vainio <vivainio@gmail.com>
889
911
890 * strdispatch.py, completer.py, ipy_stock_completers.py:
912 * strdispatch.py, completer.py, ipy_stock_completers.py:
891 Allow str_key ("command") in completer hooks. Implement
913 Allow str_key ("command") in completer hooks. Implement
892 trivial completer for 'import' (stdlib modules only). Rename
914 trivial completer for 'import' (stdlib modules only). Rename
893 ipy_linux_package_managers.py to ipy_stock_completers.py.
915 ipy_linux_package_managers.py to ipy_stock_completers.py.
894 SVN completer.
916 SVN completer.
895
917
896 * Extensions/ledit.py: %magic line editor for easily and
918 * Extensions/ledit.py: %magic line editor for easily and
897 incrementally manipulating lists of strings. The magic command
919 incrementally manipulating lists of strings. The magic command
898 name is %led.
920 name is %led.
899
921
900 2006-10-30 Ville Vainio <vivainio@gmail.com>
922 2006-10-30 Ville Vainio <vivainio@gmail.com>
901
923
902 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
924 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
903 Bernsteins's patches for pydb integration.
925 Bernsteins's patches for pydb integration.
904 http://bashdb.sourceforge.net/pydb/
926 http://bashdb.sourceforge.net/pydb/
905
927
906 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
928 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
907 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
929 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
908 custom completer hook to allow the users to implement their own
930 custom completer hook to allow the users to implement their own
909 completers. See ipy_linux_package_managers.py for example. The
931 completers. See ipy_linux_package_managers.py for example. The
910 hook name is 'complete_command'.
932 hook name is 'complete_command'.
911
933
912 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
934 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
913
935
914 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
936 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
915 Numeric leftovers.
937 Numeric leftovers.
916
938
917 * ipython.el (py-execute-region): apply Stefan's patch to fix
939 * ipython.el (py-execute-region): apply Stefan's patch to fix
918 garbled results if the python shell hasn't been previously started.
940 garbled results if the python shell hasn't been previously started.
919
941
920 * IPython/genutils.py (arg_split): moved to genutils, since it's a
942 * IPython/genutils.py (arg_split): moved to genutils, since it's a
921 pretty generic function and useful for other things.
943 pretty generic function and useful for other things.
922
944
923 * IPython/OInspect.py (getsource): Add customizable source
945 * IPython/OInspect.py (getsource): Add customizable source
924 extractor. After a request/patch form W. Stein (SAGE).
946 extractor. After a request/patch form W. Stein (SAGE).
925
947
926 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
948 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
927 window size to a more reasonable value from what pexpect does,
949 window size to a more reasonable value from what pexpect does,
928 since their choice causes wrapping bugs with long input lines.
950 since their choice causes wrapping bugs with long input lines.
929
951
930 2006-10-28 Ville Vainio <vivainio@gmail.com>
952 2006-10-28 Ville Vainio <vivainio@gmail.com>
931
953
932 * Magic.py (%run): Save and restore the readline history from
954 * Magic.py (%run): Save and restore the readline history from
933 file around %run commands to prevent side effects from
955 file around %run commands to prevent side effects from
934 %runned programs that might use readline (e.g. pydb).
956 %runned programs that might use readline (e.g. pydb).
935
957
936 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
958 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
937 invoking the pydb enhanced debugger.
959 invoking the pydb enhanced debugger.
938
960
939 2006-10-23 Walter Doerwald <walter@livinglogic.de>
961 2006-10-23 Walter Doerwald <walter@livinglogic.de>
940
962
941 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
963 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
942 call the base class method and propagate the return value to
964 call the base class method and propagate the return value to
943 ifile. This is now done by path itself.
965 ifile. This is now done by path itself.
944
966
945 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
967 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
946
968
947 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
969 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
948 api: set_crash_handler(), to expose the ability to change the
970 api: set_crash_handler(), to expose the ability to change the
949 internal crash handler.
971 internal crash handler.
950
972
951 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
973 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
952 the various parameters of the crash handler so that apps using
974 the various parameters of the crash handler so that apps using
953 IPython as their engine can customize crash handling. Ipmlemented
975 IPython as their engine can customize crash handling. Ipmlemented
954 at the request of SAGE.
976 at the request of SAGE.
955
977
956 2006-10-14 Ville Vainio <vivainio@gmail.com>
978 2006-10-14 Ville Vainio <vivainio@gmail.com>
957
979
958 * Magic.py, ipython.el: applied first "safe" part of Rocky
980 * Magic.py, ipython.el: applied first "safe" part of Rocky
959 Bernstein's patch set for pydb integration.
981 Bernstein's patch set for pydb integration.
960
982
961 * Magic.py (%unalias, %alias): %store'd aliases can now be
983 * Magic.py (%unalias, %alias): %store'd aliases can now be
962 removed with '%unalias'. %alias w/o args now shows most
984 removed with '%unalias'. %alias w/o args now shows most
963 interesting (stored / manually defined) aliases last
985 interesting (stored / manually defined) aliases last
964 where they catch the eye w/o scrolling.
986 where they catch the eye w/o scrolling.
965
987
966 * Magic.py (%rehashx), ext_rehashdir.py: files with
988 * Magic.py (%rehashx), ext_rehashdir.py: files with
967 'py' extension are always considered executable, even
989 'py' extension are always considered executable, even
968 when not in PATHEXT environment variable.
990 when not in PATHEXT environment variable.
969
991
970 2006-10-12 Ville Vainio <vivainio@gmail.com>
992 2006-10-12 Ville Vainio <vivainio@gmail.com>
971
993
972 * jobctrl.py: Add new "jobctrl" extension for spawning background
994 * jobctrl.py: Add new "jobctrl" extension for spawning background
973 processes with "&find /". 'import jobctrl' to try it out. Requires
995 processes with "&find /". 'import jobctrl' to try it out. Requires
974 'subprocess' module, standard in python 2.4+.
996 'subprocess' module, standard in python 2.4+.
975
997
976 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
998 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
977 so if foo -> bar and bar -> baz, then foo -> baz.
999 so if foo -> bar and bar -> baz, then foo -> baz.
978
1000
979 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
980
1002
981 * IPython/Magic.py (Magic.parse_options): add a new posix option
1003 * IPython/Magic.py (Magic.parse_options): add a new posix option
982 to allow parsing of input args in magics that doesn't strip quotes
1004 to allow parsing of input args in magics that doesn't strip quotes
983 (if posix=False). This also closes %timeit bug reported by
1005 (if posix=False). This also closes %timeit bug reported by
984 Stefan.
1006 Stefan.
985
1007
986 2006-10-03 Ville Vainio <vivainio@gmail.com>
1008 2006-10-03 Ville Vainio <vivainio@gmail.com>
987
1009
988 * iplib.py (raw_input, interact): Return ValueError catching for
1010 * iplib.py (raw_input, interact): Return ValueError catching for
989 raw_input. Fixes infinite loop for sys.stdin.close() or
1011 raw_input. Fixes infinite loop for sys.stdin.close() or
990 sys.stdout.close().
1012 sys.stdout.close().
991
1013
992 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1014 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
993
1015
994 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1016 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
995 to help in handling doctests. irunner is now pretty useful for
1017 to help in handling doctests. irunner is now pretty useful for
996 running standalone scripts and simulate a full interactive session
1018 running standalone scripts and simulate a full interactive session
997 in a format that can be then pasted as a doctest.
1019 in a format that can be then pasted as a doctest.
998
1020
999 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1021 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1000 on top of the default (useless) ones. This also fixes the nasty
1022 on top of the default (useless) ones. This also fixes the nasty
1001 way in which 2.5's Quitter() exits (reverted [1785]).
1023 way in which 2.5's Quitter() exits (reverted [1785]).
1002
1024
1003 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1025 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1004 2.5.
1026 2.5.
1005
1027
1006 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1028 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1007 color scheme is updated as well when color scheme is changed
1029 color scheme is updated as well when color scheme is changed
1008 interactively.
1030 interactively.
1009
1031
1010 2006-09-27 Ville Vainio <vivainio@gmail.com>
1032 2006-09-27 Ville Vainio <vivainio@gmail.com>
1011
1033
1012 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1034 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1013 infinite loop and just exit. It's a hack, but will do for a while.
1035 infinite loop and just exit. It's a hack, but will do for a while.
1014
1036
1015 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1037 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1016
1038
1017 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1039 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1018 the constructor, this makes it possible to get a list of only directories
1040 the constructor, this makes it possible to get a list of only directories
1019 or only files.
1041 or only files.
1020
1042
1021 2006-08-12 Ville Vainio <vivainio@gmail.com>
1043 2006-08-12 Ville Vainio <vivainio@gmail.com>
1022
1044
1023 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1045 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1024 they broke unittest
1046 they broke unittest
1025
1047
1026 2006-08-11 Ville Vainio <vivainio@gmail.com>
1048 2006-08-11 Ville Vainio <vivainio@gmail.com>
1027
1049
1028 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1050 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1029 by resolving issue properly, i.e. by inheriting FakeModule
1051 by resolving issue properly, i.e. by inheriting FakeModule
1030 from types.ModuleType. Pickling ipython interactive data
1052 from types.ModuleType. Pickling ipython interactive data
1031 should still work as usual (testing appreciated).
1053 should still work as usual (testing appreciated).
1032
1054
1033 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1055 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1034
1056
1035 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1057 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1036 running under python 2.3 with code from 2.4 to fix a bug with
1058 running under python 2.3 with code from 2.4 to fix a bug with
1037 help(). Reported by the Debian maintainers, Norbert Tretkowski
1059 help(). Reported by the Debian maintainers, Norbert Tretkowski
1038 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1060 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1039 <afayolle-AT-debian.org>.
1061 <afayolle-AT-debian.org>.
1040
1062
1041 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1063 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1042
1064
1043 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1065 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1044 (which was displaying "quit" twice).
1066 (which was displaying "quit" twice).
1045
1067
1046 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1068 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1047
1069
1048 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1070 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1049 the mode argument).
1071 the mode argument).
1050
1072
1051 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1073 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1052
1074
1053 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1075 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1054 not running under IPython.
1076 not running under IPython.
1055
1077
1056 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1078 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1057 and make it iterable (iterating over the attribute itself). Add two new
1079 and make it iterable (iterating over the attribute itself). Add two new
1058 magic strings for __xattrs__(): If the string starts with "-", the attribute
1080 magic strings for __xattrs__(): If the string starts with "-", the attribute
1059 will not be displayed in ibrowse's detail view (but it can still be
1081 will not be displayed in ibrowse's detail view (but it can still be
1060 iterated over). This makes it possible to add attributes that are large
1082 iterated over). This makes it possible to add attributes that are large
1061 lists or generator methods to the detail view. Replace magic attribute names
1083 lists or generator methods to the detail view. Replace magic attribute names
1062 and _attrname() and _getattr() with "descriptors": For each type of magic
1084 and _attrname() and _getattr() with "descriptors": For each type of magic
1063 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1085 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1064 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1086 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1065 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1087 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1066 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1088 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1067 are still supported.
1089 are still supported.
1068
1090
1069 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1091 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1070 fails in ibrowse.fetch(), the exception object is added as the last item
1092 fails in ibrowse.fetch(), the exception object is added as the last item
1071 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1093 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1072 a generator throws an exception midway through execution.
1094 a generator throws an exception midway through execution.
1073
1095
1074 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1096 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1075 encoding into methods.
1097 encoding into methods.
1076
1098
1077 2006-07-26 Ville Vainio <vivainio@gmail.com>
1099 2006-07-26 Ville Vainio <vivainio@gmail.com>
1078
1100
1079 * iplib.py: history now stores multiline input as single
1101 * iplib.py: history now stores multiline input as single
1080 history entries. Patch by Jorgen Cederlof.
1102 history entries. Patch by Jorgen Cederlof.
1081
1103
1082 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1104 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1083
1105
1084 * IPython/Extensions/ibrowse.py: Make cursor visible over
1106 * IPython/Extensions/ibrowse.py: Make cursor visible over
1085 non existing attributes.
1107 non existing attributes.
1086
1108
1087 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1109 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1088
1110
1089 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1111 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1090 error output of the running command doesn't mess up the screen.
1112 error output of the running command doesn't mess up the screen.
1091
1113
1092 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1114 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1093
1115
1094 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1116 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1095 argument. This sorts the items themselves.
1117 argument. This sorts the items themselves.
1096
1118
1097 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1119 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1098
1120
1099 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1121 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1100 Compile expression strings into code objects. This should speed
1122 Compile expression strings into code objects. This should speed
1101 up ifilter and friends somewhat.
1123 up ifilter and friends somewhat.
1102
1124
1103 2006-07-08 Ville Vainio <vivainio@gmail.com>
1125 2006-07-08 Ville Vainio <vivainio@gmail.com>
1104
1126
1105 * Magic.py: %cpaste now strips > from the beginning of lines
1127 * Magic.py: %cpaste now strips > from the beginning of lines
1106 to ease pasting quoted code from emails. Contributed by
1128 to ease pasting quoted code from emails. Contributed by
1107 Stefan van der Walt.
1129 Stefan van der Walt.
1108
1130
1109 2006-06-29 Ville Vainio <vivainio@gmail.com>
1131 2006-06-29 Ville Vainio <vivainio@gmail.com>
1110
1132
1111 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1133 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1112 mode, patch contributed by Darren Dale. NEEDS TESTING!
1134 mode, patch contributed by Darren Dale. NEEDS TESTING!
1113
1135
1114 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1136 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1115
1137
1116 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1138 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1117 a blue background. Fix fetching new display rows when the browser
1139 a blue background. Fix fetching new display rows when the browser
1118 scrolls more than a screenful (e.g. by using the goto command).
1140 scrolls more than a screenful (e.g. by using the goto command).
1119
1141
1120 2006-06-27 Ville Vainio <vivainio@gmail.com>
1142 2006-06-27 Ville Vainio <vivainio@gmail.com>
1121
1143
1122 * Magic.py (_inspect, _ofind) Apply David Huard's
1144 * Magic.py (_inspect, _ofind) Apply David Huard's
1123 patch for displaying the correct docstring for 'property'
1145 patch for displaying the correct docstring for 'property'
1124 attributes.
1146 attributes.
1125
1147
1126 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1148 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1127
1149
1128 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1150 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1129 commands into the methods implementing them.
1151 commands into the methods implementing them.
1130
1152
1131 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1153 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1132
1154
1133 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1155 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1134 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1156 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1135 autoindent support was authored by Jin Liu.
1157 autoindent support was authored by Jin Liu.
1136
1158
1137 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1159 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1138
1160
1139 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1161 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1140 for keymaps with a custom class that simplifies handling.
1162 for keymaps with a custom class that simplifies handling.
1141
1163
1142 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1164 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1143
1165
1144 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1166 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1145 resizing. This requires Python 2.5 to work.
1167 resizing. This requires Python 2.5 to work.
1146
1168
1147 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1169 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1148
1170
1149 * IPython/Extensions/ibrowse.py: Add two new commands to
1171 * IPython/Extensions/ibrowse.py: Add two new commands to
1150 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1172 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1151 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1173 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1152 attributes again. Remapped the help command to "?". Display
1174 attributes again. Remapped the help command to "?". Display
1153 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1175 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1154 as keys for the "home" and "end" commands. Add three new commands
1176 as keys for the "home" and "end" commands. Add three new commands
1155 to the input mode for "find" and friends: "delend" (CTRL-K)
1177 to the input mode for "find" and friends: "delend" (CTRL-K)
1156 deletes to the end of line. "incsearchup" searches upwards in the
1178 deletes to the end of line. "incsearchup" searches upwards in the
1157 command history for an input that starts with the text before the cursor.
1179 command history for an input that starts with the text before the cursor.
1158 "incsearchdown" does the same downwards. Removed a bogus mapping of
1180 "incsearchdown" does the same downwards. Removed a bogus mapping of
1159 the x key to "delete".
1181 the x key to "delete".
1160
1182
1161 2006-06-15 Ville Vainio <vivainio@gmail.com>
1183 2006-06-15 Ville Vainio <vivainio@gmail.com>
1162
1184
1163 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1185 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1164 used to create prompts dynamically, instead of the "old" way of
1186 used to create prompts dynamically, instead of the "old" way of
1165 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1187 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1166 way still works (it's invoked by the default hook), of course.
1188 way still works (it's invoked by the default hook), of course.
1167
1189
1168 * Prompts.py: added generate_output_prompt hook for altering output
1190 * Prompts.py: added generate_output_prompt hook for altering output
1169 prompt
1191 prompt
1170
1192
1171 * Release.py: Changed version string to 0.7.3.svn.
1193 * Release.py: Changed version string to 0.7.3.svn.
1172
1194
1173 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1195 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1174
1196
1175 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1197 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1176 the call to fetch() always tries to fetch enough data for at least one
1198 the call to fetch() always tries to fetch enough data for at least one
1177 full screen. This makes it possible to simply call moveto(0,0,True) in
1199 full screen. This makes it possible to simply call moveto(0,0,True) in
1178 the constructor. Fix typos and removed the obsolete goto attribute.
1200 the constructor. Fix typos and removed the obsolete goto attribute.
1179
1201
1180 2006-06-12 Ville Vainio <vivainio@gmail.com>
1202 2006-06-12 Ville Vainio <vivainio@gmail.com>
1181
1203
1182 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1204 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1183 allowing $variable interpolation within multiline statements,
1205 allowing $variable interpolation within multiline statements,
1184 though so far only with "sh" profile for a testing period.
1206 though so far only with "sh" profile for a testing period.
1185 The patch also enables splitting long commands with \ but it
1207 The patch also enables splitting long commands with \ but it
1186 doesn't work properly yet.
1208 doesn't work properly yet.
1187
1209
1188 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1210 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1189
1211
1190 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1212 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1191 input history and the position of the cursor in the input history for
1213 input history and the position of the cursor in the input history for
1192 the find, findbackwards and goto command.
1214 the find, findbackwards and goto command.
1193
1215
1194 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1216 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1195
1217
1196 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1218 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1197 implements the basic functionality of browser commands that require
1219 implements the basic functionality of browser commands that require
1198 input. Reimplement the goto, find and findbackwards commands as
1220 input. Reimplement the goto, find and findbackwards commands as
1199 subclasses of _CommandInput. Add an input history and keymaps to those
1221 subclasses of _CommandInput. Add an input history and keymaps to those
1200 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1222 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1201 execute commands.
1223 execute commands.
1202
1224
1203 2006-06-07 Ville Vainio <vivainio@gmail.com>
1225 2006-06-07 Ville Vainio <vivainio@gmail.com>
1204
1226
1205 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1227 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1206 running the batch files instead of leaving the session open.
1228 running the batch files instead of leaving the session open.
1207
1229
1208 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1230 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1209
1231
1210 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1232 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1211 the original fix was incomplete. Patch submitted by W. Maier.
1233 the original fix was incomplete. Patch submitted by W. Maier.
1212
1234
1213 2006-06-07 Ville Vainio <vivainio@gmail.com>
1235 2006-06-07 Ville Vainio <vivainio@gmail.com>
1214
1236
1215 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1237 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1216 Confirmation prompts can be supressed by 'quiet' option.
1238 Confirmation prompts can be supressed by 'quiet' option.
1217 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1239 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1218
1240
1219 2006-06-06 *** Released version 0.7.2
1241 2006-06-06 *** Released version 0.7.2
1220
1242
1221 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1243 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1222
1244
1223 * IPython/Release.py (version): Made 0.7.2 final for release.
1245 * IPython/Release.py (version): Made 0.7.2 final for release.
1224 Repo tagged and release cut.
1246 Repo tagged and release cut.
1225
1247
1226 2006-06-05 Ville Vainio <vivainio@gmail.com>
1248 2006-06-05 Ville Vainio <vivainio@gmail.com>
1227
1249
1228 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1250 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1229 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1251 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1230
1252
1231 * upgrade_dir.py: try import 'path' module a bit harder
1253 * upgrade_dir.py: try import 'path' module a bit harder
1232 (for %upgrade)
1254 (for %upgrade)
1233
1255
1234 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1256 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1235
1257
1236 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1258 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1237 instead of looping 20 times.
1259 instead of looping 20 times.
1238
1260
1239 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1261 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1240 correctly at initialization time. Bug reported by Krishna Mohan
1262 correctly at initialization time. Bug reported by Krishna Mohan
1241 Gundu <gkmohan-AT-gmail.com> on the user list.
1263 Gundu <gkmohan-AT-gmail.com> on the user list.
1242
1264
1243 * IPython/Release.py (version): Mark 0.7.2 version to start
1265 * IPython/Release.py (version): Mark 0.7.2 version to start
1244 testing for release on 06/06.
1266 testing for release on 06/06.
1245
1267
1246 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1268 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1247
1269
1248 * scripts/irunner: thin script interface so users don't have to
1270 * scripts/irunner: thin script interface so users don't have to
1249 find the module and call it as an executable, since modules rarely
1271 find the module and call it as an executable, since modules rarely
1250 live in people's PATH.
1272 live in people's PATH.
1251
1273
1252 * IPython/irunner.py (InteractiveRunner.__init__): added
1274 * IPython/irunner.py (InteractiveRunner.__init__): added
1253 delaybeforesend attribute to control delays with newer versions of
1275 delaybeforesend attribute to control delays with newer versions of
1254 pexpect. Thanks to detailed help from pexpect's author, Noah
1276 pexpect. Thanks to detailed help from pexpect's author, Noah
1255 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1277 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1256 correctly (it works in NoColor mode).
1278 correctly (it works in NoColor mode).
1257
1279
1258 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1280 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1259 SAGE list, from improper log() calls.
1281 SAGE list, from improper log() calls.
1260
1282
1261 2006-05-31 Ville Vainio <vivainio@gmail.com>
1283 2006-05-31 Ville Vainio <vivainio@gmail.com>
1262
1284
1263 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1285 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1264 with args in parens to work correctly with dirs that have spaces.
1286 with args in parens to work correctly with dirs that have spaces.
1265
1287
1266 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1288 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1267
1289
1268 * IPython/Logger.py (Logger.logstart): add option to log raw input
1290 * IPython/Logger.py (Logger.logstart): add option to log raw input
1269 instead of the processed one. A -r flag was added to the
1291 instead of the processed one. A -r flag was added to the
1270 %logstart magic used for controlling logging.
1292 %logstart magic used for controlling logging.
1271
1293
1272 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1273
1295
1274 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1296 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1275 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1297 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1276 recognize the option. After a bug report by Will Maier. This
1298 recognize the option. After a bug report by Will Maier. This
1277 closes #64 (will do it after confirmation from W. Maier).
1299 closes #64 (will do it after confirmation from W. Maier).
1278
1300
1279 * IPython/irunner.py: New module to run scripts as if manually
1301 * IPython/irunner.py: New module to run scripts as if manually
1280 typed into an interactive environment, based on pexpect. After a
1302 typed into an interactive environment, based on pexpect. After a
1281 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1303 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1282 ipython-user list. Simple unittests in the tests/ directory.
1304 ipython-user list. Simple unittests in the tests/ directory.
1283
1305
1284 * tools/release: add Will Maier, OpenBSD port maintainer, to
1306 * tools/release: add Will Maier, OpenBSD port maintainer, to
1285 recepients list. We are now officially part of the OpenBSD ports:
1307 recepients list. We are now officially part of the OpenBSD ports:
1286 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1308 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1287 work.
1309 work.
1288
1310
1289 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1311 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1290
1312
1291 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1313 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1292 so that it doesn't break tkinter apps.
1314 so that it doesn't break tkinter apps.
1293
1315
1294 * IPython/iplib.py (_prefilter): fix bug where aliases would
1316 * IPython/iplib.py (_prefilter): fix bug where aliases would
1295 shadow variables when autocall was fully off. Reported by SAGE
1317 shadow variables when autocall was fully off. Reported by SAGE
1296 author William Stein.
1318 author William Stein.
1297
1319
1298 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1320 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1299 at what detail level strings are computed when foo? is requested.
1321 at what detail level strings are computed when foo? is requested.
1300 This allows users to ask for example that the string form of an
1322 This allows users to ask for example that the string form of an
1301 object is only computed when foo?? is called, or even never, by
1323 object is only computed when foo?? is called, or even never, by
1302 setting the object_info_string_level >= 2 in the configuration
1324 setting the object_info_string_level >= 2 in the configuration
1303 file. This new option has been added and documented. After a
1325 file. This new option has been added and documented. After a
1304 request by SAGE to be able to control the printing of very large
1326 request by SAGE to be able to control the printing of very large
1305 objects more easily.
1327 objects more easily.
1306
1328
1307 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1329 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1308
1330
1309 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1331 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1310 from sys.argv, to be 100% consistent with how Python itself works
1332 from sys.argv, to be 100% consistent with how Python itself works
1311 (as seen for example with python -i file.py). After a bug report
1333 (as seen for example with python -i file.py). After a bug report
1312 by Jeffrey Collins.
1334 by Jeffrey Collins.
1313
1335
1314 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1336 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1315 nasty bug which was preventing custom namespaces with -pylab,
1337 nasty bug which was preventing custom namespaces with -pylab,
1316 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1338 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1317 compatibility (long gone from mpl).
1339 compatibility (long gone from mpl).
1318
1340
1319 * IPython/ipapi.py (make_session): name change: create->make. We
1341 * IPython/ipapi.py (make_session): name change: create->make. We
1320 use make in other places (ipmaker,...), it's shorter and easier to
1342 use make in other places (ipmaker,...), it's shorter and easier to
1321 type and say, etc. I'm trying to clean things before 0.7.2 so
1343 type and say, etc. I'm trying to clean things before 0.7.2 so
1322 that I can keep things stable wrt to ipapi in the chainsaw branch.
1344 that I can keep things stable wrt to ipapi in the chainsaw branch.
1323
1345
1324 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1346 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1325 python-mode recognizes our debugger mode. Add support for
1347 python-mode recognizes our debugger mode. Add support for
1326 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1348 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1327 <m.liu.jin-AT-gmail.com> originally written by
1349 <m.liu.jin-AT-gmail.com> originally written by
1328 doxgen-AT-newsmth.net (with minor modifications for xemacs
1350 doxgen-AT-newsmth.net (with minor modifications for xemacs
1329 compatibility)
1351 compatibility)
1330
1352
1331 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1353 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1332 tracebacks when walking the stack so that the stack tracking system
1354 tracebacks when walking the stack so that the stack tracking system
1333 in emacs' python-mode can identify the frames correctly.
1355 in emacs' python-mode can identify the frames correctly.
1334
1356
1335 * IPython/ipmaker.py (make_IPython): make the internal (and
1357 * IPython/ipmaker.py (make_IPython): make the internal (and
1336 default config) autoedit_syntax value false by default. Too many
1358 default config) autoedit_syntax value false by default. Too many
1337 users have complained to me (both on and off-list) about problems
1359 users have complained to me (both on and off-list) about problems
1338 with this option being on by default, so I'm making it default to
1360 with this option being on by default, so I'm making it default to
1339 off. It can still be enabled by anyone via the usual mechanisms.
1361 off. It can still be enabled by anyone via the usual mechanisms.
1340
1362
1341 * IPython/completer.py (Completer.attr_matches): add support for
1363 * IPython/completer.py (Completer.attr_matches): add support for
1342 PyCrust-style _getAttributeNames magic method. Patch contributed
1364 PyCrust-style _getAttributeNames magic method. Patch contributed
1343 by <mscott-AT-goldenspud.com>. Closes #50.
1365 by <mscott-AT-goldenspud.com>. Closes #50.
1344
1366
1345 * IPython/iplib.py (InteractiveShell.__init__): remove the
1367 * IPython/iplib.py (InteractiveShell.__init__): remove the
1346 deletion of exit/quit from __builtin__, which can break
1368 deletion of exit/quit from __builtin__, which can break
1347 third-party tools like the Zope debugging console. The
1369 third-party tools like the Zope debugging console. The
1348 %exit/%quit magics remain. In general, it's probably a good idea
1370 %exit/%quit magics remain. In general, it's probably a good idea
1349 not to delete anything from __builtin__, since we never know what
1371 not to delete anything from __builtin__, since we never know what
1350 that will break. In any case, python now (for 2.5) will support
1372 that will break. In any case, python now (for 2.5) will support
1351 'real' exit/quit, so this issue is moot. Closes #55.
1373 'real' exit/quit, so this issue is moot. Closes #55.
1352
1374
1353 * IPython/genutils.py (with_obj): rename the 'with' function to
1375 * IPython/genutils.py (with_obj): rename the 'with' function to
1354 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1376 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1355 becomes a language keyword. Closes #53.
1377 becomes a language keyword. Closes #53.
1356
1378
1357 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1379 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1358 __file__ attribute to this so it fools more things into thinking
1380 __file__ attribute to this so it fools more things into thinking
1359 it is a real module. Closes #59.
1381 it is a real module. Closes #59.
1360
1382
1361 * IPython/Magic.py (magic_edit): add -n option to open the editor
1383 * IPython/Magic.py (magic_edit): add -n option to open the editor
1362 at a specific line number. After a patch by Stefan van der Walt.
1384 at a specific line number. After a patch by Stefan van der Walt.
1363
1385
1364 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1386 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1365
1387
1366 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1388 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1367 reason the file could not be opened. After automatic crash
1389 reason the file could not be opened. After automatic crash
1368 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1390 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1369 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1391 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1370 (_should_recompile): Don't fire editor if using %bg, since there
1392 (_should_recompile): Don't fire editor if using %bg, since there
1371 is no file in the first place. From the same report as above.
1393 is no file in the first place. From the same report as above.
1372 (raw_input): protect against faulty third-party prefilters. After
1394 (raw_input): protect against faulty third-party prefilters. After
1373 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1395 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1374 while running under SAGE.
1396 while running under SAGE.
1375
1397
1376 2006-05-23 Ville Vainio <vivainio@gmail.com>
1398 2006-05-23 Ville Vainio <vivainio@gmail.com>
1377
1399
1378 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1400 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1379 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1401 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1380 now returns None (again), unless dummy is specifically allowed by
1402 now returns None (again), unless dummy is specifically allowed by
1381 ipapi.get(allow_dummy=True).
1403 ipapi.get(allow_dummy=True).
1382
1404
1383 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1405 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1384
1406
1385 * IPython: remove all 2.2-compatibility objects and hacks from
1407 * IPython: remove all 2.2-compatibility objects and hacks from
1386 everywhere, since we only support 2.3 at this point. Docs
1408 everywhere, since we only support 2.3 at this point. Docs
1387 updated.
1409 updated.
1388
1410
1389 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1411 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1390 Anything requiring extra validation can be turned into a Python
1412 Anything requiring extra validation can be turned into a Python
1391 property in the future. I used a property for the db one b/c
1413 property in the future. I used a property for the db one b/c
1392 there was a nasty circularity problem with the initialization
1414 there was a nasty circularity problem with the initialization
1393 order, which right now I don't have time to clean up.
1415 order, which right now I don't have time to clean up.
1394
1416
1395 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1417 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1396 another locking bug reported by Jorgen. I'm not 100% sure though,
1418 another locking bug reported by Jorgen. I'm not 100% sure though,
1397 so more testing is needed...
1419 so more testing is needed...
1398
1420
1399 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1421 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1400
1422
1401 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1423 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1402 local variables from any routine in user code (typically executed
1424 local variables from any routine in user code (typically executed
1403 with %run) directly into the interactive namespace. Very useful
1425 with %run) directly into the interactive namespace. Very useful
1404 when doing complex debugging.
1426 when doing complex debugging.
1405 (IPythonNotRunning): Changed the default None object to a dummy
1427 (IPythonNotRunning): Changed the default None object to a dummy
1406 whose attributes can be queried as well as called without
1428 whose attributes can be queried as well as called without
1407 exploding, to ease writing code which works transparently both in
1429 exploding, to ease writing code which works transparently both in
1408 and out of ipython and uses some of this API.
1430 and out of ipython and uses some of this API.
1409
1431
1410 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1432 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1411
1433
1412 * IPython/hooks.py (result_display): Fix the fact that our display
1434 * IPython/hooks.py (result_display): Fix the fact that our display
1413 hook was using str() instead of repr(), as the default python
1435 hook was using str() instead of repr(), as the default python
1414 console does. This had gone unnoticed b/c it only happened if
1436 console does. This had gone unnoticed b/c it only happened if
1415 %Pprint was off, but the inconsistency was there.
1437 %Pprint was off, but the inconsistency was there.
1416
1438
1417 2006-05-15 Ville Vainio <vivainio@gmail.com>
1439 2006-05-15 Ville Vainio <vivainio@gmail.com>
1418
1440
1419 * Oinspect.py: Only show docstring for nonexisting/binary files
1441 * Oinspect.py: Only show docstring for nonexisting/binary files
1420 when doing object??, closing ticket #62
1442 when doing object??, closing ticket #62
1421
1443
1422 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1444 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1423
1445
1424 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1446 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1425 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1447 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1426 was being released in a routine which hadn't checked if it had
1448 was being released in a routine which hadn't checked if it had
1427 been the one to acquire it.
1449 been the one to acquire it.
1428
1450
1429 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1430
1452
1431 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1453 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1432
1454
1433 2006-04-11 Ville Vainio <vivainio@gmail.com>
1455 2006-04-11 Ville Vainio <vivainio@gmail.com>
1434
1456
1435 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1457 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1436 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1458 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1437 prefilters, allowing stuff like magics and aliases in the file.
1459 prefilters, allowing stuff like magics and aliases in the file.
1438
1460
1439 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1461 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1440 added. Supported now are "%clear in" and "%clear out" (clear input and
1462 added. Supported now are "%clear in" and "%clear out" (clear input and
1441 output history, respectively). Also fixed CachedOutput.flush to
1463 output history, respectively). Also fixed CachedOutput.flush to
1442 properly flush the output cache.
1464 properly flush the output cache.
1443
1465
1444 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1466 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1445 half-success (and fail explicitly).
1467 half-success (and fail explicitly).
1446
1468
1447 2006-03-28 Ville Vainio <vivainio@gmail.com>
1469 2006-03-28 Ville Vainio <vivainio@gmail.com>
1448
1470
1449 * iplib.py: Fix quoting of aliases so that only argless ones
1471 * iplib.py: Fix quoting of aliases so that only argless ones
1450 are quoted
1472 are quoted
1451
1473
1452 2006-03-28 Ville Vainio <vivainio@gmail.com>
1474 2006-03-28 Ville Vainio <vivainio@gmail.com>
1453
1475
1454 * iplib.py: Quote aliases with spaces in the name.
1476 * iplib.py: Quote aliases with spaces in the name.
1455 "c:\program files\blah\bin" is now legal alias target.
1477 "c:\program files\blah\bin" is now legal alias target.
1456
1478
1457 * ext_rehashdir.py: Space no longer allowed as arg
1479 * ext_rehashdir.py: Space no longer allowed as arg
1458 separator, since space is legal in path names.
1480 separator, since space is legal in path names.
1459
1481
1460 2006-03-16 Ville Vainio <vivainio@gmail.com>
1482 2006-03-16 Ville Vainio <vivainio@gmail.com>
1461
1483
1462 * upgrade_dir.py: Take path.py from Extensions, correcting
1484 * upgrade_dir.py: Take path.py from Extensions, correcting
1463 %upgrade magic
1485 %upgrade magic
1464
1486
1465 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1487 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1466
1488
1467 * hooks.py: Only enclose editor binary in quotes if legal and
1489 * hooks.py: Only enclose editor binary in quotes if legal and
1468 necessary (space in the name, and is an existing file). Fixes a bug
1490 necessary (space in the name, and is an existing file). Fixes a bug
1469 reported by Zachary Pincus.
1491 reported by Zachary Pincus.
1470
1492
1471 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1493 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1472
1494
1473 * Manual: thanks to a tip on proper color handling for Emacs, by
1495 * Manual: thanks to a tip on proper color handling for Emacs, by
1474 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1496 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1475
1497
1476 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1498 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1477 by applying the provided patch. Thanks to Liu Jin
1499 by applying the provided patch. Thanks to Liu Jin
1478 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1500 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1479 XEmacs/Linux, I'm trusting the submitter that it actually helps
1501 XEmacs/Linux, I'm trusting the submitter that it actually helps
1480 under win32/GNU Emacs. Will revisit if any problems are reported.
1502 under win32/GNU Emacs. Will revisit if any problems are reported.
1481
1503
1482 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1504 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1483
1505
1484 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1506 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1485 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1507 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1486
1508
1487 2006-03-12 Ville Vainio <vivainio@gmail.com>
1509 2006-03-12 Ville Vainio <vivainio@gmail.com>
1488
1510
1489 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1511 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1490 Torsten Marek.
1512 Torsten Marek.
1491
1513
1492 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1514 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1493
1515
1494 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1516 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1495 line ranges works again.
1517 line ranges works again.
1496
1518
1497 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1519 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1498
1520
1499 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1521 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1500 and friends, after a discussion with Zach Pincus on ipython-user.
1522 and friends, after a discussion with Zach Pincus on ipython-user.
1501 I'm not 100% sure, but after thinking about it quite a bit, it may
1523 I'm not 100% sure, but after thinking about it quite a bit, it may
1502 be OK. Testing with the multithreaded shells didn't reveal any
1524 be OK. Testing with the multithreaded shells didn't reveal any
1503 problems, but let's keep an eye out.
1525 problems, but let's keep an eye out.
1504
1526
1505 In the process, I fixed a few things which were calling
1527 In the process, I fixed a few things which were calling
1506 self.InteractiveTB() directly (like safe_execfile), which is a
1528 self.InteractiveTB() directly (like safe_execfile), which is a
1507 mistake: ALL exception reporting should be done by calling
1529 mistake: ALL exception reporting should be done by calling
1508 self.showtraceback(), which handles state and tab-completion and
1530 self.showtraceback(), which handles state and tab-completion and
1509 more.
1531 more.
1510
1532
1511 2006-03-01 Ville Vainio <vivainio@gmail.com>
1533 2006-03-01 Ville Vainio <vivainio@gmail.com>
1512
1534
1513 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1535 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1514 To use, do "from ipipe import *".
1536 To use, do "from ipipe import *".
1515
1537
1516 2006-02-24 Ville Vainio <vivainio@gmail.com>
1538 2006-02-24 Ville Vainio <vivainio@gmail.com>
1517
1539
1518 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1540 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1519 "cleanly" and safely than the older upgrade mechanism.
1541 "cleanly" and safely than the older upgrade mechanism.
1520
1542
1521 2006-02-21 Ville Vainio <vivainio@gmail.com>
1543 2006-02-21 Ville Vainio <vivainio@gmail.com>
1522
1544
1523 * Magic.py: %save works again.
1545 * Magic.py: %save works again.
1524
1546
1525 2006-02-15 Ville Vainio <vivainio@gmail.com>
1547 2006-02-15 Ville Vainio <vivainio@gmail.com>
1526
1548
1527 * Magic.py: %Pprint works again
1549 * Magic.py: %Pprint works again
1528
1550
1529 * Extensions/ipy_sane_defaults.py: Provide everything provided
1551 * Extensions/ipy_sane_defaults.py: Provide everything provided
1530 in default ipythonrc, to make it possible to have a completely empty
1552 in default ipythonrc, to make it possible to have a completely empty
1531 ipythonrc (and thus completely rc-file free configuration)
1553 ipythonrc (and thus completely rc-file free configuration)
1532
1554
1533 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1555 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1534
1556
1535 * IPython/hooks.py (editor): quote the call to the editor command,
1557 * IPython/hooks.py (editor): quote the call to the editor command,
1536 to allow commands with spaces in them. Problem noted by watching
1558 to allow commands with spaces in them. Problem noted by watching
1537 Ian Oswald's video about textpad under win32 at
1559 Ian Oswald's video about textpad under win32 at
1538 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1560 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1539
1561
1540 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1562 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1541 describing magics (we haven't used @ for a loong time).
1563 describing magics (we haven't used @ for a loong time).
1542
1564
1543 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1565 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1544 contributed by marienz to close
1566 contributed by marienz to close
1545 http://www.scipy.net/roundup/ipython/issue53.
1567 http://www.scipy.net/roundup/ipython/issue53.
1546
1568
1547 2006-02-10 Ville Vainio <vivainio@gmail.com>
1569 2006-02-10 Ville Vainio <vivainio@gmail.com>
1548
1570
1549 * genutils.py: getoutput now works in win32 too
1571 * genutils.py: getoutput now works in win32 too
1550
1572
1551 * completer.py: alias and magic completion only invoked
1573 * completer.py: alias and magic completion only invoked
1552 at the first "item" in the line, to avoid "cd %store"
1574 at the first "item" in the line, to avoid "cd %store"
1553 nonsense.
1575 nonsense.
1554
1576
1555 2006-02-09 Ville Vainio <vivainio@gmail.com>
1577 2006-02-09 Ville Vainio <vivainio@gmail.com>
1556
1578
1557 * test/*: Added a unit testing framework (finally).
1579 * test/*: Added a unit testing framework (finally).
1558 '%run runtests.py' to run test_*.
1580 '%run runtests.py' to run test_*.
1559
1581
1560 * ipapi.py: Exposed runlines and set_custom_exc
1582 * ipapi.py: Exposed runlines and set_custom_exc
1561
1583
1562 2006-02-07 Ville Vainio <vivainio@gmail.com>
1584 2006-02-07 Ville Vainio <vivainio@gmail.com>
1563
1585
1564 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1586 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1565 instead use "f(1 2)" as before.
1587 instead use "f(1 2)" as before.
1566
1588
1567 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1589 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1568
1590
1569 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1591 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1570 facilities, for demos processed by the IPython input filter
1592 facilities, for demos processed by the IPython input filter
1571 (IPythonDemo), and for running a script one-line-at-a-time as a
1593 (IPythonDemo), and for running a script one-line-at-a-time as a
1572 demo, both for pure Python (LineDemo) and for IPython-processed
1594 demo, both for pure Python (LineDemo) and for IPython-processed
1573 input (IPythonLineDemo). After a request by Dave Kohel, from the
1595 input (IPythonLineDemo). After a request by Dave Kohel, from the
1574 SAGE team.
1596 SAGE team.
1575 (Demo.edit): added an edit() method to the demo objects, to edit
1597 (Demo.edit): added an edit() method to the demo objects, to edit
1576 the in-memory copy of the last executed block.
1598 the in-memory copy of the last executed block.
1577
1599
1578 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1600 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1579 processing to %edit, %macro and %save. These commands can now be
1601 processing to %edit, %macro and %save. These commands can now be
1580 invoked on the unprocessed input as it was typed by the user
1602 invoked on the unprocessed input as it was typed by the user
1581 (without any prefilters applied). After requests by the SAGE team
1603 (without any prefilters applied). After requests by the SAGE team
1582 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1604 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1583
1605
1584 2006-02-01 Ville Vainio <vivainio@gmail.com>
1606 2006-02-01 Ville Vainio <vivainio@gmail.com>
1585
1607
1586 * setup.py, eggsetup.py: easy_install ipython==dev works
1608 * setup.py, eggsetup.py: easy_install ipython==dev works
1587 correctly now (on Linux)
1609 correctly now (on Linux)
1588
1610
1589 * ipy_user_conf,ipmaker: user config changes, removed spurious
1611 * ipy_user_conf,ipmaker: user config changes, removed spurious
1590 warnings
1612 warnings
1591
1613
1592 * iplib: if rc.banner is string, use it as is.
1614 * iplib: if rc.banner is string, use it as is.
1593
1615
1594 * Magic: %pycat accepts a string argument and pages it's contents.
1616 * Magic: %pycat accepts a string argument and pages it's contents.
1595
1617
1596
1618
1597 2006-01-30 Ville Vainio <vivainio@gmail.com>
1619 2006-01-30 Ville Vainio <vivainio@gmail.com>
1598
1620
1599 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1621 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1600 Now %store and bookmarks work through PickleShare, meaning that
1622 Now %store and bookmarks work through PickleShare, meaning that
1601 concurrent access is possible and all ipython sessions see the
1623 concurrent access is possible and all ipython sessions see the
1602 same database situation all the time, instead of snapshot of
1624 same database situation all the time, instead of snapshot of
1603 the situation when the session was started. Hence, %bookmark
1625 the situation when the session was started. Hence, %bookmark
1604 results are immediately accessible from othes sessions. The database
1626 results are immediately accessible from othes sessions. The database
1605 is also available for use by user extensions. See:
1627 is also available for use by user extensions. See:
1606 http://www.python.org/pypi/pickleshare
1628 http://www.python.org/pypi/pickleshare
1607
1629
1608 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1630 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1609
1631
1610 * aliases can now be %store'd
1632 * aliases can now be %store'd
1611
1633
1612 * path.py moved to Extensions so that pickleshare does not need
1634 * path.py moved to Extensions so that pickleshare does not need
1613 IPython-specific import. Extensions added to pythonpath right
1635 IPython-specific import. Extensions added to pythonpath right
1614 at __init__.
1636 at __init__.
1615
1637
1616 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1638 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1617 called with _ip.system and the pre-transformed command string.
1639 called with _ip.system and the pre-transformed command string.
1618
1640
1619 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1641 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1620
1642
1621 * IPython/iplib.py (interact): Fix that we were not catching
1643 * IPython/iplib.py (interact): Fix that we were not catching
1622 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1644 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1623 logic here had to change, but it's fixed now.
1645 logic here had to change, but it's fixed now.
1624
1646
1625 2006-01-29 Ville Vainio <vivainio@gmail.com>
1647 2006-01-29 Ville Vainio <vivainio@gmail.com>
1626
1648
1627 * iplib.py: Try to import pyreadline on Windows.
1649 * iplib.py: Try to import pyreadline on Windows.
1628
1650
1629 2006-01-27 Ville Vainio <vivainio@gmail.com>
1651 2006-01-27 Ville Vainio <vivainio@gmail.com>
1630
1652
1631 * iplib.py: Expose ipapi as _ip in builtin namespace.
1653 * iplib.py: Expose ipapi as _ip in builtin namespace.
1632 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1654 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1633 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1655 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1634 syntax now produce _ip.* variant of the commands.
1656 syntax now produce _ip.* variant of the commands.
1635
1657
1636 * "_ip.options().autoedit_syntax = 2" automatically throws
1658 * "_ip.options().autoedit_syntax = 2" automatically throws
1637 user to editor for syntax error correction without prompting.
1659 user to editor for syntax error correction without prompting.
1638
1660
1639 2006-01-27 Ville Vainio <vivainio@gmail.com>
1661 2006-01-27 Ville Vainio <vivainio@gmail.com>
1640
1662
1641 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1663 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1642 'ipython' at argv[0]) executed through command line.
1664 'ipython' at argv[0]) executed through command line.
1643 NOTE: this DEPRECATES calling ipython with multiple scripts
1665 NOTE: this DEPRECATES calling ipython with multiple scripts
1644 ("ipython a.py b.py c.py")
1666 ("ipython a.py b.py c.py")
1645
1667
1646 * iplib.py, hooks.py: Added configurable input prefilter,
1668 * iplib.py, hooks.py: Added configurable input prefilter,
1647 named 'input_prefilter'. See ext_rescapture.py for example
1669 named 'input_prefilter'. See ext_rescapture.py for example
1648 usage.
1670 usage.
1649
1671
1650 * ext_rescapture.py, Magic.py: Better system command output capture
1672 * ext_rescapture.py, Magic.py: Better system command output capture
1651 through 'var = !ls' (deprecates user-visible %sc). Same notation
1673 through 'var = !ls' (deprecates user-visible %sc). Same notation
1652 applies for magics, 'var = %alias' assigns alias list to var.
1674 applies for magics, 'var = %alias' assigns alias list to var.
1653
1675
1654 * ipapi.py: added meta() for accessing extension-usable data store.
1676 * ipapi.py: added meta() for accessing extension-usable data store.
1655
1677
1656 * iplib.py: added InteractiveShell.getapi(). New magics should be
1678 * iplib.py: added InteractiveShell.getapi(). New magics should be
1657 written doing self.getapi() instead of using the shell directly.
1679 written doing self.getapi() instead of using the shell directly.
1658
1680
1659 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1681 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1660 %store foo >> ~/myfoo.txt to store variables to files (in clean
1682 %store foo >> ~/myfoo.txt to store variables to files (in clean
1661 textual form, not a restorable pickle).
1683 textual form, not a restorable pickle).
1662
1684
1663 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1685 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1664
1686
1665 * usage.py, Magic.py: added %quickref
1687 * usage.py, Magic.py: added %quickref
1666
1688
1667 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1689 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1668
1690
1669 * GetoptErrors when invoking magics etc. with wrong args
1691 * GetoptErrors when invoking magics etc. with wrong args
1670 are now more helpful:
1692 are now more helpful:
1671 GetoptError: option -l not recognized (allowed: "qb" )
1693 GetoptError: option -l not recognized (allowed: "qb" )
1672
1694
1673 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1695 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1674
1696
1675 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1697 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1676 computationally intensive blocks don't appear to stall the demo.
1698 computationally intensive blocks don't appear to stall the demo.
1677
1699
1678 2006-01-24 Ville Vainio <vivainio@gmail.com>
1700 2006-01-24 Ville Vainio <vivainio@gmail.com>
1679
1701
1680 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1702 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1681 value to manipulate resulting history entry.
1703 value to manipulate resulting history entry.
1682
1704
1683 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1705 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1684 to instance methods of IPApi class, to make extending an embedded
1706 to instance methods of IPApi class, to make extending an embedded
1685 IPython feasible. See ext_rehashdir.py for example usage.
1707 IPython feasible. See ext_rehashdir.py for example usage.
1686
1708
1687 * Merged 1071-1076 from branches/0.7.1
1709 * Merged 1071-1076 from branches/0.7.1
1688
1710
1689
1711
1690 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1712 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1691
1713
1692 * tools/release (daystamp): Fix build tools to use the new
1714 * tools/release (daystamp): Fix build tools to use the new
1693 eggsetup.py script to build lightweight eggs.
1715 eggsetup.py script to build lightweight eggs.
1694
1716
1695 * Applied changesets 1062 and 1064 before 0.7.1 release.
1717 * Applied changesets 1062 and 1064 before 0.7.1 release.
1696
1718
1697 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1719 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1698 see the raw input history (without conversions like %ls ->
1720 see the raw input history (without conversions like %ls ->
1699 ipmagic("ls")). After a request from W. Stein, SAGE
1721 ipmagic("ls")). After a request from W. Stein, SAGE
1700 (http://modular.ucsd.edu/sage) developer. This information is
1722 (http://modular.ucsd.edu/sage) developer. This information is
1701 stored in the input_hist_raw attribute of the IPython instance, so
1723 stored in the input_hist_raw attribute of the IPython instance, so
1702 developers can access it if needed (it's an InputList instance).
1724 developers can access it if needed (it's an InputList instance).
1703
1725
1704 * Versionstring = 0.7.2.svn
1726 * Versionstring = 0.7.2.svn
1705
1727
1706 * eggsetup.py: A separate script for constructing eggs, creates
1728 * eggsetup.py: A separate script for constructing eggs, creates
1707 proper launch scripts even on Windows (an .exe file in
1729 proper launch scripts even on Windows (an .exe file in
1708 \python24\scripts).
1730 \python24\scripts).
1709
1731
1710 * ipapi.py: launch_new_instance, launch entry point needed for the
1732 * ipapi.py: launch_new_instance, launch entry point needed for the
1711 egg.
1733 egg.
1712
1734
1713 2006-01-23 Ville Vainio <vivainio@gmail.com>
1735 2006-01-23 Ville Vainio <vivainio@gmail.com>
1714
1736
1715 * Added %cpaste magic for pasting python code
1737 * Added %cpaste magic for pasting python code
1716
1738
1717 2006-01-22 Ville Vainio <vivainio@gmail.com>
1739 2006-01-22 Ville Vainio <vivainio@gmail.com>
1718
1740
1719 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1741 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1720
1742
1721 * Versionstring = 0.7.2.svn
1743 * Versionstring = 0.7.2.svn
1722
1744
1723 * eggsetup.py: A separate script for constructing eggs, creates
1745 * eggsetup.py: A separate script for constructing eggs, creates
1724 proper launch scripts even on Windows (an .exe file in
1746 proper launch scripts even on Windows (an .exe file in
1725 \python24\scripts).
1747 \python24\scripts).
1726
1748
1727 * ipapi.py: launch_new_instance, launch entry point needed for the
1749 * ipapi.py: launch_new_instance, launch entry point needed for the
1728 egg.
1750 egg.
1729
1751
1730 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1752 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1731
1753
1732 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1754 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1733 %pfile foo would print the file for foo even if it was a binary.
1755 %pfile foo would print the file for foo even if it was a binary.
1734 Now, extensions '.so' and '.dll' are skipped.
1756 Now, extensions '.so' and '.dll' are skipped.
1735
1757
1736 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1758 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1737 bug, where macros would fail in all threaded modes. I'm not 100%
1759 bug, where macros would fail in all threaded modes. I'm not 100%
1738 sure, so I'm going to put out an rc instead of making a release
1760 sure, so I'm going to put out an rc instead of making a release
1739 today, and wait for feedback for at least a few days.
1761 today, and wait for feedback for at least a few days.
1740
1762
1741 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1763 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1742 it...) the handling of pasting external code with autoindent on.
1764 it...) the handling of pasting external code with autoindent on.
1743 To get out of a multiline input, the rule will appear for most
1765 To get out of a multiline input, the rule will appear for most
1744 users unchanged: two blank lines or change the indent level
1766 users unchanged: two blank lines or change the indent level
1745 proposed by IPython. But there is a twist now: you can
1767 proposed by IPython. But there is a twist now: you can
1746 add/subtract only *one or two spaces*. If you add/subtract three
1768 add/subtract only *one or two spaces*. If you add/subtract three
1747 or more (unless you completely delete the line), IPython will
1769 or more (unless you completely delete the line), IPython will
1748 accept that line, and you'll need to enter a second one of pure
1770 accept that line, and you'll need to enter a second one of pure
1749 whitespace. I know it sounds complicated, but I can't find a
1771 whitespace. I know it sounds complicated, but I can't find a
1750 different solution that covers all the cases, with the right
1772 different solution that covers all the cases, with the right
1751 heuristics. Hopefully in actual use, nobody will really notice
1773 heuristics. Hopefully in actual use, nobody will really notice
1752 all these strange rules and things will 'just work'.
1774 all these strange rules and things will 'just work'.
1753
1775
1754 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1776 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1755
1777
1756 * IPython/iplib.py (interact): catch exceptions which can be
1778 * IPython/iplib.py (interact): catch exceptions which can be
1757 triggered asynchronously by signal handlers. Thanks to an
1779 triggered asynchronously by signal handlers. Thanks to an
1758 automatic crash report, submitted by Colin Kingsley
1780 automatic crash report, submitted by Colin Kingsley
1759 <tercel-AT-gentoo.org>.
1781 <tercel-AT-gentoo.org>.
1760
1782
1761 2006-01-20 Ville Vainio <vivainio@gmail.com>
1783 2006-01-20 Ville Vainio <vivainio@gmail.com>
1762
1784
1763 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1785 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1764 (%rehashdir, very useful, try it out) of how to extend ipython
1786 (%rehashdir, very useful, try it out) of how to extend ipython
1765 with new magics. Also added Extensions dir to pythonpath to make
1787 with new magics. Also added Extensions dir to pythonpath to make
1766 importing extensions easy.
1788 importing extensions easy.
1767
1789
1768 * %store now complains when trying to store interactively declared
1790 * %store now complains when trying to store interactively declared
1769 classes / instances of those classes.
1791 classes / instances of those classes.
1770
1792
1771 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1793 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1772 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1794 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1773 if they exist, and ipy_user_conf.py with some defaults is created for
1795 if they exist, and ipy_user_conf.py with some defaults is created for
1774 the user.
1796 the user.
1775
1797
1776 * Startup rehashing done by the config file, not InterpreterExec.
1798 * Startup rehashing done by the config file, not InterpreterExec.
1777 This means system commands are available even without selecting the
1799 This means system commands are available even without selecting the
1778 pysh profile. It's the sensible default after all.
1800 pysh profile. It's the sensible default after all.
1779
1801
1780 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1802 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1781
1803
1782 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1804 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1783 multiline code with autoindent on working. But I am really not
1805 multiline code with autoindent on working. But I am really not
1784 sure, so this needs more testing. Will commit a debug-enabled
1806 sure, so this needs more testing. Will commit a debug-enabled
1785 version for now, while I test it some more, so that Ville and
1807 version for now, while I test it some more, so that Ville and
1786 others may also catch any problems. Also made
1808 others may also catch any problems. Also made
1787 self.indent_current_str() a method, to ensure that there's no
1809 self.indent_current_str() a method, to ensure that there's no
1788 chance of the indent space count and the corresponding string
1810 chance of the indent space count and the corresponding string
1789 falling out of sync. All code needing the string should just call
1811 falling out of sync. All code needing the string should just call
1790 the method.
1812 the method.
1791
1813
1792 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1814 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1815
1794 * IPython/Magic.py (magic_edit): fix check for when users don't
1816 * IPython/Magic.py (magic_edit): fix check for when users don't
1795 save their output files, the try/except was in the wrong section.
1817 save their output files, the try/except was in the wrong section.
1796
1818
1797 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1819 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1798
1820
1799 * IPython/Magic.py (magic_run): fix __file__ global missing from
1821 * IPython/Magic.py (magic_run): fix __file__ global missing from
1800 script's namespace when executed via %run. After a report by
1822 script's namespace when executed via %run. After a report by
1801 Vivian.
1823 Vivian.
1802
1824
1803 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1825 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1804 when using python 2.4. The parent constructor changed in 2.4, and
1826 when using python 2.4. The parent constructor changed in 2.4, and
1805 we need to track it directly (we can't call it, as it messes up
1827 we need to track it directly (we can't call it, as it messes up
1806 readline and tab-completion inside our pdb would stop working).
1828 readline and tab-completion inside our pdb would stop working).
1807 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1829 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1808
1830
1809 2006-01-16 Ville Vainio <vivainio@gmail.com>
1831 2006-01-16 Ville Vainio <vivainio@gmail.com>
1810
1832
1811 * Ipython/magic.py: Reverted back to old %edit functionality
1833 * Ipython/magic.py: Reverted back to old %edit functionality
1812 that returns file contents on exit.
1834 that returns file contents on exit.
1813
1835
1814 * IPython/path.py: Added Jason Orendorff's "path" module to
1836 * IPython/path.py: Added Jason Orendorff's "path" module to
1815 IPython tree, http://www.jorendorff.com/articles/python/path/.
1837 IPython tree, http://www.jorendorff.com/articles/python/path/.
1816 You can get path objects conveniently through %sc, and !!, e.g.:
1838 You can get path objects conveniently through %sc, and !!, e.g.:
1817 sc files=ls
1839 sc files=ls
1818 for p in files.paths: # or files.p
1840 for p in files.paths: # or files.p
1819 print p,p.mtime
1841 print p,p.mtime
1820
1842
1821 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1843 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1822 now work again without considering the exclusion regexp -
1844 now work again without considering the exclusion regexp -
1823 hence, things like ',foo my/path' turn to 'foo("my/path")'
1845 hence, things like ',foo my/path' turn to 'foo("my/path")'
1824 instead of syntax error.
1846 instead of syntax error.
1825
1847
1826
1848
1827 2006-01-14 Ville Vainio <vivainio@gmail.com>
1849 2006-01-14 Ville Vainio <vivainio@gmail.com>
1828
1850
1829 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1851 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1830 ipapi decorators for python 2.4 users, options() provides access to rc
1852 ipapi decorators for python 2.4 users, options() provides access to rc
1831 data.
1853 data.
1832
1854
1833 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1855 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1834 as path separators (even on Linux ;-). Space character after
1856 as path separators (even on Linux ;-). Space character after
1835 backslash (as yielded by tab completer) is still space;
1857 backslash (as yielded by tab completer) is still space;
1836 "%cd long\ name" works as expected.
1858 "%cd long\ name" works as expected.
1837
1859
1838 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1860 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1839 as "chain of command", with priority. API stays the same,
1861 as "chain of command", with priority. API stays the same,
1840 TryNext exception raised by a hook function signals that
1862 TryNext exception raised by a hook function signals that
1841 current hook failed and next hook should try handling it, as
1863 current hook failed and next hook should try handling it, as
1842 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1864 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1843 requested configurable display hook, which is now implemented.
1865 requested configurable display hook, which is now implemented.
1844
1866
1845 2006-01-13 Ville Vainio <vivainio@gmail.com>
1867 2006-01-13 Ville Vainio <vivainio@gmail.com>
1846
1868
1847 * IPython/platutils*.py: platform specific utility functions,
1869 * IPython/platutils*.py: platform specific utility functions,
1848 so far only set_term_title is implemented (change terminal
1870 so far only set_term_title is implemented (change terminal
1849 label in windowing systems). %cd now changes the title to
1871 label in windowing systems). %cd now changes the title to
1850 current dir.
1872 current dir.
1851
1873
1852 * IPython/Release.py: Added myself to "authors" list,
1874 * IPython/Release.py: Added myself to "authors" list,
1853 had to create new files.
1875 had to create new files.
1854
1876
1855 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1877 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1856 shell escape; not a known bug but had potential to be one in the
1878 shell escape; not a known bug but had potential to be one in the
1857 future.
1879 future.
1858
1880
1859 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1881 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1860 extension API for IPython! See the module for usage example. Fix
1882 extension API for IPython! See the module for usage example. Fix
1861 OInspect for docstring-less magic functions.
1883 OInspect for docstring-less magic functions.
1862
1884
1863
1885
1864 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1886 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1865
1887
1866 * IPython/iplib.py (raw_input): temporarily deactivate all
1888 * IPython/iplib.py (raw_input): temporarily deactivate all
1867 attempts at allowing pasting of code with autoindent on. It
1889 attempts at allowing pasting of code with autoindent on. It
1868 introduced bugs (reported by Prabhu) and I can't seem to find a
1890 introduced bugs (reported by Prabhu) and I can't seem to find a
1869 robust combination which works in all cases. Will have to revisit
1891 robust combination which works in all cases. Will have to revisit
1870 later.
1892 later.
1871
1893
1872 * IPython/genutils.py: remove isspace() function. We've dropped
1894 * IPython/genutils.py: remove isspace() function. We've dropped
1873 2.2 compatibility, so it's OK to use the string method.
1895 2.2 compatibility, so it's OK to use the string method.
1874
1896
1875 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1897 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1876
1898
1877 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1899 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1878 matching what NOT to autocall on, to include all python binary
1900 matching what NOT to autocall on, to include all python binary
1879 operators (including things like 'and', 'or', 'is' and 'in').
1901 operators (including things like 'and', 'or', 'is' and 'in').
1880 Prompted by a bug report on 'foo & bar', but I realized we had
1902 Prompted by a bug report on 'foo & bar', but I realized we had
1881 many more potential bug cases with other operators. The regexp is
1903 many more potential bug cases with other operators. The regexp is
1882 self.re_exclude_auto, it's fairly commented.
1904 self.re_exclude_auto, it's fairly commented.
1883
1905
1884 2006-01-12 Ville Vainio <vivainio@gmail.com>
1906 2006-01-12 Ville Vainio <vivainio@gmail.com>
1885
1907
1886 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1908 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1887 Prettified and hardened string/backslash quoting with ipsystem(),
1909 Prettified and hardened string/backslash quoting with ipsystem(),
1888 ipalias() and ipmagic(). Now even \ characters are passed to
1910 ipalias() and ipmagic(). Now even \ characters are passed to
1889 %magics, !shell escapes and aliases exactly as they are in the
1911 %magics, !shell escapes and aliases exactly as they are in the
1890 ipython command line. Should improve backslash experience,
1912 ipython command line. Should improve backslash experience,
1891 particularly in Windows (path delimiter for some commands that
1913 particularly in Windows (path delimiter for some commands that
1892 won't understand '/'), but Unix benefits as well (regexps). %cd
1914 won't understand '/'), but Unix benefits as well (regexps). %cd
1893 magic still doesn't support backslash path delimiters, though. Also
1915 magic still doesn't support backslash path delimiters, though. Also
1894 deleted all pretense of supporting multiline command strings in
1916 deleted all pretense of supporting multiline command strings in
1895 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1917 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1896
1918
1897 * doc/build_doc_instructions.txt added. Documentation on how to
1919 * doc/build_doc_instructions.txt added. Documentation on how to
1898 use doc/update_manual.py, added yesterday. Both files contributed
1920 use doc/update_manual.py, added yesterday. Both files contributed
1899 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1921 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1900 doc/*.sh for deprecation at a later date.
1922 doc/*.sh for deprecation at a later date.
1901
1923
1902 * /ipython.py Added ipython.py to root directory for
1924 * /ipython.py Added ipython.py to root directory for
1903 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1925 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1904 ipython.py) and development convenience (no need to keep doing
1926 ipython.py) and development convenience (no need to keep doing
1905 "setup.py install" between changes).
1927 "setup.py install" between changes).
1906
1928
1907 * Made ! and !! shell escapes work (again) in multiline expressions:
1929 * Made ! and !! shell escapes work (again) in multiline expressions:
1908 if 1:
1930 if 1:
1909 !ls
1931 !ls
1910 !!ls
1932 !!ls
1911
1933
1912 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1934 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1913
1935
1914 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1936 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1915 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1937 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1916 module in case-insensitive installation. Was causing crashes
1938 module in case-insensitive installation. Was causing crashes
1917 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1939 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1918
1940
1919 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1941 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1920 <marienz-AT-gentoo.org>, closes
1942 <marienz-AT-gentoo.org>, closes
1921 http://www.scipy.net/roundup/ipython/issue51.
1943 http://www.scipy.net/roundup/ipython/issue51.
1922
1944
1923 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1945 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1924
1946
1925 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1947 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1926 problem of excessive CPU usage under *nix and keyboard lag under
1948 problem of excessive CPU usage under *nix and keyboard lag under
1927 win32.
1949 win32.
1928
1950
1929 2006-01-10 *** Released version 0.7.0
1951 2006-01-10 *** Released version 0.7.0
1930
1952
1931 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1953 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1932
1954
1933 * IPython/Release.py (revision): tag version number to 0.7.0,
1955 * IPython/Release.py (revision): tag version number to 0.7.0,
1934 ready for release.
1956 ready for release.
1935
1957
1936 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1958 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1937 it informs the user of the name of the temp. file used. This can
1959 it informs the user of the name of the temp. file used. This can
1938 help if you decide later to reuse that same file, so you know
1960 help if you decide later to reuse that same file, so you know
1939 where to copy the info from.
1961 where to copy the info from.
1940
1962
1941 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1963 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1942
1964
1943 * setup_bdist_egg.py: little script to build an egg. Added
1965 * setup_bdist_egg.py: little script to build an egg. Added
1944 support in the release tools as well.
1966 support in the release tools as well.
1945
1967
1946 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1968 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1947
1969
1948 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1970 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1949 version selection (new -wxversion command line and ipythonrc
1971 version selection (new -wxversion command line and ipythonrc
1950 parameter). Patch contributed by Arnd Baecker
1972 parameter). Patch contributed by Arnd Baecker
1951 <arnd.baecker-AT-web.de>.
1973 <arnd.baecker-AT-web.de>.
1952
1974
1953 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1975 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1954 embedded instances, for variables defined at the interactive
1976 embedded instances, for variables defined at the interactive
1955 prompt of the embedded ipython. Reported by Arnd.
1977 prompt of the embedded ipython. Reported by Arnd.
1956
1978
1957 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1979 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1958 it can be used as a (stateful) toggle, or with a direct parameter.
1980 it can be used as a (stateful) toggle, or with a direct parameter.
1959
1981
1960 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1982 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1961 could be triggered in certain cases and cause the traceback
1983 could be triggered in certain cases and cause the traceback
1962 printer not to work.
1984 printer not to work.
1963
1985
1964 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1986 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1965
1987
1966 * IPython/iplib.py (_should_recompile): Small fix, closes
1988 * IPython/iplib.py (_should_recompile): Small fix, closes
1967 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1989 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1968
1990
1969 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1991 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1970
1992
1971 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1993 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1972 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1994 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1973 Moad for help with tracking it down.
1995 Moad for help with tracking it down.
1974
1996
1975 * IPython/iplib.py (handle_auto): fix autocall handling for
1997 * IPython/iplib.py (handle_auto): fix autocall handling for
1976 objects which support BOTH __getitem__ and __call__ (so that f [x]
1998 objects which support BOTH __getitem__ and __call__ (so that f [x]
1977 is left alone, instead of becoming f([x]) automatically).
1999 is left alone, instead of becoming f([x]) automatically).
1978
2000
1979 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2001 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1980 Ville's patch.
2002 Ville's patch.
1981
2003
1982 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2004 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1983
2005
1984 * IPython/iplib.py (handle_auto): changed autocall semantics to
2006 * IPython/iplib.py (handle_auto): changed autocall semantics to
1985 include 'smart' mode, where the autocall transformation is NOT
2007 include 'smart' mode, where the autocall transformation is NOT
1986 applied if there are no arguments on the line. This allows you to
2008 applied if there are no arguments on the line. This allows you to
1987 just type 'foo' if foo is a callable to see its internal form,
2009 just type 'foo' if foo is a callable to see its internal form,
1988 instead of having it called with no arguments (typically a
2010 instead of having it called with no arguments (typically a
1989 mistake). The old 'full' autocall still exists: for that, you
2011 mistake). The old 'full' autocall still exists: for that, you
1990 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2012 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1991
2013
1992 * IPython/completer.py (Completer.attr_matches): add
2014 * IPython/completer.py (Completer.attr_matches): add
1993 tab-completion support for Enthoughts' traits. After a report by
2015 tab-completion support for Enthoughts' traits. After a report by
1994 Arnd and a patch by Prabhu.
2016 Arnd and a patch by Prabhu.
1995
2017
1996 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2018 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1997
2019
1998 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2020 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1999 Schmolck's patch to fix inspect.getinnerframes().
2021 Schmolck's patch to fix inspect.getinnerframes().
2000
2022
2001 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2023 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2002 for embedded instances, regarding handling of namespaces and items
2024 for embedded instances, regarding handling of namespaces and items
2003 added to the __builtin__ one. Multiple embedded instances and
2025 added to the __builtin__ one. Multiple embedded instances and
2004 recursive embeddings should work better now (though I'm not sure
2026 recursive embeddings should work better now (though I'm not sure
2005 I've got all the corner cases fixed, that code is a bit of a brain
2027 I've got all the corner cases fixed, that code is a bit of a brain
2006 twister).
2028 twister).
2007
2029
2008 * IPython/Magic.py (magic_edit): added support to edit in-memory
2030 * IPython/Magic.py (magic_edit): added support to edit in-memory
2009 macros (automatically creates the necessary temp files). %edit
2031 macros (automatically creates the necessary temp files). %edit
2010 also doesn't return the file contents anymore, it's just noise.
2032 also doesn't return the file contents anymore, it's just noise.
2011
2033
2012 * IPython/completer.py (Completer.attr_matches): revert change to
2034 * IPython/completer.py (Completer.attr_matches): revert change to
2013 complete only on attributes listed in __all__. I realized it
2035 complete only on attributes listed in __all__. I realized it
2014 cripples the tab-completion system as a tool for exploring the
2036 cripples the tab-completion system as a tool for exploring the
2015 internals of unknown libraries (it renders any non-__all__
2037 internals of unknown libraries (it renders any non-__all__
2016 attribute off-limits). I got bit by this when trying to see
2038 attribute off-limits). I got bit by this when trying to see
2017 something inside the dis module.
2039 something inside the dis module.
2018
2040
2019 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2041 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2020
2042
2021 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2043 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2022 namespace for users and extension writers to hold data in. This
2044 namespace for users and extension writers to hold data in. This
2023 follows the discussion in
2045 follows the discussion in
2024 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2046 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2025
2047
2026 * IPython/completer.py (IPCompleter.complete): small patch to help
2048 * IPython/completer.py (IPCompleter.complete): small patch to help
2027 tab-completion under Emacs, after a suggestion by John Barnard
2049 tab-completion under Emacs, after a suggestion by John Barnard
2028 <barnarj-AT-ccf.org>.
2050 <barnarj-AT-ccf.org>.
2029
2051
2030 * IPython/Magic.py (Magic.extract_input_slices): added support for
2052 * IPython/Magic.py (Magic.extract_input_slices): added support for
2031 the slice notation in magics to use N-M to represent numbers N...M
2053 the slice notation in magics to use N-M to represent numbers N...M
2032 (closed endpoints). This is used by %macro and %save.
2054 (closed endpoints). This is used by %macro and %save.
2033
2055
2034 * IPython/completer.py (Completer.attr_matches): for modules which
2056 * IPython/completer.py (Completer.attr_matches): for modules which
2035 define __all__, complete only on those. After a patch by Jeffrey
2057 define __all__, complete only on those. After a patch by Jeffrey
2036 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2058 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2037 speed up this routine.
2059 speed up this routine.
2038
2060
2039 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2061 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2040 don't know if this is the end of it, but the behavior now is
2062 don't know if this is the end of it, but the behavior now is
2041 certainly much more correct. Note that coupled with macros,
2063 certainly much more correct. Note that coupled with macros,
2042 slightly surprising (at first) behavior may occur: a macro will in
2064 slightly surprising (at first) behavior may occur: a macro will in
2043 general expand to multiple lines of input, so upon exiting, the
2065 general expand to multiple lines of input, so upon exiting, the
2044 in/out counters will both be bumped by the corresponding amount
2066 in/out counters will both be bumped by the corresponding amount
2045 (as if the macro's contents had been typed interactively). Typing
2067 (as if the macro's contents had been typed interactively). Typing
2046 %hist will reveal the intermediate (silently processed) lines.
2068 %hist will reveal the intermediate (silently processed) lines.
2047
2069
2048 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2070 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2049 pickle to fail (%run was overwriting __main__ and not restoring
2071 pickle to fail (%run was overwriting __main__ and not restoring
2050 it, but pickle relies on __main__ to operate).
2072 it, but pickle relies on __main__ to operate).
2051
2073
2052 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2074 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2053 using properties, but forgot to make the main InteractiveShell
2075 using properties, but forgot to make the main InteractiveShell
2054 class a new-style class. Properties fail silently, and
2076 class a new-style class. Properties fail silently, and
2055 mysteriously, with old-style class (getters work, but
2077 mysteriously, with old-style class (getters work, but
2056 setters don't do anything).
2078 setters don't do anything).
2057
2079
2058 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2080 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2059
2081
2060 * IPython/Magic.py (magic_history): fix history reporting bug (I
2082 * IPython/Magic.py (magic_history): fix history reporting bug (I
2061 know some nasties are still there, I just can't seem to find a
2083 know some nasties are still there, I just can't seem to find a
2062 reproducible test case to track them down; the input history is
2084 reproducible test case to track them down; the input history is
2063 falling out of sync...)
2085 falling out of sync...)
2064
2086
2065 * IPython/iplib.py (handle_shell_escape): fix bug where both
2087 * IPython/iplib.py (handle_shell_escape): fix bug where both
2066 aliases and system accesses where broken for indented code (such
2088 aliases and system accesses where broken for indented code (such
2067 as loops).
2089 as loops).
2068
2090
2069 * IPython/genutils.py (shell): fix small but critical bug for
2091 * IPython/genutils.py (shell): fix small but critical bug for
2070 win32 system access.
2092 win32 system access.
2071
2093
2072 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2094 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2073
2095
2074 * IPython/iplib.py (showtraceback): remove use of the
2096 * IPython/iplib.py (showtraceback): remove use of the
2075 sys.last_{type/value/traceback} structures, which are non
2097 sys.last_{type/value/traceback} structures, which are non
2076 thread-safe.
2098 thread-safe.
2077 (_prefilter): change control flow to ensure that we NEVER
2099 (_prefilter): change control flow to ensure that we NEVER
2078 introspect objects when autocall is off. This will guarantee that
2100 introspect objects when autocall is off. This will guarantee that
2079 having an input line of the form 'x.y', where access to attribute
2101 having an input line of the form 'x.y', where access to attribute
2080 'y' has side effects, doesn't trigger the side effect TWICE. It
2102 'y' has side effects, doesn't trigger the side effect TWICE. It
2081 is important to note that, with autocall on, these side effects
2103 is important to note that, with autocall on, these side effects
2082 can still happen.
2104 can still happen.
2083 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2105 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2084 trio. IPython offers these three kinds of special calls which are
2106 trio. IPython offers these three kinds of special calls which are
2085 not python code, and it's a good thing to have their call method
2107 not python code, and it's a good thing to have their call method
2086 be accessible as pure python functions (not just special syntax at
2108 be accessible as pure python functions (not just special syntax at
2087 the command line). It gives us a better internal implementation
2109 the command line). It gives us a better internal implementation
2088 structure, as well as exposing these for user scripting more
2110 structure, as well as exposing these for user scripting more
2089 cleanly.
2111 cleanly.
2090
2112
2091 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2113 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2092 file. Now that they'll be more likely to be used with the
2114 file. Now that they'll be more likely to be used with the
2093 persistance system (%store), I want to make sure their module path
2115 persistance system (%store), I want to make sure their module path
2094 doesn't change in the future, so that we don't break things for
2116 doesn't change in the future, so that we don't break things for
2095 users' persisted data.
2117 users' persisted data.
2096
2118
2097 * IPython/iplib.py (autoindent_update): move indentation
2119 * IPython/iplib.py (autoindent_update): move indentation
2098 management into the _text_ processing loop, not the keyboard
2120 management into the _text_ processing loop, not the keyboard
2099 interactive one. This is necessary to correctly process non-typed
2121 interactive one. This is necessary to correctly process non-typed
2100 multiline input (such as macros).
2122 multiline input (such as macros).
2101
2123
2102 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2124 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2103 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2125 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2104 which was producing problems in the resulting manual.
2126 which was producing problems in the resulting manual.
2105 (magic_whos): improve reporting of instances (show their class,
2127 (magic_whos): improve reporting of instances (show their class,
2106 instead of simply printing 'instance' which isn't terribly
2128 instead of simply printing 'instance' which isn't terribly
2107 informative).
2129 informative).
2108
2130
2109 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2131 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2110 (minor mods) to support network shares under win32.
2132 (minor mods) to support network shares under win32.
2111
2133
2112 * IPython/winconsole.py (get_console_size): add new winconsole
2134 * IPython/winconsole.py (get_console_size): add new winconsole
2113 module and fixes to page_dumb() to improve its behavior under
2135 module and fixes to page_dumb() to improve its behavior under
2114 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2136 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2115
2137
2116 * IPython/Magic.py (Macro): simplified Macro class to just
2138 * IPython/Magic.py (Macro): simplified Macro class to just
2117 subclass list. We've had only 2.2 compatibility for a very long
2139 subclass list. We've had only 2.2 compatibility for a very long
2118 time, yet I was still avoiding subclassing the builtin types. No
2140 time, yet I was still avoiding subclassing the builtin types. No
2119 more (I'm also starting to use properties, though I won't shift to
2141 more (I'm also starting to use properties, though I won't shift to
2120 2.3-specific features quite yet).
2142 2.3-specific features quite yet).
2121 (magic_store): added Ville's patch for lightweight variable
2143 (magic_store): added Ville's patch for lightweight variable
2122 persistence, after a request on the user list by Matt Wilkie
2144 persistence, after a request on the user list by Matt Wilkie
2123 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2145 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2124 details.
2146 details.
2125
2147
2126 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2148 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2127 changed the default logfile name from 'ipython.log' to
2149 changed the default logfile name from 'ipython.log' to
2128 'ipython_log.py'. These logs are real python files, and now that
2150 'ipython_log.py'. These logs are real python files, and now that
2129 we have much better multiline support, people are more likely to
2151 we have much better multiline support, people are more likely to
2130 want to use them as such. Might as well name them correctly.
2152 want to use them as such. Might as well name them correctly.
2131
2153
2132 * IPython/Magic.py: substantial cleanup. While we can't stop
2154 * IPython/Magic.py: substantial cleanup. While we can't stop
2133 using magics as mixins, due to the existing customizations 'out
2155 using magics as mixins, due to the existing customizations 'out
2134 there' which rely on the mixin naming conventions, at least I
2156 there' which rely on the mixin naming conventions, at least I
2135 cleaned out all cross-class name usage. So once we are OK with
2157 cleaned out all cross-class name usage. So once we are OK with
2136 breaking compatibility, the two systems can be separated.
2158 breaking compatibility, the two systems can be separated.
2137
2159
2138 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2160 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2139 anymore, and the class is a fair bit less hideous as well. New
2161 anymore, and the class is a fair bit less hideous as well. New
2140 features were also introduced: timestamping of input, and logging
2162 features were also introduced: timestamping of input, and logging
2141 of output results. These are user-visible with the -t and -o
2163 of output results. These are user-visible with the -t and -o
2142 options to %logstart. Closes
2164 options to %logstart. Closes
2143 http://www.scipy.net/roundup/ipython/issue11 and a request by
2165 http://www.scipy.net/roundup/ipython/issue11 and a request by
2144 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2166 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2145
2167
2146 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2168 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2147
2169
2148 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2170 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2149 better handle backslashes in paths. See the thread 'More Windows
2171 better handle backslashes in paths. See the thread 'More Windows
2150 questions part 2 - \/ characters revisited' on the iypthon user
2172 questions part 2 - \/ characters revisited' on the iypthon user
2151 list:
2173 list:
2152 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2174 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2153
2175
2154 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2176 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2155
2177
2156 (InteractiveShell.__init__): change threaded shells to not use the
2178 (InteractiveShell.__init__): change threaded shells to not use the
2157 ipython crash handler. This was causing more problems than not,
2179 ipython crash handler. This was causing more problems than not,
2158 as exceptions in the main thread (GUI code, typically) would
2180 as exceptions in the main thread (GUI code, typically) would
2159 always show up as a 'crash', when they really weren't.
2181 always show up as a 'crash', when they really weren't.
2160
2182
2161 The colors and exception mode commands (%colors/%xmode) have been
2183 The colors and exception mode commands (%colors/%xmode) have been
2162 synchronized to also take this into account, so users can get
2184 synchronized to also take this into account, so users can get
2163 verbose exceptions for their threaded code as well. I also added
2185 verbose exceptions for their threaded code as well. I also added
2164 support for activating pdb inside this exception handler as well,
2186 support for activating pdb inside this exception handler as well,
2165 so now GUI authors can use IPython's enhanced pdb at runtime.
2187 so now GUI authors can use IPython's enhanced pdb at runtime.
2166
2188
2167 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2189 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2168 true by default, and add it to the shipped ipythonrc file. Since
2190 true by default, and add it to the shipped ipythonrc file. Since
2169 this asks the user before proceeding, I think it's OK to make it
2191 this asks the user before proceeding, I think it's OK to make it
2170 true by default.
2192 true by default.
2171
2193
2172 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2194 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2173 of the previous special-casing of input in the eval loop. I think
2195 of the previous special-casing of input in the eval loop. I think
2174 this is cleaner, as they really are commands and shouldn't have
2196 this is cleaner, as they really are commands and shouldn't have
2175 a special role in the middle of the core code.
2197 a special role in the middle of the core code.
2176
2198
2177 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2199 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2178
2200
2179 * IPython/iplib.py (edit_syntax_error): added support for
2201 * IPython/iplib.py (edit_syntax_error): added support for
2180 automatically reopening the editor if the file had a syntax error
2202 automatically reopening the editor if the file had a syntax error
2181 in it. Thanks to scottt who provided the patch at:
2203 in it. Thanks to scottt who provided the patch at:
2182 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2204 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2183 version committed).
2205 version committed).
2184
2206
2185 * IPython/iplib.py (handle_normal): add suport for multi-line
2207 * IPython/iplib.py (handle_normal): add suport for multi-line
2186 input with emtpy lines. This fixes
2208 input with emtpy lines. This fixes
2187 http://www.scipy.net/roundup/ipython/issue43 and a similar
2209 http://www.scipy.net/roundup/ipython/issue43 and a similar
2188 discussion on the user list.
2210 discussion on the user list.
2189
2211
2190 WARNING: a behavior change is necessarily introduced to support
2212 WARNING: a behavior change is necessarily introduced to support
2191 blank lines: now a single blank line with whitespace does NOT
2213 blank lines: now a single blank line with whitespace does NOT
2192 break the input loop, which means that when autoindent is on, by
2214 break the input loop, which means that when autoindent is on, by
2193 default hitting return on the next (indented) line does NOT exit.
2215 default hitting return on the next (indented) line does NOT exit.
2194
2216
2195 Instead, to exit a multiline input you can either have:
2217 Instead, to exit a multiline input you can either have:
2196
2218
2197 - TWO whitespace lines (just hit return again), or
2219 - TWO whitespace lines (just hit return again), or
2198 - a single whitespace line of a different length than provided
2220 - a single whitespace line of a different length than provided
2199 by the autoindent (add or remove a space).
2221 by the autoindent (add or remove a space).
2200
2222
2201 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2223 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2202 module to better organize all readline-related functionality.
2224 module to better organize all readline-related functionality.
2203 I've deleted FlexCompleter and put all completion clases here.
2225 I've deleted FlexCompleter and put all completion clases here.
2204
2226
2205 * IPython/iplib.py (raw_input): improve indentation management.
2227 * IPython/iplib.py (raw_input): improve indentation management.
2206 It is now possible to paste indented code with autoindent on, and
2228 It is now possible to paste indented code with autoindent on, and
2207 the code is interpreted correctly (though it still looks bad on
2229 the code is interpreted correctly (though it still looks bad on
2208 screen, due to the line-oriented nature of ipython).
2230 screen, due to the line-oriented nature of ipython).
2209 (MagicCompleter.complete): change behavior so that a TAB key on an
2231 (MagicCompleter.complete): change behavior so that a TAB key on an
2210 otherwise empty line actually inserts a tab, instead of completing
2232 otherwise empty line actually inserts a tab, instead of completing
2211 on the entire global namespace. This makes it easier to use the
2233 on the entire global namespace. This makes it easier to use the
2212 TAB key for indentation. After a request by Hans Meine
2234 TAB key for indentation. After a request by Hans Meine
2213 <hans_meine-AT-gmx.net>
2235 <hans_meine-AT-gmx.net>
2214 (_prefilter): add support so that typing plain 'exit' or 'quit'
2236 (_prefilter): add support so that typing plain 'exit' or 'quit'
2215 does a sensible thing. Originally I tried to deviate as little as
2237 does a sensible thing. Originally I tried to deviate as little as
2216 possible from the default python behavior, but even that one may
2238 possible from the default python behavior, but even that one may
2217 change in this direction (thread on python-dev to that effect).
2239 change in this direction (thread on python-dev to that effect).
2218 Regardless, ipython should do the right thing even if CPython's
2240 Regardless, ipython should do the right thing even if CPython's
2219 '>>>' prompt doesn't.
2241 '>>>' prompt doesn't.
2220 (InteractiveShell): removed subclassing code.InteractiveConsole
2242 (InteractiveShell): removed subclassing code.InteractiveConsole
2221 class. By now we'd overridden just about all of its methods: I've
2243 class. By now we'd overridden just about all of its methods: I've
2222 copied the remaining two over, and now ipython is a standalone
2244 copied the remaining two over, and now ipython is a standalone
2223 class. This will provide a clearer picture for the chainsaw
2245 class. This will provide a clearer picture for the chainsaw
2224 branch refactoring.
2246 branch refactoring.
2225
2247
2226 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2248 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2227
2249
2228 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2250 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2229 failures for objects which break when dir() is called on them.
2251 failures for objects which break when dir() is called on them.
2230
2252
2231 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2253 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2232 distinct local and global namespaces in the completer API. This
2254 distinct local and global namespaces in the completer API. This
2233 change allows us to properly handle completion with distinct
2255 change allows us to properly handle completion with distinct
2234 scopes, including in embedded instances (this had never really
2256 scopes, including in embedded instances (this had never really
2235 worked correctly).
2257 worked correctly).
2236
2258
2237 Note: this introduces a change in the constructor for
2259 Note: this introduces a change in the constructor for
2238 MagicCompleter, as a new global_namespace parameter is now the
2260 MagicCompleter, as a new global_namespace parameter is now the
2239 second argument (the others were bumped one position).
2261 second argument (the others were bumped one position).
2240
2262
2241 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2263 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2242
2264
2243 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2265 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2244 embedded instances (which can be done now thanks to Vivian's
2266 embedded instances (which can be done now thanks to Vivian's
2245 frame-handling fixes for pdb).
2267 frame-handling fixes for pdb).
2246 (InteractiveShell.__init__): Fix namespace handling problem in
2268 (InteractiveShell.__init__): Fix namespace handling problem in
2247 embedded instances. We were overwriting __main__ unconditionally,
2269 embedded instances. We were overwriting __main__ unconditionally,
2248 and this should only be done for 'full' (non-embedded) IPython;
2270 and this should only be done for 'full' (non-embedded) IPython;
2249 embedded instances must respect the caller's __main__. Thanks to
2271 embedded instances must respect the caller's __main__. Thanks to
2250 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2272 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2251
2273
2252 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2253
2275
2254 * setup.py: added download_url to setup(). This registers the
2276 * setup.py: added download_url to setup(). This registers the
2255 download address at PyPI, which is not only useful to humans
2277 download address at PyPI, which is not only useful to humans
2256 browsing the site, but is also picked up by setuptools (the Eggs
2278 browsing the site, but is also picked up by setuptools (the Eggs
2257 machinery). Thanks to Ville and R. Kern for the info/discussion
2279 machinery). Thanks to Ville and R. Kern for the info/discussion
2258 on this.
2280 on this.
2259
2281
2260 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2282 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2261
2283
2262 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2284 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2263 This brings a lot of nice functionality to the pdb mode, which now
2285 This brings a lot of nice functionality to the pdb mode, which now
2264 has tab-completion, syntax highlighting, and better stack handling
2286 has tab-completion, syntax highlighting, and better stack handling
2265 than before. Many thanks to Vivian De Smedt
2287 than before. Many thanks to Vivian De Smedt
2266 <vivian-AT-vdesmedt.com> for the original patches.
2288 <vivian-AT-vdesmedt.com> for the original patches.
2267
2289
2268 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2290 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2269
2291
2270 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2292 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2271 sequence to consistently accept the banner argument. The
2293 sequence to consistently accept the banner argument. The
2272 inconsistency was tripping SAGE, thanks to Gary Zablackis
2294 inconsistency was tripping SAGE, thanks to Gary Zablackis
2273 <gzabl-AT-yahoo.com> for the report.
2295 <gzabl-AT-yahoo.com> for the report.
2274
2296
2275 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2297 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2276
2298
2277 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2299 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2278 Fix bug where a naked 'alias' call in the ipythonrc file would
2300 Fix bug where a naked 'alias' call in the ipythonrc file would
2279 cause a crash. Bug reported by Jorgen Stenarson.
2301 cause a crash. Bug reported by Jorgen Stenarson.
2280
2302
2281 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2303 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2282
2304
2283 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2305 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2284 startup time.
2306 startup time.
2285
2307
2286 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2308 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2287 instances had introduced a bug with globals in normal code. Now
2309 instances had introduced a bug with globals in normal code. Now
2288 it's working in all cases.
2310 it's working in all cases.
2289
2311
2290 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2312 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2291 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2313 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2292 has been introduced to set the default case sensitivity of the
2314 has been introduced to set the default case sensitivity of the
2293 searches. Users can still select either mode at runtime on a
2315 searches. Users can still select either mode at runtime on a
2294 per-search basis.
2316 per-search basis.
2295
2317
2296 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2318 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2297
2319
2298 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2320 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2299 attributes in wildcard searches for subclasses. Modified version
2321 attributes in wildcard searches for subclasses. Modified version
2300 of a patch by Jorgen.
2322 of a patch by Jorgen.
2301
2323
2302 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2324 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2303
2325
2304 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2326 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2305 embedded instances. I added a user_global_ns attribute to the
2327 embedded instances. I added a user_global_ns attribute to the
2306 InteractiveShell class to handle this.
2328 InteractiveShell class to handle this.
2307
2329
2308 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2330 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2309
2331
2310 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2332 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2311 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2333 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2312 (reported under win32, but may happen also in other platforms).
2334 (reported under win32, but may happen also in other platforms).
2313 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2335 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2314
2336
2315 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2337 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2316
2338
2317 * IPython/Magic.py (magic_psearch): new support for wildcard
2339 * IPython/Magic.py (magic_psearch): new support for wildcard
2318 patterns. Now, typing ?a*b will list all names which begin with a
2340 patterns. Now, typing ?a*b will list all names which begin with a
2319 and end in b, for example. The %psearch magic has full
2341 and end in b, for example. The %psearch magic has full
2320 docstrings. Many thanks to JΓΆrgen Stenarson
2342 docstrings. Many thanks to JΓΆrgen Stenarson
2321 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2343 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2322 implementing this functionality.
2344 implementing this functionality.
2323
2345
2324 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2346 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2325
2347
2326 * Manual: fixed long-standing annoyance of double-dashes (as in
2348 * Manual: fixed long-standing annoyance of double-dashes (as in
2327 --prefix=~, for example) being stripped in the HTML version. This
2349 --prefix=~, for example) being stripped in the HTML version. This
2328 is a latex2html bug, but a workaround was provided. Many thanks
2350 is a latex2html bug, but a workaround was provided. Many thanks
2329 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2351 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2330 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2352 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2331 rolling. This seemingly small issue had tripped a number of users
2353 rolling. This seemingly small issue had tripped a number of users
2332 when first installing, so I'm glad to see it gone.
2354 when first installing, so I'm glad to see it gone.
2333
2355
2334 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2356 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2335
2357
2336 * IPython/Extensions/numeric_formats.py: fix missing import,
2358 * IPython/Extensions/numeric_formats.py: fix missing import,
2337 reported by Stephen Walton.
2359 reported by Stephen Walton.
2338
2360
2339 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2361 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2340
2362
2341 * IPython/demo.py: finish demo module, fully documented now.
2363 * IPython/demo.py: finish demo module, fully documented now.
2342
2364
2343 * IPython/genutils.py (file_read): simple little utility to read a
2365 * IPython/genutils.py (file_read): simple little utility to read a
2344 file and ensure it's closed afterwards.
2366 file and ensure it's closed afterwards.
2345
2367
2346 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2368 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2347
2369
2348 * IPython/demo.py (Demo.__init__): added support for individually
2370 * IPython/demo.py (Demo.__init__): added support for individually
2349 tagging blocks for automatic execution.
2371 tagging blocks for automatic execution.
2350
2372
2351 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2373 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2352 syntax-highlighted python sources, requested by John.
2374 syntax-highlighted python sources, requested by John.
2353
2375
2354 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2376 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2355
2377
2356 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2378 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2357 finishing.
2379 finishing.
2358
2380
2359 * IPython/genutils.py (shlex_split): moved from Magic to here,
2381 * IPython/genutils.py (shlex_split): moved from Magic to here,
2360 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2382 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2361
2383
2362 * IPython/demo.py (Demo.__init__): added support for silent
2384 * IPython/demo.py (Demo.__init__): added support for silent
2363 blocks, improved marks as regexps, docstrings written.
2385 blocks, improved marks as regexps, docstrings written.
2364 (Demo.__init__): better docstring, added support for sys.argv.
2386 (Demo.__init__): better docstring, added support for sys.argv.
2365
2387
2366 * IPython/genutils.py (marquee): little utility used by the demo
2388 * IPython/genutils.py (marquee): little utility used by the demo
2367 code, handy in general.
2389 code, handy in general.
2368
2390
2369 * IPython/demo.py (Demo.__init__): new class for interactive
2391 * IPython/demo.py (Demo.__init__): new class for interactive
2370 demos. Not documented yet, I just wrote it in a hurry for
2392 demos. Not documented yet, I just wrote it in a hurry for
2371 scipy'05. Will docstring later.
2393 scipy'05. Will docstring later.
2372
2394
2373 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2395 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2374
2396
2375 * IPython/Shell.py (sigint_handler): Drastic simplification which
2397 * IPython/Shell.py (sigint_handler): Drastic simplification which
2376 also seems to make Ctrl-C work correctly across threads! This is
2398 also seems to make Ctrl-C work correctly across threads! This is
2377 so simple, that I can't beleive I'd missed it before. Needs more
2399 so simple, that I can't beleive I'd missed it before. Needs more
2378 testing, though.
2400 testing, though.
2379 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2401 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2380 like this before...
2402 like this before...
2381
2403
2382 * IPython/genutils.py (get_home_dir): add protection against
2404 * IPython/genutils.py (get_home_dir): add protection against
2383 non-dirs in win32 registry.
2405 non-dirs in win32 registry.
2384
2406
2385 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2407 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2386 bug where dict was mutated while iterating (pysh crash).
2408 bug where dict was mutated while iterating (pysh crash).
2387
2409
2388 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2410 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2389
2411
2390 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2412 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2391 spurious newlines added by this routine. After a report by
2413 spurious newlines added by this routine. After a report by
2392 F. Mantegazza.
2414 F. Mantegazza.
2393
2415
2394 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2416 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2395
2417
2396 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2418 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2397 calls. These were a leftover from the GTK 1.x days, and can cause
2419 calls. These were a leftover from the GTK 1.x days, and can cause
2398 problems in certain cases (after a report by John Hunter).
2420 problems in certain cases (after a report by John Hunter).
2399
2421
2400 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2422 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2401 os.getcwd() fails at init time. Thanks to patch from David Remahl
2423 os.getcwd() fails at init time. Thanks to patch from David Remahl
2402 <chmod007-AT-mac.com>.
2424 <chmod007-AT-mac.com>.
2403 (InteractiveShell.__init__): prevent certain special magics from
2425 (InteractiveShell.__init__): prevent certain special magics from
2404 being shadowed by aliases. Closes
2426 being shadowed by aliases. Closes
2405 http://www.scipy.net/roundup/ipython/issue41.
2427 http://www.scipy.net/roundup/ipython/issue41.
2406
2428
2407 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2429 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2408
2430
2409 * IPython/iplib.py (InteractiveShell.complete): Added new
2431 * IPython/iplib.py (InteractiveShell.complete): Added new
2410 top-level completion method to expose the completion mechanism
2432 top-level completion method to expose the completion mechanism
2411 beyond readline-based environments.
2433 beyond readline-based environments.
2412
2434
2413 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2435 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2414
2436
2415 * tools/ipsvnc (svnversion): fix svnversion capture.
2437 * tools/ipsvnc (svnversion): fix svnversion capture.
2416
2438
2417 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2439 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2418 attribute to self, which was missing. Before, it was set by a
2440 attribute to self, which was missing. Before, it was set by a
2419 routine which in certain cases wasn't being called, so the
2441 routine which in certain cases wasn't being called, so the
2420 instance could end up missing the attribute. This caused a crash.
2442 instance could end up missing the attribute. This caused a crash.
2421 Closes http://www.scipy.net/roundup/ipython/issue40.
2443 Closes http://www.scipy.net/roundup/ipython/issue40.
2422
2444
2423 2005-08-16 Fernando Perez <fperez@colorado.edu>
2445 2005-08-16 Fernando Perez <fperez@colorado.edu>
2424
2446
2425 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2447 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2426 contains non-string attribute. Closes
2448 contains non-string attribute. Closes
2427 http://www.scipy.net/roundup/ipython/issue38.
2449 http://www.scipy.net/roundup/ipython/issue38.
2428
2450
2429 2005-08-14 Fernando Perez <fperez@colorado.edu>
2451 2005-08-14 Fernando Perez <fperez@colorado.edu>
2430
2452
2431 * tools/ipsvnc: Minor improvements, to add changeset info.
2453 * tools/ipsvnc: Minor improvements, to add changeset info.
2432
2454
2433 2005-08-12 Fernando Perez <fperez@colorado.edu>
2455 2005-08-12 Fernando Perez <fperez@colorado.edu>
2434
2456
2435 * IPython/iplib.py (runsource): remove self.code_to_run_src
2457 * IPython/iplib.py (runsource): remove self.code_to_run_src
2436 attribute. I realized this is nothing more than
2458 attribute. I realized this is nothing more than
2437 '\n'.join(self.buffer), and having the same data in two different
2459 '\n'.join(self.buffer), and having the same data in two different
2438 places is just asking for synchronization bugs. This may impact
2460 places is just asking for synchronization bugs. This may impact
2439 people who have custom exception handlers, so I need to warn
2461 people who have custom exception handlers, so I need to warn
2440 ipython-dev about it (F. Mantegazza may use them).
2462 ipython-dev about it (F. Mantegazza may use them).
2441
2463
2442 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2464 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2443
2465
2444 * IPython/genutils.py: fix 2.2 compatibility (generators)
2466 * IPython/genutils.py: fix 2.2 compatibility (generators)
2445
2467
2446 2005-07-18 Fernando Perez <fperez@colorado.edu>
2468 2005-07-18 Fernando Perez <fperez@colorado.edu>
2447
2469
2448 * IPython/genutils.py (get_home_dir): fix to help users with
2470 * IPython/genutils.py (get_home_dir): fix to help users with
2449 invalid $HOME under win32.
2471 invalid $HOME under win32.
2450
2472
2451 2005-07-17 Fernando Perez <fperez@colorado.edu>
2473 2005-07-17 Fernando Perez <fperez@colorado.edu>
2452
2474
2453 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2475 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2454 some old hacks and clean up a bit other routines; code should be
2476 some old hacks and clean up a bit other routines; code should be
2455 simpler and a bit faster.
2477 simpler and a bit faster.
2456
2478
2457 * IPython/iplib.py (interact): removed some last-resort attempts
2479 * IPython/iplib.py (interact): removed some last-resort attempts
2458 to survive broken stdout/stderr. That code was only making it
2480 to survive broken stdout/stderr. That code was only making it
2459 harder to abstract out the i/o (necessary for gui integration),
2481 harder to abstract out the i/o (necessary for gui integration),
2460 and the crashes it could prevent were extremely rare in practice
2482 and the crashes it could prevent were extremely rare in practice
2461 (besides being fully user-induced in a pretty violent manner).
2483 (besides being fully user-induced in a pretty violent manner).
2462
2484
2463 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2485 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2464 Nothing major yet, but the code is simpler to read; this should
2486 Nothing major yet, but the code is simpler to read; this should
2465 make it easier to do more serious modifications in the future.
2487 make it easier to do more serious modifications in the future.
2466
2488
2467 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2489 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2468 which broke in .15 (thanks to a report by Ville).
2490 which broke in .15 (thanks to a report by Ville).
2469
2491
2470 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2492 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2471 be quite correct, I know next to nothing about unicode). This
2493 be quite correct, I know next to nothing about unicode). This
2472 will allow unicode strings to be used in prompts, amongst other
2494 will allow unicode strings to be used in prompts, amongst other
2473 cases. It also will prevent ipython from crashing when unicode
2495 cases. It also will prevent ipython from crashing when unicode
2474 shows up unexpectedly in many places. If ascii encoding fails, we
2496 shows up unexpectedly in many places. If ascii encoding fails, we
2475 assume utf_8. Currently the encoding is not a user-visible
2497 assume utf_8. Currently the encoding is not a user-visible
2476 setting, though it could be made so if there is demand for it.
2498 setting, though it could be made so if there is demand for it.
2477
2499
2478 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2500 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2479
2501
2480 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2502 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2481
2503
2482 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2504 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2483
2505
2484 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2506 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2485 code can work transparently for 2.2/2.3.
2507 code can work transparently for 2.2/2.3.
2486
2508
2487 2005-07-16 Fernando Perez <fperez@colorado.edu>
2509 2005-07-16 Fernando Perez <fperez@colorado.edu>
2488
2510
2489 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2511 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2490 out of the color scheme table used for coloring exception
2512 out of the color scheme table used for coloring exception
2491 tracebacks. This allows user code to add new schemes at runtime.
2513 tracebacks. This allows user code to add new schemes at runtime.
2492 This is a minimally modified version of the patch at
2514 This is a minimally modified version of the patch at
2493 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2515 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2494 for the contribution.
2516 for the contribution.
2495
2517
2496 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2518 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2497 slightly modified version of the patch in
2519 slightly modified version of the patch in
2498 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2520 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2499 to remove the previous try/except solution (which was costlier).
2521 to remove the previous try/except solution (which was costlier).
2500 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2522 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2501
2523
2502 2005-06-08 Fernando Perez <fperez@colorado.edu>
2524 2005-06-08 Fernando Perez <fperez@colorado.edu>
2503
2525
2504 * IPython/iplib.py (write/write_err): Add methods to abstract all
2526 * IPython/iplib.py (write/write_err): Add methods to abstract all
2505 I/O a bit more.
2527 I/O a bit more.
2506
2528
2507 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2529 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2508 warning, reported by Aric Hagberg, fix by JD Hunter.
2530 warning, reported by Aric Hagberg, fix by JD Hunter.
2509
2531
2510 2005-06-02 *** Released version 0.6.15
2532 2005-06-02 *** Released version 0.6.15
2511
2533
2512 2005-06-01 Fernando Perez <fperez@colorado.edu>
2534 2005-06-01 Fernando Perez <fperez@colorado.edu>
2513
2535
2514 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2536 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2515 tab-completion of filenames within open-quoted strings. Note that
2537 tab-completion of filenames within open-quoted strings. Note that
2516 this requires that in ~/.ipython/ipythonrc, users change the
2538 this requires that in ~/.ipython/ipythonrc, users change the
2517 readline delimiters configuration to read:
2539 readline delimiters configuration to read:
2518
2540
2519 readline_remove_delims -/~
2541 readline_remove_delims -/~
2520
2542
2521
2543
2522 2005-05-31 *** Released version 0.6.14
2544 2005-05-31 *** Released version 0.6.14
2523
2545
2524 2005-05-29 Fernando Perez <fperez@colorado.edu>
2546 2005-05-29 Fernando Perez <fperez@colorado.edu>
2525
2547
2526 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2548 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2527 with files not on the filesystem. Reported by Eliyahu Sandler
2549 with files not on the filesystem. Reported by Eliyahu Sandler
2528 <eli@gondolin.net>
2550 <eli@gondolin.net>
2529
2551
2530 2005-05-22 Fernando Perez <fperez@colorado.edu>
2552 2005-05-22 Fernando Perez <fperez@colorado.edu>
2531
2553
2532 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2554 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2533 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2555 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2534
2556
2535 2005-05-19 Fernando Perez <fperez@colorado.edu>
2557 2005-05-19 Fernando Perez <fperez@colorado.edu>
2536
2558
2537 * IPython/iplib.py (safe_execfile): close a file which could be
2559 * IPython/iplib.py (safe_execfile): close a file which could be
2538 left open (causing problems in win32, which locks open files).
2560 left open (causing problems in win32, which locks open files).
2539 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2561 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2540
2562
2541 2005-05-18 Fernando Perez <fperez@colorado.edu>
2563 2005-05-18 Fernando Perez <fperez@colorado.edu>
2542
2564
2543 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2565 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2544 keyword arguments correctly to safe_execfile().
2566 keyword arguments correctly to safe_execfile().
2545
2567
2546 2005-05-13 Fernando Perez <fperez@colorado.edu>
2568 2005-05-13 Fernando Perez <fperez@colorado.edu>
2547
2569
2548 * ipython.1: Added info about Qt to manpage, and threads warning
2570 * ipython.1: Added info about Qt to manpage, and threads warning
2549 to usage page (invoked with --help).
2571 to usage page (invoked with --help).
2550
2572
2551 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2573 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2552 new matcher (it goes at the end of the priority list) to do
2574 new matcher (it goes at the end of the priority list) to do
2553 tab-completion on named function arguments. Submitted by George
2575 tab-completion on named function arguments. Submitted by George
2554 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2576 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2555 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2577 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2556 for more details.
2578 for more details.
2557
2579
2558 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2580 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2559 SystemExit exceptions in the script being run. Thanks to a report
2581 SystemExit exceptions in the script being run. Thanks to a report
2560 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2582 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2561 producing very annoying behavior when running unit tests.
2583 producing very annoying behavior when running unit tests.
2562
2584
2563 2005-05-12 Fernando Perez <fperez@colorado.edu>
2585 2005-05-12 Fernando Perez <fperez@colorado.edu>
2564
2586
2565 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2587 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2566 which I'd broken (again) due to a changed regexp. In the process,
2588 which I'd broken (again) due to a changed regexp. In the process,
2567 added ';' as an escape to auto-quote the whole line without
2589 added ';' as an escape to auto-quote the whole line without
2568 splitting its arguments. Thanks to a report by Jerry McRae
2590 splitting its arguments. Thanks to a report by Jerry McRae
2569 <qrs0xyc02-AT-sneakemail.com>.
2591 <qrs0xyc02-AT-sneakemail.com>.
2570
2592
2571 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2593 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2572 possible crashes caused by a TokenError. Reported by Ed Schofield
2594 possible crashes caused by a TokenError. Reported by Ed Schofield
2573 <schofield-AT-ftw.at>.
2595 <schofield-AT-ftw.at>.
2574
2596
2575 2005-05-06 Fernando Perez <fperez@colorado.edu>
2597 2005-05-06 Fernando Perez <fperez@colorado.edu>
2576
2598
2577 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2599 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2578
2600
2579 2005-04-29 Fernando Perez <fperez@colorado.edu>
2601 2005-04-29 Fernando Perez <fperez@colorado.edu>
2580
2602
2581 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2603 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2582 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2604 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2583 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2605 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2584 which provides support for Qt interactive usage (similar to the
2606 which provides support for Qt interactive usage (similar to the
2585 existing one for WX and GTK). This had been often requested.
2607 existing one for WX and GTK). This had been often requested.
2586
2608
2587 2005-04-14 *** Released version 0.6.13
2609 2005-04-14 *** Released version 0.6.13
2588
2610
2589 2005-04-08 Fernando Perez <fperez@colorado.edu>
2611 2005-04-08 Fernando Perez <fperez@colorado.edu>
2590
2612
2591 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2613 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2592 from _ofind, which gets called on almost every input line. Now,
2614 from _ofind, which gets called on almost every input line. Now,
2593 we only try to get docstrings if they are actually going to be
2615 we only try to get docstrings if they are actually going to be
2594 used (the overhead of fetching unnecessary docstrings can be
2616 used (the overhead of fetching unnecessary docstrings can be
2595 noticeable for certain objects, such as Pyro proxies).
2617 noticeable for certain objects, such as Pyro proxies).
2596
2618
2597 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2619 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2598 for completers. For some reason I had been passing them the state
2620 for completers. For some reason I had been passing them the state
2599 variable, which completers never actually need, and was in
2621 variable, which completers never actually need, and was in
2600 conflict with the rlcompleter API. Custom completers ONLY need to
2622 conflict with the rlcompleter API. Custom completers ONLY need to
2601 take the text parameter.
2623 take the text parameter.
2602
2624
2603 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2625 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2604 work correctly in pysh. I've also moved all the logic which used
2626 work correctly in pysh. I've also moved all the logic which used
2605 to be in pysh.py here, which will prevent problems with future
2627 to be in pysh.py here, which will prevent problems with future
2606 upgrades. However, this time I must warn users to update their
2628 upgrades. However, this time I must warn users to update their
2607 pysh profile to include the line
2629 pysh profile to include the line
2608
2630
2609 import_all IPython.Extensions.InterpreterExec
2631 import_all IPython.Extensions.InterpreterExec
2610
2632
2611 because otherwise things won't work for them. They MUST also
2633 because otherwise things won't work for them. They MUST also
2612 delete pysh.py and the line
2634 delete pysh.py and the line
2613
2635
2614 execfile pysh.py
2636 execfile pysh.py
2615
2637
2616 from their ipythonrc-pysh.
2638 from their ipythonrc-pysh.
2617
2639
2618 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2640 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2619 robust in the face of objects whose dir() returns non-strings
2641 robust in the face of objects whose dir() returns non-strings
2620 (which it shouldn't, but some broken libs like ITK do). Thanks to
2642 (which it shouldn't, but some broken libs like ITK do). Thanks to
2621 a patch by John Hunter (implemented differently, though). Also
2643 a patch by John Hunter (implemented differently, though). Also
2622 minor improvements by using .extend instead of + on lists.
2644 minor improvements by using .extend instead of + on lists.
2623
2645
2624 * pysh.py:
2646 * pysh.py:
2625
2647
2626 2005-04-06 Fernando Perez <fperez@colorado.edu>
2648 2005-04-06 Fernando Perez <fperez@colorado.edu>
2627
2649
2628 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2650 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2629 by default, so that all users benefit from it. Those who don't
2651 by default, so that all users benefit from it. Those who don't
2630 want it can still turn it off.
2652 want it can still turn it off.
2631
2653
2632 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2654 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2633 config file, I'd forgotten about this, so users were getting it
2655 config file, I'd forgotten about this, so users were getting it
2634 off by default.
2656 off by default.
2635
2657
2636 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2658 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2637 consistency. Now magics can be called in multiline statements,
2659 consistency. Now magics can be called in multiline statements,
2638 and python variables can be expanded in magic calls via $var.
2660 and python variables can be expanded in magic calls via $var.
2639 This makes the magic system behave just like aliases or !system
2661 This makes the magic system behave just like aliases or !system
2640 calls.
2662 calls.
2641
2663
2642 2005-03-28 Fernando Perez <fperez@colorado.edu>
2664 2005-03-28 Fernando Perez <fperez@colorado.edu>
2643
2665
2644 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2666 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2645 expensive string additions for building command. Add support for
2667 expensive string additions for building command. Add support for
2646 trailing ';' when autocall is used.
2668 trailing ';' when autocall is used.
2647
2669
2648 2005-03-26 Fernando Perez <fperez@colorado.edu>
2670 2005-03-26 Fernando Perez <fperez@colorado.edu>
2649
2671
2650 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2672 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2651 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2673 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2652 ipython.el robust against prompts with any number of spaces
2674 ipython.el robust against prompts with any number of spaces
2653 (including 0) after the ':' character.
2675 (including 0) after the ':' character.
2654
2676
2655 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2677 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2656 continuation prompt, which misled users to think the line was
2678 continuation prompt, which misled users to think the line was
2657 already indented. Closes debian Bug#300847, reported to me by
2679 already indented. Closes debian Bug#300847, reported to me by
2658 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2680 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2659
2681
2660 2005-03-23 Fernando Perez <fperez@colorado.edu>
2682 2005-03-23 Fernando Perez <fperez@colorado.edu>
2661
2683
2662 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2684 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2663 properly aligned if they have embedded newlines.
2685 properly aligned if they have embedded newlines.
2664
2686
2665 * IPython/iplib.py (runlines): Add a public method to expose
2687 * IPython/iplib.py (runlines): Add a public method to expose
2666 IPython's code execution machinery, so that users can run strings
2688 IPython's code execution machinery, so that users can run strings
2667 as if they had been typed at the prompt interactively.
2689 as if they had been typed at the prompt interactively.
2668 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2690 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2669 methods which can call the system shell, but with python variable
2691 methods which can call the system shell, but with python variable
2670 expansion. The three such methods are: __IPYTHON__.system,
2692 expansion. The three such methods are: __IPYTHON__.system,
2671 .getoutput and .getoutputerror. These need to be documented in a
2693 .getoutput and .getoutputerror. These need to be documented in a
2672 'public API' section (to be written) of the manual.
2694 'public API' section (to be written) of the manual.
2673
2695
2674 2005-03-20 Fernando Perez <fperez@colorado.edu>
2696 2005-03-20 Fernando Perez <fperez@colorado.edu>
2675
2697
2676 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2698 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2677 for custom exception handling. This is quite powerful, and it
2699 for custom exception handling. This is quite powerful, and it
2678 allows for user-installable exception handlers which can trap
2700 allows for user-installable exception handlers which can trap
2679 custom exceptions at runtime and treat them separately from
2701 custom exceptions at runtime and treat them separately from
2680 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2702 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2681 Mantegazza <mantegazza-AT-ill.fr>.
2703 Mantegazza <mantegazza-AT-ill.fr>.
2682 (InteractiveShell.set_custom_completer): public API function to
2704 (InteractiveShell.set_custom_completer): public API function to
2683 add new completers at runtime.
2705 add new completers at runtime.
2684
2706
2685 2005-03-19 Fernando Perez <fperez@colorado.edu>
2707 2005-03-19 Fernando Perez <fperez@colorado.edu>
2686
2708
2687 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2709 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2688 allow objects which provide their docstrings via non-standard
2710 allow objects which provide their docstrings via non-standard
2689 mechanisms (like Pyro proxies) to still be inspected by ipython's
2711 mechanisms (like Pyro proxies) to still be inspected by ipython's
2690 ? system.
2712 ? system.
2691
2713
2692 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2714 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2693 automatic capture system. I tried quite hard to make it work
2715 automatic capture system. I tried quite hard to make it work
2694 reliably, and simply failed. I tried many combinations with the
2716 reliably, and simply failed. I tried many combinations with the
2695 subprocess module, but eventually nothing worked in all needed
2717 subprocess module, but eventually nothing worked in all needed
2696 cases (not blocking stdin for the child, duplicating stdout
2718 cases (not blocking stdin for the child, duplicating stdout
2697 without blocking, etc). The new %sc/%sx still do capture to these
2719 without blocking, etc). The new %sc/%sx still do capture to these
2698 magical list/string objects which make shell use much more
2720 magical list/string objects which make shell use much more
2699 conveninent, so not all is lost.
2721 conveninent, so not all is lost.
2700
2722
2701 XXX - FIX MANUAL for the change above!
2723 XXX - FIX MANUAL for the change above!
2702
2724
2703 (runsource): I copied code.py's runsource() into ipython to modify
2725 (runsource): I copied code.py's runsource() into ipython to modify
2704 it a bit. Now the code object and source to be executed are
2726 it a bit. Now the code object and source to be executed are
2705 stored in ipython. This makes this info accessible to third-party
2727 stored in ipython. This makes this info accessible to third-party
2706 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2728 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2707 Mantegazza <mantegazza-AT-ill.fr>.
2729 Mantegazza <mantegazza-AT-ill.fr>.
2708
2730
2709 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2731 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2710 history-search via readline (like C-p/C-n). I'd wanted this for a
2732 history-search via readline (like C-p/C-n). I'd wanted this for a
2711 long time, but only recently found out how to do it. For users
2733 long time, but only recently found out how to do it. For users
2712 who already have their ipythonrc files made and want this, just
2734 who already have their ipythonrc files made and want this, just
2713 add:
2735 add:
2714
2736
2715 readline_parse_and_bind "\e[A": history-search-backward
2737 readline_parse_and_bind "\e[A": history-search-backward
2716 readline_parse_and_bind "\e[B": history-search-forward
2738 readline_parse_and_bind "\e[B": history-search-forward
2717
2739
2718 2005-03-18 Fernando Perez <fperez@colorado.edu>
2740 2005-03-18 Fernando Perez <fperez@colorado.edu>
2719
2741
2720 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2742 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2721 LSString and SList classes which allow transparent conversions
2743 LSString and SList classes which allow transparent conversions
2722 between list mode and whitespace-separated string.
2744 between list mode and whitespace-separated string.
2723 (magic_r): Fix recursion problem in %r.
2745 (magic_r): Fix recursion problem in %r.
2724
2746
2725 * IPython/genutils.py (LSString): New class to be used for
2747 * IPython/genutils.py (LSString): New class to be used for
2726 automatic storage of the results of all alias/system calls in _o
2748 automatic storage of the results of all alias/system calls in _o
2727 and _e (stdout/err). These provide a .l/.list attribute which
2749 and _e (stdout/err). These provide a .l/.list attribute which
2728 does automatic splitting on newlines. This means that for most
2750 does automatic splitting on newlines. This means that for most
2729 uses, you'll never need to do capturing of output with %sc/%sx
2751 uses, you'll never need to do capturing of output with %sc/%sx
2730 anymore, since ipython keeps this always done for you. Note that
2752 anymore, since ipython keeps this always done for you. Note that
2731 only the LAST results are stored, the _o/e variables are
2753 only the LAST results are stored, the _o/e variables are
2732 overwritten on each call. If you need to save their contents
2754 overwritten on each call. If you need to save their contents
2733 further, simply bind them to any other name.
2755 further, simply bind them to any other name.
2734
2756
2735 2005-03-17 Fernando Perez <fperez@colorado.edu>
2757 2005-03-17 Fernando Perez <fperez@colorado.edu>
2736
2758
2737 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2759 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2738 prompt namespace handling.
2760 prompt namespace handling.
2739
2761
2740 2005-03-16 Fernando Perez <fperez@colorado.edu>
2762 2005-03-16 Fernando Perez <fperez@colorado.edu>
2741
2763
2742 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2764 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2743 classic prompts to be '>>> ' (final space was missing, and it
2765 classic prompts to be '>>> ' (final space was missing, and it
2744 trips the emacs python mode).
2766 trips the emacs python mode).
2745 (BasePrompt.__str__): Added safe support for dynamic prompt
2767 (BasePrompt.__str__): Added safe support for dynamic prompt
2746 strings. Now you can set your prompt string to be '$x', and the
2768 strings. Now you can set your prompt string to be '$x', and the
2747 value of x will be printed from your interactive namespace. The
2769 value of x will be printed from your interactive namespace. The
2748 interpolation syntax includes the full Itpl support, so
2770 interpolation syntax includes the full Itpl support, so
2749 ${foo()+x+bar()} is a valid prompt string now, and the function
2771 ${foo()+x+bar()} is a valid prompt string now, and the function
2750 calls will be made at runtime.
2772 calls will be made at runtime.
2751
2773
2752 2005-03-15 Fernando Perez <fperez@colorado.edu>
2774 2005-03-15 Fernando Perez <fperez@colorado.edu>
2753
2775
2754 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2776 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2755 avoid name clashes in pylab. %hist still works, it just forwards
2777 avoid name clashes in pylab. %hist still works, it just forwards
2756 the call to %history.
2778 the call to %history.
2757
2779
2758 2005-03-02 *** Released version 0.6.12
2780 2005-03-02 *** Released version 0.6.12
2759
2781
2760 2005-03-02 Fernando Perez <fperez@colorado.edu>
2782 2005-03-02 Fernando Perez <fperez@colorado.edu>
2761
2783
2762 * IPython/iplib.py (handle_magic): log magic calls properly as
2784 * IPython/iplib.py (handle_magic): log magic calls properly as
2763 ipmagic() function calls.
2785 ipmagic() function calls.
2764
2786
2765 * IPython/Magic.py (magic_time): Improved %time to support
2787 * IPython/Magic.py (magic_time): Improved %time to support
2766 statements and provide wall-clock as well as CPU time.
2788 statements and provide wall-clock as well as CPU time.
2767
2789
2768 2005-02-27 Fernando Perez <fperez@colorado.edu>
2790 2005-02-27 Fernando Perez <fperez@colorado.edu>
2769
2791
2770 * IPython/hooks.py: New hooks module, to expose user-modifiable
2792 * IPython/hooks.py: New hooks module, to expose user-modifiable
2771 IPython functionality in a clean manner. For now only the editor
2793 IPython functionality in a clean manner. For now only the editor
2772 hook is actually written, and other thigns which I intend to turn
2794 hook is actually written, and other thigns which I intend to turn
2773 into proper hooks aren't yet there. The display and prefilter
2795 into proper hooks aren't yet there. The display and prefilter
2774 stuff, for example, should be hooks. But at least now the
2796 stuff, for example, should be hooks. But at least now the
2775 framework is in place, and the rest can be moved here with more
2797 framework is in place, and the rest can be moved here with more
2776 time later. IPython had had a .hooks variable for a long time for
2798 time later. IPython had had a .hooks variable for a long time for
2777 this purpose, but I'd never actually used it for anything.
2799 this purpose, but I'd never actually used it for anything.
2778
2800
2779 2005-02-26 Fernando Perez <fperez@colorado.edu>
2801 2005-02-26 Fernando Perez <fperez@colorado.edu>
2780
2802
2781 * IPython/ipmaker.py (make_IPython): make the default ipython
2803 * IPython/ipmaker.py (make_IPython): make the default ipython
2782 directory be called _ipython under win32, to follow more the
2804 directory be called _ipython under win32, to follow more the
2783 naming peculiarities of that platform (where buggy software like
2805 naming peculiarities of that platform (where buggy software like
2784 Visual Sourcesafe breaks with .named directories). Reported by
2806 Visual Sourcesafe breaks with .named directories). Reported by
2785 Ville Vainio.
2807 Ville Vainio.
2786
2808
2787 2005-02-23 Fernando Perez <fperez@colorado.edu>
2809 2005-02-23 Fernando Perez <fperez@colorado.edu>
2788
2810
2789 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2811 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2790 auto_aliases for win32 which were causing problems. Users can
2812 auto_aliases for win32 which were causing problems. Users can
2791 define the ones they personally like.
2813 define the ones they personally like.
2792
2814
2793 2005-02-21 Fernando Perez <fperez@colorado.edu>
2815 2005-02-21 Fernando Perez <fperez@colorado.edu>
2794
2816
2795 * IPython/Magic.py (magic_time): new magic to time execution of
2817 * IPython/Magic.py (magic_time): new magic to time execution of
2796 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2818 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2797
2819
2798 2005-02-19 Fernando Perez <fperez@colorado.edu>
2820 2005-02-19 Fernando Perez <fperez@colorado.edu>
2799
2821
2800 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2822 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2801 into keys (for prompts, for example).
2823 into keys (for prompts, for example).
2802
2824
2803 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2825 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2804 prompts in case users want them. This introduces a small behavior
2826 prompts in case users want them. This introduces a small behavior
2805 change: ipython does not automatically add a space to all prompts
2827 change: ipython does not automatically add a space to all prompts
2806 anymore. To get the old prompts with a space, users should add it
2828 anymore. To get the old prompts with a space, users should add it
2807 manually to their ipythonrc file, so for example prompt_in1 should
2829 manually to their ipythonrc file, so for example prompt_in1 should
2808 now read 'In [\#]: ' instead of 'In [\#]:'.
2830 now read 'In [\#]: ' instead of 'In [\#]:'.
2809 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2831 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2810 file) to control left-padding of secondary prompts.
2832 file) to control left-padding of secondary prompts.
2811
2833
2812 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2834 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2813 the profiler can't be imported. Fix for Debian, which removed
2835 the profiler can't be imported. Fix for Debian, which removed
2814 profile.py because of License issues. I applied a slightly
2836 profile.py because of License issues. I applied a slightly
2815 modified version of the original Debian patch at
2837 modified version of the original Debian patch at
2816 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2838 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2817
2839
2818 2005-02-17 Fernando Perez <fperez@colorado.edu>
2840 2005-02-17 Fernando Perez <fperez@colorado.edu>
2819
2841
2820 * IPython/genutils.py (native_line_ends): Fix bug which would
2842 * IPython/genutils.py (native_line_ends): Fix bug which would
2821 cause improper line-ends under win32 b/c I was not opening files
2843 cause improper line-ends under win32 b/c I was not opening files
2822 in binary mode. Bug report and fix thanks to Ville.
2844 in binary mode. Bug report and fix thanks to Ville.
2823
2845
2824 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2846 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2825 trying to catch spurious foo[1] autocalls. My fix actually broke
2847 trying to catch spurious foo[1] autocalls. My fix actually broke
2826 ',/' autoquote/call with explicit escape (bad regexp).
2848 ',/' autoquote/call with explicit escape (bad regexp).
2827
2849
2828 2005-02-15 *** Released version 0.6.11
2850 2005-02-15 *** Released version 0.6.11
2829
2851
2830 2005-02-14 Fernando Perez <fperez@colorado.edu>
2852 2005-02-14 Fernando Perez <fperez@colorado.edu>
2831
2853
2832 * IPython/background_jobs.py: New background job management
2854 * IPython/background_jobs.py: New background job management
2833 subsystem. This is implemented via a new set of classes, and
2855 subsystem. This is implemented via a new set of classes, and
2834 IPython now provides a builtin 'jobs' object for background job
2856 IPython now provides a builtin 'jobs' object for background job
2835 execution. A convenience %bg magic serves as a lightweight
2857 execution. A convenience %bg magic serves as a lightweight
2836 frontend for starting the more common type of calls. This was
2858 frontend for starting the more common type of calls. This was
2837 inspired by discussions with B. Granger and the BackgroundCommand
2859 inspired by discussions with B. Granger and the BackgroundCommand
2838 class described in the book Python Scripting for Computational
2860 class described in the book Python Scripting for Computational
2839 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2861 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2840 (although ultimately no code from this text was used, as IPython's
2862 (although ultimately no code from this text was used, as IPython's
2841 system is a separate implementation).
2863 system is a separate implementation).
2842
2864
2843 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2865 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2844 to control the completion of single/double underscore names
2866 to control the completion of single/double underscore names
2845 separately. As documented in the example ipytonrc file, the
2867 separately. As documented in the example ipytonrc file, the
2846 readline_omit__names variable can now be set to 2, to omit even
2868 readline_omit__names variable can now be set to 2, to omit even
2847 single underscore names. Thanks to a patch by Brian Wong
2869 single underscore names. Thanks to a patch by Brian Wong
2848 <BrianWong-AT-AirgoNetworks.Com>.
2870 <BrianWong-AT-AirgoNetworks.Com>.
2849 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2871 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2850 be autocalled as foo([1]) if foo were callable. A problem for
2872 be autocalled as foo([1]) if foo were callable. A problem for
2851 things which are both callable and implement __getitem__.
2873 things which are both callable and implement __getitem__.
2852 (init_readline): Fix autoindentation for win32. Thanks to a patch
2874 (init_readline): Fix autoindentation for win32. Thanks to a patch
2853 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2875 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2854
2876
2855 2005-02-12 Fernando Perez <fperez@colorado.edu>
2877 2005-02-12 Fernando Perez <fperez@colorado.edu>
2856
2878
2857 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2879 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2858 which I had written long ago to sort out user error messages which
2880 which I had written long ago to sort out user error messages which
2859 may occur during startup. This seemed like a good idea initially,
2881 may occur during startup. This seemed like a good idea initially,
2860 but it has proven a disaster in retrospect. I don't want to
2882 but it has proven a disaster in retrospect. I don't want to
2861 change much code for now, so my fix is to set the internal 'debug'
2883 change much code for now, so my fix is to set the internal 'debug'
2862 flag to true everywhere, whose only job was precisely to control
2884 flag to true everywhere, whose only job was precisely to control
2863 this subsystem. This closes issue 28 (as well as avoiding all
2885 this subsystem. This closes issue 28 (as well as avoiding all
2864 sorts of strange hangups which occur from time to time).
2886 sorts of strange hangups which occur from time to time).
2865
2887
2866 2005-02-07 Fernando Perez <fperez@colorado.edu>
2888 2005-02-07 Fernando Perez <fperez@colorado.edu>
2867
2889
2868 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2890 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2869 previous call produced a syntax error.
2891 previous call produced a syntax error.
2870
2892
2871 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2893 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2872 classes without constructor.
2894 classes without constructor.
2873
2895
2874 2005-02-06 Fernando Perez <fperez@colorado.edu>
2896 2005-02-06 Fernando Perez <fperez@colorado.edu>
2875
2897
2876 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2898 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2877 completions with the results of each matcher, so we return results
2899 completions with the results of each matcher, so we return results
2878 to the user from all namespaces. This breaks with ipython
2900 to the user from all namespaces. This breaks with ipython
2879 tradition, but I think it's a nicer behavior. Now you get all
2901 tradition, but I think it's a nicer behavior. Now you get all
2880 possible completions listed, from all possible namespaces (python,
2902 possible completions listed, from all possible namespaces (python,
2881 filesystem, magics...) After a request by John Hunter
2903 filesystem, magics...) After a request by John Hunter
2882 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2904 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2883
2905
2884 2005-02-05 Fernando Perez <fperez@colorado.edu>
2906 2005-02-05 Fernando Perez <fperez@colorado.edu>
2885
2907
2886 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2908 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2887 the call had quote characters in it (the quotes were stripped).
2909 the call had quote characters in it (the quotes were stripped).
2888
2910
2889 2005-01-31 Fernando Perez <fperez@colorado.edu>
2911 2005-01-31 Fernando Perez <fperez@colorado.edu>
2890
2912
2891 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2913 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2892 Itpl.itpl() to make the code more robust against psyco
2914 Itpl.itpl() to make the code more robust against psyco
2893 optimizations.
2915 optimizations.
2894
2916
2895 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2917 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2896 of causing an exception. Quicker, cleaner.
2918 of causing an exception. Quicker, cleaner.
2897
2919
2898 2005-01-28 Fernando Perez <fperez@colorado.edu>
2920 2005-01-28 Fernando Perez <fperez@colorado.edu>
2899
2921
2900 * scripts/ipython_win_post_install.py (install): hardcode
2922 * scripts/ipython_win_post_install.py (install): hardcode
2901 sys.prefix+'python.exe' as the executable path. It turns out that
2923 sys.prefix+'python.exe' as the executable path. It turns out that
2902 during the post-installation run, sys.executable resolves to the
2924 during the post-installation run, sys.executable resolves to the
2903 name of the binary installer! I should report this as a distutils
2925 name of the binary installer! I should report this as a distutils
2904 bug, I think. I updated the .10 release with this tiny fix, to
2926 bug, I think. I updated the .10 release with this tiny fix, to
2905 avoid annoying the lists further.
2927 avoid annoying the lists further.
2906
2928
2907 2005-01-27 *** Released version 0.6.10
2929 2005-01-27 *** Released version 0.6.10
2908
2930
2909 2005-01-27 Fernando Perez <fperez@colorado.edu>
2931 2005-01-27 Fernando Perez <fperez@colorado.edu>
2910
2932
2911 * IPython/numutils.py (norm): Added 'inf' as optional name for
2933 * IPython/numutils.py (norm): Added 'inf' as optional name for
2912 L-infinity norm, included references to mathworld.com for vector
2934 L-infinity norm, included references to mathworld.com for vector
2913 norm definitions.
2935 norm definitions.
2914 (amin/amax): added amin/amax for array min/max. Similar to what
2936 (amin/amax): added amin/amax for array min/max. Similar to what
2915 pylab ships with after the recent reorganization of names.
2937 pylab ships with after the recent reorganization of names.
2916 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2938 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2917
2939
2918 * ipython.el: committed Alex's recent fixes and improvements.
2940 * ipython.el: committed Alex's recent fixes and improvements.
2919 Tested with python-mode from CVS, and it looks excellent. Since
2941 Tested with python-mode from CVS, and it looks excellent. Since
2920 python-mode hasn't released anything in a while, I'm temporarily
2942 python-mode hasn't released anything in a while, I'm temporarily
2921 putting a copy of today's CVS (v 4.70) of python-mode in:
2943 putting a copy of today's CVS (v 4.70) of python-mode in:
2922 http://ipython.scipy.org/tmp/python-mode.el
2944 http://ipython.scipy.org/tmp/python-mode.el
2923
2945
2924 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2946 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2925 sys.executable for the executable name, instead of assuming it's
2947 sys.executable for the executable name, instead of assuming it's
2926 called 'python.exe' (the post-installer would have produced broken
2948 called 'python.exe' (the post-installer would have produced broken
2927 setups on systems with a differently named python binary).
2949 setups on systems with a differently named python binary).
2928
2950
2929 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2951 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2930 references to os.linesep, to make the code more
2952 references to os.linesep, to make the code more
2931 platform-independent. This is also part of the win32 coloring
2953 platform-independent. This is also part of the win32 coloring
2932 fixes.
2954 fixes.
2933
2955
2934 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2956 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2935 lines, which actually cause coloring bugs because the length of
2957 lines, which actually cause coloring bugs because the length of
2936 the line is very difficult to correctly compute with embedded
2958 the line is very difficult to correctly compute with embedded
2937 escapes. This was the source of all the coloring problems under
2959 escapes. This was the source of all the coloring problems under
2938 Win32. I think that _finally_, Win32 users have a properly
2960 Win32. I think that _finally_, Win32 users have a properly
2939 working ipython in all respects. This would never have happened
2961 working ipython in all respects. This would never have happened
2940 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2962 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2941
2963
2942 2005-01-26 *** Released version 0.6.9
2964 2005-01-26 *** Released version 0.6.9
2943
2965
2944 2005-01-25 Fernando Perez <fperez@colorado.edu>
2966 2005-01-25 Fernando Perez <fperez@colorado.edu>
2945
2967
2946 * setup.py: finally, we have a true Windows installer, thanks to
2968 * setup.py: finally, we have a true Windows installer, thanks to
2947 the excellent work of Viktor Ransmayr
2969 the excellent work of Viktor Ransmayr
2948 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2970 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2949 Windows users. The setup routine is quite a bit cleaner thanks to
2971 Windows users. The setup routine is quite a bit cleaner thanks to
2950 this, and the post-install script uses the proper functions to
2972 this, and the post-install script uses the proper functions to
2951 allow a clean de-installation using the standard Windows Control
2973 allow a clean de-installation using the standard Windows Control
2952 Panel.
2974 Panel.
2953
2975
2954 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2976 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2955 environment variable under all OSes (including win32) if
2977 environment variable under all OSes (including win32) if
2956 available. This will give consistency to win32 users who have set
2978 available. This will give consistency to win32 users who have set
2957 this variable for any reason. If os.environ['HOME'] fails, the
2979 this variable for any reason. If os.environ['HOME'] fails, the
2958 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2980 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2959
2981
2960 2005-01-24 Fernando Perez <fperez@colorado.edu>
2982 2005-01-24 Fernando Perez <fperez@colorado.edu>
2961
2983
2962 * IPython/numutils.py (empty_like): add empty_like(), similar to
2984 * IPython/numutils.py (empty_like): add empty_like(), similar to
2963 zeros_like() but taking advantage of the new empty() Numeric routine.
2985 zeros_like() but taking advantage of the new empty() Numeric routine.
2964
2986
2965 2005-01-23 *** Released version 0.6.8
2987 2005-01-23 *** Released version 0.6.8
2966
2988
2967 2005-01-22 Fernando Perez <fperez@colorado.edu>
2989 2005-01-22 Fernando Perez <fperez@colorado.edu>
2968
2990
2969 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2991 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2970 automatic show() calls. After discussing things with JDH, it
2992 automatic show() calls. After discussing things with JDH, it
2971 turns out there are too many corner cases where this can go wrong.
2993 turns out there are too many corner cases where this can go wrong.
2972 It's best not to try to be 'too smart', and simply have ipython
2994 It's best not to try to be 'too smart', and simply have ipython
2973 reproduce as much as possible the default behavior of a normal
2995 reproduce as much as possible the default behavior of a normal
2974 python shell.
2996 python shell.
2975
2997
2976 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2998 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2977 line-splitting regexp and _prefilter() to avoid calling getattr()
2999 line-splitting regexp and _prefilter() to avoid calling getattr()
2978 on assignments. This closes
3000 on assignments. This closes
2979 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3001 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2980 readline uses getattr(), so a simple <TAB> keypress is still
3002 readline uses getattr(), so a simple <TAB> keypress is still
2981 enough to trigger getattr() calls on an object.
3003 enough to trigger getattr() calls on an object.
2982
3004
2983 2005-01-21 Fernando Perez <fperez@colorado.edu>
3005 2005-01-21 Fernando Perez <fperez@colorado.edu>
2984
3006
2985 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3007 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2986 docstring under pylab so it doesn't mask the original.
3008 docstring under pylab so it doesn't mask the original.
2987
3009
2988 2005-01-21 *** Released version 0.6.7
3010 2005-01-21 *** Released version 0.6.7
2989
3011
2990 2005-01-21 Fernando Perez <fperez@colorado.edu>
3012 2005-01-21 Fernando Perez <fperez@colorado.edu>
2991
3013
2992 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3014 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2993 signal handling for win32 users in multithreaded mode.
3015 signal handling for win32 users in multithreaded mode.
2994
3016
2995 2005-01-17 Fernando Perez <fperez@colorado.edu>
3017 2005-01-17 Fernando Perez <fperez@colorado.edu>
2996
3018
2997 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3019 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2998 instances with no __init__. After a crash report by Norbert Nemec
3020 instances with no __init__. After a crash report by Norbert Nemec
2999 <Norbert-AT-nemec-online.de>.
3021 <Norbert-AT-nemec-online.de>.
3000
3022
3001 2005-01-14 Fernando Perez <fperez@colorado.edu>
3023 2005-01-14 Fernando Perez <fperez@colorado.edu>
3002
3024
3003 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3025 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3004 names for verbose exceptions, when multiple dotted names and the
3026 names for verbose exceptions, when multiple dotted names and the
3005 'parent' object were present on the same line.
3027 'parent' object were present on the same line.
3006
3028
3007 2005-01-11 Fernando Perez <fperez@colorado.edu>
3029 2005-01-11 Fernando Perez <fperez@colorado.edu>
3008
3030
3009 * IPython/genutils.py (flag_calls): new utility to trap and flag
3031 * IPython/genutils.py (flag_calls): new utility to trap and flag
3010 calls in functions. I need it to clean up matplotlib support.
3032 calls in functions. I need it to clean up matplotlib support.
3011 Also removed some deprecated code in genutils.
3033 Also removed some deprecated code in genutils.
3012
3034
3013 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3035 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3014 that matplotlib scripts called with %run, which don't call show()
3036 that matplotlib scripts called with %run, which don't call show()
3015 themselves, still have their plotting windows open.
3037 themselves, still have their plotting windows open.
3016
3038
3017 2005-01-05 Fernando Perez <fperez@colorado.edu>
3039 2005-01-05 Fernando Perez <fperez@colorado.edu>
3018
3040
3019 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3041 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3020 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3042 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3021
3043
3022 2004-12-19 Fernando Perez <fperez@colorado.edu>
3044 2004-12-19 Fernando Perez <fperez@colorado.edu>
3023
3045
3024 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3046 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3025 parent_runcode, which was an eyesore. The same result can be
3047 parent_runcode, which was an eyesore. The same result can be
3026 obtained with Python's regular superclass mechanisms.
3048 obtained with Python's regular superclass mechanisms.
3027
3049
3028 2004-12-17 Fernando Perez <fperez@colorado.edu>
3050 2004-12-17 Fernando Perez <fperez@colorado.edu>
3029
3051
3030 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3052 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3031 reported by Prabhu.
3053 reported by Prabhu.
3032 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3054 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3033 sys.stderr) instead of explicitly calling sys.stderr. This helps
3055 sys.stderr) instead of explicitly calling sys.stderr. This helps
3034 maintain our I/O abstractions clean, for future GUI embeddings.
3056 maintain our I/O abstractions clean, for future GUI embeddings.
3035
3057
3036 * IPython/genutils.py (info): added new utility for sys.stderr
3058 * IPython/genutils.py (info): added new utility for sys.stderr
3037 unified info message handling (thin wrapper around warn()).
3059 unified info message handling (thin wrapper around warn()).
3038
3060
3039 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3061 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3040 composite (dotted) names on verbose exceptions.
3062 composite (dotted) names on verbose exceptions.
3041 (VerboseTB.nullrepr): harden against another kind of errors which
3063 (VerboseTB.nullrepr): harden against another kind of errors which
3042 Python's inspect module can trigger, and which were crashing
3064 Python's inspect module can trigger, and which were crashing
3043 IPython. Thanks to a report by Marco Lombardi
3065 IPython. Thanks to a report by Marco Lombardi
3044 <mlombard-AT-ma010192.hq.eso.org>.
3066 <mlombard-AT-ma010192.hq.eso.org>.
3045
3067
3046 2004-12-13 *** Released version 0.6.6
3068 2004-12-13 *** Released version 0.6.6
3047
3069
3048 2004-12-12 Fernando Perez <fperez@colorado.edu>
3070 2004-12-12 Fernando Perez <fperez@colorado.edu>
3049
3071
3050 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3072 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3051 generated by pygtk upon initialization if it was built without
3073 generated by pygtk upon initialization if it was built without
3052 threads (for matplotlib users). After a crash reported by
3074 threads (for matplotlib users). After a crash reported by
3053 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3075 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3054
3076
3055 * IPython/ipmaker.py (make_IPython): fix small bug in the
3077 * IPython/ipmaker.py (make_IPython): fix small bug in the
3056 import_some parameter for multiple imports.
3078 import_some parameter for multiple imports.
3057
3079
3058 * IPython/iplib.py (ipmagic): simplified the interface of
3080 * IPython/iplib.py (ipmagic): simplified the interface of
3059 ipmagic() to take a single string argument, just as it would be
3081 ipmagic() to take a single string argument, just as it would be
3060 typed at the IPython cmd line.
3082 typed at the IPython cmd line.
3061 (ipalias): Added new ipalias() with an interface identical to
3083 (ipalias): Added new ipalias() with an interface identical to
3062 ipmagic(). This completes exposing a pure python interface to the
3084 ipmagic(). This completes exposing a pure python interface to the
3063 alias and magic system, which can be used in loops or more complex
3085 alias and magic system, which can be used in loops or more complex
3064 code where IPython's automatic line mangling is not active.
3086 code where IPython's automatic line mangling is not active.
3065
3087
3066 * IPython/genutils.py (timing): changed interface of timing to
3088 * IPython/genutils.py (timing): changed interface of timing to
3067 simply run code once, which is the most common case. timings()
3089 simply run code once, which is the most common case. timings()
3068 remains unchanged, for the cases where you want multiple runs.
3090 remains unchanged, for the cases where you want multiple runs.
3069
3091
3070 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3092 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3071 bug where Python2.2 crashes with exec'ing code which does not end
3093 bug where Python2.2 crashes with exec'ing code which does not end
3072 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3094 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3073 before.
3095 before.
3074
3096
3075 2004-12-10 Fernando Perez <fperez@colorado.edu>
3097 2004-12-10 Fernando Perez <fperez@colorado.edu>
3076
3098
3077 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3099 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3078 -t to -T, to accomodate the new -t flag in %run (the %run and
3100 -t to -T, to accomodate the new -t flag in %run (the %run and
3079 %prun options are kind of intermixed, and it's not easy to change
3101 %prun options are kind of intermixed, and it's not easy to change
3080 this with the limitations of python's getopt).
3102 this with the limitations of python's getopt).
3081
3103
3082 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3104 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3083 the execution of scripts. It's not as fine-tuned as timeit.py,
3105 the execution of scripts. It's not as fine-tuned as timeit.py,
3084 but it works from inside ipython (and under 2.2, which lacks
3106 but it works from inside ipython (and under 2.2, which lacks
3085 timeit.py). Optionally a number of runs > 1 can be given for
3107 timeit.py). Optionally a number of runs > 1 can be given for
3086 timing very short-running code.
3108 timing very short-running code.
3087
3109
3088 * IPython/genutils.py (uniq_stable): new routine which returns a
3110 * IPython/genutils.py (uniq_stable): new routine which returns a
3089 list of unique elements in any iterable, but in stable order of
3111 list of unique elements in any iterable, but in stable order of
3090 appearance. I needed this for the ultraTB fixes, and it's a handy
3112 appearance. I needed this for the ultraTB fixes, and it's a handy
3091 utility.
3113 utility.
3092
3114
3093 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3115 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3094 dotted names in Verbose exceptions. This had been broken since
3116 dotted names in Verbose exceptions. This had been broken since
3095 the very start, now x.y will properly be printed in a Verbose
3117 the very start, now x.y will properly be printed in a Verbose
3096 traceback, instead of x being shown and y appearing always as an
3118 traceback, instead of x being shown and y appearing always as an
3097 'undefined global'. Getting this to work was a bit tricky,
3119 'undefined global'. Getting this to work was a bit tricky,
3098 because by default python tokenizers are stateless. Saved by
3120 because by default python tokenizers are stateless. Saved by
3099 python's ability to easily add a bit of state to an arbitrary
3121 python's ability to easily add a bit of state to an arbitrary
3100 function (without needing to build a full-blown callable object).
3122 function (without needing to build a full-blown callable object).
3101
3123
3102 Also big cleanup of this code, which had horrendous runtime
3124 Also big cleanup of this code, which had horrendous runtime
3103 lookups of zillions of attributes for colorization. Moved all
3125 lookups of zillions of attributes for colorization. Moved all
3104 this code into a few templates, which make it cleaner and quicker.
3126 this code into a few templates, which make it cleaner and quicker.
3105
3127
3106 Printout quality was also improved for Verbose exceptions: one
3128 Printout quality was also improved for Verbose exceptions: one
3107 variable per line, and memory addresses are printed (this can be
3129 variable per line, and memory addresses are printed (this can be
3108 quite handy in nasty debugging situations, which is what Verbose
3130 quite handy in nasty debugging situations, which is what Verbose
3109 is for).
3131 is for).
3110
3132
3111 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3133 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3112 the command line as scripts to be loaded by embedded instances.
3134 the command line as scripts to be loaded by embedded instances.
3113 Doing so has the potential for an infinite recursion if there are
3135 Doing so has the potential for an infinite recursion if there are
3114 exceptions thrown in the process. This fixes a strange crash
3136 exceptions thrown in the process. This fixes a strange crash
3115 reported by Philippe MULLER <muller-AT-irit.fr>.
3137 reported by Philippe MULLER <muller-AT-irit.fr>.
3116
3138
3117 2004-12-09 Fernando Perez <fperez@colorado.edu>
3139 2004-12-09 Fernando Perez <fperez@colorado.edu>
3118
3140
3119 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3141 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3120 to reflect new names in matplotlib, which now expose the
3142 to reflect new names in matplotlib, which now expose the
3121 matlab-compatible interface via a pylab module instead of the
3143 matlab-compatible interface via a pylab module instead of the
3122 'matlab' name. The new code is backwards compatible, so users of
3144 'matlab' name. The new code is backwards compatible, so users of
3123 all matplotlib versions are OK. Patch by J. Hunter.
3145 all matplotlib versions are OK. Patch by J. Hunter.
3124
3146
3125 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3147 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3126 of __init__ docstrings for instances (class docstrings are already
3148 of __init__ docstrings for instances (class docstrings are already
3127 automatically printed). Instances with customized docstrings
3149 automatically printed). Instances with customized docstrings
3128 (indep. of the class) are also recognized and all 3 separate
3150 (indep. of the class) are also recognized and all 3 separate
3129 docstrings are printed (instance, class, constructor). After some
3151 docstrings are printed (instance, class, constructor). After some
3130 comments/suggestions by J. Hunter.
3152 comments/suggestions by J. Hunter.
3131
3153
3132 2004-12-05 Fernando Perez <fperez@colorado.edu>
3154 2004-12-05 Fernando Perez <fperez@colorado.edu>
3133
3155
3134 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3156 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3135 warnings when tab-completion fails and triggers an exception.
3157 warnings when tab-completion fails and triggers an exception.
3136
3158
3137 2004-12-03 Fernando Perez <fperez@colorado.edu>
3159 2004-12-03 Fernando Perez <fperez@colorado.edu>
3138
3160
3139 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3161 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3140 be triggered when using 'run -p'. An incorrect option flag was
3162 be triggered when using 'run -p'. An incorrect option flag was
3141 being set ('d' instead of 'D').
3163 being set ('d' instead of 'D').
3142 (manpage): fix missing escaped \- sign.
3164 (manpage): fix missing escaped \- sign.
3143
3165
3144 2004-11-30 *** Released version 0.6.5
3166 2004-11-30 *** Released version 0.6.5
3145
3167
3146 2004-11-30 Fernando Perez <fperez@colorado.edu>
3168 2004-11-30 Fernando Perez <fperez@colorado.edu>
3147
3169
3148 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3170 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3149 setting with -d option.
3171 setting with -d option.
3150
3172
3151 * setup.py (docfiles): Fix problem where the doc glob I was using
3173 * setup.py (docfiles): Fix problem where the doc glob I was using
3152 was COMPLETELY BROKEN. It was giving the right files by pure
3174 was COMPLETELY BROKEN. It was giving the right files by pure
3153 accident, but failed once I tried to include ipython.el. Note:
3175 accident, but failed once I tried to include ipython.el. Note:
3154 glob() does NOT allow you to do exclusion on multiple endings!
3176 glob() does NOT allow you to do exclusion on multiple endings!
3155
3177
3156 2004-11-29 Fernando Perez <fperez@colorado.edu>
3178 2004-11-29 Fernando Perez <fperez@colorado.edu>
3157
3179
3158 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3180 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3159 the manpage as the source. Better formatting & consistency.
3181 the manpage as the source. Better formatting & consistency.
3160
3182
3161 * IPython/Magic.py (magic_run): Added new -d option, to run
3183 * IPython/Magic.py (magic_run): Added new -d option, to run
3162 scripts under the control of the python pdb debugger. Note that
3184 scripts under the control of the python pdb debugger. Note that
3163 this required changing the %prun option -d to -D, to avoid a clash
3185 this required changing the %prun option -d to -D, to avoid a clash
3164 (since %run must pass options to %prun, and getopt is too dumb to
3186 (since %run must pass options to %prun, and getopt is too dumb to
3165 handle options with string values with embedded spaces). Thanks
3187 handle options with string values with embedded spaces). Thanks
3166 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3188 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3167 (magic_who_ls): added type matching to %who and %whos, so that one
3189 (magic_who_ls): added type matching to %who and %whos, so that one
3168 can filter their output to only include variables of certain
3190 can filter their output to only include variables of certain
3169 types. Another suggestion by Matthew.
3191 types. Another suggestion by Matthew.
3170 (magic_whos): Added memory summaries in kb and Mb for arrays.
3192 (magic_whos): Added memory summaries in kb and Mb for arrays.
3171 (magic_who): Improve formatting (break lines every 9 vars).
3193 (magic_who): Improve formatting (break lines every 9 vars).
3172
3194
3173 2004-11-28 Fernando Perez <fperez@colorado.edu>
3195 2004-11-28 Fernando Perez <fperez@colorado.edu>
3174
3196
3175 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3197 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3176 cache when empty lines were present.
3198 cache when empty lines were present.
3177
3199
3178 2004-11-24 Fernando Perez <fperez@colorado.edu>
3200 2004-11-24 Fernando Perez <fperez@colorado.edu>
3179
3201
3180 * IPython/usage.py (__doc__): document the re-activated threading
3202 * IPython/usage.py (__doc__): document the re-activated threading
3181 options for WX and GTK.
3203 options for WX and GTK.
3182
3204
3183 2004-11-23 Fernando Perez <fperez@colorado.edu>
3205 2004-11-23 Fernando Perez <fperez@colorado.edu>
3184
3206
3185 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3207 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3186 the -wthread and -gthread options, along with a new -tk one to try
3208 the -wthread and -gthread options, along with a new -tk one to try
3187 and coordinate Tk threading with wx/gtk. The tk support is very
3209 and coordinate Tk threading with wx/gtk. The tk support is very
3188 platform dependent, since it seems to require Tcl and Tk to be
3210 platform dependent, since it seems to require Tcl and Tk to be
3189 built with threads (Fedora1/2 appears NOT to have it, but in
3211 built with threads (Fedora1/2 appears NOT to have it, but in
3190 Prabhu's Debian boxes it works OK). But even with some Tk
3212 Prabhu's Debian boxes it works OK). But even with some Tk
3191 limitations, this is a great improvement.
3213 limitations, this is a great improvement.
3192
3214
3193 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3215 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3194 info in user prompts. Patch by Prabhu.
3216 info in user prompts. Patch by Prabhu.
3195
3217
3196 2004-11-18 Fernando Perez <fperez@colorado.edu>
3218 2004-11-18 Fernando Perez <fperez@colorado.edu>
3197
3219
3198 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3220 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3199 EOFErrors and bail, to avoid infinite loops if a non-terminating
3221 EOFErrors and bail, to avoid infinite loops if a non-terminating
3200 file is fed into ipython. Patch submitted in issue 19 by user,
3222 file is fed into ipython. Patch submitted in issue 19 by user,
3201 many thanks.
3223 many thanks.
3202
3224
3203 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3225 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3204 autoquote/parens in continuation prompts, which can cause lots of
3226 autoquote/parens in continuation prompts, which can cause lots of
3205 problems. Closes roundup issue 20.
3227 problems. Closes roundup issue 20.
3206
3228
3207 2004-11-17 Fernando Perez <fperez@colorado.edu>
3229 2004-11-17 Fernando Perez <fperez@colorado.edu>
3208
3230
3209 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3231 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3210 reported as debian bug #280505. I'm not sure my local changelog
3232 reported as debian bug #280505. I'm not sure my local changelog
3211 entry has the proper debian format (Jack?).
3233 entry has the proper debian format (Jack?).
3212
3234
3213 2004-11-08 *** Released version 0.6.4
3235 2004-11-08 *** Released version 0.6.4
3214
3236
3215 2004-11-08 Fernando Perez <fperez@colorado.edu>
3237 2004-11-08 Fernando Perez <fperez@colorado.edu>
3216
3238
3217 * IPython/iplib.py (init_readline): Fix exit message for Windows
3239 * IPython/iplib.py (init_readline): Fix exit message for Windows
3218 when readline is active. Thanks to a report by Eric Jones
3240 when readline is active. Thanks to a report by Eric Jones
3219 <eric-AT-enthought.com>.
3241 <eric-AT-enthought.com>.
3220
3242
3221 2004-11-07 Fernando Perez <fperez@colorado.edu>
3243 2004-11-07 Fernando Perez <fperez@colorado.edu>
3222
3244
3223 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3245 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3224 sometimes seen by win2k/cygwin users.
3246 sometimes seen by win2k/cygwin users.
3225
3247
3226 2004-11-06 Fernando Perez <fperez@colorado.edu>
3248 2004-11-06 Fernando Perez <fperez@colorado.edu>
3227
3249
3228 * IPython/iplib.py (interact): Change the handling of %Exit from
3250 * IPython/iplib.py (interact): Change the handling of %Exit from
3229 trying to propagate a SystemExit to an internal ipython flag.
3251 trying to propagate a SystemExit to an internal ipython flag.
3230 This is less elegant than using Python's exception mechanism, but
3252 This is less elegant than using Python's exception mechanism, but
3231 I can't get that to work reliably with threads, so under -pylab
3253 I can't get that to work reliably with threads, so under -pylab
3232 %Exit was hanging IPython. Cross-thread exception handling is
3254 %Exit was hanging IPython. Cross-thread exception handling is
3233 really a bitch. Thaks to a bug report by Stephen Walton
3255 really a bitch. Thaks to a bug report by Stephen Walton
3234 <stephen.walton-AT-csun.edu>.
3256 <stephen.walton-AT-csun.edu>.
3235
3257
3236 2004-11-04 Fernando Perez <fperez@colorado.edu>
3258 2004-11-04 Fernando Perez <fperez@colorado.edu>
3237
3259
3238 * IPython/iplib.py (raw_input_original): store a pointer to the
3260 * IPython/iplib.py (raw_input_original): store a pointer to the
3239 true raw_input to harden against code which can modify it
3261 true raw_input to harden against code which can modify it
3240 (wx.py.PyShell does this and would otherwise crash ipython).
3262 (wx.py.PyShell does this and would otherwise crash ipython).
3241 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3263 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3242
3264
3243 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3265 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3244 Ctrl-C problem, which does not mess up the input line.
3266 Ctrl-C problem, which does not mess up the input line.
3245
3267
3246 2004-11-03 Fernando Perez <fperez@colorado.edu>
3268 2004-11-03 Fernando Perez <fperez@colorado.edu>
3247
3269
3248 * IPython/Release.py: Changed licensing to BSD, in all files.
3270 * IPython/Release.py: Changed licensing to BSD, in all files.
3249 (name): lowercase name for tarball/RPM release.
3271 (name): lowercase name for tarball/RPM release.
3250
3272
3251 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3273 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3252 use throughout ipython.
3274 use throughout ipython.
3253
3275
3254 * IPython/Magic.py (Magic._ofind): Switch to using the new
3276 * IPython/Magic.py (Magic._ofind): Switch to using the new
3255 OInspect.getdoc() function.
3277 OInspect.getdoc() function.
3256
3278
3257 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3279 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3258 of the line currently being canceled via Ctrl-C. It's extremely
3280 of the line currently being canceled via Ctrl-C. It's extremely
3259 ugly, but I don't know how to do it better (the problem is one of
3281 ugly, but I don't know how to do it better (the problem is one of
3260 handling cross-thread exceptions).
3282 handling cross-thread exceptions).
3261
3283
3262 2004-10-28 Fernando Perez <fperez@colorado.edu>
3284 2004-10-28 Fernando Perez <fperez@colorado.edu>
3263
3285
3264 * IPython/Shell.py (signal_handler): add signal handlers to trap
3286 * IPython/Shell.py (signal_handler): add signal handlers to trap
3265 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3287 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3266 report by Francesc Alted.
3288 report by Francesc Alted.
3267
3289
3268 2004-10-21 Fernando Perez <fperez@colorado.edu>
3290 2004-10-21 Fernando Perez <fperez@colorado.edu>
3269
3291
3270 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3292 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3271 to % for pysh syntax extensions.
3293 to % for pysh syntax extensions.
3272
3294
3273 2004-10-09 Fernando Perez <fperez@colorado.edu>
3295 2004-10-09 Fernando Perez <fperez@colorado.edu>
3274
3296
3275 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3297 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3276 arrays to print a more useful summary, without calling str(arr).
3298 arrays to print a more useful summary, without calling str(arr).
3277 This avoids the problem of extremely lengthy computations which
3299 This avoids the problem of extremely lengthy computations which
3278 occur if arr is large, and appear to the user as a system lockup
3300 occur if arr is large, and appear to the user as a system lockup
3279 with 100% cpu activity. After a suggestion by Kristian Sandberg
3301 with 100% cpu activity. After a suggestion by Kristian Sandberg
3280 <Kristian.Sandberg@colorado.edu>.
3302 <Kristian.Sandberg@colorado.edu>.
3281 (Magic.__init__): fix bug in global magic escapes not being
3303 (Magic.__init__): fix bug in global magic escapes not being
3282 correctly set.
3304 correctly set.
3283
3305
3284 2004-10-08 Fernando Perez <fperez@colorado.edu>
3306 2004-10-08 Fernando Perez <fperez@colorado.edu>
3285
3307
3286 * IPython/Magic.py (__license__): change to absolute imports of
3308 * IPython/Magic.py (__license__): change to absolute imports of
3287 ipython's own internal packages, to start adapting to the absolute
3309 ipython's own internal packages, to start adapting to the absolute
3288 import requirement of PEP-328.
3310 import requirement of PEP-328.
3289
3311
3290 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3312 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3291 files, and standardize author/license marks through the Release
3313 files, and standardize author/license marks through the Release
3292 module instead of having per/file stuff (except for files with
3314 module instead of having per/file stuff (except for files with
3293 particular licenses, like the MIT/PSF-licensed codes).
3315 particular licenses, like the MIT/PSF-licensed codes).
3294
3316
3295 * IPython/Debugger.py: remove dead code for python 2.1
3317 * IPython/Debugger.py: remove dead code for python 2.1
3296
3318
3297 2004-10-04 Fernando Perez <fperez@colorado.edu>
3319 2004-10-04 Fernando Perez <fperez@colorado.edu>
3298
3320
3299 * IPython/iplib.py (ipmagic): New function for accessing magics
3321 * IPython/iplib.py (ipmagic): New function for accessing magics
3300 via a normal python function call.
3322 via a normal python function call.
3301
3323
3302 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3324 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3303 from '@' to '%', to accomodate the new @decorator syntax of python
3325 from '@' to '%', to accomodate the new @decorator syntax of python
3304 2.4.
3326 2.4.
3305
3327
3306 2004-09-29 Fernando Perez <fperez@colorado.edu>
3328 2004-09-29 Fernando Perez <fperez@colorado.edu>
3307
3329
3308 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3330 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3309 matplotlib.use to prevent running scripts which try to switch
3331 matplotlib.use to prevent running scripts which try to switch
3310 interactive backends from within ipython. This will just crash
3332 interactive backends from within ipython. This will just crash
3311 the python interpreter, so we can't allow it (but a detailed error
3333 the python interpreter, so we can't allow it (but a detailed error
3312 is given to the user).
3334 is given to the user).
3313
3335
3314 2004-09-28 Fernando Perez <fperez@colorado.edu>
3336 2004-09-28 Fernando Perez <fperez@colorado.edu>
3315
3337
3316 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3338 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3317 matplotlib-related fixes so that using @run with non-matplotlib
3339 matplotlib-related fixes so that using @run with non-matplotlib
3318 scripts doesn't pop up spurious plot windows. This requires
3340 scripts doesn't pop up spurious plot windows. This requires
3319 matplotlib >= 0.63, where I had to make some changes as well.
3341 matplotlib >= 0.63, where I had to make some changes as well.
3320
3342
3321 * IPython/ipmaker.py (make_IPython): update version requirement to
3343 * IPython/ipmaker.py (make_IPython): update version requirement to
3322 python 2.2.
3344 python 2.2.
3323
3345
3324 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3346 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3325 banner arg for embedded customization.
3347 banner arg for embedded customization.
3326
3348
3327 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3349 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3328 explicit uses of __IP as the IPython's instance name. Now things
3350 explicit uses of __IP as the IPython's instance name. Now things
3329 are properly handled via the shell.name value. The actual code
3351 are properly handled via the shell.name value. The actual code
3330 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3352 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3331 is much better than before. I'll clean things completely when the
3353 is much better than before. I'll clean things completely when the
3332 magic stuff gets a real overhaul.
3354 magic stuff gets a real overhaul.
3333
3355
3334 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3356 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3335 minor changes to debian dir.
3357 minor changes to debian dir.
3336
3358
3337 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3359 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3338 pointer to the shell itself in the interactive namespace even when
3360 pointer to the shell itself in the interactive namespace even when
3339 a user-supplied dict is provided. This is needed for embedding
3361 a user-supplied dict is provided. This is needed for embedding
3340 purposes (found by tests with Michel Sanner).
3362 purposes (found by tests with Michel Sanner).
3341
3363
3342 2004-09-27 Fernando Perez <fperez@colorado.edu>
3364 2004-09-27 Fernando Perez <fperez@colorado.edu>
3343
3365
3344 * IPython/UserConfig/ipythonrc: remove []{} from
3366 * IPython/UserConfig/ipythonrc: remove []{} from
3345 readline_remove_delims, so that things like [modname.<TAB> do
3367 readline_remove_delims, so that things like [modname.<TAB> do
3346 proper completion. This disables [].TAB, but that's a less common
3368 proper completion. This disables [].TAB, but that's a less common
3347 case than module names in list comprehensions, for example.
3369 case than module names in list comprehensions, for example.
3348 Thanks to a report by Andrea Riciputi.
3370 Thanks to a report by Andrea Riciputi.
3349
3371
3350 2004-09-09 Fernando Perez <fperez@colorado.edu>
3372 2004-09-09 Fernando Perez <fperez@colorado.edu>
3351
3373
3352 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3374 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3353 blocking problems in win32 and osx. Fix by John.
3375 blocking problems in win32 and osx. Fix by John.
3354
3376
3355 2004-09-08 Fernando Perez <fperez@colorado.edu>
3377 2004-09-08 Fernando Perez <fperez@colorado.edu>
3356
3378
3357 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3379 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3358 for Win32 and OSX. Fix by John Hunter.
3380 for Win32 and OSX. Fix by John Hunter.
3359
3381
3360 2004-08-30 *** Released version 0.6.3
3382 2004-08-30 *** Released version 0.6.3
3361
3383
3362 2004-08-30 Fernando Perez <fperez@colorado.edu>
3384 2004-08-30 Fernando Perez <fperez@colorado.edu>
3363
3385
3364 * setup.py (isfile): Add manpages to list of dependent files to be
3386 * setup.py (isfile): Add manpages to list of dependent files to be
3365 updated.
3387 updated.
3366
3388
3367 2004-08-27 Fernando Perez <fperez@colorado.edu>
3389 2004-08-27 Fernando Perez <fperez@colorado.edu>
3368
3390
3369 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3391 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3370 for now. They don't really work with standalone WX/GTK code
3392 for now. They don't really work with standalone WX/GTK code
3371 (though matplotlib IS working fine with both of those backends).
3393 (though matplotlib IS working fine with both of those backends).
3372 This will neeed much more testing. I disabled most things with
3394 This will neeed much more testing. I disabled most things with
3373 comments, so turning it back on later should be pretty easy.
3395 comments, so turning it back on later should be pretty easy.
3374
3396
3375 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3397 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3376 autocalling of expressions like r'foo', by modifying the line
3398 autocalling of expressions like r'foo', by modifying the line
3377 split regexp. Closes
3399 split regexp. Closes
3378 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3400 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3379 Riley <ipythonbugs-AT-sabi.net>.
3401 Riley <ipythonbugs-AT-sabi.net>.
3380 (InteractiveShell.mainloop): honor --nobanner with banner
3402 (InteractiveShell.mainloop): honor --nobanner with banner
3381 extensions.
3403 extensions.
3382
3404
3383 * IPython/Shell.py: Significant refactoring of all classes, so
3405 * IPython/Shell.py: Significant refactoring of all classes, so
3384 that we can really support ALL matplotlib backends and threading
3406 that we can really support ALL matplotlib backends and threading
3385 models (John spotted a bug with Tk which required this). Now we
3407 models (John spotted a bug with Tk which required this). Now we
3386 should support single-threaded, WX-threads and GTK-threads, both
3408 should support single-threaded, WX-threads and GTK-threads, both
3387 for generic code and for matplotlib.
3409 for generic code and for matplotlib.
3388
3410
3389 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3411 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3390 -pylab, to simplify things for users. Will also remove the pylab
3412 -pylab, to simplify things for users. Will also remove the pylab
3391 profile, since now all of matplotlib configuration is directly
3413 profile, since now all of matplotlib configuration is directly
3392 handled here. This also reduces startup time.
3414 handled here. This also reduces startup time.
3393
3415
3394 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3416 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3395 shell wasn't being correctly called. Also in IPShellWX.
3417 shell wasn't being correctly called. Also in IPShellWX.
3396
3418
3397 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3419 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3398 fine-tune banner.
3420 fine-tune banner.
3399
3421
3400 * IPython/numutils.py (spike): Deprecate these spike functions,
3422 * IPython/numutils.py (spike): Deprecate these spike functions,
3401 delete (long deprecated) gnuplot_exec handler.
3423 delete (long deprecated) gnuplot_exec handler.
3402
3424
3403 2004-08-26 Fernando Perez <fperez@colorado.edu>
3425 2004-08-26 Fernando Perez <fperez@colorado.edu>
3404
3426
3405 * ipython.1: Update for threading options, plus some others which
3427 * ipython.1: Update for threading options, plus some others which
3406 were missing.
3428 were missing.
3407
3429
3408 * IPython/ipmaker.py (__call__): Added -wthread option for
3430 * IPython/ipmaker.py (__call__): Added -wthread option for
3409 wxpython thread handling. Make sure threading options are only
3431 wxpython thread handling. Make sure threading options are only
3410 valid at the command line.
3432 valid at the command line.
3411
3433
3412 * scripts/ipython: moved shell selection into a factory function
3434 * scripts/ipython: moved shell selection into a factory function
3413 in Shell.py, to keep the starter script to a minimum.
3435 in Shell.py, to keep the starter script to a minimum.
3414
3436
3415 2004-08-25 Fernando Perez <fperez@colorado.edu>
3437 2004-08-25 Fernando Perez <fperez@colorado.edu>
3416
3438
3417 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3439 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3418 John. Along with some recent changes he made to matplotlib, the
3440 John. Along with some recent changes he made to matplotlib, the
3419 next versions of both systems should work very well together.
3441 next versions of both systems should work very well together.
3420
3442
3421 2004-08-24 Fernando Perez <fperez@colorado.edu>
3443 2004-08-24 Fernando Perez <fperez@colorado.edu>
3422
3444
3423 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3445 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3424 tried to switch the profiling to using hotshot, but I'm getting
3446 tried to switch the profiling to using hotshot, but I'm getting
3425 strange errors from prof.runctx() there. I may be misreading the
3447 strange errors from prof.runctx() there. I may be misreading the
3426 docs, but it looks weird. For now the profiling code will
3448 docs, but it looks weird. For now the profiling code will
3427 continue to use the standard profiler.
3449 continue to use the standard profiler.
3428
3450
3429 2004-08-23 Fernando Perez <fperez@colorado.edu>
3451 2004-08-23 Fernando Perez <fperez@colorado.edu>
3430
3452
3431 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3453 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3432 threaded shell, by John Hunter. It's not quite ready yet, but
3454 threaded shell, by John Hunter. It's not quite ready yet, but
3433 close.
3455 close.
3434
3456
3435 2004-08-22 Fernando Perez <fperez@colorado.edu>
3457 2004-08-22 Fernando Perez <fperez@colorado.edu>
3436
3458
3437 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3459 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3438 in Magic and ultraTB.
3460 in Magic and ultraTB.
3439
3461
3440 * ipython.1: document threading options in manpage.
3462 * ipython.1: document threading options in manpage.
3441
3463
3442 * scripts/ipython: Changed name of -thread option to -gthread,
3464 * scripts/ipython: Changed name of -thread option to -gthread,
3443 since this is GTK specific. I want to leave the door open for a
3465 since this is GTK specific. I want to leave the door open for a
3444 -wthread option for WX, which will most likely be necessary. This
3466 -wthread option for WX, which will most likely be necessary. This
3445 change affects usage and ipmaker as well.
3467 change affects usage and ipmaker as well.
3446
3468
3447 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3469 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3448 handle the matplotlib shell issues. Code by John Hunter
3470 handle the matplotlib shell issues. Code by John Hunter
3449 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3471 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3450 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3472 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3451 broken (and disabled for end users) for now, but it puts the
3473 broken (and disabled for end users) for now, but it puts the
3452 infrastructure in place.
3474 infrastructure in place.
3453
3475
3454 2004-08-21 Fernando Perez <fperez@colorado.edu>
3476 2004-08-21 Fernando Perez <fperez@colorado.edu>
3455
3477
3456 * ipythonrc-pylab: Add matplotlib support.
3478 * ipythonrc-pylab: Add matplotlib support.
3457
3479
3458 * matplotlib_config.py: new files for matplotlib support, part of
3480 * matplotlib_config.py: new files for matplotlib support, part of
3459 the pylab profile.
3481 the pylab profile.
3460
3482
3461 * IPython/usage.py (__doc__): documented the threading options.
3483 * IPython/usage.py (__doc__): documented the threading options.
3462
3484
3463 2004-08-20 Fernando Perez <fperez@colorado.edu>
3485 2004-08-20 Fernando Perez <fperez@colorado.edu>
3464
3486
3465 * ipython: Modified the main calling routine to handle the -thread
3487 * ipython: Modified the main calling routine to handle the -thread
3466 and -mpthread options. This needs to be done as a top-level hack,
3488 and -mpthread options. This needs to be done as a top-level hack,
3467 because it determines which class to instantiate for IPython
3489 because it determines which class to instantiate for IPython
3468 itself.
3490 itself.
3469
3491
3470 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3492 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3471 classes to support multithreaded GTK operation without blocking,
3493 classes to support multithreaded GTK operation without blocking,
3472 and matplotlib with all backends. This is a lot of still very
3494 and matplotlib with all backends. This is a lot of still very
3473 experimental code, and threads are tricky. So it may still have a
3495 experimental code, and threads are tricky. So it may still have a
3474 few rough edges... This code owes a lot to
3496 few rough edges... This code owes a lot to
3475 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3497 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3476 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3498 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3477 to John Hunter for all the matplotlib work.
3499 to John Hunter for all the matplotlib work.
3478
3500
3479 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3501 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3480 options for gtk thread and matplotlib support.
3502 options for gtk thread and matplotlib support.
3481
3503
3482 2004-08-16 Fernando Perez <fperez@colorado.edu>
3504 2004-08-16 Fernando Perez <fperez@colorado.edu>
3483
3505
3484 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3506 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3485 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3507 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3486 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3508 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3487
3509
3488 2004-08-11 Fernando Perez <fperez@colorado.edu>
3510 2004-08-11 Fernando Perez <fperez@colorado.edu>
3489
3511
3490 * setup.py (isfile): Fix build so documentation gets updated for
3512 * setup.py (isfile): Fix build so documentation gets updated for
3491 rpms (it was only done for .tgz builds).
3513 rpms (it was only done for .tgz builds).
3492
3514
3493 2004-08-10 Fernando Perez <fperez@colorado.edu>
3515 2004-08-10 Fernando Perez <fperez@colorado.edu>
3494
3516
3495 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3517 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3496
3518
3497 * iplib.py : Silence syntax error exceptions in tab-completion.
3519 * iplib.py : Silence syntax error exceptions in tab-completion.
3498
3520
3499 2004-08-05 Fernando Perez <fperez@colorado.edu>
3521 2004-08-05 Fernando Perez <fperez@colorado.edu>
3500
3522
3501 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3523 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3502 'color off' mark for continuation prompts. This was causing long
3524 'color off' mark for continuation prompts. This was causing long
3503 continuation lines to mis-wrap.
3525 continuation lines to mis-wrap.
3504
3526
3505 2004-08-01 Fernando Perez <fperez@colorado.edu>
3527 2004-08-01 Fernando Perez <fperez@colorado.edu>
3506
3528
3507 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3529 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3508 for building ipython to be a parameter. All this is necessary
3530 for building ipython to be a parameter. All this is necessary
3509 right now to have a multithreaded version, but this insane
3531 right now to have a multithreaded version, but this insane
3510 non-design will be cleaned up soon. For now, it's a hack that
3532 non-design will be cleaned up soon. For now, it's a hack that
3511 works.
3533 works.
3512
3534
3513 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3535 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3514 args in various places. No bugs so far, but it's a dangerous
3536 args in various places. No bugs so far, but it's a dangerous
3515 practice.
3537 practice.
3516
3538
3517 2004-07-31 Fernando Perez <fperez@colorado.edu>
3539 2004-07-31 Fernando Perez <fperez@colorado.edu>
3518
3540
3519 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3541 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3520 fix completion of files with dots in their names under most
3542 fix completion of files with dots in their names under most
3521 profiles (pysh was OK because the completion order is different).
3543 profiles (pysh was OK because the completion order is different).
3522
3544
3523 2004-07-27 Fernando Perez <fperez@colorado.edu>
3545 2004-07-27 Fernando Perez <fperez@colorado.edu>
3524
3546
3525 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3547 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3526 keywords manually, b/c the one in keyword.py was removed in python
3548 keywords manually, b/c the one in keyword.py was removed in python
3527 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3549 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3528 This is NOT a bug under python 2.3 and earlier.
3550 This is NOT a bug under python 2.3 and earlier.
3529
3551
3530 2004-07-26 Fernando Perez <fperez@colorado.edu>
3552 2004-07-26 Fernando Perez <fperez@colorado.edu>
3531
3553
3532 * IPython/ultraTB.py (VerboseTB.text): Add another
3554 * IPython/ultraTB.py (VerboseTB.text): Add another
3533 linecache.checkcache() call to try to prevent inspect.py from
3555 linecache.checkcache() call to try to prevent inspect.py from
3534 crashing under python 2.3. I think this fixes
3556 crashing under python 2.3. I think this fixes
3535 http://www.scipy.net/roundup/ipython/issue17.
3557 http://www.scipy.net/roundup/ipython/issue17.
3536
3558
3537 2004-07-26 *** Released version 0.6.2
3559 2004-07-26 *** Released version 0.6.2
3538
3560
3539 2004-07-26 Fernando Perez <fperez@colorado.edu>
3561 2004-07-26 Fernando Perez <fperez@colorado.edu>
3540
3562
3541 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3563 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3542 fail for any number.
3564 fail for any number.
3543 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3565 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3544 empty bookmarks.
3566 empty bookmarks.
3545
3567
3546 2004-07-26 *** Released version 0.6.1
3568 2004-07-26 *** Released version 0.6.1
3547
3569
3548 2004-07-26 Fernando Perez <fperez@colorado.edu>
3570 2004-07-26 Fernando Perez <fperez@colorado.edu>
3549
3571
3550 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3572 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3551
3573
3552 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3574 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3553 escaping '()[]{}' in filenames.
3575 escaping '()[]{}' in filenames.
3554
3576
3555 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3577 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3556 Python 2.2 users who lack a proper shlex.split.
3578 Python 2.2 users who lack a proper shlex.split.
3557
3579
3558 2004-07-19 Fernando Perez <fperez@colorado.edu>
3580 2004-07-19 Fernando Perez <fperez@colorado.edu>
3559
3581
3560 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3582 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3561 for reading readline's init file. I follow the normal chain:
3583 for reading readline's init file. I follow the normal chain:
3562 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3584 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3563 report by Mike Heeter. This closes
3585 report by Mike Heeter. This closes
3564 http://www.scipy.net/roundup/ipython/issue16.
3586 http://www.scipy.net/roundup/ipython/issue16.
3565
3587
3566 2004-07-18 Fernando Perez <fperez@colorado.edu>
3588 2004-07-18 Fernando Perez <fperez@colorado.edu>
3567
3589
3568 * IPython/iplib.py (__init__): Add better handling of '\' under
3590 * IPython/iplib.py (__init__): Add better handling of '\' under
3569 Win32 for filenames. After a patch by Ville.
3591 Win32 for filenames. After a patch by Ville.
3570
3592
3571 2004-07-17 Fernando Perez <fperez@colorado.edu>
3593 2004-07-17 Fernando Perez <fperez@colorado.edu>
3572
3594
3573 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3595 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3574 autocalling would be triggered for 'foo is bar' if foo is
3596 autocalling would be triggered for 'foo is bar' if foo is
3575 callable. I also cleaned up the autocall detection code to use a
3597 callable. I also cleaned up the autocall detection code to use a
3576 regexp, which is faster. Bug reported by Alexander Schmolck.
3598 regexp, which is faster. Bug reported by Alexander Schmolck.
3577
3599
3578 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3600 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3579 '?' in them would confuse the help system. Reported by Alex
3601 '?' in them would confuse the help system. Reported by Alex
3580 Schmolck.
3602 Schmolck.
3581
3603
3582 2004-07-16 Fernando Perez <fperez@colorado.edu>
3604 2004-07-16 Fernando Perez <fperez@colorado.edu>
3583
3605
3584 * IPython/GnuplotInteractive.py (__all__): added plot2.
3606 * IPython/GnuplotInteractive.py (__all__): added plot2.
3585
3607
3586 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3608 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3587 plotting dictionaries, lists or tuples of 1d arrays.
3609 plotting dictionaries, lists or tuples of 1d arrays.
3588
3610
3589 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3611 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3590 optimizations.
3612 optimizations.
3591
3613
3592 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3614 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3593 the information which was there from Janko's original IPP code:
3615 the information which was there from Janko's original IPP code:
3594
3616
3595 03.05.99 20:53 porto.ifm.uni-kiel.de
3617 03.05.99 20:53 porto.ifm.uni-kiel.de
3596 --Started changelog.
3618 --Started changelog.
3597 --make clear do what it say it does
3619 --make clear do what it say it does
3598 --added pretty output of lines from inputcache
3620 --added pretty output of lines from inputcache
3599 --Made Logger a mixin class, simplifies handling of switches
3621 --Made Logger a mixin class, simplifies handling of switches
3600 --Added own completer class. .string<TAB> expands to last history
3622 --Added own completer class. .string<TAB> expands to last history
3601 line which starts with string. The new expansion is also present
3623 line which starts with string. The new expansion is also present
3602 with Ctrl-r from the readline library. But this shows, who this
3624 with Ctrl-r from the readline library. But this shows, who this
3603 can be done for other cases.
3625 can be done for other cases.
3604 --Added convention that all shell functions should accept a
3626 --Added convention that all shell functions should accept a
3605 parameter_string This opens the door for different behaviour for
3627 parameter_string This opens the door for different behaviour for
3606 each function. @cd is a good example of this.
3628 each function. @cd is a good example of this.
3607
3629
3608 04.05.99 12:12 porto.ifm.uni-kiel.de
3630 04.05.99 12:12 porto.ifm.uni-kiel.de
3609 --added logfile rotation
3631 --added logfile rotation
3610 --added new mainloop method which freezes first the namespace
3632 --added new mainloop method which freezes first the namespace
3611
3633
3612 07.05.99 21:24 porto.ifm.uni-kiel.de
3634 07.05.99 21:24 porto.ifm.uni-kiel.de
3613 --added the docreader classes. Now there is a help system.
3635 --added the docreader classes. Now there is a help system.
3614 -This is only a first try. Currently it's not easy to put new
3636 -This is only a first try. Currently it's not easy to put new
3615 stuff in the indices. But this is the way to go. Info would be
3637 stuff in the indices. But this is the way to go. Info would be
3616 better, but HTML is every where and not everybody has an info
3638 better, but HTML is every where and not everybody has an info
3617 system installed and it's not so easy to change html-docs to info.
3639 system installed and it's not so easy to change html-docs to info.
3618 --added global logfile option
3640 --added global logfile option
3619 --there is now a hook for object inspection method pinfo needs to
3641 --there is now a hook for object inspection method pinfo needs to
3620 be provided for this. Can be reached by two '??'.
3642 be provided for this. Can be reached by two '??'.
3621
3643
3622 08.05.99 20:51 porto.ifm.uni-kiel.de
3644 08.05.99 20:51 porto.ifm.uni-kiel.de
3623 --added a README
3645 --added a README
3624 --bug in rc file. Something has changed so functions in the rc
3646 --bug in rc file. Something has changed so functions in the rc
3625 file need to reference the shell and not self. Not clear if it's a
3647 file need to reference the shell and not self. Not clear if it's a
3626 bug or feature.
3648 bug or feature.
3627 --changed rc file for new behavior
3649 --changed rc file for new behavior
3628
3650
3629 2004-07-15 Fernando Perez <fperez@colorado.edu>
3651 2004-07-15 Fernando Perez <fperez@colorado.edu>
3630
3652
3631 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3653 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3632 cache was falling out of sync in bizarre manners when multi-line
3654 cache was falling out of sync in bizarre manners when multi-line
3633 input was present. Minor optimizations and cleanup.
3655 input was present. Minor optimizations and cleanup.
3634
3656
3635 (Logger): Remove old Changelog info for cleanup. This is the
3657 (Logger): Remove old Changelog info for cleanup. This is the
3636 information which was there from Janko's original code:
3658 information which was there from Janko's original code:
3637
3659
3638 Changes to Logger: - made the default log filename a parameter
3660 Changes to Logger: - made the default log filename a parameter
3639
3661
3640 - put a check for lines beginning with !@? in log(). Needed
3662 - put a check for lines beginning with !@? in log(). Needed
3641 (even if the handlers properly log their lines) for mid-session
3663 (even if the handlers properly log their lines) for mid-session
3642 logging activation to work properly. Without this, lines logged
3664 logging activation to work properly. Without this, lines logged
3643 in mid session, which get read from the cache, would end up
3665 in mid session, which get read from the cache, would end up
3644 'bare' (with !@? in the open) in the log. Now they are caught
3666 'bare' (with !@? in the open) in the log. Now they are caught
3645 and prepended with a #.
3667 and prepended with a #.
3646
3668
3647 * IPython/iplib.py (InteractiveShell.init_readline): added check
3669 * IPython/iplib.py (InteractiveShell.init_readline): added check
3648 in case MagicCompleter fails to be defined, so we don't crash.
3670 in case MagicCompleter fails to be defined, so we don't crash.
3649
3671
3650 2004-07-13 Fernando Perez <fperez@colorado.edu>
3672 2004-07-13 Fernando Perez <fperez@colorado.edu>
3651
3673
3652 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3674 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3653 of EPS if the requested filename ends in '.eps'.
3675 of EPS if the requested filename ends in '.eps'.
3654
3676
3655 2004-07-04 Fernando Perez <fperez@colorado.edu>
3677 2004-07-04 Fernando Perez <fperez@colorado.edu>
3656
3678
3657 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3679 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3658 escaping of quotes when calling the shell.
3680 escaping of quotes when calling the shell.
3659
3681
3660 2004-07-02 Fernando Perez <fperez@colorado.edu>
3682 2004-07-02 Fernando Perez <fperez@colorado.edu>
3661
3683
3662 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3684 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3663 gettext not working because we were clobbering '_'. Fixes
3685 gettext not working because we were clobbering '_'. Fixes
3664 http://www.scipy.net/roundup/ipython/issue6.
3686 http://www.scipy.net/roundup/ipython/issue6.
3665
3687
3666 2004-07-01 Fernando Perez <fperez@colorado.edu>
3688 2004-07-01 Fernando Perez <fperez@colorado.edu>
3667
3689
3668 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3690 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3669 into @cd. Patch by Ville.
3691 into @cd. Patch by Ville.
3670
3692
3671 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3693 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3672 new function to store things after ipmaker runs. Patch by Ville.
3694 new function to store things after ipmaker runs. Patch by Ville.
3673 Eventually this will go away once ipmaker is removed and the class
3695 Eventually this will go away once ipmaker is removed and the class
3674 gets cleaned up, but for now it's ok. Key functionality here is
3696 gets cleaned up, but for now it's ok. Key functionality here is
3675 the addition of the persistent storage mechanism, a dict for
3697 the addition of the persistent storage mechanism, a dict for
3676 keeping data across sessions (for now just bookmarks, but more can
3698 keeping data across sessions (for now just bookmarks, but more can
3677 be implemented later).
3699 be implemented later).
3678
3700
3679 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3701 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3680 persistent across sections. Patch by Ville, I modified it
3702 persistent across sections. Patch by Ville, I modified it
3681 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3703 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3682 added a '-l' option to list all bookmarks.
3704 added a '-l' option to list all bookmarks.
3683
3705
3684 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3706 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3685 center for cleanup. Registered with atexit.register(). I moved
3707 center for cleanup. Registered with atexit.register(). I moved
3686 here the old exit_cleanup(). After a patch by Ville.
3708 here the old exit_cleanup(). After a patch by Ville.
3687
3709
3688 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3710 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3689 characters in the hacked shlex_split for python 2.2.
3711 characters in the hacked shlex_split for python 2.2.
3690
3712
3691 * IPython/iplib.py (file_matches): more fixes to filenames with
3713 * IPython/iplib.py (file_matches): more fixes to filenames with
3692 whitespace in them. It's not perfect, but limitations in python's
3714 whitespace in them. It's not perfect, but limitations in python's
3693 readline make it impossible to go further.
3715 readline make it impossible to go further.
3694
3716
3695 2004-06-29 Fernando Perez <fperez@colorado.edu>
3717 2004-06-29 Fernando Perez <fperez@colorado.edu>
3696
3718
3697 * IPython/iplib.py (file_matches): escape whitespace correctly in
3719 * IPython/iplib.py (file_matches): escape whitespace correctly in
3698 filename completions. Bug reported by Ville.
3720 filename completions. Bug reported by Ville.
3699
3721
3700 2004-06-28 Fernando Perez <fperez@colorado.edu>
3722 2004-06-28 Fernando Perez <fperez@colorado.edu>
3701
3723
3702 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3724 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3703 the history file will be called 'history-PROFNAME' (or just
3725 the history file will be called 'history-PROFNAME' (or just
3704 'history' if no profile is loaded). I was getting annoyed at
3726 'history' if no profile is loaded). I was getting annoyed at
3705 getting my Numerical work history clobbered by pysh sessions.
3727 getting my Numerical work history clobbered by pysh sessions.
3706
3728
3707 * IPython/iplib.py (InteractiveShell.__init__): Internal
3729 * IPython/iplib.py (InteractiveShell.__init__): Internal
3708 getoutputerror() function so that we can honor the system_verbose
3730 getoutputerror() function so that we can honor the system_verbose
3709 flag for _all_ system calls. I also added escaping of #
3731 flag for _all_ system calls. I also added escaping of #
3710 characters here to avoid confusing Itpl.
3732 characters here to avoid confusing Itpl.
3711
3733
3712 * IPython/Magic.py (shlex_split): removed call to shell in
3734 * IPython/Magic.py (shlex_split): removed call to shell in
3713 parse_options and replaced it with shlex.split(). The annoying
3735 parse_options and replaced it with shlex.split(). The annoying
3714 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3736 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3715 to backport it from 2.3, with several frail hacks (the shlex
3737 to backport it from 2.3, with several frail hacks (the shlex
3716 module is rather limited in 2.2). Thanks to a suggestion by Ville
3738 module is rather limited in 2.2). Thanks to a suggestion by Ville
3717 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3739 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3718 problem.
3740 problem.
3719
3741
3720 (Magic.magic_system_verbose): new toggle to print the actual
3742 (Magic.magic_system_verbose): new toggle to print the actual
3721 system calls made by ipython. Mainly for debugging purposes.
3743 system calls made by ipython. Mainly for debugging purposes.
3722
3744
3723 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3745 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3724 doesn't support persistence. Reported (and fix suggested) by
3746 doesn't support persistence. Reported (and fix suggested) by
3725 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3747 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3726
3748
3727 2004-06-26 Fernando Perez <fperez@colorado.edu>
3749 2004-06-26 Fernando Perez <fperez@colorado.edu>
3728
3750
3729 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3751 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3730 continue prompts.
3752 continue prompts.
3731
3753
3732 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3754 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3733 function (basically a big docstring) and a few more things here to
3755 function (basically a big docstring) and a few more things here to
3734 speedup startup. pysh.py is now very lightweight. We want because
3756 speedup startup. pysh.py is now very lightweight. We want because
3735 it gets execfile'd, while InterpreterExec gets imported, so
3757 it gets execfile'd, while InterpreterExec gets imported, so
3736 byte-compilation saves time.
3758 byte-compilation saves time.
3737
3759
3738 2004-06-25 Fernando Perez <fperez@colorado.edu>
3760 2004-06-25 Fernando Perez <fperez@colorado.edu>
3739
3761
3740 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3762 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3741 -NUM', which was recently broken.
3763 -NUM', which was recently broken.
3742
3764
3743 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3765 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3744 in multi-line input (but not !!, which doesn't make sense there).
3766 in multi-line input (but not !!, which doesn't make sense there).
3745
3767
3746 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3768 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3747 It's just too useful, and people can turn it off in the less
3769 It's just too useful, and people can turn it off in the less
3748 common cases where it's a problem.
3770 common cases where it's a problem.
3749
3771
3750 2004-06-24 Fernando Perez <fperez@colorado.edu>
3772 2004-06-24 Fernando Perez <fperez@colorado.edu>
3751
3773
3752 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3774 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3753 special syntaxes (like alias calling) is now allied in multi-line
3775 special syntaxes (like alias calling) is now allied in multi-line
3754 input. This is still _very_ experimental, but it's necessary for
3776 input. This is still _very_ experimental, but it's necessary for
3755 efficient shell usage combining python looping syntax with system
3777 efficient shell usage combining python looping syntax with system
3756 calls. For now it's restricted to aliases, I don't think it
3778 calls. For now it's restricted to aliases, I don't think it
3757 really even makes sense to have this for magics.
3779 really even makes sense to have this for magics.
3758
3780
3759 2004-06-23 Fernando Perez <fperez@colorado.edu>
3781 2004-06-23 Fernando Perez <fperez@colorado.edu>
3760
3782
3761 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3783 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3762 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3784 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3763
3785
3764 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3786 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3765 extensions under Windows (after code sent by Gary Bishop). The
3787 extensions under Windows (after code sent by Gary Bishop). The
3766 extensions considered 'executable' are stored in IPython's rc
3788 extensions considered 'executable' are stored in IPython's rc
3767 structure as win_exec_ext.
3789 structure as win_exec_ext.
3768
3790
3769 * IPython/genutils.py (shell): new function, like system() but
3791 * IPython/genutils.py (shell): new function, like system() but
3770 without return value. Very useful for interactive shell work.
3792 without return value. Very useful for interactive shell work.
3771
3793
3772 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3794 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3773 delete aliases.
3795 delete aliases.
3774
3796
3775 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3797 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3776 sure that the alias table doesn't contain python keywords.
3798 sure that the alias table doesn't contain python keywords.
3777
3799
3778 2004-06-21 Fernando Perez <fperez@colorado.edu>
3800 2004-06-21 Fernando Perez <fperez@colorado.edu>
3779
3801
3780 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3802 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3781 non-existent items are found in $PATH. Reported by Thorsten.
3803 non-existent items are found in $PATH. Reported by Thorsten.
3782
3804
3783 2004-06-20 Fernando Perez <fperez@colorado.edu>
3805 2004-06-20 Fernando Perez <fperez@colorado.edu>
3784
3806
3785 * IPython/iplib.py (complete): modified the completer so that the
3807 * IPython/iplib.py (complete): modified the completer so that the
3786 order of priorities can be easily changed at runtime.
3808 order of priorities can be easily changed at runtime.
3787
3809
3788 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3810 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3789 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3811 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3790
3812
3791 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3813 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3792 expand Python variables prepended with $ in all system calls. The
3814 expand Python variables prepended with $ in all system calls. The
3793 same was done to InteractiveShell.handle_shell_escape. Now all
3815 same was done to InteractiveShell.handle_shell_escape. Now all
3794 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3816 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3795 expansion of python variables and expressions according to the
3817 expansion of python variables and expressions according to the
3796 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3818 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3797
3819
3798 Though PEP-215 has been rejected, a similar (but simpler) one
3820 Though PEP-215 has been rejected, a similar (but simpler) one
3799 seems like it will go into Python 2.4, PEP-292 -
3821 seems like it will go into Python 2.4, PEP-292 -
3800 http://www.python.org/peps/pep-0292.html.
3822 http://www.python.org/peps/pep-0292.html.
3801
3823
3802 I'll keep the full syntax of PEP-215, since IPython has since the
3824 I'll keep the full syntax of PEP-215, since IPython has since the
3803 start used Ka-Ping Yee's reference implementation discussed there
3825 start used Ka-Ping Yee's reference implementation discussed there
3804 (Itpl), and I actually like the powerful semantics it offers.
3826 (Itpl), and I actually like the powerful semantics it offers.
3805
3827
3806 In order to access normal shell variables, the $ has to be escaped
3828 In order to access normal shell variables, the $ has to be escaped
3807 via an extra $. For example:
3829 via an extra $. For example:
3808
3830
3809 In [7]: PATH='a python variable'
3831 In [7]: PATH='a python variable'
3810
3832
3811 In [8]: !echo $PATH
3833 In [8]: !echo $PATH
3812 a python variable
3834 a python variable
3813
3835
3814 In [9]: !echo $$PATH
3836 In [9]: !echo $$PATH
3815 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3837 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3816
3838
3817 (Magic.parse_options): escape $ so the shell doesn't evaluate
3839 (Magic.parse_options): escape $ so the shell doesn't evaluate
3818 things prematurely.
3840 things prematurely.
3819
3841
3820 * IPython/iplib.py (InteractiveShell.call_alias): added the
3842 * IPython/iplib.py (InteractiveShell.call_alias): added the
3821 ability for aliases to expand python variables via $.
3843 ability for aliases to expand python variables via $.
3822
3844
3823 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3845 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3824 system, now there's a @rehash/@rehashx pair of magics. These work
3846 system, now there's a @rehash/@rehashx pair of magics. These work
3825 like the csh rehash command, and can be invoked at any time. They
3847 like the csh rehash command, and can be invoked at any time. They
3826 build a table of aliases to everything in the user's $PATH
3848 build a table of aliases to everything in the user's $PATH
3827 (@rehash uses everything, @rehashx is slower but only adds
3849 (@rehash uses everything, @rehashx is slower but only adds
3828 executable files). With this, the pysh.py-based shell profile can
3850 executable files). With this, the pysh.py-based shell profile can
3829 now simply call rehash upon startup, and full access to all
3851 now simply call rehash upon startup, and full access to all
3830 programs in the user's path is obtained.
3852 programs in the user's path is obtained.
3831
3853
3832 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3854 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3833 functionality is now fully in place. I removed the old dynamic
3855 functionality is now fully in place. I removed the old dynamic
3834 code generation based approach, in favor of a much lighter one
3856 code generation based approach, in favor of a much lighter one
3835 based on a simple dict. The advantage is that this allows me to
3857 based on a simple dict. The advantage is that this allows me to
3836 now have thousands of aliases with negligible cost (unthinkable
3858 now have thousands of aliases with negligible cost (unthinkable
3837 with the old system).
3859 with the old system).
3838
3860
3839 2004-06-19 Fernando Perez <fperez@colorado.edu>
3861 2004-06-19 Fernando Perez <fperez@colorado.edu>
3840
3862
3841 * IPython/iplib.py (__init__): extended MagicCompleter class to
3863 * IPython/iplib.py (__init__): extended MagicCompleter class to
3842 also complete (last in priority) on user aliases.
3864 also complete (last in priority) on user aliases.
3843
3865
3844 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3866 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3845 call to eval.
3867 call to eval.
3846 (ItplNS.__init__): Added a new class which functions like Itpl,
3868 (ItplNS.__init__): Added a new class which functions like Itpl,
3847 but allows configuring the namespace for the evaluation to occur
3869 but allows configuring the namespace for the evaluation to occur
3848 in.
3870 in.
3849
3871
3850 2004-06-18 Fernando Perez <fperez@colorado.edu>
3872 2004-06-18 Fernando Perez <fperez@colorado.edu>
3851
3873
3852 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3874 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3853 better message when 'exit' or 'quit' are typed (a common newbie
3875 better message when 'exit' or 'quit' are typed (a common newbie
3854 confusion).
3876 confusion).
3855
3877
3856 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3878 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3857 check for Windows users.
3879 check for Windows users.
3858
3880
3859 * IPython/iplib.py (InteractiveShell.user_setup): removed
3881 * IPython/iplib.py (InteractiveShell.user_setup): removed
3860 disabling of colors for Windows. I'll test at runtime and issue a
3882 disabling of colors for Windows. I'll test at runtime and issue a
3861 warning if Gary's readline isn't found, as to nudge users to
3883 warning if Gary's readline isn't found, as to nudge users to
3862 download it.
3884 download it.
3863
3885
3864 2004-06-16 Fernando Perez <fperez@colorado.edu>
3886 2004-06-16 Fernando Perez <fperez@colorado.edu>
3865
3887
3866 * IPython/genutils.py (Stream.__init__): changed to print errors
3888 * IPython/genutils.py (Stream.__init__): changed to print errors
3867 to sys.stderr. I had a circular dependency here. Now it's
3889 to sys.stderr. I had a circular dependency here. Now it's
3868 possible to run ipython as IDLE's shell (consider this pre-alpha,
3890 possible to run ipython as IDLE's shell (consider this pre-alpha,
3869 since true stdout things end up in the starting terminal instead
3891 since true stdout things end up in the starting terminal instead
3870 of IDLE's out).
3892 of IDLE's out).
3871
3893
3872 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3894 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3873 users who haven't # updated their prompt_in2 definitions. Remove
3895 users who haven't # updated their prompt_in2 definitions. Remove
3874 eventually.
3896 eventually.
3875 (multiple_replace): added credit to original ASPN recipe.
3897 (multiple_replace): added credit to original ASPN recipe.
3876
3898
3877 2004-06-15 Fernando Perez <fperez@colorado.edu>
3899 2004-06-15 Fernando Perez <fperez@colorado.edu>
3878
3900
3879 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3901 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3880 list of auto-defined aliases.
3902 list of auto-defined aliases.
3881
3903
3882 2004-06-13 Fernando Perez <fperez@colorado.edu>
3904 2004-06-13 Fernando Perez <fperez@colorado.edu>
3883
3905
3884 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3906 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3885 install was really requested (so setup.py can be used for other
3907 install was really requested (so setup.py can be used for other
3886 things under Windows).
3908 things under Windows).
3887
3909
3888 2004-06-10 Fernando Perez <fperez@colorado.edu>
3910 2004-06-10 Fernando Perez <fperez@colorado.edu>
3889
3911
3890 * IPython/Logger.py (Logger.create_log): Manually remove any old
3912 * IPython/Logger.py (Logger.create_log): Manually remove any old
3891 backup, since os.remove may fail under Windows. Fixes bug
3913 backup, since os.remove may fail under Windows. Fixes bug
3892 reported by Thorsten.
3914 reported by Thorsten.
3893
3915
3894 2004-06-09 Fernando Perez <fperez@colorado.edu>
3916 2004-06-09 Fernando Perez <fperez@colorado.edu>
3895
3917
3896 * examples/example-embed.py: fixed all references to %n (replaced
3918 * examples/example-embed.py: fixed all references to %n (replaced
3897 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3919 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3898 for all examples and the manual as well.
3920 for all examples and the manual as well.
3899
3921
3900 2004-06-08 Fernando Perez <fperez@colorado.edu>
3922 2004-06-08 Fernando Perez <fperez@colorado.edu>
3901
3923
3902 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3924 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3903 alignment and color management. All 3 prompt subsystems now
3925 alignment and color management. All 3 prompt subsystems now
3904 inherit from BasePrompt.
3926 inherit from BasePrompt.
3905
3927
3906 * tools/release: updates for windows installer build and tag rpms
3928 * tools/release: updates for windows installer build and tag rpms
3907 with python version (since paths are fixed).
3929 with python version (since paths are fixed).
3908
3930
3909 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3931 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3910 which will become eventually obsolete. Also fixed the default
3932 which will become eventually obsolete. Also fixed the default
3911 prompt_in2 to use \D, so at least new users start with the correct
3933 prompt_in2 to use \D, so at least new users start with the correct
3912 defaults.
3934 defaults.
3913 WARNING: Users with existing ipythonrc files will need to apply
3935 WARNING: Users with existing ipythonrc files will need to apply
3914 this fix manually!
3936 this fix manually!
3915
3937
3916 * setup.py: make windows installer (.exe). This is finally the
3938 * setup.py: make windows installer (.exe). This is finally the
3917 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3939 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3918 which I hadn't included because it required Python 2.3 (or recent
3940 which I hadn't included because it required Python 2.3 (or recent
3919 distutils).
3941 distutils).
3920
3942
3921 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3943 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3922 usage of new '\D' escape.
3944 usage of new '\D' escape.
3923
3945
3924 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3946 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3925 lacks os.getuid())
3947 lacks os.getuid())
3926 (CachedOutput.set_colors): Added the ability to turn coloring
3948 (CachedOutput.set_colors): Added the ability to turn coloring
3927 on/off with @colors even for manually defined prompt colors. It
3949 on/off with @colors even for manually defined prompt colors. It
3928 uses a nasty global, but it works safely and via the generic color
3950 uses a nasty global, but it works safely and via the generic color
3929 handling mechanism.
3951 handling mechanism.
3930 (Prompt2.__init__): Introduced new escape '\D' for continuation
3952 (Prompt2.__init__): Introduced new escape '\D' for continuation
3931 prompts. It represents the counter ('\#') as dots.
3953 prompts. It represents the counter ('\#') as dots.
3932 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3954 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3933 need to update their ipythonrc files and replace '%n' with '\D' in
3955 need to update their ipythonrc files and replace '%n' with '\D' in
3934 their prompt_in2 settings everywhere. Sorry, but there's
3956 their prompt_in2 settings everywhere. Sorry, but there's
3935 otherwise no clean way to get all prompts to properly align. The
3957 otherwise no clean way to get all prompts to properly align. The
3936 ipythonrc shipped with IPython has been updated.
3958 ipythonrc shipped with IPython has been updated.
3937
3959
3938 2004-06-07 Fernando Perez <fperez@colorado.edu>
3960 2004-06-07 Fernando Perez <fperez@colorado.edu>
3939
3961
3940 * setup.py (isfile): Pass local_icons option to latex2html, so the
3962 * setup.py (isfile): Pass local_icons option to latex2html, so the
3941 resulting HTML file is self-contained. Thanks to
3963 resulting HTML file is self-contained. Thanks to
3942 dryice-AT-liu.com.cn for the tip.
3964 dryice-AT-liu.com.cn for the tip.
3943
3965
3944 * pysh.py: I created a new profile 'shell', which implements a
3966 * pysh.py: I created a new profile 'shell', which implements a
3945 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3967 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3946 system shell, nor will it become one anytime soon. It's mainly
3968 system shell, nor will it become one anytime soon. It's mainly
3947 meant to illustrate the use of the new flexible bash-like prompts.
3969 meant to illustrate the use of the new flexible bash-like prompts.
3948 I guess it could be used by hardy souls for true shell management,
3970 I guess it could be used by hardy souls for true shell management,
3949 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3971 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3950 profile. This uses the InterpreterExec extension provided by
3972 profile. This uses the InterpreterExec extension provided by
3951 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3973 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3952
3974
3953 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3975 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3954 auto-align itself with the length of the previous input prompt
3976 auto-align itself with the length of the previous input prompt
3955 (taking into account the invisible color escapes).
3977 (taking into account the invisible color escapes).
3956 (CachedOutput.__init__): Large restructuring of this class. Now
3978 (CachedOutput.__init__): Large restructuring of this class. Now
3957 all three prompts (primary1, primary2, output) are proper objects,
3979 all three prompts (primary1, primary2, output) are proper objects,
3958 managed by the 'parent' CachedOutput class. The code is still a
3980 managed by the 'parent' CachedOutput class. The code is still a
3959 bit hackish (all prompts share state via a pointer to the cache),
3981 bit hackish (all prompts share state via a pointer to the cache),
3960 but it's overall far cleaner than before.
3982 but it's overall far cleaner than before.
3961
3983
3962 * IPython/genutils.py (getoutputerror): modified to add verbose,
3984 * IPython/genutils.py (getoutputerror): modified to add verbose,
3963 debug and header options. This makes the interface of all getout*
3985 debug and header options. This makes the interface of all getout*
3964 functions uniform.
3986 functions uniform.
3965 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3987 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3966
3988
3967 * IPython/Magic.py (Magic.default_option): added a function to
3989 * IPython/Magic.py (Magic.default_option): added a function to
3968 allow registering default options for any magic command. This
3990 allow registering default options for any magic command. This
3969 makes it easy to have profiles which customize the magics globally
3991 makes it easy to have profiles which customize the magics globally
3970 for a certain use. The values set through this function are
3992 for a certain use. The values set through this function are
3971 picked up by the parse_options() method, which all magics should
3993 picked up by the parse_options() method, which all magics should
3972 use to parse their options.
3994 use to parse their options.
3973
3995
3974 * IPython/genutils.py (warn): modified the warnings framework to
3996 * IPython/genutils.py (warn): modified the warnings framework to
3975 use the Term I/O class. I'm trying to slowly unify all of
3997 use the Term I/O class. I'm trying to slowly unify all of
3976 IPython's I/O operations to pass through Term.
3998 IPython's I/O operations to pass through Term.
3977
3999
3978 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4000 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3979 the secondary prompt to correctly match the length of the primary
4001 the secondary prompt to correctly match the length of the primary
3980 one for any prompt. Now multi-line code will properly line up
4002 one for any prompt. Now multi-line code will properly line up
3981 even for path dependent prompts, such as the new ones available
4003 even for path dependent prompts, such as the new ones available
3982 via the prompt_specials.
4004 via the prompt_specials.
3983
4005
3984 2004-06-06 Fernando Perez <fperez@colorado.edu>
4006 2004-06-06 Fernando Perez <fperez@colorado.edu>
3985
4007
3986 * IPython/Prompts.py (prompt_specials): Added the ability to have
4008 * IPython/Prompts.py (prompt_specials): Added the ability to have
3987 bash-like special sequences in the prompts, which get
4009 bash-like special sequences in the prompts, which get
3988 automatically expanded. Things like hostname, current working
4010 automatically expanded. Things like hostname, current working
3989 directory and username are implemented already, but it's easy to
4011 directory and username are implemented already, but it's easy to
3990 add more in the future. Thanks to a patch by W.J. van der Laan
4012 add more in the future. Thanks to a patch by W.J. van der Laan
3991 <gnufnork-AT-hetdigitalegat.nl>
4013 <gnufnork-AT-hetdigitalegat.nl>
3992 (prompt_specials): Added color support for prompt strings, so
4014 (prompt_specials): Added color support for prompt strings, so
3993 users can define arbitrary color setups for their prompts.
4015 users can define arbitrary color setups for their prompts.
3994
4016
3995 2004-06-05 Fernando Perez <fperez@colorado.edu>
4017 2004-06-05 Fernando Perez <fperez@colorado.edu>
3996
4018
3997 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4019 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3998 code to load Gary Bishop's readline and configure it
4020 code to load Gary Bishop's readline and configure it
3999 automatically. Thanks to Gary for help on this.
4021 automatically. Thanks to Gary for help on this.
4000
4022
4001 2004-06-01 Fernando Perez <fperez@colorado.edu>
4023 2004-06-01 Fernando Perez <fperez@colorado.edu>
4002
4024
4003 * IPython/Logger.py (Logger.create_log): fix bug for logging
4025 * IPython/Logger.py (Logger.create_log): fix bug for logging
4004 with no filename (previous fix was incomplete).
4026 with no filename (previous fix was incomplete).
4005
4027
4006 2004-05-25 Fernando Perez <fperez@colorado.edu>
4028 2004-05-25 Fernando Perez <fperez@colorado.edu>
4007
4029
4008 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4030 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4009 parens would get passed to the shell.
4031 parens would get passed to the shell.
4010
4032
4011 2004-05-20 Fernando Perez <fperez@colorado.edu>
4033 2004-05-20 Fernando Perez <fperez@colorado.edu>
4012
4034
4013 * IPython/Magic.py (Magic.magic_prun): changed default profile
4035 * IPython/Magic.py (Magic.magic_prun): changed default profile
4014 sort order to 'time' (the more common profiling need).
4036 sort order to 'time' (the more common profiling need).
4015
4037
4016 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4038 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4017 so that source code shown is guaranteed in sync with the file on
4039 so that source code shown is guaranteed in sync with the file on
4018 disk (also changed in psource). Similar fix to the one for
4040 disk (also changed in psource). Similar fix to the one for
4019 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4041 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4020 <yann.ledu-AT-noos.fr>.
4042 <yann.ledu-AT-noos.fr>.
4021
4043
4022 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4044 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4023 with a single option would not be correctly parsed. Closes
4045 with a single option would not be correctly parsed. Closes
4024 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4046 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4025 introduced in 0.6.0 (on 2004-05-06).
4047 introduced in 0.6.0 (on 2004-05-06).
4026
4048
4027 2004-05-13 *** Released version 0.6.0
4049 2004-05-13 *** Released version 0.6.0
4028
4050
4029 2004-05-13 Fernando Perez <fperez@colorado.edu>
4051 2004-05-13 Fernando Perez <fperez@colorado.edu>
4030
4052
4031 * debian/: Added debian/ directory to CVS, so that debian support
4053 * debian/: Added debian/ directory to CVS, so that debian support
4032 is publicly accessible. The debian package is maintained by Jack
4054 is publicly accessible. The debian package is maintained by Jack
4033 Moffit <jack-AT-xiph.org>.
4055 Moffit <jack-AT-xiph.org>.
4034
4056
4035 * Documentation: included the notes about an ipython-based system
4057 * Documentation: included the notes about an ipython-based system
4036 shell (the hypothetical 'pysh') into the new_design.pdf document,
4058 shell (the hypothetical 'pysh') into the new_design.pdf document,
4037 so that these ideas get distributed to users along with the
4059 so that these ideas get distributed to users along with the
4038 official documentation.
4060 official documentation.
4039
4061
4040 2004-05-10 Fernando Perez <fperez@colorado.edu>
4062 2004-05-10 Fernando Perez <fperez@colorado.edu>
4041
4063
4042 * IPython/Logger.py (Logger.create_log): fix recently introduced
4064 * IPython/Logger.py (Logger.create_log): fix recently introduced
4043 bug (misindented line) where logstart would fail when not given an
4065 bug (misindented line) where logstart would fail when not given an
4044 explicit filename.
4066 explicit filename.
4045
4067
4046 2004-05-09 Fernando Perez <fperez@colorado.edu>
4068 2004-05-09 Fernando Perez <fperez@colorado.edu>
4047
4069
4048 * IPython/Magic.py (Magic.parse_options): skip system call when
4070 * IPython/Magic.py (Magic.parse_options): skip system call when
4049 there are no options to look for. Faster, cleaner for the common
4071 there are no options to look for. Faster, cleaner for the common
4050 case.
4072 case.
4051
4073
4052 * Documentation: many updates to the manual: describing Windows
4074 * Documentation: many updates to the manual: describing Windows
4053 support better, Gnuplot updates, credits, misc small stuff. Also
4075 support better, Gnuplot updates, credits, misc small stuff. Also
4054 updated the new_design doc a bit.
4076 updated the new_design doc a bit.
4055
4077
4056 2004-05-06 *** Released version 0.6.0.rc1
4078 2004-05-06 *** Released version 0.6.0.rc1
4057
4079
4058 2004-05-06 Fernando Perez <fperez@colorado.edu>
4080 2004-05-06 Fernando Perez <fperez@colorado.edu>
4059
4081
4060 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4082 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4061 operations to use the vastly more efficient list/''.join() method.
4083 operations to use the vastly more efficient list/''.join() method.
4062 (FormattedTB.text): Fix
4084 (FormattedTB.text): Fix
4063 http://www.scipy.net/roundup/ipython/issue12 - exception source
4085 http://www.scipy.net/roundup/ipython/issue12 - exception source
4064 extract not updated after reload. Thanks to Mike Salib
4086 extract not updated after reload. Thanks to Mike Salib
4065 <msalib-AT-mit.edu> for pinning the source of the problem.
4087 <msalib-AT-mit.edu> for pinning the source of the problem.
4066 Fortunately, the solution works inside ipython and doesn't require
4088 Fortunately, the solution works inside ipython and doesn't require
4067 any changes to python proper.
4089 any changes to python proper.
4068
4090
4069 * IPython/Magic.py (Magic.parse_options): Improved to process the
4091 * IPython/Magic.py (Magic.parse_options): Improved to process the
4070 argument list as a true shell would (by actually using the
4092 argument list as a true shell would (by actually using the
4071 underlying system shell). This way, all @magics automatically get
4093 underlying system shell). This way, all @magics automatically get
4072 shell expansion for variables. Thanks to a comment by Alex
4094 shell expansion for variables. Thanks to a comment by Alex
4073 Schmolck.
4095 Schmolck.
4074
4096
4075 2004-04-04 Fernando Perez <fperez@colorado.edu>
4097 2004-04-04 Fernando Perez <fperez@colorado.edu>
4076
4098
4077 * IPython/iplib.py (InteractiveShell.interact): Added a special
4099 * IPython/iplib.py (InteractiveShell.interact): Added a special
4078 trap for a debugger quit exception, which is basically impossible
4100 trap for a debugger quit exception, which is basically impossible
4079 to handle by normal mechanisms, given what pdb does to the stack.
4101 to handle by normal mechanisms, given what pdb does to the stack.
4080 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4102 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4081
4103
4082 2004-04-03 Fernando Perez <fperez@colorado.edu>
4104 2004-04-03 Fernando Perez <fperez@colorado.edu>
4083
4105
4084 * IPython/genutils.py (Term): Standardized the names of the Term
4106 * IPython/genutils.py (Term): Standardized the names of the Term
4085 class streams to cin/cout/cerr, following C++ naming conventions
4107 class streams to cin/cout/cerr, following C++ naming conventions
4086 (I can't use in/out/err because 'in' is not a valid attribute
4108 (I can't use in/out/err because 'in' is not a valid attribute
4087 name).
4109 name).
4088
4110
4089 * IPython/iplib.py (InteractiveShell.interact): don't increment
4111 * IPython/iplib.py (InteractiveShell.interact): don't increment
4090 the prompt if there's no user input. By Daniel 'Dang' Griffith
4112 the prompt if there's no user input. By Daniel 'Dang' Griffith
4091 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4113 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4092 Francois Pinard.
4114 Francois Pinard.
4093
4115
4094 2004-04-02 Fernando Perez <fperez@colorado.edu>
4116 2004-04-02 Fernando Perez <fperez@colorado.edu>
4095
4117
4096 * IPython/genutils.py (Stream.__init__): Modified to survive at
4118 * IPython/genutils.py (Stream.__init__): Modified to survive at
4097 least importing in contexts where stdin/out/err aren't true file
4119 least importing in contexts where stdin/out/err aren't true file
4098 objects, such as PyCrust (they lack fileno() and mode). However,
4120 objects, such as PyCrust (they lack fileno() and mode). However,
4099 the recovery facilities which rely on these things existing will
4121 the recovery facilities which rely on these things existing will
4100 not work.
4122 not work.
4101
4123
4102 2004-04-01 Fernando Perez <fperez@colorado.edu>
4124 2004-04-01 Fernando Perez <fperez@colorado.edu>
4103
4125
4104 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4126 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4105 use the new getoutputerror() function, so it properly
4127 use the new getoutputerror() function, so it properly
4106 distinguishes stdout/err.
4128 distinguishes stdout/err.
4107
4129
4108 * IPython/genutils.py (getoutputerror): added a function to
4130 * IPython/genutils.py (getoutputerror): added a function to
4109 capture separately the standard output and error of a command.
4131 capture separately the standard output and error of a command.
4110 After a comment from dang on the mailing lists. This code is
4132 After a comment from dang on the mailing lists. This code is
4111 basically a modified version of commands.getstatusoutput(), from
4133 basically a modified version of commands.getstatusoutput(), from
4112 the standard library.
4134 the standard library.
4113
4135
4114 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4136 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4115 '!!' as a special syntax (shorthand) to access @sx.
4137 '!!' as a special syntax (shorthand) to access @sx.
4116
4138
4117 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4139 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4118 command and return its output as a list split on '\n'.
4140 command and return its output as a list split on '\n'.
4119
4141
4120 2004-03-31 Fernando Perez <fperez@colorado.edu>
4142 2004-03-31 Fernando Perez <fperez@colorado.edu>
4121
4143
4122 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4144 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4123 method to dictionaries used as FakeModule instances if they lack
4145 method to dictionaries used as FakeModule instances if they lack
4124 it. At least pydoc in python2.3 breaks for runtime-defined
4146 it. At least pydoc in python2.3 breaks for runtime-defined
4125 functions without this hack. At some point I need to _really_
4147 functions without this hack. At some point I need to _really_
4126 understand what FakeModule is doing, because it's a gross hack.
4148 understand what FakeModule is doing, because it's a gross hack.
4127 But it solves Arnd's problem for now...
4149 But it solves Arnd's problem for now...
4128
4150
4129 2004-02-27 Fernando Perez <fperez@colorado.edu>
4151 2004-02-27 Fernando Perez <fperez@colorado.edu>
4130
4152
4131 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4153 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4132 mode would behave erratically. Also increased the number of
4154 mode would behave erratically. Also increased the number of
4133 possible logs in rotate mod to 999. Thanks to Rod Holland
4155 possible logs in rotate mod to 999. Thanks to Rod Holland
4134 <rhh@StructureLABS.com> for the report and fixes.
4156 <rhh@StructureLABS.com> for the report and fixes.
4135
4157
4136 2004-02-26 Fernando Perez <fperez@colorado.edu>
4158 2004-02-26 Fernando Perez <fperez@colorado.edu>
4137
4159
4138 * IPython/genutils.py (page): Check that the curses module really
4160 * IPython/genutils.py (page): Check that the curses module really
4139 has the initscr attribute before trying to use it. For some
4161 has the initscr attribute before trying to use it. For some
4140 reason, the Solaris curses module is missing this. I think this
4162 reason, the Solaris curses module is missing this. I think this
4141 should be considered a Solaris python bug, but I'm not sure.
4163 should be considered a Solaris python bug, but I'm not sure.
4142
4164
4143 2004-01-17 Fernando Perez <fperez@colorado.edu>
4165 2004-01-17 Fernando Perez <fperez@colorado.edu>
4144
4166
4145 * IPython/genutils.py (Stream.__init__): Changes to try to make
4167 * IPython/genutils.py (Stream.__init__): Changes to try to make
4146 ipython robust against stdin/out/err being closed by the user.
4168 ipython robust against stdin/out/err being closed by the user.
4147 This is 'user error' (and blocks a normal python session, at least
4169 This is 'user error' (and blocks a normal python session, at least
4148 the stdout case). However, Ipython should be able to survive such
4170 the stdout case). However, Ipython should be able to survive such
4149 instances of abuse as gracefully as possible. To simplify the
4171 instances of abuse as gracefully as possible. To simplify the
4150 coding and maintain compatibility with Gary Bishop's Term
4172 coding and maintain compatibility with Gary Bishop's Term
4151 contributions, I've made use of classmethods for this. I think
4173 contributions, I've made use of classmethods for this. I think
4152 this introduces a dependency on python 2.2.
4174 this introduces a dependency on python 2.2.
4153
4175
4154 2004-01-13 Fernando Perez <fperez@colorado.edu>
4176 2004-01-13 Fernando Perez <fperez@colorado.edu>
4155
4177
4156 * IPython/numutils.py (exp_safe): simplified the code a bit and
4178 * IPython/numutils.py (exp_safe): simplified the code a bit and
4157 removed the need for importing the kinds module altogether.
4179 removed the need for importing the kinds module altogether.
4158
4180
4159 2004-01-06 Fernando Perez <fperez@colorado.edu>
4181 2004-01-06 Fernando Perez <fperez@colorado.edu>
4160
4182
4161 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4183 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4162 a magic function instead, after some community feedback. No
4184 a magic function instead, after some community feedback. No
4163 special syntax will exist for it, but its name is deliberately
4185 special syntax will exist for it, but its name is deliberately
4164 very short.
4186 very short.
4165
4187
4166 2003-12-20 Fernando Perez <fperez@colorado.edu>
4188 2003-12-20 Fernando Perez <fperez@colorado.edu>
4167
4189
4168 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4190 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4169 new functionality, to automagically assign the result of a shell
4191 new functionality, to automagically assign the result of a shell
4170 command to a variable. I'll solicit some community feedback on
4192 command to a variable. I'll solicit some community feedback on
4171 this before making it permanent.
4193 this before making it permanent.
4172
4194
4173 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4195 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4174 requested about callables for which inspect couldn't obtain a
4196 requested about callables for which inspect couldn't obtain a
4175 proper argspec. Thanks to a crash report sent by Etienne
4197 proper argspec. Thanks to a crash report sent by Etienne
4176 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4198 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4177
4199
4178 2003-12-09 Fernando Perez <fperez@colorado.edu>
4200 2003-12-09 Fernando Perez <fperez@colorado.edu>
4179
4201
4180 * IPython/genutils.py (page): patch for the pager to work across
4202 * IPython/genutils.py (page): patch for the pager to work across
4181 various versions of Windows. By Gary Bishop.
4203 various versions of Windows. By Gary Bishop.
4182
4204
4183 2003-12-04 Fernando Perez <fperez@colorado.edu>
4205 2003-12-04 Fernando Perez <fperez@colorado.edu>
4184
4206
4185 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4207 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4186 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4208 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4187 While I tested this and it looks ok, there may still be corner
4209 While I tested this and it looks ok, there may still be corner
4188 cases I've missed.
4210 cases I've missed.
4189
4211
4190 2003-12-01 Fernando Perez <fperez@colorado.edu>
4212 2003-12-01 Fernando Perez <fperez@colorado.edu>
4191
4213
4192 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4214 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4193 where a line like 'p,q=1,2' would fail because the automagic
4215 where a line like 'p,q=1,2' would fail because the automagic
4194 system would be triggered for @p.
4216 system would be triggered for @p.
4195
4217
4196 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4218 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4197 cleanups, code unmodified.
4219 cleanups, code unmodified.
4198
4220
4199 * IPython/genutils.py (Term): added a class for IPython to handle
4221 * IPython/genutils.py (Term): added a class for IPython to handle
4200 output. In most cases it will just be a proxy for stdout/err, but
4222 output. In most cases it will just be a proxy for stdout/err, but
4201 having this allows modifications to be made for some platforms,
4223 having this allows modifications to be made for some platforms,
4202 such as handling color escapes under Windows. All of this code
4224 such as handling color escapes under Windows. All of this code
4203 was contributed by Gary Bishop, with minor modifications by me.
4225 was contributed by Gary Bishop, with minor modifications by me.
4204 The actual changes affect many files.
4226 The actual changes affect many files.
4205
4227
4206 2003-11-30 Fernando Perez <fperez@colorado.edu>
4228 2003-11-30 Fernando Perez <fperez@colorado.edu>
4207
4229
4208 * IPython/iplib.py (file_matches): new completion code, courtesy
4230 * IPython/iplib.py (file_matches): new completion code, courtesy
4209 of Jeff Collins. This enables filename completion again under
4231 of Jeff Collins. This enables filename completion again under
4210 python 2.3, which disabled it at the C level.
4232 python 2.3, which disabled it at the C level.
4211
4233
4212 2003-11-11 Fernando Perez <fperez@colorado.edu>
4234 2003-11-11 Fernando Perez <fperez@colorado.edu>
4213
4235
4214 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4236 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4215 for Numeric.array(map(...)), but often convenient.
4237 for Numeric.array(map(...)), but often convenient.
4216
4238
4217 2003-11-05 Fernando Perez <fperez@colorado.edu>
4239 2003-11-05 Fernando Perez <fperez@colorado.edu>
4218
4240
4219 * IPython/numutils.py (frange): Changed a call from int() to
4241 * IPython/numutils.py (frange): Changed a call from int() to
4220 int(round()) to prevent a problem reported with arange() in the
4242 int(round()) to prevent a problem reported with arange() in the
4221 numpy list.
4243 numpy list.
4222
4244
4223 2003-10-06 Fernando Perez <fperez@colorado.edu>
4245 2003-10-06 Fernando Perez <fperez@colorado.edu>
4224
4246
4225 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4247 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4226 prevent crashes if sys lacks an argv attribute (it happens with
4248 prevent crashes if sys lacks an argv attribute (it happens with
4227 embedded interpreters which build a bare-bones sys module).
4249 embedded interpreters which build a bare-bones sys module).
4228 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4250 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4229
4251
4230 2003-09-24 Fernando Perez <fperez@colorado.edu>
4252 2003-09-24 Fernando Perez <fperez@colorado.edu>
4231
4253
4232 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4254 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4233 to protect against poorly written user objects where __getattr__
4255 to protect against poorly written user objects where __getattr__
4234 raises exceptions other than AttributeError. Thanks to a bug
4256 raises exceptions other than AttributeError. Thanks to a bug
4235 report by Oliver Sander <osander-AT-gmx.de>.
4257 report by Oliver Sander <osander-AT-gmx.de>.
4236
4258
4237 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4259 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4238 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4260 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4239
4261
4240 2003-09-09 Fernando Perez <fperez@colorado.edu>
4262 2003-09-09 Fernando Perez <fperez@colorado.edu>
4241
4263
4242 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4264 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4243 unpacking a list whith a callable as first element would
4265 unpacking a list whith a callable as first element would
4244 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4266 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4245 Collins.
4267 Collins.
4246
4268
4247 2003-08-25 *** Released version 0.5.0
4269 2003-08-25 *** Released version 0.5.0
4248
4270
4249 2003-08-22 Fernando Perez <fperez@colorado.edu>
4271 2003-08-22 Fernando Perez <fperez@colorado.edu>
4250
4272
4251 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4273 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4252 improperly defined user exceptions. Thanks to feedback from Mark
4274 improperly defined user exceptions. Thanks to feedback from Mark
4253 Russell <mrussell-AT-verio.net>.
4275 Russell <mrussell-AT-verio.net>.
4254
4276
4255 2003-08-20 Fernando Perez <fperez@colorado.edu>
4277 2003-08-20 Fernando Perez <fperez@colorado.edu>
4256
4278
4257 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4279 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4258 printing so that it would print multi-line string forms starting
4280 printing so that it would print multi-line string forms starting
4259 with a new line. This way the formatting is better respected for
4281 with a new line. This way the formatting is better respected for
4260 objects which work hard to make nice string forms.
4282 objects which work hard to make nice string forms.
4261
4283
4262 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4284 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4263 autocall would overtake data access for objects with both
4285 autocall would overtake data access for objects with both
4264 __getitem__ and __call__.
4286 __getitem__ and __call__.
4265
4287
4266 2003-08-19 *** Released version 0.5.0-rc1
4288 2003-08-19 *** Released version 0.5.0-rc1
4267
4289
4268 2003-08-19 Fernando Perez <fperez@colorado.edu>
4290 2003-08-19 Fernando Perez <fperez@colorado.edu>
4269
4291
4270 * IPython/deep_reload.py (load_tail): single tiny change here
4292 * IPython/deep_reload.py (load_tail): single tiny change here
4271 seems to fix the long-standing bug of dreload() failing to work
4293 seems to fix the long-standing bug of dreload() failing to work
4272 for dotted names. But this module is pretty tricky, so I may have
4294 for dotted names. But this module is pretty tricky, so I may have
4273 missed some subtlety. Needs more testing!.
4295 missed some subtlety. Needs more testing!.
4274
4296
4275 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4297 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4276 exceptions which have badly implemented __str__ methods.
4298 exceptions which have badly implemented __str__ methods.
4277 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4299 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4278 which I've been getting reports about from Python 2.3 users. I
4300 which I've been getting reports about from Python 2.3 users. I
4279 wish I had a simple test case to reproduce the problem, so I could
4301 wish I had a simple test case to reproduce the problem, so I could
4280 either write a cleaner workaround or file a bug report if
4302 either write a cleaner workaround or file a bug report if
4281 necessary.
4303 necessary.
4282
4304
4283 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4305 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4284 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4306 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4285 a bug report by Tjabo Kloppenburg.
4307 a bug report by Tjabo Kloppenburg.
4286
4308
4287 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4309 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4288 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4310 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4289 seems rather unstable. Thanks to a bug report by Tjabo
4311 seems rather unstable. Thanks to a bug report by Tjabo
4290 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4312 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4291
4313
4292 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4314 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4293 this out soon because of the critical fixes in the inner loop for
4315 this out soon because of the critical fixes in the inner loop for
4294 generators.
4316 generators.
4295
4317
4296 * IPython/Magic.py (Magic.getargspec): removed. This (and
4318 * IPython/Magic.py (Magic.getargspec): removed. This (and
4297 _get_def) have been obsoleted by OInspect for a long time, I
4319 _get_def) have been obsoleted by OInspect for a long time, I
4298 hadn't noticed that they were dead code.
4320 hadn't noticed that they were dead code.
4299 (Magic._ofind): restored _ofind functionality for a few literals
4321 (Magic._ofind): restored _ofind functionality for a few literals
4300 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4322 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4301 for things like "hello".capitalize?, since that would require a
4323 for things like "hello".capitalize?, since that would require a
4302 potentially dangerous eval() again.
4324 potentially dangerous eval() again.
4303
4325
4304 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4326 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4305 logic a bit more to clean up the escapes handling and minimize the
4327 logic a bit more to clean up the escapes handling and minimize the
4306 use of _ofind to only necessary cases. The interactive 'feel' of
4328 use of _ofind to only necessary cases. The interactive 'feel' of
4307 IPython should have improved quite a bit with the changes in
4329 IPython should have improved quite a bit with the changes in
4308 _prefilter and _ofind (besides being far safer than before).
4330 _prefilter and _ofind (besides being far safer than before).
4309
4331
4310 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4332 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4311 obscure, never reported). Edit would fail to find the object to
4333 obscure, never reported). Edit would fail to find the object to
4312 edit under some circumstances.
4334 edit under some circumstances.
4313 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4335 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4314 which were causing double-calling of generators. Those eval calls
4336 which were causing double-calling of generators. Those eval calls
4315 were _very_ dangerous, since code with side effects could be
4337 were _very_ dangerous, since code with side effects could be
4316 triggered. As they say, 'eval is evil'... These were the
4338 triggered. As they say, 'eval is evil'... These were the
4317 nastiest evals in IPython. Besides, _ofind is now far simpler,
4339 nastiest evals in IPython. Besides, _ofind is now far simpler,
4318 and it should also be quite a bit faster. Its use of inspect is
4340 and it should also be quite a bit faster. Its use of inspect is
4319 also safer, so perhaps some of the inspect-related crashes I've
4341 also safer, so perhaps some of the inspect-related crashes I've
4320 seen lately with Python 2.3 might be taken care of. That will
4342 seen lately with Python 2.3 might be taken care of. That will
4321 need more testing.
4343 need more testing.
4322
4344
4323 2003-08-17 Fernando Perez <fperez@colorado.edu>
4345 2003-08-17 Fernando Perez <fperez@colorado.edu>
4324
4346
4325 * IPython/iplib.py (InteractiveShell._prefilter): significant
4347 * IPython/iplib.py (InteractiveShell._prefilter): significant
4326 simplifications to the logic for handling user escapes. Faster
4348 simplifications to the logic for handling user escapes. Faster
4327 and simpler code.
4349 and simpler code.
4328
4350
4329 2003-08-14 Fernando Perez <fperez@colorado.edu>
4351 2003-08-14 Fernando Perez <fperez@colorado.edu>
4330
4352
4331 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4353 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4332 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4354 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4333 but it should be quite a bit faster. And the recursive version
4355 but it should be quite a bit faster. And the recursive version
4334 generated O(log N) intermediate storage for all rank>1 arrays,
4356 generated O(log N) intermediate storage for all rank>1 arrays,
4335 even if they were contiguous.
4357 even if they were contiguous.
4336 (l1norm): Added this function.
4358 (l1norm): Added this function.
4337 (norm): Added this function for arbitrary norms (including
4359 (norm): Added this function for arbitrary norms (including
4338 l-infinity). l1 and l2 are still special cases for convenience
4360 l-infinity). l1 and l2 are still special cases for convenience
4339 and speed.
4361 and speed.
4340
4362
4341 2003-08-03 Fernando Perez <fperez@colorado.edu>
4363 2003-08-03 Fernando Perez <fperez@colorado.edu>
4342
4364
4343 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4365 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4344 exceptions, which now raise PendingDeprecationWarnings in Python
4366 exceptions, which now raise PendingDeprecationWarnings in Python
4345 2.3. There were some in Magic and some in Gnuplot2.
4367 2.3. There were some in Magic and some in Gnuplot2.
4346
4368
4347 2003-06-30 Fernando Perez <fperez@colorado.edu>
4369 2003-06-30 Fernando Perez <fperez@colorado.edu>
4348
4370
4349 * IPython/genutils.py (page): modified to call curses only for
4371 * IPython/genutils.py (page): modified to call curses only for
4350 terminals where TERM=='xterm'. After problems under many other
4372 terminals where TERM=='xterm'. After problems under many other
4351 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4373 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4352
4374
4353 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4375 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4354 would be triggered when readline was absent. This was just an old
4376 would be triggered when readline was absent. This was just an old
4355 debugging statement I'd forgotten to take out.
4377 debugging statement I'd forgotten to take out.
4356
4378
4357 2003-06-20 Fernando Perez <fperez@colorado.edu>
4379 2003-06-20 Fernando Perez <fperez@colorado.edu>
4358
4380
4359 * IPython/genutils.py (clock): modified to return only user time
4381 * IPython/genutils.py (clock): modified to return only user time
4360 (not counting system time), after a discussion on scipy. While
4382 (not counting system time), after a discussion on scipy. While
4361 system time may be a useful quantity occasionally, it may much
4383 system time may be a useful quantity occasionally, it may much
4362 more easily be skewed by occasional swapping or other similar
4384 more easily be skewed by occasional swapping or other similar
4363 activity.
4385 activity.
4364
4386
4365 2003-06-05 Fernando Perez <fperez@colorado.edu>
4387 2003-06-05 Fernando Perez <fperez@colorado.edu>
4366
4388
4367 * IPython/numutils.py (identity): new function, for building
4389 * IPython/numutils.py (identity): new function, for building
4368 arbitrary rank Kronecker deltas (mostly backwards compatible with
4390 arbitrary rank Kronecker deltas (mostly backwards compatible with
4369 Numeric.identity)
4391 Numeric.identity)
4370
4392
4371 2003-06-03 Fernando Perez <fperez@colorado.edu>
4393 2003-06-03 Fernando Perez <fperez@colorado.edu>
4372
4394
4373 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4395 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4374 arguments passed to magics with spaces, to allow trailing '\' to
4396 arguments passed to magics with spaces, to allow trailing '\' to
4375 work normally (mainly for Windows users).
4397 work normally (mainly for Windows users).
4376
4398
4377 2003-05-29 Fernando Perez <fperez@colorado.edu>
4399 2003-05-29 Fernando Perez <fperez@colorado.edu>
4378
4400
4379 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4401 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4380 instead of pydoc.help. This fixes a bizarre behavior where
4402 instead of pydoc.help. This fixes a bizarre behavior where
4381 printing '%s' % locals() would trigger the help system. Now
4403 printing '%s' % locals() would trigger the help system. Now
4382 ipython behaves like normal python does.
4404 ipython behaves like normal python does.
4383
4405
4384 Note that if one does 'from pydoc import help', the bizarre
4406 Note that if one does 'from pydoc import help', the bizarre
4385 behavior returns, but this will also happen in normal python, so
4407 behavior returns, but this will also happen in normal python, so
4386 it's not an ipython bug anymore (it has to do with how pydoc.help
4408 it's not an ipython bug anymore (it has to do with how pydoc.help
4387 is implemented).
4409 is implemented).
4388
4410
4389 2003-05-22 Fernando Perez <fperez@colorado.edu>
4411 2003-05-22 Fernando Perez <fperez@colorado.edu>
4390
4412
4391 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4413 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4392 return [] instead of None when nothing matches, also match to end
4414 return [] instead of None when nothing matches, also match to end
4393 of line. Patch by Gary Bishop.
4415 of line. Patch by Gary Bishop.
4394
4416
4395 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4417 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4396 protection as before, for files passed on the command line. This
4418 protection as before, for files passed on the command line. This
4397 prevents the CrashHandler from kicking in if user files call into
4419 prevents the CrashHandler from kicking in if user files call into
4398 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4420 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4399 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4421 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4400
4422
4401 2003-05-20 *** Released version 0.4.0
4423 2003-05-20 *** Released version 0.4.0
4402
4424
4403 2003-05-20 Fernando Perez <fperez@colorado.edu>
4425 2003-05-20 Fernando Perez <fperez@colorado.edu>
4404
4426
4405 * setup.py: added support for manpages. It's a bit hackish b/c of
4427 * setup.py: added support for manpages. It's a bit hackish b/c of
4406 a bug in the way the bdist_rpm distutils target handles gzipped
4428 a bug in the way the bdist_rpm distutils target handles gzipped
4407 manpages, but it works. After a patch by Jack.
4429 manpages, but it works. After a patch by Jack.
4408
4430
4409 2003-05-19 Fernando Perez <fperez@colorado.edu>
4431 2003-05-19 Fernando Perez <fperez@colorado.edu>
4410
4432
4411 * IPython/numutils.py: added a mockup of the kinds module, since
4433 * IPython/numutils.py: added a mockup of the kinds module, since
4412 it was recently removed from Numeric. This way, numutils will
4434 it was recently removed from Numeric. This way, numutils will
4413 work for all users even if they are missing kinds.
4435 work for all users even if they are missing kinds.
4414
4436
4415 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4437 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4416 failure, which can occur with SWIG-wrapped extensions. After a
4438 failure, which can occur with SWIG-wrapped extensions. After a
4417 crash report from Prabhu.
4439 crash report from Prabhu.
4418
4440
4419 2003-05-16 Fernando Perez <fperez@colorado.edu>
4441 2003-05-16 Fernando Perez <fperez@colorado.edu>
4420
4442
4421 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4443 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4422 protect ipython from user code which may call directly
4444 protect ipython from user code which may call directly
4423 sys.excepthook (this looks like an ipython crash to the user, even
4445 sys.excepthook (this looks like an ipython crash to the user, even
4424 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4446 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4425 This is especially important to help users of WxWindows, but may
4447 This is especially important to help users of WxWindows, but may
4426 also be useful in other cases.
4448 also be useful in other cases.
4427
4449
4428 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4450 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4429 an optional tb_offset to be specified, and to preserve exception
4451 an optional tb_offset to be specified, and to preserve exception
4430 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4452 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4431
4453
4432 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4454 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4433
4455
4434 2003-05-15 Fernando Perez <fperez@colorado.edu>
4456 2003-05-15 Fernando Perez <fperez@colorado.edu>
4435
4457
4436 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4458 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4437 installing for a new user under Windows.
4459 installing for a new user under Windows.
4438
4460
4439 2003-05-12 Fernando Perez <fperez@colorado.edu>
4461 2003-05-12 Fernando Perez <fperez@colorado.edu>
4440
4462
4441 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4463 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4442 handler for Emacs comint-based lines. Currently it doesn't do
4464 handler for Emacs comint-based lines. Currently it doesn't do
4443 much (but importantly, it doesn't update the history cache). In
4465 much (but importantly, it doesn't update the history cache). In
4444 the future it may be expanded if Alex needs more functionality
4466 the future it may be expanded if Alex needs more functionality
4445 there.
4467 there.
4446
4468
4447 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4469 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4448 info to crash reports.
4470 info to crash reports.
4449
4471
4450 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4472 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4451 just like Python's -c. Also fixed crash with invalid -color
4473 just like Python's -c. Also fixed crash with invalid -color
4452 option value at startup. Thanks to Will French
4474 option value at startup. Thanks to Will French
4453 <wfrench-AT-bestweb.net> for the bug report.
4475 <wfrench-AT-bestweb.net> for the bug report.
4454
4476
4455 2003-05-09 Fernando Perez <fperez@colorado.edu>
4477 2003-05-09 Fernando Perez <fperez@colorado.edu>
4456
4478
4457 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4479 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4458 to EvalDict (it's a mapping, after all) and simplified its code
4480 to EvalDict (it's a mapping, after all) and simplified its code
4459 quite a bit, after a nice discussion on c.l.py where Gustavo
4481 quite a bit, after a nice discussion on c.l.py where Gustavo
4460 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4482 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4461
4483
4462 2003-04-30 Fernando Perez <fperez@colorado.edu>
4484 2003-04-30 Fernando Perez <fperez@colorado.edu>
4463
4485
4464 * IPython/genutils.py (timings_out): modified it to reduce its
4486 * IPython/genutils.py (timings_out): modified it to reduce its
4465 overhead in the common reps==1 case.
4487 overhead in the common reps==1 case.
4466
4488
4467 2003-04-29 Fernando Perez <fperez@colorado.edu>
4489 2003-04-29 Fernando Perez <fperez@colorado.edu>
4468
4490
4469 * IPython/genutils.py (timings_out): Modified to use the resource
4491 * IPython/genutils.py (timings_out): Modified to use the resource
4470 module, which avoids the wraparound problems of time.clock().
4492 module, which avoids the wraparound problems of time.clock().
4471
4493
4472 2003-04-17 *** Released version 0.2.15pre4
4494 2003-04-17 *** Released version 0.2.15pre4
4473
4495
4474 2003-04-17 Fernando Perez <fperez@colorado.edu>
4496 2003-04-17 Fernando Perez <fperez@colorado.edu>
4475
4497
4476 * setup.py (scriptfiles): Split windows-specific stuff over to a
4498 * setup.py (scriptfiles): Split windows-specific stuff over to a
4477 separate file, in an attempt to have a Windows GUI installer.
4499 separate file, in an attempt to have a Windows GUI installer.
4478 That didn't work, but part of the groundwork is done.
4500 That didn't work, but part of the groundwork is done.
4479
4501
4480 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4502 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4481 indent/unindent with 4 spaces. Particularly useful in combination
4503 indent/unindent with 4 spaces. Particularly useful in combination
4482 with the new auto-indent option.
4504 with the new auto-indent option.
4483
4505
4484 2003-04-16 Fernando Perez <fperez@colorado.edu>
4506 2003-04-16 Fernando Perez <fperez@colorado.edu>
4485
4507
4486 * IPython/Magic.py: various replacements of self.rc for
4508 * IPython/Magic.py: various replacements of self.rc for
4487 self.shell.rc. A lot more remains to be done to fully disentangle
4509 self.shell.rc. A lot more remains to be done to fully disentangle
4488 this class from the main Shell class.
4510 this class from the main Shell class.
4489
4511
4490 * IPython/GnuplotRuntime.py: added checks for mouse support so
4512 * IPython/GnuplotRuntime.py: added checks for mouse support so
4491 that we don't try to enable it if the current gnuplot doesn't
4513 that we don't try to enable it if the current gnuplot doesn't
4492 really support it. Also added checks so that we don't try to
4514 really support it. Also added checks so that we don't try to
4493 enable persist under Windows (where Gnuplot doesn't recognize the
4515 enable persist under Windows (where Gnuplot doesn't recognize the
4494 option).
4516 option).
4495
4517
4496 * IPython/iplib.py (InteractiveShell.interact): Added optional
4518 * IPython/iplib.py (InteractiveShell.interact): Added optional
4497 auto-indenting code, after a patch by King C. Shu
4519 auto-indenting code, after a patch by King C. Shu
4498 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4520 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4499 get along well with pasting indented code. If I ever figure out
4521 get along well with pasting indented code. If I ever figure out
4500 how to make that part go well, it will become on by default.
4522 how to make that part go well, it will become on by default.
4501
4523
4502 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4524 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4503 crash ipython if there was an unmatched '%' in the user's prompt
4525 crash ipython if there was an unmatched '%' in the user's prompt
4504 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4526 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4505
4527
4506 * IPython/iplib.py (InteractiveShell.interact): removed the
4528 * IPython/iplib.py (InteractiveShell.interact): removed the
4507 ability to ask the user whether he wants to crash or not at the
4529 ability to ask the user whether he wants to crash or not at the
4508 'last line' exception handler. Calling functions at that point
4530 'last line' exception handler. Calling functions at that point
4509 changes the stack, and the error reports would have incorrect
4531 changes the stack, and the error reports would have incorrect
4510 tracebacks.
4532 tracebacks.
4511
4533
4512 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4534 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4513 pass through a peger a pretty-printed form of any object. After a
4535 pass through a peger a pretty-printed form of any object. After a
4514 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4536 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4515
4537
4516 2003-04-14 Fernando Perez <fperez@colorado.edu>
4538 2003-04-14 Fernando Perez <fperez@colorado.edu>
4517
4539
4518 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4540 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4519 all files in ~ would be modified at first install (instead of
4541 all files in ~ would be modified at first install (instead of
4520 ~/.ipython). This could be potentially disastrous, as the
4542 ~/.ipython). This could be potentially disastrous, as the
4521 modification (make line-endings native) could damage binary files.
4543 modification (make line-endings native) could damage binary files.
4522
4544
4523 2003-04-10 Fernando Perez <fperez@colorado.edu>
4545 2003-04-10 Fernando Perez <fperez@colorado.edu>
4524
4546
4525 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4547 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4526 handle only lines which are invalid python. This now means that
4548 handle only lines which are invalid python. This now means that
4527 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4549 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4528 for the bug report.
4550 for the bug report.
4529
4551
4530 2003-04-01 Fernando Perez <fperez@colorado.edu>
4552 2003-04-01 Fernando Perez <fperez@colorado.edu>
4531
4553
4532 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4554 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4533 where failing to set sys.last_traceback would crash pdb.pm().
4555 where failing to set sys.last_traceback would crash pdb.pm().
4534 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4556 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4535 report.
4557 report.
4536
4558
4537 2003-03-25 Fernando Perez <fperez@colorado.edu>
4559 2003-03-25 Fernando Perez <fperez@colorado.edu>
4538
4560
4539 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4561 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4540 before printing it (it had a lot of spurious blank lines at the
4562 before printing it (it had a lot of spurious blank lines at the
4541 end).
4563 end).
4542
4564
4543 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4565 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4544 output would be sent 21 times! Obviously people don't use this
4566 output would be sent 21 times! Obviously people don't use this
4545 too often, or I would have heard about it.
4567 too often, or I would have heard about it.
4546
4568
4547 2003-03-24 Fernando Perez <fperez@colorado.edu>
4569 2003-03-24 Fernando Perez <fperez@colorado.edu>
4548
4570
4549 * setup.py (scriptfiles): renamed the data_files parameter from
4571 * setup.py (scriptfiles): renamed the data_files parameter from
4550 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4572 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4551 for the patch.
4573 for the patch.
4552
4574
4553 2003-03-20 Fernando Perez <fperez@colorado.edu>
4575 2003-03-20 Fernando Perez <fperez@colorado.edu>
4554
4576
4555 * IPython/genutils.py (error): added error() and fatal()
4577 * IPython/genutils.py (error): added error() and fatal()
4556 functions.
4578 functions.
4557
4579
4558 2003-03-18 *** Released version 0.2.15pre3
4580 2003-03-18 *** Released version 0.2.15pre3
4559
4581
4560 2003-03-18 Fernando Perez <fperez@colorado.edu>
4582 2003-03-18 Fernando Perez <fperez@colorado.edu>
4561
4583
4562 * setupext/install_data_ext.py
4584 * setupext/install_data_ext.py
4563 (install_data_ext.initialize_options): Class contributed by Jack
4585 (install_data_ext.initialize_options): Class contributed by Jack
4564 Moffit for fixing the old distutils hack. He is sending this to
4586 Moffit for fixing the old distutils hack. He is sending this to
4565 the distutils folks so in the future we may not need it as a
4587 the distutils folks so in the future we may not need it as a
4566 private fix.
4588 private fix.
4567
4589
4568 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4590 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4569 changes for Debian packaging. See his patch for full details.
4591 changes for Debian packaging. See his patch for full details.
4570 The old distutils hack of making the ipythonrc* files carry a
4592 The old distutils hack of making the ipythonrc* files carry a
4571 bogus .py extension is gone, at last. Examples were moved to a
4593 bogus .py extension is gone, at last. Examples were moved to a
4572 separate subdir under doc/, and the separate executable scripts
4594 separate subdir under doc/, and the separate executable scripts
4573 now live in their own directory. Overall a great cleanup. The
4595 now live in their own directory. Overall a great cleanup. The
4574 manual was updated to use the new files, and setup.py has been
4596 manual was updated to use the new files, and setup.py has been
4575 fixed for this setup.
4597 fixed for this setup.
4576
4598
4577 * IPython/PyColorize.py (Parser.usage): made non-executable and
4599 * IPython/PyColorize.py (Parser.usage): made non-executable and
4578 created a pycolor wrapper around it to be included as a script.
4600 created a pycolor wrapper around it to be included as a script.
4579
4601
4580 2003-03-12 *** Released version 0.2.15pre2
4602 2003-03-12 *** Released version 0.2.15pre2
4581
4603
4582 2003-03-12 Fernando Perez <fperez@colorado.edu>
4604 2003-03-12 Fernando Perez <fperez@colorado.edu>
4583
4605
4584 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4606 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4585 long-standing problem with garbage characters in some terminals.
4607 long-standing problem with garbage characters in some terminals.
4586 The issue was really that the \001 and \002 escapes must _only_ be
4608 The issue was really that the \001 and \002 escapes must _only_ be
4587 passed to input prompts (which call readline), but _never_ to
4609 passed to input prompts (which call readline), but _never_ to
4588 normal text to be printed on screen. I changed ColorANSI to have
4610 normal text to be printed on screen. I changed ColorANSI to have
4589 two classes: TermColors and InputTermColors, each with the
4611 two classes: TermColors and InputTermColors, each with the
4590 appropriate escapes for input prompts or normal text. The code in
4612 appropriate escapes for input prompts or normal text. The code in
4591 Prompts.py got slightly more complicated, but this very old and
4613 Prompts.py got slightly more complicated, but this very old and
4592 annoying bug is finally fixed.
4614 annoying bug is finally fixed.
4593
4615
4594 All the credit for nailing down the real origin of this problem
4616 All the credit for nailing down the real origin of this problem
4595 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4617 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4596 *Many* thanks to him for spending quite a bit of effort on this.
4618 *Many* thanks to him for spending quite a bit of effort on this.
4597
4619
4598 2003-03-05 *** Released version 0.2.15pre1
4620 2003-03-05 *** Released version 0.2.15pre1
4599
4621
4600 2003-03-03 Fernando Perez <fperez@colorado.edu>
4622 2003-03-03 Fernando Perez <fperez@colorado.edu>
4601
4623
4602 * IPython/FakeModule.py: Moved the former _FakeModule to a
4624 * IPython/FakeModule.py: Moved the former _FakeModule to a
4603 separate file, because it's also needed by Magic (to fix a similar
4625 separate file, because it's also needed by Magic (to fix a similar
4604 pickle-related issue in @run).
4626 pickle-related issue in @run).
4605
4627
4606 2003-03-02 Fernando Perez <fperez@colorado.edu>
4628 2003-03-02 Fernando Perez <fperez@colorado.edu>
4607
4629
4608 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4630 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4609 the autocall option at runtime.
4631 the autocall option at runtime.
4610 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4632 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4611 across Magic.py to start separating Magic from InteractiveShell.
4633 across Magic.py to start separating Magic from InteractiveShell.
4612 (Magic._ofind): Fixed to return proper namespace for dotted
4634 (Magic._ofind): Fixed to return proper namespace for dotted
4613 names. Before, a dotted name would always return 'not currently
4635 names. Before, a dotted name would always return 'not currently
4614 defined', because it would find the 'parent'. s.x would be found,
4636 defined', because it would find the 'parent'. s.x would be found,
4615 but since 'x' isn't defined by itself, it would get confused.
4637 but since 'x' isn't defined by itself, it would get confused.
4616 (Magic.magic_run): Fixed pickling problems reported by Ralf
4638 (Magic.magic_run): Fixed pickling problems reported by Ralf
4617 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4639 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4618 that I'd used when Mike Heeter reported similar issues at the
4640 that I'd used when Mike Heeter reported similar issues at the
4619 top-level, but now for @run. It boils down to injecting the
4641 top-level, but now for @run. It boils down to injecting the
4620 namespace where code is being executed with something that looks
4642 namespace where code is being executed with something that looks
4621 enough like a module to fool pickle.dump(). Since a pickle stores
4643 enough like a module to fool pickle.dump(). Since a pickle stores
4622 a named reference to the importing module, we need this for
4644 a named reference to the importing module, we need this for
4623 pickles to save something sensible.
4645 pickles to save something sensible.
4624
4646
4625 * IPython/ipmaker.py (make_IPython): added an autocall option.
4647 * IPython/ipmaker.py (make_IPython): added an autocall option.
4626
4648
4627 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4649 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4628 the auto-eval code. Now autocalling is an option, and the code is
4650 the auto-eval code. Now autocalling is an option, and the code is
4629 also vastly safer. There is no more eval() involved at all.
4651 also vastly safer. There is no more eval() involved at all.
4630
4652
4631 2003-03-01 Fernando Perez <fperez@colorado.edu>
4653 2003-03-01 Fernando Perez <fperez@colorado.edu>
4632
4654
4633 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4655 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4634 dict with named keys instead of a tuple.
4656 dict with named keys instead of a tuple.
4635
4657
4636 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4658 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4637
4659
4638 * setup.py (make_shortcut): Fixed message about directories
4660 * setup.py (make_shortcut): Fixed message about directories
4639 created during Windows installation (the directories were ok, just
4661 created during Windows installation (the directories were ok, just
4640 the printed message was misleading). Thanks to Chris Liechti
4662 the printed message was misleading). Thanks to Chris Liechti
4641 <cliechti-AT-gmx.net> for the heads up.
4663 <cliechti-AT-gmx.net> for the heads up.
4642
4664
4643 2003-02-21 Fernando Perez <fperez@colorado.edu>
4665 2003-02-21 Fernando Perez <fperez@colorado.edu>
4644
4666
4645 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4667 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4646 of ValueError exception when checking for auto-execution. This
4668 of ValueError exception when checking for auto-execution. This
4647 one is raised by things like Numeric arrays arr.flat when the
4669 one is raised by things like Numeric arrays arr.flat when the
4648 array is non-contiguous.
4670 array is non-contiguous.
4649
4671
4650 2003-01-31 Fernando Perez <fperez@colorado.edu>
4672 2003-01-31 Fernando Perez <fperez@colorado.edu>
4651
4673
4652 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4674 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4653 not return any value at all (even though the command would get
4675 not return any value at all (even though the command would get
4654 executed).
4676 executed).
4655 (xsys): Flush stdout right after printing the command to ensure
4677 (xsys): Flush stdout right after printing the command to ensure
4656 proper ordering of commands and command output in the total
4678 proper ordering of commands and command output in the total
4657 output.
4679 output.
4658 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4680 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4659 system/getoutput as defaults. The old ones are kept for
4681 system/getoutput as defaults. The old ones are kept for
4660 compatibility reasons, so no code which uses this library needs
4682 compatibility reasons, so no code which uses this library needs
4661 changing.
4683 changing.
4662
4684
4663 2003-01-27 *** Released version 0.2.14
4685 2003-01-27 *** Released version 0.2.14
4664
4686
4665 2003-01-25 Fernando Perez <fperez@colorado.edu>
4687 2003-01-25 Fernando Perez <fperez@colorado.edu>
4666
4688
4667 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4689 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4668 functions defined in previous edit sessions could not be re-edited
4690 functions defined in previous edit sessions could not be re-edited
4669 (because the temp files were immediately removed). Now temp files
4691 (because the temp files were immediately removed). Now temp files
4670 are removed only at IPython's exit.
4692 are removed only at IPython's exit.
4671 (Magic.magic_run): Improved @run to perform shell-like expansions
4693 (Magic.magic_run): Improved @run to perform shell-like expansions
4672 on its arguments (~users and $VARS). With this, @run becomes more
4694 on its arguments (~users and $VARS). With this, @run becomes more
4673 like a normal command-line.
4695 like a normal command-line.
4674
4696
4675 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4697 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4676 bugs related to embedding and cleaned up that code. A fairly
4698 bugs related to embedding and cleaned up that code. A fairly
4677 important one was the impossibility to access the global namespace
4699 important one was the impossibility to access the global namespace
4678 through the embedded IPython (only local variables were visible).
4700 through the embedded IPython (only local variables were visible).
4679
4701
4680 2003-01-14 Fernando Perez <fperez@colorado.edu>
4702 2003-01-14 Fernando Perez <fperez@colorado.edu>
4681
4703
4682 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4704 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4683 auto-calling to be a bit more conservative. Now it doesn't get
4705 auto-calling to be a bit more conservative. Now it doesn't get
4684 triggered if any of '!=()<>' are in the rest of the input line, to
4706 triggered if any of '!=()<>' are in the rest of the input line, to
4685 allow comparing callables. Thanks to Alex for the heads up.
4707 allow comparing callables. Thanks to Alex for the heads up.
4686
4708
4687 2003-01-07 Fernando Perez <fperez@colorado.edu>
4709 2003-01-07 Fernando Perez <fperez@colorado.edu>
4688
4710
4689 * IPython/genutils.py (page): fixed estimation of the number of
4711 * IPython/genutils.py (page): fixed estimation of the number of
4690 lines in a string to be paged to simply count newlines. This
4712 lines in a string to be paged to simply count newlines. This
4691 prevents over-guessing due to embedded escape sequences. A better
4713 prevents over-guessing due to embedded escape sequences. A better
4692 long-term solution would involve stripping out the control chars
4714 long-term solution would involve stripping out the control chars
4693 for the count, but it's potentially so expensive I just don't
4715 for the count, but it's potentially so expensive I just don't
4694 think it's worth doing.
4716 think it's worth doing.
4695
4717
4696 2002-12-19 *** Released version 0.2.14pre50
4718 2002-12-19 *** Released version 0.2.14pre50
4697
4719
4698 2002-12-19 Fernando Perez <fperez@colorado.edu>
4720 2002-12-19 Fernando Perez <fperez@colorado.edu>
4699
4721
4700 * tools/release (version): Changed release scripts to inform
4722 * tools/release (version): Changed release scripts to inform
4701 Andrea and build a NEWS file with a list of recent changes.
4723 Andrea and build a NEWS file with a list of recent changes.
4702
4724
4703 * IPython/ColorANSI.py (__all__): changed terminal detection
4725 * IPython/ColorANSI.py (__all__): changed terminal detection
4704 code. Seems to work better for xterms without breaking
4726 code. Seems to work better for xterms without breaking
4705 konsole. Will need more testing to determine if WinXP and Mac OSX
4727 konsole. Will need more testing to determine if WinXP and Mac OSX
4706 also work ok.
4728 also work ok.
4707
4729
4708 2002-12-18 *** Released version 0.2.14pre49
4730 2002-12-18 *** Released version 0.2.14pre49
4709
4731
4710 2002-12-18 Fernando Perez <fperez@colorado.edu>
4732 2002-12-18 Fernando Perez <fperez@colorado.edu>
4711
4733
4712 * Docs: added new info about Mac OSX, from Andrea.
4734 * Docs: added new info about Mac OSX, from Andrea.
4713
4735
4714 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4736 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4715 allow direct plotting of python strings whose format is the same
4737 allow direct plotting of python strings whose format is the same
4716 of gnuplot data files.
4738 of gnuplot data files.
4717
4739
4718 2002-12-16 Fernando Perez <fperez@colorado.edu>
4740 2002-12-16 Fernando Perez <fperez@colorado.edu>
4719
4741
4720 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4742 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4721 value of exit question to be acknowledged.
4743 value of exit question to be acknowledged.
4722
4744
4723 2002-12-03 Fernando Perez <fperez@colorado.edu>
4745 2002-12-03 Fernando Perez <fperez@colorado.edu>
4724
4746
4725 * IPython/ipmaker.py: removed generators, which had been added
4747 * IPython/ipmaker.py: removed generators, which had been added
4726 by mistake in an earlier debugging run. This was causing trouble
4748 by mistake in an earlier debugging run. This was causing trouble
4727 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4749 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4728 for pointing this out.
4750 for pointing this out.
4729
4751
4730 2002-11-17 Fernando Perez <fperez@colorado.edu>
4752 2002-11-17 Fernando Perez <fperez@colorado.edu>
4731
4753
4732 * Manual: updated the Gnuplot section.
4754 * Manual: updated the Gnuplot section.
4733
4755
4734 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4756 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4735 a much better split of what goes in Runtime and what goes in
4757 a much better split of what goes in Runtime and what goes in
4736 Interactive.
4758 Interactive.
4737
4759
4738 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4760 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4739 being imported from iplib.
4761 being imported from iplib.
4740
4762
4741 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4763 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4742 for command-passing. Now the global Gnuplot instance is called
4764 for command-passing. Now the global Gnuplot instance is called
4743 'gp' instead of 'g', which was really a far too fragile and
4765 'gp' instead of 'g', which was really a far too fragile and
4744 common name.
4766 common name.
4745
4767
4746 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4768 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4747 bounding boxes generated by Gnuplot for square plots.
4769 bounding boxes generated by Gnuplot for square plots.
4748
4770
4749 * IPython/genutils.py (popkey): new function added. I should
4771 * IPython/genutils.py (popkey): new function added. I should
4750 suggest this on c.l.py as a dict method, it seems useful.
4772 suggest this on c.l.py as a dict method, it seems useful.
4751
4773
4752 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4774 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4753 to transparently handle PostScript generation. MUCH better than
4775 to transparently handle PostScript generation. MUCH better than
4754 the previous plot_eps/replot_eps (which I removed now). The code
4776 the previous plot_eps/replot_eps (which I removed now). The code
4755 is also fairly clean and well documented now (including
4777 is also fairly clean and well documented now (including
4756 docstrings).
4778 docstrings).
4757
4779
4758 2002-11-13 Fernando Perez <fperez@colorado.edu>
4780 2002-11-13 Fernando Perez <fperez@colorado.edu>
4759
4781
4760 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4782 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4761 (inconsistent with options).
4783 (inconsistent with options).
4762
4784
4763 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4785 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4764 manually disabled, I don't know why. Fixed it.
4786 manually disabled, I don't know why. Fixed it.
4765 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4787 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4766 eps output.
4788 eps output.
4767
4789
4768 2002-11-12 Fernando Perez <fperez@colorado.edu>
4790 2002-11-12 Fernando Perez <fperez@colorado.edu>
4769
4791
4770 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4792 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4771 don't propagate up to caller. Fixes crash reported by François
4793 don't propagate up to caller. Fixes crash reported by François
4772 Pinard.
4794 Pinard.
4773
4795
4774 2002-11-09 Fernando Perez <fperez@colorado.edu>
4796 2002-11-09 Fernando Perez <fperez@colorado.edu>
4775
4797
4776 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4798 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4777 history file for new users.
4799 history file for new users.
4778 (make_IPython): fixed bug where initial install would leave the
4800 (make_IPython): fixed bug where initial install would leave the
4779 user running in the .ipython dir.
4801 user running in the .ipython dir.
4780 (make_IPython): fixed bug where config dir .ipython would be
4802 (make_IPython): fixed bug where config dir .ipython would be
4781 created regardless of the given -ipythondir option. Thanks to Cory
4803 created regardless of the given -ipythondir option. Thanks to Cory
4782 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4804 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4783
4805
4784 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4806 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4785 type confirmations. Will need to use it in all of IPython's code
4807 type confirmations. Will need to use it in all of IPython's code
4786 consistently.
4808 consistently.
4787
4809
4788 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4810 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4789 context to print 31 lines instead of the default 5. This will make
4811 context to print 31 lines instead of the default 5. This will make
4790 the crash reports extremely detailed in case the problem is in
4812 the crash reports extremely detailed in case the problem is in
4791 libraries I don't have access to.
4813 libraries I don't have access to.
4792
4814
4793 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4815 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4794 line of defense' code to still crash, but giving users fair
4816 line of defense' code to still crash, but giving users fair
4795 warning. I don't want internal errors to go unreported: if there's
4817 warning. I don't want internal errors to go unreported: if there's
4796 an internal problem, IPython should crash and generate a full
4818 an internal problem, IPython should crash and generate a full
4797 report.
4819 report.
4798
4820
4799 2002-11-08 Fernando Perez <fperez@colorado.edu>
4821 2002-11-08 Fernando Perez <fperez@colorado.edu>
4800
4822
4801 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4823 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4802 otherwise uncaught exceptions which can appear if people set
4824 otherwise uncaught exceptions which can appear if people set
4803 sys.stdout to something badly broken. Thanks to a crash report
4825 sys.stdout to something badly broken. Thanks to a crash report
4804 from henni-AT-mail.brainbot.com.
4826 from henni-AT-mail.brainbot.com.
4805
4827
4806 2002-11-04 Fernando Perez <fperez@colorado.edu>
4828 2002-11-04 Fernando Perez <fperez@colorado.edu>
4807
4829
4808 * IPython/iplib.py (InteractiveShell.interact): added
4830 * IPython/iplib.py (InteractiveShell.interact): added
4809 __IPYTHON__active to the builtins. It's a flag which goes on when
4831 __IPYTHON__active to the builtins. It's a flag which goes on when
4810 the interaction starts and goes off again when it stops. This
4832 the interaction starts and goes off again when it stops. This
4811 allows embedding code to detect being inside IPython. Before this
4833 allows embedding code to detect being inside IPython. Before this
4812 was done via __IPYTHON__, but that only shows that an IPython
4834 was done via __IPYTHON__, but that only shows that an IPython
4813 instance has been created.
4835 instance has been created.
4814
4836
4815 * IPython/Magic.py (Magic.magic_env): I realized that in a
4837 * IPython/Magic.py (Magic.magic_env): I realized that in a
4816 UserDict, instance.data holds the data as a normal dict. So I
4838 UserDict, instance.data holds the data as a normal dict. So I
4817 modified @env to return os.environ.data instead of rebuilding a
4839 modified @env to return os.environ.data instead of rebuilding a
4818 dict by hand.
4840 dict by hand.
4819
4841
4820 2002-11-02 Fernando Perez <fperez@colorado.edu>
4842 2002-11-02 Fernando Perez <fperez@colorado.edu>
4821
4843
4822 * IPython/genutils.py (warn): changed so that level 1 prints no
4844 * IPython/genutils.py (warn): changed so that level 1 prints no
4823 header. Level 2 is now the default (with 'WARNING' header, as
4845 header. Level 2 is now the default (with 'WARNING' header, as
4824 before). I think I tracked all places where changes were needed in
4846 before). I think I tracked all places where changes were needed in
4825 IPython, but outside code using the old level numbering may have
4847 IPython, but outside code using the old level numbering may have
4826 broken.
4848 broken.
4827
4849
4828 * IPython/iplib.py (InteractiveShell.runcode): added this to
4850 * IPython/iplib.py (InteractiveShell.runcode): added this to
4829 handle the tracebacks in SystemExit traps correctly. The previous
4851 handle the tracebacks in SystemExit traps correctly. The previous
4830 code (through interact) was printing more of the stack than
4852 code (through interact) was printing more of the stack than
4831 necessary, showing IPython internal code to the user.
4853 necessary, showing IPython internal code to the user.
4832
4854
4833 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4855 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4834 default. Now that the default at the confirmation prompt is yes,
4856 default. Now that the default at the confirmation prompt is yes,
4835 it's not so intrusive. François' argument that ipython sessions
4857 it's not so intrusive. François' argument that ipython sessions
4836 tend to be complex enough not to lose them from an accidental C-d,
4858 tend to be complex enough not to lose them from an accidental C-d,
4837 is a valid one.
4859 is a valid one.
4838
4860
4839 * IPython/iplib.py (InteractiveShell.interact): added a
4861 * IPython/iplib.py (InteractiveShell.interact): added a
4840 showtraceback() call to the SystemExit trap, and modified the exit
4862 showtraceback() call to the SystemExit trap, and modified the exit
4841 confirmation to have yes as the default.
4863 confirmation to have yes as the default.
4842
4864
4843 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4865 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4844 this file. It's been gone from the code for a long time, this was
4866 this file. It's been gone from the code for a long time, this was
4845 simply leftover junk.
4867 simply leftover junk.
4846
4868
4847 2002-11-01 Fernando Perez <fperez@colorado.edu>
4869 2002-11-01 Fernando Perez <fperez@colorado.edu>
4848
4870
4849 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4871 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4850 added. If set, IPython now traps EOF and asks for
4872 added. If set, IPython now traps EOF and asks for
4851 confirmation. After a request by François Pinard.
4873 confirmation. After a request by François Pinard.
4852
4874
4853 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4875 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4854 of @abort, and with a new (better) mechanism for handling the
4876 of @abort, and with a new (better) mechanism for handling the
4855 exceptions.
4877 exceptions.
4856
4878
4857 2002-10-27 Fernando Perez <fperez@colorado.edu>
4879 2002-10-27 Fernando Perez <fperez@colorado.edu>
4858
4880
4859 * IPython/usage.py (__doc__): updated the --help information and
4881 * IPython/usage.py (__doc__): updated the --help information and
4860 the ipythonrc file to indicate that -log generates
4882 the ipythonrc file to indicate that -log generates
4861 ./ipython.log. Also fixed the corresponding info in @logstart.
4883 ./ipython.log. Also fixed the corresponding info in @logstart.
4862 This and several other fixes in the manuals thanks to reports by
4884 This and several other fixes in the manuals thanks to reports by
4863 François Pinard <pinard-AT-iro.umontreal.ca>.
4885 François Pinard <pinard-AT-iro.umontreal.ca>.
4864
4886
4865 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4887 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4866 refer to @logstart (instead of @log, which doesn't exist).
4888 refer to @logstart (instead of @log, which doesn't exist).
4867
4889
4868 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4890 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4869 AttributeError crash. Thanks to Christopher Armstrong
4891 AttributeError crash. Thanks to Christopher Armstrong
4870 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4892 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4871 introduced recently (in 0.2.14pre37) with the fix to the eval
4893 introduced recently (in 0.2.14pre37) with the fix to the eval
4872 problem mentioned below.
4894 problem mentioned below.
4873
4895
4874 2002-10-17 Fernando Perez <fperez@colorado.edu>
4896 2002-10-17 Fernando Perez <fperez@colorado.edu>
4875
4897
4876 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4898 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4877 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4899 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4878
4900
4879 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4901 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4880 this function to fix a problem reported by Alex Schmolck. He saw
4902 this function to fix a problem reported by Alex Schmolck. He saw
4881 it with list comprehensions and generators, which were getting
4903 it with list comprehensions and generators, which were getting
4882 called twice. The real problem was an 'eval' call in testing for
4904 called twice. The real problem was an 'eval' call in testing for
4883 automagic which was evaluating the input line silently.
4905 automagic which was evaluating the input line silently.
4884
4906
4885 This is a potentially very nasty bug, if the input has side
4907 This is a potentially very nasty bug, if the input has side
4886 effects which must not be repeated. The code is much cleaner now,
4908 effects which must not be repeated. The code is much cleaner now,
4887 without any blanket 'except' left and with a regexp test for
4909 without any blanket 'except' left and with a regexp test for
4888 actual function names.
4910 actual function names.
4889
4911
4890 But an eval remains, which I'm not fully comfortable with. I just
4912 But an eval remains, which I'm not fully comfortable with. I just
4891 don't know how to find out if an expression could be a callable in
4913 don't know how to find out if an expression could be a callable in
4892 the user's namespace without doing an eval on the string. However
4914 the user's namespace without doing an eval on the string. However
4893 that string is now much more strictly checked so that no code
4915 that string is now much more strictly checked so that no code
4894 slips by, so the eval should only happen for things that can
4916 slips by, so the eval should only happen for things that can
4895 really be only function/method names.
4917 really be only function/method names.
4896
4918
4897 2002-10-15 Fernando Perez <fperez@colorado.edu>
4919 2002-10-15 Fernando Perez <fperez@colorado.edu>
4898
4920
4899 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4921 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4900 OSX information to main manual, removed README_Mac_OSX file from
4922 OSX information to main manual, removed README_Mac_OSX file from
4901 distribution. Also updated credits for recent additions.
4923 distribution. Also updated credits for recent additions.
4902
4924
4903 2002-10-10 Fernando Perez <fperez@colorado.edu>
4925 2002-10-10 Fernando Perez <fperez@colorado.edu>
4904
4926
4905 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4927 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4906 terminal-related issues. Many thanks to Andrea Riciputi
4928 terminal-related issues. Many thanks to Andrea Riciputi
4907 <andrea.riciputi-AT-libero.it> for writing it.
4929 <andrea.riciputi-AT-libero.it> for writing it.
4908
4930
4909 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4931 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4910 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4932 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4911
4933
4912 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4934 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4913 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4935 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4914 <syver-en-AT-online.no> who both submitted patches for this problem.
4936 <syver-en-AT-online.no> who both submitted patches for this problem.
4915
4937
4916 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4938 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4917 global embedding to make sure that things don't overwrite user
4939 global embedding to make sure that things don't overwrite user
4918 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4940 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4919
4941
4920 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4942 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4921 compatibility. Thanks to Hayden Callow
4943 compatibility. Thanks to Hayden Callow
4922 <h.callow-AT-elec.canterbury.ac.nz>
4944 <h.callow-AT-elec.canterbury.ac.nz>
4923
4945
4924 2002-10-04 Fernando Perez <fperez@colorado.edu>
4946 2002-10-04 Fernando Perez <fperez@colorado.edu>
4925
4947
4926 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4948 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4927 Gnuplot.File objects.
4949 Gnuplot.File objects.
4928
4950
4929 2002-07-23 Fernando Perez <fperez@colorado.edu>
4951 2002-07-23 Fernando Perez <fperez@colorado.edu>
4930
4952
4931 * IPython/genutils.py (timing): Added timings() and timing() for
4953 * IPython/genutils.py (timing): Added timings() and timing() for
4932 quick access to the most commonly needed data, the execution
4954 quick access to the most commonly needed data, the execution
4933 times. Old timing() renamed to timings_out().
4955 times. Old timing() renamed to timings_out().
4934
4956
4935 2002-07-18 Fernando Perez <fperez@colorado.edu>
4957 2002-07-18 Fernando Perez <fperez@colorado.edu>
4936
4958
4937 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4959 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4938 bug with nested instances disrupting the parent's tab completion.
4960 bug with nested instances disrupting the parent's tab completion.
4939
4961
4940 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4962 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4941 all_completions code to begin the emacs integration.
4963 all_completions code to begin the emacs integration.
4942
4964
4943 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4965 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4944 argument to allow titling individual arrays when plotting.
4966 argument to allow titling individual arrays when plotting.
4945
4967
4946 2002-07-15 Fernando Perez <fperez@colorado.edu>
4968 2002-07-15 Fernando Perez <fperez@colorado.edu>
4947
4969
4948 * setup.py (make_shortcut): changed to retrieve the value of
4970 * setup.py (make_shortcut): changed to retrieve the value of
4949 'Program Files' directory from the registry (this value changes in
4971 'Program Files' directory from the registry (this value changes in
4950 non-english versions of Windows). Thanks to Thomas Fanslau
4972 non-english versions of Windows). Thanks to Thomas Fanslau
4951 <tfanslau-AT-gmx.de> for the report.
4973 <tfanslau-AT-gmx.de> for the report.
4952
4974
4953 2002-07-10 Fernando Perez <fperez@colorado.edu>
4975 2002-07-10 Fernando Perez <fperez@colorado.edu>
4954
4976
4955 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4977 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4956 a bug in pdb, which crashes if a line with only whitespace is
4978 a bug in pdb, which crashes if a line with only whitespace is
4957 entered. Bug report submitted to sourceforge.
4979 entered. Bug report submitted to sourceforge.
4958
4980
4959 2002-07-09 Fernando Perez <fperez@colorado.edu>
4981 2002-07-09 Fernando Perez <fperez@colorado.edu>
4960
4982
4961 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4983 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4962 reporting exceptions (it's a bug in inspect.py, I just set a
4984 reporting exceptions (it's a bug in inspect.py, I just set a
4963 workaround).
4985 workaround).
4964
4986
4965 2002-07-08 Fernando Perez <fperez@colorado.edu>
4987 2002-07-08 Fernando Perez <fperez@colorado.edu>
4966
4988
4967 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4989 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4968 __IPYTHON__ in __builtins__ to show up in user_ns.
4990 __IPYTHON__ in __builtins__ to show up in user_ns.
4969
4991
4970 2002-07-03 Fernando Perez <fperez@colorado.edu>
4992 2002-07-03 Fernando Perez <fperez@colorado.edu>
4971
4993
4972 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4994 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4973 name from @gp_set_instance to @gp_set_default.
4995 name from @gp_set_instance to @gp_set_default.
4974
4996
4975 * IPython/ipmaker.py (make_IPython): default editor value set to
4997 * IPython/ipmaker.py (make_IPython): default editor value set to
4976 '0' (a string), to match the rc file. Otherwise will crash when
4998 '0' (a string), to match the rc file. Otherwise will crash when
4977 .strip() is called on it.
4999 .strip() is called on it.
4978
5000
4979
5001
4980 2002-06-28 Fernando Perez <fperez@colorado.edu>
5002 2002-06-28 Fernando Perez <fperez@colorado.edu>
4981
5003
4982 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5004 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4983 of files in current directory when a file is executed via
5005 of files in current directory when a file is executed via
4984 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5006 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4985
5007
4986 * setup.py (manfiles): fix for rpm builds, submitted by RA
5008 * setup.py (manfiles): fix for rpm builds, submitted by RA
4987 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5009 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4988
5010
4989 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5011 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4990 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5012 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4991 string!). A. Schmolck caught this one.
5013 string!). A. Schmolck caught this one.
4992
5014
4993 2002-06-27 Fernando Perez <fperez@colorado.edu>
5015 2002-06-27 Fernando Perez <fperez@colorado.edu>
4994
5016
4995 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5017 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4996 defined files at the cmd line. __name__ wasn't being set to
5018 defined files at the cmd line. __name__ wasn't being set to
4997 __main__.
5019 __main__.
4998
5020
4999 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5021 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5000 regular lists and tuples besides Numeric arrays.
5022 regular lists and tuples besides Numeric arrays.
5001
5023
5002 * IPython/Prompts.py (CachedOutput.__call__): Added output
5024 * IPython/Prompts.py (CachedOutput.__call__): Added output
5003 supression for input ending with ';'. Similar to Mathematica and
5025 supression for input ending with ';'. Similar to Mathematica and
5004 Matlab. The _* vars and Out[] list are still updated, just like
5026 Matlab. The _* vars and Out[] list are still updated, just like
5005 Mathematica behaves.
5027 Mathematica behaves.
5006
5028
5007 2002-06-25 Fernando Perez <fperez@colorado.edu>
5029 2002-06-25 Fernando Perez <fperez@colorado.edu>
5008
5030
5009 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5031 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5010 .ini extensions for profiels under Windows.
5032 .ini extensions for profiels under Windows.
5011
5033
5012 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5034 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5013 string form. Fix contributed by Alexander Schmolck
5035 string form. Fix contributed by Alexander Schmolck
5014 <a.schmolck-AT-gmx.net>
5036 <a.schmolck-AT-gmx.net>
5015
5037
5016 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5038 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5017 pre-configured Gnuplot instance.
5039 pre-configured Gnuplot instance.
5018
5040
5019 2002-06-21 Fernando Perez <fperez@colorado.edu>
5041 2002-06-21 Fernando Perez <fperez@colorado.edu>
5020
5042
5021 * IPython/numutils.py (exp_safe): new function, works around the
5043 * IPython/numutils.py (exp_safe): new function, works around the
5022 underflow problems in Numeric.
5044 underflow problems in Numeric.
5023 (log2): New fn. Safe log in base 2: returns exact integer answer
5045 (log2): New fn. Safe log in base 2: returns exact integer answer
5024 for exact integer powers of 2.
5046 for exact integer powers of 2.
5025
5047
5026 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5048 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5027 properly.
5049 properly.
5028
5050
5029 2002-06-20 Fernando Perez <fperez@colorado.edu>
5051 2002-06-20 Fernando Perez <fperez@colorado.edu>
5030
5052
5031 * IPython/genutils.py (timing): new function like
5053 * IPython/genutils.py (timing): new function like
5032 Mathematica's. Similar to time_test, but returns more info.
5054 Mathematica's. Similar to time_test, but returns more info.
5033
5055
5034 2002-06-18 Fernando Perez <fperez@colorado.edu>
5056 2002-06-18 Fernando Perez <fperez@colorado.edu>
5035
5057
5036 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5058 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5037 according to Mike Heeter's suggestions.
5059 according to Mike Heeter's suggestions.
5038
5060
5039 2002-06-16 Fernando Perez <fperez@colorado.edu>
5061 2002-06-16 Fernando Perez <fperez@colorado.edu>
5040
5062
5041 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5063 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5042 system. GnuplotMagic is gone as a user-directory option. New files
5064 system. GnuplotMagic is gone as a user-directory option. New files
5043 make it easier to use all the gnuplot stuff both from external
5065 make it easier to use all the gnuplot stuff both from external
5044 programs as well as from IPython. Had to rewrite part of
5066 programs as well as from IPython. Had to rewrite part of
5045 hardcopy() b/c of a strange bug: often the ps files simply don't
5067 hardcopy() b/c of a strange bug: often the ps files simply don't
5046 get created, and require a repeat of the command (often several
5068 get created, and require a repeat of the command (often several
5047 times).
5069 times).
5048
5070
5049 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5071 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5050 resolve output channel at call time, so that if sys.stderr has
5072 resolve output channel at call time, so that if sys.stderr has
5051 been redirected by user this gets honored.
5073 been redirected by user this gets honored.
5052
5074
5053 2002-06-13 Fernando Perez <fperez@colorado.edu>
5075 2002-06-13 Fernando Perez <fperez@colorado.edu>
5054
5076
5055 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5077 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5056 IPShell. Kept a copy with the old names to avoid breaking people's
5078 IPShell. Kept a copy with the old names to avoid breaking people's
5057 embedded code.
5079 embedded code.
5058
5080
5059 * IPython/ipython: simplified it to the bare minimum after
5081 * IPython/ipython: simplified it to the bare minimum after
5060 Holger's suggestions. Added info about how to use it in
5082 Holger's suggestions. Added info about how to use it in
5061 PYTHONSTARTUP.
5083 PYTHONSTARTUP.
5062
5084
5063 * IPython/Shell.py (IPythonShell): changed the options passing
5085 * IPython/Shell.py (IPythonShell): changed the options passing
5064 from a string with funky %s replacements to a straight list. Maybe
5086 from a string with funky %s replacements to a straight list. Maybe
5065 a bit more typing, but it follows sys.argv conventions, so there's
5087 a bit more typing, but it follows sys.argv conventions, so there's
5066 less special-casing to remember.
5088 less special-casing to remember.
5067
5089
5068 2002-06-12 Fernando Perez <fperez@colorado.edu>
5090 2002-06-12 Fernando Perez <fperez@colorado.edu>
5069
5091
5070 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5092 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5071 command. Thanks to a suggestion by Mike Heeter.
5093 command. Thanks to a suggestion by Mike Heeter.
5072 (Magic.magic_pfile): added behavior to look at filenames if given
5094 (Magic.magic_pfile): added behavior to look at filenames if given
5073 arg is not a defined object.
5095 arg is not a defined object.
5074 (Magic.magic_save): New @save function to save code snippets. Also
5096 (Magic.magic_save): New @save function to save code snippets. Also
5075 a Mike Heeter idea.
5097 a Mike Heeter idea.
5076
5098
5077 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5099 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5078 plot() and replot(). Much more convenient now, especially for
5100 plot() and replot(). Much more convenient now, especially for
5079 interactive use.
5101 interactive use.
5080
5102
5081 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5103 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5082 filenames.
5104 filenames.
5083
5105
5084 2002-06-02 Fernando Perez <fperez@colorado.edu>
5106 2002-06-02 Fernando Perez <fperez@colorado.edu>
5085
5107
5086 * IPython/Struct.py (Struct.__init__): modified to admit
5108 * IPython/Struct.py (Struct.__init__): modified to admit
5087 initialization via another struct.
5109 initialization via another struct.
5088
5110
5089 * IPython/genutils.py (SystemExec.__init__): New stateful
5111 * IPython/genutils.py (SystemExec.__init__): New stateful
5090 interface to xsys and bq. Useful for writing system scripts.
5112 interface to xsys and bq. Useful for writing system scripts.
5091
5113
5092 2002-05-30 Fernando Perez <fperez@colorado.edu>
5114 2002-05-30 Fernando Perez <fperez@colorado.edu>
5093
5115
5094 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5116 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5095 documents. This will make the user download smaller (it's getting
5117 documents. This will make the user download smaller (it's getting
5096 too big).
5118 too big).
5097
5119
5098 2002-05-29 Fernando Perez <fperez@colorado.edu>
5120 2002-05-29 Fernando Perez <fperez@colorado.edu>
5099
5121
5100 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5122 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5101 fix problems with shelve and pickle. Seems to work, but I don't
5123 fix problems with shelve and pickle. Seems to work, but I don't
5102 know if corner cases break it. Thanks to Mike Heeter
5124 know if corner cases break it. Thanks to Mike Heeter
5103 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5125 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5104
5126
5105 2002-05-24 Fernando Perez <fperez@colorado.edu>
5127 2002-05-24 Fernando Perez <fperez@colorado.edu>
5106
5128
5107 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5129 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5108 macros having broken.
5130 macros having broken.
5109
5131
5110 2002-05-21 Fernando Perez <fperez@colorado.edu>
5132 2002-05-21 Fernando Perez <fperez@colorado.edu>
5111
5133
5112 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5134 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5113 introduced logging bug: all history before logging started was
5135 introduced logging bug: all history before logging started was
5114 being written one character per line! This came from the redesign
5136 being written one character per line! This came from the redesign
5115 of the input history as a special list which slices to strings,
5137 of the input history as a special list which slices to strings,
5116 not to lists.
5138 not to lists.
5117
5139
5118 2002-05-20 Fernando Perez <fperez@colorado.edu>
5140 2002-05-20 Fernando Perez <fperez@colorado.edu>
5119
5141
5120 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5142 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5121 be an attribute of all classes in this module. The design of these
5143 be an attribute of all classes in this module. The design of these
5122 classes needs some serious overhauling.
5144 classes needs some serious overhauling.
5123
5145
5124 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5146 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5125 which was ignoring '_' in option names.
5147 which was ignoring '_' in option names.
5126
5148
5127 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5149 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5128 'Verbose_novars' to 'Context' and made it the new default. It's a
5150 'Verbose_novars' to 'Context' and made it the new default. It's a
5129 bit more readable and also safer than verbose.
5151 bit more readable and also safer than verbose.
5130
5152
5131 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5153 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5132 triple-quoted strings.
5154 triple-quoted strings.
5133
5155
5134 * IPython/OInspect.py (__all__): new module exposing the object
5156 * IPython/OInspect.py (__all__): new module exposing the object
5135 introspection facilities. Now the corresponding magics are dummy
5157 introspection facilities. Now the corresponding magics are dummy
5136 wrappers around this. Having this module will make it much easier
5158 wrappers around this. Having this module will make it much easier
5137 to put these functions into our modified pdb.
5159 to put these functions into our modified pdb.
5138 This new object inspector system uses the new colorizing module,
5160 This new object inspector system uses the new colorizing module,
5139 so source code and other things are nicely syntax highlighted.
5161 so source code and other things are nicely syntax highlighted.
5140
5162
5141 2002-05-18 Fernando Perez <fperez@colorado.edu>
5163 2002-05-18 Fernando Perez <fperez@colorado.edu>
5142
5164
5143 * IPython/ColorANSI.py: Split the coloring tools into a separate
5165 * IPython/ColorANSI.py: Split the coloring tools into a separate
5144 module so I can use them in other code easier (they were part of
5166 module so I can use them in other code easier (they were part of
5145 ultraTB).
5167 ultraTB).
5146
5168
5147 2002-05-17 Fernando Perez <fperez@colorado.edu>
5169 2002-05-17 Fernando Perez <fperez@colorado.edu>
5148
5170
5149 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5171 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5150 fixed it to set the global 'g' also to the called instance, as
5172 fixed it to set the global 'g' also to the called instance, as
5151 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5173 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5152 user's 'g' variables).
5174 user's 'g' variables).
5153
5175
5154 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5176 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5155 global variables (aliases to _ih,_oh) so that users which expect
5177 global variables (aliases to _ih,_oh) so that users which expect
5156 In[5] or Out[7] to work aren't unpleasantly surprised.
5178 In[5] or Out[7] to work aren't unpleasantly surprised.
5157 (InputList.__getslice__): new class to allow executing slices of
5179 (InputList.__getslice__): new class to allow executing slices of
5158 input history directly. Very simple class, complements the use of
5180 input history directly. Very simple class, complements the use of
5159 macros.
5181 macros.
5160
5182
5161 2002-05-16 Fernando Perez <fperez@colorado.edu>
5183 2002-05-16 Fernando Perez <fperez@colorado.edu>
5162
5184
5163 * setup.py (docdirbase): make doc directory be just doc/IPython
5185 * setup.py (docdirbase): make doc directory be just doc/IPython
5164 without version numbers, it will reduce clutter for users.
5186 without version numbers, it will reduce clutter for users.
5165
5187
5166 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5188 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5167 execfile call to prevent possible memory leak. See for details:
5189 execfile call to prevent possible memory leak. See for details:
5168 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5190 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5169
5191
5170 2002-05-15 Fernando Perez <fperez@colorado.edu>
5192 2002-05-15 Fernando Perez <fperez@colorado.edu>
5171
5193
5172 * IPython/Magic.py (Magic.magic_psource): made the object
5194 * IPython/Magic.py (Magic.magic_psource): made the object
5173 introspection names be more standard: pdoc, pdef, pfile and
5195 introspection names be more standard: pdoc, pdef, pfile and
5174 psource. They all print/page their output, and it makes
5196 psource. They all print/page their output, and it makes
5175 remembering them easier. Kept old names for compatibility as
5197 remembering them easier. Kept old names for compatibility as
5176 aliases.
5198 aliases.
5177
5199
5178 2002-05-14 Fernando Perez <fperez@colorado.edu>
5200 2002-05-14 Fernando Perez <fperez@colorado.edu>
5179
5201
5180 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5202 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5181 what the mouse problem was. The trick is to use gnuplot with temp
5203 what the mouse problem was. The trick is to use gnuplot with temp
5182 files and NOT with pipes (for data communication), because having
5204 files and NOT with pipes (for data communication), because having
5183 both pipes and the mouse on is bad news.
5205 both pipes and the mouse on is bad news.
5184
5206
5185 2002-05-13 Fernando Perez <fperez@colorado.edu>
5207 2002-05-13 Fernando Perez <fperez@colorado.edu>
5186
5208
5187 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5209 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5188 bug. Information would be reported about builtins even when
5210 bug. Information would be reported about builtins even when
5189 user-defined functions overrode them.
5211 user-defined functions overrode them.
5190
5212
5191 2002-05-11 Fernando Perez <fperez@colorado.edu>
5213 2002-05-11 Fernando Perez <fperez@colorado.edu>
5192
5214
5193 * IPython/__init__.py (__all__): removed FlexCompleter from
5215 * IPython/__init__.py (__all__): removed FlexCompleter from
5194 __all__ so that things don't fail in platforms without readline.
5216 __all__ so that things don't fail in platforms without readline.
5195
5217
5196 2002-05-10 Fernando Perez <fperez@colorado.edu>
5218 2002-05-10 Fernando Perez <fperez@colorado.edu>
5197
5219
5198 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5220 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5199 it requires Numeric, effectively making Numeric a dependency for
5221 it requires Numeric, effectively making Numeric a dependency for
5200 IPython.
5222 IPython.
5201
5223
5202 * Released 0.2.13
5224 * Released 0.2.13
5203
5225
5204 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5226 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5205 profiler interface. Now all the major options from the profiler
5227 profiler interface. Now all the major options from the profiler
5206 module are directly supported in IPython, both for single
5228 module are directly supported in IPython, both for single
5207 expressions (@prun) and for full programs (@run -p).
5229 expressions (@prun) and for full programs (@run -p).
5208
5230
5209 2002-05-09 Fernando Perez <fperez@colorado.edu>
5231 2002-05-09 Fernando Perez <fperez@colorado.edu>
5210
5232
5211 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5233 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5212 magic properly formatted for screen.
5234 magic properly formatted for screen.
5213
5235
5214 * setup.py (make_shortcut): Changed things to put pdf version in
5236 * setup.py (make_shortcut): Changed things to put pdf version in
5215 doc/ instead of doc/manual (had to change lyxport a bit).
5237 doc/ instead of doc/manual (had to change lyxport a bit).
5216
5238
5217 * IPython/Magic.py (Profile.string_stats): made profile runs go
5239 * IPython/Magic.py (Profile.string_stats): made profile runs go
5218 through pager (they are long and a pager allows searching, saving,
5240 through pager (they are long and a pager allows searching, saving,
5219 etc.)
5241 etc.)
5220
5242
5221 2002-05-08 Fernando Perez <fperez@colorado.edu>
5243 2002-05-08 Fernando Perez <fperez@colorado.edu>
5222
5244
5223 * Released 0.2.12
5245 * Released 0.2.12
5224
5246
5225 2002-05-06 Fernando Perez <fperez@colorado.edu>
5247 2002-05-06 Fernando Perez <fperez@colorado.edu>
5226
5248
5227 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5249 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5228 introduced); 'hist n1 n2' was broken.
5250 introduced); 'hist n1 n2' was broken.
5229 (Magic.magic_pdb): added optional on/off arguments to @pdb
5251 (Magic.magic_pdb): added optional on/off arguments to @pdb
5230 (Magic.magic_run): added option -i to @run, which executes code in
5252 (Magic.magic_run): added option -i to @run, which executes code in
5231 the IPython namespace instead of a clean one. Also added @irun as
5253 the IPython namespace instead of a clean one. Also added @irun as
5232 an alias to @run -i.
5254 an alias to @run -i.
5233
5255
5234 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5256 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5235 fixed (it didn't really do anything, the namespaces were wrong).
5257 fixed (it didn't really do anything, the namespaces were wrong).
5236
5258
5237 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5259 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5238
5260
5239 * IPython/__init__.py (__all__): Fixed package namespace, now
5261 * IPython/__init__.py (__all__): Fixed package namespace, now
5240 'import IPython' does give access to IPython.<all> as
5262 'import IPython' does give access to IPython.<all> as
5241 expected. Also renamed __release__ to Release.
5263 expected. Also renamed __release__ to Release.
5242
5264
5243 * IPython/Debugger.py (__license__): created new Pdb class which
5265 * IPython/Debugger.py (__license__): created new Pdb class which
5244 functions like a drop-in for the normal pdb.Pdb but does NOT
5266 functions like a drop-in for the normal pdb.Pdb but does NOT
5245 import readline by default. This way it doesn't muck up IPython's
5267 import readline by default. This way it doesn't muck up IPython's
5246 readline handling, and now tab-completion finally works in the
5268 readline handling, and now tab-completion finally works in the
5247 debugger -- sort of. It completes things globally visible, but the
5269 debugger -- sort of. It completes things globally visible, but the
5248 completer doesn't track the stack as pdb walks it. That's a bit
5270 completer doesn't track the stack as pdb walks it. That's a bit
5249 tricky, and I'll have to implement it later.
5271 tricky, and I'll have to implement it later.
5250
5272
5251 2002-05-05 Fernando Perez <fperez@colorado.edu>
5273 2002-05-05 Fernando Perez <fperez@colorado.edu>
5252
5274
5253 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5275 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5254 magic docstrings when printed via ? (explicit \'s were being
5276 magic docstrings when printed via ? (explicit \'s were being
5255 printed).
5277 printed).
5256
5278
5257 * IPython/ipmaker.py (make_IPython): fixed namespace
5279 * IPython/ipmaker.py (make_IPython): fixed namespace
5258 identification bug. Now variables loaded via logs or command-line
5280 identification bug. Now variables loaded via logs or command-line
5259 files are recognized in the interactive namespace by @who.
5281 files are recognized in the interactive namespace by @who.
5260
5282
5261 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5283 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5262 log replay system stemming from the string form of Structs.
5284 log replay system stemming from the string form of Structs.
5263
5285
5264 * IPython/Magic.py (Macro.__init__): improved macros to properly
5286 * IPython/Magic.py (Macro.__init__): improved macros to properly
5265 handle magic commands in them.
5287 handle magic commands in them.
5266 (Magic.magic_logstart): usernames are now expanded so 'logstart
5288 (Magic.magic_logstart): usernames are now expanded so 'logstart
5267 ~/mylog' now works.
5289 ~/mylog' now works.
5268
5290
5269 * IPython/iplib.py (complete): fixed bug where paths starting with
5291 * IPython/iplib.py (complete): fixed bug where paths starting with
5270 '/' would be completed as magic names.
5292 '/' would be completed as magic names.
5271
5293
5272 2002-05-04 Fernando Perez <fperez@colorado.edu>
5294 2002-05-04 Fernando Perez <fperez@colorado.edu>
5273
5295
5274 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5296 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5275 allow running full programs under the profiler's control.
5297 allow running full programs under the profiler's control.
5276
5298
5277 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5299 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5278 mode to report exceptions verbosely but without formatting
5300 mode to report exceptions verbosely but without formatting
5279 variables. This addresses the issue of ipython 'freezing' (it's
5301 variables. This addresses the issue of ipython 'freezing' (it's
5280 not frozen, but caught in an expensive formatting loop) when huge
5302 not frozen, but caught in an expensive formatting loop) when huge
5281 variables are in the context of an exception.
5303 variables are in the context of an exception.
5282 (VerboseTB.text): Added '--->' markers at line where exception was
5304 (VerboseTB.text): Added '--->' markers at line where exception was
5283 triggered. Much clearer to read, especially in NoColor modes.
5305 triggered. Much clearer to read, especially in NoColor modes.
5284
5306
5285 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5307 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5286 implemented in reverse when changing to the new parse_options().
5308 implemented in reverse when changing to the new parse_options().
5287
5309
5288 2002-05-03 Fernando Perez <fperez@colorado.edu>
5310 2002-05-03 Fernando Perez <fperez@colorado.edu>
5289
5311
5290 * IPython/Magic.py (Magic.parse_options): new function so that
5312 * IPython/Magic.py (Magic.parse_options): new function so that
5291 magics can parse options easier.
5313 magics can parse options easier.
5292 (Magic.magic_prun): new function similar to profile.run(),
5314 (Magic.magic_prun): new function similar to profile.run(),
5293 suggested by Chris Hart.
5315 suggested by Chris Hart.
5294 (Magic.magic_cd): fixed behavior so that it only changes if
5316 (Magic.magic_cd): fixed behavior so that it only changes if
5295 directory actually is in history.
5317 directory actually is in history.
5296
5318
5297 * IPython/usage.py (__doc__): added information about potential
5319 * IPython/usage.py (__doc__): added information about potential
5298 slowness of Verbose exception mode when there are huge data
5320 slowness of Verbose exception mode when there are huge data
5299 structures to be formatted (thanks to Archie Paulson).
5321 structures to be formatted (thanks to Archie Paulson).
5300
5322
5301 * IPython/ipmaker.py (make_IPython): Changed default logging
5323 * IPython/ipmaker.py (make_IPython): Changed default logging
5302 (when simply called with -log) to use curr_dir/ipython.log in
5324 (when simply called with -log) to use curr_dir/ipython.log in
5303 rotate mode. Fixed crash which was occuring with -log before
5325 rotate mode. Fixed crash which was occuring with -log before
5304 (thanks to Jim Boyle).
5326 (thanks to Jim Boyle).
5305
5327
5306 2002-05-01 Fernando Perez <fperez@colorado.edu>
5328 2002-05-01 Fernando Perez <fperez@colorado.edu>
5307
5329
5308 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5330 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5309 was nasty -- though somewhat of a corner case).
5331 was nasty -- though somewhat of a corner case).
5310
5332
5311 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5333 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5312 text (was a bug).
5334 text (was a bug).
5313
5335
5314 2002-04-30 Fernando Perez <fperez@colorado.edu>
5336 2002-04-30 Fernando Perez <fperez@colorado.edu>
5315
5337
5316 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5338 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5317 a print after ^D or ^C from the user so that the In[] prompt
5339 a print after ^D or ^C from the user so that the In[] prompt
5318 doesn't over-run the gnuplot one.
5340 doesn't over-run the gnuplot one.
5319
5341
5320 2002-04-29 Fernando Perez <fperez@colorado.edu>
5342 2002-04-29 Fernando Perez <fperez@colorado.edu>
5321
5343
5322 * Released 0.2.10
5344 * Released 0.2.10
5323
5345
5324 * IPython/__release__.py (version): get date dynamically.
5346 * IPython/__release__.py (version): get date dynamically.
5325
5347
5326 * Misc. documentation updates thanks to Arnd's comments. Also ran
5348 * Misc. documentation updates thanks to Arnd's comments. Also ran
5327 a full spellcheck on the manual (hadn't been done in a while).
5349 a full spellcheck on the manual (hadn't been done in a while).
5328
5350
5329 2002-04-27 Fernando Perez <fperez@colorado.edu>
5351 2002-04-27 Fernando Perez <fperez@colorado.edu>
5330
5352
5331 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5353 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5332 starting a log in mid-session would reset the input history list.
5354 starting a log in mid-session would reset the input history list.
5333
5355
5334 2002-04-26 Fernando Perez <fperez@colorado.edu>
5356 2002-04-26 Fernando Perez <fperez@colorado.edu>
5335
5357
5336 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5358 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5337 all files were being included in an update. Now anything in
5359 all files were being included in an update. Now anything in
5338 UserConfig that matches [A-Za-z]*.py will go (this excludes
5360 UserConfig that matches [A-Za-z]*.py will go (this excludes
5339 __init__.py)
5361 __init__.py)
5340
5362
5341 2002-04-25 Fernando Perez <fperez@colorado.edu>
5363 2002-04-25 Fernando Perez <fperez@colorado.edu>
5342
5364
5343 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5365 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5344 to __builtins__ so that any form of embedded or imported code can
5366 to __builtins__ so that any form of embedded or imported code can
5345 test for being inside IPython.
5367 test for being inside IPython.
5346
5368
5347 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5369 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5348 changed to GnuplotMagic because it's now an importable module,
5370 changed to GnuplotMagic because it's now an importable module,
5349 this makes the name follow that of the standard Gnuplot module.
5371 this makes the name follow that of the standard Gnuplot module.
5350 GnuplotMagic can now be loaded at any time in mid-session.
5372 GnuplotMagic can now be loaded at any time in mid-session.
5351
5373
5352 2002-04-24 Fernando Perez <fperez@colorado.edu>
5374 2002-04-24 Fernando Perez <fperez@colorado.edu>
5353
5375
5354 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5376 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5355 the globals (IPython has its own namespace) and the
5377 the globals (IPython has its own namespace) and the
5356 PhysicalQuantity stuff is much better anyway.
5378 PhysicalQuantity stuff is much better anyway.
5357
5379
5358 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5380 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5359 embedding example to standard user directory for
5381 embedding example to standard user directory for
5360 distribution. Also put it in the manual.
5382 distribution. Also put it in the manual.
5361
5383
5362 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5384 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5363 instance as first argument (so it doesn't rely on some obscure
5385 instance as first argument (so it doesn't rely on some obscure
5364 hidden global).
5386 hidden global).
5365
5387
5366 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5388 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5367 delimiters. While it prevents ().TAB from working, it allows
5389 delimiters. While it prevents ().TAB from working, it allows
5368 completions in open (... expressions. This is by far a more common
5390 completions in open (... expressions. This is by far a more common
5369 case.
5391 case.
5370
5392
5371 2002-04-23 Fernando Perez <fperez@colorado.edu>
5393 2002-04-23 Fernando Perez <fperez@colorado.edu>
5372
5394
5373 * IPython/Extensions/InterpreterPasteInput.py: new
5395 * IPython/Extensions/InterpreterPasteInput.py: new
5374 syntax-processing module for pasting lines with >>> or ... at the
5396 syntax-processing module for pasting lines with >>> or ... at the
5375 start.
5397 start.
5376
5398
5377 * IPython/Extensions/PhysicalQ_Interactive.py
5399 * IPython/Extensions/PhysicalQ_Interactive.py
5378 (PhysicalQuantityInteractive.__int__): fixed to work with either
5400 (PhysicalQuantityInteractive.__int__): fixed to work with either
5379 Numeric or math.
5401 Numeric or math.
5380
5402
5381 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5403 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5382 provided profiles. Now we have:
5404 provided profiles. Now we have:
5383 -math -> math module as * and cmath with its own namespace.
5405 -math -> math module as * and cmath with its own namespace.
5384 -numeric -> Numeric as *, plus gnuplot & grace
5406 -numeric -> Numeric as *, plus gnuplot & grace
5385 -physics -> same as before
5407 -physics -> same as before
5386
5408
5387 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5409 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5388 user-defined magics wouldn't be found by @magic if they were
5410 user-defined magics wouldn't be found by @magic if they were
5389 defined as class methods. Also cleaned up the namespace search
5411 defined as class methods. Also cleaned up the namespace search
5390 logic and the string building (to use %s instead of many repeated
5412 logic and the string building (to use %s instead of many repeated
5391 string adds).
5413 string adds).
5392
5414
5393 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5415 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5394 of user-defined magics to operate with class methods (cleaner, in
5416 of user-defined magics to operate with class methods (cleaner, in
5395 line with the gnuplot code).
5417 line with the gnuplot code).
5396
5418
5397 2002-04-22 Fernando Perez <fperez@colorado.edu>
5419 2002-04-22 Fernando Perez <fperez@colorado.edu>
5398
5420
5399 * setup.py: updated dependency list so that manual is updated when
5421 * setup.py: updated dependency list so that manual is updated when
5400 all included files change.
5422 all included files change.
5401
5423
5402 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5424 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5403 the delimiter removal option (the fix is ugly right now).
5425 the delimiter removal option (the fix is ugly right now).
5404
5426
5405 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5427 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5406 all of the math profile (quicker loading, no conflict between
5428 all of the math profile (quicker loading, no conflict between
5407 g-9.8 and g-gnuplot).
5429 g-9.8 and g-gnuplot).
5408
5430
5409 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5431 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5410 name of post-mortem files to IPython_crash_report.txt.
5432 name of post-mortem files to IPython_crash_report.txt.
5411
5433
5412 * Cleanup/update of the docs. Added all the new readline info and
5434 * Cleanup/update of the docs. Added all the new readline info and
5413 formatted all lists as 'real lists'.
5435 formatted all lists as 'real lists'.
5414
5436
5415 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5437 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5416 tab-completion options, since the full readline parse_and_bind is
5438 tab-completion options, since the full readline parse_and_bind is
5417 now accessible.
5439 now accessible.
5418
5440
5419 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5441 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5420 handling of readline options. Now users can specify any string to
5442 handling of readline options. Now users can specify any string to
5421 be passed to parse_and_bind(), as well as the delimiters to be
5443 be passed to parse_and_bind(), as well as the delimiters to be
5422 removed.
5444 removed.
5423 (InteractiveShell.__init__): Added __name__ to the global
5445 (InteractiveShell.__init__): Added __name__ to the global
5424 namespace so that things like Itpl which rely on its existence
5446 namespace so that things like Itpl which rely on its existence
5425 don't crash.
5447 don't crash.
5426 (InteractiveShell._prefilter): Defined the default with a _ so
5448 (InteractiveShell._prefilter): Defined the default with a _ so
5427 that prefilter() is easier to override, while the default one
5449 that prefilter() is easier to override, while the default one
5428 remains available.
5450 remains available.
5429
5451
5430 2002-04-18 Fernando Perez <fperez@colorado.edu>
5452 2002-04-18 Fernando Perez <fperez@colorado.edu>
5431
5453
5432 * Added information about pdb in the docs.
5454 * Added information about pdb in the docs.
5433
5455
5434 2002-04-17 Fernando Perez <fperez@colorado.edu>
5456 2002-04-17 Fernando Perez <fperez@colorado.edu>
5435
5457
5436 * IPython/ipmaker.py (make_IPython): added rc_override option to
5458 * IPython/ipmaker.py (make_IPython): added rc_override option to
5437 allow passing config options at creation time which may override
5459 allow passing config options at creation time which may override
5438 anything set in the config files or command line. This is
5460 anything set in the config files or command line. This is
5439 particularly useful for configuring embedded instances.
5461 particularly useful for configuring embedded instances.
5440
5462
5441 2002-04-15 Fernando Perez <fperez@colorado.edu>
5463 2002-04-15 Fernando Perez <fperez@colorado.edu>
5442
5464
5443 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5465 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5444 crash embedded instances because of the input cache falling out of
5466 crash embedded instances because of the input cache falling out of
5445 sync with the output counter.
5467 sync with the output counter.
5446
5468
5447 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5469 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5448 mode which calls pdb after an uncaught exception in IPython itself.
5470 mode which calls pdb after an uncaught exception in IPython itself.
5449
5471
5450 2002-04-14 Fernando Perez <fperez@colorado.edu>
5472 2002-04-14 Fernando Perez <fperez@colorado.edu>
5451
5473
5452 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5474 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5453 readline, fix it back after each call.
5475 readline, fix it back after each call.
5454
5476
5455 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5477 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5456 method to force all access via __call__(), which guarantees that
5478 method to force all access via __call__(), which guarantees that
5457 traceback references are properly deleted.
5479 traceback references are properly deleted.
5458
5480
5459 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5481 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5460 improve printing when pprint is in use.
5482 improve printing when pprint is in use.
5461
5483
5462 2002-04-13 Fernando Perez <fperez@colorado.edu>
5484 2002-04-13 Fernando Perez <fperez@colorado.edu>
5463
5485
5464 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5486 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5465 exceptions aren't caught anymore. If the user triggers one, he
5487 exceptions aren't caught anymore. If the user triggers one, he
5466 should know why he's doing it and it should go all the way up,
5488 should know why he's doing it and it should go all the way up,
5467 just like any other exception. So now @abort will fully kill the
5489 just like any other exception. So now @abort will fully kill the
5468 embedded interpreter and the embedding code (unless that happens
5490 embedded interpreter and the embedding code (unless that happens
5469 to catch SystemExit).
5491 to catch SystemExit).
5470
5492
5471 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5493 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5472 and a debugger() method to invoke the interactive pdb debugger
5494 and a debugger() method to invoke the interactive pdb debugger
5473 after printing exception information. Also added the corresponding
5495 after printing exception information. Also added the corresponding
5474 -pdb option and @pdb magic to control this feature, and updated
5496 -pdb option and @pdb magic to control this feature, and updated
5475 the docs. After a suggestion from Christopher Hart
5497 the docs. After a suggestion from Christopher Hart
5476 (hart-AT-caltech.edu).
5498 (hart-AT-caltech.edu).
5477
5499
5478 2002-04-12 Fernando Perez <fperez@colorado.edu>
5500 2002-04-12 Fernando Perez <fperez@colorado.edu>
5479
5501
5480 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5502 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5481 the exception handlers defined by the user (not the CrashHandler)
5503 the exception handlers defined by the user (not the CrashHandler)
5482 so that user exceptions don't trigger an ipython bug report.
5504 so that user exceptions don't trigger an ipython bug report.
5483
5505
5484 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5506 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5485 configurable (it should have always been so).
5507 configurable (it should have always been so).
5486
5508
5487 2002-03-26 Fernando Perez <fperez@colorado.edu>
5509 2002-03-26 Fernando Perez <fperez@colorado.edu>
5488
5510
5489 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5511 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5490 and there to fix embedding namespace issues. This should all be
5512 and there to fix embedding namespace issues. This should all be
5491 done in a more elegant way.
5513 done in a more elegant way.
5492
5514
5493 2002-03-25 Fernando Perez <fperez@colorado.edu>
5515 2002-03-25 Fernando Perez <fperez@colorado.edu>
5494
5516
5495 * IPython/genutils.py (get_home_dir): Try to make it work under
5517 * IPython/genutils.py (get_home_dir): Try to make it work under
5496 win9x also.
5518 win9x also.
5497
5519
5498 2002-03-20 Fernando Perez <fperez@colorado.edu>
5520 2002-03-20 Fernando Perez <fperez@colorado.edu>
5499
5521
5500 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5522 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5501 sys.displayhook untouched upon __init__.
5523 sys.displayhook untouched upon __init__.
5502
5524
5503 2002-03-19 Fernando Perez <fperez@colorado.edu>
5525 2002-03-19 Fernando Perez <fperez@colorado.edu>
5504
5526
5505 * Released 0.2.9 (for embedding bug, basically).
5527 * Released 0.2.9 (for embedding bug, basically).
5506
5528
5507 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5529 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5508 exceptions so that enclosing shell's state can be restored.
5530 exceptions so that enclosing shell's state can be restored.
5509
5531
5510 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5532 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5511 naming conventions in the .ipython/ dir.
5533 naming conventions in the .ipython/ dir.
5512
5534
5513 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5535 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5514 from delimiters list so filenames with - in them get expanded.
5536 from delimiters list so filenames with - in them get expanded.
5515
5537
5516 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5538 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5517 sys.displayhook not being properly restored after an embedded call.
5539 sys.displayhook not being properly restored after an embedded call.
5518
5540
5519 2002-03-18 Fernando Perez <fperez@colorado.edu>
5541 2002-03-18 Fernando Perez <fperez@colorado.edu>
5520
5542
5521 * Released 0.2.8
5543 * Released 0.2.8
5522
5544
5523 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5545 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5524 some files weren't being included in a -upgrade.
5546 some files weren't being included in a -upgrade.
5525 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5547 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5526 on' so that the first tab completes.
5548 on' so that the first tab completes.
5527 (InteractiveShell.handle_magic): fixed bug with spaces around
5549 (InteractiveShell.handle_magic): fixed bug with spaces around
5528 quotes breaking many magic commands.
5550 quotes breaking many magic commands.
5529
5551
5530 * setup.py: added note about ignoring the syntax error messages at
5552 * setup.py: added note about ignoring the syntax error messages at
5531 installation.
5553 installation.
5532
5554
5533 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5555 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5534 streamlining the gnuplot interface, now there's only one magic @gp.
5556 streamlining the gnuplot interface, now there's only one magic @gp.
5535
5557
5536 2002-03-17 Fernando Perez <fperez@colorado.edu>
5558 2002-03-17 Fernando Perez <fperez@colorado.edu>
5537
5559
5538 * IPython/UserConfig/magic_gnuplot.py: new name for the
5560 * IPython/UserConfig/magic_gnuplot.py: new name for the
5539 example-magic_pm.py file. Much enhanced system, now with a shell
5561 example-magic_pm.py file. Much enhanced system, now with a shell
5540 for communicating directly with gnuplot, one command at a time.
5562 for communicating directly with gnuplot, one command at a time.
5541
5563
5542 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5564 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5543 setting __name__=='__main__'.
5565 setting __name__=='__main__'.
5544
5566
5545 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5567 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5546 mini-shell for accessing gnuplot from inside ipython. Should
5568 mini-shell for accessing gnuplot from inside ipython. Should
5547 extend it later for grace access too. Inspired by Arnd's
5569 extend it later for grace access too. Inspired by Arnd's
5548 suggestion.
5570 suggestion.
5549
5571
5550 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5572 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5551 calling magic functions with () in their arguments. Thanks to Arnd
5573 calling magic functions with () in their arguments. Thanks to Arnd
5552 Baecker for pointing this to me.
5574 Baecker for pointing this to me.
5553
5575
5554 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5576 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5555 infinitely for integer or complex arrays (only worked with floats).
5577 infinitely for integer or complex arrays (only worked with floats).
5556
5578
5557 2002-03-16 Fernando Perez <fperez@colorado.edu>
5579 2002-03-16 Fernando Perez <fperez@colorado.edu>
5558
5580
5559 * setup.py: Merged setup and setup_windows into a single script
5581 * setup.py: Merged setup and setup_windows into a single script
5560 which properly handles things for windows users.
5582 which properly handles things for windows users.
5561
5583
5562 2002-03-15 Fernando Perez <fperez@colorado.edu>
5584 2002-03-15 Fernando Perez <fperez@colorado.edu>
5563
5585
5564 * Big change to the manual: now the magics are all automatically
5586 * Big change to the manual: now the magics are all automatically
5565 documented. This information is generated from their docstrings
5587 documented. This information is generated from their docstrings
5566 and put in a latex file included by the manual lyx file. This way
5588 and put in a latex file included by the manual lyx file. This way
5567 we get always up to date information for the magics. The manual
5589 we get always up to date information for the magics. The manual
5568 now also has proper version information, also auto-synced.
5590 now also has proper version information, also auto-synced.
5569
5591
5570 For this to work, an undocumented --magic_docstrings option was added.
5592 For this to work, an undocumented --magic_docstrings option was added.
5571
5593
5572 2002-03-13 Fernando Perez <fperez@colorado.edu>
5594 2002-03-13 Fernando Perez <fperez@colorado.edu>
5573
5595
5574 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5596 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5575 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5597 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5576
5598
5577 2002-03-12 Fernando Perez <fperez@colorado.edu>
5599 2002-03-12 Fernando Perez <fperez@colorado.edu>
5578
5600
5579 * IPython/ultraTB.py (TermColors): changed color escapes again to
5601 * IPython/ultraTB.py (TermColors): changed color escapes again to
5580 fix the (old, reintroduced) line-wrapping bug. Basically, if
5602 fix the (old, reintroduced) line-wrapping bug. Basically, if
5581 \001..\002 aren't given in the color escapes, lines get wrapped
5603 \001..\002 aren't given in the color escapes, lines get wrapped
5582 weirdly. But giving those screws up old xterms and emacs terms. So
5604 weirdly. But giving those screws up old xterms and emacs terms. So
5583 I added some logic for emacs terms to be ok, but I can't identify old
5605 I added some logic for emacs terms to be ok, but I can't identify old
5584 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5606 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5585
5607
5586 2002-03-10 Fernando Perez <fperez@colorado.edu>
5608 2002-03-10 Fernando Perez <fperez@colorado.edu>
5587
5609
5588 * IPython/usage.py (__doc__): Various documentation cleanups and
5610 * IPython/usage.py (__doc__): Various documentation cleanups and
5589 updates, both in usage docstrings and in the manual.
5611 updates, both in usage docstrings and in the manual.
5590
5612
5591 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5613 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5592 handling of caching. Set minimum acceptabe value for having a
5614 handling of caching. Set minimum acceptabe value for having a
5593 cache at 20 values.
5615 cache at 20 values.
5594
5616
5595 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5617 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5596 install_first_time function to a method, renamed it and added an
5618 install_first_time function to a method, renamed it and added an
5597 'upgrade' mode. Now people can update their config directory with
5619 'upgrade' mode. Now people can update their config directory with
5598 a simple command line switch (-upgrade, also new).
5620 a simple command line switch (-upgrade, also new).
5599
5621
5600 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5622 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5601 @file (convenient for automagic users under Python >= 2.2).
5623 @file (convenient for automagic users under Python >= 2.2).
5602 Removed @files (it seemed more like a plural than an abbrev. of
5624 Removed @files (it seemed more like a plural than an abbrev. of
5603 'file show').
5625 'file show').
5604
5626
5605 * IPython/iplib.py (install_first_time): Fixed crash if there were
5627 * IPython/iplib.py (install_first_time): Fixed crash if there were
5606 backup files ('~') in .ipython/ install directory.
5628 backup files ('~') in .ipython/ install directory.
5607
5629
5608 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5630 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5609 system. Things look fine, but these changes are fairly
5631 system. Things look fine, but these changes are fairly
5610 intrusive. Test them for a few days.
5632 intrusive. Test them for a few days.
5611
5633
5612 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5634 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5613 the prompts system. Now all in/out prompt strings are user
5635 the prompts system. Now all in/out prompt strings are user
5614 controllable. This is particularly useful for embedding, as one
5636 controllable. This is particularly useful for embedding, as one
5615 can tag embedded instances with particular prompts.
5637 can tag embedded instances with particular prompts.
5616
5638
5617 Also removed global use of sys.ps1/2, which now allows nested
5639 Also removed global use of sys.ps1/2, which now allows nested
5618 embeddings without any problems. Added command-line options for
5640 embeddings without any problems. Added command-line options for
5619 the prompt strings.
5641 the prompt strings.
5620
5642
5621 2002-03-08 Fernando Perez <fperez@colorado.edu>
5643 2002-03-08 Fernando Perez <fperez@colorado.edu>
5622
5644
5623 * IPython/UserConfig/example-embed-short.py (ipshell): added
5645 * IPython/UserConfig/example-embed-short.py (ipshell): added
5624 example file with the bare minimum code for embedding.
5646 example file with the bare minimum code for embedding.
5625
5647
5626 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5648 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5627 functionality for the embeddable shell to be activated/deactivated
5649 functionality for the embeddable shell to be activated/deactivated
5628 either globally or at each call.
5650 either globally or at each call.
5629
5651
5630 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5652 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5631 rewriting the prompt with '--->' for auto-inputs with proper
5653 rewriting the prompt with '--->' for auto-inputs with proper
5632 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5654 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5633 this is handled by the prompts class itself, as it should.
5655 this is handled by the prompts class itself, as it should.
5634
5656
5635 2002-03-05 Fernando Perez <fperez@colorado.edu>
5657 2002-03-05 Fernando Perez <fperez@colorado.edu>
5636
5658
5637 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5659 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5638 @logstart to avoid name clashes with the math log function.
5660 @logstart to avoid name clashes with the math log function.
5639
5661
5640 * Big updates to X/Emacs section of the manual.
5662 * Big updates to X/Emacs section of the manual.
5641
5663
5642 * Removed ipython_emacs. Milan explained to me how to pass
5664 * Removed ipython_emacs. Milan explained to me how to pass
5643 arguments to ipython through Emacs. Some day I'm going to end up
5665 arguments to ipython through Emacs. Some day I'm going to end up
5644 learning some lisp...
5666 learning some lisp...
5645
5667
5646 2002-03-04 Fernando Perez <fperez@colorado.edu>
5668 2002-03-04 Fernando Perez <fperez@colorado.edu>
5647
5669
5648 * IPython/ipython_emacs: Created script to be used as the
5670 * IPython/ipython_emacs: Created script to be used as the
5649 py-python-command Emacs variable so we can pass IPython
5671 py-python-command Emacs variable so we can pass IPython
5650 parameters. I can't figure out how to tell Emacs directly to pass
5672 parameters. I can't figure out how to tell Emacs directly to pass
5651 parameters to IPython, so a dummy shell script will do it.
5673 parameters to IPython, so a dummy shell script will do it.
5652
5674
5653 Other enhancements made for things to work better under Emacs'
5675 Other enhancements made for things to work better under Emacs'
5654 various types of terminals. Many thanks to Milan Zamazal
5676 various types of terminals. Many thanks to Milan Zamazal
5655 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5677 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5656
5678
5657 2002-03-01 Fernando Perez <fperez@colorado.edu>
5679 2002-03-01 Fernando Perez <fperez@colorado.edu>
5658
5680
5659 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5681 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5660 that loading of readline is now optional. This gives better
5682 that loading of readline is now optional. This gives better
5661 control to emacs users.
5683 control to emacs users.
5662
5684
5663 * IPython/ultraTB.py (__date__): Modified color escape sequences
5685 * IPython/ultraTB.py (__date__): Modified color escape sequences
5664 and now things work fine under xterm and in Emacs' term buffers
5686 and now things work fine under xterm and in Emacs' term buffers
5665 (though not shell ones). Well, in emacs you get colors, but all
5687 (though not shell ones). Well, in emacs you get colors, but all
5666 seem to be 'light' colors (no difference between dark and light
5688 seem to be 'light' colors (no difference between dark and light
5667 ones). But the garbage chars are gone, and also in xterms. It
5689 ones). But the garbage chars are gone, and also in xterms. It
5668 seems that now I'm using 'cleaner' ansi sequences.
5690 seems that now I'm using 'cleaner' ansi sequences.
5669
5691
5670 2002-02-21 Fernando Perez <fperez@colorado.edu>
5692 2002-02-21 Fernando Perez <fperez@colorado.edu>
5671
5693
5672 * Released 0.2.7 (mainly to publish the scoping fix).
5694 * Released 0.2.7 (mainly to publish the scoping fix).
5673
5695
5674 * IPython/Logger.py (Logger.logstate): added. A corresponding
5696 * IPython/Logger.py (Logger.logstate): added. A corresponding
5675 @logstate magic was created.
5697 @logstate magic was created.
5676
5698
5677 * IPython/Magic.py: fixed nested scoping problem under Python
5699 * IPython/Magic.py: fixed nested scoping problem under Python
5678 2.1.x (automagic wasn't working).
5700 2.1.x (automagic wasn't working).
5679
5701
5680 2002-02-20 Fernando Perez <fperez@colorado.edu>
5702 2002-02-20 Fernando Perez <fperez@colorado.edu>
5681
5703
5682 * Released 0.2.6.
5704 * Released 0.2.6.
5683
5705
5684 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5706 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5685 option so that logs can come out without any headers at all.
5707 option so that logs can come out without any headers at all.
5686
5708
5687 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5709 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5688 SciPy.
5710 SciPy.
5689
5711
5690 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5712 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5691 that embedded IPython calls don't require vars() to be explicitly
5713 that embedded IPython calls don't require vars() to be explicitly
5692 passed. Now they are extracted from the caller's frame (code
5714 passed. Now they are extracted from the caller's frame (code
5693 snatched from Eric Jones' weave). Added better documentation to
5715 snatched from Eric Jones' weave). Added better documentation to
5694 the section on embedding and the example file.
5716 the section on embedding and the example file.
5695
5717
5696 * IPython/genutils.py (page): Changed so that under emacs, it just
5718 * IPython/genutils.py (page): Changed so that under emacs, it just
5697 prints the string. You can then page up and down in the emacs
5719 prints the string. You can then page up and down in the emacs
5698 buffer itself. This is how the builtin help() works.
5720 buffer itself. This is how the builtin help() works.
5699
5721
5700 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5722 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5701 macro scoping: macros need to be executed in the user's namespace
5723 macro scoping: macros need to be executed in the user's namespace
5702 to work as if they had been typed by the user.
5724 to work as if they had been typed by the user.
5703
5725
5704 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5726 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5705 execute automatically (no need to type 'exec...'). They then
5727 execute automatically (no need to type 'exec...'). They then
5706 behave like 'true macros'. The printing system was also modified
5728 behave like 'true macros'. The printing system was also modified
5707 for this to work.
5729 for this to work.
5708
5730
5709 2002-02-19 Fernando Perez <fperez@colorado.edu>
5731 2002-02-19 Fernando Perez <fperez@colorado.edu>
5710
5732
5711 * IPython/genutils.py (page_file): new function for paging files
5733 * IPython/genutils.py (page_file): new function for paging files
5712 in an OS-independent way. Also necessary for file viewing to work
5734 in an OS-independent way. Also necessary for file viewing to work
5713 well inside Emacs buffers.
5735 well inside Emacs buffers.
5714 (page): Added checks for being in an emacs buffer.
5736 (page): Added checks for being in an emacs buffer.
5715 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5737 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5716 same bug in iplib.
5738 same bug in iplib.
5717
5739
5718 2002-02-18 Fernando Perez <fperez@colorado.edu>
5740 2002-02-18 Fernando Perez <fperez@colorado.edu>
5719
5741
5720 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5742 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5721 of readline so that IPython can work inside an Emacs buffer.
5743 of readline so that IPython can work inside an Emacs buffer.
5722
5744
5723 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5745 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5724 method signatures (they weren't really bugs, but it looks cleaner
5746 method signatures (they weren't really bugs, but it looks cleaner
5725 and keeps PyChecker happy).
5747 and keeps PyChecker happy).
5726
5748
5727 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5749 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5728 for implementing various user-defined hooks. Currently only
5750 for implementing various user-defined hooks. Currently only
5729 display is done.
5751 display is done.
5730
5752
5731 * IPython/Prompts.py (CachedOutput._display): changed display
5753 * IPython/Prompts.py (CachedOutput._display): changed display
5732 functions so that they can be dynamically changed by users easily.
5754 functions so that they can be dynamically changed by users easily.
5733
5755
5734 * IPython/Extensions/numeric_formats.py (num_display): added an
5756 * IPython/Extensions/numeric_formats.py (num_display): added an
5735 extension for printing NumPy arrays in flexible manners. It
5757 extension for printing NumPy arrays in flexible manners. It
5736 doesn't do anything yet, but all the structure is in
5758 doesn't do anything yet, but all the structure is in
5737 place. Ultimately the plan is to implement output format control
5759 place. Ultimately the plan is to implement output format control
5738 like in Octave.
5760 like in Octave.
5739
5761
5740 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5762 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5741 methods are found at run-time by all the automatic machinery.
5763 methods are found at run-time by all the automatic machinery.
5742
5764
5743 2002-02-17 Fernando Perez <fperez@colorado.edu>
5765 2002-02-17 Fernando Perez <fperez@colorado.edu>
5744
5766
5745 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5767 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5746 whole file a little.
5768 whole file a little.
5747
5769
5748 * ToDo: closed this document. Now there's a new_design.lyx
5770 * ToDo: closed this document. Now there's a new_design.lyx
5749 document for all new ideas. Added making a pdf of it for the
5771 document for all new ideas. Added making a pdf of it for the
5750 end-user distro.
5772 end-user distro.
5751
5773
5752 * IPython/Logger.py (Logger.switch_log): Created this to replace
5774 * IPython/Logger.py (Logger.switch_log): Created this to replace
5753 logon() and logoff(). It also fixes a nasty crash reported by
5775 logon() and logoff(). It also fixes a nasty crash reported by
5754 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5776 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5755
5777
5756 * IPython/iplib.py (complete): got auto-completion to work with
5778 * IPython/iplib.py (complete): got auto-completion to work with
5757 automagic (I had wanted this for a long time).
5779 automagic (I had wanted this for a long time).
5758
5780
5759 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5781 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5760 to @file, since file() is now a builtin and clashes with automagic
5782 to @file, since file() is now a builtin and clashes with automagic
5761 for @file.
5783 for @file.
5762
5784
5763 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5785 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5764 of this was previously in iplib, which had grown to more than 2000
5786 of this was previously in iplib, which had grown to more than 2000
5765 lines, way too long. No new functionality, but it makes managing
5787 lines, way too long. No new functionality, but it makes managing
5766 the code a bit easier.
5788 the code a bit easier.
5767
5789
5768 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5790 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5769 information to crash reports.
5791 information to crash reports.
5770
5792
5771 2002-02-12 Fernando Perez <fperez@colorado.edu>
5793 2002-02-12 Fernando Perez <fperez@colorado.edu>
5772
5794
5773 * Released 0.2.5.
5795 * Released 0.2.5.
5774
5796
5775 2002-02-11 Fernando Perez <fperez@colorado.edu>
5797 2002-02-11 Fernando Perez <fperez@colorado.edu>
5776
5798
5777 * Wrote a relatively complete Windows installer. It puts
5799 * Wrote a relatively complete Windows installer. It puts
5778 everything in place, creates Start Menu entries and fixes the
5800 everything in place, creates Start Menu entries and fixes the
5779 color issues. Nothing fancy, but it works.
5801 color issues. Nothing fancy, but it works.
5780
5802
5781 2002-02-10 Fernando Perez <fperez@colorado.edu>
5803 2002-02-10 Fernando Perez <fperez@colorado.edu>
5782
5804
5783 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5805 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5784 os.path.expanduser() call so that we can type @run ~/myfile.py and
5806 os.path.expanduser() call so that we can type @run ~/myfile.py and
5785 have thigs work as expected.
5807 have thigs work as expected.
5786
5808
5787 * IPython/genutils.py (page): fixed exception handling so things
5809 * IPython/genutils.py (page): fixed exception handling so things
5788 work both in Unix and Windows correctly. Quitting a pager triggers
5810 work both in Unix and Windows correctly. Quitting a pager triggers
5789 an IOError/broken pipe in Unix, and in windows not finding a pager
5811 an IOError/broken pipe in Unix, and in windows not finding a pager
5790 is also an IOError, so I had to actually look at the return value
5812 is also an IOError, so I had to actually look at the return value
5791 of the exception, not just the exception itself. Should be ok now.
5813 of the exception, not just the exception itself. Should be ok now.
5792
5814
5793 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5815 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5794 modified to allow case-insensitive color scheme changes.
5816 modified to allow case-insensitive color scheme changes.
5795
5817
5796 2002-02-09 Fernando Perez <fperez@colorado.edu>
5818 2002-02-09 Fernando Perez <fperez@colorado.edu>
5797
5819
5798 * IPython/genutils.py (native_line_ends): new function to leave
5820 * IPython/genutils.py (native_line_ends): new function to leave
5799 user config files with os-native line-endings.
5821 user config files with os-native line-endings.
5800
5822
5801 * README and manual updates.
5823 * README and manual updates.
5802
5824
5803 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5825 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5804 instead of StringType to catch Unicode strings.
5826 instead of StringType to catch Unicode strings.
5805
5827
5806 * IPython/genutils.py (filefind): fixed bug for paths with
5828 * IPython/genutils.py (filefind): fixed bug for paths with
5807 embedded spaces (very common in Windows).
5829 embedded spaces (very common in Windows).
5808
5830
5809 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5831 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5810 files under Windows, so that they get automatically associated
5832 files under Windows, so that they get automatically associated
5811 with a text editor. Windows makes it a pain to handle
5833 with a text editor. Windows makes it a pain to handle
5812 extension-less files.
5834 extension-less files.
5813
5835
5814 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5836 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5815 warning about readline only occur for Posix. In Windows there's no
5837 warning about readline only occur for Posix. In Windows there's no
5816 way to get readline, so why bother with the warning.
5838 way to get readline, so why bother with the warning.
5817
5839
5818 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5840 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5819 for __str__ instead of dir(self), since dir() changed in 2.2.
5841 for __str__ instead of dir(self), since dir() changed in 2.2.
5820
5842
5821 * Ported to Windows! Tested on XP, I suspect it should work fine
5843 * Ported to Windows! Tested on XP, I suspect it should work fine
5822 on NT/2000, but I don't think it will work on 98 et al. That
5844 on NT/2000, but I don't think it will work on 98 et al. That
5823 series of Windows is such a piece of junk anyway that I won't try
5845 series of Windows is such a piece of junk anyway that I won't try
5824 porting it there. The XP port was straightforward, showed a few
5846 porting it there. The XP port was straightforward, showed a few
5825 bugs here and there (fixed all), in particular some string
5847 bugs here and there (fixed all), in particular some string
5826 handling stuff which required considering Unicode strings (which
5848 handling stuff which required considering Unicode strings (which
5827 Windows uses). This is good, but hasn't been too tested :) No
5849 Windows uses). This is good, but hasn't been too tested :) No
5828 fancy installer yet, I'll put a note in the manual so people at
5850 fancy installer yet, I'll put a note in the manual so people at
5829 least make manually a shortcut.
5851 least make manually a shortcut.
5830
5852
5831 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5853 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5832 into a single one, "colors". This now controls both prompt and
5854 into a single one, "colors". This now controls both prompt and
5833 exception color schemes, and can be changed both at startup
5855 exception color schemes, and can be changed both at startup
5834 (either via command-line switches or via ipythonrc files) and at
5856 (either via command-line switches or via ipythonrc files) and at
5835 runtime, with @colors.
5857 runtime, with @colors.
5836 (Magic.magic_run): renamed @prun to @run and removed the old
5858 (Magic.magic_run): renamed @prun to @run and removed the old
5837 @run. The two were too similar to warrant keeping both.
5859 @run. The two were too similar to warrant keeping both.
5838
5860
5839 2002-02-03 Fernando Perez <fperez@colorado.edu>
5861 2002-02-03 Fernando Perez <fperez@colorado.edu>
5840
5862
5841 * IPython/iplib.py (install_first_time): Added comment on how to
5863 * IPython/iplib.py (install_first_time): Added comment on how to
5842 configure the color options for first-time users. Put a <return>
5864 configure the color options for first-time users. Put a <return>
5843 request at the end so that small-terminal users get a chance to
5865 request at the end so that small-terminal users get a chance to
5844 read the startup info.
5866 read the startup info.
5845
5867
5846 2002-01-23 Fernando Perez <fperez@colorado.edu>
5868 2002-01-23 Fernando Perez <fperez@colorado.edu>
5847
5869
5848 * IPython/iplib.py (CachedOutput.update): Changed output memory
5870 * IPython/iplib.py (CachedOutput.update): Changed output memory
5849 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5871 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5850 input history we still use _i. Did this b/c these variable are
5872 input history we still use _i. Did this b/c these variable are
5851 very commonly used in interactive work, so the less we need to
5873 very commonly used in interactive work, so the less we need to
5852 type the better off we are.
5874 type the better off we are.
5853 (Magic.magic_prun): updated @prun to better handle the namespaces
5875 (Magic.magic_prun): updated @prun to better handle the namespaces
5854 the file will run in, including a fix for __name__ not being set
5876 the file will run in, including a fix for __name__ not being set
5855 before.
5877 before.
5856
5878
5857 2002-01-20 Fernando Perez <fperez@colorado.edu>
5879 2002-01-20 Fernando Perez <fperez@colorado.edu>
5858
5880
5859 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5881 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5860 extra garbage for Python 2.2. Need to look more carefully into
5882 extra garbage for Python 2.2. Need to look more carefully into
5861 this later.
5883 this later.
5862
5884
5863 2002-01-19 Fernando Perez <fperez@colorado.edu>
5885 2002-01-19 Fernando Perez <fperez@colorado.edu>
5864
5886
5865 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5887 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5866 display SyntaxError exceptions properly formatted when they occur
5888 display SyntaxError exceptions properly formatted when they occur
5867 (they can be triggered by imported code).
5889 (they can be triggered by imported code).
5868
5890
5869 2002-01-18 Fernando Perez <fperez@colorado.edu>
5891 2002-01-18 Fernando Perez <fperez@colorado.edu>
5870
5892
5871 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5893 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5872 SyntaxError exceptions are reported nicely formatted, instead of
5894 SyntaxError exceptions are reported nicely formatted, instead of
5873 spitting out only offset information as before.
5895 spitting out only offset information as before.
5874 (Magic.magic_prun): Added the @prun function for executing
5896 (Magic.magic_prun): Added the @prun function for executing
5875 programs with command line args inside IPython.
5897 programs with command line args inside IPython.
5876
5898
5877 2002-01-16 Fernando Perez <fperez@colorado.edu>
5899 2002-01-16 Fernando Perez <fperez@colorado.edu>
5878
5900
5879 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5901 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5880 to *not* include the last item given in a range. This brings their
5902 to *not* include the last item given in a range. This brings their
5881 behavior in line with Python's slicing:
5903 behavior in line with Python's slicing:
5882 a[n1:n2] -> a[n1]...a[n2-1]
5904 a[n1:n2] -> a[n1]...a[n2-1]
5883 It may be a bit less convenient, but I prefer to stick to Python's
5905 It may be a bit less convenient, but I prefer to stick to Python's
5884 conventions *everywhere*, so users never have to wonder.
5906 conventions *everywhere*, so users never have to wonder.
5885 (Magic.magic_macro): Added @macro function to ease the creation of
5907 (Magic.magic_macro): Added @macro function to ease the creation of
5886 macros.
5908 macros.
5887
5909
5888 2002-01-05 Fernando Perez <fperez@colorado.edu>
5910 2002-01-05 Fernando Perez <fperez@colorado.edu>
5889
5911
5890 * Released 0.2.4.
5912 * Released 0.2.4.
5891
5913
5892 * IPython/iplib.py (Magic.magic_pdef):
5914 * IPython/iplib.py (Magic.magic_pdef):
5893 (InteractiveShell.safe_execfile): report magic lines and error
5915 (InteractiveShell.safe_execfile): report magic lines and error
5894 lines without line numbers so one can easily copy/paste them for
5916 lines without line numbers so one can easily copy/paste them for
5895 re-execution.
5917 re-execution.
5896
5918
5897 * Updated manual with recent changes.
5919 * Updated manual with recent changes.
5898
5920
5899 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5921 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5900 docstring printing when class? is called. Very handy for knowing
5922 docstring printing when class? is called. Very handy for knowing
5901 how to create class instances (as long as __init__ is well
5923 how to create class instances (as long as __init__ is well
5902 documented, of course :)
5924 documented, of course :)
5903 (Magic.magic_doc): print both class and constructor docstrings.
5925 (Magic.magic_doc): print both class and constructor docstrings.
5904 (Magic.magic_pdef): give constructor info if passed a class and
5926 (Magic.magic_pdef): give constructor info if passed a class and
5905 __call__ info for callable object instances.
5927 __call__ info for callable object instances.
5906
5928
5907 2002-01-04 Fernando Perez <fperez@colorado.edu>
5929 2002-01-04 Fernando Perez <fperez@colorado.edu>
5908
5930
5909 * Made deep_reload() off by default. It doesn't always work
5931 * Made deep_reload() off by default. It doesn't always work
5910 exactly as intended, so it's probably safer to have it off. It's
5932 exactly as intended, so it's probably safer to have it off. It's
5911 still available as dreload() anyway, so nothing is lost.
5933 still available as dreload() anyway, so nothing is lost.
5912
5934
5913 2002-01-02 Fernando Perez <fperez@colorado.edu>
5935 2002-01-02 Fernando Perez <fperez@colorado.edu>
5914
5936
5915 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5937 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5916 so I wanted an updated release).
5938 so I wanted an updated release).
5917
5939
5918 2001-12-27 Fernando Perez <fperez@colorado.edu>
5940 2001-12-27 Fernando Perez <fperez@colorado.edu>
5919
5941
5920 * IPython/iplib.py (InteractiveShell.interact): Added the original
5942 * IPython/iplib.py (InteractiveShell.interact): Added the original
5921 code from 'code.py' for this module in order to change the
5943 code from 'code.py' for this module in order to change the
5922 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5944 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5923 the history cache would break when the user hit Ctrl-C, and
5945 the history cache would break when the user hit Ctrl-C, and
5924 interact() offers no way to add any hooks to it.
5946 interact() offers no way to add any hooks to it.
5925
5947
5926 2001-12-23 Fernando Perez <fperez@colorado.edu>
5948 2001-12-23 Fernando Perez <fperez@colorado.edu>
5927
5949
5928 * setup.py: added check for 'MANIFEST' before trying to remove
5950 * setup.py: added check for 'MANIFEST' before trying to remove
5929 it. Thanks to Sean Reifschneider.
5951 it. Thanks to Sean Reifschneider.
5930
5952
5931 2001-12-22 Fernando Perez <fperez@colorado.edu>
5953 2001-12-22 Fernando Perez <fperez@colorado.edu>
5932
5954
5933 * Released 0.2.2.
5955 * Released 0.2.2.
5934
5956
5935 * Finished (reasonably) writing the manual. Later will add the
5957 * Finished (reasonably) writing the manual. Later will add the
5936 python-standard navigation stylesheets, but for the time being
5958 python-standard navigation stylesheets, but for the time being
5937 it's fairly complete. Distribution will include html and pdf
5959 it's fairly complete. Distribution will include html and pdf
5938 versions.
5960 versions.
5939
5961
5940 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5962 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5941 (MayaVi author).
5963 (MayaVi author).
5942
5964
5943 2001-12-21 Fernando Perez <fperez@colorado.edu>
5965 2001-12-21 Fernando Perez <fperez@colorado.edu>
5944
5966
5945 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5967 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5946 good public release, I think (with the manual and the distutils
5968 good public release, I think (with the manual and the distutils
5947 installer). The manual can use some work, but that can go
5969 installer). The manual can use some work, but that can go
5948 slowly. Otherwise I think it's quite nice for end users. Next
5970 slowly. Otherwise I think it's quite nice for end users. Next
5949 summer, rewrite the guts of it...
5971 summer, rewrite the guts of it...
5950
5972
5951 * Changed format of ipythonrc files to use whitespace as the
5973 * Changed format of ipythonrc files to use whitespace as the
5952 separator instead of an explicit '='. Cleaner.
5974 separator instead of an explicit '='. Cleaner.
5953
5975
5954 2001-12-20 Fernando Perez <fperez@colorado.edu>
5976 2001-12-20 Fernando Perez <fperez@colorado.edu>
5955
5977
5956 * Started a manual in LyX. For now it's just a quick merge of the
5978 * Started a manual in LyX. For now it's just a quick merge of the
5957 various internal docstrings and READMEs. Later it may grow into a
5979 various internal docstrings and READMEs. Later it may grow into a
5958 nice, full-blown manual.
5980 nice, full-blown manual.
5959
5981
5960 * Set up a distutils based installer. Installation should now be
5982 * Set up a distutils based installer. Installation should now be
5961 trivially simple for end-users.
5983 trivially simple for end-users.
5962
5984
5963 2001-12-11 Fernando Perez <fperez@colorado.edu>
5985 2001-12-11 Fernando Perez <fperez@colorado.edu>
5964
5986
5965 * Released 0.2.0. First public release, announced it at
5987 * Released 0.2.0. First public release, announced it at
5966 comp.lang.python. From now on, just bugfixes...
5988 comp.lang.python. From now on, just bugfixes...
5967
5989
5968 * Went through all the files, set copyright/license notices and
5990 * Went through all the files, set copyright/license notices and
5969 cleaned up things. Ready for release.
5991 cleaned up things. Ready for release.
5970
5992
5971 2001-12-10 Fernando Perez <fperez@colorado.edu>
5993 2001-12-10 Fernando Perez <fperez@colorado.edu>
5972
5994
5973 * Changed the first-time installer not to use tarfiles. It's more
5995 * Changed the first-time installer not to use tarfiles. It's more
5974 robust now and less unix-dependent. Also makes it easier for
5996 robust now and less unix-dependent. Also makes it easier for
5975 people to later upgrade versions.
5997 people to later upgrade versions.
5976
5998
5977 * Changed @exit to @abort to reflect the fact that it's pretty
5999 * Changed @exit to @abort to reflect the fact that it's pretty
5978 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6000 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5979 becomes significant only when IPyhton is embedded: in that case,
6001 becomes significant only when IPyhton is embedded: in that case,
5980 C-D closes IPython only, but @abort kills the enclosing program
6002 C-D closes IPython only, but @abort kills the enclosing program
5981 too (unless it had called IPython inside a try catching
6003 too (unless it had called IPython inside a try catching
5982 SystemExit).
6004 SystemExit).
5983
6005
5984 * Created Shell module which exposes the actuall IPython Shell
6006 * Created Shell module which exposes the actuall IPython Shell
5985 classes, currently the normal and the embeddable one. This at
6007 classes, currently the normal and the embeddable one. This at
5986 least offers a stable interface we won't need to change when
6008 least offers a stable interface we won't need to change when
5987 (later) the internals are rewritten. That rewrite will be confined
6009 (later) the internals are rewritten. That rewrite will be confined
5988 to iplib and ipmaker, but the Shell interface should remain as is.
6010 to iplib and ipmaker, but the Shell interface should remain as is.
5989
6011
5990 * Added embed module which offers an embeddable IPShell object,
6012 * Added embed module which offers an embeddable IPShell object,
5991 useful to fire up IPython *inside* a running program. Great for
6013 useful to fire up IPython *inside* a running program. Great for
5992 debugging or dynamical data analysis.
6014 debugging or dynamical data analysis.
5993
6015
5994 2001-12-08 Fernando Perez <fperez@colorado.edu>
6016 2001-12-08 Fernando Perez <fperez@colorado.edu>
5995
6017
5996 * Fixed small bug preventing seeing info from methods of defined
6018 * Fixed small bug preventing seeing info from methods of defined
5997 objects (incorrect namespace in _ofind()).
6019 objects (incorrect namespace in _ofind()).
5998
6020
5999 * Documentation cleanup. Moved the main usage docstrings to a
6021 * Documentation cleanup. Moved the main usage docstrings to a
6000 separate file, usage.py (cleaner to maintain, and hopefully in the
6022 separate file, usage.py (cleaner to maintain, and hopefully in the
6001 future some perlpod-like way of producing interactive, man and
6023 future some perlpod-like way of producing interactive, man and
6002 html docs out of it will be found).
6024 html docs out of it will be found).
6003
6025
6004 * Added @profile to see your profile at any time.
6026 * Added @profile to see your profile at any time.
6005
6027
6006 * Added @p as an alias for 'print'. It's especially convenient if
6028 * Added @p as an alias for 'print'. It's especially convenient if
6007 using automagic ('p x' prints x).
6029 using automagic ('p x' prints x).
6008
6030
6009 * Small cleanups and fixes after a pychecker run.
6031 * Small cleanups and fixes after a pychecker run.
6010
6032
6011 * Changed the @cd command to handle @cd - and @cd -<n> for
6033 * Changed the @cd command to handle @cd - and @cd -<n> for
6012 visiting any directory in _dh.
6034 visiting any directory in _dh.
6013
6035
6014 * Introduced _dh, a history of visited directories. @dhist prints
6036 * Introduced _dh, a history of visited directories. @dhist prints
6015 it out with numbers.
6037 it out with numbers.
6016
6038
6017 2001-12-07 Fernando Perez <fperez@colorado.edu>
6039 2001-12-07 Fernando Perez <fperez@colorado.edu>
6018
6040
6019 * Released 0.1.22
6041 * Released 0.1.22
6020
6042
6021 * Made initialization a bit more robust against invalid color
6043 * Made initialization a bit more robust against invalid color
6022 options in user input (exit, not traceback-crash).
6044 options in user input (exit, not traceback-crash).
6023
6045
6024 * Changed the bug crash reporter to write the report only in the
6046 * Changed the bug crash reporter to write the report only in the
6025 user's .ipython directory. That way IPython won't litter people's
6047 user's .ipython directory. That way IPython won't litter people's
6026 hard disks with crash files all over the place. Also print on
6048 hard disks with crash files all over the place. Also print on
6027 screen the necessary mail command.
6049 screen the necessary mail command.
6028
6050
6029 * With the new ultraTB, implemented LightBG color scheme for light
6051 * With the new ultraTB, implemented LightBG color scheme for light
6030 background terminals. A lot of people like white backgrounds, so I
6052 background terminals. A lot of people like white backgrounds, so I
6031 guess we should at least give them something readable.
6053 guess we should at least give them something readable.
6032
6054
6033 2001-12-06 Fernando Perez <fperez@colorado.edu>
6055 2001-12-06 Fernando Perez <fperez@colorado.edu>
6034
6056
6035 * Modified the structure of ultraTB. Now there's a proper class
6057 * Modified the structure of ultraTB. Now there's a proper class
6036 for tables of color schemes which allow adding schemes easily and
6058 for tables of color schemes which allow adding schemes easily and
6037 switching the active scheme without creating a new instance every
6059 switching the active scheme without creating a new instance every
6038 time (which was ridiculous). The syntax for creating new schemes
6060 time (which was ridiculous). The syntax for creating new schemes
6039 is also cleaner. I think ultraTB is finally done, with a clean
6061 is also cleaner. I think ultraTB is finally done, with a clean
6040 class structure. Names are also much cleaner (now there's proper
6062 class structure. Names are also much cleaner (now there's proper
6041 color tables, no need for every variable to also have 'color' in
6063 color tables, no need for every variable to also have 'color' in
6042 its name).
6064 its name).
6043
6065
6044 * Broke down genutils into separate files. Now genutils only
6066 * Broke down genutils into separate files. Now genutils only
6045 contains utility functions, and classes have been moved to their
6067 contains utility functions, and classes have been moved to their
6046 own files (they had enough independent functionality to warrant
6068 own files (they had enough independent functionality to warrant
6047 it): ConfigLoader, OutputTrap, Struct.
6069 it): ConfigLoader, OutputTrap, Struct.
6048
6070
6049 2001-12-05 Fernando Perez <fperez@colorado.edu>
6071 2001-12-05 Fernando Perez <fperez@colorado.edu>
6050
6072
6051 * IPython turns 21! Released version 0.1.21, as a candidate for
6073 * IPython turns 21! Released version 0.1.21, as a candidate for
6052 public consumption. If all goes well, release in a few days.
6074 public consumption. If all goes well, release in a few days.
6053
6075
6054 * Fixed path bug (files in Extensions/ directory wouldn't be found
6076 * Fixed path bug (files in Extensions/ directory wouldn't be found
6055 unless IPython/ was explicitly in sys.path).
6077 unless IPython/ was explicitly in sys.path).
6056
6078
6057 * Extended the FlexCompleter class as MagicCompleter to allow
6079 * Extended the FlexCompleter class as MagicCompleter to allow
6058 completion of @-starting lines.
6080 completion of @-starting lines.
6059
6081
6060 * Created __release__.py file as a central repository for release
6082 * Created __release__.py file as a central repository for release
6061 info that other files can read from.
6083 info that other files can read from.
6062
6084
6063 * Fixed small bug in logging: when logging was turned on in
6085 * Fixed small bug in logging: when logging was turned on in
6064 mid-session, old lines with special meanings (!@?) were being
6086 mid-session, old lines with special meanings (!@?) were being
6065 logged without the prepended comment, which is necessary since
6087 logged without the prepended comment, which is necessary since
6066 they are not truly valid python syntax. This should make session
6088 they are not truly valid python syntax. This should make session
6067 restores produce less errors.
6089 restores produce less errors.
6068
6090
6069 * The namespace cleanup forced me to make a FlexCompleter class
6091 * The namespace cleanup forced me to make a FlexCompleter class
6070 which is nothing but a ripoff of rlcompleter, but with selectable
6092 which is nothing but a ripoff of rlcompleter, but with selectable
6071 namespace (rlcompleter only works in __main__.__dict__). I'll try
6093 namespace (rlcompleter only works in __main__.__dict__). I'll try
6072 to submit a note to the authors to see if this change can be
6094 to submit a note to the authors to see if this change can be
6073 incorporated in future rlcompleter releases (Dec.6: done)
6095 incorporated in future rlcompleter releases (Dec.6: done)
6074
6096
6075 * More fixes to namespace handling. It was a mess! Now all
6097 * More fixes to namespace handling. It was a mess! Now all
6076 explicit references to __main__.__dict__ are gone (except when
6098 explicit references to __main__.__dict__ are gone (except when
6077 really needed) and everything is handled through the namespace
6099 really needed) and everything is handled through the namespace
6078 dicts in the IPython instance. We seem to be getting somewhere
6100 dicts in the IPython instance. We seem to be getting somewhere
6079 with this, finally...
6101 with this, finally...
6080
6102
6081 * Small documentation updates.
6103 * Small documentation updates.
6082
6104
6083 * Created the Extensions directory under IPython (with an
6105 * Created the Extensions directory under IPython (with an
6084 __init__.py). Put the PhysicalQ stuff there. This directory should
6106 __init__.py). Put the PhysicalQ stuff there. This directory should
6085 be used for all special-purpose extensions.
6107 be used for all special-purpose extensions.
6086
6108
6087 * File renaming:
6109 * File renaming:
6088 ipythonlib --> ipmaker
6110 ipythonlib --> ipmaker
6089 ipplib --> iplib
6111 ipplib --> iplib
6090 This makes a bit more sense in terms of what these files actually do.
6112 This makes a bit more sense in terms of what these files actually do.
6091
6113
6092 * Moved all the classes and functions in ipythonlib to ipplib, so
6114 * Moved all the classes and functions in ipythonlib to ipplib, so
6093 now ipythonlib only has make_IPython(). This will ease up its
6115 now ipythonlib only has make_IPython(). This will ease up its
6094 splitting in smaller functional chunks later.
6116 splitting in smaller functional chunks later.
6095
6117
6096 * Cleaned up (done, I think) output of @whos. Better column
6118 * Cleaned up (done, I think) output of @whos. Better column
6097 formatting, and now shows str(var) for as much as it can, which is
6119 formatting, and now shows str(var) for as much as it can, which is
6098 typically what one gets with a 'print var'.
6120 typically what one gets with a 'print var'.
6099
6121
6100 2001-12-04 Fernando Perez <fperez@colorado.edu>
6122 2001-12-04 Fernando Perez <fperez@colorado.edu>
6101
6123
6102 * Fixed namespace problems. Now builtin/IPyhton/user names get
6124 * Fixed namespace problems. Now builtin/IPyhton/user names get
6103 properly reported in their namespace. Internal namespace handling
6125 properly reported in their namespace. Internal namespace handling
6104 is finally getting decent (not perfect yet, but much better than
6126 is finally getting decent (not perfect yet, but much better than
6105 the ad-hoc mess we had).
6127 the ad-hoc mess we had).
6106
6128
6107 * Removed -exit option. If people just want to run a python
6129 * Removed -exit option. If people just want to run a python
6108 script, that's what the normal interpreter is for. Less
6130 script, that's what the normal interpreter is for. Less
6109 unnecessary options, less chances for bugs.
6131 unnecessary options, less chances for bugs.
6110
6132
6111 * Added a crash handler which generates a complete post-mortem if
6133 * Added a crash handler which generates a complete post-mortem if
6112 IPython crashes. This will help a lot in tracking bugs down the
6134 IPython crashes. This will help a lot in tracking bugs down the
6113 road.
6135 road.
6114
6136
6115 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6137 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6116 which were boud to functions being reassigned would bypass the
6138 which were boud to functions being reassigned would bypass the
6117 logger, breaking the sync of _il with the prompt counter. This
6139 logger, breaking the sync of _il with the prompt counter. This
6118 would then crash IPython later when a new line was logged.
6140 would then crash IPython later when a new line was logged.
6119
6141
6120 2001-12-02 Fernando Perez <fperez@colorado.edu>
6142 2001-12-02 Fernando Perez <fperez@colorado.edu>
6121
6143
6122 * Made IPython a package. This means people don't have to clutter
6144 * Made IPython a package. This means people don't have to clutter
6123 their sys.path with yet another directory. Changed the INSTALL
6145 their sys.path with yet another directory. Changed the INSTALL
6124 file accordingly.
6146 file accordingly.
6125
6147
6126 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6148 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6127 sorts its output (so @who shows it sorted) and @whos formats the
6149 sorts its output (so @who shows it sorted) and @whos formats the
6128 table according to the width of the first column. Nicer, easier to
6150 table according to the width of the first column. Nicer, easier to
6129 read. Todo: write a generic table_format() which takes a list of
6151 read. Todo: write a generic table_format() which takes a list of
6130 lists and prints it nicely formatted, with optional row/column
6152 lists and prints it nicely formatted, with optional row/column
6131 separators and proper padding and justification.
6153 separators and proper padding and justification.
6132
6154
6133 * Released 0.1.20
6155 * Released 0.1.20
6134
6156
6135 * Fixed bug in @log which would reverse the inputcache list (a
6157 * Fixed bug in @log which would reverse the inputcache list (a
6136 copy operation was missing).
6158 copy operation was missing).
6137
6159
6138 * Code cleanup. @config was changed to use page(). Better, since
6160 * Code cleanup. @config was changed to use page(). Better, since
6139 its output is always quite long.
6161 its output is always quite long.
6140
6162
6141 * Itpl is back as a dependency. I was having too many problems
6163 * Itpl is back as a dependency. I was having too many problems
6142 getting the parametric aliases to work reliably, and it's just
6164 getting the parametric aliases to work reliably, and it's just
6143 easier to code weird string operations with it than playing %()s
6165 easier to code weird string operations with it than playing %()s
6144 games. It's only ~6k, so I don't think it's too big a deal.
6166 games. It's only ~6k, so I don't think it's too big a deal.
6145
6167
6146 * Found (and fixed) a very nasty bug with history. !lines weren't
6168 * Found (and fixed) a very nasty bug with history. !lines weren't
6147 getting cached, and the out of sync caches would crash
6169 getting cached, and the out of sync caches would crash
6148 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6170 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6149 division of labor a bit better. Bug fixed, cleaner structure.
6171 division of labor a bit better. Bug fixed, cleaner structure.
6150
6172
6151 2001-12-01 Fernando Perez <fperez@colorado.edu>
6173 2001-12-01 Fernando Perez <fperez@colorado.edu>
6152
6174
6153 * Released 0.1.19
6175 * Released 0.1.19
6154
6176
6155 * Added option -n to @hist to prevent line number printing. Much
6177 * Added option -n to @hist to prevent line number printing. Much
6156 easier to copy/paste code this way.
6178 easier to copy/paste code this way.
6157
6179
6158 * Created global _il to hold the input list. Allows easy
6180 * Created global _il to hold the input list. Allows easy
6159 re-execution of blocks of code by slicing it (inspired by Janko's
6181 re-execution of blocks of code by slicing it (inspired by Janko's
6160 comment on 'macros').
6182 comment on 'macros').
6161
6183
6162 * Small fixes and doc updates.
6184 * Small fixes and doc updates.
6163
6185
6164 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6186 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6165 much too fragile with automagic. Handles properly multi-line
6187 much too fragile with automagic. Handles properly multi-line
6166 statements and takes parameters.
6188 statements and takes parameters.
6167
6189
6168 2001-11-30 Fernando Perez <fperez@colorado.edu>
6190 2001-11-30 Fernando Perez <fperez@colorado.edu>
6169
6191
6170 * Version 0.1.18 released.
6192 * Version 0.1.18 released.
6171
6193
6172 * Fixed nasty namespace bug in initial module imports.
6194 * Fixed nasty namespace bug in initial module imports.
6173
6195
6174 * Added copyright/license notes to all code files (except
6196 * Added copyright/license notes to all code files (except
6175 DPyGetOpt). For the time being, LGPL. That could change.
6197 DPyGetOpt). For the time being, LGPL. That could change.
6176
6198
6177 * Rewrote a much nicer README, updated INSTALL, cleaned up
6199 * Rewrote a much nicer README, updated INSTALL, cleaned up
6178 ipythonrc-* samples.
6200 ipythonrc-* samples.
6179
6201
6180 * Overall code/documentation cleanup. Basically ready for
6202 * Overall code/documentation cleanup. Basically ready for
6181 release. Only remaining thing: licence decision (LGPL?).
6203 release. Only remaining thing: licence decision (LGPL?).
6182
6204
6183 * Converted load_config to a class, ConfigLoader. Now recursion
6205 * Converted load_config to a class, ConfigLoader. Now recursion
6184 control is better organized. Doesn't include the same file twice.
6206 control is better organized. Doesn't include the same file twice.
6185
6207
6186 2001-11-29 Fernando Perez <fperez@colorado.edu>
6208 2001-11-29 Fernando Perez <fperez@colorado.edu>
6187
6209
6188 * Got input history working. Changed output history variables from
6210 * Got input history working. Changed output history variables from
6189 _p to _o so that _i is for input and _o for output. Just cleaner
6211 _p to _o so that _i is for input and _o for output. Just cleaner
6190 convention.
6212 convention.
6191
6213
6192 * Implemented parametric aliases. This pretty much allows the
6214 * Implemented parametric aliases. This pretty much allows the
6193 alias system to offer full-blown shell convenience, I think.
6215 alias system to offer full-blown shell convenience, I think.
6194
6216
6195 * Version 0.1.17 released, 0.1.18 opened.
6217 * Version 0.1.17 released, 0.1.18 opened.
6196
6218
6197 * dot_ipython/ipythonrc (alias): added documentation.
6219 * dot_ipython/ipythonrc (alias): added documentation.
6198 (xcolor): Fixed small bug (xcolors -> xcolor)
6220 (xcolor): Fixed small bug (xcolors -> xcolor)
6199
6221
6200 * Changed the alias system. Now alias is a magic command to define
6222 * Changed the alias system. Now alias is a magic command to define
6201 aliases just like the shell. Rationale: the builtin magics should
6223 aliases just like the shell. Rationale: the builtin magics should
6202 be there for things deeply connected to IPython's
6224 be there for things deeply connected to IPython's
6203 architecture. And this is a much lighter system for what I think
6225 architecture. And this is a much lighter system for what I think
6204 is the really important feature: allowing users to define quickly
6226 is the really important feature: allowing users to define quickly
6205 magics that will do shell things for them, so they can customize
6227 magics that will do shell things for them, so they can customize
6206 IPython easily to match their work habits. If someone is really
6228 IPython easily to match their work habits. If someone is really
6207 desperate to have another name for a builtin alias, they can
6229 desperate to have another name for a builtin alias, they can
6208 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6230 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6209 works.
6231 works.
6210
6232
6211 2001-11-28 Fernando Perez <fperez@colorado.edu>
6233 2001-11-28 Fernando Perez <fperez@colorado.edu>
6212
6234
6213 * Changed @file so that it opens the source file at the proper
6235 * Changed @file so that it opens the source file at the proper
6214 line. Since it uses less, if your EDITOR environment is
6236 line. Since it uses less, if your EDITOR environment is
6215 configured, typing v will immediately open your editor of choice
6237 configured, typing v will immediately open your editor of choice
6216 right at the line where the object is defined. Not as quick as
6238 right at the line where the object is defined. Not as quick as
6217 having a direct @edit command, but for all intents and purposes it
6239 having a direct @edit command, but for all intents and purposes it
6218 works. And I don't have to worry about writing @edit to deal with
6240 works. And I don't have to worry about writing @edit to deal with
6219 all the editors, less does that.
6241 all the editors, less does that.
6220
6242
6221 * Version 0.1.16 released, 0.1.17 opened.
6243 * Version 0.1.16 released, 0.1.17 opened.
6222
6244
6223 * Fixed some nasty bugs in the page/page_dumb combo that could
6245 * Fixed some nasty bugs in the page/page_dumb combo that could
6224 crash IPython.
6246 crash IPython.
6225
6247
6226 2001-11-27 Fernando Perez <fperez@colorado.edu>
6248 2001-11-27 Fernando Perez <fperez@colorado.edu>
6227
6249
6228 * Version 0.1.15 released, 0.1.16 opened.
6250 * Version 0.1.15 released, 0.1.16 opened.
6229
6251
6230 * Finally got ? and ?? to work for undefined things: now it's
6252 * Finally got ? and ?? to work for undefined things: now it's
6231 possible to type {}.get? and get information about the get method
6253 possible to type {}.get? and get information about the get method
6232 of dicts, or os.path? even if only os is defined (so technically
6254 of dicts, or os.path? even if only os is defined (so technically
6233 os.path isn't). Works at any level. For example, after import os,
6255 os.path isn't). Works at any level. For example, after import os,
6234 os?, os.path?, os.path.abspath? all work. This is great, took some
6256 os?, os.path?, os.path.abspath? all work. This is great, took some
6235 work in _ofind.
6257 work in _ofind.
6236
6258
6237 * Fixed more bugs with logging. The sanest way to do it was to add
6259 * Fixed more bugs with logging. The sanest way to do it was to add
6238 to @log a 'mode' parameter. Killed two in one shot (this mode
6260 to @log a 'mode' parameter. Killed two in one shot (this mode
6239 option was a request of Janko's). I think it's finally clean
6261 option was a request of Janko's). I think it's finally clean
6240 (famous last words).
6262 (famous last words).
6241
6263
6242 * Added a page_dumb() pager which does a decent job of paging on
6264 * Added a page_dumb() pager which does a decent job of paging on
6243 screen, if better things (like less) aren't available. One less
6265 screen, if better things (like less) aren't available. One less
6244 unix dependency (someday maybe somebody will port this to
6266 unix dependency (someday maybe somebody will port this to
6245 windows).
6267 windows).
6246
6268
6247 * Fixed problem in magic_log: would lock of logging out if log
6269 * Fixed problem in magic_log: would lock of logging out if log
6248 creation failed (because it would still think it had succeeded).
6270 creation failed (because it would still think it had succeeded).
6249
6271
6250 * Improved the page() function using curses to auto-detect screen
6272 * Improved the page() function using curses to auto-detect screen
6251 size. Now it can make a much better decision on whether to print
6273 size. Now it can make a much better decision on whether to print
6252 or page a string. Option screen_length was modified: a value 0
6274 or page a string. Option screen_length was modified: a value 0
6253 means auto-detect, and that's the default now.
6275 means auto-detect, and that's the default now.
6254
6276
6255 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6277 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6256 go out. I'll test it for a few days, then talk to Janko about
6278 go out. I'll test it for a few days, then talk to Janko about
6257 licences and announce it.
6279 licences and announce it.
6258
6280
6259 * Fixed the length of the auto-generated ---> prompt which appears
6281 * Fixed the length of the auto-generated ---> prompt which appears
6260 for auto-parens and auto-quotes. Getting this right isn't trivial,
6282 for auto-parens and auto-quotes. Getting this right isn't trivial,
6261 with all the color escapes, different prompt types and optional
6283 with all the color escapes, different prompt types and optional
6262 separators. But it seems to be working in all the combinations.
6284 separators. But it seems to be working in all the combinations.
6263
6285
6264 2001-11-26 Fernando Perez <fperez@colorado.edu>
6286 2001-11-26 Fernando Perez <fperez@colorado.edu>
6265
6287
6266 * Wrote a regexp filter to get option types from the option names
6288 * Wrote a regexp filter to get option types from the option names
6267 string. This eliminates the need to manually keep two duplicate
6289 string. This eliminates the need to manually keep two duplicate
6268 lists.
6290 lists.
6269
6291
6270 * Removed the unneeded check_option_names. Now options are handled
6292 * Removed the unneeded check_option_names. Now options are handled
6271 in a much saner manner and it's easy to visually check that things
6293 in a much saner manner and it's easy to visually check that things
6272 are ok.
6294 are ok.
6273
6295
6274 * Updated version numbers on all files I modified to carry a
6296 * Updated version numbers on all files I modified to carry a
6275 notice so Janko and Nathan have clear version markers.
6297 notice so Janko and Nathan have clear version markers.
6276
6298
6277 * Updated docstring for ultraTB with my changes. I should send
6299 * Updated docstring for ultraTB with my changes. I should send
6278 this to Nathan.
6300 this to Nathan.
6279
6301
6280 * Lots of small fixes. Ran everything through pychecker again.
6302 * Lots of small fixes. Ran everything through pychecker again.
6281
6303
6282 * Made loading of deep_reload an cmd line option. If it's not too
6304 * Made loading of deep_reload an cmd line option. If it's not too
6283 kosher, now people can just disable it. With -nodeep_reload it's
6305 kosher, now people can just disable it. With -nodeep_reload it's
6284 still available as dreload(), it just won't overwrite reload().
6306 still available as dreload(), it just won't overwrite reload().
6285
6307
6286 * Moved many options to the no| form (-opt and -noopt
6308 * Moved many options to the no| form (-opt and -noopt
6287 accepted). Cleaner.
6309 accepted). Cleaner.
6288
6310
6289 * Changed magic_log so that if called with no parameters, it uses
6311 * Changed magic_log so that if called with no parameters, it uses
6290 'rotate' mode. That way auto-generated logs aren't automatically
6312 'rotate' mode. That way auto-generated logs aren't automatically
6291 over-written. For normal logs, now a backup is made if it exists
6313 over-written. For normal logs, now a backup is made if it exists
6292 (only 1 level of backups). A new 'backup' mode was added to the
6314 (only 1 level of backups). A new 'backup' mode was added to the
6293 Logger class to support this. This was a request by Janko.
6315 Logger class to support this. This was a request by Janko.
6294
6316
6295 * Added @logoff/@logon to stop/restart an active log.
6317 * Added @logoff/@logon to stop/restart an active log.
6296
6318
6297 * Fixed a lot of bugs in log saving/replay. It was pretty
6319 * Fixed a lot of bugs in log saving/replay. It was pretty
6298 broken. Now special lines (!@,/) appear properly in the command
6320 broken. Now special lines (!@,/) appear properly in the command
6299 history after a log replay.
6321 history after a log replay.
6300
6322
6301 * Tried and failed to implement full session saving via pickle. My
6323 * Tried and failed to implement full session saving via pickle. My
6302 idea was to pickle __main__.__dict__, but modules can't be
6324 idea was to pickle __main__.__dict__, but modules can't be
6303 pickled. This would be a better alternative to replaying logs, but
6325 pickled. This would be a better alternative to replaying logs, but
6304 seems quite tricky to get to work. Changed -session to be called
6326 seems quite tricky to get to work. Changed -session to be called
6305 -logplay, which more accurately reflects what it does. And if we
6327 -logplay, which more accurately reflects what it does. And if we
6306 ever get real session saving working, -session is now available.
6328 ever get real session saving working, -session is now available.
6307
6329
6308 * Implemented color schemes for prompts also. As for tracebacks,
6330 * Implemented color schemes for prompts also. As for tracebacks,
6309 currently only NoColor and Linux are supported. But now the
6331 currently only NoColor and Linux are supported. But now the
6310 infrastructure is in place, based on a generic ColorScheme
6332 infrastructure is in place, based on a generic ColorScheme
6311 class. So writing and activating new schemes both for the prompts
6333 class. So writing and activating new schemes both for the prompts
6312 and the tracebacks should be straightforward.
6334 and the tracebacks should be straightforward.
6313
6335
6314 * Version 0.1.13 released, 0.1.14 opened.
6336 * Version 0.1.13 released, 0.1.14 opened.
6315
6337
6316 * Changed handling of options for output cache. Now counter is
6338 * Changed handling of options for output cache. Now counter is
6317 hardwired starting at 1 and one specifies the maximum number of
6339 hardwired starting at 1 and one specifies the maximum number of
6318 entries *in the outcache* (not the max prompt counter). This is
6340 entries *in the outcache* (not the max prompt counter). This is
6319 much better, since many statements won't increase the cache
6341 much better, since many statements won't increase the cache
6320 count. It also eliminated some confusing options, now there's only
6342 count. It also eliminated some confusing options, now there's only
6321 one: cache_size.
6343 one: cache_size.
6322
6344
6323 * Added 'alias' magic function and magic_alias option in the
6345 * Added 'alias' magic function and magic_alias option in the
6324 ipythonrc file. Now the user can easily define whatever names he
6346 ipythonrc file. Now the user can easily define whatever names he
6325 wants for the magic functions without having to play weird
6347 wants for the magic functions without having to play weird
6326 namespace games. This gives IPython a real shell-like feel.
6348 namespace games. This gives IPython a real shell-like feel.
6327
6349
6328 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6350 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6329 @ or not).
6351 @ or not).
6330
6352
6331 This was one of the last remaining 'visible' bugs (that I know
6353 This was one of the last remaining 'visible' bugs (that I know
6332 of). I think if I can clean up the session loading so it works
6354 of). I think if I can clean up the session loading so it works
6333 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6355 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6334 about licensing).
6356 about licensing).
6335
6357
6336 2001-11-25 Fernando Perez <fperez@colorado.edu>
6358 2001-11-25 Fernando Perez <fperez@colorado.edu>
6337
6359
6338 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6360 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6339 there's a cleaner distinction between what ? and ?? show.
6361 there's a cleaner distinction between what ? and ?? show.
6340
6362
6341 * Added screen_length option. Now the user can define his own
6363 * Added screen_length option. Now the user can define his own
6342 screen size for page() operations.
6364 screen size for page() operations.
6343
6365
6344 * Implemented magic shell-like functions with automatic code
6366 * Implemented magic shell-like functions with automatic code
6345 generation. Now adding another function is just a matter of adding
6367 generation. Now adding another function is just a matter of adding
6346 an entry to a dict, and the function is dynamically generated at
6368 an entry to a dict, and the function is dynamically generated at
6347 run-time. Python has some really cool features!
6369 run-time. Python has some really cool features!
6348
6370
6349 * Renamed many options to cleanup conventions a little. Now all
6371 * Renamed many options to cleanup conventions a little. Now all
6350 are lowercase, and only underscores where needed. Also in the code
6372 are lowercase, and only underscores where needed. Also in the code
6351 option name tables are clearer.
6373 option name tables are clearer.
6352
6374
6353 * Changed prompts a little. Now input is 'In [n]:' instead of
6375 * Changed prompts a little. Now input is 'In [n]:' instead of
6354 'In[n]:='. This allows it the numbers to be aligned with the
6376 'In[n]:='. This allows it the numbers to be aligned with the
6355 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6377 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6356 Python (it was a Mathematica thing). The '...' continuation prompt
6378 Python (it was a Mathematica thing). The '...' continuation prompt
6357 was also changed a little to align better.
6379 was also changed a little to align better.
6358
6380
6359 * Fixed bug when flushing output cache. Not all _p<n> variables
6381 * Fixed bug when flushing output cache. Not all _p<n> variables
6360 exist, so their deletion needs to be wrapped in a try:
6382 exist, so their deletion needs to be wrapped in a try:
6361
6383
6362 * Figured out how to properly use inspect.formatargspec() (it
6384 * Figured out how to properly use inspect.formatargspec() (it
6363 requires the args preceded by *). So I removed all the code from
6385 requires the args preceded by *). So I removed all the code from
6364 _get_pdef in Magic, which was just replicating that.
6386 _get_pdef in Magic, which was just replicating that.
6365
6387
6366 * Added test to prefilter to allow redefining magic function names
6388 * Added test to prefilter to allow redefining magic function names
6367 as variables. This is ok, since the @ form is always available,
6389 as variables. This is ok, since the @ form is always available,
6368 but whe should allow the user to define a variable called 'ls' if
6390 but whe should allow the user to define a variable called 'ls' if
6369 he needs it.
6391 he needs it.
6370
6392
6371 * Moved the ToDo information from README into a separate ToDo.
6393 * Moved the ToDo information from README into a separate ToDo.
6372
6394
6373 * General code cleanup and small bugfixes. I think it's close to a
6395 * General code cleanup and small bugfixes. I think it's close to a
6374 state where it can be released, obviously with a big 'beta'
6396 state where it can be released, obviously with a big 'beta'
6375 warning on it.
6397 warning on it.
6376
6398
6377 * Got the magic function split to work. Now all magics are defined
6399 * Got the magic function split to work. Now all magics are defined
6378 in a separate class. It just organizes things a bit, and now
6400 in a separate class. It just organizes things a bit, and now
6379 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6401 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6380 was too long).
6402 was too long).
6381
6403
6382 * Changed @clear to @reset to avoid potential confusions with
6404 * Changed @clear to @reset to avoid potential confusions with
6383 the shell command clear. Also renamed @cl to @clear, which does
6405 the shell command clear. Also renamed @cl to @clear, which does
6384 exactly what people expect it to from their shell experience.
6406 exactly what people expect it to from their shell experience.
6385
6407
6386 Added a check to the @reset command (since it's so
6408 Added a check to the @reset command (since it's so
6387 destructive, it's probably a good idea to ask for confirmation).
6409 destructive, it's probably a good idea to ask for confirmation).
6388 But now reset only works for full namespace resetting. Since the
6410 But now reset only works for full namespace resetting. Since the
6389 del keyword is already there for deleting a few specific
6411 del keyword is already there for deleting a few specific
6390 variables, I don't see the point of having a redundant magic
6412 variables, I don't see the point of having a redundant magic
6391 function for the same task.
6413 function for the same task.
6392
6414
6393 2001-11-24 Fernando Perez <fperez@colorado.edu>
6415 2001-11-24 Fernando Perez <fperez@colorado.edu>
6394
6416
6395 * Updated the builtin docs (esp. the ? ones).
6417 * Updated the builtin docs (esp. the ? ones).
6396
6418
6397 * Ran all the code through pychecker. Not terribly impressed with
6419 * Ran all the code through pychecker. Not terribly impressed with
6398 it: lots of spurious warnings and didn't really find anything of
6420 it: lots of spurious warnings and didn't really find anything of
6399 substance (just a few modules being imported and not used).
6421 substance (just a few modules being imported and not used).
6400
6422
6401 * Implemented the new ultraTB functionality into IPython. New
6423 * Implemented the new ultraTB functionality into IPython. New
6402 option: xcolors. This chooses color scheme. xmode now only selects
6424 option: xcolors. This chooses color scheme. xmode now only selects
6403 between Plain and Verbose. Better orthogonality.
6425 between Plain and Verbose. Better orthogonality.
6404
6426
6405 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6427 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6406 mode and color scheme for the exception handlers. Now it's
6428 mode and color scheme for the exception handlers. Now it's
6407 possible to have the verbose traceback with no coloring.
6429 possible to have the verbose traceback with no coloring.
6408
6430
6409 2001-11-23 Fernando Perez <fperez@colorado.edu>
6431 2001-11-23 Fernando Perez <fperez@colorado.edu>
6410
6432
6411 * Version 0.1.12 released, 0.1.13 opened.
6433 * Version 0.1.12 released, 0.1.13 opened.
6412
6434
6413 * Removed option to set auto-quote and auto-paren escapes by
6435 * Removed option to set auto-quote and auto-paren escapes by
6414 user. The chances of breaking valid syntax are just too high. If
6436 user. The chances of breaking valid syntax are just too high. If
6415 someone *really* wants, they can always dig into the code.
6437 someone *really* wants, they can always dig into the code.
6416
6438
6417 * Made prompt separators configurable.
6439 * Made prompt separators configurable.
6418
6440
6419 2001-11-22 Fernando Perez <fperez@colorado.edu>
6441 2001-11-22 Fernando Perez <fperez@colorado.edu>
6420
6442
6421 * Small bugfixes in many places.
6443 * Small bugfixes in many places.
6422
6444
6423 * Removed the MyCompleter class from ipplib. It seemed redundant
6445 * Removed the MyCompleter class from ipplib. It seemed redundant
6424 with the C-p,C-n history search functionality. Less code to
6446 with the C-p,C-n history search functionality. Less code to
6425 maintain.
6447 maintain.
6426
6448
6427 * Moved all the original ipython.py code into ipythonlib.py. Right
6449 * Moved all the original ipython.py code into ipythonlib.py. Right
6428 now it's just one big dump into a function called make_IPython, so
6450 now it's just one big dump into a function called make_IPython, so
6429 no real modularity has been gained. But at least it makes the
6451 no real modularity has been gained. But at least it makes the
6430 wrapper script tiny, and since ipythonlib is a module, it gets
6452 wrapper script tiny, and since ipythonlib is a module, it gets
6431 compiled and startup is much faster.
6453 compiled and startup is much faster.
6432
6454
6433 This is a reasobably 'deep' change, so we should test it for a
6455 This is a reasobably 'deep' change, so we should test it for a
6434 while without messing too much more with the code.
6456 while without messing too much more with the code.
6435
6457
6436 2001-11-21 Fernando Perez <fperez@colorado.edu>
6458 2001-11-21 Fernando Perez <fperez@colorado.edu>
6437
6459
6438 * Version 0.1.11 released, 0.1.12 opened for further work.
6460 * Version 0.1.11 released, 0.1.12 opened for further work.
6439
6461
6440 * Removed dependency on Itpl. It was only needed in one place. It
6462 * Removed dependency on Itpl. It was only needed in one place. It
6441 would be nice if this became part of python, though. It makes life
6463 would be nice if this became part of python, though. It makes life
6442 *a lot* easier in some cases.
6464 *a lot* easier in some cases.
6443
6465
6444 * Simplified the prefilter code a bit. Now all handlers are
6466 * Simplified the prefilter code a bit. Now all handlers are
6445 expected to explicitly return a value (at least a blank string).
6467 expected to explicitly return a value (at least a blank string).
6446
6468
6447 * Heavy edits in ipplib. Removed the help system altogether. Now
6469 * Heavy edits in ipplib. Removed the help system altogether. Now
6448 obj?/?? is used for inspecting objects, a magic @doc prints
6470 obj?/?? is used for inspecting objects, a magic @doc prints
6449 docstrings, and full-blown Python help is accessed via the 'help'
6471 docstrings, and full-blown Python help is accessed via the 'help'
6450 keyword. This cleans up a lot of code (less to maintain) and does
6472 keyword. This cleans up a lot of code (less to maintain) and does
6451 the job. Since 'help' is now a standard Python component, might as
6473 the job. Since 'help' is now a standard Python component, might as
6452 well use it and remove duplicate functionality.
6474 well use it and remove duplicate functionality.
6453
6475
6454 Also removed the option to use ipplib as a standalone program. By
6476 Also removed the option to use ipplib as a standalone program. By
6455 now it's too dependent on other parts of IPython to function alone.
6477 now it's too dependent on other parts of IPython to function alone.
6456
6478
6457 * Fixed bug in genutils.pager. It would crash if the pager was
6479 * Fixed bug in genutils.pager. It would crash if the pager was
6458 exited immediately after opening (broken pipe).
6480 exited immediately after opening (broken pipe).
6459
6481
6460 * Trimmed down the VerboseTB reporting a little. The header is
6482 * Trimmed down the VerboseTB reporting a little. The header is
6461 much shorter now and the repeated exception arguments at the end
6483 much shorter now and the repeated exception arguments at the end
6462 have been removed. For interactive use the old header seemed a bit
6484 have been removed. For interactive use the old header seemed a bit
6463 excessive.
6485 excessive.
6464
6486
6465 * Fixed small bug in output of @whos for variables with multi-word
6487 * Fixed small bug in output of @whos for variables with multi-word
6466 types (only first word was displayed).
6488 types (only first word was displayed).
6467
6489
6468 2001-11-17 Fernando Perez <fperez@colorado.edu>
6490 2001-11-17 Fernando Perez <fperez@colorado.edu>
6469
6491
6470 * Version 0.1.10 released, 0.1.11 opened for further work.
6492 * Version 0.1.10 released, 0.1.11 opened for further work.
6471
6493
6472 * Modified dirs and friends. dirs now *returns* the stack (not
6494 * Modified dirs and friends. dirs now *returns* the stack (not
6473 prints), so one can manipulate it as a variable. Convenient to
6495 prints), so one can manipulate it as a variable. Convenient to
6474 travel along many directories.
6496 travel along many directories.
6475
6497
6476 * Fixed bug in magic_pdef: would only work with functions with
6498 * Fixed bug in magic_pdef: would only work with functions with
6477 arguments with default values.
6499 arguments with default values.
6478
6500
6479 2001-11-14 Fernando Perez <fperez@colorado.edu>
6501 2001-11-14 Fernando Perez <fperez@colorado.edu>
6480
6502
6481 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6503 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6482 example with IPython. Various other minor fixes and cleanups.
6504 example with IPython. Various other minor fixes and cleanups.
6483
6505
6484 * Version 0.1.9 released, 0.1.10 opened for further work.
6506 * Version 0.1.9 released, 0.1.10 opened for further work.
6485
6507
6486 * Added sys.path to the list of directories searched in the
6508 * Added sys.path to the list of directories searched in the
6487 execfile= option. It used to be the current directory and the
6509 execfile= option. It used to be the current directory and the
6488 user's IPYTHONDIR only.
6510 user's IPYTHONDIR only.
6489
6511
6490 2001-11-13 Fernando Perez <fperez@colorado.edu>
6512 2001-11-13 Fernando Perez <fperez@colorado.edu>
6491
6513
6492 * Reinstated the raw_input/prefilter separation that Janko had
6514 * Reinstated the raw_input/prefilter separation that Janko had
6493 initially. This gives a more convenient setup for extending the
6515 initially. This gives a more convenient setup for extending the
6494 pre-processor from the outside: raw_input always gets a string,
6516 pre-processor from the outside: raw_input always gets a string,
6495 and prefilter has to process it. We can then redefine prefilter
6517 and prefilter has to process it. We can then redefine prefilter
6496 from the outside and implement extensions for special
6518 from the outside and implement extensions for special
6497 purposes.
6519 purposes.
6498
6520
6499 Today I got one for inputting PhysicalQuantity objects
6521 Today I got one for inputting PhysicalQuantity objects
6500 (from Scientific) without needing any function calls at
6522 (from Scientific) without needing any function calls at
6501 all. Extremely convenient, and it's all done as a user-level
6523 all. Extremely convenient, and it's all done as a user-level
6502 extension (no IPython code was touched). Now instead of:
6524 extension (no IPython code was touched). Now instead of:
6503 a = PhysicalQuantity(4.2,'m/s**2')
6525 a = PhysicalQuantity(4.2,'m/s**2')
6504 one can simply say
6526 one can simply say
6505 a = 4.2 m/s**2
6527 a = 4.2 m/s**2
6506 or even
6528 or even
6507 a = 4.2 m/s^2
6529 a = 4.2 m/s^2
6508
6530
6509 I use this, but it's also a proof of concept: IPython really is
6531 I use this, but it's also a proof of concept: IPython really is
6510 fully user-extensible, even at the level of the parsing of the
6532 fully user-extensible, even at the level of the parsing of the
6511 command line. It's not trivial, but it's perfectly doable.
6533 command line. It's not trivial, but it's perfectly doable.
6512
6534
6513 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6535 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6514 the problem of modules being loaded in the inverse order in which
6536 the problem of modules being loaded in the inverse order in which
6515 they were defined in
6537 they were defined in
6516
6538
6517 * Version 0.1.8 released, 0.1.9 opened for further work.
6539 * Version 0.1.8 released, 0.1.9 opened for further work.
6518
6540
6519 * Added magics pdef, source and file. They respectively show the
6541 * Added magics pdef, source and file. They respectively show the
6520 definition line ('prototype' in C), source code and full python
6542 definition line ('prototype' in C), source code and full python
6521 file for any callable object. The object inspector oinfo uses
6543 file for any callable object. The object inspector oinfo uses
6522 these to show the same information.
6544 these to show the same information.
6523
6545
6524 * Version 0.1.7 released, 0.1.8 opened for further work.
6546 * Version 0.1.7 released, 0.1.8 opened for further work.
6525
6547
6526 * Separated all the magic functions into a class called Magic. The
6548 * Separated all the magic functions into a class called Magic. The
6527 InteractiveShell class was becoming too big for Xemacs to handle
6549 InteractiveShell class was becoming too big for Xemacs to handle
6528 (de-indenting a line would lock it up for 10 seconds while it
6550 (de-indenting a line would lock it up for 10 seconds while it
6529 backtracked on the whole class!)
6551 backtracked on the whole class!)
6530
6552
6531 FIXME: didn't work. It can be done, but right now namespaces are
6553 FIXME: didn't work. It can be done, but right now namespaces are
6532 all messed up. Do it later (reverted it for now, so at least
6554 all messed up. Do it later (reverted it for now, so at least
6533 everything works as before).
6555 everything works as before).
6534
6556
6535 * Got the object introspection system (magic_oinfo) working! I
6557 * Got the object introspection system (magic_oinfo) working! I
6536 think this is pretty much ready for release to Janko, so he can
6558 think this is pretty much ready for release to Janko, so he can
6537 test it for a while and then announce it. Pretty much 100% of what
6559 test it for a while and then announce it. Pretty much 100% of what
6538 I wanted for the 'phase 1' release is ready. Happy, tired.
6560 I wanted for the 'phase 1' release is ready. Happy, tired.
6539
6561
6540 2001-11-12 Fernando Perez <fperez@colorado.edu>
6562 2001-11-12 Fernando Perez <fperez@colorado.edu>
6541
6563
6542 * Version 0.1.6 released, 0.1.7 opened for further work.
6564 * Version 0.1.6 released, 0.1.7 opened for further work.
6543
6565
6544 * Fixed bug in printing: it used to test for truth before
6566 * Fixed bug in printing: it used to test for truth before
6545 printing, so 0 wouldn't print. Now checks for None.
6567 printing, so 0 wouldn't print. Now checks for None.
6546
6568
6547 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6569 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6548 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6570 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6549 reaches by hand into the outputcache. Think of a better way to do
6571 reaches by hand into the outputcache. Think of a better way to do
6550 this later.
6572 this later.
6551
6573
6552 * Various small fixes thanks to Nathan's comments.
6574 * Various small fixes thanks to Nathan's comments.
6553
6575
6554 * Changed magic_pprint to magic_Pprint. This way it doesn't
6576 * Changed magic_pprint to magic_Pprint. This way it doesn't
6555 collide with pprint() and the name is consistent with the command
6577 collide with pprint() and the name is consistent with the command
6556 line option.
6578 line option.
6557
6579
6558 * Changed prompt counter behavior to be fully like
6580 * Changed prompt counter behavior to be fully like
6559 Mathematica's. That is, even input that doesn't return a result
6581 Mathematica's. That is, even input that doesn't return a result
6560 raises the prompt counter. The old behavior was kind of confusing
6582 raises the prompt counter. The old behavior was kind of confusing
6561 (getting the same prompt number several times if the operation
6583 (getting the same prompt number several times if the operation
6562 didn't return a result).
6584 didn't return a result).
6563
6585
6564 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6586 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6565
6587
6566 * Fixed -Classic mode (wasn't working anymore).
6588 * Fixed -Classic mode (wasn't working anymore).
6567
6589
6568 * Added colored prompts using Nathan's new code. Colors are
6590 * Added colored prompts using Nathan's new code. Colors are
6569 currently hardwired, they can be user-configurable. For
6591 currently hardwired, they can be user-configurable. For
6570 developers, they can be chosen in file ipythonlib.py, at the
6592 developers, they can be chosen in file ipythonlib.py, at the
6571 beginning of the CachedOutput class def.
6593 beginning of the CachedOutput class def.
6572
6594
6573 2001-11-11 Fernando Perez <fperez@colorado.edu>
6595 2001-11-11 Fernando Perez <fperez@colorado.edu>
6574
6596
6575 * Version 0.1.5 released, 0.1.6 opened for further work.
6597 * Version 0.1.5 released, 0.1.6 opened for further work.
6576
6598
6577 * Changed magic_env to *return* the environment as a dict (not to
6599 * Changed magic_env to *return* the environment as a dict (not to
6578 print it). This way it prints, but it can also be processed.
6600 print it). This way it prints, but it can also be processed.
6579
6601
6580 * Added Verbose exception reporting to interactive
6602 * Added Verbose exception reporting to interactive
6581 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6603 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6582 traceback. Had to make some changes to the ultraTB file. This is
6604 traceback. Had to make some changes to the ultraTB file. This is
6583 probably the last 'big' thing in my mental todo list. This ties
6605 probably the last 'big' thing in my mental todo list. This ties
6584 in with the next entry:
6606 in with the next entry:
6585
6607
6586 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6608 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6587 has to specify is Plain, Color or Verbose for all exception
6609 has to specify is Plain, Color or Verbose for all exception
6588 handling.
6610 handling.
6589
6611
6590 * Removed ShellServices option. All this can really be done via
6612 * Removed ShellServices option. All this can really be done via
6591 the magic system. It's easier to extend, cleaner and has automatic
6613 the magic system. It's easier to extend, cleaner and has automatic
6592 namespace protection and documentation.
6614 namespace protection and documentation.
6593
6615
6594 2001-11-09 Fernando Perez <fperez@colorado.edu>
6616 2001-11-09 Fernando Perez <fperez@colorado.edu>
6595
6617
6596 * Fixed bug in output cache flushing (missing parameter to
6618 * Fixed bug in output cache flushing (missing parameter to
6597 __init__). Other small bugs fixed (found using pychecker).
6619 __init__). Other small bugs fixed (found using pychecker).
6598
6620
6599 * Version 0.1.4 opened for bugfixing.
6621 * Version 0.1.4 opened for bugfixing.
6600
6622
6601 2001-11-07 Fernando Perez <fperez@colorado.edu>
6623 2001-11-07 Fernando Perez <fperez@colorado.edu>
6602
6624
6603 * Version 0.1.3 released, mainly because of the raw_input bug.
6625 * Version 0.1.3 released, mainly because of the raw_input bug.
6604
6626
6605 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6627 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6606 and when testing for whether things were callable, a call could
6628 and when testing for whether things were callable, a call could
6607 actually be made to certain functions. They would get called again
6629 actually be made to certain functions. They would get called again
6608 once 'really' executed, with a resulting double call. A disaster
6630 once 'really' executed, with a resulting double call. A disaster
6609 in many cases (list.reverse() would never work!).
6631 in many cases (list.reverse() would never work!).
6610
6632
6611 * Removed prefilter() function, moved its code to raw_input (which
6633 * Removed prefilter() function, moved its code to raw_input (which
6612 after all was just a near-empty caller for prefilter). This saves
6634 after all was just a near-empty caller for prefilter). This saves
6613 a function call on every prompt, and simplifies the class a tiny bit.
6635 a function call on every prompt, and simplifies the class a tiny bit.
6614
6636
6615 * Fix _ip to __ip name in magic example file.
6637 * Fix _ip to __ip name in magic example file.
6616
6638
6617 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6639 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6618 work with non-gnu versions of tar.
6640 work with non-gnu versions of tar.
6619
6641
6620 2001-11-06 Fernando Perez <fperez@colorado.edu>
6642 2001-11-06 Fernando Perez <fperez@colorado.edu>
6621
6643
6622 * Version 0.1.2. Just to keep track of the recent changes.
6644 * Version 0.1.2. Just to keep track of the recent changes.
6623
6645
6624 * Fixed nasty bug in output prompt routine. It used to check 'if
6646 * Fixed nasty bug in output prompt routine. It used to check 'if
6625 arg != None...'. Problem is, this fails if arg implements a
6647 arg != None...'. Problem is, this fails if arg implements a
6626 special comparison (__cmp__) which disallows comparing to
6648 special comparison (__cmp__) which disallows comparing to
6627 None. Found it when trying to use the PhysicalQuantity module from
6649 None. Found it when trying to use the PhysicalQuantity module from
6628 ScientificPython.
6650 ScientificPython.
6629
6651
6630 2001-11-05 Fernando Perez <fperez@colorado.edu>
6652 2001-11-05 Fernando Perez <fperez@colorado.edu>
6631
6653
6632 * Also added dirs. Now the pushd/popd/dirs family functions
6654 * Also added dirs. Now the pushd/popd/dirs family functions
6633 basically like the shell, with the added convenience of going home
6655 basically like the shell, with the added convenience of going home
6634 when called with no args.
6656 when called with no args.
6635
6657
6636 * pushd/popd slightly modified to mimic shell behavior more
6658 * pushd/popd slightly modified to mimic shell behavior more
6637 closely.
6659 closely.
6638
6660
6639 * Added env,pushd,popd from ShellServices as magic functions. I
6661 * Added env,pushd,popd from ShellServices as magic functions. I
6640 think the cleanest will be to port all desired functions from
6662 think the cleanest will be to port all desired functions from
6641 ShellServices as magics and remove ShellServices altogether. This
6663 ShellServices as magics and remove ShellServices altogether. This
6642 will provide a single, clean way of adding functionality
6664 will provide a single, clean way of adding functionality
6643 (shell-type or otherwise) to IP.
6665 (shell-type or otherwise) to IP.
6644
6666
6645 2001-11-04 Fernando Perez <fperez@colorado.edu>
6667 2001-11-04 Fernando Perez <fperez@colorado.edu>
6646
6668
6647 * Added .ipython/ directory to sys.path. This way users can keep
6669 * Added .ipython/ directory to sys.path. This way users can keep
6648 customizations there and access them via import.
6670 customizations there and access them via import.
6649
6671
6650 2001-11-03 Fernando Perez <fperez@colorado.edu>
6672 2001-11-03 Fernando Perez <fperez@colorado.edu>
6651
6673
6652 * Opened version 0.1.1 for new changes.
6674 * Opened version 0.1.1 for new changes.
6653
6675
6654 * Changed version number to 0.1.0: first 'public' release, sent to
6676 * Changed version number to 0.1.0: first 'public' release, sent to
6655 Nathan and Janko.
6677 Nathan and Janko.
6656
6678
6657 * Lots of small fixes and tweaks.
6679 * Lots of small fixes and tweaks.
6658
6680
6659 * Minor changes to whos format. Now strings are shown, snipped if
6681 * Minor changes to whos format. Now strings are shown, snipped if
6660 too long.
6682 too long.
6661
6683
6662 * Changed ShellServices to work on __main__ so they show up in @who
6684 * Changed ShellServices to work on __main__ so they show up in @who
6663
6685
6664 * Help also works with ? at the end of a line:
6686 * Help also works with ? at the end of a line:
6665 ?sin and sin?
6687 ?sin and sin?
6666 both produce the same effect. This is nice, as often I use the
6688 both produce the same effect. This is nice, as often I use the
6667 tab-complete to find the name of a method, but I used to then have
6689 tab-complete to find the name of a method, but I used to then have
6668 to go to the beginning of the line to put a ? if I wanted more
6690 to go to the beginning of the line to put a ? if I wanted more
6669 info. Now I can just add the ? and hit return. Convenient.
6691 info. Now I can just add the ? and hit return. Convenient.
6670
6692
6671 2001-11-02 Fernando Perez <fperez@colorado.edu>
6693 2001-11-02 Fernando Perez <fperez@colorado.edu>
6672
6694
6673 * Python version check (>=2.1) added.
6695 * Python version check (>=2.1) added.
6674
6696
6675 * Added LazyPython documentation. At this point the docs are quite
6697 * Added LazyPython documentation. At this point the docs are quite
6676 a mess. A cleanup is in order.
6698 a mess. A cleanup is in order.
6677
6699
6678 * Auto-installer created. For some bizarre reason, the zipfiles
6700 * Auto-installer created. For some bizarre reason, the zipfiles
6679 module isn't working on my system. So I made a tar version
6701 module isn't working on my system. So I made a tar version
6680 (hopefully the command line options in various systems won't kill
6702 (hopefully the command line options in various systems won't kill
6681 me).
6703 me).
6682
6704
6683 * Fixes to Struct in genutils. Now all dictionary-like methods are
6705 * Fixes to Struct in genutils. Now all dictionary-like methods are
6684 protected (reasonably).
6706 protected (reasonably).
6685
6707
6686 * Added pager function to genutils and changed ? to print usage
6708 * Added pager function to genutils and changed ? to print usage
6687 note through it (it was too long).
6709 note through it (it was too long).
6688
6710
6689 * Added the LazyPython functionality. Works great! I changed the
6711 * Added the LazyPython functionality. Works great! I changed the
6690 auto-quote escape to ';', it's on home row and next to '. But
6712 auto-quote escape to ';', it's on home row and next to '. But
6691 both auto-quote and auto-paren (still /) escapes are command-line
6713 both auto-quote and auto-paren (still /) escapes are command-line
6692 parameters.
6714 parameters.
6693
6715
6694
6716
6695 2001-11-01 Fernando Perez <fperez@colorado.edu>
6717 2001-11-01 Fernando Perez <fperez@colorado.edu>
6696
6718
6697 * Version changed to 0.0.7. Fairly large change: configuration now
6719 * Version changed to 0.0.7. Fairly large change: configuration now
6698 is all stored in a directory, by default .ipython. There, all
6720 is all stored in a directory, by default .ipython. There, all
6699 config files have normal looking names (not .names)
6721 config files have normal looking names (not .names)
6700
6722
6701 * Version 0.0.6 Released first to Lucas and Archie as a test
6723 * Version 0.0.6 Released first to Lucas and Archie as a test
6702 run. Since it's the first 'semi-public' release, change version to
6724 run. Since it's the first 'semi-public' release, change version to
6703 > 0.0.6 for any changes now.
6725 > 0.0.6 for any changes now.
6704
6726
6705 * Stuff I had put in the ipplib.py changelog:
6727 * Stuff I had put in the ipplib.py changelog:
6706
6728
6707 Changes to InteractiveShell:
6729 Changes to InteractiveShell:
6708
6730
6709 - Made the usage message a parameter.
6731 - Made the usage message a parameter.
6710
6732
6711 - Require the name of the shell variable to be given. It's a bit
6733 - Require the name of the shell variable to be given. It's a bit
6712 of a hack, but allows the name 'shell' not to be hardwired in the
6734 of a hack, but allows the name 'shell' not to be hardwired in the
6713 magic (@) handler, which is problematic b/c it requires
6735 magic (@) handler, which is problematic b/c it requires
6714 polluting the global namespace with 'shell'. This in turn is
6736 polluting the global namespace with 'shell'. This in turn is
6715 fragile: if a user redefines a variable called shell, things
6737 fragile: if a user redefines a variable called shell, things
6716 break.
6738 break.
6717
6739
6718 - magic @: all functions available through @ need to be defined
6740 - magic @: all functions available through @ need to be defined
6719 as magic_<name>, even though they can be called simply as
6741 as magic_<name>, even though they can be called simply as
6720 @<name>. This allows the special command @magic to gather
6742 @<name>. This allows the special command @magic to gather
6721 information automatically about all existing magic functions,
6743 information automatically about all existing magic functions,
6722 even if they are run-time user extensions, by parsing the shell
6744 even if they are run-time user extensions, by parsing the shell
6723 instance __dict__ looking for special magic_ names.
6745 instance __dict__ looking for special magic_ names.
6724
6746
6725 - mainloop: added *two* local namespace parameters. This allows
6747 - mainloop: added *two* local namespace parameters. This allows
6726 the class to differentiate between parameters which were there
6748 the class to differentiate between parameters which were there
6727 before and after command line initialization was processed. This
6749 before and after command line initialization was processed. This
6728 way, later @who can show things loaded at startup by the
6750 way, later @who can show things loaded at startup by the
6729 user. This trick was necessary to make session saving/reloading
6751 user. This trick was necessary to make session saving/reloading
6730 really work: ideally after saving/exiting/reloading a session,
6752 really work: ideally after saving/exiting/reloading a session,
6731 *everything* should look the same, including the output of @who. I
6753 *everything* should look the same, including the output of @who. I
6732 was only able to make this work with this double namespace
6754 was only able to make this work with this double namespace
6733 trick.
6755 trick.
6734
6756
6735 - added a header to the logfile which allows (almost) full
6757 - added a header to the logfile which allows (almost) full
6736 session restoring.
6758 session restoring.
6737
6759
6738 - prepend lines beginning with @ or !, with a and log
6760 - prepend lines beginning with @ or !, with a and log
6739 them. Why? !lines: may be useful to know what you did @lines:
6761 them. Why? !lines: may be useful to know what you did @lines:
6740 they may affect session state. So when restoring a session, at
6762 they may affect session state. So when restoring a session, at
6741 least inform the user of their presence. I couldn't quite get
6763 least inform the user of their presence. I couldn't quite get
6742 them to properly re-execute, but at least the user is warned.
6764 them to properly re-execute, but at least the user is warned.
6743
6765
6744 * Started ChangeLog.
6766 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now