##// END OF EJS Templates
change platutils_win32.set_window_title to use ctypes as default. Fix bug when caling same...
jstenar -
Show More
@@ -1,38 +1,53 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """ Platform specific utility functions, win32 version
2 """ Platform specific utility functions, win32 version
3
3
4 Importing this module directly is not portable - rather, import platutils
4 Importing this module directly is not portable - rather, import platutils
5 to use these functions in platform agnostic fashion.
5 to use these functions in platform agnostic fashion.
6
6
7 $Id: ipstruct.py 1005 2006-01-12 08:39:26Z fperez $
7 $Id: ipstruct.py 1005 2006-01-12 08:39:26Z fperez $
8
8
9 """
9 """
10
10
11
11
12 #*****************************************************************************
12 #*****************************************************************************
13 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
13 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
14 #
14 #
15 # Distributed under the terms of the BSD License. The full license is in
15 # Distributed under the terms of the BSD License. The full license is in
16 # the file COPYING, distributed as part of this software.
16 # the file COPYING, distributed as part of this software.
17 #*****************************************************************************
17 #*****************************************************************************
18
18
19 from IPython import Release
19 from IPython import Release
20 __author__ = '%s <%s>' % Release.authors['Ville']
20 __author__ = '%s <%s>' % Release.authors['Ville']
21 __license__ = Release.license
21 __license__ = Release.license
22
22
23 import os
23 import os
24
24
25 ignore_termtitle = 0
25 ignore_termtitle = 0
26
27 try:
28 from ctypes import windll
29 SetConsoleTitleA=windll.kernel32.SetConsoleTitleA
30
31 def _set_term_title(title):
32 """ Set terminal title using the ctypes"""
33 SetConsoleTitleA(str(title))
34
35 except ImportError:
36 def _set_term_title(title):
37 """ Set terminal title using the 'title' command """
38 curr=os.getcwd()
39 os.chdir("C:") #Cannot be on network share when issuing system commands
40 ret = os.system("title " + title)
41 os.chdir(curr)
42 if ret:
43 ignore_termtitle = 1
44
26 def set_term_title(title):
45 def set_term_title(title):
27 """ Set terminal title using the 'title' command """
46 """ Set terminal title using the 'title' command """
28
29 global ignore_termtitle
47 global ignore_termtitle
30
48
31 if ignore_termtitle:
49 if ignore_termtitle:
32 return
50 return
33
51 _set_term_title(title)
34 ret = os.system("title " + title)
52
35 if ret:
53
36 ignore_termtitle = 1
37
38
@@ -1,6766 +1,6773 b''
1 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
2
3 * fixing set_term_title to use ctypes as default
4
5 * fixing set_term_title fallback to work when curent dir
6 is on a windows network share
7
1 2007-05-28 Ville Vainio <vivainio@gmail.com>
8 2007-05-28 Ville Vainio <vivainio@gmail.com>
2
9
3 * %cpaste: strip + with > from left (diffs).
10 * %cpaste: strip + with > from left (diffs).
4
11
5 * iplib.py: Fix crash when readline not installed
12 * iplib.py: Fix crash when readline not installed
6
13
7 2007-05-26 Ville Vainio <vivainio@gmail.com>
14 2007-05-26 Ville Vainio <vivainio@gmail.com>
8
15
9 * generics.py: intruduce easy to extend result_display generic
16 * generics.py: intruduce easy to extend result_display generic
10 function (using simplegeneric.py).
17 function (using simplegeneric.py).
11
18
12 * Fixed the append functionality of %set.
19 * Fixed the append functionality of %set.
13
20
14 2007-05-25 Ville Vainio <vivainio@gmail.com>
21 2007-05-25 Ville Vainio <vivainio@gmail.com>
15
22
16 * New magic: %rep (fetch / run old commands from history)
23 * New magic: %rep (fetch / run old commands from history)
17
24
18 * New extension: mglob (%mglob magic), for powerful glob / find /filter
25 * New extension: mglob (%mglob magic), for powerful glob / find /filter
19 like functionality
26 like functionality
20
27
21 % maghistory.py: %hist -g PATTERM greps the history for pattern
28 % maghistory.py: %hist -g PATTERM greps the history for pattern
22
29
23 2007-05-24 Walter Doerwald <walter@livinglogic.de>
30 2007-05-24 Walter Doerwald <walter@livinglogic.de>
24
31
25 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
32 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
26 browse the IPython input history
33 browse the IPython input history
27
34
28 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
35 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
29 (mapped to "i") can be used to put the object under the curser in the input
36 (mapped to "i") can be used to put the object under the curser in the input
30 line. pickinputattr (mapped to "I") does the same for the attribute under
37 line. pickinputattr (mapped to "I") does the same for the attribute under
31 the cursor.
38 the cursor.
32
39
33 2007-05-24 Ville Vainio <vivainio@gmail.com>
40 2007-05-24 Ville Vainio <vivainio@gmail.com>
34
41
35 * Grand magic cleansing (changeset [2380]):
42 * Grand magic cleansing (changeset [2380]):
36
43
37 * Introduce ipy_legacy.py where the following magics were
44 * Introduce ipy_legacy.py where the following magics were
38 moved:
45 moved:
39
46
40 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
47 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
41
48
42 If you need them, either use default profile or "import ipy_legacy"
49 If you need them, either use default profile or "import ipy_legacy"
43 in your ipy_user_conf.py
50 in your ipy_user_conf.py
44
51
45 * Move sh and scipy profile to Extensions from UserConfig. this implies
52 * Move sh and scipy profile to Extensions from UserConfig. this implies
46 you should not edit them, but you don't need to run %upgrade when
53 you should not edit them, but you don't need to run %upgrade when
47 upgrading IPython anymore.
54 upgrading IPython anymore.
48
55
49 * %hist/%history now operates in "raw" mode by default. To get the old
56 * %hist/%history now operates in "raw" mode by default. To get the old
50 behaviour, run '%hist -n' (native mode).
57 behaviour, run '%hist -n' (native mode).
51
58
52 * split ipy_stock_completers.py to ipy_stock_completers.py and
59 * split ipy_stock_completers.py to ipy_stock_completers.py and
53 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
60 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
54 installed as default.
61 installed as default.
55
62
56 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
63 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
57 handling.
64 handling.
58
65
59 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
66 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
60 input if readline is available.
67 input if readline is available.
61
68
62 2007-05-23 Ville Vainio <vivainio@gmail.com>
69 2007-05-23 Ville Vainio <vivainio@gmail.com>
63
70
64 * macro.py: %store uses __getstate__ properly
71 * macro.py: %store uses __getstate__ properly
65
72
66 * exesetup.py: added new setup script for creating
73 * exesetup.py: added new setup script for creating
67 standalone IPython executables with py2exe (i.e.
74 standalone IPython executables with py2exe (i.e.
68 no python installation required).
75 no python installation required).
69
76
70 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
77 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
71 its place.
78 its place.
72
79
73 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
80 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
74
81
75 2007-05-21 Ville Vainio <vivainio@gmail.com>
82 2007-05-21 Ville Vainio <vivainio@gmail.com>
76
83
77 * platutil_win32.py (set_term_title): handle
84 * platutil_win32.py (set_term_title): handle
78 failure of 'title' system call properly.
85 failure of 'title' system call properly.
79
86
80 2007-05-17 Walter Doerwald <walter@livinglogic.de>
87 2007-05-17 Walter Doerwald <walter@livinglogic.de>
81
88
82 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
89 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
83 (Bug detected by Paul Mueller).
90 (Bug detected by Paul Mueller).
84
91
85 2007-05-16 Ville Vainio <vivainio@gmail.com>
92 2007-05-16 Ville Vainio <vivainio@gmail.com>
86
93
87 * ipy_profile_sci.py, ipython_win_post_install.py: Create
94 * ipy_profile_sci.py, ipython_win_post_install.py: Create
88 new "sci" profile, effectively a modern version of the old
95 new "sci" profile, effectively a modern version of the old
89 "scipy" profile (which is now slated for deprecation).
96 "scipy" profile (which is now slated for deprecation).
90
97
91 2007-05-15 Ville Vainio <vivainio@gmail.com>
98 2007-05-15 Ville Vainio <vivainio@gmail.com>
92
99
93 * pycolorize.py, pycolor.1: Paul Mueller's patches that
100 * pycolorize.py, pycolor.1: Paul Mueller's patches that
94 make pycolorize read input from stdin when run without arguments.
101 make pycolorize read input from stdin when run without arguments.
95
102
96 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
103 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
97
104
98 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
105 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
99 it in sh profile (instead of ipy_system_conf.py).
106 it in sh profile (instead of ipy_system_conf.py).
100
107
101 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
108 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
102 aliases are now lower case on windows (MyCommand.exe => mycommand).
109 aliases are now lower case on windows (MyCommand.exe => mycommand).
103
110
104 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
111 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
105 Macros are now callable objects that inherit from ipapi.IPyAutocall,
112 Macros are now callable objects that inherit from ipapi.IPyAutocall,
106 i.e. get autocalled regardless of system autocall setting.
113 i.e. get autocalled regardless of system autocall setting.
107
114
108 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
115 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
109
116
110 * IPython/rlineimpl.py: check for clear_history in readline and
117 * IPython/rlineimpl.py: check for clear_history in readline and
111 make it a dummy no-op if not available. This function isn't
118 make it a dummy no-op if not available. This function isn't
112 guaranteed to be in the API and appeared in Python 2.4, so we need
119 guaranteed to be in the API and appeared in Python 2.4, so we need
113 to check it ourselves. Also, clean up this file quite a bit.
120 to check it ourselves. Also, clean up this file quite a bit.
114
121
115 * ipython.1: update man page and full manual with information
122 * ipython.1: update man page and full manual with information
116 about threads (remove outdated warning). Closes #151.
123 about threads (remove outdated warning). Closes #151.
117
124
118 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
125 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
119
126
120 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
127 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
121 in trunk (note that this made it into the 0.8.1 release already,
128 in trunk (note that this made it into the 0.8.1 release already,
122 but the changelogs didn't get coordinated). Many thanks to Gael
129 but the changelogs didn't get coordinated). Many thanks to Gael
123 Varoquaux <gael.varoquaux-AT-normalesup.org>
130 Varoquaux <gael.varoquaux-AT-normalesup.org>
124
131
125 2007-05-09 *** Released version 0.8.1
132 2007-05-09 *** Released version 0.8.1
126
133
127 2007-05-10 Walter Doerwald <walter@livinglogic.de>
134 2007-05-10 Walter Doerwald <walter@livinglogic.de>
128
135
129 * IPython/Extensions/igrid.py: Incorporate html help into
136 * IPython/Extensions/igrid.py: Incorporate html help into
130 the module, so we don't have to search for the file.
137 the module, so we don't have to search for the file.
131
138
132 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
139 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
133
140
134 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
141 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
135
142
136 2007-04-30 Ville Vainio <vivainio@gmail.com>
143 2007-04-30 Ville Vainio <vivainio@gmail.com>
137
144
138 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
145 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
139 user has illegal (non-ascii) home directory name
146 user has illegal (non-ascii) home directory name
140
147
141 2007-04-27 Ville Vainio <vivainio@gmail.com>
148 2007-04-27 Ville Vainio <vivainio@gmail.com>
142
149
143 * platutils_win32.py: implement set_term_title for windows
150 * platutils_win32.py: implement set_term_title for windows
144
151
145 * Update version number
152 * Update version number
146
153
147 * ipy_profile_sh.py: more informative prompt (2 dir levels)
154 * ipy_profile_sh.py: more informative prompt (2 dir levels)
148
155
149 2007-04-26 Walter Doerwald <walter@livinglogic.de>
156 2007-04-26 Walter Doerwald <walter@livinglogic.de>
150
157
151 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
158 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
152 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
159 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
153 bug discovered by Ville).
160 bug discovered by Ville).
154
161
155 2007-04-26 Ville Vainio <vivainio@gmail.com>
162 2007-04-26 Ville Vainio <vivainio@gmail.com>
156
163
157 * Extensions/ipy_completers.py: Olivier's module completer now
164 * Extensions/ipy_completers.py: Olivier's module completer now
158 saves the list of root modules if it takes > 4 secs on the first run.
165 saves the list of root modules if it takes > 4 secs on the first run.
159
166
160 * Magic.py (%rehashx): %rehashx now clears the completer cache
167 * Magic.py (%rehashx): %rehashx now clears the completer cache
161
168
162
169
163 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
170 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
164
171
165 * ipython.el: fix incorrect color scheme, reported by Stefan.
172 * ipython.el: fix incorrect color scheme, reported by Stefan.
166 Closes #149.
173 Closes #149.
167
174
168 * IPython/PyColorize.py (Parser.format2): fix state-handling
175 * IPython/PyColorize.py (Parser.format2): fix state-handling
169 logic. I still don't like how that code handles state, but at
176 logic. I still don't like how that code handles state, but at
170 least now it should be correct, if inelegant. Closes #146.
177 least now it should be correct, if inelegant. Closes #146.
171
178
172 2007-04-25 Ville Vainio <vivainio@gmail.com>
179 2007-04-25 Ville Vainio <vivainio@gmail.com>
173
180
174 * Extensions/ipy_which.py: added extension for %which magic, works
181 * Extensions/ipy_which.py: added extension for %which magic, works
175 a lot like unix 'which' but also finds and expands aliases, and
182 a lot like unix 'which' but also finds and expands aliases, and
176 allows wildcards.
183 allows wildcards.
177
184
178 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
185 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
179 as opposed to returning nothing.
186 as opposed to returning nothing.
180
187
181 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
188 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
182 ipy_stock_completers on default profile, do import on sh profile.
189 ipy_stock_completers on default profile, do import on sh profile.
183
190
184 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
191 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
185
192
186 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
193 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
187 like ipython.py foo.py which raised a IndexError.
194 like ipython.py foo.py which raised a IndexError.
188
195
189 2007-04-21 Ville Vainio <vivainio@gmail.com>
196 2007-04-21 Ville Vainio <vivainio@gmail.com>
190
197
191 * Extensions/ipy_extutil.py: added extension to manage other ipython
198 * Extensions/ipy_extutil.py: added extension to manage other ipython
192 extensions. Now only supports 'ls' == list extensions.
199 extensions. Now only supports 'ls' == list extensions.
193
200
194 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
201 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
195
202
196 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
203 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
197 would prevent use of the exception system outside of a running
204 would prevent use of the exception system outside of a running
198 IPython instance.
205 IPython instance.
199
206
200 2007-04-20 Ville Vainio <vivainio@gmail.com>
207 2007-04-20 Ville Vainio <vivainio@gmail.com>
201
208
202 * Extensions/ipy_render.py: added extension for easy
209 * Extensions/ipy_render.py: added extension for easy
203 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
210 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
204 'Iptl' template notation,
211 'Iptl' template notation,
205
212
206 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
213 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
207 safer & faster 'import' completer.
214 safer & faster 'import' completer.
208
215
209 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
216 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
210 and _ip.defalias(name, command).
217 and _ip.defalias(name, command).
211
218
212 * Extensions/ipy_exportdb.py: New extension for exporting all the
219 * Extensions/ipy_exportdb.py: New extension for exporting all the
213 %store'd data in a portable format (normal ipapi calls like
220 %store'd data in a portable format (normal ipapi calls like
214 defmacro() etc.)
221 defmacro() etc.)
215
222
216 2007-04-19 Ville Vainio <vivainio@gmail.com>
223 2007-04-19 Ville Vainio <vivainio@gmail.com>
217
224
218 * upgrade_dir.py: skip junk files like *.pyc
225 * upgrade_dir.py: skip junk files like *.pyc
219
226
220 * Release.py: version number to 0.8.1
227 * Release.py: version number to 0.8.1
221
228
222 2007-04-18 Ville Vainio <vivainio@gmail.com>
229 2007-04-18 Ville Vainio <vivainio@gmail.com>
223
230
224 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
231 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
225 and later on win32.
232 and later on win32.
226
233
227 2007-04-16 Ville Vainio <vivainio@gmail.com>
234 2007-04-16 Ville Vainio <vivainio@gmail.com>
228
235
229 * iplib.py (showtraceback): Do not crash when running w/o readline.
236 * iplib.py (showtraceback): Do not crash when running w/o readline.
230
237
231 2007-04-12 Walter Doerwald <walter@livinglogic.de>
238 2007-04-12 Walter Doerwald <walter@livinglogic.de>
232
239
233 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
240 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
234 sorted (case sensitive with files and dirs mixed).
241 sorted (case sensitive with files and dirs mixed).
235
242
236 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
243 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
237
244
238 * IPython/Release.py (version): Open trunk for 0.8.1 development.
245 * IPython/Release.py (version): Open trunk for 0.8.1 development.
239
246
240 2007-04-10 *** Released version 0.8.0
247 2007-04-10 *** Released version 0.8.0
241
248
242 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
249 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
243
250
244 * Tag 0.8.0 for release.
251 * Tag 0.8.0 for release.
245
252
246 * IPython/iplib.py (reloadhist): add API function to cleanly
253 * IPython/iplib.py (reloadhist): add API function to cleanly
247 reload the readline history, which was growing inappropriately on
254 reload the readline history, which was growing inappropriately on
248 every %run call.
255 every %run call.
249
256
250 * win32_manual_post_install.py (run): apply last part of Nicolas
257 * win32_manual_post_install.py (run): apply last part of Nicolas
251 Pernetty's patch (I'd accidentally applied it in a different
258 Pernetty's patch (I'd accidentally applied it in a different
252 directory and this particular file didn't get patched).
259 directory and this particular file didn't get patched).
253
260
254 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
261 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
255
262
256 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
263 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
257 find the main thread id and use the proper API call. Thanks to
264 find the main thread id and use the proper API call. Thanks to
258 Stefan for the fix.
265 Stefan for the fix.
259
266
260 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
267 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
261 unit tests to reflect fixed ticket #52, and add more tests sent by
268 unit tests to reflect fixed ticket #52, and add more tests sent by
262 him.
269 him.
263
270
264 * IPython/iplib.py (raw_input): restore the readline completer
271 * IPython/iplib.py (raw_input): restore the readline completer
265 state on every input, in case third-party code messed it up.
272 state on every input, in case third-party code messed it up.
266 (_prefilter): revert recent addition of early-escape checks which
273 (_prefilter): revert recent addition of early-escape checks which
267 prevent many valid alias calls from working.
274 prevent many valid alias calls from working.
268
275
269 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
276 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
270 flag for sigint handler so we don't run a full signal() call on
277 flag for sigint handler so we don't run a full signal() call on
271 each runcode access.
278 each runcode access.
272
279
273 * IPython/Magic.py (magic_whos): small improvement to diagnostic
280 * IPython/Magic.py (magic_whos): small improvement to diagnostic
274 message.
281 message.
275
282
276 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
283 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
277
284
278 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
285 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
279 asynchronous exceptions working, i.e., Ctrl-C can actually
286 asynchronous exceptions working, i.e., Ctrl-C can actually
280 interrupt long-running code in the multithreaded shells.
287 interrupt long-running code in the multithreaded shells.
281
288
282 This is using Tomer Filiba's great ctypes-based trick:
289 This is using Tomer Filiba's great ctypes-based trick:
283 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
290 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
284 this in the past, but hadn't been able to make it work before. So
291 this in the past, but hadn't been able to make it work before. So
285 far it looks like it's actually running, but this needs more
292 far it looks like it's actually running, but this needs more
286 testing. If it really works, I'll be *very* happy, and we'll owe
293 testing. If it really works, I'll be *very* happy, and we'll owe
287 a huge thank you to Tomer. My current implementation is ugly,
294 a huge thank you to Tomer. My current implementation is ugly,
288 hackish and uses nasty globals, but I don't want to try and clean
295 hackish and uses nasty globals, but I don't want to try and clean
289 anything up until we know if it actually works.
296 anything up until we know if it actually works.
290
297
291 NOTE: this feature needs ctypes to work. ctypes is included in
298 NOTE: this feature needs ctypes to work. ctypes is included in
292 Python2.5, but 2.4 users will need to manually install it. This
299 Python2.5, but 2.4 users will need to manually install it. This
293 feature makes multi-threaded shells so much more usable that it's
300 feature makes multi-threaded shells so much more usable that it's
294 a minor price to pay (ctypes is very easy to install, already a
301 a minor price to pay (ctypes is very easy to install, already a
295 requirement for win32 and available in major linux distros).
302 requirement for win32 and available in major linux distros).
296
303
297 2007-04-04 Ville Vainio <vivainio@gmail.com>
304 2007-04-04 Ville Vainio <vivainio@gmail.com>
298
305
299 * Extensions/ipy_completers.py, ipy_stock_completers.py:
306 * Extensions/ipy_completers.py, ipy_stock_completers.py:
300 Moved implementations of 'bundled' completers to ipy_completers.py,
307 Moved implementations of 'bundled' completers to ipy_completers.py,
301 they are only enabled in ipy_stock_completers.py.
308 they are only enabled in ipy_stock_completers.py.
302
309
303 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
310 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
304
311
305 * IPython/PyColorize.py (Parser.format2): Fix identation of
312 * IPython/PyColorize.py (Parser.format2): Fix identation of
306 colorzied output and return early if color scheme is NoColor, to
313 colorzied output and return early if color scheme is NoColor, to
307 avoid unnecessary and expensive tokenization. Closes #131.
314 avoid unnecessary and expensive tokenization. Closes #131.
308
315
309 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
316 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
310
317
311 * IPython/Debugger.py: disable the use of pydb version 1.17. It
318 * IPython/Debugger.py: disable the use of pydb version 1.17. It
312 has a critical bug (a missing import that makes post-mortem not
319 has a critical bug (a missing import that makes post-mortem not
313 work at all). Unfortunately as of this time, this is the version
320 work at all). Unfortunately as of this time, this is the version
314 shipped with Ubuntu Edgy, so quite a few people have this one. I
321 shipped with Ubuntu Edgy, so quite a few people have this one. I
315 hope Edgy will update to a more recent package.
322 hope Edgy will update to a more recent package.
316
323
317 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
324 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
318
325
319 * IPython/iplib.py (_prefilter): close #52, second part of a patch
326 * IPython/iplib.py (_prefilter): close #52, second part of a patch
320 set by Stefan (only the first part had been applied before).
327 set by Stefan (only the first part had been applied before).
321
328
322 * IPython/Extensions/ipy_stock_completers.py (module_completer):
329 * IPython/Extensions/ipy_stock_completers.py (module_completer):
323 remove usage of the dangerous pkgutil.walk_packages(). See
330 remove usage of the dangerous pkgutil.walk_packages(). See
324 details in comments left in the code.
331 details in comments left in the code.
325
332
326 * IPython/Magic.py (magic_whos): add support for numpy arrays
333 * IPython/Magic.py (magic_whos): add support for numpy arrays
327 similar to what we had for Numeric.
334 similar to what we had for Numeric.
328
335
329 * IPython/completer.py (IPCompleter.complete): extend the
336 * IPython/completer.py (IPCompleter.complete): extend the
330 complete() call API to support completions by other mechanisms
337 complete() call API to support completions by other mechanisms
331 than readline. Closes #109.
338 than readline. Closes #109.
332
339
333 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
340 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
334 protect against a bug in Python's execfile(). Closes #123.
341 protect against a bug in Python's execfile(). Closes #123.
335
342
336 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
343 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
337
344
338 * IPython/iplib.py (split_user_input): ensure that when splitting
345 * IPython/iplib.py (split_user_input): ensure that when splitting
339 user input, the part that can be treated as a python name is pure
346 user input, the part that can be treated as a python name is pure
340 ascii (Python identifiers MUST be pure ascii). Part of the
347 ascii (Python identifiers MUST be pure ascii). Part of the
341 ongoing Unicode support work.
348 ongoing Unicode support work.
342
349
343 * IPython/Prompts.py (prompt_specials_color): Add \N for the
350 * IPython/Prompts.py (prompt_specials_color): Add \N for the
344 actual prompt number, without any coloring. This allows users to
351 actual prompt number, without any coloring. This allows users to
345 produce numbered prompts with their own colors. Added after a
352 produce numbered prompts with their own colors. Added after a
346 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
353 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
347
354
348 2007-03-31 Walter Doerwald <walter@livinglogic.de>
355 2007-03-31 Walter Doerwald <walter@livinglogic.de>
349
356
350 * IPython/Extensions/igrid.py: Map the return key
357 * IPython/Extensions/igrid.py: Map the return key
351 to enter() and shift-return to enterattr().
358 to enter() and shift-return to enterattr().
352
359
353 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
360 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
354
361
355 * IPython/Magic.py (magic_psearch): add unicode support by
362 * IPython/Magic.py (magic_psearch): add unicode support by
356 encoding to ascii the input, since this routine also only deals
363 encoding to ascii the input, since this routine also only deals
357 with valid Python names. Fixes a bug reported by Stefan.
364 with valid Python names. Fixes a bug reported by Stefan.
358
365
359 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
360
367
361 * IPython/Magic.py (_inspect): convert unicode input into ascii
368 * IPython/Magic.py (_inspect): convert unicode input into ascii
362 before trying to evaluate it as a Python identifier. This fixes a
369 before trying to evaluate it as a Python identifier. This fixes a
363 problem that the new unicode support had introduced when analyzing
370 problem that the new unicode support had introduced when analyzing
364 long definition lines for functions.
371 long definition lines for functions.
365
372
366 2007-03-24 Walter Doerwald <walter@livinglogic.de>
373 2007-03-24 Walter Doerwald <walter@livinglogic.de>
367
374
368 * IPython/Extensions/igrid.py: Fix picking. Using
375 * IPython/Extensions/igrid.py: Fix picking. Using
369 igrid with wxPython 2.6 and -wthread should work now.
376 igrid with wxPython 2.6 and -wthread should work now.
370 igrid.display() simply tries to create a frame without
377 igrid.display() simply tries to create a frame without
371 an application. Only if this fails an application is created.
378 an application. Only if this fails an application is created.
372
379
373 2007-03-23 Walter Doerwald <walter@livinglogic.de>
380 2007-03-23 Walter Doerwald <walter@livinglogic.de>
374
381
375 * IPython/Extensions/path.py: Updated to version 2.2.
382 * IPython/Extensions/path.py: Updated to version 2.2.
376
383
377 2007-03-23 Ville Vainio <vivainio@gmail.com>
384 2007-03-23 Ville Vainio <vivainio@gmail.com>
378
385
379 * iplib.py: recursive alias expansion now works better, so that
386 * iplib.py: recursive alias expansion now works better, so that
380 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
387 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
381 doesn't trip up the process, if 'd' has been aliased to 'ls'.
388 doesn't trip up the process, if 'd' has been aliased to 'ls'.
382
389
383 * Extensions/ipy_gnuglobal.py added, provides %global magic
390 * Extensions/ipy_gnuglobal.py added, provides %global magic
384 for users of http://www.gnu.org/software/global
391 for users of http://www.gnu.org/software/global
385
392
386 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
393 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
387 Closes #52. Patch by Stefan van der Walt.
394 Closes #52. Patch by Stefan van der Walt.
388
395
389 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
396 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
390
397
391 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
398 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
392 respect the __file__ attribute when using %run. Thanks to a bug
399 respect the __file__ attribute when using %run. Thanks to a bug
393 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
400 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
394
401
395 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
402 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
396
403
397 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
404 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
398 input. Patch sent by Stefan.
405 input. Patch sent by Stefan.
399
406
400 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
407 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
401 * IPython/Extensions/ipy_stock_completer.py
408 * IPython/Extensions/ipy_stock_completer.py
402 shlex_split, fix bug in shlex_split. len function
409 shlex_split, fix bug in shlex_split. len function
403 call was missing an if statement. Caused shlex_split to
410 call was missing an if statement. Caused shlex_split to
404 sometimes return "" as last element.
411 sometimes return "" as last element.
405
412
406 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
413 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
407
414
408 * IPython/completer.py
415 * IPython/completer.py
409 (IPCompleter.file_matches.single_dir_expand): fix a problem
416 (IPCompleter.file_matches.single_dir_expand): fix a problem
410 reported by Stefan, where directories containign a single subdir
417 reported by Stefan, where directories containign a single subdir
411 would be completed too early.
418 would be completed too early.
412
419
413 * IPython/Shell.py (_load_pylab): Make the execution of 'from
420 * IPython/Shell.py (_load_pylab): Make the execution of 'from
414 pylab import *' when -pylab is given be optional. A new flag,
421 pylab import *' when -pylab is given be optional. A new flag,
415 pylab_import_all controls this behavior, the default is True for
422 pylab_import_all controls this behavior, the default is True for
416 backwards compatibility.
423 backwards compatibility.
417
424
418 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
425 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
419 modified) R. Bernstein's patch for fully syntax highlighted
426 modified) R. Bernstein's patch for fully syntax highlighted
420 tracebacks. The functionality is also available under ultraTB for
427 tracebacks. The functionality is also available under ultraTB for
421 non-ipython users (someone using ultraTB but outside an ipython
428 non-ipython users (someone using ultraTB but outside an ipython
422 session). They can select the color scheme by setting the
429 session). They can select the color scheme by setting the
423 module-level global DEFAULT_SCHEME. The highlight functionality
430 module-level global DEFAULT_SCHEME. The highlight functionality
424 also works when debugging.
431 also works when debugging.
425
432
426 * IPython/genutils.py (IOStream.close): small patch by
433 * IPython/genutils.py (IOStream.close): small patch by
427 R. Bernstein for improved pydb support.
434 R. Bernstein for improved pydb support.
428
435
429 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
436 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
430 DaveS <davls@telus.net> to improve support of debugging under
437 DaveS <davls@telus.net> to improve support of debugging under
431 NTEmacs, including improved pydb behavior.
438 NTEmacs, including improved pydb behavior.
432
439
433 * IPython/Magic.py (magic_prun): Fix saving of profile info for
440 * IPython/Magic.py (magic_prun): Fix saving of profile info for
434 Python 2.5, where the stats object API changed a little. Thanks
441 Python 2.5, where the stats object API changed a little. Thanks
435 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
442 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
436
443
437 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
444 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
438 Pernetty's patch to improve support for (X)Emacs under Win32.
445 Pernetty's patch to improve support for (X)Emacs under Win32.
439
446
440 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
447 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
441
448
442 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
449 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
443 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
450 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
444 a report by Nik Tautenhahn.
451 a report by Nik Tautenhahn.
445
452
446 2007-03-16 Walter Doerwald <walter@livinglogic.de>
453 2007-03-16 Walter Doerwald <walter@livinglogic.de>
447
454
448 * setup.py: Add the igrid help files to the list of data files
455 * setup.py: Add the igrid help files to the list of data files
449 to be installed alongside igrid.
456 to be installed alongside igrid.
450 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
457 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
451 Show the input object of the igrid browser as the window tile.
458 Show the input object of the igrid browser as the window tile.
452 Show the object the cursor is on in the statusbar.
459 Show the object the cursor is on in the statusbar.
453
460
454 2007-03-15 Ville Vainio <vivainio@gmail.com>
461 2007-03-15 Ville Vainio <vivainio@gmail.com>
455
462
456 * Extensions/ipy_stock_completers.py: Fixed exception
463 * Extensions/ipy_stock_completers.py: Fixed exception
457 on mismatching quotes in %run completer. Patch by
464 on mismatching quotes in %run completer. Patch by
458 JοΏ½rgen Stenarson. Closes #127.
465 JοΏ½rgen Stenarson. Closes #127.
459
466
460 2007-03-14 Ville Vainio <vivainio@gmail.com>
467 2007-03-14 Ville Vainio <vivainio@gmail.com>
461
468
462 * Extensions/ext_rehashdir.py: Do not do auto_alias
469 * Extensions/ext_rehashdir.py: Do not do auto_alias
463 in %rehashdir, it clobbers %store'd aliases.
470 in %rehashdir, it clobbers %store'd aliases.
464
471
465 * UserConfig/ipy_profile_sh.py: envpersist.py extension
472 * UserConfig/ipy_profile_sh.py: envpersist.py extension
466 (beefed up %env) imported for sh profile.
473 (beefed up %env) imported for sh profile.
467
474
468 2007-03-10 Walter Doerwald <walter@livinglogic.de>
475 2007-03-10 Walter Doerwald <walter@livinglogic.de>
469
476
470 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
477 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
471 as the default browser.
478 as the default browser.
472 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
479 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
473 As igrid displays all attributes it ever encounters, fetch() (which has
480 As igrid displays all attributes it ever encounters, fetch() (which has
474 been renamed to _fetch()) doesn't have to recalculate the display attributes
481 been renamed to _fetch()) doesn't have to recalculate the display attributes
475 every time a new item is fetched. This should speed up scrolling.
482 every time a new item is fetched. This should speed up scrolling.
476
483
477 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
484 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
478
485
479 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
486 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
480 Schmolck's recently reported tab-completion bug (my previous one
487 Schmolck's recently reported tab-completion bug (my previous one
481 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
488 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
482
489
483 2007-03-09 Walter Doerwald <walter@livinglogic.de>
490 2007-03-09 Walter Doerwald <walter@livinglogic.de>
484
491
485 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
492 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
486 Close help window if exiting igrid.
493 Close help window if exiting igrid.
487
494
488 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
495 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
489
496
490 * IPython/Extensions/ipy_defaults.py: Check if readline is available
497 * IPython/Extensions/ipy_defaults.py: Check if readline is available
491 before calling functions from readline.
498 before calling functions from readline.
492
499
493 2007-03-02 Walter Doerwald <walter@livinglogic.de>
500 2007-03-02 Walter Doerwald <walter@livinglogic.de>
494
501
495 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
502 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
496 igrid is a wxPython-based display object for ipipe. If your system has
503 igrid is a wxPython-based display object for ipipe. If your system has
497 wx installed igrid will be the default display. Without wx ipipe falls
504 wx installed igrid will be the default display. Without wx ipipe falls
498 back to ibrowse (which needs curses). If no curses is installed ipipe
505 back to ibrowse (which needs curses). If no curses is installed ipipe
499 falls back to idump.
506 falls back to idump.
500
507
501 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
508 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
502
509
503 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
510 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
504 my changes from yesterday, they introduced bugs. Will reactivate
511 my changes from yesterday, they introduced bugs. Will reactivate
505 once I get a correct solution, which will be much easier thanks to
512 once I get a correct solution, which will be much easier thanks to
506 Dan Milstein's new prefilter test suite.
513 Dan Milstein's new prefilter test suite.
507
514
508 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
515 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
509
516
510 * IPython/iplib.py (split_user_input): fix input splitting so we
517 * IPython/iplib.py (split_user_input): fix input splitting so we
511 don't attempt attribute accesses on things that can't possibly be
518 don't attempt attribute accesses on things that can't possibly be
512 valid Python attributes. After a bug report by Alex Schmolck.
519 valid Python attributes. After a bug report by Alex Schmolck.
513 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
520 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
514 %magic with explicit % prefix.
521 %magic with explicit % prefix.
515
522
516 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
523 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
517
524
518 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
525 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
519 avoid a DeprecationWarning from GTK.
526 avoid a DeprecationWarning from GTK.
520
527
521 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
528 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
522
529
523 * IPython/genutils.py (clock): I modified clock() to return total
530 * IPython/genutils.py (clock): I modified clock() to return total
524 time, user+system. This is a more commonly needed metric. I also
531 time, user+system. This is a more commonly needed metric. I also
525 introduced the new clocku/clocks to get only user/system time if
532 introduced the new clocku/clocks to get only user/system time if
526 one wants those instead.
533 one wants those instead.
527
534
528 ***WARNING: API CHANGE*** clock() used to return only user time,
535 ***WARNING: API CHANGE*** clock() used to return only user time,
529 so if you want exactly the same results as before, use clocku
536 so if you want exactly the same results as before, use clocku
530 instead.
537 instead.
531
538
532 2007-02-22 Ville Vainio <vivainio@gmail.com>
539 2007-02-22 Ville Vainio <vivainio@gmail.com>
533
540
534 * IPython/Extensions/ipy_p4.py: Extension for improved
541 * IPython/Extensions/ipy_p4.py: Extension for improved
535 p4 (perforce version control system) experience.
542 p4 (perforce version control system) experience.
536 Adds %p4 magic with p4 command completion and
543 Adds %p4 magic with p4 command completion and
537 automatic -G argument (marshall output as python dict)
544 automatic -G argument (marshall output as python dict)
538
545
539 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
546 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
540
547
541 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
548 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
542 stop marks.
549 stop marks.
543 (ClearingMixin): a simple mixin to easily make a Demo class clear
550 (ClearingMixin): a simple mixin to easily make a Demo class clear
544 the screen in between blocks and have empty marquees. The
551 the screen in between blocks and have empty marquees. The
545 ClearDemo and ClearIPDemo classes that use it are included.
552 ClearDemo and ClearIPDemo classes that use it are included.
546
553
547 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
554 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
548
555
549 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
556 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
550 protect against exceptions at Python shutdown time. Patch
557 protect against exceptions at Python shutdown time. Patch
551 sumbmitted to upstream.
558 sumbmitted to upstream.
552
559
553 2007-02-14 Walter Doerwald <walter@livinglogic.de>
560 2007-02-14 Walter Doerwald <walter@livinglogic.de>
554
561
555 * IPython/Extensions/ibrowse.py: If entering the first object level
562 * IPython/Extensions/ibrowse.py: If entering the first object level
556 (i.e. the object for which the browser has been started) fails,
563 (i.e. the object for which the browser has been started) fails,
557 now the error is raised directly (aborting the browser) instead of
564 now the error is raised directly (aborting the browser) instead of
558 running into an empty levels list later.
565 running into an empty levels list later.
559
566
560 2007-02-03 Walter Doerwald <walter@livinglogic.de>
567 2007-02-03 Walter Doerwald <walter@livinglogic.de>
561
568
562 * IPython/Extensions/ipipe.py: Add an xrepr implementation
569 * IPython/Extensions/ipipe.py: Add an xrepr implementation
563 for the noitem object.
570 for the noitem object.
564
571
565 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
572 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
566
573
567 * IPython/completer.py (Completer.attr_matches): Fix small
574 * IPython/completer.py (Completer.attr_matches): Fix small
568 tab-completion bug with Enthought Traits objects with units.
575 tab-completion bug with Enthought Traits objects with units.
569 Thanks to a bug report by Tom Denniston
576 Thanks to a bug report by Tom Denniston
570 <tom.denniston-AT-alum.dartmouth.org>.
577 <tom.denniston-AT-alum.dartmouth.org>.
571
578
572 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
579 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
573
580
574 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
581 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
575 bug where only .ipy or .py would be completed. Once the first
582 bug where only .ipy or .py would be completed. Once the first
576 argument to %run has been given, all completions are valid because
583 argument to %run has been given, all completions are valid because
577 they are the arguments to the script, which may well be non-python
584 they are the arguments to the script, which may well be non-python
578 filenames.
585 filenames.
579
586
580 * IPython/irunner.py (InteractiveRunner.run_source): major updates
587 * IPython/irunner.py (InteractiveRunner.run_source): major updates
581 to irunner to allow it to correctly support real doctesting of
588 to irunner to allow it to correctly support real doctesting of
582 out-of-process ipython code.
589 out-of-process ipython code.
583
590
584 * IPython/Magic.py (magic_cd): Make the setting of the terminal
591 * IPython/Magic.py (magic_cd): Make the setting of the terminal
585 title an option (-noterm_title) because it completely breaks
592 title an option (-noterm_title) because it completely breaks
586 doctesting.
593 doctesting.
587
594
588 * IPython/demo.py: fix IPythonDemo class that was not actually working.
595 * IPython/demo.py: fix IPythonDemo class that was not actually working.
589
596
590 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
597 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
591
598
592 * IPython/irunner.py (main): fix small bug where extensions were
599 * IPython/irunner.py (main): fix small bug where extensions were
593 not being correctly recognized.
600 not being correctly recognized.
594
601
595 2007-01-23 Walter Doerwald <walter@livinglogic.de>
602 2007-01-23 Walter Doerwald <walter@livinglogic.de>
596
603
597 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
604 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
598 a string containing a single line yields the string itself as the
605 a string containing a single line yields the string itself as the
599 only item.
606 only item.
600
607
601 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
608 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
602 object if it's the same as the one on the last level (This avoids
609 object if it's the same as the one on the last level (This avoids
603 infinite recursion for one line strings).
610 infinite recursion for one line strings).
604
611
605 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
612 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
606
613
607 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
614 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
608 all output streams before printing tracebacks. This ensures that
615 all output streams before printing tracebacks. This ensures that
609 user output doesn't end up interleaved with traceback output.
616 user output doesn't end up interleaved with traceback output.
610
617
611 2007-01-10 Ville Vainio <vivainio@gmail.com>
618 2007-01-10 Ville Vainio <vivainio@gmail.com>
612
619
613 * Extensions/envpersist.py: Turbocharged %env that remembers
620 * Extensions/envpersist.py: Turbocharged %env that remembers
614 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
621 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
615 "%env VISUAL=jed".
622 "%env VISUAL=jed".
616
623
617 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
624 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
618
625
619 * IPython/iplib.py (showtraceback): ensure that we correctly call
626 * IPython/iplib.py (showtraceback): ensure that we correctly call
620 custom handlers in all cases (some with pdb were slipping through,
627 custom handlers in all cases (some with pdb were slipping through,
621 but I'm not exactly sure why).
628 but I'm not exactly sure why).
622
629
623 * IPython/Debugger.py (Tracer.__init__): added new class to
630 * IPython/Debugger.py (Tracer.__init__): added new class to
624 support set_trace-like usage of IPython's enhanced debugger.
631 support set_trace-like usage of IPython's enhanced debugger.
625
632
626 2006-12-24 Ville Vainio <vivainio@gmail.com>
633 2006-12-24 Ville Vainio <vivainio@gmail.com>
627
634
628 * ipmaker.py: more informative message when ipy_user_conf
635 * ipmaker.py: more informative message when ipy_user_conf
629 import fails (suggest running %upgrade).
636 import fails (suggest running %upgrade).
630
637
631 * tools/run_ipy_in_profiler.py: Utility to see where
638 * tools/run_ipy_in_profiler.py: Utility to see where
632 the time during IPython startup is spent.
639 the time during IPython startup is spent.
633
640
634 2006-12-20 Ville Vainio <vivainio@gmail.com>
641 2006-12-20 Ville Vainio <vivainio@gmail.com>
635
642
636 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
643 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
637
644
638 * ipapi.py: Add new ipapi method, expand_alias.
645 * ipapi.py: Add new ipapi method, expand_alias.
639
646
640 * Release.py: Bump up version to 0.7.4.svn
647 * Release.py: Bump up version to 0.7.4.svn
641
648
642 2006-12-17 Ville Vainio <vivainio@gmail.com>
649 2006-12-17 Ville Vainio <vivainio@gmail.com>
643
650
644 * Extensions/jobctrl.py: Fixed &cmd arg arg...
651 * Extensions/jobctrl.py: Fixed &cmd arg arg...
645 to work properly on posix too
652 to work properly on posix too
646
653
647 * Release.py: Update revnum (version is still just 0.7.3).
654 * Release.py: Update revnum (version is still just 0.7.3).
648
655
649 2006-12-15 Ville Vainio <vivainio@gmail.com>
656 2006-12-15 Ville Vainio <vivainio@gmail.com>
650
657
651 * scripts/ipython_win_post_install: create ipython.py in
658 * scripts/ipython_win_post_install: create ipython.py in
652 prefix + "/scripts".
659 prefix + "/scripts".
653
660
654 * Release.py: Update version to 0.7.3.
661 * Release.py: Update version to 0.7.3.
655
662
656 2006-12-14 Ville Vainio <vivainio@gmail.com>
663 2006-12-14 Ville Vainio <vivainio@gmail.com>
657
664
658 * scripts/ipython_win_post_install: Overwrite old shortcuts
665 * scripts/ipython_win_post_install: Overwrite old shortcuts
659 if they already exist
666 if they already exist
660
667
661 * Release.py: release 0.7.3rc2
668 * Release.py: release 0.7.3rc2
662
669
663 2006-12-13 Ville Vainio <vivainio@gmail.com>
670 2006-12-13 Ville Vainio <vivainio@gmail.com>
664
671
665 * Branch and update Release.py for 0.7.3rc1
672 * Branch and update Release.py for 0.7.3rc1
666
673
667 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
674 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
668
675
669 * IPython/Shell.py (IPShellWX): update for current WX naming
676 * IPython/Shell.py (IPShellWX): update for current WX naming
670 conventions, to avoid a deprecation warning with current WX
677 conventions, to avoid a deprecation warning with current WX
671 versions. Thanks to a report by Danny Shevitz.
678 versions. Thanks to a report by Danny Shevitz.
672
679
673 2006-12-12 Ville Vainio <vivainio@gmail.com>
680 2006-12-12 Ville Vainio <vivainio@gmail.com>
674
681
675 * ipmaker.py: apply david cournapeau's patch to make
682 * ipmaker.py: apply david cournapeau's patch to make
676 import_some work properly even when ipythonrc does
683 import_some work properly even when ipythonrc does
677 import_some on empty list (it was an old bug!).
684 import_some on empty list (it was an old bug!).
678
685
679 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
686 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
680 Add deprecation note to ipythonrc and a url to wiki
687 Add deprecation note to ipythonrc and a url to wiki
681 in ipy_user_conf.py
688 in ipy_user_conf.py
682
689
683
690
684 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
691 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
685 as if it was typed on IPython command prompt, i.e.
692 as if it was typed on IPython command prompt, i.e.
686 as IPython script.
693 as IPython script.
687
694
688 * example-magic.py, magic_grepl.py: remove outdated examples
695 * example-magic.py, magic_grepl.py: remove outdated examples
689
696
690 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
697 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
691
698
692 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
699 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
693 is called before any exception has occurred.
700 is called before any exception has occurred.
694
701
695 2006-12-08 Ville Vainio <vivainio@gmail.com>
702 2006-12-08 Ville Vainio <vivainio@gmail.com>
696
703
697 * Extensions/ipy_stock_completers.py: fix cd completer
704 * Extensions/ipy_stock_completers.py: fix cd completer
698 to translate /'s to \'s again.
705 to translate /'s to \'s again.
699
706
700 * completer.py: prevent traceback on file completions w/
707 * completer.py: prevent traceback on file completions w/
701 backslash.
708 backslash.
702
709
703 * Release.py: Update release number to 0.7.3b3 for release
710 * Release.py: Update release number to 0.7.3b3 for release
704
711
705 2006-12-07 Ville Vainio <vivainio@gmail.com>
712 2006-12-07 Ville Vainio <vivainio@gmail.com>
706
713
707 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
714 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
708 while executing external code. Provides more shell-like behaviour
715 while executing external code. Provides more shell-like behaviour
709 and overall better response to ctrl + C / ctrl + break.
716 and overall better response to ctrl + C / ctrl + break.
710
717
711 * tools/make_tarball.py: new script to create tarball straight from svn
718 * tools/make_tarball.py: new script to create tarball straight from svn
712 (setup.py sdist doesn't work on win32).
719 (setup.py sdist doesn't work on win32).
713
720
714 * Extensions/ipy_stock_completers.py: fix cd completer to give up
721 * Extensions/ipy_stock_completers.py: fix cd completer to give up
715 on dirnames with spaces and use the default completer instead.
722 on dirnames with spaces and use the default completer instead.
716
723
717 * Revision.py: Change version to 0.7.3b2 for release.
724 * Revision.py: Change version to 0.7.3b2 for release.
718
725
719 2006-12-05 Ville Vainio <vivainio@gmail.com>
726 2006-12-05 Ville Vainio <vivainio@gmail.com>
720
727
721 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
728 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
722 pydb patch 4 (rm debug printing, py 2.5 checking)
729 pydb patch 4 (rm debug printing, py 2.5 checking)
723
730
724 2006-11-30 Walter Doerwald <walter@livinglogic.de>
731 2006-11-30 Walter Doerwald <walter@livinglogic.de>
725 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
732 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
726 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
733 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
727 "refreshfind" (mapped to "R") does the same but tries to go back to the same
734 "refreshfind" (mapped to "R") does the same but tries to go back to the same
728 object the cursor was on before the refresh. The command "markrange" is
735 object the cursor was on before the refresh. The command "markrange" is
729 mapped to "%" now.
736 mapped to "%" now.
730 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
737 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
731
738
732 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
739 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
733
740
734 * IPython/Magic.py (magic_debug): new %debug magic to activate the
741 * IPython/Magic.py (magic_debug): new %debug magic to activate the
735 interactive debugger on the last traceback, without having to call
742 interactive debugger on the last traceback, without having to call
736 %pdb and rerun your code. Made minor changes in various modules,
743 %pdb and rerun your code. Made minor changes in various modules,
737 should automatically recognize pydb if available.
744 should automatically recognize pydb if available.
738
745
739 2006-11-28 Ville Vainio <vivainio@gmail.com>
746 2006-11-28 Ville Vainio <vivainio@gmail.com>
740
747
741 * completer.py: If the text start with !, show file completions
748 * completer.py: If the text start with !, show file completions
742 properly. This helps when trying to complete command name
749 properly. This helps when trying to complete command name
743 for shell escapes.
750 for shell escapes.
744
751
745 2006-11-27 Ville Vainio <vivainio@gmail.com>
752 2006-11-27 Ville Vainio <vivainio@gmail.com>
746
753
747 * ipy_stock_completers.py: bzr completer submitted by Stefan van
754 * ipy_stock_completers.py: bzr completer submitted by Stefan van
748 der Walt. Clean up svn and hg completers by using a common
755 der Walt. Clean up svn and hg completers by using a common
749 vcs_completer.
756 vcs_completer.
750
757
751 2006-11-26 Ville Vainio <vivainio@gmail.com>
758 2006-11-26 Ville Vainio <vivainio@gmail.com>
752
759
753 * Remove ipconfig and %config; you should use _ip.options structure
760 * Remove ipconfig and %config; you should use _ip.options structure
754 directly instead!
761 directly instead!
755
762
756 * genutils.py: add wrap_deprecated function for deprecating callables
763 * genutils.py: add wrap_deprecated function for deprecating callables
757
764
758 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
765 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
759 _ip.system instead. ipalias is redundant.
766 _ip.system instead. ipalias is redundant.
760
767
761 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
768 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
762 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
769 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
763 explicit.
770 explicit.
764
771
765 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
772 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
766 completer. Try it by entering 'hg ' and pressing tab.
773 completer. Try it by entering 'hg ' and pressing tab.
767
774
768 * macro.py: Give Macro a useful __repr__ method
775 * macro.py: Give Macro a useful __repr__ method
769
776
770 * Magic.py: %whos abbreviates the typename of Macro for brevity.
777 * Magic.py: %whos abbreviates the typename of Macro for brevity.
771
778
772 2006-11-24 Walter Doerwald <walter@livinglogic.de>
779 2006-11-24 Walter Doerwald <walter@livinglogic.de>
773 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
780 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
774 we don't get a duplicate ipipe module, where registration of the xrepr
781 we don't get a duplicate ipipe module, where registration of the xrepr
775 implementation for Text is useless.
782 implementation for Text is useless.
776
783
777 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
784 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
778
785
779 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
786 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
780
787
781 2006-11-24 Ville Vainio <vivainio@gmail.com>
788 2006-11-24 Ville Vainio <vivainio@gmail.com>
782
789
783 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
790 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
784 try to use "cProfile" instead of the slower pure python
791 try to use "cProfile" instead of the slower pure python
785 "profile"
792 "profile"
786
793
787 2006-11-23 Ville Vainio <vivainio@gmail.com>
794 2006-11-23 Ville Vainio <vivainio@gmail.com>
788
795
789 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
796 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
790 Qt+IPython+Designer link in documentation.
797 Qt+IPython+Designer link in documentation.
791
798
792 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
799 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
793 correct Pdb object to %pydb.
800 correct Pdb object to %pydb.
794
801
795
802
796 2006-11-22 Walter Doerwald <walter@livinglogic.de>
803 2006-11-22 Walter Doerwald <walter@livinglogic.de>
797 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
804 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
798 generic xrepr(), otherwise the list implementation would kick in.
805 generic xrepr(), otherwise the list implementation would kick in.
799
806
800 2006-11-21 Ville Vainio <vivainio@gmail.com>
807 2006-11-21 Ville Vainio <vivainio@gmail.com>
801
808
802 * upgrade_dir.py: Now actually overwrites a nonmodified user file
809 * upgrade_dir.py: Now actually overwrites a nonmodified user file
803 with one from UserConfig.
810 with one from UserConfig.
804
811
805 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
812 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
806 it was missing which broke the sh profile.
813 it was missing which broke the sh profile.
807
814
808 * completer.py: file completer now uses explicit '/' instead
815 * completer.py: file completer now uses explicit '/' instead
809 of os.path.join, expansion of 'foo' was broken on win32
816 of os.path.join, expansion of 'foo' was broken on win32
810 if there was one directory with name 'foobar'.
817 if there was one directory with name 'foobar'.
811
818
812 * A bunch of patches from Kirill Smelkov:
819 * A bunch of patches from Kirill Smelkov:
813
820
814 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
821 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
815
822
816 * [patch 7/9] Implement %page -r (page in raw mode) -
823 * [patch 7/9] Implement %page -r (page in raw mode) -
817
824
818 * [patch 5/9] ScientificPython webpage has moved
825 * [patch 5/9] ScientificPython webpage has moved
819
826
820 * [patch 4/9] The manual mentions %ds, should be %dhist
827 * [patch 4/9] The manual mentions %ds, should be %dhist
821
828
822 * [patch 3/9] Kill old bits from %prun doc.
829 * [patch 3/9] Kill old bits from %prun doc.
823
830
824 * [patch 1/9] Fix typos here and there.
831 * [patch 1/9] Fix typos here and there.
825
832
826 2006-11-08 Ville Vainio <vivainio@gmail.com>
833 2006-11-08 Ville Vainio <vivainio@gmail.com>
827
834
828 * completer.py (attr_matches): catch all exceptions raised
835 * completer.py (attr_matches): catch all exceptions raised
829 by eval of expr with dots.
836 by eval of expr with dots.
830
837
831 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
838 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
832
839
833 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
840 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
834 input if it starts with whitespace. This allows you to paste
841 input if it starts with whitespace. This allows you to paste
835 indented input from any editor without manually having to type in
842 indented input from any editor without manually having to type in
836 the 'if 1:', which is convenient when working interactively.
843 the 'if 1:', which is convenient when working interactively.
837 Slightly modifed version of a patch by Bo Peng
844 Slightly modifed version of a patch by Bo Peng
838 <bpeng-AT-rice.edu>.
845 <bpeng-AT-rice.edu>.
839
846
840 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
847 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
841
848
842 * IPython/irunner.py (main): modified irunner so it automatically
849 * IPython/irunner.py (main): modified irunner so it automatically
843 recognizes the right runner to use based on the extension (.py for
850 recognizes the right runner to use based on the extension (.py for
844 python, .ipy for ipython and .sage for sage).
851 python, .ipy for ipython and .sage for sage).
845
852
846 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
853 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
847 visible in ipapi as ip.config(), to programatically control the
854 visible in ipapi as ip.config(), to programatically control the
848 internal rc object. There's an accompanying %config magic for
855 internal rc object. There's an accompanying %config magic for
849 interactive use, which has been enhanced to match the
856 interactive use, which has been enhanced to match the
850 funtionality in ipconfig.
857 funtionality in ipconfig.
851
858
852 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
859 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
853 so it's not just a toggle, it now takes an argument. Add support
860 so it's not just a toggle, it now takes an argument. Add support
854 for a customizable header when making system calls, as the new
861 for a customizable header when making system calls, as the new
855 system_header variable in the ipythonrc file.
862 system_header variable in the ipythonrc file.
856
863
857 2006-11-03 Walter Doerwald <walter@livinglogic.de>
864 2006-11-03 Walter Doerwald <walter@livinglogic.de>
858
865
859 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
866 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
860 generic functions (using Philip J. Eby's simplegeneric package).
867 generic functions (using Philip J. Eby's simplegeneric package).
861 This makes it possible to customize the display of third-party classes
868 This makes it possible to customize the display of third-party classes
862 without having to monkeypatch them. xiter() no longer supports a mode
869 without having to monkeypatch them. xiter() no longer supports a mode
863 argument and the XMode class has been removed. The same functionality can
870 argument and the XMode class has been removed. The same functionality can
864 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
871 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
865 One consequence of the switch to generic functions is that xrepr() and
872 One consequence of the switch to generic functions is that xrepr() and
866 xattrs() implementation must define the default value for the mode
873 xattrs() implementation must define the default value for the mode
867 argument themselves and xattrs() implementations must return real
874 argument themselves and xattrs() implementations must return real
868 descriptors.
875 descriptors.
869
876
870 * IPython/external: This new subpackage will contain all third-party
877 * IPython/external: This new subpackage will contain all third-party
871 packages that are bundled with IPython. (The first one is simplegeneric).
878 packages that are bundled with IPython. (The first one is simplegeneric).
872
879
873 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
880 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
874 directory which as been dropped in r1703.
881 directory which as been dropped in r1703.
875
882
876 * IPython/Extensions/ipipe.py (iless): Fixed.
883 * IPython/Extensions/ipipe.py (iless): Fixed.
877
884
878 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
885 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
879
886
880 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
887 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
881
888
882 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
889 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
883 handling in variable expansion so that shells and magics recognize
890 handling in variable expansion so that shells and magics recognize
884 function local scopes correctly. Bug reported by Brian.
891 function local scopes correctly. Bug reported by Brian.
885
892
886 * scripts/ipython: remove the very first entry in sys.path which
893 * scripts/ipython: remove the very first entry in sys.path which
887 Python auto-inserts for scripts, so that sys.path under IPython is
894 Python auto-inserts for scripts, so that sys.path under IPython is
888 as similar as possible to that under plain Python.
895 as similar as possible to that under plain Python.
889
896
890 * IPython/completer.py (IPCompleter.file_matches): Fix
897 * IPython/completer.py (IPCompleter.file_matches): Fix
891 tab-completion so that quotes are not closed unless the completion
898 tab-completion so that quotes are not closed unless the completion
892 is unambiguous. After a request by Stefan. Minor cleanups in
899 is unambiguous. After a request by Stefan. Minor cleanups in
893 ipy_stock_completers.
900 ipy_stock_completers.
894
901
895 2006-11-02 Ville Vainio <vivainio@gmail.com>
902 2006-11-02 Ville Vainio <vivainio@gmail.com>
896
903
897 * ipy_stock_completers.py: Add %run and %cd completers.
904 * ipy_stock_completers.py: Add %run and %cd completers.
898
905
899 * completer.py: Try running custom completer for both
906 * completer.py: Try running custom completer for both
900 "foo" and "%foo" if the command is just "foo". Ignore case
907 "foo" and "%foo" if the command is just "foo". Ignore case
901 when filtering possible completions.
908 when filtering possible completions.
902
909
903 * UserConfig/ipy_user_conf.py: install stock completers as default
910 * UserConfig/ipy_user_conf.py: install stock completers as default
904
911
905 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
912 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
906 simplified readline history save / restore through a wrapper
913 simplified readline history save / restore through a wrapper
907 function
914 function
908
915
909
916
910 2006-10-31 Ville Vainio <vivainio@gmail.com>
917 2006-10-31 Ville Vainio <vivainio@gmail.com>
911
918
912 * strdispatch.py, completer.py, ipy_stock_completers.py:
919 * strdispatch.py, completer.py, ipy_stock_completers.py:
913 Allow str_key ("command") in completer hooks. Implement
920 Allow str_key ("command") in completer hooks. Implement
914 trivial completer for 'import' (stdlib modules only). Rename
921 trivial completer for 'import' (stdlib modules only). Rename
915 ipy_linux_package_managers.py to ipy_stock_completers.py.
922 ipy_linux_package_managers.py to ipy_stock_completers.py.
916 SVN completer.
923 SVN completer.
917
924
918 * Extensions/ledit.py: %magic line editor for easily and
925 * Extensions/ledit.py: %magic line editor for easily and
919 incrementally manipulating lists of strings. The magic command
926 incrementally manipulating lists of strings. The magic command
920 name is %led.
927 name is %led.
921
928
922 2006-10-30 Ville Vainio <vivainio@gmail.com>
929 2006-10-30 Ville Vainio <vivainio@gmail.com>
923
930
924 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
931 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
925 Bernsteins's patches for pydb integration.
932 Bernsteins's patches for pydb integration.
926 http://bashdb.sourceforge.net/pydb/
933 http://bashdb.sourceforge.net/pydb/
927
934
928 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
935 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
929 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
936 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
930 custom completer hook to allow the users to implement their own
937 custom completer hook to allow the users to implement their own
931 completers. See ipy_linux_package_managers.py for example. The
938 completers. See ipy_linux_package_managers.py for example. The
932 hook name is 'complete_command'.
939 hook name is 'complete_command'.
933
940
934 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
941 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
935
942
936 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
943 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
937 Numeric leftovers.
944 Numeric leftovers.
938
945
939 * ipython.el (py-execute-region): apply Stefan's patch to fix
946 * ipython.el (py-execute-region): apply Stefan's patch to fix
940 garbled results if the python shell hasn't been previously started.
947 garbled results if the python shell hasn't been previously started.
941
948
942 * IPython/genutils.py (arg_split): moved to genutils, since it's a
949 * IPython/genutils.py (arg_split): moved to genutils, since it's a
943 pretty generic function and useful for other things.
950 pretty generic function and useful for other things.
944
951
945 * IPython/OInspect.py (getsource): Add customizable source
952 * IPython/OInspect.py (getsource): Add customizable source
946 extractor. After a request/patch form W. Stein (SAGE).
953 extractor. After a request/patch form W. Stein (SAGE).
947
954
948 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
955 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
949 window size to a more reasonable value from what pexpect does,
956 window size to a more reasonable value from what pexpect does,
950 since their choice causes wrapping bugs with long input lines.
957 since their choice causes wrapping bugs with long input lines.
951
958
952 2006-10-28 Ville Vainio <vivainio@gmail.com>
959 2006-10-28 Ville Vainio <vivainio@gmail.com>
953
960
954 * Magic.py (%run): Save and restore the readline history from
961 * Magic.py (%run): Save and restore the readline history from
955 file around %run commands to prevent side effects from
962 file around %run commands to prevent side effects from
956 %runned programs that might use readline (e.g. pydb).
963 %runned programs that might use readline (e.g. pydb).
957
964
958 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
965 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
959 invoking the pydb enhanced debugger.
966 invoking the pydb enhanced debugger.
960
967
961 2006-10-23 Walter Doerwald <walter@livinglogic.de>
968 2006-10-23 Walter Doerwald <walter@livinglogic.de>
962
969
963 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
970 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
964 call the base class method and propagate the return value to
971 call the base class method and propagate the return value to
965 ifile. This is now done by path itself.
972 ifile. This is now done by path itself.
966
973
967 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
974 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
968
975
969 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
976 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
970 api: set_crash_handler(), to expose the ability to change the
977 api: set_crash_handler(), to expose the ability to change the
971 internal crash handler.
978 internal crash handler.
972
979
973 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
980 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
974 the various parameters of the crash handler so that apps using
981 the various parameters of the crash handler so that apps using
975 IPython as their engine can customize crash handling. Ipmlemented
982 IPython as their engine can customize crash handling. Ipmlemented
976 at the request of SAGE.
983 at the request of SAGE.
977
984
978 2006-10-14 Ville Vainio <vivainio@gmail.com>
985 2006-10-14 Ville Vainio <vivainio@gmail.com>
979
986
980 * Magic.py, ipython.el: applied first "safe" part of Rocky
987 * Magic.py, ipython.el: applied first "safe" part of Rocky
981 Bernstein's patch set for pydb integration.
988 Bernstein's patch set for pydb integration.
982
989
983 * Magic.py (%unalias, %alias): %store'd aliases can now be
990 * Magic.py (%unalias, %alias): %store'd aliases can now be
984 removed with '%unalias'. %alias w/o args now shows most
991 removed with '%unalias'. %alias w/o args now shows most
985 interesting (stored / manually defined) aliases last
992 interesting (stored / manually defined) aliases last
986 where they catch the eye w/o scrolling.
993 where they catch the eye w/o scrolling.
987
994
988 * Magic.py (%rehashx), ext_rehashdir.py: files with
995 * Magic.py (%rehashx), ext_rehashdir.py: files with
989 'py' extension are always considered executable, even
996 'py' extension are always considered executable, even
990 when not in PATHEXT environment variable.
997 when not in PATHEXT environment variable.
991
998
992 2006-10-12 Ville Vainio <vivainio@gmail.com>
999 2006-10-12 Ville Vainio <vivainio@gmail.com>
993
1000
994 * jobctrl.py: Add new "jobctrl" extension for spawning background
1001 * jobctrl.py: Add new "jobctrl" extension for spawning background
995 processes with "&find /". 'import jobctrl' to try it out. Requires
1002 processes with "&find /". 'import jobctrl' to try it out. Requires
996 'subprocess' module, standard in python 2.4+.
1003 'subprocess' module, standard in python 2.4+.
997
1004
998 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1005 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
999 so if foo -> bar and bar -> baz, then foo -> baz.
1006 so if foo -> bar and bar -> baz, then foo -> baz.
1000
1007
1001 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1008 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1002
1009
1003 * IPython/Magic.py (Magic.parse_options): add a new posix option
1010 * IPython/Magic.py (Magic.parse_options): add a new posix option
1004 to allow parsing of input args in magics that doesn't strip quotes
1011 to allow parsing of input args in magics that doesn't strip quotes
1005 (if posix=False). This also closes %timeit bug reported by
1012 (if posix=False). This also closes %timeit bug reported by
1006 Stefan.
1013 Stefan.
1007
1014
1008 2006-10-03 Ville Vainio <vivainio@gmail.com>
1015 2006-10-03 Ville Vainio <vivainio@gmail.com>
1009
1016
1010 * iplib.py (raw_input, interact): Return ValueError catching for
1017 * iplib.py (raw_input, interact): Return ValueError catching for
1011 raw_input. Fixes infinite loop for sys.stdin.close() or
1018 raw_input. Fixes infinite loop for sys.stdin.close() or
1012 sys.stdout.close().
1019 sys.stdout.close().
1013
1020
1014 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1021 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1015
1022
1016 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1023 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1017 to help in handling doctests. irunner is now pretty useful for
1024 to help in handling doctests. irunner is now pretty useful for
1018 running standalone scripts and simulate a full interactive session
1025 running standalone scripts and simulate a full interactive session
1019 in a format that can be then pasted as a doctest.
1026 in a format that can be then pasted as a doctest.
1020
1027
1021 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1028 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1022 on top of the default (useless) ones. This also fixes the nasty
1029 on top of the default (useless) ones. This also fixes the nasty
1023 way in which 2.5's Quitter() exits (reverted [1785]).
1030 way in which 2.5's Quitter() exits (reverted [1785]).
1024
1031
1025 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1032 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1026 2.5.
1033 2.5.
1027
1034
1028 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1035 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1029 color scheme is updated as well when color scheme is changed
1036 color scheme is updated as well when color scheme is changed
1030 interactively.
1037 interactively.
1031
1038
1032 2006-09-27 Ville Vainio <vivainio@gmail.com>
1039 2006-09-27 Ville Vainio <vivainio@gmail.com>
1033
1040
1034 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1041 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1035 infinite loop and just exit. It's a hack, but will do for a while.
1042 infinite loop and just exit. It's a hack, but will do for a while.
1036
1043
1037 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1044 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1038
1045
1039 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1046 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1040 the constructor, this makes it possible to get a list of only directories
1047 the constructor, this makes it possible to get a list of only directories
1041 or only files.
1048 or only files.
1042
1049
1043 2006-08-12 Ville Vainio <vivainio@gmail.com>
1050 2006-08-12 Ville Vainio <vivainio@gmail.com>
1044
1051
1045 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1052 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1046 they broke unittest
1053 they broke unittest
1047
1054
1048 2006-08-11 Ville Vainio <vivainio@gmail.com>
1055 2006-08-11 Ville Vainio <vivainio@gmail.com>
1049
1056
1050 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1057 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1051 by resolving issue properly, i.e. by inheriting FakeModule
1058 by resolving issue properly, i.e. by inheriting FakeModule
1052 from types.ModuleType. Pickling ipython interactive data
1059 from types.ModuleType. Pickling ipython interactive data
1053 should still work as usual (testing appreciated).
1060 should still work as usual (testing appreciated).
1054
1061
1055 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1062 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1056
1063
1057 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1064 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1058 running under python 2.3 with code from 2.4 to fix a bug with
1065 running under python 2.3 with code from 2.4 to fix a bug with
1059 help(). Reported by the Debian maintainers, Norbert Tretkowski
1066 help(). Reported by the Debian maintainers, Norbert Tretkowski
1060 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1067 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1061 <afayolle-AT-debian.org>.
1068 <afayolle-AT-debian.org>.
1062
1069
1063 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1070 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1064
1071
1065 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1072 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1066 (which was displaying "quit" twice).
1073 (which was displaying "quit" twice).
1067
1074
1068 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1075 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1069
1076
1070 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1077 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1071 the mode argument).
1078 the mode argument).
1072
1079
1073 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1080 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1074
1081
1075 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1082 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1076 not running under IPython.
1083 not running under IPython.
1077
1084
1078 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1085 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1079 and make it iterable (iterating over the attribute itself). Add two new
1086 and make it iterable (iterating over the attribute itself). Add two new
1080 magic strings for __xattrs__(): If the string starts with "-", the attribute
1087 magic strings for __xattrs__(): If the string starts with "-", the attribute
1081 will not be displayed in ibrowse's detail view (but it can still be
1088 will not be displayed in ibrowse's detail view (but it can still be
1082 iterated over). This makes it possible to add attributes that are large
1089 iterated over). This makes it possible to add attributes that are large
1083 lists or generator methods to the detail view. Replace magic attribute names
1090 lists or generator methods to the detail view. Replace magic attribute names
1084 and _attrname() and _getattr() with "descriptors": For each type of magic
1091 and _attrname() and _getattr() with "descriptors": For each type of magic
1085 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1092 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1086 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1093 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1087 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1094 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1088 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1095 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1089 are still supported.
1096 are still supported.
1090
1097
1091 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1098 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1092 fails in ibrowse.fetch(), the exception object is added as the last item
1099 fails in ibrowse.fetch(), the exception object is added as the last item
1093 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1100 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1094 a generator throws an exception midway through execution.
1101 a generator throws an exception midway through execution.
1095
1102
1096 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1103 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1097 encoding into methods.
1104 encoding into methods.
1098
1105
1099 2006-07-26 Ville Vainio <vivainio@gmail.com>
1106 2006-07-26 Ville Vainio <vivainio@gmail.com>
1100
1107
1101 * iplib.py: history now stores multiline input as single
1108 * iplib.py: history now stores multiline input as single
1102 history entries. Patch by Jorgen Cederlof.
1109 history entries. Patch by Jorgen Cederlof.
1103
1110
1104 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1111 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1105
1112
1106 * IPython/Extensions/ibrowse.py: Make cursor visible over
1113 * IPython/Extensions/ibrowse.py: Make cursor visible over
1107 non existing attributes.
1114 non existing attributes.
1108
1115
1109 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1116 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1110
1117
1111 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1118 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1112 error output of the running command doesn't mess up the screen.
1119 error output of the running command doesn't mess up the screen.
1113
1120
1114 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1121 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1115
1122
1116 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1123 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1117 argument. This sorts the items themselves.
1124 argument. This sorts the items themselves.
1118
1125
1119 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1126 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1120
1127
1121 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1128 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1122 Compile expression strings into code objects. This should speed
1129 Compile expression strings into code objects. This should speed
1123 up ifilter and friends somewhat.
1130 up ifilter and friends somewhat.
1124
1131
1125 2006-07-08 Ville Vainio <vivainio@gmail.com>
1132 2006-07-08 Ville Vainio <vivainio@gmail.com>
1126
1133
1127 * Magic.py: %cpaste now strips > from the beginning of lines
1134 * Magic.py: %cpaste now strips > from the beginning of lines
1128 to ease pasting quoted code from emails. Contributed by
1135 to ease pasting quoted code from emails. Contributed by
1129 Stefan van der Walt.
1136 Stefan van der Walt.
1130
1137
1131 2006-06-29 Ville Vainio <vivainio@gmail.com>
1138 2006-06-29 Ville Vainio <vivainio@gmail.com>
1132
1139
1133 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1140 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1134 mode, patch contributed by Darren Dale. NEEDS TESTING!
1141 mode, patch contributed by Darren Dale. NEEDS TESTING!
1135
1142
1136 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1143 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1137
1144
1138 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1145 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1139 a blue background. Fix fetching new display rows when the browser
1146 a blue background. Fix fetching new display rows when the browser
1140 scrolls more than a screenful (e.g. by using the goto command).
1147 scrolls more than a screenful (e.g. by using the goto command).
1141
1148
1142 2006-06-27 Ville Vainio <vivainio@gmail.com>
1149 2006-06-27 Ville Vainio <vivainio@gmail.com>
1143
1150
1144 * Magic.py (_inspect, _ofind) Apply David Huard's
1151 * Magic.py (_inspect, _ofind) Apply David Huard's
1145 patch for displaying the correct docstring for 'property'
1152 patch for displaying the correct docstring for 'property'
1146 attributes.
1153 attributes.
1147
1154
1148 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1155 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1149
1156
1150 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1157 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1151 commands into the methods implementing them.
1158 commands into the methods implementing them.
1152
1159
1153 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1160 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1154
1161
1155 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1162 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1156 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1163 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1157 autoindent support was authored by Jin Liu.
1164 autoindent support was authored by Jin Liu.
1158
1165
1159 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1166 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1160
1167
1161 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1168 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1162 for keymaps with a custom class that simplifies handling.
1169 for keymaps with a custom class that simplifies handling.
1163
1170
1164 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1171 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1165
1172
1166 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1173 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1167 resizing. This requires Python 2.5 to work.
1174 resizing. This requires Python 2.5 to work.
1168
1175
1169 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1176 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1170
1177
1171 * IPython/Extensions/ibrowse.py: Add two new commands to
1178 * IPython/Extensions/ibrowse.py: Add two new commands to
1172 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1179 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1173 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1180 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1174 attributes again. Remapped the help command to "?". Display
1181 attributes again. Remapped the help command to "?". Display
1175 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1182 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1176 as keys for the "home" and "end" commands. Add three new commands
1183 as keys for the "home" and "end" commands. Add three new commands
1177 to the input mode for "find" and friends: "delend" (CTRL-K)
1184 to the input mode for "find" and friends: "delend" (CTRL-K)
1178 deletes to the end of line. "incsearchup" searches upwards in the
1185 deletes to the end of line. "incsearchup" searches upwards in the
1179 command history for an input that starts with the text before the cursor.
1186 command history for an input that starts with the text before the cursor.
1180 "incsearchdown" does the same downwards. Removed a bogus mapping of
1187 "incsearchdown" does the same downwards. Removed a bogus mapping of
1181 the x key to "delete".
1188 the x key to "delete".
1182
1189
1183 2006-06-15 Ville Vainio <vivainio@gmail.com>
1190 2006-06-15 Ville Vainio <vivainio@gmail.com>
1184
1191
1185 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1192 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1186 used to create prompts dynamically, instead of the "old" way of
1193 used to create prompts dynamically, instead of the "old" way of
1187 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1194 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1188 way still works (it's invoked by the default hook), of course.
1195 way still works (it's invoked by the default hook), of course.
1189
1196
1190 * Prompts.py: added generate_output_prompt hook for altering output
1197 * Prompts.py: added generate_output_prompt hook for altering output
1191 prompt
1198 prompt
1192
1199
1193 * Release.py: Changed version string to 0.7.3.svn.
1200 * Release.py: Changed version string to 0.7.3.svn.
1194
1201
1195 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1202 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1196
1203
1197 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1204 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1198 the call to fetch() always tries to fetch enough data for at least one
1205 the call to fetch() always tries to fetch enough data for at least one
1199 full screen. This makes it possible to simply call moveto(0,0,True) in
1206 full screen. This makes it possible to simply call moveto(0,0,True) in
1200 the constructor. Fix typos and removed the obsolete goto attribute.
1207 the constructor. Fix typos and removed the obsolete goto attribute.
1201
1208
1202 2006-06-12 Ville Vainio <vivainio@gmail.com>
1209 2006-06-12 Ville Vainio <vivainio@gmail.com>
1203
1210
1204 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1211 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1205 allowing $variable interpolation within multiline statements,
1212 allowing $variable interpolation within multiline statements,
1206 though so far only with "sh" profile for a testing period.
1213 though so far only with "sh" profile for a testing period.
1207 The patch also enables splitting long commands with \ but it
1214 The patch also enables splitting long commands with \ but it
1208 doesn't work properly yet.
1215 doesn't work properly yet.
1209
1216
1210 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1217 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1211
1218
1212 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1219 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1213 input history and the position of the cursor in the input history for
1220 input history and the position of the cursor in the input history for
1214 the find, findbackwards and goto command.
1221 the find, findbackwards and goto command.
1215
1222
1216 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1223 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1217
1224
1218 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1225 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1219 implements the basic functionality of browser commands that require
1226 implements the basic functionality of browser commands that require
1220 input. Reimplement the goto, find and findbackwards commands as
1227 input. Reimplement the goto, find and findbackwards commands as
1221 subclasses of _CommandInput. Add an input history and keymaps to those
1228 subclasses of _CommandInput. Add an input history and keymaps to those
1222 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1229 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1223 execute commands.
1230 execute commands.
1224
1231
1225 2006-06-07 Ville Vainio <vivainio@gmail.com>
1232 2006-06-07 Ville Vainio <vivainio@gmail.com>
1226
1233
1227 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1234 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1228 running the batch files instead of leaving the session open.
1235 running the batch files instead of leaving the session open.
1229
1236
1230 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1237 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1231
1238
1232 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1239 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1233 the original fix was incomplete. Patch submitted by W. Maier.
1240 the original fix was incomplete. Patch submitted by W. Maier.
1234
1241
1235 2006-06-07 Ville Vainio <vivainio@gmail.com>
1242 2006-06-07 Ville Vainio <vivainio@gmail.com>
1236
1243
1237 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1244 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1238 Confirmation prompts can be supressed by 'quiet' option.
1245 Confirmation prompts can be supressed by 'quiet' option.
1239 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1246 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1240
1247
1241 2006-06-06 *** Released version 0.7.2
1248 2006-06-06 *** Released version 0.7.2
1242
1249
1243 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1250 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1244
1251
1245 * IPython/Release.py (version): Made 0.7.2 final for release.
1252 * IPython/Release.py (version): Made 0.7.2 final for release.
1246 Repo tagged and release cut.
1253 Repo tagged and release cut.
1247
1254
1248 2006-06-05 Ville Vainio <vivainio@gmail.com>
1255 2006-06-05 Ville Vainio <vivainio@gmail.com>
1249
1256
1250 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1257 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1251 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1258 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1252
1259
1253 * upgrade_dir.py: try import 'path' module a bit harder
1260 * upgrade_dir.py: try import 'path' module a bit harder
1254 (for %upgrade)
1261 (for %upgrade)
1255
1262
1256 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1263 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1257
1264
1258 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1265 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1259 instead of looping 20 times.
1266 instead of looping 20 times.
1260
1267
1261 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1268 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1262 correctly at initialization time. Bug reported by Krishna Mohan
1269 correctly at initialization time. Bug reported by Krishna Mohan
1263 Gundu <gkmohan-AT-gmail.com> on the user list.
1270 Gundu <gkmohan-AT-gmail.com> on the user list.
1264
1271
1265 * IPython/Release.py (version): Mark 0.7.2 version to start
1272 * IPython/Release.py (version): Mark 0.7.2 version to start
1266 testing for release on 06/06.
1273 testing for release on 06/06.
1267
1274
1268 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1275 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1269
1276
1270 * scripts/irunner: thin script interface so users don't have to
1277 * scripts/irunner: thin script interface so users don't have to
1271 find the module and call it as an executable, since modules rarely
1278 find the module and call it as an executable, since modules rarely
1272 live in people's PATH.
1279 live in people's PATH.
1273
1280
1274 * IPython/irunner.py (InteractiveRunner.__init__): added
1281 * IPython/irunner.py (InteractiveRunner.__init__): added
1275 delaybeforesend attribute to control delays with newer versions of
1282 delaybeforesend attribute to control delays with newer versions of
1276 pexpect. Thanks to detailed help from pexpect's author, Noah
1283 pexpect. Thanks to detailed help from pexpect's author, Noah
1277 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1284 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1278 correctly (it works in NoColor mode).
1285 correctly (it works in NoColor mode).
1279
1286
1280 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1287 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1281 SAGE list, from improper log() calls.
1288 SAGE list, from improper log() calls.
1282
1289
1283 2006-05-31 Ville Vainio <vivainio@gmail.com>
1290 2006-05-31 Ville Vainio <vivainio@gmail.com>
1284
1291
1285 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1292 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1286 with args in parens to work correctly with dirs that have spaces.
1293 with args in parens to work correctly with dirs that have spaces.
1287
1294
1288 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1295 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1289
1296
1290 * IPython/Logger.py (Logger.logstart): add option to log raw input
1297 * IPython/Logger.py (Logger.logstart): add option to log raw input
1291 instead of the processed one. A -r flag was added to the
1298 instead of the processed one. A -r flag was added to the
1292 %logstart magic used for controlling logging.
1299 %logstart magic used for controlling logging.
1293
1300
1294 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1301 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1295
1302
1296 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1303 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1297 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1304 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1298 recognize the option. After a bug report by Will Maier. This
1305 recognize the option. After a bug report by Will Maier. This
1299 closes #64 (will do it after confirmation from W. Maier).
1306 closes #64 (will do it after confirmation from W. Maier).
1300
1307
1301 * IPython/irunner.py: New module to run scripts as if manually
1308 * IPython/irunner.py: New module to run scripts as if manually
1302 typed into an interactive environment, based on pexpect. After a
1309 typed into an interactive environment, based on pexpect. After a
1303 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1310 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1304 ipython-user list. Simple unittests in the tests/ directory.
1311 ipython-user list. Simple unittests in the tests/ directory.
1305
1312
1306 * tools/release: add Will Maier, OpenBSD port maintainer, to
1313 * tools/release: add Will Maier, OpenBSD port maintainer, to
1307 recepients list. We are now officially part of the OpenBSD ports:
1314 recepients list. We are now officially part of the OpenBSD ports:
1308 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1315 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1309 work.
1316 work.
1310
1317
1311 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1318 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1312
1319
1313 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1320 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1314 so that it doesn't break tkinter apps.
1321 so that it doesn't break tkinter apps.
1315
1322
1316 * IPython/iplib.py (_prefilter): fix bug where aliases would
1323 * IPython/iplib.py (_prefilter): fix bug where aliases would
1317 shadow variables when autocall was fully off. Reported by SAGE
1324 shadow variables when autocall was fully off. Reported by SAGE
1318 author William Stein.
1325 author William Stein.
1319
1326
1320 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1327 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1321 at what detail level strings are computed when foo? is requested.
1328 at what detail level strings are computed when foo? is requested.
1322 This allows users to ask for example that the string form of an
1329 This allows users to ask for example that the string form of an
1323 object is only computed when foo?? is called, or even never, by
1330 object is only computed when foo?? is called, or even never, by
1324 setting the object_info_string_level >= 2 in the configuration
1331 setting the object_info_string_level >= 2 in the configuration
1325 file. This new option has been added and documented. After a
1332 file. This new option has been added and documented. After a
1326 request by SAGE to be able to control the printing of very large
1333 request by SAGE to be able to control the printing of very large
1327 objects more easily.
1334 objects more easily.
1328
1335
1329 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1336 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1330
1337
1331 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1338 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1332 from sys.argv, to be 100% consistent with how Python itself works
1339 from sys.argv, to be 100% consistent with how Python itself works
1333 (as seen for example with python -i file.py). After a bug report
1340 (as seen for example with python -i file.py). After a bug report
1334 by Jeffrey Collins.
1341 by Jeffrey Collins.
1335
1342
1336 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1343 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1337 nasty bug which was preventing custom namespaces with -pylab,
1344 nasty bug which was preventing custom namespaces with -pylab,
1338 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1345 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1339 compatibility (long gone from mpl).
1346 compatibility (long gone from mpl).
1340
1347
1341 * IPython/ipapi.py (make_session): name change: create->make. We
1348 * IPython/ipapi.py (make_session): name change: create->make. We
1342 use make in other places (ipmaker,...), it's shorter and easier to
1349 use make in other places (ipmaker,...), it's shorter and easier to
1343 type and say, etc. I'm trying to clean things before 0.7.2 so
1350 type and say, etc. I'm trying to clean things before 0.7.2 so
1344 that I can keep things stable wrt to ipapi in the chainsaw branch.
1351 that I can keep things stable wrt to ipapi in the chainsaw branch.
1345
1352
1346 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1353 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1347 python-mode recognizes our debugger mode. Add support for
1354 python-mode recognizes our debugger mode. Add support for
1348 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1355 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1349 <m.liu.jin-AT-gmail.com> originally written by
1356 <m.liu.jin-AT-gmail.com> originally written by
1350 doxgen-AT-newsmth.net (with minor modifications for xemacs
1357 doxgen-AT-newsmth.net (with minor modifications for xemacs
1351 compatibility)
1358 compatibility)
1352
1359
1353 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1360 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1354 tracebacks when walking the stack so that the stack tracking system
1361 tracebacks when walking the stack so that the stack tracking system
1355 in emacs' python-mode can identify the frames correctly.
1362 in emacs' python-mode can identify the frames correctly.
1356
1363
1357 * IPython/ipmaker.py (make_IPython): make the internal (and
1364 * IPython/ipmaker.py (make_IPython): make the internal (and
1358 default config) autoedit_syntax value false by default. Too many
1365 default config) autoedit_syntax value false by default. Too many
1359 users have complained to me (both on and off-list) about problems
1366 users have complained to me (both on and off-list) about problems
1360 with this option being on by default, so I'm making it default to
1367 with this option being on by default, so I'm making it default to
1361 off. It can still be enabled by anyone via the usual mechanisms.
1368 off. It can still be enabled by anyone via the usual mechanisms.
1362
1369
1363 * IPython/completer.py (Completer.attr_matches): add support for
1370 * IPython/completer.py (Completer.attr_matches): add support for
1364 PyCrust-style _getAttributeNames magic method. Patch contributed
1371 PyCrust-style _getAttributeNames magic method. Patch contributed
1365 by <mscott-AT-goldenspud.com>. Closes #50.
1372 by <mscott-AT-goldenspud.com>. Closes #50.
1366
1373
1367 * IPython/iplib.py (InteractiveShell.__init__): remove the
1374 * IPython/iplib.py (InteractiveShell.__init__): remove the
1368 deletion of exit/quit from __builtin__, which can break
1375 deletion of exit/quit from __builtin__, which can break
1369 third-party tools like the Zope debugging console. The
1376 third-party tools like the Zope debugging console. The
1370 %exit/%quit magics remain. In general, it's probably a good idea
1377 %exit/%quit magics remain. In general, it's probably a good idea
1371 not to delete anything from __builtin__, since we never know what
1378 not to delete anything from __builtin__, since we never know what
1372 that will break. In any case, python now (for 2.5) will support
1379 that will break. In any case, python now (for 2.5) will support
1373 'real' exit/quit, so this issue is moot. Closes #55.
1380 'real' exit/quit, so this issue is moot. Closes #55.
1374
1381
1375 * IPython/genutils.py (with_obj): rename the 'with' function to
1382 * IPython/genutils.py (with_obj): rename the 'with' function to
1376 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1383 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1377 becomes a language keyword. Closes #53.
1384 becomes a language keyword. Closes #53.
1378
1385
1379 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1386 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1380 __file__ attribute to this so it fools more things into thinking
1387 __file__ attribute to this so it fools more things into thinking
1381 it is a real module. Closes #59.
1388 it is a real module. Closes #59.
1382
1389
1383 * IPython/Magic.py (magic_edit): add -n option to open the editor
1390 * IPython/Magic.py (magic_edit): add -n option to open the editor
1384 at a specific line number. After a patch by Stefan van der Walt.
1391 at a specific line number. After a patch by Stefan van der Walt.
1385
1392
1386 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1393 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1387
1394
1388 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1395 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1389 reason the file could not be opened. After automatic crash
1396 reason the file could not be opened. After automatic crash
1390 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1397 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1391 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1398 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1392 (_should_recompile): Don't fire editor if using %bg, since there
1399 (_should_recompile): Don't fire editor if using %bg, since there
1393 is no file in the first place. From the same report as above.
1400 is no file in the first place. From the same report as above.
1394 (raw_input): protect against faulty third-party prefilters. After
1401 (raw_input): protect against faulty third-party prefilters. After
1395 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1402 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1396 while running under SAGE.
1403 while running under SAGE.
1397
1404
1398 2006-05-23 Ville Vainio <vivainio@gmail.com>
1405 2006-05-23 Ville Vainio <vivainio@gmail.com>
1399
1406
1400 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1407 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1401 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1408 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1402 now returns None (again), unless dummy is specifically allowed by
1409 now returns None (again), unless dummy is specifically allowed by
1403 ipapi.get(allow_dummy=True).
1410 ipapi.get(allow_dummy=True).
1404
1411
1405 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1412 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1406
1413
1407 * IPython: remove all 2.2-compatibility objects and hacks from
1414 * IPython: remove all 2.2-compatibility objects and hacks from
1408 everywhere, since we only support 2.3 at this point. Docs
1415 everywhere, since we only support 2.3 at this point. Docs
1409 updated.
1416 updated.
1410
1417
1411 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1418 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1412 Anything requiring extra validation can be turned into a Python
1419 Anything requiring extra validation can be turned into a Python
1413 property in the future. I used a property for the db one b/c
1420 property in the future. I used a property for the db one b/c
1414 there was a nasty circularity problem with the initialization
1421 there was a nasty circularity problem with the initialization
1415 order, which right now I don't have time to clean up.
1422 order, which right now I don't have time to clean up.
1416
1423
1417 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1424 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1418 another locking bug reported by Jorgen. I'm not 100% sure though,
1425 another locking bug reported by Jorgen. I'm not 100% sure though,
1419 so more testing is needed...
1426 so more testing is needed...
1420
1427
1421 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1428 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1422
1429
1423 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1430 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1424 local variables from any routine in user code (typically executed
1431 local variables from any routine in user code (typically executed
1425 with %run) directly into the interactive namespace. Very useful
1432 with %run) directly into the interactive namespace. Very useful
1426 when doing complex debugging.
1433 when doing complex debugging.
1427 (IPythonNotRunning): Changed the default None object to a dummy
1434 (IPythonNotRunning): Changed the default None object to a dummy
1428 whose attributes can be queried as well as called without
1435 whose attributes can be queried as well as called without
1429 exploding, to ease writing code which works transparently both in
1436 exploding, to ease writing code which works transparently both in
1430 and out of ipython and uses some of this API.
1437 and out of ipython and uses some of this API.
1431
1438
1432 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1439 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1433
1440
1434 * IPython/hooks.py (result_display): Fix the fact that our display
1441 * IPython/hooks.py (result_display): Fix the fact that our display
1435 hook was using str() instead of repr(), as the default python
1442 hook was using str() instead of repr(), as the default python
1436 console does. This had gone unnoticed b/c it only happened if
1443 console does. This had gone unnoticed b/c it only happened if
1437 %Pprint was off, but the inconsistency was there.
1444 %Pprint was off, but the inconsistency was there.
1438
1445
1439 2006-05-15 Ville Vainio <vivainio@gmail.com>
1446 2006-05-15 Ville Vainio <vivainio@gmail.com>
1440
1447
1441 * Oinspect.py: Only show docstring for nonexisting/binary files
1448 * Oinspect.py: Only show docstring for nonexisting/binary files
1442 when doing object??, closing ticket #62
1449 when doing object??, closing ticket #62
1443
1450
1444 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1445
1452
1446 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1453 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1447 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1454 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1448 was being released in a routine which hadn't checked if it had
1455 was being released in a routine which hadn't checked if it had
1449 been the one to acquire it.
1456 been the one to acquire it.
1450
1457
1451 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1452
1459
1453 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1460 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1454
1461
1455 2006-04-11 Ville Vainio <vivainio@gmail.com>
1462 2006-04-11 Ville Vainio <vivainio@gmail.com>
1456
1463
1457 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1464 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1458 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1465 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1459 prefilters, allowing stuff like magics and aliases in the file.
1466 prefilters, allowing stuff like magics and aliases in the file.
1460
1467
1461 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1468 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1462 added. Supported now are "%clear in" and "%clear out" (clear input and
1469 added. Supported now are "%clear in" and "%clear out" (clear input and
1463 output history, respectively). Also fixed CachedOutput.flush to
1470 output history, respectively). Also fixed CachedOutput.flush to
1464 properly flush the output cache.
1471 properly flush the output cache.
1465
1472
1466 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1473 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1467 half-success (and fail explicitly).
1474 half-success (and fail explicitly).
1468
1475
1469 2006-03-28 Ville Vainio <vivainio@gmail.com>
1476 2006-03-28 Ville Vainio <vivainio@gmail.com>
1470
1477
1471 * iplib.py: Fix quoting of aliases so that only argless ones
1478 * iplib.py: Fix quoting of aliases so that only argless ones
1472 are quoted
1479 are quoted
1473
1480
1474 2006-03-28 Ville Vainio <vivainio@gmail.com>
1481 2006-03-28 Ville Vainio <vivainio@gmail.com>
1475
1482
1476 * iplib.py: Quote aliases with spaces in the name.
1483 * iplib.py: Quote aliases with spaces in the name.
1477 "c:\program files\blah\bin" is now legal alias target.
1484 "c:\program files\blah\bin" is now legal alias target.
1478
1485
1479 * ext_rehashdir.py: Space no longer allowed as arg
1486 * ext_rehashdir.py: Space no longer allowed as arg
1480 separator, since space is legal in path names.
1487 separator, since space is legal in path names.
1481
1488
1482 2006-03-16 Ville Vainio <vivainio@gmail.com>
1489 2006-03-16 Ville Vainio <vivainio@gmail.com>
1483
1490
1484 * upgrade_dir.py: Take path.py from Extensions, correcting
1491 * upgrade_dir.py: Take path.py from Extensions, correcting
1485 %upgrade magic
1492 %upgrade magic
1486
1493
1487 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1494 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1488
1495
1489 * hooks.py: Only enclose editor binary in quotes if legal and
1496 * hooks.py: Only enclose editor binary in quotes if legal and
1490 necessary (space in the name, and is an existing file). Fixes a bug
1497 necessary (space in the name, and is an existing file). Fixes a bug
1491 reported by Zachary Pincus.
1498 reported by Zachary Pincus.
1492
1499
1493 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1500 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1494
1501
1495 * Manual: thanks to a tip on proper color handling for Emacs, by
1502 * Manual: thanks to a tip on proper color handling for Emacs, by
1496 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1503 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1497
1504
1498 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1505 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1499 by applying the provided patch. Thanks to Liu Jin
1506 by applying the provided patch. Thanks to Liu Jin
1500 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1507 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1501 XEmacs/Linux, I'm trusting the submitter that it actually helps
1508 XEmacs/Linux, I'm trusting the submitter that it actually helps
1502 under win32/GNU Emacs. Will revisit if any problems are reported.
1509 under win32/GNU Emacs. Will revisit if any problems are reported.
1503
1510
1504 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1511 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1505
1512
1506 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1513 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1507 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1514 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1508
1515
1509 2006-03-12 Ville Vainio <vivainio@gmail.com>
1516 2006-03-12 Ville Vainio <vivainio@gmail.com>
1510
1517
1511 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1518 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1512 Torsten Marek.
1519 Torsten Marek.
1513
1520
1514 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1521 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1515
1522
1516 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1523 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1517 line ranges works again.
1524 line ranges works again.
1518
1525
1519 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1526 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1520
1527
1521 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1528 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1522 and friends, after a discussion with Zach Pincus on ipython-user.
1529 and friends, after a discussion with Zach Pincus on ipython-user.
1523 I'm not 100% sure, but after thinking about it quite a bit, it may
1530 I'm not 100% sure, but after thinking about it quite a bit, it may
1524 be OK. Testing with the multithreaded shells didn't reveal any
1531 be OK. Testing with the multithreaded shells didn't reveal any
1525 problems, but let's keep an eye out.
1532 problems, but let's keep an eye out.
1526
1533
1527 In the process, I fixed a few things which were calling
1534 In the process, I fixed a few things which were calling
1528 self.InteractiveTB() directly (like safe_execfile), which is a
1535 self.InteractiveTB() directly (like safe_execfile), which is a
1529 mistake: ALL exception reporting should be done by calling
1536 mistake: ALL exception reporting should be done by calling
1530 self.showtraceback(), which handles state and tab-completion and
1537 self.showtraceback(), which handles state and tab-completion and
1531 more.
1538 more.
1532
1539
1533 2006-03-01 Ville Vainio <vivainio@gmail.com>
1540 2006-03-01 Ville Vainio <vivainio@gmail.com>
1534
1541
1535 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1542 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1536 To use, do "from ipipe import *".
1543 To use, do "from ipipe import *".
1537
1544
1538 2006-02-24 Ville Vainio <vivainio@gmail.com>
1545 2006-02-24 Ville Vainio <vivainio@gmail.com>
1539
1546
1540 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1547 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1541 "cleanly" and safely than the older upgrade mechanism.
1548 "cleanly" and safely than the older upgrade mechanism.
1542
1549
1543 2006-02-21 Ville Vainio <vivainio@gmail.com>
1550 2006-02-21 Ville Vainio <vivainio@gmail.com>
1544
1551
1545 * Magic.py: %save works again.
1552 * Magic.py: %save works again.
1546
1553
1547 2006-02-15 Ville Vainio <vivainio@gmail.com>
1554 2006-02-15 Ville Vainio <vivainio@gmail.com>
1548
1555
1549 * Magic.py: %Pprint works again
1556 * Magic.py: %Pprint works again
1550
1557
1551 * Extensions/ipy_sane_defaults.py: Provide everything provided
1558 * Extensions/ipy_sane_defaults.py: Provide everything provided
1552 in default ipythonrc, to make it possible to have a completely empty
1559 in default ipythonrc, to make it possible to have a completely empty
1553 ipythonrc (and thus completely rc-file free configuration)
1560 ipythonrc (and thus completely rc-file free configuration)
1554
1561
1555 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1562 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1556
1563
1557 * IPython/hooks.py (editor): quote the call to the editor command,
1564 * IPython/hooks.py (editor): quote the call to the editor command,
1558 to allow commands with spaces in them. Problem noted by watching
1565 to allow commands with spaces in them. Problem noted by watching
1559 Ian Oswald's video about textpad under win32 at
1566 Ian Oswald's video about textpad under win32 at
1560 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1567 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1561
1568
1562 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1569 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1563 describing magics (we haven't used @ for a loong time).
1570 describing magics (we haven't used @ for a loong time).
1564
1571
1565 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1572 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1566 contributed by marienz to close
1573 contributed by marienz to close
1567 http://www.scipy.net/roundup/ipython/issue53.
1574 http://www.scipy.net/roundup/ipython/issue53.
1568
1575
1569 2006-02-10 Ville Vainio <vivainio@gmail.com>
1576 2006-02-10 Ville Vainio <vivainio@gmail.com>
1570
1577
1571 * genutils.py: getoutput now works in win32 too
1578 * genutils.py: getoutput now works in win32 too
1572
1579
1573 * completer.py: alias and magic completion only invoked
1580 * completer.py: alias and magic completion only invoked
1574 at the first "item" in the line, to avoid "cd %store"
1581 at the first "item" in the line, to avoid "cd %store"
1575 nonsense.
1582 nonsense.
1576
1583
1577 2006-02-09 Ville Vainio <vivainio@gmail.com>
1584 2006-02-09 Ville Vainio <vivainio@gmail.com>
1578
1585
1579 * test/*: Added a unit testing framework (finally).
1586 * test/*: Added a unit testing framework (finally).
1580 '%run runtests.py' to run test_*.
1587 '%run runtests.py' to run test_*.
1581
1588
1582 * ipapi.py: Exposed runlines and set_custom_exc
1589 * ipapi.py: Exposed runlines and set_custom_exc
1583
1590
1584 2006-02-07 Ville Vainio <vivainio@gmail.com>
1591 2006-02-07 Ville Vainio <vivainio@gmail.com>
1585
1592
1586 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1593 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1587 instead use "f(1 2)" as before.
1594 instead use "f(1 2)" as before.
1588
1595
1589 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1596 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1590
1597
1591 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1598 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1592 facilities, for demos processed by the IPython input filter
1599 facilities, for demos processed by the IPython input filter
1593 (IPythonDemo), and for running a script one-line-at-a-time as a
1600 (IPythonDemo), and for running a script one-line-at-a-time as a
1594 demo, both for pure Python (LineDemo) and for IPython-processed
1601 demo, both for pure Python (LineDemo) and for IPython-processed
1595 input (IPythonLineDemo). After a request by Dave Kohel, from the
1602 input (IPythonLineDemo). After a request by Dave Kohel, from the
1596 SAGE team.
1603 SAGE team.
1597 (Demo.edit): added an edit() method to the demo objects, to edit
1604 (Demo.edit): added an edit() method to the demo objects, to edit
1598 the in-memory copy of the last executed block.
1605 the in-memory copy of the last executed block.
1599
1606
1600 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1607 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1601 processing to %edit, %macro and %save. These commands can now be
1608 processing to %edit, %macro and %save. These commands can now be
1602 invoked on the unprocessed input as it was typed by the user
1609 invoked on the unprocessed input as it was typed by the user
1603 (without any prefilters applied). After requests by the SAGE team
1610 (without any prefilters applied). After requests by the SAGE team
1604 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1611 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1605
1612
1606 2006-02-01 Ville Vainio <vivainio@gmail.com>
1613 2006-02-01 Ville Vainio <vivainio@gmail.com>
1607
1614
1608 * setup.py, eggsetup.py: easy_install ipython==dev works
1615 * setup.py, eggsetup.py: easy_install ipython==dev works
1609 correctly now (on Linux)
1616 correctly now (on Linux)
1610
1617
1611 * ipy_user_conf,ipmaker: user config changes, removed spurious
1618 * ipy_user_conf,ipmaker: user config changes, removed spurious
1612 warnings
1619 warnings
1613
1620
1614 * iplib: if rc.banner is string, use it as is.
1621 * iplib: if rc.banner is string, use it as is.
1615
1622
1616 * Magic: %pycat accepts a string argument and pages it's contents.
1623 * Magic: %pycat accepts a string argument and pages it's contents.
1617
1624
1618
1625
1619 2006-01-30 Ville Vainio <vivainio@gmail.com>
1626 2006-01-30 Ville Vainio <vivainio@gmail.com>
1620
1627
1621 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1628 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1622 Now %store and bookmarks work through PickleShare, meaning that
1629 Now %store and bookmarks work through PickleShare, meaning that
1623 concurrent access is possible and all ipython sessions see the
1630 concurrent access is possible and all ipython sessions see the
1624 same database situation all the time, instead of snapshot of
1631 same database situation all the time, instead of snapshot of
1625 the situation when the session was started. Hence, %bookmark
1632 the situation when the session was started. Hence, %bookmark
1626 results are immediately accessible from othes sessions. The database
1633 results are immediately accessible from othes sessions. The database
1627 is also available for use by user extensions. See:
1634 is also available for use by user extensions. See:
1628 http://www.python.org/pypi/pickleshare
1635 http://www.python.org/pypi/pickleshare
1629
1636
1630 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1637 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1631
1638
1632 * aliases can now be %store'd
1639 * aliases can now be %store'd
1633
1640
1634 * path.py moved to Extensions so that pickleshare does not need
1641 * path.py moved to Extensions so that pickleshare does not need
1635 IPython-specific import. Extensions added to pythonpath right
1642 IPython-specific import. Extensions added to pythonpath right
1636 at __init__.
1643 at __init__.
1637
1644
1638 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1645 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1639 called with _ip.system and the pre-transformed command string.
1646 called with _ip.system and the pre-transformed command string.
1640
1647
1641 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1648 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1642
1649
1643 * IPython/iplib.py (interact): Fix that we were not catching
1650 * IPython/iplib.py (interact): Fix that we were not catching
1644 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1651 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1645 logic here had to change, but it's fixed now.
1652 logic here had to change, but it's fixed now.
1646
1653
1647 2006-01-29 Ville Vainio <vivainio@gmail.com>
1654 2006-01-29 Ville Vainio <vivainio@gmail.com>
1648
1655
1649 * iplib.py: Try to import pyreadline on Windows.
1656 * iplib.py: Try to import pyreadline on Windows.
1650
1657
1651 2006-01-27 Ville Vainio <vivainio@gmail.com>
1658 2006-01-27 Ville Vainio <vivainio@gmail.com>
1652
1659
1653 * iplib.py: Expose ipapi as _ip in builtin namespace.
1660 * iplib.py: Expose ipapi as _ip in builtin namespace.
1654 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1661 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1655 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1662 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1656 syntax now produce _ip.* variant of the commands.
1663 syntax now produce _ip.* variant of the commands.
1657
1664
1658 * "_ip.options().autoedit_syntax = 2" automatically throws
1665 * "_ip.options().autoedit_syntax = 2" automatically throws
1659 user to editor for syntax error correction without prompting.
1666 user to editor for syntax error correction without prompting.
1660
1667
1661 2006-01-27 Ville Vainio <vivainio@gmail.com>
1668 2006-01-27 Ville Vainio <vivainio@gmail.com>
1662
1669
1663 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1670 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1664 'ipython' at argv[0]) executed through command line.
1671 'ipython' at argv[0]) executed through command line.
1665 NOTE: this DEPRECATES calling ipython with multiple scripts
1672 NOTE: this DEPRECATES calling ipython with multiple scripts
1666 ("ipython a.py b.py c.py")
1673 ("ipython a.py b.py c.py")
1667
1674
1668 * iplib.py, hooks.py: Added configurable input prefilter,
1675 * iplib.py, hooks.py: Added configurable input prefilter,
1669 named 'input_prefilter'. See ext_rescapture.py for example
1676 named 'input_prefilter'. See ext_rescapture.py for example
1670 usage.
1677 usage.
1671
1678
1672 * ext_rescapture.py, Magic.py: Better system command output capture
1679 * ext_rescapture.py, Magic.py: Better system command output capture
1673 through 'var = !ls' (deprecates user-visible %sc). Same notation
1680 through 'var = !ls' (deprecates user-visible %sc). Same notation
1674 applies for magics, 'var = %alias' assigns alias list to var.
1681 applies for magics, 'var = %alias' assigns alias list to var.
1675
1682
1676 * ipapi.py: added meta() for accessing extension-usable data store.
1683 * ipapi.py: added meta() for accessing extension-usable data store.
1677
1684
1678 * iplib.py: added InteractiveShell.getapi(). New magics should be
1685 * iplib.py: added InteractiveShell.getapi(). New magics should be
1679 written doing self.getapi() instead of using the shell directly.
1686 written doing self.getapi() instead of using the shell directly.
1680
1687
1681 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1688 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1682 %store foo >> ~/myfoo.txt to store variables to files (in clean
1689 %store foo >> ~/myfoo.txt to store variables to files (in clean
1683 textual form, not a restorable pickle).
1690 textual form, not a restorable pickle).
1684
1691
1685 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1692 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1686
1693
1687 * usage.py, Magic.py: added %quickref
1694 * usage.py, Magic.py: added %quickref
1688
1695
1689 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1696 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1690
1697
1691 * GetoptErrors when invoking magics etc. with wrong args
1698 * GetoptErrors when invoking magics etc. with wrong args
1692 are now more helpful:
1699 are now more helpful:
1693 GetoptError: option -l not recognized (allowed: "qb" )
1700 GetoptError: option -l not recognized (allowed: "qb" )
1694
1701
1695 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1702 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1696
1703
1697 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1704 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1698 computationally intensive blocks don't appear to stall the demo.
1705 computationally intensive blocks don't appear to stall the demo.
1699
1706
1700 2006-01-24 Ville Vainio <vivainio@gmail.com>
1707 2006-01-24 Ville Vainio <vivainio@gmail.com>
1701
1708
1702 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1709 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1703 value to manipulate resulting history entry.
1710 value to manipulate resulting history entry.
1704
1711
1705 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1712 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1706 to instance methods of IPApi class, to make extending an embedded
1713 to instance methods of IPApi class, to make extending an embedded
1707 IPython feasible. See ext_rehashdir.py for example usage.
1714 IPython feasible. See ext_rehashdir.py for example usage.
1708
1715
1709 * Merged 1071-1076 from branches/0.7.1
1716 * Merged 1071-1076 from branches/0.7.1
1710
1717
1711
1718
1712 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1719 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1713
1720
1714 * tools/release (daystamp): Fix build tools to use the new
1721 * tools/release (daystamp): Fix build tools to use the new
1715 eggsetup.py script to build lightweight eggs.
1722 eggsetup.py script to build lightweight eggs.
1716
1723
1717 * Applied changesets 1062 and 1064 before 0.7.1 release.
1724 * Applied changesets 1062 and 1064 before 0.7.1 release.
1718
1725
1719 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1726 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1720 see the raw input history (without conversions like %ls ->
1727 see the raw input history (without conversions like %ls ->
1721 ipmagic("ls")). After a request from W. Stein, SAGE
1728 ipmagic("ls")). After a request from W. Stein, SAGE
1722 (http://modular.ucsd.edu/sage) developer. This information is
1729 (http://modular.ucsd.edu/sage) developer. This information is
1723 stored in the input_hist_raw attribute of the IPython instance, so
1730 stored in the input_hist_raw attribute of the IPython instance, so
1724 developers can access it if needed (it's an InputList instance).
1731 developers can access it if needed (it's an InputList instance).
1725
1732
1726 * Versionstring = 0.7.2.svn
1733 * Versionstring = 0.7.2.svn
1727
1734
1728 * eggsetup.py: A separate script for constructing eggs, creates
1735 * eggsetup.py: A separate script for constructing eggs, creates
1729 proper launch scripts even on Windows (an .exe file in
1736 proper launch scripts even on Windows (an .exe file in
1730 \python24\scripts).
1737 \python24\scripts).
1731
1738
1732 * ipapi.py: launch_new_instance, launch entry point needed for the
1739 * ipapi.py: launch_new_instance, launch entry point needed for the
1733 egg.
1740 egg.
1734
1741
1735 2006-01-23 Ville Vainio <vivainio@gmail.com>
1742 2006-01-23 Ville Vainio <vivainio@gmail.com>
1736
1743
1737 * Added %cpaste magic for pasting python code
1744 * Added %cpaste magic for pasting python code
1738
1745
1739 2006-01-22 Ville Vainio <vivainio@gmail.com>
1746 2006-01-22 Ville Vainio <vivainio@gmail.com>
1740
1747
1741 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1748 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1742
1749
1743 * Versionstring = 0.7.2.svn
1750 * Versionstring = 0.7.2.svn
1744
1751
1745 * eggsetup.py: A separate script for constructing eggs, creates
1752 * eggsetup.py: A separate script for constructing eggs, creates
1746 proper launch scripts even on Windows (an .exe file in
1753 proper launch scripts even on Windows (an .exe file in
1747 \python24\scripts).
1754 \python24\scripts).
1748
1755
1749 * ipapi.py: launch_new_instance, launch entry point needed for the
1756 * ipapi.py: launch_new_instance, launch entry point needed for the
1750 egg.
1757 egg.
1751
1758
1752 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1759 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1753
1760
1754 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1761 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1755 %pfile foo would print the file for foo even if it was a binary.
1762 %pfile foo would print the file for foo even if it was a binary.
1756 Now, extensions '.so' and '.dll' are skipped.
1763 Now, extensions '.so' and '.dll' are skipped.
1757
1764
1758 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1765 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1759 bug, where macros would fail in all threaded modes. I'm not 100%
1766 bug, where macros would fail in all threaded modes. I'm not 100%
1760 sure, so I'm going to put out an rc instead of making a release
1767 sure, so I'm going to put out an rc instead of making a release
1761 today, and wait for feedback for at least a few days.
1768 today, and wait for feedback for at least a few days.
1762
1769
1763 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1770 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1764 it...) the handling of pasting external code with autoindent on.
1771 it...) the handling of pasting external code with autoindent on.
1765 To get out of a multiline input, the rule will appear for most
1772 To get out of a multiline input, the rule will appear for most
1766 users unchanged: two blank lines or change the indent level
1773 users unchanged: two blank lines or change the indent level
1767 proposed by IPython. But there is a twist now: you can
1774 proposed by IPython. But there is a twist now: you can
1768 add/subtract only *one or two spaces*. If you add/subtract three
1775 add/subtract only *one or two spaces*. If you add/subtract three
1769 or more (unless you completely delete the line), IPython will
1776 or more (unless you completely delete the line), IPython will
1770 accept that line, and you'll need to enter a second one of pure
1777 accept that line, and you'll need to enter a second one of pure
1771 whitespace. I know it sounds complicated, but I can't find a
1778 whitespace. I know it sounds complicated, but I can't find a
1772 different solution that covers all the cases, with the right
1779 different solution that covers all the cases, with the right
1773 heuristics. Hopefully in actual use, nobody will really notice
1780 heuristics. Hopefully in actual use, nobody will really notice
1774 all these strange rules and things will 'just work'.
1781 all these strange rules and things will 'just work'.
1775
1782
1776 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1783 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1777
1784
1778 * IPython/iplib.py (interact): catch exceptions which can be
1785 * IPython/iplib.py (interact): catch exceptions which can be
1779 triggered asynchronously by signal handlers. Thanks to an
1786 triggered asynchronously by signal handlers. Thanks to an
1780 automatic crash report, submitted by Colin Kingsley
1787 automatic crash report, submitted by Colin Kingsley
1781 <tercel-AT-gentoo.org>.
1788 <tercel-AT-gentoo.org>.
1782
1789
1783 2006-01-20 Ville Vainio <vivainio@gmail.com>
1790 2006-01-20 Ville Vainio <vivainio@gmail.com>
1784
1791
1785 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1792 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1786 (%rehashdir, very useful, try it out) of how to extend ipython
1793 (%rehashdir, very useful, try it out) of how to extend ipython
1787 with new magics. Also added Extensions dir to pythonpath to make
1794 with new magics. Also added Extensions dir to pythonpath to make
1788 importing extensions easy.
1795 importing extensions easy.
1789
1796
1790 * %store now complains when trying to store interactively declared
1797 * %store now complains when trying to store interactively declared
1791 classes / instances of those classes.
1798 classes / instances of those classes.
1792
1799
1793 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1800 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1794 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1801 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1795 if they exist, and ipy_user_conf.py with some defaults is created for
1802 if they exist, and ipy_user_conf.py with some defaults is created for
1796 the user.
1803 the user.
1797
1804
1798 * Startup rehashing done by the config file, not InterpreterExec.
1805 * Startup rehashing done by the config file, not InterpreterExec.
1799 This means system commands are available even without selecting the
1806 This means system commands are available even without selecting the
1800 pysh profile. It's the sensible default after all.
1807 pysh profile. It's the sensible default after all.
1801
1808
1802 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1809 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1803
1810
1804 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1811 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1805 multiline code with autoindent on working. But I am really not
1812 multiline code with autoindent on working. But I am really not
1806 sure, so this needs more testing. Will commit a debug-enabled
1813 sure, so this needs more testing. Will commit a debug-enabled
1807 version for now, while I test it some more, so that Ville and
1814 version for now, while I test it some more, so that Ville and
1808 others may also catch any problems. Also made
1815 others may also catch any problems. Also made
1809 self.indent_current_str() a method, to ensure that there's no
1816 self.indent_current_str() a method, to ensure that there's no
1810 chance of the indent space count and the corresponding string
1817 chance of the indent space count and the corresponding string
1811 falling out of sync. All code needing the string should just call
1818 falling out of sync. All code needing the string should just call
1812 the method.
1819 the method.
1813
1820
1814 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1821 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1815
1822
1816 * IPython/Magic.py (magic_edit): fix check for when users don't
1823 * IPython/Magic.py (magic_edit): fix check for when users don't
1817 save their output files, the try/except was in the wrong section.
1824 save their output files, the try/except was in the wrong section.
1818
1825
1819 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1826 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1820
1827
1821 * IPython/Magic.py (magic_run): fix __file__ global missing from
1828 * IPython/Magic.py (magic_run): fix __file__ global missing from
1822 script's namespace when executed via %run. After a report by
1829 script's namespace when executed via %run. After a report by
1823 Vivian.
1830 Vivian.
1824
1831
1825 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1832 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1826 when using python 2.4. The parent constructor changed in 2.4, and
1833 when using python 2.4. The parent constructor changed in 2.4, and
1827 we need to track it directly (we can't call it, as it messes up
1834 we need to track it directly (we can't call it, as it messes up
1828 readline and tab-completion inside our pdb would stop working).
1835 readline and tab-completion inside our pdb would stop working).
1829 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1836 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1830
1837
1831 2006-01-16 Ville Vainio <vivainio@gmail.com>
1838 2006-01-16 Ville Vainio <vivainio@gmail.com>
1832
1839
1833 * Ipython/magic.py: Reverted back to old %edit functionality
1840 * Ipython/magic.py: Reverted back to old %edit functionality
1834 that returns file contents on exit.
1841 that returns file contents on exit.
1835
1842
1836 * IPython/path.py: Added Jason Orendorff's "path" module to
1843 * IPython/path.py: Added Jason Orendorff's "path" module to
1837 IPython tree, http://www.jorendorff.com/articles/python/path/.
1844 IPython tree, http://www.jorendorff.com/articles/python/path/.
1838 You can get path objects conveniently through %sc, and !!, e.g.:
1845 You can get path objects conveniently through %sc, and !!, e.g.:
1839 sc files=ls
1846 sc files=ls
1840 for p in files.paths: # or files.p
1847 for p in files.paths: # or files.p
1841 print p,p.mtime
1848 print p,p.mtime
1842
1849
1843 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1850 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1844 now work again without considering the exclusion regexp -
1851 now work again without considering the exclusion regexp -
1845 hence, things like ',foo my/path' turn to 'foo("my/path")'
1852 hence, things like ',foo my/path' turn to 'foo("my/path")'
1846 instead of syntax error.
1853 instead of syntax error.
1847
1854
1848
1855
1849 2006-01-14 Ville Vainio <vivainio@gmail.com>
1856 2006-01-14 Ville Vainio <vivainio@gmail.com>
1850
1857
1851 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1858 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1852 ipapi decorators for python 2.4 users, options() provides access to rc
1859 ipapi decorators for python 2.4 users, options() provides access to rc
1853 data.
1860 data.
1854
1861
1855 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1862 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1856 as path separators (even on Linux ;-). Space character after
1863 as path separators (even on Linux ;-). Space character after
1857 backslash (as yielded by tab completer) is still space;
1864 backslash (as yielded by tab completer) is still space;
1858 "%cd long\ name" works as expected.
1865 "%cd long\ name" works as expected.
1859
1866
1860 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1867 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1861 as "chain of command", with priority. API stays the same,
1868 as "chain of command", with priority. API stays the same,
1862 TryNext exception raised by a hook function signals that
1869 TryNext exception raised by a hook function signals that
1863 current hook failed and next hook should try handling it, as
1870 current hook failed and next hook should try handling it, as
1864 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1871 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1865 requested configurable display hook, which is now implemented.
1872 requested configurable display hook, which is now implemented.
1866
1873
1867 2006-01-13 Ville Vainio <vivainio@gmail.com>
1874 2006-01-13 Ville Vainio <vivainio@gmail.com>
1868
1875
1869 * IPython/platutils*.py: platform specific utility functions,
1876 * IPython/platutils*.py: platform specific utility functions,
1870 so far only set_term_title is implemented (change terminal
1877 so far only set_term_title is implemented (change terminal
1871 label in windowing systems). %cd now changes the title to
1878 label in windowing systems). %cd now changes the title to
1872 current dir.
1879 current dir.
1873
1880
1874 * IPython/Release.py: Added myself to "authors" list,
1881 * IPython/Release.py: Added myself to "authors" list,
1875 had to create new files.
1882 had to create new files.
1876
1883
1877 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1884 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1878 shell escape; not a known bug but had potential to be one in the
1885 shell escape; not a known bug but had potential to be one in the
1879 future.
1886 future.
1880
1887
1881 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1888 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1882 extension API for IPython! See the module for usage example. Fix
1889 extension API for IPython! See the module for usage example. Fix
1883 OInspect for docstring-less magic functions.
1890 OInspect for docstring-less magic functions.
1884
1891
1885
1892
1886 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1893 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1887
1894
1888 * IPython/iplib.py (raw_input): temporarily deactivate all
1895 * IPython/iplib.py (raw_input): temporarily deactivate all
1889 attempts at allowing pasting of code with autoindent on. It
1896 attempts at allowing pasting of code with autoindent on. It
1890 introduced bugs (reported by Prabhu) and I can't seem to find a
1897 introduced bugs (reported by Prabhu) and I can't seem to find a
1891 robust combination which works in all cases. Will have to revisit
1898 robust combination which works in all cases. Will have to revisit
1892 later.
1899 later.
1893
1900
1894 * IPython/genutils.py: remove isspace() function. We've dropped
1901 * IPython/genutils.py: remove isspace() function. We've dropped
1895 2.2 compatibility, so it's OK to use the string method.
1902 2.2 compatibility, so it's OK to use the string method.
1896
1903
1897 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1904 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1898
1905
1899 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1906 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1900 matching what NOT to autocall on, to include all python binary
1907 matching what NOT to autocall on, to include all python binary
1901 operators (including things like 'and', 'or', 'is' and 'in').
1908 operators (including things like 'and', 'or', 'is' and 'in').
1902 Prompted by a bug report on 'foo & bar', but I realized we had
1909 Prompted by a bug report on 'foo & bar', but I realized we had
1903 many more potential bug cases with other operators. The regexp is
1910 many more potential bug cases with other operators. The regexp is
1904 self.re_exclude_auto, it's fairly commented.
1911 self.re_exclude_auto, it's fairly commented.
1905
1912
1906 2006-01-12 Ville Vainio <vivainio@gmail.com>
1913 2006-01-12 Ville Vainio <vivainio@gmail.com>
1907
1914
1908 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1915 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1909 Prettified and hardened string/backslash quoting with ipsystem(),
1916 Prettified and hardened string/backslash quoting with ipsystem(),
1910 ipalias() and ipmagic(). Now even \ characters are passed to
1917 ipalias() and ipmagic(). Now even \ characters are passed to
1911 %magics, !shell escapes and aliases exactly as they are in the
1918 %magics, !shell escapes and aliases exactly as they are in the
1912 ipython command line. Should improve backslash experience,
1919 ipython command line. Should improve backslash experience,
1913 particularly in Windows (path delimiter for some commands that
1920 particularly in Windows (path delimiter for some commands that
1914 won't understand '/'), but Unix benefits as well (regexps). %cd
1921 won't understand '/'), but Unix benefits as well (regexps). %cd
1915 magic still doesn't support backslash path delimiters, though. Also
1922 magic still doesn't support backslash path delimiters, though. Also
1916 deleted all pretense of supporting multiline command strings in
1923 deleted all pretense of supporting multiline command strings in
1917 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1924 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1918
1925
1919 * doc/build_doc_instructions.txt added. Documentation on how to
1926 * doc/build_doc_instructions.txt added. Documentation on how to
1920 use doc/update_manual.py, added yesterday. Both files contributed
1927 use doc/update_manual.py, added yesterday. Both files contributed
1921 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1928 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1922 doc/*.sh for deprecation at a later date.
1929 doc/*.sh for deprecation at a later date.
1923
1930
1924 * /ipython.py Added ipython.py to root directory for
1931 * /ipython.py Added ipython.py to root directory for
1925 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1932 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1926 ipython.py) and development convenience (no need to keep doing
1933 ipython.py) and development convenience (no need to keep doing
1927 "setup.py install" between changes).
1934 "setup.py install" between changes).
1928
1935
1929 * Made ! and !! shell escapes work (again) in multiline expressions:
1936 * Made ! and !! shell escapes work (again) in multiline expressions:
1930 if 1:
1937 if 1:
1931 !ls
1938 !ls
1932 !!ls
1939 !!ls
1933
1940
1934 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1941 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1935
1942
1936 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1943 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1937 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1944 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1938 module in case-insensitive installation. Was causing crashes
1945 module in case-insensitive installation. Was causing crashes
1939 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1946 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1940
1947
1941 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1948 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1942 <marienz-AT-gentoo.org>, closes
1949 <marienz-AT-gentoo.org>, closes
1943 http://www.scipy.net/roundup/ipython/issue51.
1950 http://www.scipy.net/roundup/ipython/issue51.
1944
1951
1945 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1952 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1946
1953
1947 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1954 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1948 problem of excessive CPU usage under *nix and keyboard lag under
1955 problem of excessive CPU usage under *nix and keyboard lag under
1949 win32.
1956 win32.
1950
1957
1951 2006-01-10 *** Released version 0.7.0
1958 2006-01-10 *** Released version 0.7.0
1952
1959
1953 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1960 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1954
1961
1955 * IPython/Release.py (revision): tag version number to 0.7.0,
1962 * IPython/Release.py (revision): tag version number to 0.7.0,
1956 ready for release.
1963 ready for release.
1957
1964
1958 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1965 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1959 it informs the user of the name of the temp. file used. This can
1966 it informs the user of the name of the temp. file used. This can
1960 help if you decide later to reuse that same file, so you know
1967 help if you decide later to reuse that same file, so you know
1961 where to copy the info from.
1968 where to copy the info from.
1962
1969
1963 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1970 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1964
1971
1965 * setup_bdist_egg.py: little script to build an egg. Added
1972 * setup_bdist_egg.py: little script to build an egg. Added
1966 support in the release tools as well.
1973 support in the release tools as well.
1967
1974
1968 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1975 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1969
1976
1970 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1977 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1971 version selection (new -wxversion command line and ipythonrc
1978 version selection (new -wxversion command line and ipythonrc
1972 parameter). Patch contributed by Arnd Baecker
1979 parameter). Patch contributed by Arnd Baecker
1973 <arnd.baecker-AT-web.de>.
1980 <arnd.baecker-AT-web.de>.
1974
1981
1975 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1982 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1976 embedded instances, for variables defined at the interactive
1983 embedded instances, for variables defined at the interactive
1977 prompt of the embedded ipython. Reported by Arnd.
1984 prompt of the embedded ipython. Reported by Arnd.
1978
1985
1979 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1986 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1980 it can be used as a (stateful) toggle, or with a direct parameter.
1987 it can be used as a (stateful) toggle, or with a direct parameter.
1981
1988
1982 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1989 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1983 could be triggered in certain cases and cause the traceback
1990 could be triggered in certain cases and cause the traceback
1984 printer not to work.
1991 printer not to work.
1985
1992
1986 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1993 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1987
1994
1988 * IPython/iplib.py (_should_recompile): Small fix, closes
1995 * IPython/iplib.py (_should_recompile): Small fix, closes
1989 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1996 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1990
1997
1991 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1998 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1992
1999
1993 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2000 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1994 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2001 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1995 Moad for help with tracking it down.
2002 Moad for help with tracking it down.
1996
2003
1997 * IPython/iplib.py (handle_auto): fix autocall handling for
2004 * IPython/iplib.py (handle_auto): fix autocall handling for
1998 objects which support BOTH __getitem__ and __call__ (so that f [x]
2005 objects which support BOTH __getitem__ and __call__ (so that f [x]
1999 is left alone, instead of becoming f([x]) automatically).
2006 is left alone, instead of becoming f([x]) automatically).
2000
2007
2001 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2008 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2002 Ville's patch.
2009 Ville's patch.
2003
2010
2004 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2011 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2005
2012
2006 * IPython/iplib.py (handle_auto): changed autocall semantics to
2013 * IPython/iplib.py (handle_auto): changed autocall semantics to
2007 include 'smart' mode, where the autocall transformation is NOT
2014 include 'smart' mode, where the autocall transformation is NOT
2008 applied if there are no arguments on the line. This allows you to
2015 applied if there are no arguments on the line. This allows you to
2009 just type 'foo' if foo is a callable to see its internal form,
2016 just type 'foo' if foo is a callable to see its internal form,
2010 instead of having it called with no arguments (typically a
2017 instead of having it called with no arguments (typically a
2011 mistake). The old 'full' autocall still exists: for that, you
2018 mistake). The old 'full' autocall still exists: for that, you
2012 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2019 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2013
2020
2014 * IPython/completer.py (Completer.attr_matches): add
2021 * IPython/completer.py (Completer.attr_matches): add
2015 tab-completion support for Enthoughts' traits. After a report by
2022 tab-completion support for Enthoughts' traits. After a report by
2016 Arnd and a patch by Prabhu.
2023 Arnd and a patch by Prabhu.
2017
2024
2018 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2025 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2019
2026
2020 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2027 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2021 Schmolck's patch to fix inspect.getinnerframes().
2028 Schmolck's patch to fix inspect.getinnerframes().
2022
2029
2023 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2030 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2024 for embedded instances, regarding handling of namespaces and items
2031 for embedded instances, regarding handling of namespaces and items
2025 added to the __builtin__ one. Multiple embedded instances and
2032 added to the __builtin__ one. Multiple embedded instances and
2026 recursive embeddings should work better now (though I'm not sure
2033 recursive embeddings should work better now (though I'm not sure
2027 I've got all the corner cases fixed, that code is a bit of a brain
2034 I've got all the corner cases fixed, that code is a bit of a brain
2028 twister).
2035 twister).
2029
2036
2030 * IPython/Magic.py (magic_edit): added support to edit in-memory
2037 * IPython/Magic.py (magic_edit): added support to edit in-memory
2031 macros (automatically creates the necessary temp files). %edit
2038 macros (automatically creates the necessary temp files). %edit
2032 also doesn't return the file contents anymore, it's just noise.
2039 also doesn't return the file contents anymore, it's just noise.
2033
2040
2034 * IPython/completer.py (Completer.attr_matches): revert change to
2041 * IPython/completer.py (Completer.attr_matches): revert change to
2035 complete only on attributes listed in __all__. I realized it
2042 complete only on attributes listed in __all__. I realized it
2036 cripples the tab-completion system as a tool for exploring the
2043 cripples the tab-completion system as a tool for exploring the
2037 internals of unknown libraries (it renders any non-__all__
2044 internals of unknown libraries (it renders any non-__all__
2038 attribute off-limits). I got bit by this when trying to see
2045 attribute off-limits). I got bit by this when trying to see
2039 something inside the dis module.
2046 something inside the dis module.
2040
2047
2041 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2048 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2042
2049
2043 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2050 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2044 namespace for users and extension writers to hold data in. This
2051 namespace for users and extension writers to hold data in. This
2045 follows the discussion in
2052 follows the discussion in
2046 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2053 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2047
2054
2048 * IPython/completer.py (IPCompleter.complete): small patch to help
2055 * IPython/completer.py (IPCompleter.complete): small patch to help
2049 tab-completion under Emacs, after a suggestion by John Barnard
2056 tab-completion under Emacs, after a suggestion by John Barnard
2050 <barnarj-AT-ccf.org>.
2057 <barnarj-AT-ccf.org>.
2051
2058
2052 * IPython/Magic.py (Magic.extract_input_slices): added support for
2059 * IPython/Magic.py (Magic.extract_input_slices): added support for
2053 the slice notation in magics to use N-M to represent numbers N...M
2060 the slice notation in magics to use N-M to represent numbers N...M
2054 (closed endpoints). This is used by %macro and %save.
2061 (closed endpoints). This is used by %macro and %save.
2055
2062
2056 * IPython/completer.py (Completer.attr_matches): for modules which
2063 * IPython/completer.py (Completer.attr_matches): for modules which
2057 define __all__, complete only on those. After a patch by Jeffrey
2064 define __all__, complete only on those. After a patch by Jeffrey
2058 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2065 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2059 speed up this routine.
2066 speed up this routine.
2060
2067
2061 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2068 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2062 don't know if this is the end of it, but the behavior now is
2069 don't know if this is the end of it, but the behavior now is
2063 certainly much more correct. Note that coupled with macros,
2070 certainly much more correct. Note that coupled with macros,
2064 slightly surprising (at first) behavior may occur: a macro will in
2071 slightly surprising (at first) behavior may occur: a macro will in
2065 general expand to multiple lines of input, so upon exiting, the
2072 general expand to multiple lines of input, so upon exiting, the
2066 in/out counters will both be bumped by the corresponding amount
2073 in/out counters will both be bumped by the corresponding amount
2067 (as if the macro's contents had been typed interactively). Typing
2074 (as if the macro's contents had been typed interactively). Typing
2068 %hist will reveal the intermediate (silently processed) lines.
2075 %hist will reveal the intermediate (silently processed) lines.
2069
2076
2070 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2077 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2071 pickle to fail (%run was overwriting __main__ and not restoring
2078 pickle to fail (%run was overwriting __main__ and not restoring
2072 it, but pickle relies on __main__ to operate).
2079 it, but pickle relies on __main__ to operate).
2073
2080
2074 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2081 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2075 using properties, but forgot to make the main InteractiveShell
2082 using properties, but forgot to make the main InteractiveShell
2076 class a new-style class. Properties fail silently, and
2083 class a new-style class. Properties fail silently, and
2077 mysteriously, with old-style class (getters work, but
2084 mysteriously, with old-style class (getters work, but
2078 setters don't do anything).
2085 setters don't do anything).
2079
2086
2080 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2087 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2081
2088
2082 * IPython/Magic.py (magic_history): fix history reporting bug (I
2089 * IPython/Magic.py (magic_history): fix history reporting bug (I
2083 know some nasties are still there, I just can't seem to find a
2090 know some nasties are still there, I just can't seem to find a
2084 reproducible test case to track them down; the input history is
2091 reproducible test case to track them down; the input history is
2085 falling out of sync...)
2092 falling out of sync...)
2086
2093
2087 * IPython/iplib.py (handle_shell_escape): fix bug where both
2094 * IPython/iplib.py (handle_shell_escape): fix bug where both
2088 aliases and system accesses where broken for indented code (such
2095 aliases and system accesses where broken for indented code (such
2089 as loops).
2096 as loops).
2090
2097
2091 * IPython/genutils.py (shell): fix small but critical bug for
2098 * IPython/genutils.py (shell): fix small but critical bug for
2092 win32 system access.
2099 win32 system access.
2093
2100
2094 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2101 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2095
2102
2096 * IPython/iplib.py (showtraceback): remove use of the
2103 * IPython/iplib.py (showtraceback): remove use of the
2097 sys.last_{type/value/traceback} structures, which are non
2104 sys.last_{type/value/traceback} structures, which are non
2098 thread-safe.
2105 thread-safe.
2099 (_prefilter): change control flow to ensure that we NEVER
2106 (_prefilter): change control flow to ensure that we NEVER
2100 introspect objects when autocall is off. This will guarantee that
2107 introspect objects when autocall is off. This will guarantee that
2101 having an input line of the form 'x.y', where access to attribute
2108 having an input line of the form 'x.y', where access to attribute
2102 'y' has side effects, doesn't trigger the side effect TWICE. It
2109 'y' has side effects, doesn't trigger the side effect TWICE. It
2103 is important to note that, with autocall on, these side effects
2110 is important to note that, with autocall on, these side effects
2104 can still happen.
2111 can still happen.
2105 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2112 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2106 trio. IPython offers these three kinds of special calls which are
2113 trio. IPython offers these three kinds of special calls which are
2107 not python code, and it's a good thing to have their call method
2114 not python code, and it's a good thing to have their call method
2108 be accessible as pure python functions (not just special syntax at
2115 be accessible as pure python functions (not just special syntax at
2109 the command line). It gives us a better internal implementation
2116 the command line). It gives us a better internal implementation
2110 structure, as well as exposing these for user scripting more
2117 structure, as well as exposing these for user scripting more
2111 cleanly.
2118 cleanly.
2112
2119
2113 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2120 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2114 file. Now that they'll be more likely to be used with the
2121 file. Now that they'll be more likely to be used with the
2115 persistance system (%store), I want to make sure their module path
2122 persistance system (%store), I want to make sure their module path
2116 doesn't change in the future, so that we don't break things for
2123 doesn't change in the future, so that we don't break things for
2117 users' persisted data.
2124 users' persisted data.
2118
2125
2119 * IPython/iplib.py (autoindent_update): move indentation
2126 * IPython/iplib.py (autoindent_update): move indentation
2120 management into the _text_ processing loop, not the keyboard
2127 management into the _text_ processing loop, not the keyboard
2121 interactive one. This is necessary to correctly process non-typed
2128 interactive one. This is necessary to correctly process non-typed
2122 multiline input (such as macros).
2129 multiline input (such as macros).
2123
2130
2124 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2131 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2125 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2132 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2126 which was producing problems in the resulting manual.
2133 which was producing problems in the resulting manual.
2127 (magic_whos): improve reporting of instances (show their class,
2134 (magic_whos): improve reporting of instances (show their class,
2128 instead of simply printing 'instance' which isn't terribly
2135 instead of simply printing 'instance' which isn't terribly
2129 informative).
2136 informative).
2130
2137
2131 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2138 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2132 (minor mods) to support network shares under win32.
2139 (minor mods) to support network shares under win32.
2133
2140
2134 * IPython/winconsole.py (get_console_size): add new winconsole
2141 * IPython/winconsole.py (get_console_size): add new winconsole
2135 module and fixes to page_dumb() to improve its behavior under
2142 module and fixes to page_dumb() to improve its behavior under
2136 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2143 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2137
2144
2138 * IPython/Magic.py (Macro): simplified Macro class to just
2145 * IPython/Magic.py (Macro): simplified Macro class to just
2139 subclass list. We've had only 2.2 compatibility for a very long
2146 subclass list. We've had only 2.2 compatibility for a very long
2140 time, yet I was still avoiding subclassing the builtin types. No
2147 time, yet I was still avoiding subclassing the builtin types. No
2141 more (I'm also starting to use properties, though I won't shift to
2148 more (I'm also starting to use properties, though I won't shift to
2142 2.3-specific features quite yet).
2149 2.3-specific features quite yet).
2143 (magic_store): added Ville's patch for lightweight variable
2150 (magic_store): added Ville's patch for lightweight variable
2144 persistence, after a request on the user list by Matt Wilkie
2151 persistence, after a request on the user list by Matt Wilkie
2145 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2152 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2146 details.
2153 details.
2147
2154
2148 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2155 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2149 changed the default logfile name from 'ipython.log' to
2156 changed the default logfile name from 'ipython.log' to
2150 'ipython_log.py'. These logs are real python files, and now that
2157 'ipython_log.py'. These logs are real python files, and now that
2151 we have much better multiline support, people are more likely to
2158 we have much better multiline support, people are more likely to
2152 want to use them as such. Might as well name them correctly.
2159 want to use them as such. Might as well name them correctly.
2153
2160
2154 * IPython/Magic.py: substantial cleanup. While we can't stop
2161 * IPython/Magic.py: substantial cleanup. While we can't stop
2155 using magics as mixins, due to the existing customizations 'out
2162 using magics as mixins, due to the existing customizations 'out
2156 there' which rely on the mixin naming conventions, at least I
2163 there' which rely on the mixin naming conventions, at least I
2157 cleaned out all cross-class name usage. So once we are OK with
2164 cleaned out all cross-class name usage. So once we are OK with
2158 breaking compatibility, the two systems can be separated.
2165 breaking compatibility, the two systems can be separated.
2159
2166
2160 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2167 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2161 anymore, and the class is a fair bit less hideous as well. New
2168 anymore, and the class is a fair bit less hideous as well. New
2162 features were also introduced: timestamping of input, and logging
2169 features were also introduced: timestamping of input, and logging
2163 of output results. These are user-visible with the -t and -o
2170 of output results. These are user-visible with the -t and -o
2164 options to %logstart. Closes
2171 options to %logstart. Closes
2165 http://www.scipy.net/roundup/ipython/issue11 and a request by
2172 http://www.scipy.net/roundup/ipython/issue11 and a request by
2166 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2173 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2167
2174
2168 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2175 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2169
2176
2170 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2177 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2171 better handle backslashes in paths. See the thread 'More Windows
2178 better handle backslashes in paths. See the thread 'More Windows
2172 questions part 2 - \/ characters revisited' on the iypthon user
2179 questions part 2 - \/ characters revisited' on the iypthon user
2173 list:
2180 list:
2174 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2181 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2175
2182
2176 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2183 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2177
2184
2178 (InteractiveShell.__init__): change threaded shells to not use the
2185 (InteractiveShell.__init__): change threaded shells to not use the
2179 ipython crash handler. This was causing more problems than not,
2186 ipython crash handler. This was causing more problems than not,
2180 as exceptions in the main thread (GUI code, typically) would
2187 as exceptions in the main thread (GUI code, typically) would
2181 always show up as a 'crash', when they really weren't.
2188 always show up as a 'crash', when they really weren't.
2182
2189
2183 The colors and exception mode commands (%colors/%xmode) have been
2190 The colors and exception mode commands (%colors/%xmode) have been
2184 synchronized to also take this into account, so users can get
2191 synchronized to also take this into account, so users can get
2185 verbose exceptions for their threaded code as well. I also added
2192 verbose exceptions for their threaded code as well. I also added
2186 support for activating pdb inside this exception handler as well,
2193 support for activating pdb inside this exception handler as well,
2187 so now GUI authors can use IPython's enhanced pdb at runtime.
2194 so now GUI authors can use IPython's enhanced pdb at runtime.
2188
2195
2189 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2196 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2190 true by default, and add it to the shipped ipythonrc file. Since
2197 true by default, and add it to the shipped ipythonrc file. Since
2191 this asks the user before proceeding, I think it's OK to make it
2198 this asks the user before proceeding, I think it's OK to make it
2192 true by default.
2199 true by default.
2193
2200
2194 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2201 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2195 of the previous special-casing of input in the eval loop. I think
2202 of the previous special-casing of input in the eval loop. I think
2196 this is cleaner, as they really are commands and shouldn't have
2203 this is cleaner, as they really are commands and shouldn't have
2197 a special role in the middle of the core code.
2204 a special role in the middle of the core code.
2198
2205
2199 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2206 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2200
2207
2201 * IPython/iplib.py (edit_syntax_error): added support for
2208 * IPython/iplib.py (edit_syntax_error): added support for
2202 automatically reopening the editor if the file had a syntax error
2209 automatically reopening the editor if the file had a syntax error
2203 in it. Thanks to scottt who provided the patch at:
2210 in it. Thanks to scottt who provided the patch at:
2204 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2211 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2205 version committed).
2212 version committed).
2206
2213
2207 * IPython/iplib.py (handle_normal): add suport for multi-line
2214 * IPython/iplib.py (handle_normal): add suport for multi-line
2208 input with emtpy lines. This fixes
2215 input with emtpy lines. This fixes
2209 http://www.scipy.net/roundup/ipython/issue43 and a similar
2216 http://www.scipy.net/roundup/ipython/issue43 and a similar
2210 discussion on the user list.
2217 discussion on the user list.
2211
2218
2212 WARNING: a behavior change is necessarily introduced to support
2219 WARNING: a behavior change is necessarily introduced to support
2213 blank lines: now a single blank line with whitespace does NOT
2220 blank lines: now a single blank line with whitespace does NOT
2214 break the input loop, which means that when autoindent is on, by
2221 break the input loop, which means that when autoindent is on, by
2215 default hitting return on the next (indented) line does NOT exit.
2222 default hitting return on the next (indented) line does NOT exit.
2216
2223
2217 Instead, to exit a multiline input you can either have:
2224 Instead, to exit a multiline input you can either have:
2218
2225
2219 - TWO whitespace lines (just hit return again), or
2226 - TWO whitespace lines (just hit return again), or
2220 - a single whitespace line of a different length than provided
2227 - a single whitespace line of a different length than provided
2221 by the autoindent (add or remove a space).
2228 by the autoindent (add or remove a space).
2222
2229
2223 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2230 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2224 module to better organize all readline-related functionality.
2231 module to better organize all readline-related functionality.
2225 I've deleted FlexCompleter and put all completion clases here.
2232 I've deleted FlexCompleter and put all completion clases here.
2226
2233
2227 * IPython/iplib.py (raw_input): improve indentation management.
2234 * IPython/iplib.py (raw_input): improve indentation management.
2228 It is now possible to paste indented code with autoindent on, and
2235 It is now possible to paste indented code with autoindent on, and
2229 the code is interpreted correctly (though it still looks bad on
2236 the code is interpreted correctly (though it still looks bad on
2230 screen, due to the line-oriented nature of ipython).
2237 screen, due to the line-oriented nature of ipython).
2231 (MagicCompleter.complete): change behavior so that a TAB key on an
2238 (MagicCompleter.complete): change behavior so that a TAB key on an
2232 otherwise empty line actually inserts a tab, instead of completing
2239 otherwise empty line actually inserts a tab, instead of completing
2233 on the entire global namespace. This makes it easier to use the
2240 on the entire global namespace. This makes it easier to use the
2234 TAB key for indentation. After a request by Hans Meine
2241 TAB key for indentation. After a request by Hans Meine
2235 <hans_meine-AT-gmx.net>
2242 <hans_meine-AT-gmx.net>
2236 (_prefilter): add support so that typing plain 'exit' or 'quit'
2243 (_prefilter): add support so that typing plain 'exit' or 'quit'
2237 does a sensible thing. Originally I tried to deviate as little as
2244 does a sensible thing. Originally I tried to deviate as little as
2238 possible from the default python behavior, but even that one may
2245 possible from the default python behavior, but even that one may
2239 change in this direction (thread on python-dev to that effect).
2246 change in this direction (thread on python-dev to that effect).
2240 Regardless, ipython should do the right thing even if CPython's
2247 Regardless, ipython should do the right thing even if CPython's
2241 '>>>' prompt doesn't.
2248 '>>>' prompt doesn't.
2242 (InteractiveShell): removed subclassing code.InteractiveConsole
2249 (InteractiveShell): removed subclassing code.InteractiveConsole
2243 class. By now we'd overridden just about all of its methods: I've
2250 class. By now we'd overridden just about all of its methods: I've
2244 copied the remaining two over, and now ipython is a standalone
2251 copied the remaining two over, and now ipython is a standalone
2245 class. This will provide a clearer picture for the chainsaw
2252 class. This will provide a clearer picture for the chainsaw
2246 branch refactoring.
2253 branch refactoring.
2247
2254
2248 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2255 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2249
2256
2250 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2257 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2251 failures for objects which break when dir() is called on them.
2258 failures for objects which break when dir() is called on them.
2252
2259
2253 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2260 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2254 distinct local and global namespaces in the completer API. This
2261 distinct local and global namespaces in the completer API. This
2255 change allows us to properly handle completion with distinct
2262 change allows us to properly handle completion with distinct
2256 scopes, including in embedded instances (this had never really
2263 scopes, including in embedded instances (this had never really
2257 worked correctly).
2264 worked correctly).
2258
2265
2259 Note: this introduces a change in the constructor for
2266 Note: this introduces a change in the constructor for
2260 MagicCompleter, as a new global_namespace parameter is now the
2267 MagicCompleter, as a new global_namespace parameter is now the
2261 second argument (the others were bumped one position).
2268 second argument (the others were bumped one position).
2262
2269
2263 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2270 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2264
2271
2265 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2272 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2266 embedded instances (which can be done now thanks to Vivian's
2273 embedded instances (which can be done now thanks to Vivian's
2267 frame-handling fixes for pdb).
2274 frame-handling fixes for pdb).
2268 (InteractiveShell.__init__): Fix namespace handling problem in
2275 (InteractiveShell.__init__): Fix namespace handling problem in
2269 embedded instances. We were overwriting __main__ unconditionally,
2276 embedded instances. We were overwriting __main__ unconditionally,
2270 and this should only be done for 'full' (non-embedded) IPython;
2277 and this should only be done for 'full' (non-embedded) IPython;
2271 embedded instances must respect the caller's __main__. Thanks to
2278 embedded instances must respect the caller's __main__. Thanks to
2272 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2279 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2273
2280
2274 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2281 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2275
2282
2276 * setup.py: added download_url to setup(). This registers the
2283 * setup.py: added download_url to setup(). This registers the
2277 download address at PyPI, which is not only useful to humans
2284 download address at PyPI, which is not only useful to humans
2278 browsing the site, but is also picked up by setuptools (the Eggs
2285 browsing the site, but is also picked up by setuptools (the Eggs
2279 machinery). Thanks to Ville and R. Kern for the info/discussion
2286 machinery). Thanks to Ville and R. Kern for the info/discussion
2280 on this.
2287 on this.
2281
2288
2282 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2289 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2283
2290
2284 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2291 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2285 This brings a lot of nice functionality to the pdb mode, which now
2292 This brings a lot of nice functionality to the pdb mode, which now
2286 has tab-completion, syntax highlighting, and better stack handling
2293 has tab-completion, syntax highlighting, and better stack handling
2287 than before. Many thanks to Vivian De Smedt
2294 than before. Many thanks to Vivian De Smedt
2288 <vivian-AT-vdesmedt.com> for the original patches.
2295 <vivian-AT-vdesmedt.com> for the original patches.
2289
2296
2290 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2297 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2291
2298
2292 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2299 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2293 sequence to consistently accept the banner argument. The
2300 sequence to consistently accept the banner argument. The
2294 inconsistency was tripping SAGE, thanks to Gary Zablackis
2301 inconsistency was tripping SAGE, thanks to Gary Zablackis
2295 <gzabl-AT-yahoo.com> for the report.
2302 <gzabl-AT-yahoo.com> for the report.
2296
2303
2297 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2304 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2298
2305
2299 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2306 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2300 Fix bug where a naked 'alias' call in the ipythonrc file would
2307 Fix bug where a naked 'alias' call in the ipythonrc file would
2301 cause a crash. Bug reported by Jorgen Stenarson.
2308 cause a crash. Bug reported by Jorgen Stenarson.
2302
2309
2303 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2310 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2304
2311
2305 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2312 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2306 startup time.
2313 startup time.
2307
2314
2308 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2315 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2309 instances had introduced a bug with globals in normal code. Now
2316 instances had introduced a bug with globals in normal code. Now
2310 it's working in all cases.
2317 it's working in all cases.
2311
2318
2312 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2319 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2313 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2320 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2314 has been introduced to set the default case sensitivity of the
2321 has been introduced to set the default case sensitivity of the
2315 searches. Users can still select either mode at runtime on a
2322 searches. Users can still select either mode at runtime on a
2316 per-search basis.
2323 per-search basis.
2317
2324
2318 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2325 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2319
2326
2320 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2327 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2321 attributes in wildcard searches for subclasses. Modified version
2328 attributes in wildcard searches for subclasses. Modified version
2322 of a patch by Jorgen.
2329 of a patch by Jorgen.
2323
2330
2324 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2331 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2325
2332
2326 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2333 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2327 embedded instances. I added a user_global_ns attribute to the
2334 embedded instances. I added a user_global_ns attribute to the
2328 InteractiveShell class to handle this.
2335 InteractiveShell class to handle this.
2329
2336
2330 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2337 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2331
2338
2332 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2339 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2333 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2340 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2334 (reported under win32, but may happen also in other platforms).
2341 (reported under win32, but may happen also in other platforms).
2335 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2342 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2336
2343
2337 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2344 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2338
2345
2339 * IPython/Magic.py (magic_psearch): new support for wildcard
2346 * IPython/Magic.py (magic_psearch): new support for wildcard
2340 patterns. Now, typing ?a*b will list all names which begin with a
2347 patterns. Now, typing ?a*b will list all names which begin with a
2341 and end in b, for example. The %psearch magic has full
2348 and end in b, for example. The %psearch magic has full
2342 docstrings. Many thanks to JΓΆrgen Stenarson
2349 docstrings. Many thanks to JΓΆrgen Stenarson
2343 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2350 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2344 implementing this functionality.
2351 implementing this functionality.
2345
2352
2346 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2353 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2347
2354
2348 * Manual: fixed long-standing annoyance of double-dashes (as in
2355 * Manual: fixed long-standing annoyance of double-dashes (as in
2349 --prefix=~, for example) being stripped in the HTML version. This
2356 --prefix=~, for example) being stripped in the HTML version. This
2350 is a latex2html bug, but a workaround was provided. Many thanks
2357 is a latex2html bug, but a workaround was provided. Many thanks
2351 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2358 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2352 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2359 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2353 rolling. This seemingly small issue had tripped a number of users
2360 rolling. This seemingly small issue had tripped a number of users
2354 when first installing, so I'm glad to see it gone.
2361 when first installing, so I'm glad to see it gone.
2355
2362
2356 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2363 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2357
2364
2358 * IPython/Extensions/numeric_formats.py: fix missing import,
2365 * IPython/Extensions/numeric_formats.py: fix missing import,
2359 reported by Stephen Walton.
2366 reported by Stephen Walton.
2360
2367
2361 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2368 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2362
2369
2363 * IPython/demo.py: finish demo module, fully documented now.
2370 * IPython/demo.py: finish demo module, fully documented now.
2364
2371
2365 * IPython/genutils.py (file_read): simple little utility to read a
2372 * IPython/genutils.py (file_read): simple little utility to read a
2366 file and ensure it's closed afterwards.
2373 file and ensure it's closed afterwards.
2367
2374
2368 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2375 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2369
2376
2370 * IPython/demo.py (Demo.__init__): added support for individually
2377 * IPython/demo.py (Demo.__init__): added support for individually
2371 tagging blocks for automatic execution.
2378 tagging blocks for automatic execution.
2372
2379
2373 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2380 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2374 syntax-highlighted python sources, requested by John.
2381 syntax-highlighted python sources, requested by John.
2375
2382
2376 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2383 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2377
2384
2378 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2385 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2379 finishing.
2386 finishing.
2380
2387
2381 * IPython/genutils.py (shlex_split): moved from Magic to here,
2388 * IPython/genutils.py (shlex_split): moved from Magic to here,
2382 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2389 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2383
2390
2384 * IPython/demo.py (Demo.__init__): added support for silent
2391 * IPython/demo.py (Demo.__init__): added support for silent
2385 blocks, improved marks as regexps, docstrings written.
2392 blocks, improved marks as regexps, docstrings written.
2386 (Demo.__init__): better docstring, added support for sys.argv.
2393 (Demo.__init__): better docstring, added support for sys.argv.
2387
2394
2388 * IPython/genutils.py (marquee): little utility used by the demo
2395 * IPython/genutils.py (marquee): little utility used by the demo
2389 code, handy in general.
2396 code, handy in general.
2390
2397
2391 * IPython/demo.py (Demo.__init__): new class for interactive
2398 * IPython/demo.py (Demo.__init__): new class for interactive
2392 demos. Not documented yet, I just wrote it in a hurry for
2399 demos. Not documented yet, I just wrote it in a hurry for
2393 scipy'05. Will docstring later.
2400 scipy'05. Will docstring later.
2394
2401
2395 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2402 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2396
2403
2397 * IPython/Shell.py (sigint_handler): Drastic simplification which
2404 * IPython/Shell.py (sigint_handler): Drastic simplification which
2398 also seems to make Ctrl-C work correctly across threads! This is
2405 also seems to make Ctrl-C work correctly across threads! This is
2399 so simple, that I can't beleive I'd missed it before. Needs more
2406 so simple, that I can't beleive I'd missed it before. Needs more
2400 testing, though.
2407 testing, though.
2401 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2408 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2402 like this before...
2409 like this before...
2403
2410
2404 * IPython/genutils.py (get_home_dir): add protection against
2411 * IPython/genutils.py (get_home_dir): add protection against
2405 non-dirs in win32 registry.
2412 non-dirs in win32 registry.
2406
2413
2407 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2414 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2408 bug where dict was mutated while iterating (pysh crash).
2415 bug where dict was mutated while iterating (pysh crash).
2409
2416
2410 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2417 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2411
2418
2412 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2419 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2413 spurious newlines added by this routine. After a report by
2420 spurious newlines added by this routine. After a report by
2414 F. Mantegazza.
2421 F. Mantegazza.
2415
2422
2416 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2423 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2417
2424
2418 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2425 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2419 calls. These were a leftover from the GTK 1.x days, and can cause
2426 calls. These were a leftover from the GTK 1.x days, and can cause
2420 problems in certain cases (after a report by John Hunter).
2427 problems in certain cases (after a report by John Hunter).
2421
2428
2422 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2429 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2423 os.getcwd() fails at init time. Thanks to patch from David Remahl
2430 os.getcwd() fails at init time. Thanks to patch from David Remahl
2424 <chmod007-AT-mac.com>.
2431 <chmod007-AT-mac.com>.
2425 (InteractiveShell.__init__): prevent certain special magics from
2432 (InteractiveShell.__init__): prevent certain special magics from
2426 being shadowed by aliases. Closes
2433 being shadowed by aliases. Closes
2427 http://www.scipy.net/roundup/ipython/issue41.
2434 http://www.scipy.net/roundup/ipython/issue41.
2428
2435
2429 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2436 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2430
2437
2431 * IPython/iplib.py (InteractiveShell.complete): Added new
2438 * IPython/iplib.py (InteractiveShell.complete): Added new
2432 top-level completion method to expose the completion mechanism
2439 top-level completion method to expose the completion mechanism
2433 beyond readline-based environments.
2440 beyond readline-based environments.
2434
2441
2435 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2442 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2436
2443
2437 * tools/ipsvnc (svnversion): fix svnversion capture.
2444 * tools/ipsvnc (svnversion): fix svnversion capture.
2438
2445
2439 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2446 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2440 attribute to self, which was missing. Before, it was set by a
2447 attribute to self, which was missing. Before, it was set by a
2441 routine which in certain cases wasn't being called, so the
2448 routine which in certain cases wasn't being called, so the
2442 instance could end up missing the attribute. This caused a crash.
2449 instance could end up missing the attribute. This caused a crash.
2443 Closes http://www.scipy.net/roundup/ipython/issue40.
2450 Closes http://www.scipy.net/roundup/ipython/issue40.
2444
2451
2445 2005-08-16 Fernando Perez <fperez@colorado.edu>
2452 2005-08-16 Fernando Perez <fperez@colorado.edu>
2446
2453
2447 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2454 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2448 contains non-string attribute. Closes
2455 contains non-string attribute. Closes
2449 http://www.scipy.net/roundup/ipython/issue38.
2456 http://www.scipy.net/roundup/ipython/issue38.
2450
2457
2451 2005-08-14 Fernando Perez <fperez@colorado.edu>
2458 2005-08-14 Fernando Perez <fperez@colorado.edu>
2452
2459
2453 * tools/ipsvnc: Minor improvements, to add changeset info.
2460 * tools/ipsvnc: Minor improvements, to add changeset info.
2454
2461
2455 2005-08-12 Fernando Perez <fperez@colorado.edu>
2462 2005-08-12 Fernando Perez <fperez@colorado.edu>
2456
2463
2457 * IPython/iplib.py (runsource): remove self.code_to_run_src
2464 * IPython/iplib.py (runsource): remove self.code_to_run_src
2458 attribute. I realized this is nothing more than
2465 attribute. I realized this is nothing more than
2459 '\n'.join(self.buffer), and having the same data in two different
2466 '\n'.join(self.buffer), and having the same data in two different
2460 places is just asking for synchronization bugs. This may impact
2467 places is just asking for synchronization bugs. This may impact
2461 people who have custom exception handlers, so I need to warn
2468 people who have custom exception handlers, so I need to warn
2462 ipython-dev about it (F. Mantegazza may use them).
2469 ipython-dev about it (F. Mantegazza may use them).
2463
2470
2464 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2471 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2465
2472
2466 * IPython/genutils.py: fix 2.2 compatibility (generators)
2473 * IPython/genutils.py: fix 2.2 compatibility (generators)
2467
2474
2468 2005-07-18 Fernando Perez <fperez@colorado.edu>
2475 2005-07-18 Fernando Perez <fperez@colorado.edu>
2469
2476
2470 * IPython/genutils.py (get_home_dir): fix to help users with
2477 * IPython/genutils.py (get_home_dir): fix to help users with
2471 invalid $HOME under win32.
2478 invalid $HOME under win32.
2472
2479
2473 2005-07-17 Fernando Perez <fperez@colorado.edu>
2480 2005-07-17 Fernando Perez <fperez@colorado.edu>
2474
2481
2475 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2482 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2476 some old hacks and clean up a bit other routines; code should be
2483 some old hacks and clean up a bit other routines; code should be
2477 simpler and a bit faster.
2484 simpler and a bit faster.
2478
2485
2479 * IPython/iplib.py (interact): removed some last-resort attempts
2486 * IPython/iplib.py (interact): removed some last-resort attempts
2480 to survive broken stdout/stderr. That code was only making it
2487 to survive broken stdout/stderr. That code was only making it
2481 harder to abstract out the i/o (necessary for gui integration),
2488 harder to abstract out the i/o (necessary for gui integration),
2482 and the crashes it could prevent were extremely rare in practice
2489 and the crashes it could prevent were extremely rare in practice
2483 (besides being fully user-induced in a pretty violent manner).
2490 (besides being fully user-induced in a pretty violent manner).
2484
2491
2485 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2492 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2486 Nothing major yet, but the code is simpler to read; this should
2493 Nothing major yet, but the code is simpler to read; this should
2487 make it easier to do more serious modifications in the future.
2494 make it easier to do more serious modifications in the future.
2488
2495
2489 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2496 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2490 which broke in .15 (thanks to a report by Ville).
2497 which broke in .15 (thanks to a report by Ville).
2491
2498
2492 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2499 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2493 be quite correct, I know next to nothing about unicode). This
2500 be quite correct, I know next to nothing about unicode). This
2494 will allow unicode strings to be used in prompts, amongst other
2501 will allow unicode strings to be used in prompts, amongst other
2495 cases. It also will prevent ipython from crashing when unicode
2502 cases. It also will prevent ipython from crashing when unicode
2496 shows up unexpectedly in many places. If ascii encoding fails, we
2503 shows up unexpectedly in many places. If ascii encoding fails, we
2497 assume utf_8. Currently the encoding is not a user-visible
2504 assume utf_8. Currently the encoding is not a user-visible
2498 setting, though it could be made so if there is demand for it.
2505 setting, though it could be made so if there is demand for it.
2499
2506
2500 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2507 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2501
2508
2502 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2509 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2503
2510
2504 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2511 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2505
2512
2506 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2513 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2507 code can work transparently for 2.2/2.3.
2514 code can work transparently for 2.2/2.3.
2508
2515
2509 2005-07-16 Fernando Perez <fperez@colorado.edu>
2516 2005-07-16 Fernando Perez <fperez@colorado.edu>
2510
2517
2511 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2518 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2512 out of the color scheme table used for coloring exception
2519 out of the color scheme table used for coloring exception
2513 tracebacks. This allows user code to add new schemes at runtime.
2520 tracebacks. This allows user code to add new schemes at runtime.
2514 This is a minimally modified version of the patch at
2521 This is a minimally modified version of the patch at
2515 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2522 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2516 for the contribution.
2523 for the contribution.
2517
2524
2518 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2525 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2519 slightly modified version of the patch in
2526 slightly modified version of the patch in
2520 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2527 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2521 to remove the previous try/except solution (which was costlier).
2528 to remove the previous try/except solution (which was costlier).
2522 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2529 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2523
2530
2524 2005-06-08 Fernando Perez <fperez@colorado.edu>
2531 2005-06-08 Fernando Perez <fperez@colorado.edu>
2525
2532
2526 * IPython/iplib.py (write/write_err): Add methods to abstract all
2533 * IPython/iplib.py (write/write_err): Add methods to abstract all
2527 I/O a bit more.
2534 I/O a bit more.
2528
2535
2529 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2536 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2530 warning, reported by Aric Hagberg, fix by JD Hunter.
2537 warning, reported by Aric Hagberg, fix by JD Hunter.
2531
2538
2532 2005-06-02 *** Released version 0.6.15
2539 2005-06-02 *** Released version 0.6.15
2533
2540
2534 2005-06-01 Fernando Perez <fperez@colorado.edu>
2541 2005-06-01 Fernando Perez <fperez@colorado.edu>
2535
2542
2536 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2543 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2537 tab-completion of filenames within open-quoted strings. Note that
2544 tab-completion of filenames within open-quoted strings. Note that
2538 this requires that in ~/.ipython/ipythonrc, users change the
2545 this requires that in ~/.ipython/ipythonrc, users change the
2539 readline delimiters configuration to read:
2546 readline delimiters configuration to read:
2540
2547
2541 readline_remove_delims -/~
2548 readline_remove_delims -/~
2542
2549
2543
2550
2544 2005-05-31 *** Released version 0.6.14
2551 2005-05-31 *** Released version 0.6.14
2545
2552
2546 2005-05-29 Fernando Perez <fperez@colorado.edu>
2553 2005-05-29 Fernando Perez <fperez@colorado.edu>
2547
2554
2548 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2555 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2549 with files not on the filesystem. Reported by Eliyahu Sandler
2556 with files not on the filesystem. Reported by Eliyahu Sandler
2550 <eli@gondolin.net>
2557 <eli@gondolin.net>
2551
2558
2552 2005-05-22 Fernando Perez <fperez@colorado.edu>
2559 2005-05-22 Fernando Perez <fperez@colorado.edu>
2553
2560
2554 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2561 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2555 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2562 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2556
2563
2557 2005-05-19 Fernando Perez <fperez@colorado.edu>
2564 2005-05-19 Fernando Perez <fperez@colorado.edu>
2558
2565
2559 * IPython/iplib.py (safe_execfile): close a file which could be
2566 * IPython/iplib.py (safe_execfile): close a file which could be
2560 left open (causing problems in win32, which locks open files).
2567 left open (causing problems in win32, which locks open files).
2561 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2568 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2562
2569
2563 2005-05-18 Fernando Perez <fperez@colorado.edu>
2570 2005-05-18 Fernando Perez <fperez@colorado.edu>
2564
2571
2565 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2572 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2566 keyword arguments correctly to safe_execfile().
2573 keyword arguments correctly to safe_execfile().
2567
2574
2568 2005-05-13 Fernando Perez <fperez@colorado.edu>
2575 2005-05-13 Fernando Perez <fperez@colorado.edu>
2569
2576
2570 * ipython.1: Added info about Qt to manpage, and threads warning
2577 * ipython.1: Added info about Qt to manpage, and threads warning
2571 to usage page (invoked with --help).
2578 to usage page (invoked with --help).
2572
2579
2573 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2580 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2574 new matcher (it goes at the end of the priority list) to do
2581 new matcher (it goes at the end of the priority list) to do
2575 tab-completion on named function arguments. Submitted by George
2582 tab-completion on named function arguments. Submitted by George
2576 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2583 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2577 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2584 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2578 for more details.
2585 for more details.
2579
2586
2580 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2587 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2581 SystemExit exceptions in the script being run. Thanks to a report
2588 SystemExit exceptions in the script being run. Thanks to a report
2582 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2589 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2583 producing very annoying behavior when running unit tests.
2590 producing very annoying behavior when running unit tests.
2584
2591
2585 2005-05-12 Fernando Perez <fperez@colorado.edu>
2592 2005-05-12 Fernando Perez <fperez@colorado.edu>
2586
2593
2587 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2594 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2588 which I'd broken (again) due to a changed regexp. In the process,
2595 which I'd broken (again) due to a changed regexp. In the process,
2589 added ';' as an escape to auto-quote the whole line without
2596 added ';' as an escape to auto-quote the whole line without
2590 splitting its arguments. Thanks to a report by Jerry McRae
2597 splitting its arguments. Thanks to a report by Jerry McRae
2591 <qrs0xyc02-AT-sneakemail.com>.
2598 <qrs0xyc02-AT-sneakemail.com>.
2592
2599
2593 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2600 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2594 possible crashes caused by a TokenError. Reported by Ed Schofield
2601 possible crashes caused by a TokenError. Reported by Ed Schofield
2595 <schofield-AT-ftw.at>.
2602 <schofield-AT-ftw.at>.
2596
2603
2597 2005-05-06 Fernando Perez <fperez@colorado.edu>
2604 2005-05-06 Fernando Perez <fperez@colorado.edu>
2598
2605
2599 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2606 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2600
2607
2601 2005-04-29 Fernando Perez <fperez@colorado.edu>
2608 2005-04-29 Fernando Perez <fperez@colorado.edu>
2602
2609
2603 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2610 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2604 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2611 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2605 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2612 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2606 which provides support for Qt interactive usage (similar to the
2613 which provides support for Qt interactive usage (similar to the
2607 existing one for WX and GTK). This had been often requested.
2614 existing one for WX and GTK). This had been often requested.
2608
2615
2609 2005-04-14 *** Released version 0.6.13
2616 2005-04-14 *** Released version 0.6.13
2610
2617
2611 2005-04-08 Fernando Perez <fperez@colorado.edu>
2618 2005-04-08 Fernando Perez <fperez@colorado.edu>
2612
2619
2613 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2620 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2614 from _ofind, which gets called on almost every input line. Now,
2621 from _ofind, which gets called on almost every input line. Now,
2615 we only try to get docstrings if they are actually going to be
2622 we only try to get docstrings if they are actually going to be
2616 used (the overhead of fetching unnecessary docstrings can be
2623 used (the overhead of fetching unnecessary docstrings can be
2617 noticeable for certain objects, such as Pyro proxies).
2624 noticeable for certain objects, such as Pyro proxies).
2618
2625
2619 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2626 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2620 for completers. For some reason I had been passing them the state
2627 for completers. For some reason I had been passing them the state
2621 variable, which completers never actually need, and was in
2628 variable, which completers never actually need, and was in
2622 conflict with the rlcompleter API. Custom completers ONLY need to
2629 conflict with the rlcompleter API. Custom completers ONLY need to
2623 take the text parameter.
2630 take the text parameter.
2624
2631
2625 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2632 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2626 work correctly in pysh. I've also moved all the logic which used
2633 work correctly in pysh. I've also moved all the logic which used
2627 to be in pysh.py here, which will prevent problems with future
2634 to be in pysh.py here, which will prevent problems with future
2628 upgrades. However, this time I must warn users to update their
2635 upgrades. However, this time I must warn users to update their
2629 pysh profile to include the line
2636 pysh profile to include the line
2630
2637
2631 import_all IPython.Extensions.InterpreterExec
2638 import_all IPython.Extensions.InterpreterExec
2632
2639
2633 because otherwise things won't work for them. They MUST also
2640 because otherwise things won't work for them. They MUST also
2634 delete pysh.py and the line
2641 delete pysh.py and the line
2635
2642
2636 execfile pysh.py
2643 execfile pysh.py
2637
2644
2638 from their ipythonrc-pysh.
2645 from their ipythonrc-pysh.
2639
2646
2640 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2647 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2641 robust in the face of objects whose dir() returns non-strings
2648 robust in the face of objects whose dir() returns non-strings
2642 (which it shouldn't, but some broken libs like ITK do). Thanks to
2649 (which it shouldn't, but some broken libs like ITK do). Thanks to
2643 a patch by John Hunter (implemented differently, though). Also
2650 a patch by John Hunter (implemented differently, though). Also
2644 minor improvements by using .extend instead of + on lists.
2651 minor improvements by using .extend instead of + on lists.
2645
2652
2646 * pysh.py:
2653 * pysh.py:
2647
2654
2648 2005-04-06 Fernando Perez <fperez@colorado.edu>
2655 2005-04-06 Fernando Perez <fperez@colorado.edu>
2649
2656
2650 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2657 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2651 by default, so that all users benefit from it. Those who don't
2658 by default, so that all users benefit from it. Those who don't
2652 want it can still turn it off.
2659 want it can still turn it off.
2653
2660
2654 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2661 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2655 config file, I'd forgotten about this, so users were getting it
2662 config file, I'd forgotten about this, so users were getting it
2656 off by default.
2663 off by default.
2657
2664
2658 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2665 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2659 consistency. Now magics can be called in multiline statements,
2666 consistency. Now magics can be called in multiline statements,
2660 and python variables can be expanded in magic calls via $var.
2667 and python variables can be expanded in magic calls via $var.
2661 This makes the magic system behave just like aliases or !system
2668 This makes the magic system behave just like aliases or !system
2662 calls.
2669 calls.
2663
2670
2664 2005-03-28 Fernando Perez <fperez@colorado.edu>
2671 2005-03-28 Fernando Perez <fperez@colorado.edu>
2665
2672
2666 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2673 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2667 expensive string additions for building command. Add support for
2674 expensive string additions for building command. Add support for
2668 trailing ';' when autocall is used.
2675 trailing ';' when autocall is used.
2669
2676
2670 2005-03-26 Fernando Perez <fperez@colorado.edu>
2677 2005-03-26 Fernando Perez <fperez@colorado.edu>
2671
2678
2672 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2679 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2673 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2680 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2674 ipython.el robust against prompts with any number of spaces
2681 ipython.el robust against prompts with any number of spaces
2675 (including 0) after the ':' character.
2682 (including 0) after the ':' character.
2676
2683
2677 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2684 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2678 continuation prompt, which misled users to think the line was
2685 continuation prompt, which misled users to think the line was
2679 already indented. Closes debian Bug#300847, reported to me by
2686 already indented. Closes debian Bug#300847, reported to me by
2680 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2687 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2681
2688
2682 2005-03-23 Fernando Perez <fperez@colorado.edu>
2689 2005-03-23 Fernando Perez <fperez@colorado.edu>
2683
2690
2684 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2691 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2685 properly aligned if they have embedded newlines.
2692 properly aligned if they have embedded newlines.
2686
2693
2687 * IPython/iplib.py (runlines): Add a public method to expose
2694 * IPython/iplib.py (runlines): Add a public method to expose
2688 IPython's code execution machinery, so that users can run strings
2695 IPython's code execution machinery, so that users can run strings
2689 as if they had been typed at the prompt interactively.
2696 as if they had been typed at the prompt interactively.
2690 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2697 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2691 methods which can call the system shell, but with python variable
2698 methods which can call the system shell, but with python variable
2692 expansion. The three such methods are: __IPYTHON__.system,
2699 expansion. The three such methods are: __IPYTHON__.system,
2693 .getoutput and .getoutputerror. These need to be documented in a
2700 .getoutput and .getoutputerror. These need to be documented in a
2694 'public API' section (to be written) of the manual.
2701 'public API' section (to be written) of the manual.
2695
2702
2696 2005-03-20 Fernando Perez <fperez@colorado.edu>
2703 2005-03-20 Fernando Perez <fperez@colorado.edu>
2697
2704
2698 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2705 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2699 for custom exception handling. This is quite powerful, and it
2706 for custom exception handling. This is quite powerful, and it
2700 allows for user-installable exception handlers which can trap
2707 allows for user-installable exception handlers which can trap
2701 custom exceptions at runtime and treat them separately from
2708 custom exceptions at runtime and treat them separately from
2702 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2709 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2703 Mantegazza <mantegazza-AT-ill.fr>.
2710 Mantegazza <mantegazza-AT-ill.fr>.
2704 (InteractiveShell.set_custom_completer): public API function to
2711 (InteractiveShell.set_custom_completer): public API function to
2705 add new completers at runtime.
2712 add new completers at runtime.
2706
2713
2707 2005-03-19 Fernando Perez <fperez@colorado.edu>
2714 2005-03-19 Fernando Perez <fperez@colorado.edu>
2708
2715
2709 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2716 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2710 allow objects which provide their docstrings via non-standard
2717 allow objects which provide their docstrings via non-standard
2711 mechanisms (like Pyro proxies) to still be inspected by ipython's
2718 mechanisms (like Pyro proxies) to still be inspected by ipython's
2712 ? system.
2719 ? system.
2713
2720
2714 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2721 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2715 automatic capture system. I tried quite hard to make it work
2722 automatic capture system. I tried quite hard to make it work
2716 reliably, and simply failed. I tried many combinations with the
2723 reliably, and simply failed. I tried many combinations with the
2717 subprocess module, but eventually nothing worked in all needed
2724 subprocess module, but eventually nothing worked in all needed
2718 cases (not blocking stdin for the child, duplicating stdout
2725 cases (not blocking stdin for the child, duplicating stdout
2719 without blocking, etc). The new %sc/%sx still do capture to these
2726 without blocking, etc). The new %sc/%sx still do capture to these
2720 magical list/string objects which make shell use much more
2727 magical list/string objects which make shell use much more
2721 conveninent, so not all is lost.
2728 conveninent, so not all is lost.
2722
2729
2723 XXX - FIX MANUAL for the change above!
2730 XXX - FIX MANUAL for the change above!
2724
2731
2725 (runsource): I copied code.py's runsource() into ipython to modify
2732 (runsource): I copied code.py's runsource() into ipython to modify
2726 it a bit. Now the code object and source to be executed are
2733 it a bit. Now the code object and source to be executed are
2727 stored in ipython. This makes this info accessible to third-party
2734 stored in ipython. This makes this info accessible to third-party
2728 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2735 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2729 Mantegazza <mantegazza-AT-ill.fr>.
2736 Mantegazza <mantegazza-AT-ill.fr>.
2730
2737
2731 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2738 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2732 history-search via readline (like C-p/C-n). I'd wanted this for a
2739 history-search via readline (like C-p/C-n). I'd wanted this for a
2733 long time, but only recently found out how to do it. For users
2740 long time, but only recently found out how to do it. For users
2734 who already have their ipythonrc files made and want this, just
2741 who already have their ipythonrc files made and want this, just
2735 add:
2742 add:
2736
2743
2737 readline_parse_and_bind "\e[A": history-search-backward
2744 readline_parse_and_bind "\e[A": history-search-backward
2738 readline_parse_and_bind "\e[B": history-search-forward
2745 readline_parse_and_bind "\e[B": history-search-forward
2739
2746
2740 2005-03-18 Fernando Perez <fperez@colorado.edu>
2747 2005-03-18 Fernando Perez <fperez@colorado.edu>
2741
2748
2742 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2749 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2743 LSString and SList classes which allow transparent conversions
2750 LSString and SList classes which allow transparent conversions
2744 between list mode and whitespace-separated string.
2751 between list mode and whitespace-separated string.
2745 (magic_r): Fix recursion problem in %r.
2752 (magic_r): Fix recursion problem in %r.
2746
2753
2747 * IPython/genutils.py (LSString): New class to be used for
2754 * IPython/genutils.py (LSString): New class to be used for
2748 automatic storage of the results of all alias/system calls in _o
2755 automatic storage of the results of all alias/system calls in _o
2749 and _e (stdout/err). These provide a .l/.list attribute which
2756 and _e (stdout/err). These provide a .l/.list attribute which
2750 does automatic splitting on newlines. This means that for most
2757 does automatic splitting on newlines. This means that for most
2751 uses, you'll never need to do capturing of output with %sc/%sx
2758 uses, you'll never need to do capturing of output with %sc/%sx
2752 anymore, since ipython keeps this always done for you. Note that
2759 anymore, since ipython keeps this always done for you. Note that
2753 only the LAST results are stored, the _o/e variables are
2760 only the LAST results are stored, the _o/e variables are
2754 overwritten on each call. If you need to save their contents
2761 overwritten on each call. If you need to save their contents
2755 further, simply bind them to any other name.
2762 further, simply bind them to any other name.
2756
2763
2757 2005-03-17 Fernando Perez <fperez@colorado.edu>
2764 2005-03-17 Fernando Perez <fperez@colorado.edu>
2758
2765
2759 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2766 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2760 prompt namespace handling.
2767 prompt namespace handling.
2761
2768
2762 2005-03-16 Fernando Perez <fperez@colorado.edu>
2769 2005-03-16 Fernando Perez <fperez@colorado.edu>
2763
2770
2764 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2771 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2765 classic prompts to be '>>> ' (final space was missing, and it
2772 classic prompts to be '>>> ' (final space was missing, and it
2766 trips the emacs python mode).
2773 trips the emacs python mode).
2767 (BasePrompt.__str__): Added safe support for dynamic prompt
2774 (BasePrompt.__str__): Added safe support for dynamic prompt
2768 strings. Now you can set your prompt string to be '$x', and the
2775 strings. Now you can set your prompt string to be '$x', and the
2769 value of x will be printed from your interactive namespace. The
2776 value of x will be printed from your interactive namespace. The
2770 interpolation syntax includes the full Itpl support, so
2777 interpolation syntax includes the full Itpl support, so
2771 ${foo()+x+bar()} is a valid prompt string now, and the function
2778 ${foo()+x+bar()} is a valid prompt string now, and the function
2772 calls will be made at runtime.
2779 calls will be made at runtime.
2773
2780
2774 2005-03-15 Fernando Perez <fperez@colorado.edu>
2781 2005-03-15 Fernando Perez <fperez@colorado.edu>
2775
2782
2776 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2783 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2777 avoid name clashes in pylab. %hist still works, it just forwards
2784 avoid name clashes in pylab. %hist still works, it just forwards
2778 the call to %history.
2785 the call to %history.
2779
2786
2780 2005-03-02 *** Released version 0.6.12
2787 2005-03-02 *** Released version 0.6.12
2781
2788
2782 2005-03-02 Fernando Perez <fperez@colorado.edu>
2789 2005-03-02 Fernando Perez <fperez@colorado.edu>
2783
2790
2784 * IPython/iplib.py (handle_magic): log magic calls properly as
2791 * IPython/iplib.py (handle_magic): log magic calls properly as
2785 ipmagic() function calls.
2792 ipmagic() function calls.
2786
2793
2787 * IPython/Magic.py (magic_time): Improved %time to support
2794 * IPython/Magic.py (magic_time): Improved %time to support
2788 statements and provide wall-clock as well as CPU time.
2795 statements and provide wall-clock as well as CPU time.
2789
2796
2790 2005-02-27 Fernando Perez <fperez@colorado.edu>
2797 2005-02-27 Fernando Perez <fperez@colorado.edu>
2791
2798
2792 * IPython/hooks.py: New hooks module, to expose user-modifiable
2799 * IPython/hooks.py: New hooks module, to expose user-modifiable
2793 IPython functionality in a clean manner. For now only the editor
2800 IPython functionality in a clean manner. For now only the editor
2794 hook is actually written, and other thigns which I intend to turn
2801 hook is actually written, and other thigns which I intend to turn
2795 into proper hooks aren't yet there. The display and prefilter
2802 into proper hooks aren't yet there. The display and prefilter
2796 stuff, for example, should be hooks. But at least now the
2803 stuff, for example, should be hooks. But at least now the
2797 framework is in place, and the rest can be moved here with more
2804 framework is in place, and the rest can be moved here with more
2798 time later. IPython had had a .hooks variable for a long time for
2805 time later. IPython had had a .hooks variable for a long time for
2799 this purpose, but I'd never actually used it for anything.
2806 this purpose, but I'd never actually used it for anything.
2800
2807
2801 2005-02-26 Fernando Perez <fperez@colorado.edu>
2808 2005-02-26 Fernando Perez <fperez@colorado.edu>
2802
2809
2803 * IPython/ipmaker.py (make_IPython): make the default ipython
2810 * IPython/ipmaker.py (make_IPython): make the default ipython
2804 directory be called _ipython under win32, to follow more the
2811 directory be called _ipython under win32, to follow more the
2805 naming peculiarities of that platform (where buggy software like
2812 naming peculiarities of that platform (where buggy software like
2806 Visual Sourcesafe breaks with .named directories). Reported by
2813 Visual Sourcesafe breaks with .named directories). Reported by
2807 Ville Vainio.
2814 Ville Vainio.
2808
2815
2809 2005-02-23 Fernando Perez <fperez@colorado.edu>
2816 2005-02-23 Fernando Perez <fperez@colorado.edu>
2810
2817
2811 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2818 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2812 auto_aliases for win32 which were causing problems. Users can
2819 auto_aliases for win32 which were causing problems. Users can
2813 define the ones they personally like.
2820 define the ones they personally like.
2814
2821
2815 2005-02-21 Fernando Perez <fperez@colorado.edu>
2822 2005-02-21 Fernando Perez <fperez@colorado.edu>
2816
2823
2817 * IPython/Magic.py (magic_time): new magic to time execution of
2824 * IPython/Magic.py (magic_time): new magic to time execution of
2818 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2825 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2819
2826
2820 2005-02-19 Fernando Perez <fperez@colorado.edu>
2827 2005-02-19 Fernando Perez <fperez@colorado.edu>
2821
2828
2822 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2829 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2823 into keys (for prompts, for example).
2830 into keys (for prompts, for example).
2824
2831
2825 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2832 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2826 prompts in case users want them. This introduces a small behavior
2833 prompts in case users want them. This introduces a small behavior
2827 change: ipython does not automatically add a space to all prompts
2834 change: ipython does not automatically add a space to all prompts
2828 anymore. To get the old prompts with a space, users should add it
2835 anymore. To get the old prompts with a space, users should add it
2829 manually to their ipythonrc file, so for example prompt_in1 should
2836 manually to their ipythonrc file, so for example prompt_in1 should
2830 now read 'In [\#]: ' instead of 'In [\#]:'.
2837 now read 'In [\#]: ' instead of 'In [\#]:'.
2831 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2838 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2832 file) to control left-padding of secondary prompts.
2839 file) to control left-padding of secondary prompts.
2833
2840
2834 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2841 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2835 the profiler can't be imported. Fix for Debian, which removed
2842 the profiler can't be imported. Fix for Debian, which removed
2836 profile.py because of License issues. I applied a slightly
2843 profile.py because of License issues. I applied a slightly
2837 modified version of the original Debian patch at
2844 modified version of the original Debian patch at
2838 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2845 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2839
2846
2840 2005-02-17 Fernando Perez <fperez@colorado.edu>
2847 2005-02-17 Fernando Perez <fperez@colorado.edu>
2841
2848
2842 * IPython/genutils.py (native_line_ends): Fix bug which would
2849 * IPython/genutils.py (native_line_ends): Fix bug which would
2843 cause improper line-ends under win32 b/c I was not opening files
2850 cause improper line-ends under win32 b/c I was not opening files
2844 in binary mode. Bug report and fix thanks to Ville.
2851 in binary mode. Bug report and fix thanks to Ville.
2845
2852
2846 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2853 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2847 trying to catch spurious foo[1] autocalls. My fix actually broke
2854 trying to catch spurious foo[1] autocalls. My fix actually broke
2848 ',/' autoquote/call with explicit escape (bad regexp).
2855 ',/' autoquote/call with explicit escape (bad regexp).
2849
2856
2850 2005-02-15 *** Released version 0.6.11
2857 2005-02-15 *** Released version 0.6.11
2851
2858
2852 2005-02-14 Fernando Perez <fperez@colorado.edu>
2859 2005-02-14 Fernando Perez <fperez@colorado.edu>
2853
2860
2854 * IPython/background_jobs.py: New background job management
2861 * IPython/background_jobs.py: New background job management
2855 subsystem. This is implemented via a new set of classes, and
2862 subsystem. This is implemented via a new set of classes, and
2856 IPython now provides a builtin 'jobs' object for background job
2863 IPython now provides a builtin 'jobs' object for background job
2857 execution. A convenience %bg magic serves as a lightweight
2864 execution. A convenience %bg magic serves as a lightweight
2858 frontend for starting the more common type of calls. This was
2865 frontend for starting the more common type of calls. This was
2859 inspired by discussions with B. Granger and the BackgroundCommand
2866 inspired by discussions with B. Granger and the BackgroundCommand
2860 class described in the book Python Scripting for Computational
2867 class described in the book Python Scripting for Computational
2861 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2868 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2862 (although ultimately no code from this text was used, as IPython's
2869 (although ultimately no code from this text was used, as IPython's
2863 system is a separate implementation).
2870 system is a separate implementation).
2864
2871
2865 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2872 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2866 to control the completion of single/double underscore names
2873 to control the completion of single/double underscore names
2867 separately. As documented in the example ipytonrc file, the
2874 separately. As documented in the example ipytonrc file, the
2868 readline_omit__names variable can now be set to 2, to omit even
2875 readline_omit__names variable can now be set to 2, to omit even
2869 single underscore names. Thanks to a patch by Brian Wong
2876 single underscore names. Thanks to a patch by Brian Wong
2870 <BrianWong-AT-AirgoNetworks.Com>.
2877 <BrianWong-AT-AirgoNetworks.Com>.
2871 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2878 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2872 be autocalled as foo([1]) if foo were callable. A problem for
2879 be autocalled as foo([1]) if foo were callable. A problem for
2873 things which are both callable and implement __getitem__.
2880 things which are both callable and implement __getitem__.
2874 (init_readline): Fix autoindentation for win32. Thanks to a patch
2881 (init_readline): Fix autoindentation for win32. Thanks to a patch
2875 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2882 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2876
2883
2877 2005-02-12 Fernando Perez <fperez@colorado.edu>
2884 2005-02-12 Fernando Perez <fperez@colorado.edu>
2878
2885
2879 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2886 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2880 which I had written long ago to sort out user error messages which
2887 which I had written long ago to sort out user error messages which
2881 may occur during startup. This seemed like a good idea initially,
2888 may occur during startup. This seemed like a good idea initially,
2882 but it has proven a disaster in retrospect. I don't want to
2889 but it has proven a disaster in retrospect. I don't want to
2883 change much code for now, so my fix is to set the internal 'debug'
2890 change much code for now, so my fix is to set the internal 'debug'
2884 flag to true everywhere, whose only job was precisely to control
2891 flag to true everywhere, whose only job was precisely to control
2885 this subsystem. This closes issue 28 (as well as avoiding all
2892 this subsystem. This closes issue 28 (as well as avoiding all
2886 sorts of strange hangups which occur from time to time).
2893 sorts of strange hangups which occur from time to time).
2887
2894
2888 2005-02-07 Fernando Perez <fperez@colorado.edu>
2895 2005-02-07 Fernando Perez <fperez@colorado.edu>
2889
2896
2890 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2897 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2891 previous call produced a syntax error.
2898 previous call produced a syntax error.
2892
2899
2893 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2900 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2894 classes without constructor.
2901 classes without constructor.
2895
2902
2896 2005-02-06 Fernando Perez <fperez@colorado.edu>
2903 2005-02-06 Fernando Perez <fperez@colorado.edu>
2897
2904
2898 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2905 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2899 completions with the results of each matcher, so we return results
2906 completions with the results of each matcher, so we return results
2900 to the user from all namespaces. This breaks with ipython
2907 to the user from all namespaces. This breaks with ipython
2901 tradition, but I think it's a nicer behavior. Now you get all
2908 tradition, but I think it's a nicer behavior. Now you get all
2902 possible completions listed, from all possible namespaces (python,
2909 possible completions listed, from all possible namespaces (python,
2903 filesystem, magics...) After a request by John Hunter
2910 filesystem, magics...) After a request by John Hunter
2904 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2911 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2905
2912
2906 2005-02-05 Fernando Perez <fperez@colorado.edu>
2913 2005-02-05 Fernando Perez <fperez@colorado.edu>
2907
2914
2908 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2915 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2909 the call had quote characters in it (the quotes were stripped).
2916 the call had quote characters in it (the quotes were stripped).
2910
2917
2911 2005-01-31 Fernando Perez <fperez@colorado.edu>
2918 2005-01-31 Fernando Perez <fperez@colorado.edu>
2912
2919
2913 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2920 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2914 Itpl.itpl() to make the code more robust against psyco
2921 Itpl.itpl() to make the code more robust against psyco
2915 optimizations.
2922 optimizations.
2916
2923
2917 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2924 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2918 of causing an exception. Quicker, cleaner.
2925 of causing an exception. Quicker, cleaner.
2919
2926
2920 2005-01-28 Fernando Perez <fperez@colorado.edu>
2927 2005-01-28 Fernando Perez <fperez@colorado.edu>
2921
2928
2922 * scripts/ipython_win_post_install.py (install): hardcode
2929 * scripts/ipython_win_post_install.py (install): hardcode
2923 sys.prefix+'python.exe' as the executable path. It turns out that
2930 sys.prefix+'python.exe' as the executable path. It turns out that
2924 during the post-installation run, sys.executable resolves to the
2931 during the post-installation run, sys.executable resolves to the
2925 name of the binary installer! I should report this as a distutils
2932 name of the binary installer! I should report this as a distutils
2926 bug, I think. I updated the .10 release with this tiny fix, to
2933 bug, I think. I updated the .10 release with this tiny fix, to
2927 avoid annoying the lists further.
2934 avoid annoying the lists further.
2928
2935
2929 2005-01-27 *** Released version 0.6.10
2936 2005-01-27 *** Released version 0.6.10
2930
2937
2931 2005-01-27 Fernando Perez <fperez@colorado.edu>
2938 2005-01-27 Fernando Perez <fperez@colorado.edu>
2932
2939
2933 * IPython/numutils.py (norm): Added 'inf' as optional name for
2940 * IPython/numutils.py (norm): Added 'inf' as optional name for
2934 L-infinity norm, included references to mathworld.com for vector
2941 L-infinity norm, included references to mathworld.com for vector
2935 norm definitions.
2942 norm definitions.
2936 (amin/amax): added amin/amax for array min/max. Similar to what
2943 (amin/amax): added amin/amax for array min/max. Similar to what
2937 pylab ships with after the recent reorganization of names.
2944 pylab ships with after the recent reorganization of names.
2938 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2945 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2939
2946
2940 * ipython.el: committed Alex's recent fixes and improvements.
2947 * ipython.el: committed Alex's recent fixes and improvements.
2941 Tested with python-mode from CVS, and it looks excellent. Since
2948 Tested with python-mode from CVS, and it looks excellent. Since
2942 python-mode hasn't released anything in a while, I'm temporarily
2949 python-mode hasn't released anything in a while, I'm temporarily
2943 putting a copy of today's CVS (v 4.70) of python-mode in:
2950 putting a copy of today's CVS (v 4.70) of python-mode in:
2944 http://ipython.scipy.org/tmp/python-mode.el
2951 http://ipython.scipy.org/tmp/python-mode.el
2945
2952
2946 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2953 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2947 sys.executable for the executable name, instead of assuming it's
2954 sys.executable for the executable name, instead of assuming it's
2948 called 'python.exe' (the post-installer would have produced broken
2955 called 'python.exe' (the post-installer would have produced broken
2949 setups on systems with a differently named python binary).
2956 setups on systems with a differently named python binary).
2950
2957
2951 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2958 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2952 references to os.linesep, to make the code more
2959 references to os.linesep, to make the code more
2953 platform-independent. This is also part of the win32 coloring
2960 platform-independent. This is also part of the win32 coloring
2954 fixes.
2961 fixes.
2955
2962
2956 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2963 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2957 lines, which actually cause coloring bugs because the length of
2964 lines, which actually cause coloring bugs because the length of
2958 the line is very difficult to correctly compute with embedded
2965 the line is very difficult to correctly compute with embedded
2959 escapes. This was the source of all the coloring problems under
2966 escapes. This was the source of all the coloring problems under
2960 Win32. I think that _finally_, Win32 users have a properly
2967 Win32. I think that _finally_, Win32 users have a properly
2961 working ipython in all respects. This would never have happened
2968 working ipython in all respects. This would never have happened
2962 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2969 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2963
2970
2964 2005-01-26 *** Released version 0.6.9
2971 2005-01-26 *** Released version 0.6.9
2965
2972
2966 2005-01-25 Fernando Perez <fperez@colorado.edu>
2973 2005-01-25 Fernando Perez <fperez@colorado.edu>
2967
2974
2968 * setup.py: finally, we have a true Windows installer, thanks to
2975 * setup.py: finally, we have a true Windows installer, thanks to
2969 the excellent work of Viktor Ransmayr
2976 the excellent work of Viktor Ransmayr
2970 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2977 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2971 Windows users. The setup routine is quite a bit cleaner thanks to
2978 Windows users. The setup routine is quite a bit cleaner thanks to
2972 this, and the post-install script uses the proper functions to
2979 this, and the post-install script uses the proper functions to
2973 allow a clean de-installation using the standard Windows Control
2980 allow a clean de-installation using the standard Windows Control
2974 Panel.
2981 Panel.
2975
2982
2976 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2983 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2977 environment variable under all OSes (including win32) if
2984 environment variable under all OSes (including win32) if
2978 available. This will give consistency to win32 users who have set
2985 available. This will give consistency to win32 users who have set
2979 this variable for any reason. If os.environ['HOME'] fails, the
2986 this variable for any reason. If os.environ['HOME'] fails, the
2980 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2987 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2981
2988
2982 2005-01-24 Fernando Perez <fperez@colorado.edu>
2989 2005-01-24 Fernando Perez <fperez@colorado.edu>
2983
2990
2984 * IPython/numutils.py (empty_like): add empty_like(), similar to
2991 * IPython/numutils.py (empty_like): add empty_like(), similar to
2985 zeros_like() but taking advantage of the new empty() Numeric routine.
2992 zeros_like() but taking advantage of the new empty() Numeric routine.
2986
2993
2987 2005-01-23 *** Released version 0.6.8
2994 2005-01-23 *** Released version 0.6.8
2988
2995
2989 2005-01-22 Fernando Perez <fperez@colorado.edu>
2996 2005-01-22 Fernando Perez <fperez@colorado.edu>
2990
2997
2991 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2998 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2992 automatic show() calls. After discussing things with JDH, it
2999 automatic show() calls. After discussing things with JDH, it
2993 turns out there are too many corner cases where this can go wrong.
3000 turns out there are too many corner cases where this can go wrong.
2994 It's best not to try to be 'too smart', and simply have ipython
3001 It's best not to try to be 'too smart', and simply have ipython
2995 reproduce as much as possible the default behavior of a normal
3002 reproduce as much as possible the default behavior of a normal
2996 python shell.
3003 python shell.
2997
3004
2998 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3005 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2999 line-splitting regexp and _prefilter() to avoid calling getattr()
3006 line-splitting regexp and _prefilter() to avoid calling getattr()
3000 on assignments. This closes
3007 on assignments. This closes
3001 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3008 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3002 readline uses getattr(), so a simple <TAB> keypress is still
3009 readline uses getattr(), so a simple <TAB> keypress is still
3003 enough to trigger getattr() calls on an object.
3010 enough to trigger getattr() calls on an object.
3004
3011
3005 2005-01-21 Fernando Perez <fperez@colorado.edu>
3012 2005-01-21 Fernando Perez <fperez@colorado.edu>
3006
3013
3007 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3014 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3008 docstring under pylab so it doesn't mask the original.
3015 docstring under pylab so it doesn't mask the original.
3009
3016
3010 2005-01-21 *** Released version 0.6.7
3017 2005-01-21 *** Released version 0.6.7
3011
3018
3012 2005-01-21 Fernando Perez <fperez@colorado.edu>
3019 2005-01-21 Fernando Perez <fperez@colorado.edu>
3013
3020
3014 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3021 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3015 signal handling for win32 users in multithreaded mode.
3022 signal handling for win32 users in multithreaded mode.
3016
3023
3017 2005-01-17 Fernando Perez <fperez@colorado.edu>
3024 2005-01-17 Fernando Perez <fperez@colorado.edu>
3018
3025
3019 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3026 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3020 instances with no __init__. After a crash report by Norbert Nemec
3027 instances with no __init__. After a crash report by Norbert Nemec
3021 <Norbert-AT-nemec-online.de>.
3028 <Norbert-AT-nemec-online.de>.
3022
3029
3023 2005-01-14 Fernando Perez <fperez@colorado.edu>
3030 2005-01-14 Fernando Perez <fperez@colorado.edu>
3024
3031
3025 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3032 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3026 names for verbose exceptions, when multiple dotted names and the
3033 names for verbose exceptions, when multiple dotted names and the
3027 'parent' object were present on the same line.
3034 'parent' object were present on the same line.
3028
3035
3029 2005-01-11 Fernando Perez <fperez@colorado.edu>
3036 2005-01-11 Fernando Perez <fperez@colorado.edu>
3030
3037
3031 * IPython/genutils.py (flag_calls): new utility to trap and flag
3038 * IPython/genutils.py (flag_calls): new utility to trap and flag
3032 calls in functions. I need it to clean up matplotlib support.
3039 calls in functions. I need it to clean up matplotlib support.
3033 Also removed some deprecated code in genutils.
3040 Also removed some deprecated code in genutils.
3034
3041
3035 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3042 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3036 that matplotlib scripts called with %run, which don't call show()
3043 that matplotlib scripts called with %run, which don't call show()
3037 themselves, still have their plotting windows open.
3044 themselves, still have their plotting windows open.
3038
3045
3039 2005-01-05 Fernando Perez <fperez@colorado.edu>
3046 2005-01-05 Fernando Perez <fperez@colorado.edu>
3040
3047
3041 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3048 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3042 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3049 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3043
3050
3044 2004-12-19 Fernando Perez <fperez@colorado.edu>
3051 2004-12-19 Fernando Perez <fperez@colorado.edu>
3045
3052
3046 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3053 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3047 parent_runcode, which was an eyesore. The same result can be
3054 parent_runcode, which was an eyesore. The same result can be
3048 obtained with Python's regular superclass mechanisms.
3055 obtained with Python's regular superclass mechanisms.
3049
3056
3050 2004-12-17 Fernando Perez <fperez@colorado.edu>
3057 2004-12-17 Fernando Perez <fperez@colorado.edu>
3051
3058
3052 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3059 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3053 reported by Prabhu.
3060 reported by Prabhu.
3054 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3061 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3055 sys.stderr) instead of explicitly calling sys.stderr. This helps
3062 sys.stderr) instead of explicitly calling sys.stderr. This helps
3056 maintain our I/O abstractions clean, for future GUI embeddings.
3063 maintain our I/O abstractions clean, for future GUI embeddings.
3057
3064
3058 * IPython/genutils.py (info): added new utility for sys.stderr
3065 * IPython/genutils.py (info): added new utility for sys.stderr
3059 unified info message handling (thin wrapper around warn()).
3066 unified info message handling (thin wrapper around warn()).
3060
3067
3061 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3068 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3062 composite (dotted) names on verbose exceptions.
3069 composite (dotted) names on verbose exceptions.
3063 (VerboseTB.nullrepr): harden against another kind of errors which
3070 (VerboseTB.nullrepr): harden against another kind of errors which
3064 Python's inspect module can trigger, and which were crashing
3071 Python's inspect module can trigger, and which were crashing
3065 IPython. Thanks to a report by Marco Lombardi
3072 IPython. Thanks to a report by Marco Lombardi
3066 <mlombard-AT-ma010192.hq.eso.org>.
3073 <mlombard-AT-ma010192.hq.eso.org>.
3067
3074
3068 2004-12-13 *** Released version 0.6.6
3075 2004-12-13 *** Released version 0.6.6
3069
3076
3070 2004-12-12 Fernando Perez <fperez@colorado.edu>
3077 2004-12-12 Fernando Perez <fperez@colorado.edu>
3071
3078
3072 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3079 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3073 generated by pygtk upon initialization if it was built without
3080 generated by pygtk upon initialization if it was built without
3074 threads (for matplotlib users). After a crash reported by
3081 threads (for matplotlib users). After a crash reported by
3075 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3082 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3076
3083
3077 * IPython/ipmaker.py (make_IPython): fix small bug in the
3084 * IPython/ipmaker.py (make_IPython): fix small bug in the
3078 import_some parameter for multiple imports.
3085 import_some parameter for multiple imports.
3079
3086
3080 * IPython/iplib.py (ipmagic): simplified the interface of
3087 * IPython/iplib.py (ipmagic): simplified the interface of
3081 ipmagic() to take a single string argument, just as it would be
3088 ipmagic() to take a single string argument, just as it would be
3082 typed at the IPython cmd line.
3089 typed at the IPython cmd line.
3083 (ipalias): Added new ipalias() with an interface identical to
3090 (ipalias): Added new ipalias() with an interface identical to
3084 ipmagic(). This completes exposing a pure python interface to the
3091 ipmagic(). This completes exposing a pure python interface to the
3085 alias and magic system, which can be used in loops or more complex
3092 alias and magic system, which can be used in loops or more complex
3086 code where IPython's automatic line mangling is not active.
3093 code where IPython's automatic line mangling is not active.
3087
3094
3088 * IPython/genutils.py (timing): changed interface of timing to
3095 * IPython/genutils.py (timing): changed interface of timing to
3089 simply run code once, which is the most common case. timings()
3096 simply run code once, which is the most common case. timings()
3090 remains unchanged, for the cases where you want multiple runs.
3097 remains unchanged, for the cases where you want multiple runs.
3091
3098
3092 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3099 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3093 bug where Python2.2 crashes with exec'ing code which does not end
3100 bug where Python2.2 crashes with exec'ing code which does not end
3094 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3101 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3095 before.
3102 before.
3096
3103
3097 2004-12-10 Fernando Perez <fperez@colorado.edu>
3104 2004-12-10 Fernando Perez <fperez@colorado.edu>
3098
3105
3099 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3106 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3100 -t to -T, to accomodate the new -t flag in %run (the %run and
3107 -t to -T, to accomodate the new -t flag in %run (the %run and
3101 %prun options are kind of intermixed, and it's not easy to change
3108 %prun options are kind of intermixed, and it's not easy to change
3102 this with the limitations of python's getopt).
3109 this with the limitations of python's getopt).
3103
3110
3104 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3111 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3105 the execution of scripts. It's not as fine-tuned as timeit.py,
3112 the execution of scripts. It's not as fine-tuned as timeit.py,
3106 but it works from inside ipython (and under 2.2, which lacks
3113 but it works from inside ipython (and under 2.2, which lacks
3107 timeit.py). Optionally a number of runs > 1 can be given for
3114 timeit.py). Optionally a number of runs > 1 can be given for
3108 timing very short-running code.
3115 timing very short-running code.
3109
3116
3110 * IPython/genutils.py (uniq_stable): new routine which returns a
3117 * IPython/genutils.py (uniq_stable): new routine which returns a
3111 list of unique elements in any iterable, but in stable order of
3118 list of unique elements in any iterable, but in stable order of
3112 appearance. I needed this for the ultraTB fixes, and it's a handy
3119 appearance. I needed this for the ultraTB fixes, and it's a handy
3113 utility.
3120 utility.
3114
3121
3115 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3122 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3116 dotted names in Verbose exceptions. This had been broken since
3123 dotted names in Verbose exceptions. This had been broken since
3117 the very start, now x.y will properly be printed in a Verbose
3124 the very start, now x.y will properly be printed in a Verbose
3118 traceback, instead of x being shown and y appearing always as an
3125 traceback, instead of x being shown and y appearing always as an
3119 'undefined global'. Getting this to work was a bit tricky,
3126 'undefined global'. Getting this to work was a bit tricky,
3120 because by default python tokenizers are stateless. Saved by
3127 because by default python tokenizers are stateless. Saved by
3121 python's ability to easily add a bit of state to an arbitrary
3128 python's ability to easily add a bit of state to an arbitrary
3122 function (without needing to build a full-blown callable object).
3129 function (without needing to build a full-blown callable object).
3123
3130
3124 Also big cleanup of this code, which had horrendous runtime
3131 Also big cleanup of this code, which had horrendous runtime
3125 lookups of zillions of attributes for colorization. Moved all
3132 lookups of zillions of attributes for colorization. Moved all
3126 this code into a few templates, which make it cleaner and quicker.
3133 this code into a few templates, which make it cleaner and quicker.
3127
3134
3128 Printout quality was also improved for Verbose exceptions: one
3135 Printout quality was also improved for Verbose exceptions: one
3129 variable per line, and memory addresses are printed (this can be
3136 variable per line, and memory addresses are printed (this can be
3130 quite handy in nasty debugging situations, which is what Verbose
3137 quite handy in nasty debugging situations, which is what Verbose
3131 is for).
3138 is for).
3132
3139
3133 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3140 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3134 the command line as scripts to be loaded by embedded instances.
3141 the command line as scripts to be loaded by embedded instances.
3135 Doing so has the potential for an infinite recursion if there are
3142 Doing so has the potential for an infinite recursion if there are
3136 exceptions thrown in the process. This fixes a strange crash
3143 exceptions thrown in the process. This fixes a strange crash
3137 reported by Philippe MULLER <muller-AT-irit.fr>.
3144 reported by Philippe MULLER <muller-AT-irit.fr>.
3138
3145
3139 2004-12-09 Fernando Perez <fperez@colorado.edu>
3146 2004-12-09 Fernando Perez <fperez@colorado.edu>
3140
3147
3141 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3148 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3142 to reflect new names in matplotlib, which now expose the
3149 to reflect new names in matplotlib, which now expose the
3143 matlab-compatible interface via a pylab module instead of the
3150 matlab-compatible interface via a pylab module instead of the
3144 'matlab' name. The new code is backwards compatible, so users of
3151 'matlab' name. The new code is backwards compatible, so users of
3145 all matplotlib versions are OK. Patch by J. Hunter.
3152 all matplotlib versions are OK. Patch by J. Hunter.
3146
3153
3147 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3154 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3148 of __init__ docstrings for instances (class docstrings are already
3155 of __init__ docstrings for instances (class docstrings are already
3149 automatically printed). Instances with customized docstrings
3156 automatically printed). Instances with customized docstrings
3150 (indep. of the class) are also recognized and all 3 separate
3157 (indep. of the class) are also recognized and all 3 separate
3151 docstrings are printed (instance, class, constructor). After some
3158 docstrings are printed (instance, class, constructor). After some
3152 comments/suggestions by J. Hunter.
3159 comments/suggestions by J. Hunter.
3153
3160
3154 2004-12-05 Fernando Perez <fperez@colorado.edu>
3161 2004-12-05 Fernando Perez <fperez@colorado.edu>
3155
3162
3156 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3163 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3157 warnings when tab-completion fails and triggers an exception.
3164 warnings when tab-completion fails and triggers an exception.
3158
3165
3159 2004-12-03 Fernando Perez <fperez@colorado.edu>
3166 2004-12-03 Fernando Perez <fperez@colorado.edu>
3160
3167
3161 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3168 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3162 be triggered when using 'run -p'. An incorrect option flag was
3169 be triggered when using 'run -p'. An incorrect option flag was
3163 being set ('d' instead of 'D').
3170 being set ('d' instead of 'D').
3164 (manpage): fix missing escaped \- sign.
3171 (manpage): fix missing escaped \- sign.
3165
3172
3166 2004-11-30 *** Released version 0.6.5
3173 2004-11-30 *** Released version 0.6.5
3167
3174
3168 2004-11-30 Fernando Perez <fperez@colorado.edu>
3175 2004-11-30 Fernando Perez <fperez@colorado.edu>
3169
3176
3170 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3177 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3171 setting with -d option.
3178 setting with -d option.
3172
3179
3173 * setup.py (docfiles): Fix problem where the doc glob I was using
3180 * setup.py (docfiles): Fix problem where the doc glob I was using
3174 was COMPLETELY BROKEN. It was giving the right files by pure
3181 was COMPLETELY BROKEN. It was giving the right files by pure
3175 accident, but failed once I tried to include ipython.el. Note:
3182 accident, but failed once I tried to include ipython.el. Note:
3176 glob() does NOT allow you to do exclusion on multiple endings!
3183 glob() does NOT allow you to do exclusion on multiple endings!
3177
3184
3178 2004-11-29 Fernando Perez <fperez@colorado.edu>
3185 2004-11-29 Fernando Perez <fperez@colorado.edu>
3179
3186
3180 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3187 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3181 the manpage as the source. Better formatting & consistency.
3188 the manpage as the source. Better formatting & consistency.
3182
3189
3183 * IPython/Magic.py (magic_run): Added new -d option, to run
3190 * IPython/Magic.py (magic_run): Added new -d option, to run
3184 scripts under the control of the python pdb debugger. Note that
3191 scripts under the control of the python pdb debugger. Note that
3185 this required changing the %prun option -d to -D, to avoid a clash
3192 this required changing the %prun option -d to -D, to avoid a clash
3186 (since %run must pass options to %prun, and getopt is too dumb to
3193 (since %run must pass options to %prun, and getopt is too dumb to
3187 handle options with string values with embedded spaces). Thanks
3194 handle options with string values with embedded spaces). Thanks
3188 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3195 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3189 (magic_who_ls): added type matching to %who and %whos, so that one
3196 (magic_who_ls): added type matching to %who and %whos, so that one
3190 can filter their output to only include variables of certain
3197 can filter their output to only include variables of certain
3191 types. Another suggestion by Matthew.
3198 types. Another suggestion by Matthew.
3192 (magic_whos): Added memory summaries in kb and Mb for arrays.
3199 (magic_whos): Added memory summaries in kb and Mb for arrays.
3193 (magic_who): Improve formatting (break lines every 9 vars).
3200 (magic_who): Improve formatting (break lines every 9 vars).
3194
3201
3195 2004-11-28 Fernando Perez <fperez@colorado.edu>
3202 2004-11-28 Fernando Perez <fperez@colorado.edu>
3196
3203
3197 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3204 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3198 cache when empty lines were present.
3205 cache when empty lines were present.
3199
3206
3200 2004-11-24 Fernando Perez <fperez@colorado.edu>
3207 2004-11-24 Fernando Perez <fperez@colorado.edu>
3201
3208
3202 * IPython/usage.py (__doc__): document the re-activated threading
3209 * IPython/usage.py (__doc__): document the re-activated threading
3203 options for WX and GTK.
3210 options for WX and GTK.
3204
3211
3205 2004-11-23 Fernando Perez <fperez@colorado.edu>
3212 2004-11-23 Fernando Perez <fperez@colorado.edu>
3206
3213
3207 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3214 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3208 the -wthread and -gthread options, along with a new -tk one to try
3215 the -wthread and -gthread options, along with a new -tk one to try
3209 and coordinate Tk threading with wx/gtk. The tk support is very
3216 and coordinate Tk threading with wx/gtk. The tk support is very
3210 platform dependent, since it seems to require Tcl and Tk to be
3217 platform dependent, since it seems to require Tcl and Tk to be
3211 built with threads (Fedora1/2 appears NOT to have it, but in
3218 built with threads (Fedora1/2 appears NOT to have it, but in
3212 Prabhu's Debian boxes it works OK). But even with some Tk
3219 Prabhu's Debian boxes it works OK). But even with some Tk
3213 limitations, this is a great improvement.
3220 limitations, this is a great improvement.
3214
3221
3215 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3222 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3216 info in user prompts. Patch by Prabhu.
3223 info in user prompts. Patch by Prabhu.
3217
3224
3218 2004-11-18 Fernando Perez <fperez@colorado.edu>
3225 2004-11-18 Fernando Perez <fperez@colorado.edu>
3219
3226
3220 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3227 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3221 EOFErrors and bail, to avoid infinite loops if a non-terminating
3228 EOFErrors and bail, to avoid infinite loops if a non-terminating
3222 file is fed into ipython. Patch submitted in issue 19 by user,
3229 file is fed into ipython. Patch submitted in issue 19 by user,
3223 many thanks.
3230 many thanks.
3224
3231
3225 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3232 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3226 autoquote/parens in continuation prompts, which can cause lots of
3233 autoquote/parens in continuation prompts, which can cause lots of
3227 problems. Closes roundup issue 20.
3234 problems. Closes roundup issue 20.
3228
3235
3229 2004-11-17 Fernando Perez <fperez@colorado.edu>
3236 2004-11-17 Fernando Perez <fperez@colorado.edu>
3230
3237
3231 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3238 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3232 reported as debian bug #280505. I'm not sure my local changelog
3239 reported as debian bug #280505. I'm not sure my local changelog
3233 entry has the proper debian format (Jack?).
3240 entry has the proper debian format (Jack?).
3234
3241
3235 2004-11-08 *** Released version 0.6.4
3242 2004-11-08 *** Released version 0.6.4
3236
3243
3237 2004-11-08 Fernando Perez <fperez@colorado.edu>
3244 2004-11-08 Fernando Perez <fperez@colorado.edu>
3238
3245
3239 * IPython/iplib.py (init_readline): Fix exit message for Windows
3246 * IPython/iplib.py (init_readline): Fix exit message for Windows
3240 when readline is active. Thanks to a report by Eric Jones
3247 when readline is active. Thanks to a report by Eric Jones
3241 <eric-AT-enthought.com>.
3248 <eric-AT-enthought.com>.
3242
3249
3243 2004-11-07 Fernando Perez <fperez@colorado.edu>
3250 2004-11-07 Fernando Perez <fperez@colorado.edu>
3244
3251
3245 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3252 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3246 sometimes seen by win2k/cygwin users.
3253 sometimes seen by win2k/cygwin users.
3247
3254
3248 2004-11-06 Fernando Perez <fperez@colorado.edu>
3255 2004-11-06 Fernando Perez <fperez@colorado.edu>
3249
3256
3250 * IPython/iplib.py (interact): Change the handling of %Exit from
3257 * IPython/iplib.py (interact): Change the handling of %Exit from
3251 trying to propagate a SystemExit to an internal ipython flag.
3258 trying to propagate a SystemExit to an internal ipython flag.
3252 This is less elegant than using Python's exception mechanism, but
3259 This is less elegant than using Python's exception mechanism, but
3253 I can't get that to work reliably with threads, so under -pylab
3260 I can't get that to work reliably with threads, so under -pylab
3254 %Exit was hanging IPython. Cross-thread exception handling is
3261 %Exit was hanging IPython. Cross-thread exception handling is
3255 really a bitch. Thaks to a bug report by Stephen Walton
3262 really a bitch. Thaks to a bug report by Stephen Walton
3256 <stephen.walton-AT-csun.edu>.
3263 <stephen.walton-AT-csun.edu>.
3257
3264
3258 2004-11-04 Fernando Perez <fperez@colorado.edu>
3265 2004-11-04 Fernando Perez <fperez@colorado.edu>
3259
3266
3260 * IPython/iplib.py (raw_input_original): store a pointer to the
3267 * IPython/iplib.py (raw_input_original): store a pointer to the
3261 true raw_input to harden against code which can modify it
3268 true raw_input to harden against code which can modify it
3262 (wx.py.PyShell does this and would otherwise crash ipython).
3269 (wx.py.PyShell does this and would otherwise crash ipython).
3263 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3270 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3264
3271
3265 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3272 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3266 Ctrl-C problem, which does not mess up the input line.
3273 Ctrl-C problem, which does not mess up the input line.
3267
3274
3268 2004-11-03 Fernando Perez <fperez@colorado.edu>
3275 2004-11-03 Fernando Perez <fperez@colorado.edu>
3269
3276
3270 * IPython/Release.py: Changed licensing to BSD, in all files.
3277 * IPython/Release.py: Changed licensing to BSD, in all files.
3271 (name): lowercase name for tarball/RPM release.
3278 (name): lowercase name for tarball/RPM release.
3272
3279
3273 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3280 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3274 use throughout ipython.
3281 use throughout ipython.
3275
3282
3276 * IPython/Magic.py (Magic._ofind): Switch to using the new
3283 * IPython/Magic.py (Magic._ofind): Switch to using the new
3277 OInspect.getdoc() function.
3284 OInspect.getdoc() function.
3278
3285
3279 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3286 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3280 of the line currently being canceled via Ctrl-C. It's extremely
3287 of the line currently being canceled via Ctrl-C. It's extremely
3281 ugly, but I don't know how to do it better (the problem is one of
3288 ugly, but I don't know how to do it better (the problem is one of
3282 handling cross-thread exceptions).
3289 handling cross-thread exceptions).
3283
3290
3284 2004-10-28 Fernando Perez <fperez@colorado.edu>
3291 2004-10-28 Fernando Perez <fperez@colorado.edu>
3285
3292
3286 * IPython/Shell.py (signal_handler): add signal handlers to trap
3293 * IPython/Shell.py (signal_handler): add signal handlers to trap
3287 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3294 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3288 report by Francesc Alted.
3295 report by Francesc Alted.
3289
3296
3290 2004-10-21 Fernando Perez <fperez@colorado.edu>
3297 2004-10-21 Fernando Perez <fperez@colorado.edu>
3291
3298
3292 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3299 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3293 to % for pysh syntax extensions.
3300 to % for pysh syntax extensions.
3294
3301
3295 2004-10-09 Fernando Perez <fperez@colorado.edu>
3302 2004-10-09 Fernando Perez <fperez@colorado.edu>
3296
3303
3297 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3304 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3298 arrays to print a more useful summary, without calling str(arr).
3305 arrays to print a more useful summary, without calling str(arr).
3299 This avoids the problem of extremely lengthy computations which
3306 This avoids the problem of extremely lengthy computations which
3300 occur if arr is large, and appear to the user as a system lockup
3307 occur if arr is large, and appear to the user as a system lockup
3301 with 100% cpu activity. After a suggestion by Kristian Sandberg
3308 with 100% cpu activity. After a suggestion by Kristian Sandberg
3302 <Kristian.Sandberg@colorado.edu>.
3309 <Kristian.Sandberg@colorado.edu>.
3303 (Magic.__init__): fix bug in global magic escapes not being
3310 (Magic.__init__): fix bug in global magic escapes not being
3304 correctly set.
3311 correctly set.
3305
3312
3306 2004-10-08 Fernando Perez <fperez@colorado.edu>
3313 2004-10-08 Fernando Perez <fperez@colorado.edu>
3307
3314
3308 * IPython/Magic.py (__license__): change to absolute imports of
3315 * IPython/Magic.py (__license__): change to absolute imports of
3309 ipython's own internal packages, to start adapting to the absolute
3316 ipython's own internal packages, to start adapting to the absolute
3310 import requirement of PEP-328.
3317 import requirement of PEP-328.
3311
3318
3312 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3319 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3313 files, and standardize author/license marks through the Release
3320 files, and standardize author/license marks through the Release
3314 module instead of having per/file stuff (except for files with
3321 module instead of having per/file stuff (except for files with
3315 particular licenses, like the MIT/PSF-licensed codes).
3322 particular licenses, like the MIT/PSF-licensed codes).
3316
3323
3317 * IPython/Debugger.py: remove dead code for python 2.1
3324 * IPython/Debugger.py: remove dead code for python 2.1
3318
3325
3319 2004-10-04 Fernando Perez <fperez@colorado.edu>
3326 2004-10-04 Fernando Perez <fperez@colorado.edu>
3320
3327
3321 * IPython/iplib.py (ipmagic): New function for accessing magics
3328 * IPython/iplib.py (ipmagic): New function for accessing magics
3322 via a normal python function call.
3329 via a normal python function call.
3323
3330
3324 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3331 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3325 from '@' to '%', to accomodate the new @decorator syntax of python
3332 from '@' to '%', to accomodate the new @decorator syntax of python
3326 2.4.
3333 2.4.
3327
3334
3328 2004-09-29 Fernando Perez <fperez@colorado.edu>
3335 2004-09-29 Fernando Perez <fperez@colorado.edu>
3329
3336
3330 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3337 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3331 matplotlib.use to prevent running scripts which try to switch
3338 matplotlib.use to prevent running scripts which try to switch
3332 interactive backends from within ipython. This will just crash
3339 interactive backends from within ipython. This will just crash
3333 the python interpreter, so we can't allow it (but a detailed error
3340 the python interpreter, so we can't allow it (but a detailed error
3334 is given to the user).
3341 is given to the user).
3335
3342
3336 2004-09-28 Fernando Perez <fperez@colorado.edu>
3343 2004-09-28 Fernando Perez <fperez@colorado.edu>
3337
3344
3338 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3345 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3339 matplotlib-related fixes so that using @run with non-matplotlib
3346 matplotlib-related fixes so that using @run with non-matplotlib
3340 scripts doesn't pop up spurious plot windows. This requires
3347 scripts doesn't pop up spurious plot windows. This requires
3341 matplotlib >= 0.63, where I had to make some changes as well.
3348 matplotlib >= 0.63, where I had to make some changes as well.
3342
3349
3343 * IPython/ipmaker.py (make_IPython): update version requirement to
3350 * IPython/ipmaker.py (make_IPython): update version requirement to
3344 python 2.2.
3351 python 2.2.
3345
3352
3346 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3353 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3347 banner arg for embedded customization.
3354 banner arg for embedded customization.
3348
3355
3349 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3356 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3350 explicit uses of __IP as the IPython's instance name. Now things
3357 explicit uses of __IP as the IPython's instance name. Now things
3351 are properly handled via the shell.name value. The actual code
3358 are properly handled via the shell.name value. The actual code
3352 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3359 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3353 is much better than before. I'll clean things completely when the
3360 is much better than before. I'll clean things completely when the
3354 magic stuff gets a real overhaul.
3361 magic stuff gets a real overhaul.
3355
3362
3356 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3363 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3357 minor changes to debian dir.
3364 minor changes to debian dir.
3358
3365
3359 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3366 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3360 pointer to the shell itself in the interactive namespace even when
3367 pointer to the shell itself in the interactive namespace even when
3361 a user-supplied dict is provided. This is needed for embedding
3368 a user-supplied dict is provided. This is needed for embedding
3362 purposes (found by tests with Michel Sanner).
3369 purposes (found by tests with Michel Sanner).
3363
3370
3364 2004-09-27 Fernando Perez <fperez@colorado.edu>
3371 2004-09-27 Fernando Perez <fperez@colorado.edu>
3365
3372
3366 * IPython/UserConfig/ipythonrc: remove []{} from
3373 * IPython/UserConfig/ipythonrc: remove []{} from
3367 readline_remove_delims, so that things like [modname.<TAB> do
3374 readline_remove_delims, so that things like [modname.<TAB> do
3368 proper completion. This disables [].TAB, but that's a less common
3375 proper completion. This disables [].TAB, but that's a less common
3369 case than module names in list comprehensions, for example.
3376 case than module names in list comprehensions, for example.
3370 Thanks to a report by Andrea Riciputi.
3377 Thanks to a report by Andrea Riciputi.
3371
3378
3372 2004-09-09 Fernando Perez <fperez@colorado.edu>
3379 2004-09-09 Fernando Perez <fperez@colorado.edu>
3373
3380
3374 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3381 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3375 blocking problems in win32 and osx. Fix by John.
3382 blocking problems in win32 and osx. Fix by John.
3376
3383
3377 2004-09-08 Fernando Perez <fperez@colorado.edu>
3384 2004-09-08 Fernando Perez <fperez@colorado.edu>
3378
3385
3379 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3386 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3380 for Win32 and OSX. Fix by John Hunter.
3387 for Win32 and OSX. Fix by John Hunter.
3381
3388
3382 2004-08-30 *** Released version 0.6.3
3389 2004-08-30 *** Released version 0.6.3
3383
3390
3384 2004-08-30 Fernando Perez <fperez@colorado.edu>
3391 2004-08-30 Fernando Perez <fperez@colorado.edu>
3385
3392
3386 * setup.py (isfile): Add manpages to list of dependent files to be
3393 * setup.py (isfile): Add manpages to list of dependent files to be
3387 updated.
3394 updated.
3388
3395
3389 2004-08-27 Fernando Perez <fperez@colorado.edu>
3396 2004-08-27 Fernando Perez <fperez@colorado.edu>
3390
3397
3391 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3398 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3392 for now. They don't really work with standalone WX/GTK code
3399 for now. They don't really work with standalone WX/GTK code
3393 (though matplotlib IS working fine with both of those backends).
3400 (though matplotlib IS working fine with both of those backends).
3394 This will neeed much more testing. I disabled most things with
3401 This will neeed much more testing. I disabled most things with
3395 comments, so turning it back on later should be pretty easy.
3402 comments, so turning it back on later should be pretty easy.
3396
3403
3397 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3404 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3398 autocalling of expressions like r'foo', by modifying the line
3405 autocalling of expressions like r'foo', by modifying the line
3399 split regexp. Closes
3406 split regexp. Closes
3400 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3407 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3401 Riley <ipythonbugs-AT-sabi.net>.
3408 Riley <ipythonbugs-AT-sabi.net>.
3402 (InteractiveShell.mainloop): honor --nobanner with banner
3409 (InteractiveShell.mainloop): honor --nobanner with banner
3403 extensions.
3410 extensions.
3404
3411
3405 * IPython/Shell.py: Significant refactoring of all classes, so
3412 * IPython/Shell.py: Significant refactoring of all classes, so
3406 that we can really support ALL matplotlib backends and threading
3413 that we can really support ALL matplotlib backends and threading
3407 models (John spotted a bug with Tk which required this). Now we
3414 models (John spotted a bug with Tk which required this). Now we
3408 should support single-threaded, WX-threads and GTK-threads, both
3415 should support single-threaded, WX-threads and GTK-threads, both
3409 for generic code and for matplotlib.
3416 for generic code and for matplotlib.
3410
3417
3411 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3418 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3412 -pylab, to simplify things for users. Will also remove the pylab
3419 -pylab, to simplify things for users. Will also remove the pylab
3413 profile, since now all of matplotlib configuration is directly
3420 profile, since now all of matplotlib configuration is directly
3414 handled here. This also reduces startup time.
3421 handled here. This also reduces startup time.
3415
3422
3416 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3423 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3417 shell wasn't being correctly called. Also in IPShellWX.
3424 shell wasn't being correctly called. Also in IPShellWX.
3418
3425
3419 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3426 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3420 fine-tune banner.
3427 fine-tune banner.
3421
3428
3422 * IPython/numutils.py (spike): Deprecate these spike functions,
3429 * IPython/numutils.py (spike): Deprecate these spike functions,
3423 delete (long deprecated) gnuplot_exec handler.
3430 delete (long deprecated) gnuplot_exec handler.
3424
3431
3425 2004-08-26 Fernando Perez <fperez@colorado.edu>
3432 2004-08-26 Fernando Perez <fperez@colorado.edu>
3426
3433
3427 * ipython.1: Update for threading options, plus some others which
3434 * ipython.1: Update for threading options, plus some others which
3428 were missing.
3435 were missing.
3429
3436
3430 * IPython/ipmaker.py (__call__): Added -wthread option for
3437 * IPython/ipmaker.py (__call__): Added -wthread option for
3431 wxpython thread handling. Make sure threading options are only
3438 wxpython thread handling. Make sure threading options are only
3432 valid at the command line.
3439 valid at the command line.
3433
3440
3434 * scripts/ipython: moved shell selection into a factory function
3441 * scripts/ipython: moved shell selection into a factory function
3435 in Shell.py, to keep the starter script to a minimum.
3442 in Shell.py, to keep the starter script to a minimum.
3436
3443
3437 2004-08-25 Fernando Perez <fperez@colorado.edu>
3444 2004-08-25 Fernando Perez <fperez@colorado.edu>
3438
3445
3439 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3446 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3440 John. Along with some recent changes he made to matplotlib, the
3447 John. Along with some recent changes he made to matplotlib, the
3441 next versions of both systems should work very well together.
3448 next versions of both systems should work very well together.
3442
3449
3443 2004-08-24 Fernando Perez <fperez@colorado.edu>
3450 2004-08-24 Fernando Perez <fperez@colorado.edu>
3444
3451
3445 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3452 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3446 tried to switch the profiling to using hotshot, but I'm getting
3453 tried to switch the profiling to using hotshot, but I'm getting
3447 strange errors from prof.runctx() there. I may be misreading the
3454 strange errors from prof.runctx() there. I may be misreading the
3448 docs, but it looks weird. For now the profiling code will
3455 docs, but it looks weird. For now the profiling code will
3449 continue to use the standard profiler.
3456 continue to use the standard profiler.
3450
3457
3451 2004-08-23 Fernando Perez <fperez@colorado.edu>
3458 2004-08-23 Fernando Perez <fperez@colorado.edu>
3452
3459
3453 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3460 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3454 threaded shell, by John Hunter. It's not quite ready yet, but
3461 threaded shell, by John Hunter. It's not quite ready yet, but
3455 close.
3462 close.
3456
3463
3457 2004-08-22 Fernando Perez <fperez@colorado.edu>
3464 2004-08-22 Fernando Perez <fperez@colorado.edu>
3458
3465
3459 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3466 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3460 in Magic and ultraTB.
3467 in Magic and ultraTB.
3461
3468
3462 * ipython.1: document threading options in manpage.
3469 * ipython.1: document threading options in manpage.
3463
3470
3464 * scripts/ipython: Changed name of -thread option to -gthread,
3471 * scripts/ipython: Changed name of -thread option to -gthread,
3465 since this is GTK specific. I want to leave the door open for a
3472 since this is GTK specific. I want to leave the door open for a
3466 -wthread option for WX, which will most likely be necessary. This
3473 -wthread option for WX, which will most likely be necessary. This
3467 change affects usage and ipmaker as well.
3474 change affects usage and ipmaker as well.
3468
3475
3469 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3476 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3470 handle the matplotlib shell issues. Code by John Hunter
3477 handle the matplotlib shell issues. Code by John Hunter
3471 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3478 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3472 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3479 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3473 broken (and disabled for end users) for now, but it puts the
3480 broken (and disabled for end users) for now, but it puts the
3474 infrastructure in place.
3481 infrastructure in place.
3475
3482
3476 2004-08-21 Fernando Perez <fperez@colorado.edu>
3483 2004-08-21 Fernando Perez <fperez@colorado.edu>
3477
3484
3478 * ipythonrc-pylab: Add matplotlib support.
3485 * ipythonrc-pylab: Add matplotlib support.
3479
3486
3480 * matplotlib_config.py: new files for matplotlib support, part of
3487 * matplotlib_config.py: new files for matplotlib support, part of
3481 the pylab profile.
3488 the pylab profile.
3482
3489
3483 * IPython/usage.py (__doc__): documented the threading options.
3490 * IPython/usage.py (__doc__): documented the threading options.
3484
3491
3485 2004-08-20 Fernando Perez <fperez@colorado.edu>
3492 2004-08-20 Fernando Perez <fperez@colorado.edu>
3486
3493
3487 * ipython: Modified the main calling routine to handle the -thread
3494 * ipython: Modified the main calling routine to handle the -thread
3488 and -mpthread options. This needs to be done as a top-level hack,
3495 and -mpthread options. This needs to be done as a top-level hack,
3489 because it determines which class to instantiate for IPython
3496 because it determines which class to instantiate for IPython
3490 itself.
3497 itself.
3491
3498
3492 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3499 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3493 classes to support multithreaded GTK operation without blocking,
3500 classes to support multithreaded GTK operation without blocking,
3494 and matplotlib with all backends. This is a lot of still very
3501 and matplotlib with all backends. This is a lot of still very
3495 experimental code, and threads are tricky. So it may still have a
3502 experimental code, and threads are tricky. So it may still have a
3496 few rough edges... This code owes a lot to
3503 few rough edges... This code owes a lot to
3497 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3504 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3498 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3505 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3499 to John Hunter for all the matplotlib work.
3506 to John Hunter for all the matplotlib work.
3500
3507
3501 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3508 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3502 options for gtk thread and matplotlib support.
3509 options for gtk thread and matplotlib support.
3503
3510
3504 2004-08-16 Fernando Perez <fperez@colorado.edu>
3511 2004-08-16 Fernando Perez <fperez@colorado.edu>
3505
3512
3506 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3513 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3507 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3514 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3508 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3515 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3509
3516
3510 2004-08-11 Fernando Perez <fperez@colorado.edu>
3517 2004-08-11 Fernando Perez <fperez@colorado.edu>
3511
3518
3512 * setup.py (isfile): Fix build so documentation gets updated for
3519 * setup.py (isfile): Fix build so documentation gets updated for
3513 rpms (it was only done for .tgz builds).
3520 rpms (it was only done for .tgz builds).
3514
3521
3515 2004-08-10 Fernando Perez <fperez@colorado.edu>
3522 2004-08-10 Fernando Perez <fperez@colorado.edu>
3516
3523
3517 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3524 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3518
3525
3519 * iplib.py : Silence syntax error exceptions in tab-completion.
3526 * iplib.py : Silence syntax error exceptions in tab-completion.
3520
3527
3521 2004-08-05 Fernando Perez <fperez@colorado.edu>
3528 2004-08-05 Fernando Perez <fperez@colorado.edu>
3522
3529
3523 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3530 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3524 'color off' mark for continuation prompts. This was causing long
3531 'color off' mark for continuation prompts. This was causing long
3525 continuation lines to mis-wrap.
3532 continuation lines to mis-wrap.
3526
3533
3527 2004-08-01 Fernando Perez <fperez@colorado.edu>
3534 2004-08-01 Fernando Perez <fperez@colorado.edu>
3528
3535
3529 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3536 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3530 for building ipython to be a parameter. All this is necessary
3537 for building ipython to be a parameter. All this is necessary
3531 right now to have a multithreaded version, but this insane
3538 right now to have a multithreaded version, but this insane
3532 non-design will be cleaned up soon. For now, it's a hack that
3539 non-design will be cleaned up soon. For now, it's a hack that
3533 works.
3540 works.
3534
3541
3535 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3542 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3536 args in various places. No bugs so far, but it's a dangerous
3543 args in various places. No bugs so far, but it's a dangerous
3537 practice.
3544 practice.
3538
3545
3539 2004-07-31 Fernando Perez <fperez@colorado.edu>
3546 2004-07-31 Fernando Perez <fperez@colorado.edu>
3540
3547
3541 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3548 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3542 fix completion of files with dots in their names under most
3549 fix completion of files with dots in their names under most
3543 profiles (pysh was OK because the completion order is different).
3550 profiles (pysh was OK because the completion order is different).
3544
3551
3545 2004-07-27 Fernando Perez <fperez@colorado.edu>
3552 2004-07-27 Fernando Perez <fperez@colorado.edu>
3546
3553
3547 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3554 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3548 keywords manually, b/c the one in keyword.py was removed in python
3555 keywords manually, b/c the one in keyword.py was removed in python
3549 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3556 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3550 This is NOT a bug under python 2.3 and earlier.
3557 This is NOT a bug under python 2.3 and earlier.
3551
3558
3552 2004-07-26 Fernando Perez <fperez@colorado.edu>
3559 2004-07-26 Fernando Perez <fperez@colorado.edu>
3553
3560
3554 * IPython/ultraTB.py (VerboseTB.text): Add another
3561 * IPython/ultraTB.py (VerboseTB.text): Add another
3555 linecache.checkcache() call to try to prevent inspect.py from
3562 linecache.checkcache() call to try to prevent inspect.py from
3556 crashing under python 2.3. I think this fixes
3563 crashing under python 2.3. I think this fixes
3557 http://www.scipy.net/roundup/ipython/issue17.
3564 http://www.scipy.net/roundup/ipython/issue17.
3558
3565
3559 2004-07-26 *** Released version 0.6.2
3566 2004-07-26 *** Released version 0.6.2
3560
3567
3561 2004-07-26 Fernando Perez <fperez@colorado.edu>
3568 2004-07-26 Fernando Perez <fperez@colorado.edu>
3562
3569
3563 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3570 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3564 fail for any number.
3571 fail for any number.
3565 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3572 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3566 empty bookmarks.
3573 empty bookmarks.
3567
3574
3568 2004-07-26 *** Released version 0.6.1
3575 2004-07-26 *** Released version 0.6.1
3569
3576
3570 2004-07-26 Fernando Perez <fperez@colorado.edu>
3577 2004-07-26 Fernando Perez <fperez@colorado.edu>
3571
3578
3572 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3579 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3573
3580
3574 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3581 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3575 escaping '()[]{}' in filenames.
3582 escaping '()[]{}' in filenames.
3576
3583
3577 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3584 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3578 Python 2.2 users who lack a proper shlex.split.
3585 Python 2.2 users who lack a proper shlex.split.
3579
3586
3580 2004-07-19 Fernando Perez <fperez@colorado.edu>
3587 2004-07-19 Fernando Perez <fperez@colorado.edu>
3581
3588
3582 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3589 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3583 for reading readline's init file. I follow the normal chain:
3590 for reading readline's init file. I follow the normal chain:
3584 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3591 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3585 report by Mike Heeter. This closes
3592 report by Mike Heeter. This closes
3586 http://www.scipy.net/roundup/ipython/issue16.
3593 http://www.scipy.net/roundup/ipython/issue16.
3587
3594
3588 2004-07-18 Fernando Perez <fperez@colorado.edu>
3595 2004-07-18 Fernando Perez <fperez@colorado.edu>
3589
3596
3590 * IPython/iplib.py (__init__): Add better handling of '\' under
3597 * IPython/iplib.py (__init__): Add better handling of '\' under
3591 Win32 for filenames. After a patch by Ville.
3598 Win32 for filenames. After a patch by Ville.
3592
3599
3593 2004-07-17 Fernando Perez <fperez@colorado.edu>
3600 2004-07-17 Fernando Perez <fperez@colorado.edu>
3594
3601
3595 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3602 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3596 autocalling would be triggered for 'foo is bar' if foo is
3603 autocalling would be triggered for 'foo is bar' if foo is
3597 callable. I also cleaned up the autocall detection code to use a
3604 callable. I also cleaned up the autocall detection code to use a
3598 regexp, which is faster. Bug reported by Alexander Schmolck.
3605 regexp, which is faster. Bug reported by Alexander Schmolck.
3599
3606
3600 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3607 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3601 '?' in them would confuse the help system. Reported by Alex
3608 '?' in them would confuse the help system. Reported by Alex
3602 Schmolck.
3609 Schmolck.
3603
3610
3604 2004-07-16 Fernando Perez <fperez@colorado.edu>
3611 2004-07-16 Fernando Perez <fperez@colorado.edu>
3605
3612
3606 * IPython/GnuplotInteractive.py (__all__): added plot2.
3613 * IPython/GnuplotInteractive.py (__all__): added plot2.
3607
3614
3608 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3615 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3609 plotting dictionaries, lists or tuples of 1d arrays.
3616 plotting dictionaries, lists or tuples of 1d arrays.
3610
3617
3611 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3618 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3612 optimizations.
3619 optimizations.
3613
3620
3614 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3621 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3615 the information which was there from Janko's original IPP code:
3622 the information which was there from Janko's original IPP code:
3616
3623
3617 03.05.99 20:53 porto.ifm.uni-kiel.de
3624 03.05.99 20:53 porto.ifm.uni-kiel.de
3618 --Started changelog.
3625 --Started changelog.
3619 --make clear do what it say it does
3626 --make clear do what it say it does
3620 --added pretty output of lines from inputcache
3627 --added pretty output of lines from inputcache
3621 --Made Logger a mixin class, simplifies handling of switches
3628 --Made Logger a mixin class, simplifies handling of switches
3622 --Added own completer class. .string<TAB> expands to last history
3629 --Added own completer class. .string<TAB> expands to last history
3623 line which starts with string. The new expansion is also present
3630 line which starts with string. The new expansion is also present
3624 with Ctrl-r from the readline library. But this shows, who this
3631 with Ctrl-r from the readline library. But this shows, who this
3625 can be done for other cases.
3632 can be done for other cases.
3626 --Added convention that all shell functions should accept a
3633 --Added convention that all shell functions should accept a
3627 parameter_string This opens the door for different behaviour for
3634 parameter_string This opens the door for different behaviour for
3628 each function. @cd is a good example of this.
3635 each function. @cd is a good example of this.
3629
3636
3630 04.05.99 12:12 porto.ifm.uni-kiel.de
3637 04.05.99 12:12 porto.ifm.uni-kiel.de
3631 --added logfile rotation
3638 --added logfile rotation
3632 --added new mainloop method which freezes first the namespace
3639 --added new mainloop method which freezes first the namespace
3633
3640
3634 07.05.99 21:24 porto.ifm.uni-kiel.de
3641 07.05.99 21:24 porto.ifm.uni-kiel.de
3635 --added the docreader classes. Now there is a help system.
3642 --added the docreader classes. Now there is a help system.
3636 -This is only a first try. Currently it's not easy to put new
3643 -This is only a first try. Currently it's not easy to put new
3637 stuff in the indices. But this is the way to go. Info would be
3644 stuff in the indices. But this is the way to go. Info would be
3638 better, but HTML is every where and not everybody has an info
3645 better, but HTML is every where and not everybody has an info
3639 system installed and it's not so easy to change html-docs to info.
3646 system installed and it's not so easy to change html-docs to info.
3640 --added global logfile option
3647 --added global logfile option
3641 --there is now a hook for object inspection method pinfo needs to
3648 --there is now a hook for object inspection method pinfo needs to
3642 be provided for this. Can be reached by two '??'.
3649 be provided for this. Can be reached by two '??'.
3643
3650
3644 08.05.99 20:51 porto.ifm.uni-kiel.de
3651 08.05.99 20:51 porto.ifm.uni-kiel.de
3645 --added a README
3652 --added a README
3646 --bug in rc file. Something has changed so functions in the rc
3653 --bug in rc file. Something has changed so functions in the rc
3647 file need to reference the shell and not self. Not clear if it's a
3654 file need to reference the shell and not self. Not clear if it's a
3648 bug or feature.
3655 bug or feature.
3649 --changed rc file for new behavior
3656 --changed rc file for new behavior
3650
3657
3651 2004-07-15 Fernando Perez <fperez@colorado.edu>
3658 2004-07-15 Fernando Perez <fperez@colorado.edu>
3652
3659
3653 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3660 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3654 cache was falling out of sync in bizarre manners when multi-line
3661 cache was falling out of sync in bizarre manners when multi-line
3655 input was present. Minor optimizations and cleanup.
3662 input was present. Minor optimizations and cleanup.
3656
3663
3657 (Logger): Remove old Changelog info for cleanup. This is the
3664 (Logger): Remove old Changelog info for cleanup. This is the
3658 information which was there from Janko's original code:
3665 information which was there from Janko's original code:
3659
3666
3660 Changes to Logger: - made the default log filename a parameter
3667 Changes to Logger: - made the default log filename a parameter
3661
3668
3662 - put a check for lines beginning with !@? in log(). Needed
3669 - put a check for lines beginning with !@? in log(). Needed
3663 (even if the handlers properly log their lines) for mid-session
3670 (even if the handlers properly log their lines) for mid-session
3664 logging activation to work properly. Without this, lines logged
3671 logging activation to work properly. Without this, lines logged
3665 in mid session, which get read from the cache, would end up
3672 in mid session, which get read from the cache, would end up
3666 'bare' (with !@? in the open) in the log. Now they are caught
3673 'bare' (with !@? in the open) in the log. Now they are caught
3667 and prepended with a #.
3674 and prepended with a #.
3668
3675
3669 * IPython/iplib.py (InteractiveShell.init_readline): added check
3676 * IPython/iplib.py (InteractiveShell.init_readline): added check
3670 in case MagicCompleter fails to be defined, so we don't crash.
3677 in case MagicCompleter fails to be defined, so we don't crash.
3671
3678
3672 2004-07-13 Fernando Perez <fperez@colorado.edu>
3679 2004-07-13 Fernando Perez <fperez@colorado.edu>
3673
3680
3674 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3681 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3675 of EPS if the requested filename ends in '.eps'.
3682 of EPS if the requested filename ends in '.eps'.
3676
3683
3677 2004-07-04 Fernando Perez <fperez@colorado.edu>
3684 2004-07-04 Fernando Perez <fperez@colorado.edu>
3678
3685
3679 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3686 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3680 escaping of quotes when calling the shell.
3687 escaping of quotes when calling the shell.
3681
3688
3682 2004-07-02 Fernando Perez <fperez@colorado.edu>
3689 2004-07-02 Fernando Perez <fperez@colorado.edu>
3683
3690
3684 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3691 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3685 gettext not working because we were clobbering '_'. Fixes
3692 gettext not working because we were clobbering '_'. Fixes
3686 http://www.scipy.net/roundup/ipython/issue6.
3693 http://www.scipy.net/roundup/ipython/issue6.
3687
3694
3688 2004-07-01 Fernando Perez <fperez@colorado.edu>
3695 2004-07-01 Fernando Perez <fperez@colorado.edu>
3689
3696
3690 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3697 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3691 into @cd. Patch by Ville.
3698 into @cd. Patch by Ville.
3692
3699
3693 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3700 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3694 new function to store things after ipmaker runs. Patch by Ville.
3701 new function to store things after ipmaker runs. Patch by Ville.
3695 Eventually this will go away once ipmaker is removed and the class
3702 Eventually this will go away once ipmaker is removed and the class
3696 gets cleaned up, but for now it's ok. Key functionality here is
3703 gets cleaned up, but for now it's ok. Key functionality here is
3697 the addition of the persistent storage mechanism, a dict for
3704 the addition of the persistent storage mechanism, a dict for
3698 keeping data across sessions (for now just bookmarks, but more can
3705 keeping data across sessions (for now just bookmarks, but more can
3699 be implemented later).
3706 be implemented later).
3700
3707
3701 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3708 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3702 persistent across sections. Patch by Ville, I modified it
3709 persistent across sections. Patch by Ville, I modified it
3703 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3710 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3704 added a '-l' option to list all bookmarks.
3711 added a '-l' option to list all bookmarks.
3705
3712
3706 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3713 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3707 center for cleanup. Registered with atexit.register(). I moved
3714 center for cleanup. Registered with atexit.register(). I moved
3708 here the old exit_cleanup(). After a patch by Ville.
3715 here the old exit_cleanup(). After a patch by Ville.
3709
3716
3710 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3717 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3711 characters in the hacked shlex_split for python 2.2.
3718 characters in the hacked shlex_split for python 2.2.
3712
3719
3713 * IPython/iplib.py (file_matches): more fixes to filenames with
3720 * IPython/iplib.py (file_matches): more fixes to filenames with
3714 whitespace in them. It's not perfect, but limitations in python's
3721 whitespace in them. It's not perfect, but limitations in python's
3715 readline make it impossible to go further.
3722 readline make it impossible to go further.
3716
3723
3717 2004-06-29 Fernando Perez <fperez@colorado.edu>
3724 2004-06-29 Fernando Perez <fperez@colorado.edu>
3718
3725
3719 * IPython/iplib.py (file_matches): escape whitespace correctly in
3726 * IPython/iplib.py (file_matches): escape whitespace correctly in
3720 filename completions. Bug reported by Ville.
3727 filename completions. Bug reported by Ville.
3721
3728
3722 2004-06-28 Fernando Perez <fperez@colorado.edu>
3729 2004-06-28 Fernando Perez <fperez@colorado.edu>
3723
3730
3724 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3731 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3725 the history file will be called 'history-PROFNAME' (or just
3732 the history file will be called 'history-PROFNAME' (or just
3726 'history' if no profile is loaded). I was getting annoyed at
3733 'history' if no profile is loaded). I was getting annoyed at
3727 getting my Numerical work history clobbered by pysh sessions.
3734 getting my Numerical work history clobbered by pysh sessions.
3728
3735
3729 * IPython/iplib.py (InteractiveShell.__init__): Internal
3736 * IPython/iplib.py (InteractiveShell.__init__): Internal
3730 getoutputerror() function so that we can honor the system_verbose
3737 getoutputerror() function so that we can honor the system_verbose
3731 flag for _all_ system calls. I also added escaping of #
3738 flag for _all_ system calls. I also added escaping of #
3732 characters here to avoid confusing Itpl.
3739 characters here to avoid confusing Itpl.
3733
3740
3734 * IPython/Magic.py (shlex_split): removed call to shell in
3741 * IPython/Magic.py (shlex_split): removed call to shell in
3735 parse_options and replaced it with shlex.split(). The annoying
3742 parse_options and replaced it with shlex.split(). The annoying
3736 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3743 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3737 to backport it from 2.3, with several frail hacks (the shlex
3744 to backport it from 2.3, with several frail hacks (the shlex
3738 module is rather limited in 2.2). Thanks to a suggestion by Ville
3745 module is rather limited in 2.2). Thanks to a suggestion by Ville
3739 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3746 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3740 problem.
3747 problem.
3741
3748
3742 (Magic.magic_system_verbose): new toggle to print the actual
3749 (Magic.magic_system_verbose): new toggle to print the actual
3743 system calls made by ipython. Mainly for debugging purposes.
3750 system calls made by ipython. Mainly for debugging purposes.
3744
3751
3745 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3752 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3746 doesn't support persistence. Reported (and fix suggested) by
3753 doesn't support persistence. Reported (and fix suggested) by
3747 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3754 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3748
3755
3749 2004-06-26 Fernando Perez <fperez@colorado.edu>
3756 2004-06-26 Fernando Perez <fperez@colorado.edu>
3750
3757
3751 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3758 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3752 continue prompts.
3759 continue prompts.
3753
3760
3754 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3761 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3755 function (basically a big docstring) and a few more things here to
3762 function (basically a big docstring) and a few more things here to
3756 speedup startup. pysh.py is now very lightweight. We want because
3763 speedup startup. pysh.py is now very lightweight. We want because
3757 it gets execfile'd, while InterpreterExec gets imported, so
3764 it gets execfile'd, while InterpreterExec gets imported, so
3758 byte-compilation saves time.
3765 byte-compilation saves time.
3759
3766
3760 2004-06-25 Fernando Perez <fperez@colorado.edu>
3767 2004-06-25 Fernando Perez <fperez@colorado.edu>
3761
3768
3762 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3769 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3763 -NUM', which was recently broken.
3770 -NUM', which was recently broken.
3764
3771
3765 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3772 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3766 in multi-line input (but not !!, which doesn't make sense there).
3773 in multi-line input (but not !!, which doesn't make sense there).
3767
3774
3768 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3775 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3769 It's just too useful, and people can turn it off in the less
3776 It's just too useful, and people can turn it off in the less
3770 common cases where it's a problem.
3777 common cases where it's a problem.
3771
3778
3772 2004-06-24 Fernando Perez <fperez@colorado.edu>
3779 2004-06-24 Fernando Perez <fperez@colorado.edu>
3773
3780
3774 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3781 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3775 special syntaxes (like alias calling) is now allied in multi-line
3782 special syntaxes (like alias calling) is now allied in multi-line
3776 input. This is still _very_ experimental, but it's necessary for
3783 input. This is still _very_ experimental, but it's necessary for
3777 efficient shell usage combining python looping syntax with system
3784 efficient shell usage combining python looping syntax with system
3778 calls. For now it's restricted to aliases, I don't think it
3785 calls. For now it's restricted to aliases, I don't think it
3779 really even makes sense to have this for magics.
3786 really even makes sense to have this for magics.
3780
3787
3781 2004-06-23 Fernando Perez <fperez@colorado.edu>
3788 2004-06-23 Fernando Perez <fperez@colorado.edu>
3782
3789
3783 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3790 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3784 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3791 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3785
3792
3786 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3793 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3787 extensions under Windows (after code sent by Gary Bishop). The
3794 extensions under Windows (after code sent by Gary Bishop). The
3788 extensions considered 'executable' are stored in IPython's rc
3795 extensions considered 'executable' are stored in IPython's rc
3789 structure as win_exec_ext.
3796 structure as win_exec_ext.
3790
3797
3791 * IPython/genutils.py (shell): new function, like system() but
3798 * IPython/genutils.py (shell): new function, like system() but
3792 without return value. Very useful for interactive shell work.
3799 without return value. Very useful for interactive shell work.
3793
3800
3794 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3801 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3795 delete aliases.
3802 delete aliases.
3796
3803
3797 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3804 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3798 sure that the alias table doesn't contain python keywords.
3805 sure that the alias table doesn't contain python keywords.
3799
3806
3800 2004-06-21 Fernando Perez <fperez@colorado.edu>
3807 2004-06-21 Fernando Perez <fperez@colorado.edu>
3801
3808
3802 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3809 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3803 non-existent items are found in $PATH. Reported by Thorsten.
3810 non-existent items are found in $PATH. Reported by Thorsten.
3804
3811
3805 2004-06-20 Fernando Perez <fperez@colorado.edu>
3812 2004-06-20 Fernando Perez <fperez@colorado.edu>
3806
3813
3807 * IPython/iplib.py (complete): modified the completer so that the
3814 * IPython/iplib.py (complete): modified the completer so that the
3808 order of priorities can be easily changed at runtime.
3815 order of priorities can be easily changed at runtime.
3809
3816
3810 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3817 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3811 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3818 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3812
3819
3813 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3820 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3814 expand Python variables prepended with $ in all system calls. The
3821 expand Python variables prepended with $ in all system calls. The
3815 same was done to InteractiveShell.handle_shell_escape. Now all
3822 same was done to InteractiveShell.handle_shell_escape. Now all
3816 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3823 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3817 expansion of python variables and expressions according to the
3824 expansion of python variables and expressions according to the
3818 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3825 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3819
3826
3820 Though PEP-215 has been rejected, a similar (but simpler) one
3827 Though PEP-215 has been rejected, a similar (but simpler) one
3821 seems like it will go into Python 2.4, PEP-292 -
3828 seems like it will go into Python 2.4, PEP-292 -
3822 http://www.python.org/peps/pep-0292.html.
3829 http://www.python.org/peps/pep-0292.html.
3823
3830
3824 I'll keep the full syntax of PEP-215, since IPython has since the
3831 I'll keep the full syntax of PEP-215, since IPython has since the
3825 start used Ka-Ping Yee's reference implementation discussed there
3832 start used Ka-Ping Yee's reference implementation discussed there
3826 (Itpl), and I actually like the powerful semantics it offers.
3833 (Itpl), and I actually like the powerful semantics it offers.
3827
3834
3828 In order to access normal shell variables, the $ has to be escaped
3835 In order to access normal shell variables, the $ has to be escaped
3829 via an extra $. For example:
3836 via an extra $. For example:
3830
3837
3831 In [7]: PATH='a python variable'
3838 In [7]: PATH='a python variable'
3832
3839
3833 In [8]: !echo $PATH
3840 In [8]: !echo $PATH
3834 a python variable
3841 a python variable
3835
3842
3836 In [9]: !echo $$PATH
3843 In [9]: !echo $$PATH
3837 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3844 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3838
3845
3839 (Magic.parse_options): escape $ so the shell doesn't evaluate
3846 (Magic.parse_options): escape $ so the shell doesn't evaluate
3840 things prematurely.
3847 things prematurely.
3841
3848
3842 * IPython/iplib.py (InteractiveShell.call_alias): added the
3849 * IPython/iplib.py (InteractiveShell.call_alias): added the
3843 ability for aliases to expand python variables via $.
3850 ability for aliases to expand python variables via $.
3844
3851
3845 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3852 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3846 system, now there's a @rehash/@rehashx pair of magics. These work
3853 system, now there's a @rehash/@rehashx pair of magics. These work
3847 like the csh rehash command, and can be invoked at any time. They
3854 like the csh rehash command, and can be invoked at any time. They
3848 build a table of aliases to everything in the user's $PATH
3855 build a table of aliases to everything in the user's $PATH
3849 (@rehash uses everything, @rehashx is slower but only adds
3856 (@rehash uses everything, @rehashx is slower but only adds
3850 executable files). With this, the pysh.py-based shell profile can
3857 executable files). With this, the pysh.py-based shell profile can
3851 now simply call rehash upon startup, and full access to all
3858 now simply call rehash upon startup, and full access to all
3852 programs in the user's path is obtained.
3859 programs in the user's path is obtained.
3853
3860
3854 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3861 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3855 functionality is now fully in place. I removed the old dynamic
3862 functionality is now fully in place. I removed the old dynamic
3856 code generation based approach, in favor of a much lighter one
3863 code generation based approach, in favor of a much lighter one
3857 based on a simple dict. The advantage is that this allows me to
3864 based on a simple dict. The advantage is that this allows me to
3858 now have thousands of aliases with negligible cost (unthinkable
3865 now have thousands of aliases with negligible cost (unthinkable
3859 with the old system).
3866 with the old system).
3860
3867
3861 2004-06-19 Fernando Perez <fperez@colorado.edu>
3868 2004-06-19 Fernando Perez <fperez@colorado.edu>
3862
3869
3863 * IPython/iplib.py (__init__): extended MagicCompleter class to
3870 * IPython/iplib.py (__init__): extended MagicCompleter class to
3864 also complete (last in priority) on user aliases.
3871 also complete (last in priority) on user aliases.
3865
3872
3866 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3873 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3867 call to eval.
3874 call to eval.
3868 (ItplNS.__init__): Added a new class which functions like Itpl,
3875 (ItplNS.__init__): Added a new class which functions like Itpl,
3869 but allows configuring the namespace for the evaluation to occur
3876 but allows configuring the namespace for the evaluation to occur
3870 in.
3877 in.
3871
3878
3872 2004-06-18 Fernando Perez <fperez@colorado.edu>
3879 2004-06-18 Fernando Perez <fperez@colorado.edu>
3873
3880
3874 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3881 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3875 better message when 'exit' or 'quit' are typed (a common newbie
3882 better message when 'exit' or 'quit' are typed (a common newbie
3876 confusion).
3883 confusion).
3877
3884
3878 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3885 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3879 check for Windows users.
3886 check for Windows users.
3880
3887
3881 * IPython/iplib.py (InteractiveShell.user_setup): removed
3888 * IPython/iplib.py (InteractiveShell.user_setup): removed
3882 disabling of colors for Windows. I'll test at runtime and issue a
3889 disabling of colors for Windows. I'll test at runtime and issue a
3883 warning if Gary's readline isn't found, as to nudge users to
3890 warning if Gary's readline isn't found, as to nudge users to
3884 download it.
3891 download it.
3885
3892
3886 2004-06-16 Fernando Perez <fperez@colorado.edu>
3893 2004-06-16 Fernando Perez <fperez@colorado.edu>
3887
3894
3888 * IPython/genutils.py (Stream.__init__): changed to print errors
3895 * IPython/genutils.py (Stream.__init__): changed to print errors
3889 to sys.stderr. I had a circular dependency here. Now it's
3896 to sys.stderr. I had a circular dependency here. Now it's
3890 possible to run ipython as IDLE's shell (consider this pre-alpha,
3897 possible to run ipython as IDLE's shell (consider this pre-alpha,
3891 since true stdout things end up in the starting terminal instead
3898 since true stdout things end up in the starting terminal instead
3892 of IDLE's out).
3899 of IDLE's out).
3893
3900
3894 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3901 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3895 users who haven't # updated their prompt_in2 definitions. Remove
3902 users who haven't # updated their prompt_in2 definitions. Remove
3896 eventually.
3903 eventually.
3897 (multiple_replace): added credit to original ASPN recipe.
3904 (multiple_replace): added credit to original ASPN recipe.
3898
3905
3899 2004-06-15 Fernando Perez <fperez@colorado.edu>
3906 2004-06-15 Fernando Perez <fperez@colorado.edu>
3900
3907
3901 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3908 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3902 list of auto-defined aliases.
3909 list of auto-defined aliases.
3903
3910
3904 2004-06-13 Fernando Perez <fperez@colorado.edu>
3911 2004-06-13 Fernando Perez <fperez@colorado.edu>
3905
3912
3906 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3913 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3907 install was really requested (so setup.py can be used for other
3914 install was really requested (so setup.py can be used for other
3908 things under Windows).
3915 things under Windows).
3909
3916
3910 2004-06-10 Fernando Perez <fperez@colorado.edu>
3917 2004-06-10 Fernando Perez <fperez@colorado.edu>
3911
3918
3912 * IPython/Logger.py (Logger.create_log): Manually remove any old
3919 * IPython/Logger.py (Logger.create_log): Manually remove any old
3913 backup, since os.remove may fail under Windows. Fixes bug
3920 backup, since os.remove may fail under Windows. Fixes bug
3914 reported by Thorsten.
3921 reported by Thorsten.
3915
3922
3916 2004-06-09 Fernando Perez <fperez@colorado.edu>
3923 2004-06-09 Fernando Perez <fperez@colorado.edu>
3917
3924
3918 * examples/example-embed.py: fixed all references to %n (replaced
3925 * examples/example-embed.py: fixed all references to %n (replaced
3919 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3926 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3920 for all examples and the manual as well.
3927 for all examples and the manual as well.
3921
3928
3922 2004-06-08 Fernando Perez <fperez@colorado.edu>
3929 2004-06-08 Fernando Perez <fperez@colorado.edu>
3923
3930
3924 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3931 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3925 alignment and color management. All 3 prompt subsystems now
3932 alignment and color management. All 3 prompt subsystems now
3926 inherit from BasePrompt.
3933 inherit from BasePrompt.
3927
3934
3928 * tools/release: updates for windows installer build and tag rpms
3935 * tools/release: updates for windows installer build and tag rpms
3929 with python version (since paths are fixed).
3936 with python version (since paths are fixed).
3930
3937
3931 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3938 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3932 which will become eventually obsolete. Also fixed the default
3939 which will become eventually obsolete. Also fixed the default
3933 prompt_in2 to use \D, so at least new users start with the correct
3940 prompt_in2 to use \D, so at least new users start with the correct
3934 defaults.
3941 defaults.
3935 WARNING: Users with existing ipythonrc files will need to apply
3942 WARNING: Users with existing ipythonrc files will need to apply
3936 this fix manually!
3943 this fix manually!
3937
3944
3938 * setup.py: make windows installer (.exe). This is finally the
3945 * setup.py: make windows installer (.exe). This is finally the
3939 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3946 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3940 which I hadn't included because it required Python 2.3 (or recent
3947 which I hadn't included because it required Python 2.3 (or recent
3941 distutils).
3948 distutils).
3942
3949
3943 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3950 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3944 usage of new '\D' escape.
3951 usage of new '\D' escape.
3945
3952
3946 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3953 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3947 lacks os.getuid())
3954 lacks os.getuid())
3948 (CachedOutput.set_colors): Added the ability to turn coloring
3955 (CachedOutput.set_colors): Added the ability to turn coloring
3949 on/off with @colors even for manually defined prompt colors. It
3956 on/off with @colors even for manually defined prompt colors. It
3950 uses a nasty global, but it works safely and via the generic color
3957 uses a nasty global, but it works safely and via the generic color
3951 handling mechanism.
3958 handling mechanism.
3952 (Prompt2.__init__): Introduced new escape '\D' for continuation
3959 (Prompt2.__init__): Introduced new escape '\D' for continuation
3953 prompts. It represents the counter ('\#') as dots.
3960 prompts. It represents the counter ('\#') as dots.
3954 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3961 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3955 need to update their ipythonrc files and replace '%n' with '\D' in
3962 need to update their ipythonrc files and replace '%n' with '\D' in
3956 their prompt_in2 settings everywhere. Sorry, but there's
3963 their prompt_in2 settings everywhere. Sorry, but there's
3957 otherwise no clean way to get all prompts to properly align. The
3964 otherwise no clean way to get all prompts to properly align. The
3958 ipythonrc shipped with IPython has been updated.
3965 ipythonrc shipped with IPython has been updated.
3959
3966
3960 2004-06-07 Fernando Perez <fperez@colorado.edu>
3967 2004-06-07 Fernando Perez <fperez@colorado.edu>
3961
3968
3962 * setup.py (isfile): Pass local_icons option to latex2html, so the
3969 * setup.py (isfile): Pass local_icons option to latex2html, so the
3963 resulting HTML file is self-contained. Thanks to
3970 resulting HTML file is self-contained. Thanks to
3964 dryice-AT-liu.com.cn for the tip.
3971 dryice-AT-liu.com.cn for the tip.
3965
3972
3966 * pysh.py: I created a new profile 'shell', which implements a
3973 * pysh.py: I created a new profile 'shell', which implements a
3967 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3974 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3968 system shell, nor will it become one anytime soon. It's mainly
3975 system shell, nor will it become one anytime soon. It's mainly
3969 meant to illustrate the use of the new flexible bash-like prompts.
3976 meant to illustrate the use of the new flexible bash-like prompts.
3970 I guess it could be used by hardy souls for true shell management,
3977 I guess it could be used by hardy souls for true shell management,
3971 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3978 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3972 profile. This uses the InterpreterExec extension provided by
3979 profile. This uses the InterpreterExec extension provided by
3973 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3980 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3974
3981
3975 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3982 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3976 auto-align itself with the length of the previous input prompt
3983 auto-align itself with the length of the previous input prompt
3977 (taking into account the invisible color escapes).
3984 (taking into account the invisible color escapes).
3978 (CachedOutput.__init__): Large restructuring of this class. Now
3985 (CachedOutput.__init__): Large restructuring of this class. Now
3979 all three prompts (primary1, primary2, output) are proper objects,
3986 all three prompts (primary1, primary2, output) are proper objects,
3980 managed by the 'parent' CachedOutput class. The code is still a
3987 managed by the 'parent' CachedOutput class. The code is still a
3981 bit hackish (all prompts share state via a pointer to the cache),
3988 bit hackish (all prompts share state via a pointer to the cache),
3982 but it's overall far cleaner than before.
3989 but it's overall far cleaner than before.
3983
3990
3984 * IPython/genutils.py (getoutputerror): modified to add verbose,
3991 * IPython/genutils.py (getoutputerror): modified to add verbose,
3985 debug and header options. This makes the interface of all getout*
3992 debug and header options. This makes the interface of all getout*
3986 functions uniform.
3993 functions uniform.
3987 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3994 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3988
3995
3989 * IPython/Magic.py (Magic.default_option): added a function to
3996 * IPython/Magic.py (Magic.default_option): added a function to
3990 allow registering default options for any magic command. This
3997 allow registering default options for any magic command. This
3991 makes it easy to have profiles which customize the magics globally
3998 makes it easy to have profiles which customize the magics globally
3992 for a certain use. The values set through this function are
3999 for a certain use. The values set through this function are
3993 picked up by the parse_options() method, which all magics should
4000 picked up by the parse_options() method, which all magics should
3994 use to parse their options.
4001 use to parse their options.
3995
4002
3996 * IPython/genutils.py (warn): modified the warnings framework to
4003 * IPython/genutils.py (warn): modified the warnings framework to
3997 use the Term I/O class. I'm trying to slowly unify all of
4004 use the Term I/O class. I'm trying to slowly unify all of
3998 IPython's I/O operations to pass through Term.
4005 IPython's I/O operations to pass through Term.
3999
4006
4000 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4007 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4001 the secondary prompt to correctly match the length of the primary
4008 the secondary prompt to correctly match the length of the primary
4002 one for any prompt. Now multi-line code will properly line up
4009 one for any prompt. Now multi-line code will properly line up
4003 even for path dependent prompts, such as the new ones available
4010 even for path dependent prompts, such as the new ones available
4004 via the prompt_specials.
4011 via the prompt_specials.
4005
4012
4006 2004-06-06 Fernando Perez <fperez@colorado.edu>
4013 2004-06-06 Fernando Perez <fperez@colorado.edu>
4007
4014
4008 * IPython/Prompts.py (prompt_specials): Added the ability to have
4015 * IPython/Prompts.py (prompt_specials): Added the ability to have
4009 bash-like special sequences in the prompts, which get
4016 bash-like special sequences in the prompts, which get
4010 automatically expanded. Things like hostname, current working
4017 automatically expanded. Things like hostname, current working
4011 directory and username are implemented already, but it's easy to
4018 directory and username are implemented already, but it's easy to
4012 add more in the future. Thanks to a patch by W.J. van der Laan
4019 add more in the future. Thanks to a patch by W.J. van der Laan
4013 <gnufnork-AT-hetdigitalegat.nl>
4020 <gnufnork-AT-hetdigitalegat.nl>
4014 (prompt_specials): Added color support for prompt strings, so
4021 (prompt_specials): Added color support for prompt strings, so
4015 users can define arbitrary color setups for their prompts.
4022 users can define arbitrary color setups for their prompts.
4016
4023
4017 2004-06-05 Fernando Perez <fperez@colorado.edu>
4024 2004-06-05 Fernando Perez <fperez@colorado.edu>
4018
4025
4019 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4026 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4020 code to load Gary Bishop's readline and configure it
4027 code to load Gary Bishop's readline and configure it
4021 automatically. Thanks to Gary for help on this.
4028 automatically. Thanks to Gary for help on this.
4022
4029
4023 2004-06-01 Fernando Perez <fperez@colorado.edu>
4030 2004-06-01 Fernando Perez <fperez@colorado.edu>
4024
4031
4025 * IPython/Logger.py (Logger.create_log): fix bug for logging
4032 * IPython/Logger.py (Logger.create_log): fix bug for logging
4026 with no filename (previous fix was incomplete).
4033 with no filename (previous fix was incomplete).
4027
4034
4028 2004-05-25 Fernando Perez <fperez@colorado.edu>
4035 2004-05-25 Fernando Perez <fperez@colorado.edu>
4029
4036
4030 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4037 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4031 parens would get passed to the shell.
4038 parens would get passed to the shell.
4032
4039
4033 2004-05-20 Fernando Perez <fperez@colorado.edu>
4040 2004-05-20 Fernando Perez <fperez@colorado.edu>
4034
4041
4035 * IPython/Magic.py (Magic.magic_prun): changed default profile
4042 * IPython/Magic.py (Magic.magic_prun): changed default profile
4036 sort order to 'time' (the more common profiling need).
4043 sort order to 'time' (the more common profiling need).
4037
4044
4038 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4045 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4039 so that source code shown is guaranteed in sync with the file on
4046 so that source code shown is guaranteed in sync with the file on
4040 disk (also changed in psource). Similar fix to the one for
4047 disk (also changed in psource). Similar fix to the one for
4041 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4048 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4042 <yann.ledu-AT-noos.fr>.
4049 <yann.ledu-AT-noos.fr>.
4043
4050
4044 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4051 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4045 with a single option would not be correctly parsed. Closes
4052 with a single option would not be correctly parsed. Closes
4046 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4053 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4047 introduced in 0.6.0 (on 2004-05-06).
4054 introduced in 0.6.0 (on 2004-05-06).
4048
4055
4049 2004-05-13 *** Released version 0.6.0
4056 2004-05-13 *** Released version 0.6.0
4050
4057
4051 2004-05-13 Fernando Perez <fperez@colorado.edu>
4058 2004-05-13 Fernando Perez <fperez@colorado.edu>
4052
4059
4053 * debian/: Added debian/ directory to CVS, so that debian support
4060 * debian/: Added debian/ directory to CVS, so that debian support
4054 is publicly accessible. The debian package is maintained by Jack
4061 is publicly accessible. The debian package is maintained by Jack
4055 Moffit <jack-AT-xiph.org>.
4062 Moffit <jack-AT-xiph.org>.
4056
4063
4057 * Documentation: included the notes about an ipython-based system
4064 * Documentation: included the notes about an ipython-based system
4058 shell (the hypothetical 'pysh') into the new_design.pdf document,
4065 shell (the hypothetical 'pysh') into the new_design.pdf document,
4059 so that these ideas get distributed to users along with the
4066 so that these ideas get distributed to users along with the
4060 official documentation.
4067 official documentation.
4061
4068
4062 2004-05-10 Fernando Perez <fperez@colorado.edu>
4069 2004-05-10 Fernando Perez <fperez@colorado.edu>
4063
4070
4064 * IPython/Logger.py (Logger.create_log): fix recently introduced
4071 * IPython/Logger.py (Logger.create_log): fix recently introduced
4065 bug (misindented line) where logstart would fail when not given an
4072 bug (misindented line) where logstart would fail when not given an
4066 explicit filename.
4073 explicit filename.
4067
4074
4068 2004-05-09 Fernando Perez <fperez@colorado.edu>
4075 2004-05-09 Fernando Perez <fperez@colorado.edu>
4069
4076
4070 * IPython/Magic.py (Magic.parse_options): skip system call when
4077 * IPython/Magic.py (Magic.parse_options): skip system call when
4071 there are no options to look for. Faster, cleaner for the common
4078 there are no options to look for. Faster, cleaner for the common
4072 case.
4079 case.
4073
4080
4074 * Documentation: many updates to the manual: describing Windows
4081 * Documentation: many updates to the manual: describing Windows
4075 support better, Gnuplot updates, credits, misc small stuff. Also
4082 support better, Gnuplot updates, credits, misc small stuff. Also
4076 updated the new_design doc a bit.
4083 updated the new_design doc a bit.
4077
4084
4078 2004-05-06 *** Released version 0.6.0.rc1
4085 2004-05-06 *** Released version 0.6.0.rc1
4079
4086
4080 2004-05-06 Fernando Perez <fperez@colorado.edu>
4087 2004-05-06 Fernando Perez <fperez@colorado.edu>
4081
4088
4082 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4089 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4083 operations to use the vastly more efficient list/''.join() method.
4090 operations to use the vastly more efficient list/''.join() method.
4084 (FormattedTB.text): Fix
4091 (FormattedTB.text): Fix
4085 http://www.scipy.net/roundup/ipython/issue12 - exception source
4092 http://www.scipy.net/roundup/ipython/issue12 - exception source
4086 extract not updated after reload. Thanks to Mike Salib
4093 extract not updated after reload. Thanks to Mike Salib
4087 <msalib-AT-mit.edu> for pinning the source of the problem.
4094 <msalib-AT-mit.edu> for pinning the source of the problem.
4088 Fortunately, the solution works inside ipython and doesn't require
4095 Fortunately, the solution works inside ipython and doesn't require
4089 any changes to python proper.
4096 any changes to python proper.
4090
4097
4091 * IPython/Magic.py (Magic.parse_options): Improved to process the
4098 * IPython/Magic.py (Magic.parse_options): Improved to process the
4092 argument list as a true shell would (by actually using the
4099 argument list as a true shell would (by actually using the
4093 underlying system shell). This way, all @magics automatically get
4100 underlying system shell). This way, all @magics automatically get
4094 shell expansion for variables. Thanks to a comment by Alex
4101 shell expansion for variables. Thanks to a comment by Alex
4095 Schmolck.
4102 Schmolck.
4096
4103
4097 2004-04-04 Fernando Perez <fperez@colorado.edu>
4104 2004-04-04 Fernando Perez <fperez@colorado.edu>
4098
4105
4099 * IPython/iplib.py (InteractiveShell.interact): Added a special
4106 * IPython/iplib.py (InteractiveShell.interact): Added a special
4100 trap for a debugger quit exception, which is basically impossible
4107 trap for a debugger quit exception, which is basically impossible
4101 to handle by normal mechanisms, given what pdb does to the stack.
4108 to handle by normal mechanisms, given what pdb does to the stack.
4102 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4109 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4103
4110
4104 2004-04-03 Fernando Perez <fperez@colorado.edu>
4111 2004-04-03 Fernando Perez <fperez@colorado.edu>
4105
4112
4106 * IPython/genutils.py (Term): Standardized the names of the Term
4113 * IPython/genutils.py (Term): Standardized the names of the Term
4107 class streams to cin/cout/cerr, following C++ naming conventions
4114 class streams to cin/cout/cerr, following C++ naming conventions
4108 (I can't use in/out/err because 'in' is not a valid attribute
4115 (I can't use in/out/err because 'in' is not a valid attribute
4109 name).
4116 name).
4110
4117
4111 * IPython/iplib.py (InteractiveShell.interact): don't increment
4118 * IPython/iplib.py (InteractiveShell.interact): don't increment
4112 the prompt if there's no user input. By Daniel 'Dang' Griffith
4119 the prompt if there's no user input. By Daniel 'Dang' Griffith
4113 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4120 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4114 Francois Pinard.
4121 Francois Pinard.
4115
4122
4116 2004-04-02 Fernando Perez <fperez@colorado.edu>
4123 2004-04-02 Fernando Perez <fperez@colorado.edu>
4117
4124
4118 * IPython/genutils.py (Stream.__init__): Modified to survive at
4125 * IPython/genutils.py (Stream.__init__): Modified to survive at
4119 least importing in contexts where stdin/out/err aren't true file
4126 least importing in contexts where stdin/out/err aren't true file
4120 objects, such as PyCrust (they lack fileno() and mode). However,
4127 objects, such as PyCrust (they lack fileno() and mode). However,
4121 the recovery facilities which rely on these things existing will
4128 the recovery facilities which rely on these things existing will
4122 not work.
4129 not work.
4123
4130
4124 2004-04-01 Fernando Perez <fperez@colorado.edu>
4131 2004-04-01 Fernando Perez <fperez@colorado.edu>
4125
4132
4126 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4133 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4127 use the new getoutputerror() function, so it properly
4134 use the new getoutputerror() function, so it properly
4128 distinguishes stdout/err.
4135 distinguishes stdout/err.
4129
4136
4130 * IPython/genutils.py (getoutputerror): added a function to
4137 * IPython/genutils.py (getoutputerror): added a function to
4131 capture separately the standard output and error of a command.
4138 capture separately the standard output and error of a command.
4132 After a comment from dang on the mailing lists. This code is
4139 After a comment from dang on the mailing lists. This code is
4133 basically a modified version of commands.getstatusoutput(), from
4140 basically a modified version of commands.getstatusoutput(), from
4134 the standard library.
4141 the standard library.
4135
4142
4136 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4143 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4137 '!!' as a special syntax (shorthand) to access @sx.
4144 '!!' as a special syntax (shorthand) to access @sx.
4138
4145
4139 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4146 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4140 command and return its output as a list split on '\n'.
4147 command and return its output as a list split on '\n'.
4141
4148
4142 2004-03-31 Fernando Perez <fperez@colorado.edu>
4149 2004-03-31 Fernando Perez <fperez@colorado.edu>
4143
4150
4144 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4151 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4145 method to dictionaries used as FakeModule instances if they lack
4152 method to dictionaries used as FakeModule instances if they lack
4146 it. At least pydoc in python2.3 breaks for runtime-defined
4153 it. At least pydoc in python2.3 breaks for runtime-defined
4147 functions without this hack. At some point I need to _really_
4154 functions without this hack. At some point I need to _really_
4148 understand what FakeModule is doing, because it's a gross hack.
4155 understand what FakeModule is doing, because it's a gross hack.
4149 But it solves Arnd's problem for now...
4156 But it solves Arnd's problem for now...
4150
4157
4151 2004-02-27 Fernando Perez <fperez@colorado.edu>
4158 2004-02-27 Fernando Perez <fperez@colorado.edu>
4152
4159
4153 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4160 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4154 mode would behave erratically. Also increased the number of
4161 mode would behave erratically. Also increased the number of
4155 possible logs in rotate mod to 999. Thanks to Rod Holland
4162 possible logs in rotate mod to 999. Thanks to Rod Holland
4156 <rhh@StructureLABS.com> for the report and fixes.
4163 <rhh@StructureLABS.com> for the report and fixes.
4157
4164
4158 2004-02-26 Fernando Perez <fperez@colorado.edu>
4165 2004-02-26 Fernando Perez <fperez@colorado.edu>
4159
4166
4160 * IPython/genutils.py (page): Check that the curses module really
4167 * IPython/genutils.py (page): Check that the curses module really
4161 has the initscr attribute before trying to use it. For some
4168 has the initscr attribute before trying to use it. For some
4162 reason, the Solaris curses module is missing this. I think this
4169 reason, the Solaris curses module is missing this. I think this
4163 should be considered a Solaris python bug, but I'm not sure.
4170 should be considered a Solaris python bug, but I'm not sure.
4164
4171
4165 2004-01-17 Fernando Perez <fperez@colorado.edu>
4172 2004-01-17 Fernando Perez <fperez@colorado.edu>
4166
4173
4167 * IPython/genutils.py (Stream.__init__): Changes to try to make
4174 * IPython/genutils.py (Stream.__init__): Changes to try to make
4168 ipython robust against stdin/out/err being closed by the user.
4175 ipython robust against stdin/out/err being closed by the user.
4169 This is 'user error' (and blocks a normal python session, at least
4176 This is 'user error' (and blocks a normal python session, at least
4170 the stdout case). However, Ipython should be able to survive such
4177 the stdout case). However, Ipython should be able to survive such
4171 instances of abuse as gracefully as possible. To simplify the
4178 instances of abuse as gracefully as possible. To simplify the
4172 coding and maintain compatibility with Gary Bishop's Term
4179 coding and maintain compatibility with Gary Bishop's Term
4173 contributions, I've made use of classmethods for this. I think
4180 contributions, I've made use of classmethods for this. I think
4174 this introduces a dependency on python 2.2.
4181 this introduces a dependency on python 2.2.
4175
4182
4176 2004-01-13 Fernando Perez <fperez@colorado.edu>
4183 2004-01-13 Fernando Perez <fperez@colorado.edu>
4177
4184
4178 * IPython/numutils.py (exp_safe): simplified the code a bit and
4185 * IPython/numutils.py (exp_safe): simplified the code a bit and
4179 removed the need for importing the kinds module altogether.
4186 removed the need for importing the kinds module altogether.
4180
4187
4181 2004-01-06 Fernando Perez <fperez@colorado.edu>
4188 2004-01-06 Fernando Perez <fperez@colorado.edu>
4182
4189
4183 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4190 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4184 a magic function instead, after some community feedback. No
4191 a magic function instead, after some community feedback. No
4185 special syntax will exist for it, but its name is deliberately
4192 special syntax will exist for it, but its name is deliberately
4186 very short.
4193 very short.
4187
4194
4188 2003-12-20 Fernando Perez <fperez@colorado.edu>
4195 2003-12-20 Fernando Perez <fperez@colorado.edu>
4189
4196
4190 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4197 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4191 new functionality, to automagically assign the result of a shell
4198 new functionality, to automagically assign the result of a shell
4192 command to a variable. I'll solicit some community feedback on
4199 command to a variable. I'll solicit some community feedback on
4193 this before making it permanent.
4200 this before making it permanent.
4194
4201
4195 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4202 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4196 requested about callables for which inspect couldn't obtain a
4203 requested about callables for which inspect couldn't obtain a
4197 proper argspec. Thanks to a crash report sent by Etienne
4204 proper argspec. Thanks to a crash report sent by Etienne
4198 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4205 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4199
4206
4200 2003-12-09 Fernando Perez <fperez@colorado.edu>
4207 2003-12-09 Fernando Perez <fperez@colorado.edu>
4201
4208
4202 * IPython/genutils.py (page): patch for the pager to work across
4209 * IPython/genutils.py (page): patch for the pager to work across
4203 various versions of Windows. By Gary Bishop.
4210 various versions of Windows. By Gary Bishop.
4204
4211
4205 2003-12-04 Fernando Perez <fperez@colorado.edu>
4212 2003-12-04 Fernando Perez <fperez@colorado.edu>
4206
4213
4207 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4214 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4208 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4215 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4209 While I tested this and it looks ok, there may still be corner
4216 While I tested this and it looks ok, there may still be corner
4210 cases I've missed.
4217 cases I've missed.
4211
4218
4212 2003-12-01 Fernando Perez <fperez@colorado.edu>
4219 2003-12-01 Fernando Perez <fperez@colorado.edu>
4213
4220
4214 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4221 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4215 where a line like 'p,q=1,2' would fail because the automagic
4222 where a line like 'p,q=1,2' would fail because the automagic
4216 system would be triggered for @p.
4223 system would be triggered for @p.
4217
4224
4218 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4225 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4219 cleanups, code unmodified.
4226 cleanups, code unmodified.
4220
4227
4221 * IPython/genutils.py (Term): added a class for IPython to handle
4228 * IPython/genutils.py (Term): added a class for IPython to handle
4222 output. In most cases it will just be a proxy for stdout/err, but
4229 output. In most cases it will just be a proxy for stdout/err, but
4223 having this allows modifications to be made for some platforms,
4230 having this allows modifications to be made for some platforms,
4224 such as handling color escapes under Windows. All of this code
4231 such as handling color escapes under Windows. All of this code
4225 was contributed by Gary Bishop, with minor modifications by me.
4232 was contributed by Gary Bishop, with minor modifications by me.
4226 The actual changes affect many files.
4233 The actual changes affect many files.
4227
4234
4228 2003-11-30 Fernando Perez <fperez@colorado.edu>
4235 2003-11-30 Fernando Perez <fperez@colorado.edu>
4229
4236
4230 * IPython/iplib.py (file_matches): new completion code, courtesy
4237 * IPython/iplib.py (file_matches): new completion code, courtesy
4231 of Jeff Collins. This enables filename completion again under
4238 of Jeff Collins. This enables filename completion again under
4232 python 2.3, which disabled it at the C level.
4239 python 2.3, which disabled it at the C level.
4233
4240
4234 2003-11-11 Fernando Perez <fperez@colorado.edu>
4241 2003-11-11 Fernando Perez <fperez@colorado.edu>
4235
4242
4236 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4243 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4237 for Numeric.array(map(...)), but often convenient.
4244 for Numeric.array(map(...)), but often convenient.
4238
4245
4239 2003-11-05 Fernando Perez <fperez@colorado.edu>
4246 2003-11-05 Fernando Perez <fperez@colorado.edu>
4240
4247
4241 * IPython/numutils.py (frange): Changed a call from int() to
4248 * IPython/numutils.py (frange): Changed a call from int() to
4242 int(round()) to prevent a problem reported with arange() in the
4249 int(round()) to prevent a problem reported with arange() in the
4243 numpy list.
4250 numpy list.
4244
4251
4245 2003-10-06 Fernando Perez <fperez@colorado.edu>
4252 2003-10-06 Fernando Perez <fperez@colorado.edu>
4246
4253
4247 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4254 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4248 prevent crashes if sys lacks an argv attribute (it happens with
4255 prevent crashes if sys lacks an argv attribute (it happens with
4249 embedded interpreters which build a bare-bones sys module).
4256 embedded interpreters which build a bare-bones sys module).
4250 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4257 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4251
4258
4252 2003-09-24 Fernando Perez <fperez@colorado.edu>
4259 2003-09-24 Fernando Perez <fperez@colorado.edu>
4253
4260
4254 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4261 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4255 to protect against poorly written user objects where __getattr__
4262 to protect against poorly written user objects where __getattr__
4256 raises exceptions other than AttributeError. Thanks to a bug
4263 raises exceptions other than AttributeError. Thanks to a bug
4257 report by Oliver Sander <osander-AT-gmx.de>.
4264 report by Oliver Sander <osander-AT-gmx.de>.
4258
4265
4259 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4266 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4260 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4267 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4261
4268
4262 2003-09-09 Fernando Perez <fperez@colorado.edu>
4269 2003-09-09 Fernando Perez <fperez@colorado.edu>
4263
4270
4264 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4271 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4265 unpacking a list whith a callable as first element would
4272 unpacking a list whith a callable as first element would
4266 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4273 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4267 Collins.
4274 Collins.
4268
4275
4269 2003-08-25 *** Released version 0.5.0
4276 2003-08-25 *** Released version 0.5.0
4270
4277
4271 2003-08-22 Fernando Perez <fperez@colorado.edu>
4278 2003-08-22 Fernando Perez <fperez@colorado.edu>
4272
4279
4273 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4280 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4274 improperly defined user exceptions. Thanks to feedback from Mark
4281 improperly defined user exceptions. Thanks to feedback from Mark
4275 Russell <mrussell-AT-verio.net>.
4282 Russell <mrussell-AT-verio.net>.
4276
4283
4277 2003-08-20 Fernando Perez <fperez@colorado.edu>
4284 2003-08-20 Fernando Perez <fperez@colorado.edu>
4278
4285
4279 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4286 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4280 printing so that it would print multi-line string forms starting
4287 printing so that it would print multi-line string forms starting
4281 with a new line. This way the formatting is better respected for
4288 with a new line. This way the formatting is better respected for
4282 objects which work hard to make nice string forms.
4289 objects which work hard to make nice string forms.
4283
4290
4284 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4291 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4285 autocall would overtake data access for objects with both
4292 autocall would overtake data access for objects with both
4286 __getitem__ and __call__.
4293 __getitem__ and __call__.
4287
4294
4288 2003-08-19 *** Released version 0.5.0-rc1
4295 2003-08-19 *** Released version 0.5.0-rc1
4289
4296
4290 2003-08-19 Fernando Perez <fperez@colorado.edu>
4297 2003-08-19 Fernando Perez <fperez@colorado.edu>
4291
4298
4292 * IPython/deep_reload.py (load_tail): single tiny change here
4299 * IPython/deep_reload.py (load_tail): single tiny change here
4293 seems to fix the long-standing bug of dreload() failing to work
4300 seems to fix the long-standing bug of dreload() failing to work
4294 for dotted names. But this module is pretty tricky, so I may have
4301 for dotted names. But this module is pretty tricky, so I may have
4295 missed some subtlety. Needs more testing!.
4302 missed some subtlety. Needs more testing!.
4296
4303
4297 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4304 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4298 exceptions which have badly implemented __str__ methods.
4305 exceptions which have badly implemented __str__ methods.
4299 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4306 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4300 which I've been getting reports about from Python 2.3 users. I
4307 which I've been getting reports about from Python 2.3 users. I
4301 wish I had a simple test case to reproduce the problem, so I could
4308 wish I had a simple test case to reproduce the problem, so I could
4302 either write a cleaner workaround or file a bug report if
4309 either write a cleaner workaround or file a bug report if
4303 necessary.
4310 necessary.
4304
4311
4305 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4312 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4306 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4313 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4307 a bug report by Tjabo Kloppenburg.
4314 a bug report by Tjabo Kloppenburg.
4308
4315
4309 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4316 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4310 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4317 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4311 seems rather unstable. Thanks to a bug report by Tjabo
4318 seems rather unstable. Thanks to a bug report by Tjabo
4312 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4319 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4313
4320
4314 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4321 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4315 this out soon because of the critical fixes in the inner loop for
4322 this out soon because of the critical fixes in the inner loop for
4316 generators.
4323 generators.
4317
4324
4318 * IPython/Magic.py (Magic.getargspec): removed. This (and
4325 * IPython/Magic.py (Magic.getargspec): removed. This (and
4319 _get_def) have been obsoleted by OInspect for a long time, I
4326 _get_def) have been obsoleted by OInspect for a long time, I
4320 hadn't noticed that they were dead code.
4327 hadn't noticed that they were dead code.
4321 (Magic._ofind): restored _ofind functionality for a few literals
4328 (Magic._ofind): restored _ofind functionality for a few literals
4322 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4329 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4323 for things like "hello".capitalize?, since that would require a
4330 for things like "hello".capitalize?, since that would require a
4324 potentially dangerous eval() again.
4331 potentially dangerous eval() again.
4325
4332
4326 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4333 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4327 logic a bit more to clean up the escapes handling and minimize the
4334 logic a bit more to clean up the escapes handling and minimize the
4328 use of _ofind to only necessary cases. The interactive 'feel' of
4335 use of _ofind to only necessary cases. The interactive 'feel' of
4329 IPython should have improved quite a bit with the changes in
4336 IPython should have improved quite a bit with the changes in
4330 _prefilter and _ofind (besides being far safer than before).
4337 _prefilter and _ofind (besides being far safer than before).
4331
4338
4332 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4339 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4333 obscure, never reported). Edit would fail to find the object to
4340 obscure, never reported). Edit would fail to find the object to
4334 edit under some circumstances.
4341 edit under some circumstances.
4335 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4342 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4336 which were causing double-calling of generators. Those eval calls
4343 which were causing double-calling of generators. Those eval calls
4337 were _very_ dangerous, since code with side effects could be
4344 were _very_ dangerous, since code with side effects could be
4338 triggered. As they say, 'eval is evil'... These were the
4345 triggered. As they say, 'eval is evil'... These were the
4339 nastiest evals in IPython. Besides, _ofind is now far simpler,
4346 nastiest evals in IPython. Besides, _ofind is now far simpler,
4340 and it should also be quite a bit faster. Its use of inspect is
4347 and it should also be quite a bit faster. Its use of inspect is
4341 also safer, so perhaps some of the inspect-related crashes I've
4348 also safer, so perhaps some of the inspect-related crashes I've
4342 seen lately with Python 2.3 might be taken care of. That will
4349 seen lately with Python 2.3 might be taken care of. That will
4343 need more testing.
4350 need more testing.
4344
4351
4345 2003-08-17 Fernando Perez <fperez@colorado.edu>
4352 2003-08-17 Fernando Perez <fperez@colorado.edu>
4346
4353
4347 * IPython/iplib.py (InteractiveShell._prefilter): significant
4354 * IPython/iplib.py (InteractiveShell._prefilter): significant
4348 simplifications to the logic for handling user escapes. Faster
4355 simplifications to the logic for handling user escapes. Faster
4349 and simpler code.
4356 and simpler code.
4350
4357
4351 2003-08-14 Fernando Perez <fperez@colorado.edu>
4358 2003-08-14 Fernando Perez <fperez@colorado.edu>
4352
4359
4353 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4360 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4354 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4361 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4355 but it should be quite a bit faster. And the recursive version
4362 but it should be quite a bit faster. And the recursive version
4356 generated O(log N) intermediate storage for all rank>1 arrays,
4363 generated O(log N) intermediate storage for all rank>1 arrays,
4357 even if they were contiguous.
4364 even if they were contiguous.
4358 (l1norm): Added this function.
4365 (l1norm): Added this function.
4359 (norm): Added this function for arbitrary norms (including
4366 (norm): Added this function for arbitrary norms (including
4360 l-infinity). l1 and l2 are still special cases for convenience
4367 l-infinity). l1 and l2 are still special cases for convenience
4361 and speed.
4368 and speed.
4362
4369
4363 2003-08-03 Fernando Perez <fperez@colorado.edu>
4370 2003-08-03 Fernando Perez <fperez@colorado.edu>
4364
4371
4365 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4372 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4366 exceptions, which now raise PendingDeprecationWarnings in Python
4373 exceptions, which now raise PendingDeprecationWarnings in Python
4367 2.3. There were some in Magic and some in Gnuplot2.
4374 2.3. There were some in Magic and some in Gnuplot2.
4368
4375
4369 2003-06-30 Fernando Perez <fperez@colorado.edu>
4376 2003-06-30 Fernando Perez <fperez@colorado.edu>
4370
4377
4371 * IPython/genutils.py (page): modified to call curses only for
4378 * IPython/genutils.py (page): modified to call curses only for
4372 terminals where TERM=='xterm'. After problems under many other
4379 terminals where TERM=='xterm'. After problems under many other
4373 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4380 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4374
4381
4375 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4382 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4376 would be triggered when readline was absent. This was just an old
4383 would be triggered when readline was absent. This was just an old
4377 debugging statement I'd forgotten to take out.
4384 debugging statement I'd forgotten to take out.
4378
4385
4379 2003-06-20 Fernando Perez <fperez@colorado.edu>
4386 2003-06-20 Fernando Perez <fperez@colorado.edu>
4380
4387
4381 * IPython/genutils.py (clock): modified to return only user time
4388 * IPython/genutils.py (clock): modified to return only user time
4382 (not counting system time), after a discussion on scipy. While
4389 (not counting system time), after a discussion on scipy. While
4383 system time may be a useful quantity occasionally, it may much
4390 system time may be a useful quantity occasionally, it may much
4384 more easily be skewed by occasional swapping or other similar
4391 more easily be skewed by occasional swapping or other similar
4385 activity.
4392 activity.
4386
4393
4387 2003-06-05 Fernando Perez <fperez@colorado.edu>
4394 2003-06-05 Fernando Perez <fperez@colorado.edu>
4388
4395
4389 * IPython/numutils.py (identity): new function, for building
4396 * IPython/numutils.py (identity): new function, for building
4390 arbitrary rank Kronecker deltas (mostly backwards compatible with
4397 arbitrary rank Kronecker deltas (mostly backwards compatible with
4391 Numeric.identity)
4398 Numeric.identity)
4392
4399
4393 2003-06-03 Fernando Perez <fperez@colorado.edu>
4400 2003-06-03 Fernando Perez <fperez@colorado.edu>
4394
4401
4395 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4402 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4396 arguments passed to magics with spaces, to allow trailing '\' to
4403 arguments passed to magics with spaces, to allow trailing '\' to
4397 work normally (mainly for Windows users).
4404 work normally (mainly for Windows users).
4398
4405
4399 2003-05-29 Fernando Perez <fperez@colorado.edu>
4406 2003-05-29 Fernando Perez <fperez@colorado.edu>
4400
4407
4401 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4408 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4402 instead of pydoc.help. This fixes a bizarre behavior where
4409 instead of pydoc.help. This fixes a bizarre behavior where
4403 printing '%s' % locals() would trigger the help system. Now
4410 printing '%s' % locals() would trigger the help system. Now
4404 ipython behaves like normal python does.
4411 ipython behaves like normal python does.
4405
4412
4406 Note that if one does 'from pydoc import help', the bizarre
4413 Note that if one does 'from pydoc import help', the bizarre
4407 behavior returns, but this will also happen in normal python, so
4414 behavior returns, but this will also happen in normal python, so
4408 it's not an ipython bug anymore (it has to do with how pydoc.help
4415 it's not an ipython bug anymore (it has to do with how pydoc.help
4409 is implemented).
4416 is implemented).
4410
4417
4411 2003-05-22 Fernando Perez <fperez@colorado.edu>
4418 2003-05-22 Fernando Perez <fperez@colorado.edu>
4412
4419
4413 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4420 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4414 return [] instead of None when nothing matches, also match to end
4421 return [] instead of None when nothing matches, also match to end
4415 of line. Patch by Gary Bishop.
4422 of line. Patch by Gary Bishop.
4416
4423
4417 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4424 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4418 protection as before, for files passed on the command line. This
4425 protection as before, for files passed on the command line. This
4419 prevents the CrashHandler from kicking in if user files call into
4426 prevents the CrashHandler from kicking in if user files call into
4420 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4427 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4421 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4428 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4422
4429
4423 2003-05-20 *** Released version 0.4.0
4430 2003-05-20 *** Released version 0.4.0
4424
4431
4425 2003-05-20 Fernando Perez <fperez@colorado.edu>
4432 2003-05-20 Fernando Perez <fperez@colorado.edu>
4426
4433
4427 * setup.py: added support for manpages. It's a bit hackish b/c of
4434 * setup.py: added support for manpages. It's a bit hackish b/c of
4428 a bug in the way the bdist_rpm distutils target handles gzipped
4435 a bug in the way the bdist_rpm distutils target handles gzipped
4429 manpages, but it works. After a patch by Jack.
4436 manpages, but it works. After a patch by Jack.
4430
4437
4431 2003-05-19 Fernando Perez <fperez@colorado.edu>
4438 2003-05-19 Fernando Perez <fperez@colorado.edu>
4432
4439
4433 * IPython/numutils.py: added a mockup of the kinds module, since
4440 * IPython/numutils.py: added a mockup of the kinds module, since
4434 it was recently removed from Numeric. This way, numutils will
4441 it was recently removed from Numeric. This way, numutils will
4435 work for all users even if they are missing kinds.
4442 work for all users even if they are missing kinds.
4436
4443
4437 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4444 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4438 failure, which can occur with SWIG-wrapped extensions. After a
4445 failure, which can occur with SWIG-wrapped extensions. After a
4439 crash report from Prabhu.
4446 crash report from Prabhu.
4440
4447
4441 2003-05-16 Fernando Perez <fperez@colorado.edu>
4448 2003-05-16 Fernando Perez <fperez@colorado.edu>
4442
4449
4443 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4450 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4444 protect ipython from user code which may call directly
4451 protect ipython from user code which may call directly
4445 sys.excepthook (this looks like an ipython crash to the user, even
4452 sys.excepthook (this looks like an ipython crash to the user, even
4446 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4453 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4447 This is especially important to help users of WxWindows, but may
4454 This is especially important to help users of WxWindows, but may
4448 also be useful in other cases.
4455 also be useful in other cases.
4449
4456
4450 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4457 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4451 an optional tb_offset to be specified, and to preserve exception
4458 an optional tb_offset to be specified, and to preserve exception
4452 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4459 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4453
4460
4454 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4461 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4455
4462
4456 2003-05-15 Fernando Perez <fperez@colorado.edu>
4463 2003-05-15 Fernando Perez <fperez@colorado.edu>
4457
4464
4458 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4465 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4459 installing for a new user under Windows.
4466 installing for a new user under Windows.
4460
4467
4461 2003-05-12 Fernando Perez <fperez@colorado.edu>
4468 2003-05-12 Fernando Perez <fperez@colorado.edu>
4462
4469
4463 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4470 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4464 handler for Emacs comint-based lines. Currently it doesn't do
4471 handler for Emacs comint-based lines. Currently it doesn't do
4465 much (but importantly, it doesn't update the history cache). In
4472 much (but importantly, it doesn't update the history cache). In
4466 the future it may be expanded if Alex needs more functionality
4473 the future it may be expanded if Alex needs more functionality
4467 there.
4474 there.
4468
4475
4469 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4476 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4470 info to crash reports.
4477 info to crash reports.
4471
4478
4472 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4479 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4473 just like Python's -c. Also fixed crash with invalid -color
4480 just like Python's -c. Also fixed crash with invalid -color
4474 option value at startup. Thanks to Will French
4481 option value at startup. Thanks to Will French
4475 <wfrench-AT-bestweb.net> for the bug report.
4482 <wfrench-AT-bestweb.net> for the bug report.
4476
4483
4477 2003-05-09 Fernando Perez <fperez@colorado.edu>
4484 2003-05-09 Fernando Perez <fperez@colorado.edu>
4478
4485
4479 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4486 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4480 to EvalDict (it's a mapping, after all) and simplified its code
4487 to EvalDict (it's a mapping, after all) and simplified its code
4481 quite a bit, after a nice discussion on c.l.py where Gustavo
4488 quite a bit, after a nice discussion on c.l.py where Gustavo
4482 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4489 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4483
4490
4484 2003-04-30 Fernando Perez <fperez@colorado.edu>
4491 2003-04-30 Fernando Perez <fperez@colorado.edu>
4485
4492
4486 * IPython/genutils.py (timings_out): modified it to reduce its
4493 * IPython/genutils.py (timings_out): modified it to reduce its
4487 overhead in the common reps==1 case.
4494 overhead in the common reps==1 case.
4488
4495
4489 2003-04-29 Fernando Perez <fperez@colorado.edu>
4496 2003-04-29 Fernando Perez <fperez@colorado.edu>
4490
4497
4491 * IPython/genutils.py (timings_out): Modified to use the resource
4498 * IPython/genutils.py (timings_out): Modified to use the resource
4492 module, which avoids the wraparound problems of time.clock().
4499 module, which avoids the wraparound problems of time.clock().
4493
4500
4494 2003-04-17 *** Released version 0.2.15pre4
4501 2003-04-17 *** Released version 0.2.15pre4
4495
4502
4496 2003-04-17 Fernando Perez <fperez@colorado.edu>
4503 2003-04-17 Fernando Perez <fperez@colorado.edu>
4497
4504
4498 * setup.py (scriptfiles): Split windows-specific stuff over to a
4505 * setup.py (scriptfiles): Split windows-specific stuff over to a
4499 separate file, in an attempt to have a Windows GUI installer.
4506 separate file, in an attempt to have a Windows GUI installer.
4500 That didn't work, but part of the groundwork is done.
4507 That didn't work, but part of the groundwork is done.
4501
4508
4502 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4509 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4503 indent/unindent with 4 spaces. Particularly useful in combination
4510 indent/unindent with 4 spaces. Particularly useful in combination
4504 with the new auto-indent option.
4511 with the new auto-indent option.
4505
4512
4506 2003-04-16 Fernando Perez <fperez@colorado.edu>
4513 2003-04-16 Fernando Perez <fperez@colorado.edu>
4507
4514
4508 * IPython/Magic.py: various replacements of self.rc for
4515 * IPython/Magic.py: various replacements of self.rc for
4509 self.shell.rc. A lot more remains to be done to fully disentangle
4516 self.shell.rc. A lot more remains to be done to fully disentangle
4510 this class from the main Shell class.
4517 this class from the main Shell class.
4511
4518
4512 * IPython/GnuplotRuntime.py: added checks for mouse support so
4519 * IPython/GnuplotRuntime.py: added checks for mouse support so
4513 that we don't try to enable it if the current gnuplot doesn't
4520 that we don't try to enable it if the current gnuplot doesn't
4514 really support it. Also added checks so that we don't try to
4521 really support it. Also added checks so that we don't try to
4515 enable persist under Windows (where Gnuplot doesn't recognize the
4522 enable persist under Windows (where Gnuplot doesn't recognize the
4516 option).
4523 option).
4517
4524
4518 * IPython/iplib.py (InteractiveShell.interact): Added optional
4525 * IPython/iplib.py (InteractiveShell.interact): Added optional
4519 auto-indenting code, after a patch by King C. Shu
4526 auto-indenting code, after a patch by King C. Shu
4520 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4527 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4521 get along well with pasting indented code. If I ever figure out
4528 get along well with pasting indented code. If I ever figure out
4522 how to make that part go well, it will become on by default.
4529 how to make that part go well, it will become on by default.
4523
4530
4524 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4531 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4525 crash ipython if there was an unmatched '%' in the user's prompt
4532 crash ipython if there was an unmatched '%' in the user's prompt
4526 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4533 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4527
4534
4528 * IPython/iplib.py (InteractiveShell.interact): removed the
4535 * IPython/iplib.py (InteractiveShell.interact): removed the
4529 ability to ask the user whether he wants to crash or not at the
4536 ability to ask the user whether he wants to crash or not at the
4530 'last line' exception handler. Calling functions at that point
4537 'last line' exception handler. Calling functions at that point
4531 changes the stack, and the error reports would have incorrect
4538 changes the stack, and the error reports would have incorrect
4532 tracebacks.
4539 tracebacks.
4533
4540
4534 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4541 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4535 pass through a peger a pretty-printed form of any object. After a
4542 pass through a peger a pretty-printed form of any object. After a
4536 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4543 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4537
4544
4538 2003-04-14 Fernando Perez <fperez@colorado.edu>
4545 2003-04-14 Fernando Perez <fperez@colorado.edu>
4539
4546
4540 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4547 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4541 all files in ~ would be modified at first install (instead of
4548 all files in ~ would be modified at first install (instead of
4542 ~/.ipython). This could be potentially disastrous, as the
4549 ~/.ipython). This could be potentially disastrous, as the
4543 modification (make line-endings native) could damage binary files.
4550 modification (make line-endings native) could damage binary files.
4544
4551
4545 2003-04-10 Fernando Perez <fperez@colorado.edu>
4552 2003-04-10 Fernando Perez <fperez@colorado.edu>
4546
4553
4547 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4554 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4548 handle only lines which are invalid python. This now means that
4555 handle only lines which are invalid python. This now means that
4549 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4556 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4550 for the bug report.
4557 for the bug report.
4551
4558
4552 2003-04-01 Fernando Perez <fperez@colorado.edu>
4559 2003-04-01 Fernando Perez <fperez@colorado.edu>
4553
4560
4554 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4561 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4555 where failing to set sys.last_traceback would crash pdb.pm().
4562 where failing to set sys.last_traceback would crash pdb.pm().
4556 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4563 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4557 report.
4564 report.
4558
4565
4559 2003-03-25 Fernando Perez <fperez@colorado.edu>
4566 2003-03-25 Fernando Perez <fperez@colorado.edu>
4560
4567
4561 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4568 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4562 before printing it (it had a lot of spurious blank lines at the
4569 before printing it (it had a lot of spurious blank lines at the
4563 end).
4570 end).
4564
4571
4565 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4572 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4566 output would be sent 21 times! Obviously people don't use this
4573 output would be sent 21 times! Obviously people don't use this
4567 too often, or I would have heard about it.
4574 too often, or I would have heard about it.
4568
4575
4569 2003-03-24 Fernando Perez <fperez@colorado.edu>
4576 2003-03-24 Fernando Perez <fperez@colorado.edu>
4570
4577
4571 * setup.py (scriptfiles): renamed the data_files parameter from
4578 * setup.py (scriptfiles): renamed the data_files parameter from
4572 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4579 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4573 for the patch.
4580 for the patch.
4574
4581
4575 2003-03-20 Fernando Perez <fperez@colorado.edu>
4582 2003-03-20 Fernando Perez <fperez@colorado.edu>
4576
4583
4577 * IPython/genutils.py (error): added error() and fatal()
4584 * IPython/genutils.py (error): added error() and fatal()
4578 functions.
4585 functions.
4579
4586
4580 2003-03-18 *** Released version 0.2.15pre3
4587 2003-03-18 *** Released version 0.2.15pre3
4581
4588
4582 2003-03-18 Fernando Perez <fperez@colorado.edu>
4589 2003-03-18 Fernando Perez <fperez@colorado.edu>
4583
4590
4584 * setupext/install_data_ext.py
4591 * setupext/install_data_ext.py
4585 (install_data_ext.initialize_options): Class contributed by Jack
4592 (install_data_ext.initialize_options): Class contributed by Jack
4586 Moffit for fixing the old distutils hack. He is sending this to
4593 Moffit for fixing the old distutils hack. He is sending this to
4587 the distutils folks so in the future we may not need it as a
4594 the distutils folks so in the future we may not need it as a
4588 private fix.
4595 private fix.
4589
4596
4590 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4597 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4591 changes for Debian packaging. See his patch for full details.
4598 changes for Debian packaging. See his patch for full details.
4592 The old distutils hack of making the ipythonrc* files carry a
4599 The old distutils hack of making the ipythonrc* files carry a
4593 bogus .py extension is gone, at last. Examples were moved to a
4600 bogus .py extension is gone, at last. Examples were moved to a
4594 separate subdir under doc/, and the separate executable scripts
4601 separate subdir under doc/, and the separate executable scripts
4595 now live in their own directory. Overall a great cleanup. The
4602 now live in their own directory. Overall a great cleanup. The
4596 manual was updated to use the new files, and setup.py has been
4603 manual was updated to use the new files, and setup.py has been
4597 fixed for this setup.
4604 fixed for this setup.
4598
4605
4599 * IPython/PyColorize.py (Parser.usage): made non-executable and
4606 * IPython/PyColorize.py (Parser.usage): made non-executable and
4600 created a pycolor wrapper around it to be included as a script.
4607 created a pycolor wrapper around it to be included as a script.
4601
4608
4602 2003-03-12 *** Released version 0.2.15pre2
4609 2003-03-12 *** Released version 0.2.15pre2
4603
4610
4604 2003-03-12 Fernando Perez <fperez@colorado.edu>
4611 2003-03-12 Fernando Perez <fperez@colorado.edu>
4605
4612
4606 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4613 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4607 long-standing problem with garbage characters in some terminals.
4614 long-standing problem with garbage characters in some terminals.
4608 The issue was really that the \001 and \002 escapes must _only_ be
4615 The issue was really that the \001 and \002 escapes must _only_ be
4609 passed to input prompts (which call readline), but _never_ to
4616 passed to input prompts (which call readline), but _never_ to
4610 normal text to be printed on screen. I changed ColorANSI to have
4617 normal text to be printed on screen. I changed ColorANSI to have
4611 two classes: TermColors and InputTermColors, each with the
4618 two classes: TermColors and InputTermColors, each with the
4612 appropriate escapes for input prompts or normal text. The code in
4619 appropriate escapes for input prompts or normal text. The code in
4613 Prompts.py got slightly more complicated, but this very old and
4620 Prompts.py got slightly more complicated, but this very old and
4614 annoying bug is finally fixed.
4621 annoying bug is finally fixed.
4615
4622
4616 All the credit for nailing down the real origin of this problem
4623 All the credit for nailing down the real origin of this problem
4617 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4624 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4618 *Many* thanks to him for spending quite a bit of effort on this.
4625 *Many* thanks to him for spending quite a bit of effort on this.
4619
4626
4620 2003-03-05 *** Released version 0.2.15pre1
4627 2003-03-05 *** Released version 0.2.15pre1
4621
4628
4622 2003-03-03 Fernando Perez <fperez@colorado.edu>
4629 2003-03-03 Fernando Perez <fperez@colorado.edu>
4623
4630
4624 * IPython/FakeModule.py: Moved the former _FakeModule to a
4631 * IPython/FakeModule.py: Moved the former _FakeModule to a
4625 separate file, because it's also needed by Magic (to fix a similar
4632 separate file, because it's also needed by Magic (to fix a similar
4626 pickle-related issue in @run).
4633 pickle-related issue in @run).
4627
4634
4628 2003-03-02 Fernando Perez <fperez@colorado.edu>
4635 2003-03-02 Fernando Perez <fperez@colorado.edu>
4629
4636
4630 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4637 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4631 the autocall option at runtime.
4638 the autocall option at runtime.
4632 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4639 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4633 across Magic.py to start separating Magic from InteractiveShell.
4640 across Magic.py to start separating Magic from InteractiveShell.
4634 (Magic._ofind): Fixed to return proper namespace for dotted
4641 (Magic._ofind): Fixed to return proper namespace for dotted
4635 names. Before, a dotted name would always return 'not currently
4642 names. Before, a dotted name would always return 'not currently
4636 defined', because it would find the 'parent'. s.x would be found,
4643 defined', because it would find the 'parent'. s.x would be found,
4637 but since 'x' isn't defined by itself, it would get confused.
4644 but since 'x' isn't defined by itself, it would get confused.
4638 (Magic.magic_run): Fixed pickling problems reported by Ralf
4645 (Magic.magic_run): Fixed pickling problems reported by Ralf
4639 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4646 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4640 that I'd used when Mike Heeter reported similar issues at the
4647 that I'd used when Mike Heeter reported similar issues at the
4641 top-level, but now for @run. It boils down to injecting the
4648 top-level, but now for @run. It boils down to injecting the
4642 namespace where code is being executed with something that looks
4649 namespace where code is being executed with something that looks
4643 enough like a module to fool pickle.dump(). Since a pickle stores
4650 enough like a module to fool pickle.dump(). Since a pickle stores
4644 a named reference to the importing module, we need this for
4651 a named reference to the importing module, we need this for
4645 pickles to save something sensible.
4652 pickles to save something sensible.
4646
4653
4647 * IPython/ipmaker.py (make_IPython): added an autocall option.
4654 * IPython/ipmaker.py (make_IPython): added an autocall option.
4648
4655
4649 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4656 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4650 the auto-eval code. Now autocalling is an option, and the code is
4657 the auto-eval code. Now autocalling is an option, and the code is
4651 also vastly safer. There is no more eval() involved at all.
4658 also vastly safer. There is no more eval() involved at all.
4652
4659
4653 2003-03-01 Fernando Perez <fperez@colorado.edu>
4660 2003-03-01 Fernando Perez <fperez@colorado.edu>
4654
4661
4655 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4662 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4656 dict with named keys instead of a tuple.
4663 dict with named keys instead of a tuple.
4657
4664
4658 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4665 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4659
4666
4660 * setup.py (make_shortcut): Fixed message about directories
4667 * setup.py (make_shortcut): Fixed message about directories
4661 created during Windows installation (the directories were ok, just
4668 created during Windows installation (the directories were ok, just
4662 the printed message was misleading). Thanks to Chris Liechti
4669 the printed message was misleading). Thanks to Chris Liechti
4663 <cliechti-AT-gmx.net> for the heads up.
4670 <cliechti-AT-gmx.net> for the heads up.
4664
4671
4665 2003-02-21 Fernando Perez <fperez@colorado.edu>
4672 2003-02-21 Fernando Perez <fperez@colorado.edu>
4666
4673
4667 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4674 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4668 of ValueError exception when checking for auto-execution. This
4675 of ValueError exception when checking for auto-execution. This
4669 one is raised by things like Numeric arrays arr.flat when the
4676 one is raised by things like Numeric arrays arr.flat when the
4670 array is non-contiguous.
4677 array is non-contiguous.
4671
4678
4672 2003-01-31 Fernando Perez <fperez@colorado.edu>
4679 2003-01-31 Fernando Perez <fperez@colorado.edu>
4673
4680
4674 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4681 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4675 not return any value at all (even though the command would get
4682 not return any value at all (even though the command would get
4676 executed).
4683 executed).
4677 (xsys): Flush stdout right after printing the command to ensure
4684 (xsys): Flush stdout right after printing the command to ensure
4678 proper ordering of commands and command output in the total
4685 proper ordering of commands and command output in the total
4679 output.
4686 output.
4680 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4687 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4681 system/getoutput as defaults. The old ones are kept for
4688 system/getoutput as defaults. The old ones are kept for
4682 compatibility reasons, so no code which uses this library needs
4689 compatibility reasons, so no code which uses this library needs
4683 changing.
4690 changing.
4684
4691
4685 2003-01-27 *** Released version 0.2.14
4692 2003-01-27 *** Released version 0.2.14
4686
4693
4687 2003-01-25 Fernando Perez <fperez@colorado.edu>
4694 2003-01-25 Fernando Perez <fperez@colorado.edu>
4688
4695
4689 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4696 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4690 functions defined in previous edit sessions could not be re-edited
4697 functions defined in previous edit sessions could not be re-edited
4691 (because the temp files were immediately removed). Now temp files
4698 (because the temp files were immediately removed). Now temp files
4692 are removed only at IPython's exit.
4699 are removed only at IPython's exit.
4693 (Magic.magic_run): Improved @run to perform shell-like expansions
4700 (Magic.magic_run): Improved @run to perform shell-like expansions
4694 on its arguments (~users and $VARS). With this, @run becomes more
4701 on its arguments (~users and $VARS). With this, @run becomes more
4695 like a normal command-line.
4702 like a normal command-line.
4696
4703
4697 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4704 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4698 bugs related to embedding and cleaned up that code. A fairly
4705 bugs related to embedding and cleaned up that code. A fairly
4699 important one was the impossibility to access the global namespace
4706 important one was the impossibility to access the global namespace
4700 through the embedded IPython (only local variables were visible).
4707 through the embedded IPython (only local variables were visible).
4701
4708
4702 2003-01-14 Fernando Perez <fperez@colorado.edu>
4709 2003-01-14 Fernando Perez <fperez@colorado.edu>
4703
4710
4704 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4711 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4705 auto-calling to be a bit more conservative. Now it doesn't get
4712 auto-calling to be a bit more conservative. Now it doesn't get
4706 triggered if any of '!=()<>' are in the rest of the input line, to
4713 triggered if any of '!=()<>' are in the rest of the input line, to
4707 allow comparing callables. Thanks to Alex for the heads up.
4714 allow comparing callables. Thanks to Alex for the heads up.
4708
4715
4709 2003-01-07 Fernando Perez <fperez@colorado.edu>
4716 2003-01-07 Fernando Perez <fperez@colorado.edu>
4710
4717
4711 * IPython/genutils.py (page): fixed estimation of the number of
4718 * IPython/genutils.py (page): fixed estimation of the number of
4712 lines in a string to be paged to simply count newlines. This
4719 lines in a string to be paged to simply count newlines. This
4713 prevents over-guessing due to embedded escape sequences. A better
4720 prevents over-guessing due to embedded escape sequences. A better
4714 long-term solution would involve stripping out the control chars
4721 long-term solution would involve stripping out the control chars
4715 for the count, but it's potentially so expensive I just don't
4722 for the count, but it's potentially so expensive I just don't
4716 think it's worth doing.
4723 think it's worth doing.
4717
4724
4718 2002-12-19 *** Released version 0.2.14pre50
4725 2002-12-19 *** Released version 0.2.14pre50
4719
4726
4720 2002-12-19 Fernando Perez <fperez@colorado.edu>
4727 2002-12-19 Fernando Perez <fperez@colorado.edu>
4721
4728
4722 * tools/release (version): Changed release scripts to inform
4729 * tools/release (version): Changed release scripts to inform
4723 Andrea and build a NEWS file with a list of recent changes.
4730 Andrea and build a NEWS file with a list of recent changes.
4724
4731
4725 * IPython/ColorANSI.py (__all__): changed terminal detection
4732 * IPython/ColorANSI.py (__all__): changed terminal detection
4726 code. Seems to work better for xterms without breaking
4733 code. Seems to work better for xterms without breaking
4727 konsole. Will need more testing to determine if WinXP and Mac OSX
4734 konsole. Will need more testing to determine if WinXP and Mac OSX
4728 also work ok.
4735 also work ok.
4729
4736
4730 2002-12-18 *** Released version 0.2.14pre49
4737 2002-12-18 *** Released version 0.2.14pre49
4731
4738
4732 2002-12-18 Fernando Perez <fperez@colorado.edu>
4739 2002-12-18 Fernando Perez <fperez@colorado.edu>
4733
4740
4734 * Docs: added new info about Mac OSX, from Andrea.
4741 * Docs: added new info about Mac OSX, from Andrea.
4735
4742
4736 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4743 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4737 allow direct plotting of python strings whose format is the same
4744 allow direct plotting of python strings whose format is the same
4738 of gnuplot data files.
4745 of gnuplot data files.
4739
4746
4740 2002-12-16 Fernando Perez <fperez@colorado.edu>
4747 2002-12-16 Fernando Perez <fperez@colorado.edu>
4741
4748
4742 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4749 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4743 value of exit question to be acknowledged.
4750 value of exit question to be acknowledged.
4744
4751
4745 2002-12-03 Fernando Perez <fperez@colorado.edu>
4752 2002-12-03 Fernando Perez <fperez@colorado.edu>
4746
4753
4747 * IPython/ipmaker.py: removed generators, which had been added
4754 * IPython/ipmaker.py: removed generators, which had been added
4748 by mistake in an earlier debugging run. This was causing trouble
4755 by mistake in an earlier debugging run. This was causing trouble
4749 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4756 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4750 for pointing this out.
4757 for pointing this out.
4751
4758
4752 2002-11-17 Fernando Perez <fperez@colorado.edu>
4759 2002-11-17 Fernando Perez <fperez@colorado.edu>
4753
4760
4754 * Manual: updated the Gnuplot section.
4761 * Manual: updated the Gnuplot section.
4755
4762
4756 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4763 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4757 a much better split of what goes in Runtime and what goes in
4764 a much better split of what goes in Runtime and what goes in
4758 Interactive.
4765 Interactive.
4759
4766
4760 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4767 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4761 being imported from iplib.
4768 being imported from iplib.
4762
4769
4763 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4770 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4764 for command-passing. Now the global Gnuplot instance is called
4771 for command-passing. Now the global Gnuplot instance is called
4765 'gp' instead of 'g', which was really a far too fragile and
4772 'gp' instead of 'g', which was really a far too fragile and
4766 common name.
4773 common name.
4767
4774
4768 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4775 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4769 bounding boxes generated by Gnuplot for square plots.
4776 bounding boxes generated by Gnuplot for square plots.
4770
4777
4771 * IPython/genutils.py (popkey): new function added. I should
4778 * IPython/genutils.py (popkey): new function added. I should
4772 suggest this on c.l.py as a dict method, it seems useful.
4779 suggest this on c.l.py as a dict method, it seems useful.
4773
4780
4774 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4781 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4775 to transparently handle PostScript generation. MUCH better than
4782 to transparently handle PostScript generation. MUCH better than
4776 the previous plot_eps/replot_eps (which I removed now). The code
4783 the previous plot_eps/replot_eps (which I removed now). The code
4777 is also fairly clean and well documented now (including
4784 is also fairly clean and well documented now (including
4778 docstrings).
4785 docstrings).
4779
4786
4780 2002-11-13 Fernando Perez <fperez@colorado.edu>
4787 2002-11-13 Fernando Perez <fperez@colorado.edu>
4781
4788
4782 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4789 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4783 (inconsistent with options).
4790 (inconsistent with options).
4784
4791
4785 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4792 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4786 manually disabled, I don't know why. Fixed it.
4793 manually disabled, I don't know why. Fixed it.
4787 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4794 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4788 eps output.
4795 eps output.
4789
4796
4790 2002-11-12 Fernando Perez <fperez@colorado.edu>
4797 2002-11-12 Fernando Perez <fperez@colorado.edu>
4791
4798
4792 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4799 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4793 don't propagate up to caller. Fixes crash reported by François
4800 don't propagate up to caller. Fixes crash reported by François
4794 Pinard.
4801 Pinard.
4795
4802
4796 2002-11-09 Fernando Perez <fperez@colorado.edu>
4803 2002-11-09 Fernando Perez <fperez@colorado.edu>
4797
4804
4798 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4805 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4799 history file for new users.
4806 history file for new users.
4800 (make_IPython): fixed bug where initial install would leave the
4807 (make_IPython): fixed bug where initial install would leave the
4801 user running in the .ipython dir.
4808 user running in the .ipython dir.
4802 (make_IPython): fixed bug where config dir .ipython would be
4809 (make_IPython): fixed bug where config dir .ipython would be
4803 created regardless of the given -ipythondir option. Thanks to Cory
4810 created regardless of the given -ipythondir option. Thanks to Cory
4804 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4811 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4805
4812
4806 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4813 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4807 type confirmations. Will need to use it in all of IPython's code
4814 type confirmations. Will need to use it in all of IPython's code
4808 consistently.
4815 consistently.
4809
4816
4810 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4817 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4811 context to print 31 lines instead of the default 5. This will make
4818 context to print 31 lines instead of the default 5. This will make
4812 the crash reports extremely detailed in case the problem is in
4819 the crash reports extremely detailed in case the problem is in
4813 libraries I don't have access to.
4820 libraries I don't have access to.
4814
4821
4815 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4822 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4816 line of defense' code to still crash, but giving users fair
4823 line of defense' code to still crash, but giving users fair
4817 warning. I don't want internal errors to go unreported: if there's
4824 warning. I don't want internal errors to go unreported: if there's
4818 an internal problem, IPython should crash and generate a full
4825 an internal problem, IPython should crash and generate a full
4819 report.
4826 report.
4820
4827
4821 2002-11-08 Fernando Perez <fperez@colorado.edu>
4828 2002-11-08 Fernando Perez <fperez@colorado.edu>
4822
4829
4823 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4830 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4824 otherwise uncaught exceptions which can appear if people set
4831 otherwise uncaught exceptions which can appear if people set
4825 sys.stdout to something badly broken. Thanks to a crash report
4832 sys.stdout to something badly broken. Thanks to a crash report
4826 from henni-AT-mail.brainbot.com.
4833 from henni-AT-mail.brainbot.com.
4827
4834
4828 2002-11-04 Fernando Perez <fperez@colorado.edu>
4835 2002-11-04 Fernando Perez <fperez@colorado.edu>
4829
4836
4830 * IPython/iplib.py (InteractiveShell.interact): added
4837 * IPython/iplib.py (InteractiveShell.interact): added
4831 __IPYTHON__active to the builtins. It's a flag which goes on when
4838 __IPYTHON__active to the builtins. It's a flag which goes on when
4832 the interaction starts and goes off again when it stops. This
4839 the interaction starts and goes off again when it stops. This
4833 allows embedding code to detect being inside IPython. Before this
4840 allows embedding code to detect being inside IPython. Before this
4834 was done via __IPYTHON__, but that only shows that an IPython
4841 was done via __IPYTHON__, but that only shows that an IPython
4835 instance has been created.
4842 instance has been created.
4836
4843
4837 * IPython/Magic.py (Magic.magic_env): I realized that in a
4844 * IPython/Magic.py (Magic.magic_env): I realized that in a
4838 UserDict, instance.data holds the data as a normal dict. So I
4845 UserDict, instance.data holds the data as a normal dict. So I
4839 modified @env to return os.environ.data instead of rebuilding a
4846 modified @env to return os.environ.data instead of rebuilding a
4840 dict by hand.
4847 dict by hand.
4841
4848
4842 2002-11-02 Fernando Perez <fperez@colorado.edu>
4849 2002-11-02 Fernando Perez <fperez@colorado.edu>
4843
4850
4844 * IPython/genutils.py (warn): changed so that level 1 prints no
4851 * IPython/genutils.py (warn): changed so that level 1 prints no
4845 header. Level 2 is now the default (with 'WARNING' header, as
4852 header. Level 2 is now the default (with 'WARNING' header, as
4846 before). I think I tracked all places where changes were needed in
4853 before). I think I tracked all places where changes were needed in
4847 IPython, but outside code using the old level numbering may have
4854 IPython, but outside code using the old level numbering may have
4848 broken.
4855 broken.
4849
4856
4850 * IPython/iplib.py (InteractiveShell.runcode): added this to
4857 * IPython/iplib.py (InteractiveShell.runcode): added this to
4851 handle the tracebacks in SystemExit traps correctly. The previous
4858 handle the tracebacks in SystemExit traps correctly. The previous
4852 code (through interact) was printing more of the stack than
4859 code (through interact) was printing more of the stack than
4853 necessary, showing IPython internal code to the user.
4860 necessary, showing IPython internal code to the user.
4854
4861
4855 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4862 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4856 default. Now that the default at the confirmation prompt is yes,
4863 default. Now that the default at the confirmation prompt is yes,
4857 it's not so intrusive. François' argument that ipython sessions
4864 it's not so intrusive. François' argument that ipython sessions
4858 tend to be complex enough not to lose them from an accidental C-d,
4865 tend to be complex enough not to lose them from an accidental C-d,
4859 is a valid one.
4866 is a valid one.
4860
4867
4861 * IPython/iplib.py (InteractiveShell.interact): added a
4868 * IPython/iplib.py (InteractiveShell.interact): added a
4862 showtraceback() call to the SystemExit trap, and modified the exit
4869 showtraceback() call to the SystemExit trap, and modified the exit
4863 confirmation to have yes as the default.
4870 confirmation to have yes as the default.
4864
4871
4865 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4872 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4866 this file. It's been gone from the code for a long time, this was
4873 this file. It's been gone from the code for a long time, this was
4867 simply leftover junk.
4874 simply leftover junk.
4868
4875
4869 2002-11-01 Fernando Perez <fperez@colorado.edu>
4876 2002-11-01 Fernando Perez <fperez@colorado.edu>
4870
4877
4871 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4878 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4872 added. If set, IPython now traps EOF and asks for
4879 added. If set, IPython now traps EOF and asks for
4873 confirmation. After a request by François Pinard.
4880 confirmation. After a request by François Pinard.
4874
4881
4875 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4882 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4876 of @abort, and with a new (better) mechanism for handling the
4883 of @abort, and with a new (better) mechanism for handling the
4877 exceptions.
4884 exceptions.
4878
4885
4879 2002-10-27 Fernando Perez <fperez@colorado.edu>
4886 2002-10-27 Fernando Perez <fperez@colorado.edu>
4880
4887
4881 * IPython/usage.py (__doc__): updated the --help information and
4888 * IPython/usage.py (__doc__): updated the --help information and
4882 the ipythonrc file to indicate that -log generates
4889 the ipythonrc file to indicate that -log generates
4883 ./ipython.log. Also fixed the corresponding info in @logstart.
4890 ./ipython.log. Also fixed the corresponding info in @logstart.
4884 This and several other fixes in the manuals thanks to reports by
4891 This and several other fixes in the manuals thanks to reports by
4885 François Pinard <pinard-AT-iro.umontreal.ca>.
4892 François Pinard <pinard-AT-iro.umontreal.ca>.
4886
4893
4887 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4894 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4888 refer to @logstart (instead of @log, which doesn't exist).
4895 refer to @logstart (instead of @log, which doesn't exist).
4889
4896
4890 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4897 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4891 AttributeError crash. Thanks to Christopher Armstrong
4898 AttributeError crash. Thanks to Christopher Armstrong
4892 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4899 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4893 introduced recently (in 0.2.14pre37) with the fix to the eval
4900 introduced recently (in 0.2.14pre37) with the fix to the eval
4894 problem mentioned below.
4901 problem mentioned below.
4895
4902
4896 2002-10-17 Fernando Perez <fperez@colorado.edu>
4903 2002-10-17 Fernando Perez <fperez@colorado.edu>
4897
4904
4898 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4905 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4899 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4906 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4900
4907
4901 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4908 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4902 this function to fix a problem reported by Alex Schmolck. He saw
4909 this function to fix a problem reported by Alex Schmolck. He saw
4903 it with list comprehensions and generators, which were getting
4910 it with list comprehensions and generators, which were getting
4904 called twice. The real problem was an 'eval' call in testing for
4911 called twice. The real problem was an 'eval' call in testing for
4905 automagic which was evaluating the input line silently.
4912 automagic which was evaluating the input line silently.
4906
4913
4907 This is a potentially very nasty bug, if the input has side
4914 This is a potentially very nasty bug, if the input has side
4908 effects which must not be repeated. The code is much cleaner now,
4915 effects which must not be repeated. The code is much cleaner now,
4909 without any blanket 'except' left and with a regexp test for
4916 without any blanket 'except' left and with a regexp test for
4910 actual function names.
4917 actual function names.
4911
4918
4912 But an eval remains, which I'm not fully comfortable with. I just
4919 But an eval remains, which I'm not fully comfortable with. I just
4913 don't know how to find out if an expression could be a callable in
4920 don't know how to find out if an expression could be a callable in
4914 the user's namespace without doing an eval on the string. However
4921 the user's namespace without doing an eval on the string. However
4915 that string is now much more strictly checked so that no code
4922 that string is now much more strictly checked so that no code
4916 slips by, so the eval should only happen for things that can
4923 slips by, so the eval should only happen for things that can
4917 really be only function/method names.
4924 really be only function/method names.
4918
4925
4919 2002-10-15 Fernando Perez <fperez@colorado.edu>
4926 2002-10-15 Fernando Perez <fperez@colorado.edu>
4920
4927
4921 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4928 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4922 OSX information to main manual, removed README_Mac_OSX file from
4929 OSX information to main manual, removed README_Mac_OSX file from
4923 distribution. Also updated credits for recent additions.
4930 distribution. Also updated credits for recent additions.
4924
4931
4925 2002-10-10 Fernando Perez <fperez@colorado.edu>
4932 2002-10-10 Fernando Perez <fperez@colorado.edu>
4926
4933
4927 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4934 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4928 terminal-related issues. Many thanks to Andrea Riciputi
4935 terminal-related issues. Many thanks to Andrea Riciputi
4929 <andrea.riciputi-AT-libero.it> for writing it.
4936 <andrea.riciputi-AT-libero.it> for writing it.
4930
4937
4931 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4938 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4932 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4939 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4933
4940
4934 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4941 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4935 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4942 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4936 <syver-en-AT-online.no> who both submitted patches for this problem.
4943 <syver-en-AT-online.no> who both submitted patches for this problem.
4937
4944
4938 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4945 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4939 global embedding to make sure that things don't overwrite user
4946 global embedding to make sure that things don't overwrite user
4940 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4947 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4941
4948
4942 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4949 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4943 compatibility. Thanks to Hayden Callow
4950 compatibility. Thanks to Hayden Callow
4944 <h.callow-AT-elec.canterbury.ac.nz>
4951 <h.callow-AT-elec.canterbury.ac.nz>
4945
4952
4946 2002-10-04 Fernando Perez <fperez@colorado.edu>
4953 2002-10-04 Fernando Perez <fperez@colorado.edu>
4947
4954
4948 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4955 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4949 Gnuplot.File objects.
4956 Gnuplot.File objects.
4950
4957
4951 2002-07-23 Fernando Perez <fperez@colorado.edu>
4958 2002-07-23 Fernando Perez <fperez@colorado.edu>
4952
4959
4953 * IPython/genutils.py (timing): Added timings() and timing() for
4960 * IPython/genutils.py (timing): Added timings() and timing() for
4954 quick access to the most commonly needed data, the execution
4961 quick access to the most commonly needed data, the execution
4955 times. Old timing() renamed to timings_out().
4962 times. Old timing() renamed to timings_out().
4956
4963
4957 2002-07-18 Fernando Perez <fperez@colorado.edu>
4964 2002-07-18 Fernando Perez <fperez@colorado.edu>
4958
4965
4959 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4966 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4960 bug with nested instances disrupting the parent's tab completion.
4967 bug with nested instances disrupting the parent's tab completion.
4961
4968
4962 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4969 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4963 all_completions code to begin the emacs integration.
4970 all_completions code to begin the emacs integration.
4964
4971
4965 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4972 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4966 argument to allow titling individual arrays when plotting.
4973 argument to allow titling individual arrays when plotting.
4967
4974
4968 2002-07-15 Fernando Perez <fperez@colorado.edu>
4975 2002-07-15 Fernando Perez <fperez@colorado.edu>
4969
4976
4970 * setup.py (make_shortcut): changed to retrieve the value of
4977 * setup.py (make_shortcut): changed to retrieve the value of
4971 'Program Files' directory from the registry (this value changes in
4978 'Program Files' directory from the registry (this value changes in
4972 non-english versions of Windows). Thanks to Thomas Fanslau
4979 non-english versions of Windows). Thanks to Thomas Fanslau
4973 <tfanslau-AT-gmx.de> for the report.
4980 <tfanslau-AT-gmx.de> for the report.
4974
4981
4975 2002-07-10 Fernando Perez <fperez@colorado.edu>
4982 2002-07-10 Fernando Perez <fperez@colorado.edu>
4976
4983
4977 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4984 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4978 a bug in pdb, which crashes if a line with only whitespace is
4985 a bug in pdb, which crashes if a line with only whitespace is
4979 entered. Bug report submitted to sourceforge.
4986 entered. Bug report submitted to sourceforge.
4980
4987
4981 2002-07-09 Fernando Perez <fperez@colorado.edu>
4988 2002-07-09 Fernando Perez <fperez@colorado.edu>
4982
4989
4983 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4990 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4984 reporting exceptions (it's a bug in inspect.py, I just set a
4991 reporting exceptions (it's a bug in inspect.py, I just set a
4985 workaround).
4992 workaround).
4986
4993
4987 2002-07-08 Fernando Perez <fperez@colorado.edu>
4994 2002-07-08 Fernando Perez <fperez@colorado.edu>
4988
4995
4989 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4996 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4990 __IPYTHON__ in __builtins__ to show up in user_ns.
4997 __IPYTHON__ in __builtins__ to show up in user_ns.
4991
4998
4992 2002-07-03 Fernando Perez <fperez@colorado.edu>
4999 2002-07-03 Fernando Perez <fperez@colorado.edu>
4993
5000
4994 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5001 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4995 name from @gp_set_instance to @gp_set_default.
5002 name from @gp_set_instance to @gp_set_default.
4996
5003
4997 * IPython/ipmaker.py (make_IPython): default editor value set to
5004 * IPython/ipmaker.py (make_IPython): default editor value set to
4998 '0' (a string), to match the rc file. Otherwise will crash when
5005 '0' (a string), to match the rc file. Otherwise will crash when
4999 .strip() is called on it.
5006 .strip() is called on it.
5000
5007
5001
5008
5002 2002-06-28 Fernando Perez <fperez@colorado.edu>
5009 2002-06-28 Fernando Perez <fperez@colorado.edu>
5003
5010
5004 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5011 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5005 of files in current directory when a file is executed via
5012 of files in current directory when a file is executed via
5006 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5013 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5007
5014
5008 * setup.py (manfiles): fix for rpm builds, submitted by RA
5015 * setup.py (manfiles): fix for rpm builds, submitted by RA
5009 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5016 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5010
5017
5011 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5018 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5012 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5019 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5013 string!). A. Schmolck caught this one.
5020 string!). A. Schmolck caught this one.
5014
5021
5015 2002-06-27 Fernando Perez <fperez@colorado.edu>
5022 2002-06-27 Fernando Perez <fperez@colorado.edu>
5016
5023
5017 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5024 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5018 defined files at the cmd line. __name__ wasn't being set to
5025 defined files at the cmd line. __name__ wasn't being set to
5019 __main__.
5026 __main__.
5020
5027
5021 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5028 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5022 regular lists and tuples besides Numeric arrays.
5029 regular lists and tuples besides Numeric arrays.
5023
5030
5024 * IPython/Prompts.py (CachedOutput.__call__): Added output
5031 * IPython/Prompts.py (CachedOutput.__call__): Added output
5025 supression for input ending with ';'. Similar to Mathematica and
5032 supression for input ending with ';'. Similar to Mathematica and
5026 Matlab. The _* vars and Out[] list are still updated, just like
5033 Matlab. The _* vars and Out[] list are still updated, just like
5027 Mathematica behaves.
5034 Mathematica behaves.
5028
5035
5029 2002-06-25 Fernando Perez <fperez@colorado.edu>
5036 2002-06-25 Fernando Perez <fperez@colorado.edu>
5030
5037
5031 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5038 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5032 .ini extensions for profiels under Windows.
5039 .ini extensions for profiels under Windows.
5033
5040
5034 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5041 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5035 string form. Fix contributed by Alexander Schmolck
5042 string form. Fix contributed by Alexander Schmolck
5036 <a.schmolck-AT-gmx.net>
5043 <a.schmolck-AT-gmx.net>
5037
5044
5038 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5045 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5039 pre-configured Gnuplot instance.
5046 pre-configured Gnuplot instance.
5040
5047
5041 2002-06-21 Fernando Perez <fperez@colorado.edu>
5048 2002-06-21 Fernando Perez <fperez@colorado.edu>
5042
5049
5043 * IPython/numutils.py (exp_safe): new function, works around the
5050 * IPython/numutils.py (exp_safe): new function, works around the
5044 underflow problems in Numeric.
5051 underflow problems in Numeric.
5045 (log2): New fn. Safe log in base 2: returns exact integer answer
5052 (log2): New fn. Safe log in base 2: returns exact integer answer
5046 for exact integer powers of 2.
5053 for exact integer powers of 2.
5047
5054
5048 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5055 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5049 properly.
5056 properly.
5050
5057
5051 2002-06-20 Fernando Perez <fperez@colorado.edu>
5058 2002-06-20 Fernando Perez <fperez@colorado.edu>
5052
5059
5053 * IPython/genutils.py (timing): new function like
5060 * IPython/genutils.py (timing): new function like
5054 Mathematica's. Similar to time_test, but returns more info.
5061 Mathematica's. Similar to time_test, but returns more info.
5055
5062
5056 2002-06-18 Fernando Perez <fperez@colorado.edu>
5063 2002-06-18 Fernando Perez <fperez@colorado.edu>
5057
5064
5058 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5065 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5059 according to Mike Heeter's suggestions.
5066 according to Mike Heeter's suggestions.
5060
5067
5061 2002-06-16 Fernando Perez <fperez@colorado.edu>
5068 2002-06-16 Fernando Perez <fperez@colorado.edu>
5062
5069
5063 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5070 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5064 system. GnuplotMagic is gone as a user-directory option. New files
5071 system. GnuplotMagic is gone as a user-directory option. New files
5065 make it easier to use all the gnuplot stuff both from external
5072 make it easier to use all the gnuplot stuff both from external
5066 programs as well as from IPython. Had to rewrite part of
5073 programs as well as from IPython. Had to rewrite part of
5067 hardcopy() b/c of a strange bug: often the ps files simply don't
5074 hardcopy() b/c of a strange bug: often the ps files simply don't
5068 get created, and require a repeat of the command (often several
5075 get created, and require a repeat of the command (often several
5069 times).
5076 times).
5070
5077
5071 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5078 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5072 resolve output channel at call time, so that if sys.stderr has
5079 resolve output channel at call time, so that if sys.stderr has
5073 been redirected by user this gets honored.
5080 been redirected by user this gets honored.
5074
5081
5075 2002-06-13 Fernando Perez <fperez@colorado.edu>
5082 2002-06-13 Fernando Perez <fperez@colorado.edu>
5076
5083
5077 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5084 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5078 IPShell. Kept a copy with the old names to avoid breaking people's
5085 IPShell. Kept a copy with the old names to avoid breaking people's
5079 embedded code.
5086 embedded code.
5080
5087
5081 * IPython/ipython: simplified it to the bare minimum after
5088 * IPython/ipython: simplified it to the bare minimum after
5082 Holger's suggestions. Added info about how to use it in
5089 Holger's suggestions. Added info about how to use it in
5083 PYTHONSTARTUP.
5090 PYTHONSTARTUP.
5084
5091
5085 * IPython/Shell.py (IPythonShell): changed the options passing
5092 * IPython/Shell.py (IPythonShell): changed the options passing
5086 from a string with funky %s replacements to a straight list. Maybe
5093 from a string with funky %s replacements to a straight list. Maybe
5087 a bit more typing, but it follows sys.argv conventions, so there's
5094 a bit more typing, but it follows sys.argv conventions, so there's
5088 less special-casing to remember.
5095 less special-casing to remember.
5089
5096
5090 2002-06-12 Fernando Perez <fperez@colorado.edu>
5097 2002-06-12 Fernando Perez <fperez@colorado.edu>
5091
5098
5092 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5099 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5093 command. Thanks to a suggestion by Mike Heeter.
5100 command. Thanks to a suggestion by Mike Heeter.
5094 (Magic.magic_pfile): added behavior to look at filenames if given
5101 (Magic.magic_pfile): added behavior to look at filenames if given
5095 arg is not a defined object.
5102 arg is not a defined object.
5096 (Magic.magic_save): New @save function to save code snippets. Also
5103 (Magic.magic_save): New @save function to save code snippets. Also
5097 a Mike Heeter idea.
5104 a Mike Heeter idea.
5098
5105
5099 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5106 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5100 plot() and replot(). Much more convenient now, especially for
5107 plot() and replot(). Much more convenient now, especially for
5101 interactive use.
5108 interactive use.
5102
5109
5103 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5110 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5104 filenames.
5111 filenames.
5105
5112
5106 2002-06-02 Fernando Perez <fperez@colorado.edu>
5113 2002-06-02 Fernando Perez <fperez@colorado.edu>
5107
5114
5108 * IPython/Struct.py (Struct.__init__): modified to admit
5115 * IPython/Struct.py (Struct.__init__): modified to admit
5109 initialization via another struct.
5116 initialization via another struct.
5110
5117
5111 * IPython/genutils.py (SystemExec.__init__): New stateful
5118 * IPython/genutils.py (SystemExec.__init__): New stateful
5112 interface to xsys and bq. Useful for writing system scripts.
5119 interface to xsys and bq. Useful for writing system scripts.
5113
5120
5114 2002-05-30 Fernando Perez <fperez@colorado.edu>
5121 2002-05-30 Fernando Perez <fperez@colorado.edu>
5115
5122
5116 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5123 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5117 documents. This will make the user download smaller (it's getting
5124 documents. This will make the user download smaller (it's getting
5118 too big).
5125 too big).
5119
5126
5120 2002-05-29 Fernando Perez <fperez@colorado.edu>
5127 2002-05-29 Fernando Perez <fperez@colorado.edu>
5121
5128
5122 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5129 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5123 fix problems with shelve and pickle. Seems to work, but I don't
5130 fix problems with shelve and pickle. Seems to work, but I don't
5124 know if corner cases break it. Thanks to Mike Heeter
5131 know if corner cases break it. Thanks to Mike Heeter
5125 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5132 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5126
5133
5127 2002-05-24 Fernando Perez <fperez@colorado.edu>
5134 2002-05-24 Fernando Perez <fperez@colorado.edu>
5128
5135
5129 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5136 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5130 macros having broken.
5137 macros having broken.
5131
5138
5132 2002-05-21 Fernando Perez <fperez@colorado.edu>
5139 2002-05-21 Fernando Perez <fperez@colorado.edu>
5133
5140
5134 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5141 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5135 introduced logging bug: all history before logging started was
5142 introduced logging bug: all history before logging started was
5136 being written one character per line! This came from the redesign
5143 being written one character per line! This came from the redesign
5137 of the input history as a special list which slices to strings,
5144 of the input history as a special list which slices to strings,
5138 not to lists.
5145 not to lists.
5139
5146
5140 2002-05-20 Fernando Perez <fperez@colorado.edu>
5147 2002-05-20 Fernando Perez <fperez@colorado.edu>
5141
5148
5142 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5149 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5143 be an attribute of all classes in this module. The design of these
5150 be an attribute of all classes in this module. The design of these
5144 classes needs some serious overhauling.
5151 classes needs some serious overhauling.
5145
5152
5146 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5153 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5147 which was ignoring '_' in option names.
5154 which was ignoring '_' in option names.
5148
5155
5149 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5156 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5150 'Verbose_novars' to 'Context' and made it the new default. It's a
5157 'Verbose_novars' to 'Context' and made it the new default. It's a
5151 bit more readable and also safer than verbose.
5158 bit more readable and also safer than verbose.
5152
5159
5153 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5160 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5154 triple-quoted strings.
5161 triple-quoted strings.
5155
5162
5156 * IPython/OInspect.py (__all__): new module exposing the object
5163 * IPython/OInspect.py (__all__): new module exposing the object
5157 introspection facilities. Now the corresponding magics are dummy
5164 introspection facilities. Now the corresponding magics are dummy
5158 wrappers around this. Having this module will make it much easier
5165 wrappers around this. Having this module will make it much easier
5159 to put these functions into our modified pdb.
5166 to put these functions into our modified pdb.
5160 This new object inspector system uses the new colorizing module,
5167 This new object inspector system uses the new colorizing module,
5161 so source code and other things are nicely syntax highlighted.
5168 so source code and other things are nicely syntax highlighted.
5162
5169
5163 2002-05-18 Fernando Perez <fperez@colorado.edu>
5170 2002-05-18 Fernando Perez <fperez@colorado.edu>
5164
5171
5165 * IPython/ColorANSI.py: Split the coloring tools into a separate
5172 * IPython/ColorANSI.py: Split the coloring tools into a separate
5166 module so I can use them in other code easier (they were part of
5173 module so I can use them in other code easier (they were part of
5167 ultraTB).
5174 ultraTB).
5168
5175
5169 2002-05-17 Fernando Perez <fperez@colorado.edu>
5176 2002-05-17 Fernando Perez <fperez@colorado.edu>
5170
5177
5171 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5178 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5172 fixed it to set the global 'g' also to the called instance, as
5179 fixed it to set the global 'g' also to the called instance, as
5173 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5180 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5174 user's 'g' variables).
5181 user's 'g' variables).
5175
5182
5176 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5183 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5177 global variables (aliases to _ih,_oh) so that users which expect
5184 global variables (aliases to _ih,_oh) so that users which expect
5178 In[5] or Out[7] to work aren't unpleasantly surprised.
5185 In[5] or Out[7] to work aren't unpleasantly surprised.
5179 (InputList.__getslice__): new class to allow executing slices of
5186 (InputList.__getslice__): new class to allow executing slices of
5180 input history directly. Very simple class, complements the use of
5187 input history directly. Very simple class, complements the use of
5181 macros.
5188 macros.
5182
5189
5183 2002-05-16 Fernando Perez <fperez@colorado.edu>
5190 2002-05-16 Fernando Perez <fperez@colorado.edu>
5184
5191
5185 * setup.py (docdirbase): make doc directory be just doc/IPython
5192 * setup.py (docdirbase): make doc directory be just doc/IPython
5186 without version numbers, it will reduce clutter for users.
5193 without version numbers, it will reduce clutter for users.
5187
5194
5188 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5195 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5189 execfile call to prevent possible memory leak. See for details:
5196 execfile call to prevent possible memory leak. See for details:
5190 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5197 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5191
5198
5192 2002-05-15 Fernando Perez <fperez@colorado.edu>
5199 2002-05-15 Fernando Perez <fperez@colorado.edu>
5193
5200
5194 * IPython/Magic.py (Magic.magic_psource): made the object
5201 * IPython/Magic.py (Magic.magic_psource): made the object
5195 introspection names be more standard: pdoc, pdef, pfile and
5202 introspection names be more standard: pdoc, pdef, pfile and
5196 psource. They all print/page their output, and it makes
5203 psource. They all print/page their output, and it makes
5197 remembering them easier. Kept old names for compatibility as
5204 remembering them easier. Kept old names for compatibility as
5198 aliases.
5205 aliases.
5199
5206
5200 2002-05-14 Fernando Perez <fperez@colorado.edu>
5207 2002-05-14 Fernando Perez <fperez@colorado.edu>
5201
5208
5202 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5209 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5203 what the mouse problem was. The trick is to use gnuplot with temp
5210 what the mouse problem was. The trick is to use gnuplot with temp
5204 files and NOT with pipes (for data communication), because having
5211 files and NOT with pipes (for data communication), because having
5205 both pipes and the mouse on is bad news.
5212 both pipes and the mouse on is bad news.
5206
5213
5207 2002-05-13 Fernando Perez <fperez@colorado.edu>
5214 2002-05-13 Fernando Perez <fperez@colorado.edu>
5208
5215
5209 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5216 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5210 bug. Information would be reported about builtins even when
5217 bug. Information would be reported about builtins even when
5211 user-defined functions overrode them.
5218 user-defined functions overrode them.
5212
5219
5213 2002-05-11 Fernando Perez <fperez@colorado.edu>
5220 2002-05-11 Fernando Perez <fperez@colorado.edu>
5214
5221
5215 * IPython/__init__.py (__all__): removed FlexCompleter from
5222 * IPython/__init__.py (__all__): removed FlexCompleter from
5216 __all__ so that things don't fail in platforms without readline.
5223 __all__ so that things don't fail in platforms without readline.
5217
5224
5218 2002-05-10 Fernando Perez <fperez@colorado.edu>
5225 2002-05-10 Fernando Perez <fperez@colorado.edu>
5219
5226
5220 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5227 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5221 it requires Numeric, effectively making Numeric a dependency for
5228 it requires Numeric, effectively making Numeric a dependency for
5222 IPython.
5229 IPython.
5223
5230
5224 * Released 0.2.13
5231 * Released 0.2.13
5225
5232
5226 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5233 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5227 profiler interface. Now all the major options from the profiler
5234 profiler interface. Now all the major options from the profiler
5228 module are directly supported in IPython, both for single
5235 module are directly supported in IPython, both for single
5229 expressions (@prun) and for full programs (@run -p).
5236 expressions (@prun) and for full programs (@run -p).
5230
5237
5231 2002-05-09 Fernando Perez <fperez@colorado.edu>
5238 2002-05-09 Fernando Perez <fperez@colorado.edu>
5232
5239
5233 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5240 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5234 magic properly formatted for screen.
5241 magic properly formatted for screen.
5235
5242
5236 * setup.py (make_shortcut): Changed things to put pdf version in
5243 * setup.py (make_shortcut): Changed things to put pdf version in
5237 doc/ instead of doc/manual (had to change lyxport a bit).
5244 doc/ instead of doc/manual (had to change lyxport a bit).
5238
5245
5239 * IPython/Magic.py (Profile.string_stats): made profile runs go
5246 * IPython/Magic.py (Profile.string_stats): made profile runs go
5240 through pager (they are long and a pager allows searching, saving,
5247 through pager (they are long and a pager allows searching, saving,
5241 etc.)
5248 etc.)
5242
5249
5243 2002-05-08 Fernando Perez <fperez@colorado.edu>
5250 2002-05-08 Fernando Perez <fperez@colorado.edu>
5244
5251
5245 * Released 0.2.12
5252 * Released 0.2.12
5246
5253
5247 2002-05-06 Fernando Perez <fperez@colorado.edu>
5254 2002-05-06 Fernando Perez <fperez@colorado.edu>
5248
5255
5249 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5256 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5250 introduced); 'hist n1 n2' was broken.
5257 introduced); 'hist n1 n2' was broken.
5251 (Magic.magic_pdb): added optional on/off arguments to @pdb
5258 (Magic.magic_pdb): added optional on/off arguments to @pdb
5252 (Magic.magic_run): added option -i to @run, which executes code in
5259 (Magic.magic_run): added option -i to @run, which executes code in
5253 the IPython namespace instead of a clean one. Also added @irun as
5260 the IPython namespace instead of a clean one. Also added @irun as
5254 an alias to @run -i.
5261 an alias to @run -i.
5255
5262
5256 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5263 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5257 fixed (it didn't really do anything, the namespaces were wrong).
5264 fixed (it didn't really do anything, the namespaces were wrong).
5258
5265
5259 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5266 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5260
5267
5261 * IPython/__init__.py (__all__): Fixed package namespace, now
5268 * IPython/__init__.py (__all__): Fixed package namespace, now
5262 'import IPython' does give access to IPython.<all> as
5269 'import IPython' does give access to IPython.<all> as
5263 expected. Also renamed __release__ to Release.
5270 expected. Also renamed __release__ to Release.
5264
5271
5265 * IPython/Debugger.py (__license__): created new Pdb class which
5272 * IPython/Debugger.py (__license__): created new Pdb class which
5266 functions like a drop-in for the normal pdb.Pdb but does NOT
5273 functions like a drop-in for the normal pdb.Pdb but does NOT
5267 import readline by default. This way it doesn't muck up IPython's
5274 import readline by default. This way it doesn't muck up IPython's
5268 readline handling, and now tab-completion finally works in the
5275 readline handling, and now tab-completion finally works in the
5269 debugger -- sort of. It completes things globally visible, but the
5276 debugger -- sort of. It completes things globally visible, but the
5270 completer doesn't track the stack as pdb walks it. That's a bit
5277 completer doesn't track the stack as pdb walks it. That's a bit
5271 tricky, and I'll have to implement it later.
5278 tricky, and I'll have to implement it later.
5272
5279
5273 2002-05-05 Fernando Perez <fperez@colorado.edu>
5280 2002-05-05 Fernando Perez <fperez@colorado.edu>
5274
5281
5275 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5282 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5276 magic docstrings when printed via ? (explicit \'s were being
5283 magic docstrings when printed via ? (explicit \'s were being
5277 printed).
5284 printed).
5278
5285
5279 * IPython/ipmaker.py (make_IPython): fixed namespace
5286 * IPython/ipmaker.py (make_IPython): fixed namespace
5280 identification bug. Now variables loaded via logs or command-line
5287 identification bug. Now variables loaded via logs or command-line
5281 files are recognized in the interactive namespace by @who.
5288 files are recognized in the interactive namespace by @who.
5282
5289
5283 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5290 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5284 log replay system stemming from the string form of Structs.
5291 log replay system stemming from the string form of Structs.
5285
5292
5286 * IPython/Magic.py (Macro.__init__): improved macros to properly
5293 * IPython/Magic.py (Macro.__init__): improved macros to properly
5287 handle magic commands in them.
5294 handle magic commands in them.
5288 (Magic.magic_logstart): usernames are now expanded so 'logstart
5295 (Magic.magic_logstart): usernames are now expanded so 'logstart
5289 ~/mylog' now works.
5296 ~/mylog' now works.
5290
5297
5291 * IPython/iplib.py (complete): fixed bug where paths starting with
5298 * IPython/iplib.py (complete): fixed bug where paths starting with
5292 '/' would be completed as magic names.
5299 '/' would be completed as magic names.
5293
5300
5294 2002-05-04 Fernando Perez <fperez@colorado.edu>
5301 2002-05-04 Fernando Perez <fperez@colorado.edu>
5295
5302
5296 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5303 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5297 allow running full programs under the profiler's control.
5304 allow running full programs under the profiler's control.
5298
5305
5299 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5306 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5300 mode to report exceptions verbosely but without formatting
5307 mode to report exceptions verbosely but without formatting
5301 variables. This addresses the issue of ipython 'freezing' (it's
5308 variables. This addresses the issue of ipython 'freezing' (it's
5302 not frozen, but caught in an expensive formatting loop) when huge
5309 not frozen, but caught in an expensive formatting loop) when huge
5303 variables are in the context of an exception.
5310 variables are in the context of an exception.
5304 (VerboseTB.text): Added '--->' markers at line where exception was
5311 (VerboseTB.text): Added '--->' markers at line where exception was
5305 triggered. Much clearer to read, especially in NoColor modes.
5312 triggered. Much clearer to read, especially in NoColor modes.
5306
5313
5307 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5314 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5308 implemented in reverse when changing to the new parse_options().
5315 implemented in reverse when changing to the new parse_options().
5309
5316
5310 2002-05-03 Fernando Perez <fperez@colorado.edu>
5317 2002-05-03 Fernando Perez <fperez@colorado.edu>
5311
5318
5312 * IPython/Magic.py (Magic.parse_options): new function so that
5319 * IPython/Magic.py (Magic.parse_options): new function so that
5313 magics can parse options easier.
5320 magics can parse options easier.
5314 (Magic.magic_prun): new function similar to profile.run(),
5321 (Magic.magic_prun): new function similar to profile.run(),
5315 suggested by Chris Hart.
5322 suggested by Chris Hart.
5316 (Magic.magic_cd): fixed behavior so that it only changes if
5323 (Magic.magic_cd): fixed behavior so that it only changes if
5317 directory actually is in history.
5324 directory actually is in history.
5318
5325
5319 * IPython/usage.py (__doc__): added information about potential
5326 * IPython/usage.py (__doc__): added information about potential
5320 slowness of Verbose exception mode when there are huge data
5327 slowness of Verbose exception mode when there are huge data
5321 structures to be formatted (thanks to Archie Paulson).
5328 structures to be formatted (thanks to Archie Paulson).
5322
5329
5323 * IPython/ipmaker.py (make_IPython): Changed default logging
5330 * IPython/ipmaker.py (make_IPython): Changed default logging
5324 (when simply called with -log) to use curr_dir/ipython.log in
5331 (when simply called with -log) to use curr_dir/ipython.log in
5325 rotate mode. Fixed crash which was occuring with -log before
5332 rotate mode. Fixed crash which was occuring with -log before
5326 (thanks to Jim Boyle).
5333 (thanks to Jim Boyle).
5327
5334
5328 2002-05-01 Fernando Perez <fperez@colorado.edu>
5335 2002-05-01 Fernando Perez <fperez@colorado.edu>
5329
5336
5330 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5337 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5331 was nasty -- though somewhat of a corner case).
5338 was nasty -- though somewhat of a corner case).
5332
5339
5333 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5340 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5334 text (was a bug).
5341 text (was a bug).
5335
5342
5336 2002-04-30 Fernando Perez <fperez@colorado.edu>
5343 2002-04-30 Fernando Perez <fperez@colorado.edu>
5337
5344
5338 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5345 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5339 a print after ^D or ^C from the user so that the In[] prompt
5346 a print after ^D or ^C from the user so that the In[] prompt
5340 doesn't over-run the gnuplot one.
5347 doesn't over-run the gnuplot one.
5341
5348
5342 2002-04-29 Fernando Perez <fperez@colorado.edu>
5349 2002-04-29 Fernando Perez <fperez@colorado.edu>
5343
5350
5344 * Released 0.2.10
5351 * Released 0.2.10
5345
5352
5346 * IPython/__release__.py (version): get date dynamically.
5353 * IPython/__release__.py (version): get date dynamically.
5347
5354
5348 * Misc. documentation updates thanks to Arnd's comments. Also ran
5355 * Misc. documentation updates thanks to Arnd's comments. Also ran
5349 a full spellcheck on the manual (hadn't been done in a while).
5356 a full spellcheck on the manual (hadn't been done in a while).
5350
5357
5351 2002-04-27 Fernando Perez <fperez@colorado.edu>
5358 2002-04-27 Fernando Perez <fperez@colorado.edu>
5352
5359
5353 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5360 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5354 starting a log in mid-session would reset the input history list.
5361 starting a log in mid-session would reset the input history list.
5355
5362
5356 2002-04-26 Fernando Perez <fperez@colorado.edu>
5363 2002-04-26 Fernando Perez <fperez@colorado.edu>
5357
5364
5358 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5365 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5359 all files were being included in an update. Now anything in
5366 all files were being included in an update. Now anything in
5360 UserConfig that matches [A-Za-z]*.py will go (this excludes
5367 UserConfig that matches [A-Za-z]*.py will go (this excludes
5361 __init__.py)
5368 __init__.py)
5362
5369
5363 2002-04-25 Fernando Perez <fperez@colorado.edu>
5370 2002-04-25 Fernando Perez <fperez@colorado.edu>
5364
5371
5365 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5372 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5366 to __builtins__ so that any form of embedded or imported code can
5373 to __builtins__ so that any form of embedded or imported code can
5367 test for being inside IPython.
5374 test for being inside IPython.
5368
5375
5369 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5376 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5370 changed to GnuplotMagic because it's now an importable module,
5377 changed to GnuplotMagic because it's now an importable module,
5371 this makes the name follow that of the standard Gnuplot module.
5378 this makes the name follow that of the standard Gnuplot module.
5372 GnuplotMagic can now be loaded at any time in mid-session.
5379 GnuplotMagic can now be loaded at any time in mid-session.
5373
5380
5374 2002-04-24 Fernando Perez <fperez@colorado.edu>
5381 2002-04-24 Fernando Perez <fperez@colorado.edu>
5375
5382
5376 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5383 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5377 the globals (IPython has its own namespace) and the
5384 the globals (IPython has its own namespace) and the
5378 PhysicalQuantity stuff is much better anyway.
5385 PhysicalQuantity stuff is much better anyway.
5379
5386
5380 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5387 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5381 embedding example to standard user directory for
5388 embedding example to standard user directory for
5382 distribution. Also put it in the manual.
5389 distribution. Also put it in the manual.
5383
5390
5384 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5391 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5385 instance as first argument (so it doesn't rely on some obscure
5392 instance as first argument (so it doesn't rely on some obscure
5386 hidden global).
5393 hidden global).
5387
5394
5388 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5395 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5389 delimiters. While it prevents ().TAB from working, it allows
5396 delimiters. While it prevents ().TAB from working, it allows
5390 completions in open (... expressions. This is by far a more common
5397 completions in open (... expressions. This is by far a more common
5391 case.
5398 case.
5392
5399
5393 2002-04-23 Fernando Perez <fperez@colorado.edu>
5400 2002-04-23 Fernando Perez <fperez@colorado.edu>
5394
5401
5395 * IPython/Extensions/InterpreterPasteInput.py: new
5402 * IPython/Extensions/InterpreterPasteInput.py: new
5396 syntax-processing module for pasting lines with >>> or ... at the
5403 syntax-processing module for pasting lines with >>> or ... at the
5397 start.
5404 start.
5398
5405
5399 * IPython/Extensions/PhysicalQ_Interactive.py
5406 * IPython/Extensions/PhysicalQ_Interactive.py
5400 (PhysicalQuantityInteractive.__int__): fixed to work with either
5407 (PhysicalQuantityInteractive.__int__): fixed to work with either
5401 Numeric or math.
5408 Numeric or math.
5402
5409
5403 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5410 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5404 provided profiles. Now we have:
5411 provided profiles. Now we have:
5405 -math -> math module as * and cmath with its own namespace.
5412 -math -> math module as * and cmath with its own namespace.
5406 -numeric -> Numeric as *, plus gnuplot & grace
5413 -numeric -> Numeric as *, plus gnuplot & grace
5407 -physics -> same as before
5414 -physics -> same as before
5408
5415
5409 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5416 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5410 user-defined magics wouldn't be found by @magic if they were
5417 user-defined magics wouldn't be found by @magic if they were
5411 defined as class methods. Also cleaned up the namespace search
5418 defined as class methods. Also cleaned up the namespace search
5412 logic and the string building (to use %s instead of many repeated
5419 logic and the string building (to use %s instead of many repeated
5413 string adds).
5420 string adds).
5414
5421
5415 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5422 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5416 of user-defined magics to operate with class methods (cleaner, in
5423 of user-defined magics to operate with class methods (cleaner, in
5417 line with the gnuplot code).
5424 line with the gnuplot code).
5418
5425
5419 2002-04-22 Fernando Perez <fperez@colorado.edu>
5426 2002-04-22 Fernando Perez <fperez@colorado.edu>
5420
5427
5421 * setup.py: updated dependency list so that manual is updated when
5428 * setup.py: updated dependency list so that manual is updated when
5422 all included files change.
5429 all included files change.
5423
5430
5424 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5431 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5425 the delimiter removal option (the fix is ugly right now).
5432 the delimiter removal option (the fix is ugly right now).
5426
5433
5427 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5434 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5428 all of the math profile (quicker loading, no conflict between
5435 all of the math profile (quicker loading, no conflict between
5429 g-9.8 and g-gnuplot).
5436 g-9.8 and g-gnuplot).
5430
5437
5431 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5438 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5432 name of post-mortem files to IPython_crash_report.txt.
5439 name of post-mortem files to IPython_crash_report.txt.
5433
5440
5434 * Cleanup/update of the docs. Added all the new readline info and
5441 * Cleanup/update of the docs. Added all the new readline info and
5435 formatted all lists as 'real lists'.
5442 formatted all lists as 'real lists'.
5436
5443
5437 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5444 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5438 tab-completion options, since the full readline parse_and_bind is
5445 tab-completion options, since the full readline parse_and_bind is
5439 now accessible.
5446 now accessible.
5440
5447
5441 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5448 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5442 handling of readline options. Now users can specify any string to
5449 handling of readline options. Now users can specify any string to
5443 be passed to parse_and_bind(), as well as the delimiters to be
5450 be passed to parse_and_bind(), as well as the delimiters to be
5444 removed.
5451 removed.
5445 (InteractiveShell.__init__): Added __name__ to the global
5452 (InteractiveShell.__init__): Added __name__ to the global
5446 namespace so that things like Itpl which rely on its existence
5453 namespace so that things like Itpl which rely on its existence
5447 don't crash.
5454 don't crash.
5448 (InteractiveShell._prefilter): Defined the default with a _ so
5455 (InteractiveShell._prefilter): Defined the default with a _ so
5449 that prefilter() is easier to override, while the default one
5456 that prefilter() is easier to override, while the default one
5450 remains available.
5457 remains available.
5451
5458
5452 2002-04-18 Fernando Perez <fperez@colorado.edu>
5459 2002-04-18 Fernando Perez <fperez@colorado.edu>
5453
5460
5454 * Added information about pdb in the docs.
5461 * Added information about pdb in the docs.
5455
5462
5456 2002-04-17 Fernando Perez <fperez@colorado.edu>
5463 2002-04-17 Fernando Perez <fperez@colorado.edu>
5457
5464
5458 * IPython/ipmaker.py (make_IPython): added rc_override option to
5465 * IPython/ipmaker.py (make_IPython): added rc_override option to
5459 allow passing config options at creation time which may override
5466 allow passing config options at creation time which may override
5460 anything set in the config files or command line. This is
5467 anything set in the config files or command line. This is
5461 particularly useful for configuring embedded instances.
5468 particularly useful for configuring embedded instances.
5462
5469
5463 2002-04-15 Fernando Perez <fperez@colorado.edu>
5470 2002-04-15 Fernando Perez <fperez@colorado.edu>
5464
5471
5465 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5472 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5466 crash embedded instances because of the input cache falling out of
5473 crash embedded instances because of the input cache falling out of
5467 sync with the output counter.
5474 sync with the output counter.
5468
5475
5469 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5476 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5470 mode which calls pdb after an uncaught exception in IPython itself.
5477 mode which calls pdb after an uncaught exception in IPython itself.
5471
5478
5472 2002-04-14 Fernando Perez <fperez@colorado.edu>
5479 2002-04-14 Fernando Perez <fperez@colorado.edu>
5473
5480
5474 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5481 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5475 readline, fix it back after each call.
5482 readline, fix it back after each call.
5476
5483
5477 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5484 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5478 method to force all access via __call__(), which guarantees that
5485 method to force all access via __call__(), which guarantees that
5479 traceback references are properly deleted.
5486 traceback references are properly deleted.
5480
5487
5481 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5488 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5482 improve printing when pprint is in use.
5489 improve printing when pprint is in use.
5483
5490
5484 2002-04-13 Fernando Perez <fperez@colorado.edu>
5491 2002-04-13 Fernando Perez <fperez@colorado.edu>
5485
5492
5486 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5493 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5487 exceptions aren't caught anymore. If the user triggers one, he
5494 exceptions aren't caught anymore. If the user triggers one, he
5488 should know why he's doing it and it should go all the way up,
5495 should know why he's doing it and it should go all the way up,
5489 just like any other exception. So now @abort will fully kill the
5496 just like any other exception. So now @abort will fully kill the
5490 embedded interpreter and the embedding code (unless that happens
5497 embedded interpreter and the embedding code (unless that happens
5491 to catch SystemExit).
5498 to catch SystemExit).
5492
5499
5493 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5500 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5494 and a debugger() method to invoke the interactive pdb debugger
5501 and a debugger() method to invoke the interactive pdb debugger
5495 after printing exception information. Also added the corresponding
5502 after printing exception information. Also added the corresponding
5496 -pdb option and @pdb magic to control this feature, and updated
5503 -pdb option and @pdb magic to control this feature, and updated
5497 the docs. After a suggestion from Christopher Hart
5504 the docs. After a suggestion from Christopher Hart
5498 (hart-AT-caltech.edu).
5505 (hart-AT-caltech.edu).
5499
5506
5500 2002-04-12 Fernando Perez <fperez@colorado.edu>
5507 2002-04-12 Fernando Perez <fperez@colorado.edu>
5501
5508
5502 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5509 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5503 the exception handlers defined by the user (not the CrashHandler)
5510 the exception handlers defined by the user (not the CrashHandler)
5504 so that user exceptions don't trigger an ipython bug report.
5511 so that user exceptions don't trigger an ipython bug report.
5505
5512
5506 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5513 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5507 configurable (it should have always been so).
5514 configurable (it should have always been so).
5508
5515
5509 2002-03-26 Fernando Perez <fperez@colorado.edu>
5516 2002-03-26 Fernando Perez <fperez@colorado.edu>
5510
5517
5511 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5518 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5512 and there to fix embedding namespace issues. This should all be
5519 and there to fix embedding namespace issues. This should all be
5513 done in a more elegant way.
5520 done in a more elegant way.
5514
5521
5515 2002-03-25 Fernando Perez <fperez@colorado.edu>
5522 2002-03-25 Fernando Perez <fperez@colorado.edu>
5516
5523
5517 * IPython/genutils.py (get_home_dir): Try to make it work under
5524 * IPython/genutils.py (get_home_dir): Try to make it work under
5518 win9x also.
5525 win9x also.
5519
5526
5520 2002-03-20 Fernando Perez <fperez@colorado.edu>
5527 2002-03-20 Fernando Perez <fperez@colorado.edu>
5521
5528
5522 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5529 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5523 sys.displayhook untouched upon __init__.
5530 sys.displayhook untouched upon __init__.
5524
5531
5525 2002-03-19 Fernando Perez <fperez@colorado.edu>
5532 2002-03-19 Fernando Perez <fperez@colorado.edu>
5526
5533
5527 * Released 0.2.9 (for embedding bug, basically).
5534 * Released 0.2.9 (for embedding bug, basically).
5528
5535
5529 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5536 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5530 exceptions so that enclosing shell's state can be restored.
5537 exceptions so that enclosing shell's state can be restored.
5531
5538
5532 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5539 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5533 naming conventions in the .ipython/ dir.
5540 naming conventions in the .ipython/ dir.
5534
5541
5535 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5542 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5536 from delimiters list so filenames with - in them get expanded.
5543 from delimiters list so filenames with - in them get expanded.
5537
5544
5538 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5545 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5539 sys.displayhook not being properly restored after an embedded call.
5546 sys.displayhook not being properly restored after an embedded call.
5540
5547
5541 2002-03-18 Fernando Perez <fperez@colorado.edu>
5548 2002-03-18 Fernando Perez <fperez@colorado.edu>
5542
5549
5543 * Released 0.2.8
5550 * Released 0.2.8
5544
5551
5545 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5552 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5546 some files weren't being included in a -upgrade.
5553 some files weren't being included in a -upgrade.
5547 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5554 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5548 on' so that the first tab completes.
5555 on' so that the first tab completes.
5549 (InteractiveShell.handle_magic): fixed bug with spaces around
5556 (InteractiveShell.handle_magic): fixed bug with spaces around
5550 quotes breaking many magic commands.
5557 quotes breaking many magic commands.
5551
5558
5552 * setup.py: added note about ignoring the syntax error messages at
5559 * setup.py: added note about ignoring the syntax error messages at
5553 installation.
5560 installation.
5554
5561
5555 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5562 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5556 streamlining the gnuplot interface, now there's only one magic @gp.
5563 streamlining the gnuplot interface, now there's only one magic @gp.
5557
5564
5558 2002-03-17 Fernando Perez <fperez@colorado.edu>
5565 2002-03-17 Fernando Perez <fperez@colorado.edu>
5559
5566
5560 * IPython/UserConfig/magic_gnuplot.py: new name for the
5567 * IPython/UserConfig/magic_gnuplot.py: new name for the
5561 example-magic_pm.py file. Much enhanced system, now with a shell
5568 example-magic_pm.py file. Much enhanced system, now with a shell
5562 for communicating directly with gnuplot, one command at a time.
5569 for communicating directly with gnuplot, one command at a time.
5563
5570
5564 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5571 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5565 setting __name__=='__main__'.
5572 setting __name__=='__main__'.
5566
5573
5567 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5574 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5568 mini-shell for accessing gnuplot from inside ipython. Should
5575 mini-shell for accessing gnuplot from inside ipython. Should
5569 extend it later for grace access too. Inspired by Arnd's
5576 extend it later for grace access too. Inspired by Arnd's
5570 suggestion.
5577 suggestion.
5571
5578
5572 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5579 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5573 calling magic functions with () in their arguments. Thanks to Arnd
5580 calling magic functions with () in their arguments. Thanks to Arnd
5574 Baecker for pointing this to me.
5581 Baecker for pointing this to me.
5575
5582
5576 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5583 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5577 infinitely for integer or complex arrays (only worked with floats).
5584 infinitely for integer or complex arrays (only worked with floats).
5578
5585
5579 2002-03-16 Fernando Perez <fperez@colorado.edu>
5586 2002-03-16 Fernando Perez <fperez@colorado.edu>
5580
5587
5581 * setup.py: Merged setup and setup_windows into a single script
5588 * setup.py: Merged setup and setup_windows into a single script
5582 which properly handles things for windows users.
5589 which properly handles things for windows users.
5583
5590
5584 2002-03-15 Fernando Perez <fperez@colorado.edu>
5591 2002-03-15 Fernando Perez <fperez@colorado.edu>
5585
5592
5586 * Big change to the manual: now the magics are all automatically
5593 * Big change to the manual: now the magics are all automatically
5587 documented. This information is generated from their docstrings
5594 documented. This information is generated from their docstrings
5588 and put in a latex file included by the manual lyx file. This way
5595 and put in a latex file included by the manual lyx file. This way
5589 we get always up to date information for the magics. The manual
5596 we get always up to date information for the magics. The manual
5590 now also has proper version information, also auto-synced.
5597 now also has proper version information, also auto-synced.
5591
5598
5592 For this to work, an undocumented --magic_docstrings option was added.
5599 For this to work, an undocumented --magic_docstrings option was added.
5593
5600
5594 2002-03-13 Fernando Perez <fperez@colorado.edu>
5601 2002-03-13 Fernando Perez <fperez@colorado.edu>
5595
5602
5596 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5603 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5597 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5604 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5598
5605
5599 2002-03-12 Fernando Perez <fperez@colorado.edu>
5606 2002-03-12 Fernando Perez <fperez@colorado.edu>
5600
5607
5601 * IPython/ultraTB.py (TermColors): changed color escapes again to
5608 * IPython/ultraTB.py (TermColors): changed color escapes again to
5602 fix the (old, reintroduced) line-wrapping bug. Basically, if
5609 fix the (old, reintroduced) line-wrapping bug. Basically, if
5603 \001..\002 aren't given in the color escapes, lines get wrapped
5610 \001..\002 aren't given in the color escapes, lines get wrapped
5604 weirdly. But giving those screws up old xterms and emacs terms. So
5611 weirdly. But giving those screws up old xterms and emacs terms. So
5605 I added some logic for emacs terms to be ok, but I can't identify old
5612 I added some logic for emacs terms to be ok, but I can't identify old
5606 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5613 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5607
5614
5608 2002-03-10 Fernando Perez <fperez@colorado.edu>
5615 2002-03-10 Fernando Perez <fperez@colorado.edu>
5609
5616
5610 * IPython/usage.py (__doc__): Various documentation cleanups and
5617 * IPython/usage.py (__doc__): Various documentation cleanups and
5611 updates, both in usage docstrings and in the manual.
5618 updates, both in usage docstrings and in the manual.
5612
5619
5613 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5620 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5614 handling of caching. Set minimum acceptabe value for having a
5621 handling of caching. Set minimum acceptabe value for having a
5615 cache at 20 values.
5622 cache at 20 values.
5616
5623
5617 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5624 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5618 install_first_time function to a method, renamed it and added an
5625 install_first_time function to a method, renamed it and added an
5619 'upgrade' mode. Now people can update their config directory with
5626 'upgrade' mode. Now people can update their config directory with
5620 a simple command line switch (-upgrade, also new).
5627 a simple command line switch (-upgrade, also new).
5621
5628
5622 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5629 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5623 @file (convenient for automagic users under Python >= 2.2).
5630 @file (convenient for automagic users under Python >= 2.2).
5624 Removed @files (it seemed more like a plural than an abbrev. of
5631 Removed @files (it seemed more like a plural than an abbrev. of
5625 'file show').
5632 'file show').
5626
5633
5627 * IPython/iplib.py (install_first_time): Fixed crash if there were
5634 * IPython/iplib.py (install_first_time): Fixed crash if there were
5628 backup files ('~') in .ipython/ install directory.
5635 backup files ('~') in .ipython/ install directory.
5629
5636
5630 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5637 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5631 system. Things look fine, but these changes are fairly
5638 system. Things look fine, but these changes are fairly
5632 intrusive. Test them for a few days.
5639 intrusive. Test them for a few days.
5633
5640
5634 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5641 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5635 the prompts system. Now all in/out prompt strings are user
5642 the prompts system. Now all in/out prompt strings are user
5636 controllable. This is particularly useful for embedding, as one
5643 controllable. This is particularly useful for embedding, as one
5637 can tag embedded instances with particular prompts.
5644 can tag embedded instances with particular prompts.
5638
5645
5639 Also removed global use of sys.ps1/2, which now allows nested
5646 Also removed global use of sys.ps1/2, which now allows nested
5640 embeddings without any problems. Added command-line options for
5647 embeddings without any problems. Added command-line options for
5641 the prompt strings.
5648 the prompt strings.
5642
5649
5643 2002-03-08 Fernando Perez <fperez@colorado.edu>
5650 2002-03-08 Fernando Perez <fperez@colorado.edu>
5644
5651
5645 * IPython/UserConfig/example-embed-short.py (ipshell): added
5652 * IPython/UserConfig/example-embed-short.py (ipshell): added
5646 example file with the bare minimum code for embedding.
5653 example file with the bare minimum code for embedding.
5647
5654
5648 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5655 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5649 functionality for the embeddable shell to be activated/deactivated
5656 functionality for the embeddable shell to be activated/deactivated
5650 either globally or at each call.
5657 either globally or at each call.
5651
5658
5652 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5659 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5653 rewriting the prompt with '--->' for auto-inputs with proper
5660 rewriting the prompt with '--->' for auto-inputs with proper
5654 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5661 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5655 this is handled by the prompts class itself, as it should.
5662 this is handled by the prompts class itself, as it should.
5656
5663
5657 2002-03-05 Fernando Perez <fperez@colorado.edu>
5664 2002-03-05 Fernando Perez <fperez@colorado.edu>
5658
5665
5659 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5666 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5660 @logstart to avoid name clashes with the math log function.
5667 @logstart to avoid name clashes with the math log function.
5661
5668
5662 * Big updates to X/Emacs section of the manual.
5669 * Big updates to X/Emacs section of the manual.
5663
5670
5664 * Removed ipython_emacs. Milan explained to me how to pass
5671 * Removed ipython_emacs. Milan explained to me how to pass
5665 arguments to ipython through Emacs. Some day I'm going to end up
5672 arguments to ipython through Emacs. Some day I'm going to end up
5666 learning some lisp...
5673 learning some lisp...
5667
5674
5668 2002-03-04 Fernando Perez <fperez@colorado.edu>
5675 2002-03-04 Fernando Perez <fperez@colorado.edu>
5669
5676
5670 * IPython/ipython_emacs: Created script to be used as the
5677 * IPython/ipython_emacs: Created script to be used as the
5671 py-python-command Emacs variable so we can pass IPython
5678 py-python-command Emacs variable so we can pass IPython
5672 parameters. I can't figure out how to tell Emacs directly to pass
5679 parameters. I can't figure out how to tell Emacs directly to pass
5673 parameters to IPython, so a dummy shell script will do it.
5680 parameters to IPython, so a dummy shell script will do it.
5674
5681
5675 Other enhancements made for things to work better under Emacs'
5682 Other enhancements made for things to work better under Emacs'
5676 various types of terminals. Many thanks to Milan Zamazal
5683 various types of terminals. Many thanks to Milan Zamazal
5677 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5684 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5678
5685
5679 2002-03-01 Fernando Perez <fperez@colorado.edu>
5686 2002-03-01 Fernando Perez <fperez@colorado.edu>
5680
5687
5681 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5688 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5682 that loading of readline is now optional. This gives better
5689 that loading of readline is now optional. This gives better
5683 control to emacs users.
5690 control to emacs users.
5684
5691
5685 * IPython/ultraTB.py (__date__): Modified color escape sequences
5692 * IPython/ultraTB.py (__date__): Modified color escape sequences
5686 and now things work fine under xterm and in Emacs' term buffers
5693 and now things work fine under xterm and in Emacs' term buffers
5687 (though not shell ones). Well, in emacs you get colors, but all
5694 (though not shell ones). Well, in emacs you get colors, but all
5688 seem to be 'light' colors (no difference between dark and light
5695 seem to be 'light' colors (no difference between dark and light
5689 ones). But the garbage chars are gone, and also in xterms. It
5696 ones). But the garbage chars are gone, and also in xterms. It
5690 seems that now I'm using 'cleaner' ansi sequences.
5697 seems that now I'm using 'cleaner' ansi sequences.
5691
5698
5692 2002-02-21 Fernando Perez <fperez@colorado.edu>
5699 2002-02-21 Fernando Perez <fperez@colorado.edu>
5693
5700
5694 * Released 0.2.7 (mainly to publish the scoping fix).
5701 * Released 0.2.7 (mainly to publish the scoping fix).
5695
5702
5696 * IPython/Logger.py (Logger.logstate): added. A corresponding
5703 * IPython/Logger.py (Logger.logstate): added. A corresponding
5697 @logstate magic was created.
5704 @logstate magic was created.
5698
5705
5699 * IPython/Magic.py: fixed nested scoping problem under Python
5706 * IPython/Magic.py: fixed nested scoping problem under Python
5700 2.1.x (automagic wasn't working).
5707 2.1.x (automagic wasn't working).
5701
5708
5702 2002-02-20 Fernando Perez <fperez@colorado.edu>
5709 2002-02-20 Fernando Perez <fperez@colorado.edu>
5703
5710
5704 * Released 0.2.6.
5711 * Released 0.2.6.
5705
5712
5706 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5713 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5707 option so that logs can come out without any headers at all.
5714 option so that logs can come out without any headers at all.
5708
5715
5709 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5716 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5710 SciPy.
5717 SciPy.
5711
5718
5712 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5719 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5713 that embedded IPython calls don't require vars() to be explicitly
5720 that embedded IPython calls don't require vars() to be explicitly
5714 passed. Now they are extracted from the caller's frame (code
5721 passed. Now they are extracted from the caller's frame (code
5715 snatched from Eric Jones' weave). Added better documentation to
5722 snatched from Eric Jones' weave). Added better documentation to
5716 the section on embedding and the example file.
5723 the section on embedding and the example file.
5717
5724
5718 * IPython/genutils.py (page): Changed so that under emacs, it just
5725 * IPython/genutils.py (page): Changed so that under emacs, it just
5719 prints the string. You can then page up and down in the emacs
5726 prints the string. You can then page up and down in the emacs
5720 buffer itself. This is how the builtin help() works.
5727 buffer itself. This is how the builtin help() works.
5721
5728
5722 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5729 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5723 macro scoping: macros need to be executed in the user's namespace
5730 macro scoping: macros need to be executed in the user's namespace
5724 to work as if they had been typed by the user.
5731 to work as if they had been typed by the user.
5725
5732
5726 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5733 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5727 execute automatically (no need to type 'exec...'). They then
5734 execute automatically (no need to type 'exec...'). They then
5728 behave like 'true macros'. The printing system was also modified
5735 behave like 'true macros'. The printing system was also modified
5729 for this to work.
5736 for this to work.
5730
5737
5731 2002-02-19 Fernando Perez <fperez@colorado.edu>
5738 2002-02-19 Fernando Perez <fperez@colorado.edu>
5732
5739
5733 * IPython/genutils.py (page_file): new function for paging files
5740 * IPython/genutils.py (page_file): new function for paging files
5734 in an OS-independent way. Also necessary for file viewing to work
5741 in an OS-independent way. Also necessary for file viewing to work
5735 well inside Emacs buffers.
5742 well inside Emacs buffers.
5736 (page): Added checks for being in an emacs buffer.
5743 (page): Added checks for being in an emacs buffer.
5737 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5744 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5738 same bug in iplib.
5745 same bug in iplib.
5739
5746
5740 2002-02-18 Fernando Perez <fperez@colorado.edu>
5747 2002-02-18 Fernando Perez <fperez@colorado.edu>
5741
5748
5742 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5749 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5743 of readline so that IPython can work inside an Emacs buffer.
5750 of readline so that IPython can work inside an Emacs buffer.
5744
5751
5745 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5752 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5746 method signatures (they weren't really bugs, but it looks cleaner
5753 method signatures (they weren't really bugs, but it looks cleaner
5747 and keeps PyChecker happy).
5754 and keeps PyChecker happy).
5748
5755
5749 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5756 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5750 for implementing various user-defined hooks. Currently only
5757 for implementing various user-defined hooks. Currently only
5751 display is done.
5758 display is done.
5752
5759
5753 * IPython/Prompts.py (CachedOutput._display): changed display
5760 * IPython/Prompts.py (CachedOutput._display): changed display
5754 functions so that they can be dynamically changed by users easily.
5761 functions so that they can be dynamically changed by users easily.
5755
5762
5756 * IPython/Extensions/numeric_formats.py (num_display): added an
5763 * IPython/Extensions/numeric_formats.py (num_display): added an
5757 extension for printing NumPy arrays in flexible manners. It
5764 extension for printing NumPy arrays in flexible manners. It
5758 doesn't do anything yet, but all the structure is in
5765 doesn't do anything yet, but all the structure is in
5759 place. Ultimately the plan is to implement output format control
5766 place. Ultimately the plan is to implement output format control
5760 like in Octave.
5767 like in Octave.
5761
5768
5762 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5769 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5763 methods are found at run-time by all the automatic machinery.
5770 methods are found at run-time by all the automatic machinery.
5764
5771
5765 2002-02-17 Fernando Perez <fperez@colorado.edu>
5772 2002-02-17 Fernando Perez <fperez@colorado.edu>
5766
5773
5767 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5774 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5768 whole file a little.
5775 whole file a little.
5769
5776
5770 * ToDo: closed this document. Now there's a new_design.lyx
5777 * ToDo: closed this document. Now there's a new_design.lyx
5771 document for all new ideas. Added making a pdf of it for the
5778 document for all new ideas. Added making a pdf of it for the
5772 end-user distro.
5779 end-user distro.
5773
5780
5774 * IPython/Logger.py (Logger.switch_log): Created this to replace
5781 * IPython/Logger.py (Logger.switch_log): Created this to replace
5775 logon() and logoff(). It also fixes a nasty crash reported by
5782 logon() and logoff(). It also fixes a nasty crash reported by
5776 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5783 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5777
5784
5778 * IPython/iplib.py (complete): got auto-completion to work with
5785 * IPython/iplib.py (complete): got auto-completion to work with
5779 automagic (I had wanted this for a long time).
5786 automagic (I had wanted this for a long time).
5780
5787
5781 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5788 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5782 to @file, since file() is now a builtin and clashes with automagic
5789 to @file, since file() is now a builtin and clashes with automagic
5783 for @file.
5790 for @file.
5784
5791
5785 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5792 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5786 of this was previously in iplib, which had grown to more than 2000
5793 of this was previously in iplib, which had grown to more than 2000
5787 lines, way too long. No new functionality, but it makes managing
5794 lines, way too long. No new functionality, but it makes managing
5788 the code a bit easier.
5795 the code a bit easier.
5789
5796
5790 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5797 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5791 information to crash reports.
5798 information to crash reports.
5792
5799
5793 2002-02-12 Fernando Perez <fperez@colorado.edu>
5800 2002-02-12 Fernando Perez <fperez@colorado.edu>
5794
5801
5795 * Released 0.2.5.
5802 * Released 0.2.5.
5796
5803
5797 2002-02-11 Fernando Perez <fperez@colorado.edu>
5804 2002-02-11 Fernando Perez <fperez@colorado.edu>
5798
5805
5799 * Wrote a relatively complete Windows installer. It puts
5806 * Wrote a relatively complete Windows installer. It puts
5800 everything in place, creates Start Menu entries and fixes the
5807 everything in place, creates Start Menu entries and fixes the
5801 color issues. Nothing fancy, but it works.
5808 color issues. Nothing fancy, but it works.
5802
5809
5803 2002-02-10 Fernando Perez <fperez@colorado.edu>
5810 2002-02-10 Fernando Perez <fperez@colorado.edu>
5804
5811
5805 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5812 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5806 os.path.expanduser() call so that we can type @run ~/myfile.py and
5813 os.path.expanduser() call so that we can type @run ~/myfile.py and
5807 have thigs work as expected.
5814 have thigs work as expected.
5808
5815
5809 * IPython/genutils.py (page): fixed exception handling so things
5816 * IPython/genutils.py (page): fixed exception handling so things
5810 work both in Unix and Windows correctly. Quitting a pager triggers
5817 work both in Unix and Windows correctly. Quitting a pager triggers
5811 an IOError/broken pipe in Unix, and in windows not finding a pager
5818 an IOError/broken pipe in Unix, and in windows not finding a pager
5812 is also an IOError, so I had to actually look at the return value
5819 is also an IOError, so I had to actually look at the return value
5813 of the exception, not just the exception itself. Should be ok now.
5820 of the exception, not just the exception itself. Should be ok now.
5814
5821
5815 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5822 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5816 modified to allow case-insensitive color scheme changes.
5823 modified to allow case-insensitive color scheme changes.
5817
5824
5818 2002-02-09 Fernando Perez <fperez@colorado.edu>
5825 2002-02-09 Fernando Perez <fperez@colorado.edu>
5819
5826
5820 * IPython/genutils.py (native_line_ends): new function to leave
5827 * IPython/genutils.py (native_line_ends): new function to leave
5821 user config files with os-native line-endings.
5828 user config files with os-native line-endings.
5822
5829
5823 * README and manual updates.
5830 * README and manual updates.
5824
5831
5825 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5832 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5826 instead of StringType to catch Unicode strings.
5833 instead of StringType to catch Unicode strings.
5827
5834
5828 * IPython/genutils.py (filefind): fixed bug for paths with
5835 * IPython/genutils.py (filefind): fixed bug for paths with
5829 embedded spaces (very common in Windows).
5836 embedded spaces (very common in Windows).
5830
5837
5831 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5838 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5832 files under Windows, so that they get automatically associated
5839 files under Windows, so that they get automatically associated
5833 with a text editor. Windows makes it a pain to handle
5840 with a text editor. Windows makes it a pain to handle
5834 extension-less files.
5841 extension-less files.
5835
5842
5836 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5843 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5837 warning about readline only occur for Posix. In Windows there's no
5844 warning about readline only occur for Posix. In Windows there's no
5838 way to get readline, so why bother with the warning.
5845 way to get readline, so why bother with the warning.
5839
5846
5840 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5847 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5841 for __str__ instead of dir(self), since dir() changed in 2.2.
5848 for __str__ instead of dir(self), since dir() changed in 2.2.
5842
5849
5843 * Ported to Windows! Tested on XP, I suspect it should work fine
5850 * Ported to Windows! Tested on XP, I suspect it should work fine
5844 on NT/2000, but I don't think it will work on 98 et al. That
5851 on NT/2000, but I don't think it will work on 98 et al. That
5845 series of Windows is such a piece of junk anyway that I won't try
5852 series of Windows is such a piece of junk anyway that I won't try
5846 porting it there. The XP port was straightforward, showed a few
5853 porting it there. The XP port was straightforward, showed a few
5847 bugs here and there (fixed all), in particular some string
5854 bugs here and there (fixed all), in particular some string
5848 handling stuff which required considering Unicode strings (which
5855 handling stuff which required considering Unicode strings (which
5849 Windows uses). This is good, but hasn't been too tested :) No
5856 Windows uses). This is good, but hasn't been too tested :) No
5850 fancy installer yet, I'll put a note in the manual so people at
5857 fancy installer yet, I'll put a note in the manual so people at
5851 least make manually a shortcut.
5858 least make manually a shortcut.
5852
5859
5853 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5860 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5854 into a single one, "colors". This now controls both prompt and
5861 into a single one, "colors". This now controls both prompt and
5855 exception color schemes, and can be changed both at startup
5862 exception color schemes, and can be changed both at startup
5856 (either via command-line switches or via ipythonrc files) and at
5863 (either via command-line switches or via ipythonrc files) and at
5857 runtime, with @colors.
5864 runtime, with @colors.
5858 (Magic.magic_run): renamed @prun to @run and removed the old
5865 (Magic.magic_run): renamed @prun to @run and removed the old
5859 @run. The two were too similar to warrant keeping both.
5866 @run. The two were too similar to warrant keeping both.
5860
5867
5861 2002-02-03 Fernando Perez <fperez@colorado.edu>
5868 2002-02-03 Fernando Perez <fperez@colorado.edu>
5862
5869
5863 * IPython/iplib.py (install_first_time): Added comment on how to
5870 * IPython/iplib.py (install_first_time): Added comment on how to
5864 configure the color options for first-time users. Put a <return>
5871 configure the color options for first-time users. Put a <return>
5865 request at the end so that small-terminal users get a chance to
5872 request at the end so that small-terminal users get a chance to
5866 read the startup info.
5873 read the startup info.
5867
5874
5868 2002-01-23 Fernando Perez <fperez@colorado.edu>
5875 2002-01-23 Fernando Perez <fperez@colorado.edu>
5869
5876
5870 * IPython/iplib.py (CachedOutput.update): Changed output memory
5877 * IPython/iplib.py (CachedOutput.update): Changed output memory
5871 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5878 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5872 input history we still use _i. Did this b/c these variable are
5879 input history we still use _i. Did this b/c these variable are
5873 very commonly used in interactive work, so the less we need to
5880 very commonly used in interactive work, so the less we need to
5874 type the better off we are.
5881 type the better off we are.
5875 (Magic.magic_prun): updated @prun to better handle the namespaces
5882 (Magic.magic_prun): updated @prun to better handle the namespaces
5876 the file will run in, including a fix for __name__ not being set
5883 the file will run in, including a fix for __name__ not being set
5877 before.
5884 before.
5878
5885
5879 2002-01-20 Fernando Perez <fperez@colorado.edu>
5886 2002-01-20 Fernando Perez <fperez@colorado.edu>
5880
5887
5881 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5888 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5882 extra garbage for Python 2.2. Need to look more carefully into
5889 extra garbage for Python 2.2. Need to look more carefully into
5883 this later.
5890 this later.
5884
5891
5885 2002-01-19 Fernando Perez <fperez@colorado.edu>
5892 2002-01-19 Fernando Perez <fperez@colorado.edu>
5886
5893
5887 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5894 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5888 display SyntaxError exceptions properly formatted when they occur
5895 display SyntaxError exceptions properly formatted when they occur
5889 (they can be triggered by imported code).
5896 (they can be triggered by imported code).
5890
5897
5891 2002-01-18 Fernando Perez <fperez@colorado.edu>
5898 2002-01-18 Fernando Perez <fperez@colorado.edu>
5892
5899
5893 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5900 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5894 SyntaxError exceptions are reported nicely formatted, instead of
5901 SyntaxError exceptions are reported nicely formatted, instead of
5895 spitting out only offset information as before.
5902 spitting out only offset information as before.
5896 (Magic.magic_prun): Added the @prun function for executing
5903 (Magic.magic_prun): Added the @prun function for executing
5897 programs with command line args inside IPython.
5904 programs with command line args inside IPython.
5898
5905
5899 2002-01-16 Fernando Perez <fperez@colorado.edu>
5906 2002-01-16 Fernando Perez <fperez@colorado.edu>
5900
5907
5901 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5908 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5902 to *not* include the last item given in a range. This brings their
5909 to *not* include the last item given in a range. This brings their
5903 behavior in line with Python's slicing:
5910 behavior in line with Python's slicing:
5904 a[n1:n2] -> a[n1]...a[n2-1]
5911 a[n1:n2] -> a[n1]...a[n2-1]
5905 It may be a bit less convenient, but I prefer to stick to Python's
5912 It may be a bit less convenient, but I prefer to stick to Python's
5906 conventions *everywhere*, so users never have to wonder.
5913 conventions *everywhere*, so users never have to wonder.
5907 (Magic.magic_macro): Added @macro function to ease the creation of
5914 (Magic.magic_macro): Added @macro function to ease the creation of
5908 macros.
5915 macros.
5909
5916
5910 2002-01-05 Fernando Perez <fperez@colorado.edu>
5917 2002-01-05 Fernando Perez <fperez@colorado.edu>
5911
5918
5912 * Released 0.2.4.
5919 * Released 0.2.4.
5913
5920
5914 * IPython/iplib.py (Magic.magic_pdef):
5921 * IPython/iplib.py (Magic.magic_pdef):
5915 (InteractiveShell.safe_execfile): report magic lines and error
5922 (InteractiveShell.safe_execfile): report magic lines and error
5916 lines without line numbers so one can easily copy/paste them for
5923 lines without line numbers so one can easily copy/paste them for
5917 re-execution.
5924 re-execution.
5918
5925
5919 * Updated manual with recent changes.
5926 * Updated manual with recent changes.
5920
5927
5921 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5928 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5922 docstring printing when class? is called. Very handy for knowing
5929 docstring printing when class? is called. Very handy for knowing
5923 how to create class instances (as long as __init__ is well
5930 how to create class instances (as long as __init__ is well
5924 documented, of course :)
5931 documented, of course :)
5925 (Magic.magic_doc): print both class and constructor docstrings.
5932 (Magic.magic_doc): print both class and constructor docstrings.
5926 (Magic.magic_pdef): give constructor info if passed a class and
5933 (Magic.magic_pdef): give constructor info if passed a class and
5927 __call__ info for callable object instances.
5934 __call__ info for callable object instances.
5928
5935
5929 2002-01-04 Fernando Perez <fperez@colorado.edu>
5936 2002-01-04 Fernando Perez <fperez@colorado.edu>
5930
5937
5931 * Made deep_reload() off by default. It doesn't always work
5938 * Made deep_reload() off by default. It doesn't always work
5932 exactly as intended, so it's probably safer to have it off. It's
5939 exactly as intended, so it's probably safer to have it off. It's
5933 still available as dreload() anyway, so nothing is lost.
5940 still available as dreload() anyway, so nothing is lost.
5934
5941
5935 2002-01-02 Fernando Perez <fperez@colorado.edu>
5942 2002-01-02 Fernando Perez <fperez@colorado.edu>
5936
5943
5937 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5944 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5938 so I wanted an updated release).
5945 so I wanted an updated release).
5939
5946
5940 2001-12-27 Fernando Perez <fperez@colorado.edu>
5947 2001-12-27 Fernando Perez <fperez@colorado.edu>
5941
5948
5942 * IPython/iplib.py (InteractiveShell.interact): Added the original
5949 * IPython/iplib.py (InteractiveShell.interact): Added the original
5943 code from 'code.py' for this module in order to change the
5950 code from 'code.py' for this module in order to change the
5944 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5951 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5945 the history cache would break when the user hit Ctrl-C, and
5952 the history cache would break when the user hit Ctrl-C, and
5946 interact() offers no way to add any hooks to it.
5953 interact() offers no way to add any hooks to it.
5947
5954
5948 2001-12-23 Fernando Perez <fperez@colorado.edu>
5955 2001-12-23 Fernando Perez <fperez@colorado.edu>
5949
5956
5950 * setup.py: added check for 'MANIFEST' before trying to remove
5957 * setup.py: added check for 'MANIFEST' before trying to remove
5951 it. Thanks to Sean Reifschneider.
5958 it. Thanks to Sean Reifschneider.
5952
5959
5953 2001-12-22 Fernando Perez <fperez@colorado.edu>
5960 2001-12-22 Fernando Perez <fperez@colorado.edu>
5954
5961
5955 * Released 0.2.2.
5962 * Released 0.2.2.
5956
5963
5957 * Finished (reasonably) writing the manual. Later will add the
5964 * Finished (reasonably) writing the manual. Later will add the
5958 python-standard navigation stylesheets, but for the time being
5965 python-standard navigation stylesheets, but for the time being
5959 it's fairly complete. Distribution will include html and pdf
5966 it's fairly complete. Distribution will include html and pdf
5960 versions.
5967 versions.
5961
5968
5962 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5969 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5963 (MayaVi author).
5970 (MayaVi author).
5964
5971
5965 2001-12-21 Fernando Perez <fperez@colorado.edu>
5972 2001-12-21 Fernando Perez <fperez@colorado.edu>
5966
5973
5967 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5974 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5968 good public release, I think (with the manual and the distutils
5975 good public release, I think (with the manual and the distutils
5969 installer). The manual can use some work, but that can go
5976 installer). The manual can use some work, but that can go
5970 slowly. Otherwise I think it's quite nice for end users. Next
5977 slowly. Otherwise I think it's quite nice for end users. Next
5971 summer, rewrite the guts of it...
5978 summer, rewrite the guts of it...
5972
5979
5973 * Changed format of ipythonrc files to use whitespace as the
5980 * Changed format of ipythonrc files to use whitespace as the
5974 separator instead of an explicit '='. Cleaner.
5981 separator instead of an explicit '='. Cleaner.
5975
5982
5976 2001-12-20 Fernando Perez <fperez@colorado.edu>
5983 2001-12-20 Fernando Perez <fperez@colorado.edu>
5977
5984
5978 * Started a manual in LyX. For now it's just a quick merge of the
5985 * Started a manual in LyX. For now it's just a quick merge of the
5979 various internal docstrings and READMEs. Later it may grow into a
5986 various internal docstrings and READMEs. Later it may grow into a
5980 nice, full-blown manual.
5987 nice, full-blown manual.
5981
5988
5982 * Set up a distutils based installer. Installation should now be
5989 * Set up a distutils based installer. Installation should now be
5983 trivially simple for end-users.
5990 trivially simple for end-users.
5984
5991
5985 2001-12-11 Fernando Perez <fperez@colorado.edu>
5992 2001-12-11 Fernando Perez <fperez@colorado.edu>
5986
5993
5987 * Released 0.2.0. First public release, announced it at
5994 * Released 0.2.0. First public release, announced it at
5988 comp.lang.python. From now on, just bugfixes...
5995 comp.lang.python. From now on, just bugfixes...
5989
5996
5990 * Went through all the files, set copyright/license notices and
5997 * Went through all the files, set copyright/license notices and
5991 cleaned up things. Ready for release.
5998 cleaned up things. Ready for release.
5992
5999
5993 2001-12-10 Fernando Perez <fperez@colorado.edu>
6000 2001-12-10 Fernando Perez <fperez@colorado.edu>
5994
6001
5995 * Changed the first-time installer not to use tarfiles. It's more
6002 * Changed the first-time installer not to use tarfiles. It's more
5996 robust now and less unix-dependent. Also makes it easier for
6003 robust now and less unix-dependent. Also makes it easier for
5997 people to later upgrade versions.
6004 people to later upgrade versions.
5998
6005
5999 * Changed @exit to @abort to reflect the fact that it's pretty
6006 * Changed @exit to @abort to reflect the fact that it's pretty
6000 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6007 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6001 becomes significant only when IPyhton is embedded: in that case,
6008 becomes significant only when IPyhton is embedded: in that case,
6002 C-D closes IPython only, but @abort kills the enclosing program
6009 C-D closes IPython only, but @abort kills the enclosing program
6003 too (unless it had called IPython inside a try catching
6010 too (unless it had called IPython inside a try catching
6004 SystemExit).
6011 SystemExit).
6005
6012
6006 * Created Shell module which exposes the actuall IPython Shell
6013 * Created Shell module which exposes the actuall IPython Shell
6007 classes, currently the normal and the embeddable one. This at
6014 classes, currently the normal and the embeddable one. This at
6008 least offers a stable interface we won't need to change when
6015 least offers a stable interface we won't need to change when
6009 (later) the internals are rewritten. That rewrite will be confined
6016 (later) the internals are rewritten. That rewrite will be confined
6010 to iplib and ipmaker, but the Shell interface should remain as is.
6017 to iplib and ipmaker, but the Shell interface should remain as is.
6011
6018
6012 * Added embed module which offers an embeddable IPShell object,
6019 * Added embed module which offers an embeddable IPShell object,
6013 useful to fire up IPython *inside* a running program. Great for
6020 useful to fire up IPython *inside* a running program. Great for
6014 debugging or dynamical data analysis.
6021 debugging or dynamical data analysis.
6015
6022
6016 2001-12-08 Fernando Perez <fperez@colorado.edu>
6023 2001-12-08 Fernando Perez <fperez@colorado.edu>
6017
6024
6018 * Fixed small bug preventing seeing info from methods of defined
6025 * Fixed small bug preventing seeing info from methods of defined
6019 objects (incorrect namespace in _ofind()).
6026 objects (incorrect namespace in _ofind()).
6020
6027
6021 * Documentation cleanup. Moved the main usage docstrings to a
6028 * Documentation cleanup. Moved the main usage docstrings to a
6022 separate file, usage.py (cleaner to maintain, and hopefully in the
6029 separate file, usage.py (cleaner to maintain, and hopefully in the
6023 future some perlpod-like way of producing interactive, man and
6030 future some perlpod-like way of producing interactive, man and
6024 html docs out of it will be found).
6031 html docs out of it will be found).
6025
6032
6026 * Added @profile to see your profile at any time.
6033 * Added @profile to see your profile at any time.
6027
6034
6028 * Added @p as an alias for 'print'. It's especially convenient if
6035 * Added @p as an alias for 'print'. It's especially convenient if
6029 using automagic ('p x' prints x).
6036 using automagic ('p x' prints x).
6030
6037
6031 * Small cleanups and fixes after a pychecker run.
6038 * Small cleanups and fixes after a pychecker run.
6032
6039
6033 * Changed the @cd command to handle @cd - and @cd -<n> for
6040 * Changed the @cd command to handle @cd - and @cd -<n> for
6034 visiting any directory in _dh.
6041 visiting any directory in _dh.
6035
6042
6036 * Introduced _dh, a history of visited directories. @dhist prints
6043 * Introduced _dh, a history of visited directories. @dhist prints
6037 it out with numbers.
6044 it out with numbers.
6038
6045
6039 2001-12-07 Fernando Perez <fperez@colorado.edu>
6046 2001-12-07 Fernando Perez <fperez@colorado.edu>
6040
6047
6041 * Released 0.1.22
6048 * Released 0.1.22
6042
6049
6043 * Made initialization a bit more robust against invalid color
6050 * Made initialization a bit more robust against invalid color
6044 options in user input (exit, not traceback-crash).
6051 options in user input (exit, not traceback-crash).
6045
6052
6046 * Changed the bug crash reporter to write the report only in the
6053 * Changed the bug crash reporter to write the report only in the
6047 user's .ipython directory. That way IPython won't litter people's
6054 user's .ipython directory. That way IPython won't litter people's
6048 hard disks with crash files all over the place. Also print on
6055 hard disks with crash files all over the place. Also print on
6049 screen the necessary mail command.
6056 screen the necessary mail command.
6050
6057
6051 * With the new ultraTB, implemented LightBG color scheme for light
6058 * With the new ultraTB, implemented LightBG color scheme for light
6052 background terminals. A lot of people like white backgrounds, so I
6059 background terminals. A lot of people like white backgrounds, so I
6053 guess we should at least give them something readable.
6060 guess we should at least give them something readable.
6054
6061
6055 2001-12-06 Fernando Perez <fperez@colorado.edu>
6062 2001-12-06 Fernando Perez <fperez@colorado.edu>
6056
6063
6057 * Modified the structure of ultraTB. Now there's a proper class
6064 * Modified the structure of ultraTB. Now there's a proper class
6058 for tables of color schemes which allow adding schemes easily and
6065 for tables of color schemes which allow adding schemes easily and
6059 switching the active scheme without creating a new instance every
6066 switching the active scheme without creating a new instance every
6060 time (which was ridiculous). The syntax for creating new schemes
6067 time (which was ridiculous). The syntax for creating new schemes
6061 is also cleaner. I think ultraTB is finally done, with a clean
6068 is also cleaner. I think ultraTB is finally done, with a clean
6062 class structure. Names are also much cleaner (now there's proper
6069 class structure. Names are also much cleaner (now there's proper
6063 color tables, no need for every variable to also have 'color' in
6070 color tables, no need for every variable to also have 'color' in
6064 its name).
6071 its name).
6065
6072
6066 * Broke down genutils into separate files. Now genutils only
6073 * Broke down genutils into separate files. Now genutils only
6067 contains utility functions, and classes have been moved to their
6074 contains utility functions, and classes have been moved to their
6068 own files (they had enough independent functionality to warrant
6075 own files (they had enough independent functionality to warrant
6069 it): ConfigLoader, OutputTrap, Struct.
6076 it): ConfigLoader, OutputTrap, Struct.
6070
6077
6071 2001-12-05 Fernando Perez <fperez@colorado.edu>
6078 2001-12-05 Fernando Perez <fperez@colorado.edu>
6072
6079
6073 * IPython turns 21! Released version 0.1.21, as a candidate for
6080 * IPython turns 21! Released version 0.1.21, as a candidate for
6074 public consumption. If all goes well, release in a few days.
6081 public consumption. If all goes well, release in a few days.
6075
6082
6076 * Fixed path bug (files in Extensions/ directory wouldn't be found
6083 * Fixed path bug (files in Extensions/ directory wouldn't be found
6077 unless IPython/ was explicitly in sys.path).
6084 unless IPython/ was explicitly in sys.path).
6078
6085
6079 * Extended the FlexCompleter class as MagicCompleter to allow
6086 * Extended the FlexCompleter class as MagicCompleter to allow
6080 completion of @-starting lines.
6087 completion of @-starting lines.
6081
6088
6082 * Created __release__.py file as a central repository for release
6089 * Created __release__.py file as a central repository for release
6083 info that other files can read from.
6090 info that other files can read from.
6084
6091
6085 * Fixed small bug in logging: when logging was turned on in
6092 * Fixed small bug in logging: when logging was turned on in
6086 mid-session, old lines with special meanings (!@?) were being
6093 mid-session, old lines with special meanings (!@?) were being
6087 logged without the prepended comment, which is necessary since
6094 logged without the prepended comment, which is necessary since
6088 they are not truly valid python syntax. This should make session
6095 they are not truly valid python syntax. This should make session
6089 restores produce less errors.
6096 restores produce less errors.
6090
6097
6091 * The namespace cleanup forced me to make a FlexCompleter class
6098 * The namespace cleanup forced me to make a FlexCompleter class
6092 which is nothing but a ripoff of rlcompleter, but with selectable
6099 which is nothing but a ripoff of rlcompleter, but with selectable
6093 namespace (rlcompleter only works in __main__.__dict__). I'll try
6100 namespace (rlcompleter only works in __main__.__dict__). I'll try
6094 to submit a note to the authors to see if this change can be
6101 to submit a note to the authors to see if this change can be
6095 incorporated in future rlcompleter releases (Dec.6: done)
6102 incorporated in future rlcompleter releases (Dec.6: done)
6096
6103
6097 * More fixes to namespace handling. It was a mess! Now all
6104 * More fixes to namespace handling. It was a mess! Now all
6098 explicit references to __main__.__dict__ are gone (except when
6105 explicit references to __main__.__dict__ are gone (except when
6099 really needed) and everything is handled through the namespace
6106 really needed) and everything is handled through the namespace
6100 dicts in the IPython instance. We seem to be getting somewhere
6107 dicts in the IPython instance. We seem to be getting somewhere
6101 with this, finally...
6108 with this, finally...
6102
6109
6103 * Small documentation updates.
6110 * Small documentation updates.
6104
6111
6105 * Created the Extensions directory under IPython (with an
6112 * Created the Extensions directory under IPython (with an
6106 __init__.py). Put the PhysicalQ stuff there. This directory should
6113 __init__.py). Put the PhysicalQ stuff there. This directory should
6107 be used for all special-purpose extensions.
6114 be used for all special-purpose extensions.
6108
6115
6109 * File renaming:
6116 * File renaming:
6110 ipythonlib --> ipmaker
6117 ipythonlib --> ipmaker
6111 ipplib --> iplib
6118 ipplib --> iplib
6112 This makes a bit more sense in terms of what these files actually do.
6119 This makes a bit more sense in terms of what these files actually do.
6113
6120
6114 * Moved all the classes and functions in ipythonlib to ipplib, so
6121 * Moved all the classes and functions in ipythonlib to ipplib, so
6115 now ipythonlib only has make_IPython(). This will ease up its
6122 now ipythonlib only has make_IPython(). This will ease up its
6116 splitting in smaller functional chunks later.
6123 splitting in smaller functional chunks later.
6117
6124
6118 * Cleaned up (done, I think) output of @whos. Better column
6125 * Cleaned up (done, I think) output of @whos. Better column
6119 formatting, and now shows str(var) for as much as it can, which is
6126 formatting, and now shows str(var) for as much as it can, which is
6120 typically what one gets with a 'print var'.
6127 typically what one gets with a 'print var'.
6121
6128
6122 2001-12-04 Fernando Perez <fperez@colorado.edu>
6129 2001-12-04 Fernando Perez <fperez@colorado.edu>
6123
6130
6124 * Fixed namespace problems. Now builtin/IPyhton/user names get
6131 * Fixed namespace problems. Now builtin/IPyhton/user names get
6125 properly reported in their namespace. Internal namespace handling
6132 properly reported in their namespace. Internal namespace handling
6126 is finally getting decent (not perfect yet, but much better than
6133 is finally getting decent (not perfect yet, but much better than
6127 the ad-hoc mess we had).
6134 the ad-hoc mess we had).
6128
6135
6129 * Removed -exit option. If people just want to run a python
6136 * Removed -exit option. If people just want to run a python
6130 script, that's what the normal interpreter is for. Less
6137 script, that's what the normal interpreter is for. Less
6131 unnecessary options, less chances for bugs.
6138 unnecessary options, less chances for bugs.
6132
6139
6133 * Added a crash handler which generates a complete post-mortem if
6140 * Added a crash handler which generates a complete post-mortem if
6134 IPython crashes. This will help a lot in tracking bugs down the
6141 IPython crashes. This will help a lot in tracking bugs down the
6135 road.
6142 road.
6136
6143
6137 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6144 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6138 which were boud to functions being reassigned would bypass the
6145 which were boud to functions being reassigned would bypass the
6139 logger, breaking the sync of _il with the prompt counter. This
6146 logger, breaking the sync of _il with the prompt counter. This
6140 would then crash IPython later when a new line was logged.
6147 would then crash IPython later when a new line was logged.
6141
6148
6142 2001-12-02 Fernando Perez <fperez@colorado.edu>
6149 2001-12-02 Fernando Perez <fperez@colorado.edu>
6143
6150
6144 * Made IPython a package. This means people don't have to clutter
6151 * Made IPython a package. This means people don't have to clutter
6145 their sys.path with yet another directory. Changed the INSTALL
6152 their sys.path with yet another directory. Changed the INSTALL
6146 file accordingly.
6153 file accordingly.
6147
6154
6148 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6155 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6149 sorts its output (so @who shows it sorted) and @whos formats the
6156 sorts its output (so @who shows it sorted) and @whos formats the
6150 table according to the width of the first column. Nicer, easier to
6157 table according to the width of the first column. Nicer, easier to
6151 read. Todo: write a generic table_format() which takes a list of
6158 read. Todo: write a generic table_format() which takes a list of
6152 lists and prints it nicely formatted, with optional row/column
6159 lists and prints it nicely formatted, with optional row/column
6153 separators and proper padding and justification.
6160 separators and proper padding and justification.
6154
6161
6155 * Released 0.1.20
6162 * Released 0.1.20
6156
6163
6157 * Fixed bug in @log which would reverse the inputcache list (a
6164 * Fixed bug in @log which would reverse the inputcache list (a
6158 copy operation was missing).
6165 copy operation was missing).
6159
6166
6160 * Code cleanup. @config was changed to use page(). Better, since
6167 * Code cleanup. @config was changed to use page(). Better, since
6161 its output is always quite long.
6168 its output is always quite long.
6162
6169
6163 * Itpl is back as a dependency. I was having too many problems
6170 * Itpl is back as a dependency. I was having too many problems
6164 getting the parametric aliases to work reliably, and it's just
6171 getting the parametric aliases to work reliably, and it's just
6165 easier to code weird string operations with it than playing %()s
6172 easier to code weird string operations with it than playing %()s
6166 games. It's only ~6k, so I don't think it's too big a deal.
6173 games. It's only ~6k, so I don't think it's too big a deal.
6167
6174
6168 * Found (and fixed) a very nasty bug with history. !lines weren't
6175 * Found (and fixed) a very nasty bug with history. !lines weren't
6169 getting cached, and the out of sync caches would crash
6176 getting cached, and the out of sync caches would crash
6170 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6177 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6171 division of labor a bit better. Bug fixed, cleaner structure.
6178 division of labor a bit better. Bug fixed, cleaner structure.
6172
6179
6173 2001-12-01 Fernando Perez <fperez@colorado.edu>
6180 2001-12-01 Fernando Perez <fperez@colorado.edu>
6174
6181
6175 * Released 0.1.19
6182 * Released 0.1.19
6176
6183
6177 * Added option -n to @hist to prevent line number printing. Much
6184 * Added option -n to @hist to prevent line number printing. Much
6178 easier to copy/paste code this way.
6185 easier to copy/paste code this way.
6179
6186
6180 * Created global _il to hold the input list. Allows easy
6187 * Created global _il to hold the input list. Allows easy
6181 re-execution of blocks of code by slicing it (inspired by Janko's
6188 re-execution of blocks of code by slicing it (inspired by Janko's
6182 comment on 'macros').
6189 comment on 'macros').
6183
6190
6184 * Small fixes and doc updates.
6191 * Small fixes and doc updates.
6185
6192
6186 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6193 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6187 much too fragile with automagic. Handles properly multi-line
6194 much too fragile with automagic. Handles properly multi-line
6188 statements and takes parameters.
6195 statements and takes parameters.
6189
6196
6190 2001-11-30 Fernando Perez <fperez@colorado.edu>
6197 2001-11-30 Fernando Perez <fperez@colorado.edu>
6191
6198
6192 * Version 0.1.18 released.
6199 * Version 0.1.18 released.
6193
6200
6194 * Fixed nasty namespace bug in initial module imports.
6201 * Fixed nasty namespace bug in initial module imports.
6195
6202
6196 * Added copyright/license notes to all code files (except
6203 * Added copyright/license notes to all code files (except
6197 DPyGetOpt). For the time being, LGPL. That could change.
6204 DPyGetOpt). For the time being, LGPL. That could change.
6198
6205
6199 * Rewrote a much nicer README, updated INSTALL, cleaned up
6206 * Rewrote a much nicer README, updated INSTALL, cleaned up
6200 ipythonrc-* samples.
6207 ipythonrc-* samples.
6201
6208
6202 * Overall code/documentation cleanup. Basically ready for
6209 * Overall code/documentation cleanup. Basically ready for
6203 release. Only remaining thing: licence decision (LGPL?).
6210 release. Only remaining thing: licence decision (LGPL?).
6204
6211
6205 * Converted load_config to a class, ConfigLoader. Now recursion
6212 * Converted load_config to a class, ConfigLoader. Now recursion
6206 control is better organized. Doesn't include the same file twice.
6213 control is better organized. Doesn't include the same file twice.
6207
6214
6208 2001-11-29 Fernando Perez <fperez@colorado.edu>
6215 2001-11-29 Fernando Perez <fperez@colorado.edu>
6209
6216
6210 * Got input history working. Changed output history variables from
6217 * Got input history working. Changed output history variables from
6211 _p to _o so that _i is for input and _o for output. Just cleaner
6218 _p to _o so that _i is for input and _o for output. Just cleaner
6212 convention.
6219 convention.
6213
6220
6214 * Implemented parametric aliases. This pretty much allows the
6221 * Implemented parametric aliases. This pretty much allows the
6215 alias system to offer full-blown shell convenience, I think.
6222 alias system to offer full-blown shell convenience, I think.
6216
6223
6217 * Version 0.1.17 released, 0.1.18 opened.
6224 * Version 0.1.17 released, 0.1.18 opened.
6218
6225
6219 * dot_ipython/ipythonrc (alias): added documentation.
6226 * dot_ipython/ipythonrc (alias): added documentation.
6220 (xcolor): Fixed small bug (xcolors -> xcolor)
6227 (xcolor): Fixed small bug (xcolors -> xcolor)
6221
6228
6222 * Changed the alias system. Now alias is a magic command to define
6229 * Changed the alias system. Now alias is a magic command to define
6223 aliases just like the shell. Rationale: the builtin magics should
6230 aliases just like the shell. Rationale: the builtin magics should
6224 be there for things deeply connected to IPython's
6231 be there for things deeply connected to IPython's
6225 architecture. And this is a much lighter system for what I think
6232 architecture. And this is a much lighter system for what I think
6226 is the really important feature: allowing users to define quickly
6233 is the really important feature: allowing users to define quickly
6227 magics that will do shell things for them, so they can customize
6234 magics that will do shell things for them, so they can customize
6228 IPython easily to match their work habits. If someone is really
6235 IPython easily to match their work habits. If someone is really
6229 desperate to have another name for a builtin alias, they can
6236 desperate to have another name for a builtin alias, they can
6230 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6237 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6231 works.
6238 works.
6232
6239
6233 2001-11-28 Fernando Perez <fperez@colorado.edu>
6240 2001-11-28 Fernando Perez <fperez@colorado.edu>
6234
6241
6235 * Changed @file so that it opens the source file at the proper
6242 * Changed @file so that it opens the source file at the proper
6236 line. Since it uses less, if your EDITOR environment is
6243 line. Since it uses less, if your EDITOR environment is
6237 configured, typing v will immediately open your editor of choice
6244 configured, typing v will immediately open your editor of choice
6238 right at the line where the object is defined. Not as quick as
6245 right at the line where the object is defined. Not as quick as
6239 having a direct @edit command, but for all intents and purposes it
6246 having a direct @edit command, but for all intents and purposes it
6240 works. And I don't have to worry about writing @edit to deal with
6247 works. And I don't have to worry about writing @edit to deal with
6241 all the editors, less does that.
6248 all the editors, less does that.
6242
6249
6243 * Version 0.1.16 released, 0.1.17 opened.
6250 * Version 0.1.16 released, 0.1.17 opened.
6244
6251
6245 * Fixed some nasty bugs in the page/page_dumb combo that could
6252 * Fixed some nasty bugs in the page/page_dumb combo that could
6246 crash IPython.
6253 crash IPython.
6247
6254
6248 2001-11-27 Fernando Perez <fperez@colorado.edu>
6255 2001-11-27 Fernando Perez <fperez@colorado.edu>
6249
6256
6250 * Version 0.1.15 released, 0.1.16 opened.
6257 * Version 0.1.15 released, 0.1.16 opened.
6251
6258
6252 * Finally got ? and ?? to work for undefined things: now it's
6259 * Finally got ? and ?? to work for undefined things: now it's
6253 possible to type {}.get? and get information about the get method
6260 possible to type {}.get? and get information about the get method
6254 of dicts, or os.path? even if only os is defined (so technically
6261 of dicts, or os.path? even if only os is defined (so technically
6255 os.path isn't). Works at any level. For example, after import os,
6262 os.path isn't). Works at any level. For example, after import os,
6256 os?, os.path?, os.path.abspath? all work. This is great, took some
6263 os?, os.path?, os.path.abspath? all work. This is great, took some
6257 work in _ofind.
6264 work in _ofind.
6258
6265
6259 * Fixed more bugs with logging. The sanest way to do it was to add
6266 * Fixed more bugs with logging. The sanest way to do it was to add
6260 to @log a 'mode' parameter. Killed two in one shot (this mode
6267 to @log a 'mode' parameter. Killed two in one shot (this mode
6261 option was a request of Janko's). I think it's finally clean
6268 option was a request of Janko's). I think it's finally clean
6262 (famous last words).
6269 (famous last words).
6263
6270
6264 * Added a page_dumb() pager which does a decent job of paging on
6271 * Added a page_dumb() pager which does a decent job of paging on
6265 screen, if better things (like less) aren't available. One less
6272 screen, if better things (like less) aren't available. One less
6266 unix dependency (someday maybe somebody will port this to
6273 unix dependency (someday maybe somebody will port this to
6267 windows).
6274 windows).
6268
6275
6269 * Fixed problem in magic_log: would lock of logging out if log
6276 * Fixed problem in magic_log: would lock of logging out if log
6270 creation failed (because it would still think it had succeeded).
6277 creation failed (because it would still think it had succeeded).
6271
6278
6272 * Improved the page() function using curses to auto-detect screen
6279 * Improved the page() function using curses to auto-detect screen
6273 size. Now it can make a much better decision on whether to print
6280 size. Now it can make a much better decision on whether to print
6274 or page a string. Option screen_length was modified: a value 0
6281 or page a string. Option screen_length was modified: a value 0
6275 means auto-detect, and that's the default now.
6282 means auto-detect, and that's the default now.
6276
6283
6277 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6284 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6278 go out. I'll test it for a few days, then talk to Janko about
6285 go out. I'll test it for a few days, then talk to Janko about
6279 licences and announce it.
6286 licences and announce it.
6280
6287
6281 * Fixed the length of the auto-generated ---> prompt which appears
6288 * Fixed the length of the auto-generated ---> prompt which appears
6282 for auto-parens and auto-quotes. Getting this right isn't trivial,
6289 for auto-parens and auto-quotes. Getting this right isn't trivial,
6283 with all the color escapes, different prompt types and optional
6290 with all the color escapes, different prompt types and optional
6284 separators. But it seems to be working in all the combinations.
6291 separators. But it seems to be working in all the combinations.
6285
6292
6286 2001-11-26 Fernando Perez <fperez@colorado.edu>
6293 2001-11-26 Fernando Perez <fperez@colorado.edu>
6287
6294
6288 * Wrote a regexp filter to get option types from the option names
6295 * Wrote a regexp filter to get option types from the option names
6289 string. This eliminates the need to manually keep two duplicate
6296 string. This eliminates the need to manually keep two duplicate
6290 lists.
6297 lists.
6291
6298
6292 * Removed the unneeded check_option_names. Now options are handled
6299 * Removed the unneeded check_option_names. Now options are handled
6293 in a much saner manner and it's easy to visually check that things
6300 in a much saner manner and it's easy to visually check that things
6294 are ok.
6301 are ok.
6295
6302
6296 * Updated version numbers on all files I modified to carry a
6303 * Updated version numbers on all files I modified to carry a
6297 notice so Janko and Nathan have clear version markers.
6304 notice so Janko and Nathan have clear version markers.
6298
6305
6299 * Updated docstring for ultraTB with my changes. I should send
6306 * Updated docstring for ultraTB with my changes. I should send
6300 this to Nathan.
6307 this to Nathan.
6301
6308
6302 * Lots of small fixes. Ran everything through pychecker again.
6309 * Lots of small fixes. Ran everything through pychecker again.
6303
6310
6304 * Made loading of deep_reload an cmd line option. If it's not too
6311 * Made loading of deep_reload an cmd line option. If it's not too
6305 kosher, now people can just disable it. With -nodeep_reload it's
6312 kosher, now people can just disable it. With -nodeep_reload it's
6306 still available as dreload(), it just won't overwrite reload().
6313 still available as dreload(), it just won't overwrite reload().
6307
6314
6308 * Moved many options to the no| form (-opt and -noopt
6315 * Moved many options to the no| form (-opt and -noopt
6309 accepted). Cleaner.
6316 accepted). Cleaner.
6310
6317
6311 * Changed magic_log so that if called with no parameters, it uses
6318 * Changed magic_log so that if called with no parameters, it uses
6312 'rotate' mode. That way auto-generated logs aren't automatically
6319 'rotate' mode. That way auto-generated logs aren't automatically
6313 over-written. For normal logs, now a backup is made if it exists
6320 over-written. For normal logs, now a backup is made if it exists
6314 (only 1 level of backups). A new 'backup' mode was added to the
6321 (only 1 level of backups). A new 'backup' mode was added to the
6315 Logger class to support this. This was a request by Janko.
6322 Logger class to support this. This was a request by Janko.
6316
6323
6317 * Added @logoff/@logon to stop/restart an active log.
6324 * Added @logoff/@logon to stop/restart an active log.
6318
6325
6319 * Fixed a lot of bugs in log saving/replay. It was pretty
6326 * Fixed a lot of bugs in log saving/replay. It was pretty
6320 broken. Now special lines (!@,/) appear properly in the command
6327 broken. Now special lines (!@,/) appear properly in the command
6321 history after a log replay.
6328 history after a log replay.
6322
6329
6323 * Tried and failed to implement full session saving via pickle. My
6330 * Tried and failed to implement full session saving via pickle. My
6324 idea was to pickle __main__.__dict__, but modules can't be
6331 idea was to pickle __main__.__dict__, but modules can't be
6325 pickled. This would be a better alternative to replaying logs, but
6332 pickled. This would be a better alternative to replaying logs, but
6326 seems quite tricky to get to work. Changed -session to be called
6333 seems quite tricky to get to work. Changed -session to be called
6327 -logplay, which more accurately reflects what it does. And if we
6334 -logplay, which more accurately reflects what it does. And if we
6328 ever get real session saving working, -session is now available.
6335 ever get real session saving working, -session is now available.
6329
6336
6330 * Implemented color schemes for prompts also. As for tracebacks,
6337 * Implemented color schemes for prompts also. As for tracebacks,
6331 currently only NoColor and Linux are supported. But now the
6338 currently only NoColor and Linux are supported. But now the
6332 infrastructure is in place, based on a generic ColorScheme
6339 infrastructure is in place, based on a generic ColorScheme
6333 class. So writing and activating new schemes both for the prompts
6340 class. So writing and activating new schemes both for the prompts
6334 and the tracebacks should be straightforward.
6341 and the tracebacks should be straightforward.
6335
6342
6336 * Version 0.1.13 released, 0.1.14 opened.
6343 * Version 0.1.13 released, 0.1.14 opened.
6337
6344
6338 * Changed handling of options for output cache. Now counter is
6345 * Changed handling of options for output cache. Now counter is
6339 hardwired starting at 1 and one specifies the maximum number of
6346 hardwired starting at 1 and one specifies the maximum number of
6340 entries *in the outcache* (not the max prompt counter). This is
6347 entries *in the outcache* (not the max prompt counter). This is
6341 much better, since many statements won't increase the cache
6348 much better, since many statements won't increase the cache
6342 count. It also eliminated some confusing options, now there's only
6349 count. It also eliminated some confusing options, now there's only
6343 one: cache_size.
6350 one: cache_size.
6344
6351
6345 * Added 'alias' magic function and magic_alias option in the
6352 * Added 'alias' magic function and magic_alias option in the
6346 ipythonrc file. Now the user can easily define whatever names he
6353 ipythonrc file. Now the user can easily define whatever names he
6347 wants for the magic functions without having to play weird
6354 wants for the magic functions without having to play weird
6348 namespace games. This gives IPython a real shell-like feel.
6355 namespace games. This gives IPython a real shell-like feel.
6349
6356
6350 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6357 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6351 @ or not).
6358 @ or not).
6352
6359
6353 This was one of the last remaining 'visible' bugs (that I know
6360 This was one of the last remaining 'visible' bugs (that I know
6354 of). I think if I can clean up the session loading so it works
6361 of). I think if I can clean up the session loading so it works
6355 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6362 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6356 about licensing).
6363 about licensing).
6357
6364
6358 2001-11-25 Fernando Perez <fperez@colorado.edu>
6365 2001-11-25 Fernando Perez <fperez@colorado.edu>
6359
6366
6360 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6367 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6361 there's a cleaner distinction between what ? and ?? show.
6368 there's a cleaner distinction between what ? and ?? show.
6362
6369
6363 * Added screen_length option. Now the user can define his own
6370 * Added screen_length option. Now the user can define his own
6364 screen size for page() operations.
6371 screen size for page() operations.
6365
6372
6366 * Implemented magic shell-like functions with automatic code
6373 * Implemented magic shell-like functions with automatic code
6367 generation. Now adding another function is just a matter of adding
6374 generation. Now adding another function is just a matter of adding
6368 an entry to a dict, and the function is dynamically generated at
6375 an entry to a dict, and the function is dynamically generated at
6369 run-time. Python has some really cool features!
6376 run-time. Python has some really cool features!
6370
6377
6371 * Renamed many options to cleanup conventions a little. Now all
6378 * Renamed many options to cleanup conventions a little. Now all
6372 are lowercase, and only underscores where needed. Also in the code
6379 are lowercase, and only underscores where needed. Also in the code
6373 option name tables are clearer.
6380 option name tables are clearer.
6374
6381
6375 * Changed prompts a little. Now input is 'In [n]:' instead of
6382 * Changed prompts a little. Now input is 'In [n]:' instead of
6376 'In[n]:='. This allows it the numbers to be aligned with the
6383 'In[n]:='. This allows it the numbers to be aligned with the
6377 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6384 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6378 Python (it was a Mathematica thing). The '...' continuation prompt
6385 Python (it was a Mathematica thing). The '...' continuation prompt
6379 was also changed a little to align better.
6386 was also changed a little to align better.
6380
6387
6381 * Fixed bug when flushing output cache. Not all _p<n> variables
6388 * Fixed bug when flushing output cache. Not all _p<n> variables
6382 exist, so their deletion needs to be wrapped in a try:
6389 exist, so their deletion needs to be wrapped in a try:
6383
6390
6384 * Figured out how to properly use inspect.formatargspec() (it
6391 * Figured out how to properly use inspect.formatargspec() (it
6385 requires the args preceded by *). So I removed all the code from
6392 requires the args preceded by *). So I removed all the code from
6386 _get_pdef in Magic, which was just replicating that.
6393 _get_pdef in Magic, which was just replicating that.
6387
6394
6388 * Added test to prefilter to allow redefining magic function names
6395 * Added test to prefilter to allow redefining magic function names
6389 as variables. This is ok, since the @ form is always available,
6396 as variables. This is ok, since the @ form is always available,
6390 but whe should allow the user to define a variable called 'ls' if
6397 but whe should allow the user to define a variable called 'ls' if
6391 he needs it.
6398 he needs it.
6392
6399
6393 * Moved the ToDo information from README into a separate ToDo.
6400 * Moved the ToDo information from README into a separate ToDo.
6394
6401
6395 * General code cleanup and small bugfixes. I think it's close to a
6402 * General code cleanup and small bugfixes. I think it's close to a
6396 state where it can be released, obviously with a big 'beta'
6403 state where it can be released, obviously with a big 'beta'
6397 warning on it.
6404 warning on it.
6398
6405
6399 * Got the magic function split to work. Now all magics are defined
6406 * Got the magic function split to work. Now all magics are defined
6400 in a separate class. It just organizes things a bit, and now
6407 in a separate class. It just organizes things a bit, and now
6401 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6408 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6402 was too long).
6409 was too long).
6403
6410
6404 * Changed @clear to @reset to avoid potential confusions with
6411 * Changed @clear to @reset to avoid potential confusions with
6405 the shell command clear. Also renamed @cl to @clear, which does
6412 the shell command clear. Also renamed @cl to @clear, which does
6406 exactly what people expect it to from their shell experience.
6413 exactly what people expect it to from their shell experience.
6407
6414
6408 Added a check to the @reset command (since it's so
6415 Added a check to the @reset command (since it's so
6409 destructive, it's probably a good idea to ask for confirmation).
6416 destructive, it's probably a good idea to ask for confirmation).
6410 But now reset only works for full namespace resetting. Since the
6417 But now reset only works for full namespace resetting. Since the
6411 del keyword is already there for deleting a few specific
6418 del keyword is already there for deleting a few specific
6412 variables, I don't see the point of having a redundant magic
6419 variables, I don't see the point of having a redundant magic
6413 function for the same task.
6420 function for the same task.
6414
6421
6415 2001-11-24 Fernando Perez <fperez@colorado.edu>
6422 2001-11-24 Fernando Perez <fperez@colorado.edu>
6416
6423
6417 * Updated the builtin docs (esp. the ? ones).
6424 * Updated the builtin docs (esp. the ? ones).
6418
6425
6419 * Ran all the code through pychecker. Not terribly impressed with
6426 * Ran all the code through pychecker. Not terribly impressed with
6420 it: lots of spurious warnings and didn't really find anything of
6427 it: lots of spurious warnings and didn't really find anything of
6421 substance (just a few modules being imported and not used).
6428 substance (just a few modules being imported and not used).
6422
6429
6423 * Implemented the new ultraTB functionality into IPython. New
6430 * Implemented the new ultraTB functionality into IPython. New
6424 option: xcolors. This chooses color scheme. xmode now only selects
6431 option: xcolors. This chooses color scheme. xmode now only selects
6425 between Plain and Verbose. Better orthogonality.
6432 between Plain and Verbose. Better orthogonality.
6426
6433
6427 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6434 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6428 mode and color scheme for the exception handlers. Now it's
6435 mode and color scheme for the exception handlers. Now it's
6429 possible to have the verbose traceback with no coloring.
6436 possible to have the verbose traceback with no coloring.
6430
6437
6431 2001-11-23 Fernando Perez <fperez@colorado.edu>
6438 2001-11-23 Fernando Perez <fperez@colorado.edu>
6432
6439
6433 * Version 0.1.12 released, 0.1.13 opened.
6440 * Version 0.1.12 released, 0.1.13 opened.
6434
6441
6435 * Removed option to set auto-quote and auto-paren escapes by
6442 * Removed option to set auto-quote and auto-paren escapes by
6436 user. The chances of breaking valid syntax are just too high. If
6443 user. The chances of breaking valid syntax are just too high. If
6437 someone *really* wants, they can always dig into the code.
6444 someone *really* wants, they can always dig into the code.
6438
6445
6439 * Made prompt separators configurable.
6446 * Made prompt separators configurable.
6440
6447
6441 2001-11-22 Fernando Perez <fperez@colorado.edu>
6448 2001-11-22 Fernando Perez <fperez@colorado.edu>
6442
6449
6443 * Small bugfixes in many places.
6450 * Small bugfixes in many places.
6444
6451
6445 * Removed the MyCompleter class from ipplib. It seemed redundant
6452 * Removed the MyCompleter class from ipplib. It seemed redundant
6446 with the C-p,C-n history search functionality. Less code to
6453 with the C-p,C-n history search functionality. Less code to
6447 maintain.
6454 maintain.
6448
6455
6449 * Moved all the original ipython.py code into ipythonlib.py. Right
6456 * Moved all the original ipython.py code into ipythonlib.py. Right
6450 now it's just one big dump into a function called make_IPython, so
6457 now it's just one big dump into a function called make_IPython, so
6451 no real modularity has been gained. But at least it makes the
6458 no real modularity has been gained. But at least it makes the
6452 wrapper script tiny, and since ipythonlib is a module, it gets
6459 wrapper script tiny, and since ipythonlib is a module, it gets
6453 compiled and startup is much faster.
6460 compiled and startup is much faster.
6454
6461
6455 This is a reasobably 'deep' change, so we should test it for a
6462 This is a reasobably 'deep' change, so we should test it for a
6456 while without messing too much more with the code.
6463 while without messing too much more with the code.
6457
6464
6458 2001-11-21 Fernando Perez <fperez@colorado.edu>
6465 2001-11-21 Fernando Perez <fperez@colorado.edu>
6459
6466
6460 * Version 0.1.11 released, 0.1.12 opened for further work.
6467 * Version 0.1.11 released, 0.1.12 opened for further work.
6461
6468
6462 * Removed dependency on Itpl. It was only needed in one place. It
6469 * Removed dependency on Itpl. It was only needed in one place. It
6463 would be nice if this became part of python, though. It makes life
6470 would be nice if this became part of python, though. It makes life
6464 *a lot* easier in some cases.
6471 *a lot* easier in some cases.
6465
6472
6466 * Simplified the prefilter code a bit. Now all handlers are
6473 * Simplified the prefilter code a bit. Now all handlers are
6467 expected to explicitly return a value (at least a blank string).
6474 expected to explicitly return a value (at least a blank string).
6468
6475
6469 * Heavy edits in ipplib. Removed the help system altogether. Now
6476 * Heavy edits in ipplib. Removed the help system altogether. Now
6470 obj?/?? is used for inspecting objects, a magic @doc prints
6477 obj?/?? is used for inspecting objects, a magic @doc prints
6471 docstrings, and full-blown Python help is accessed via the 'help'
6478 docstrings, and full-blown Python help is accessed via the 'help'
6472 keyword. This cleans up a lot of code (less to maintain) and does
6479 keyword. This cleans up a lot of code (less to maintain) and does
6473 the job. Since 'help' is now a standard Python component, might as
6480 the job. Since 'help' is now a standard Python component, might as
6474 well use it and remove duplicate functionality.
6481 well use it and remove duplicate functionality.
6475
6482
6476 Also removed the option to use ipplib as a standalone program. By
6483 Also removed the option to use ipplib as a standalone program. By
6477 now it's too dependent on other parts of IPython to function alone.
6484 now it's too dependent on other parts of IPython to function alone.
6478
6485
6479 * Fixed bug in genutils.pager. It would crash if the pager was
6486 * Fixed bug in genutils.pager. It would crash if the pager was
6480 exited immediately after opening (broken pipe).
6487 exited immediately after opening (broken pipe).
6481
6488
6482 * Trimmed down the VerboseTB reporting a little. The header is
6489 * Trimmed down the VerboseTB reporting a little. The header is
6483 much shorter now and the repeated exception arguments at the end
6490 much shorter now and the repeated exception arguments at the end
6484 have been removed. For interactive use the old header seemed a bit
6491 have been removed. For interactive use the old header seemed a bit
6485 excessive.
6492 excessive.
6486
6493
6487 * Fixed small bug in output of @whos for variables with multi-word
6494 * Fixed small bug in output of @whos for variables with multi-word
6488 types (only first word was displayed).
6495 types (only first word was displayed).
6489
6496
6490 2001-11-17 Fernando Perez <fperez@colorado.edu>
6497 2001-11-17 Fernando Perez <fperez@colorado.edu>
6491
6498
6492 * Version 0.1.10 released, 0.1.11 opened for further work.
6499 * Version 0.1.10 released, 0.1.11 opened for further work.
6493
6500
6494 * Modified dirs and friends. dirs now *returns* the stack (not
6501 * Modified dirs and friends. dirs now *returns* the stack (not
6495 prints), so one can manipulate it as a variable. Convenient to
6502 prints), so one can manipulate it as a variable. Convenient to
6496 travel along many directories.
6503 travel along many directories.
6497
6504
6498 * Fixed bug in magic_pdef: would only work with functions with
6505 * Fixed bug in magic_pdef: would only work with functions with
6499 arguments with default values.
6506 arguments with default values.
6500
6507
6501 2001-11-14 Fernando Perez <fperez@colorado.edu>
6508 2001-11-14 Fernando Perez <fperez@colorado.edu>
6502
6509
6503 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6510 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6504 example with IPython. Various other minor fixes and cleanups.
6511 example with IPython. Various other minor fixes and cleanups.
6505
6512
6506 * Version 0.1.9 released, 0.1.10 opened for further work.
6513 * Version 0.1.9 released, 0.1.10 opened for further work.
6507
6514
6508 * Added sys.path to the list of directories searched in the
6515 * Added sys.path to the list of directories searched in the
6509 execfile= option. It used to be the current directory and the
6516 execfile= option. It used to be the current directory and the
6510 user's IPYTHONDIR only.
6517 user's IPYTHONDIR only.
6511
6518
6512 2001-11-13 Fernando Perez <fperez@colorado.edu>
6519 2001-11-13 Fernando Perez <fperez@colorado.edu>
6513
6520
6514 * Reinstated the raw_input/prefilter separation that Janko had
6521 * Reinstated the raw_input/prefilter separation that Janko had
6515 initially. This gives a more convenient setup for extending the
6522 initially. This gives a more convenient setup for extending the
6516 pre-processor from the outside: raw_input always gets a string,
6523 pre-processor from the outside: raw_input always gets a string,
6517 and prefilter has to process it. We can then redefine prefilter
6524 and prefilter has to process it. We can then redefine prefilter
6518 from the outside and implement extensions for special
6525 from the outside and implement extensions for special
6519 purposes.
6526 purposes.
6520
6527
6521 Today I got one for inputting PhysicalQuantity objects
6528 Today I got one for inputting PhysicalQuantity objects
6522 (from Scientific) without needing any function calls at
6529 (from Scientific) without needing any function calls at
6523 all. Extremely convenient, and it's all done as a user-level
6530 all. Extremely convenient, and it's all done as a user-level
6524 extension (no IPython code was touched). Now instead of:
6531 extension (no IPython code was touched). Now instead of:
6525 a = PhysicalQuantity(4.2,'m/s**2')
6532 a = PhysicalQuantity(4.2,'m/s**2')
6526 one can simply say
6533 one can simply say
6527 a = 4.2 m/s**2
6534 a = 4.2 m/s**2
6528 or even
6535 or even
6529 a = 4.2 m/s^2
6536 a = 4.2 m/s^2
6530
6537
6531 I use this, but it's also a proof of concept: IPython really is
6538 I use this, but it's also a proof of concept: IPython really is
6532 fully user-extensible, even at the level of the parsing of the
6539 fully user-extensible, even at the level of the parsing of the
6533 command line. It's not trivial, but it's perfectly doable.
6540 command line. It's not trivial, but it's perfectly doable.
6534
6541
6535 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6542 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6536 the problem of modules being loaded in the inverse order in which
6543 the problem of modules being loaded in the inverse order in which
6537 they were defined in
6544 they were defined in
6538
6545
6539 * Version 0.1.8 released, 0.1.9 opened for further work.
6546 * Version 0.1.8 released, 0.1.9 opened for further work.
6540
6547
6541 * Added magics pdef, source and file. They respectively show the
6548 * Added magics pdef, source and file. They respectively show the
6542 definition line ('prototype' in C), source code and full python
6549 definition line ('prototype' in C), source code and full python
6543 file for any callable object. The object inspector oinfo uses
6550 file for any callable object. The object inspector oinfo uses
6544 these to show the same information.
6551 these to show the same information.
6545
6552
6546 * Version 0.1.7 released, 0.1.8 opened for further work.
6553 * Version 0.1.7 released, 0.1.8 opened for further work.
6547
6554
6548 * Separated all the magic functions into a class called Magic. The
6555 * Separated all the magic functions into a class called Magic. The
6549 InteractiveShell class was becoming too big for Xemacs to handle
6556 InteractiveShell class was becoming too big for Xemacs to handle
6550 (de-indenting a line would lock it up for 10 seconds while it
6557 (de-indenting a line would lock it up for 10 seconds while it
6551 backtracked on the whole class!)
6558 backtracked on the whole class!)
6552
6559
6553 FIXME: didn't work. It can be done, but right now namespaces are
6560 FIXME: didn't work. It can be done, but right now namespaces are
6554 all messed up. Do it later (reverted it for now, so at least
6561 all messed up. Do it later (reverted it for now, so at least
6555 everything works as before).
6562 everything works as before).
6556
6563
6557 * Got the object introspection system (magic_oinfo) working! I
6564 * Got the object introspection system (magic_oinfo) working! I
6558 think this is pretty much ready for release to Janko, so he can
6565 think this is pretty much ready for release to Janko, so he can
6559 test it for a while and then announce it. Pretty much 100% of what
6566 test it for a while and then announce it. Pretty much 100% of what
6560 I wanted for the 'phase 1' release is ready. Happy, tired.
6567 I wanted for the 'phase 1' release is ready. Happy, tired.
6561
6568
6562 2001-11-12 Fernando Perez <fperez@colorado.edu>
6569 2001-11-12 Fernando Perez <fperez@colorado.edu>
6563
6570
6564 * Version 0.1.6 released, 0.1.7 opened for further work.
6571 * Version 0.1.6 released, 0.1.7 opened for further work.
6565
6572
6566 * Fixed bug in printing: it used to test for truth before
6573 * Fixed bug in printing: it used to test for truth before
6567 printing, so 0 wouldn't print. Now checks for None.
6574 printing, so 0 wouldn't print. Now checks for None.
6568
6575
6569 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6576 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6570 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6577 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6571 reaches by hand into the outputcache. Think of a better way to do
6578 reaches by hand into the outputcache. Think of a better way to do
6572 this later.
6579 this later.
6573
6580
6574 * Various small fixes thanks to Nathan's comments.
6581 * Various small fixes thanks to Nathan's comments.
6575
6582
6576 * Changed magic_pprint to magic_Pprint. This way it doesn't
6583 * Changed magic_pprint to magic_Pprint. This way it doesn't
6577 collide with pprint() and the name is consistent with the command
6584 collide with pprint() and the name is consistent with the command
6578 line option.
6585 line option.
6579
6586
6580 * Changed prompt counter behavior to be fully like
6587 * Changed prompt counter behavior to be fully like
6581 Mathematica's. That is, even input that doesn't return a result
6588 Mathematica's. That is, even input that doesn't return a result
6582 raises the prompt counter. The old behavior was kind of confusing
6589 raises the prompt counter. The old behavior was kind of confusing
6583 (getting the same prompt number several times if the operation
6590 (getting the same prompt number several times if the operation
6584 didn't return a result).
6591 didn't return a result).
6585
6592
6586 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6593 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6587
6594
6588 * Fixed -Classic mode (wasn't working anymore).
6595 * Fixed -Classic mode (wasn't working anymore).
6589
6596
6590 * Added colored prompts using Nathan's new code. Colors are
6597 * Added colored prompts using Nathan's new code. Colors are
6591 currently hardwired, they can be user-configurable. For
6598 currently hardwired, they can be user-configurable. For
6592 developers, they can be chosen in file ipythonlib.py, at the
6599 developers, they can be chosen in file ipythonlib.py, at the
6593 beginning of the CachedOutput class def.
6600 beginning of the CachedOutput class def.
6594
6601
6595 2001-11-11 Fernando Perez <fperez@colorado.edu>
6602 2001-11-11 Fernando Perez <fperez@colorado.edu>
6596
6603
6597 * Version 0.1.5 released, 0.1.6 opened for further work.
6604 * Version 0.1.5 released, 0.1.6 opened for further work.
6598
6605
6599 * Changed magic_env to *return* the environment as a dict (not to
6606 * Changed magic_env to *return* the environment as a dict (not to
6600 print it). This way it prints, but it can also be processed.
6607 print it). This way it prints, but it can also be processed.
6601
6608
6602 * Added Verbose exception reporting to interactive
6609 * Added Verbose exception reporting to interactive
6603 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6610 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6604 traceback. Had to make some changes to the ultraTB file. This is
6611 traceback. Had to make some changes to the ultraTB file. This is
6605 probably the last 'big' thing in my mental todo list. This ties
6612 probably the last 'big' thing in my mental todo list. This ties
6606 in with the next entry:
6613 in with the next entry:
6607
6614
6608 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6615 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6609 has to specify is Plain, Color or Verbose for all exception
6616 has to specify is Plain, Color or Verbose for all exception
6610 handling.
6617 handling.
6611
6618
6612 * Removed ShellServices option. All this can really be done via
6619 * Removed ShellServices option. All this can really be done via
6613 the magic system. It's easier to extend, cleaner and has automatic
6620 the magic system. It's easier to extend, cleaner and has automatic
6614 namespace protection and documentation.
6621 namespace protection and documentation.
6615
6622
6616 2001-11-09 Fernando Perez <fperez@colorado.edu>
6623 2001-11-09 Fernando Perez <fperez@colorado.edu>
6617
6624
6618 * Fixed bug in output cache flushing (missing parameter to
6625 * Fixed bug in output cache flushing (missing parameter to
6619 __init__). Other small bugs fixed (found using pychecker).
6626 __init__). Other small bugs fixed (found using pychecker).
6620
6627
6621 * Version 0.1.4 opened for bugfixing.
6628 * Version 0.1.4 opened for bugfixing.
6622
6629
6623 2001-11-07 Fernando Perez <fperez@colorado.edu>
6630 2001-11-07 Fernando Perez <fperez@colorado.edu>
6624
6631
6625 * Version 0.1.3 released, mainly because of the raw_input bug.
6632 * Version 0.1.3 released, mainly because of the raw_input bug.
6626
6633
6627 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6634 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6628 and when testing for whether things were callable, a call could
6635 and when testing for whether things were callable, a call could
6629 actually be made to certain functions. They would get called again
6636 actually be made to certain functions. They would get called again
6630 once 'really' executed, with a resulting double call. A disaster
6637 once 'really' executed, with a resulting double call. A disaster
6631 in many cases (list.reverse() would never work!).
6638 in many cases (list.reverse() would never work!).
6632
6639
6633 * Removed prefilter() function, moved its code to raw_input (which
6640 * Removed prefilter() function, moved its code to raw_input (which
6634 after all was just a near-empty caller for prefilter). This saves
6641 after all was just a near-empty caller for prefilter). This saves
6635 a function call on every prompt, and simplifies the class a tiny bit.
6642 a function call on every prompt, and simplifies the class a tiny bit.
6636
6643
6637 * Fix _ip to __ip name in magic example file.
6644 * Fix _ip to __ip name in magic example file.
6638
6645
6639 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6646 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6640 work with non-gnu versions of tar.
6647 work with non-gnu versions of tar.
6641
6648
6642 2001-11-06 Fernando Perez <fperez@colorado.edu>
6649 2001-11-06 Fernando Perez <fperez@colorado.edu>
6643
6650
6644 * Version 0.1.2. Just to keep track of the recent changes.
6651 * Version 0.1.2. Just to keep track of the recent changes.
6645
6652
6646 * Fixed nasty bug in output prompt routine. It used to check 'if
6653 * Fixed nasty bug in output prompt routine. It used to check 'if
6647 arg != None...'. Problem is, this fails if arg implements a
6654 arg != None...'. Problem is, this fails if arg implements a
6648 special comparison (__cmp__) which disallows comparing to
6655 special comparison (__cmp__) which disallows comparing to
6649 None. Found it when trying to use the PhysicalQuantity module from
6656 None. Found it when trying to use the PhysicalQuantity module from
6650 ScientificPython.
6657 ScientificPython.
6651
6658
6652 2001-11-05 Fernando Perez <fperez@colorado.edu>
6659 2001-11-05 Fernando Perez <fperez@colorado.edu>
6653
6660
6654 * Also added dirs. Now the pushd/popd/dirs family functions
6661 * Also added dirs. Now the pushd/popd/dirs family functions
6655 basically like the shell, with the added convenience of going home
6662 basically like the shell, with the added convenience of going home
6656 when called with no args.
6663 when called with no args.
6657
6664
6658 * pushd/popd slightly modified to mimic shell behavior more
6665 * pushd/popd slightly modified to mimic shell behavior more
6659 closely.
6666 closely.
6660
6667
6661 * Added env,pushd,popd from ShellServices as magic functions. I
6668 * Added env,pushd,popd from ShellServices as magic functions. I
6662 think the cleanest will be to port all desired functions from
6669 think the cleanest will be to port all desired functions from
6663 ShellServices as magics and remove ShellServices altogether. This
6670 ShellServices as magics and remove ShellServices altogether. This
6664 will provide a single, clean way of adding functionality
6671 will provide a single, clean way of adding functionality
6665 (shell-type or otherwise) to IP.
6672 (shell-type or otherwise) to IP.
6666
6673
6667 2001-11-04 Fernando Perez <fperez@colorado.edu>
6674 2001-11-04 Fernando Perez <fperez@colorado.edu>
6668
6675
6669 * Added .ipython/ directory to sys.path. This way users can keep
6676 * Added .ipython/ directory to sys.path. This way users can keep
6670 customizations there and access them via import.
6677 customizations there and access them via import.
6671
6678
6672 2001-11-03 Fernando Perez <fperez@colorado.edu>
6679 2001-11-03 Fernando Perez <fperez@colorado.edu>
6673
6680
6674 * Opened version 0.1.1 for new changes.
6681 * Opened version 0.1.1 for new changes.
6675
6682
6676 * Changed version number to 0.1.0: first 'public' release, sent to
6683 * Changed version number to 0.1.0: first 'public' release, sent to
6677 Nathan and Janko.
6684 Nathan and Janko.
6678
6685
6679 * Lots of small fixes and tweaks.
6686 * Lots of small fixes and tweaks.
6680
6687
6681 * Minor changes to whos format. Now strings are shown, snipped if
6688 * Minor changes to whos format. Now strings are shown, snipped if
6682 too long.
6689 too long.
6683
6690
6684 * Changed ShellServices to work on __main__ so they show up in @who
6691 * Changed ShellServices to work on __main__ so they show up in @who
6685
6692
6686 * Help also works with ? at the end of a line:
6693 * Help also works with ? at the end of a line:
6687 ?sin and sin?
6694 ?sin and sin?
6688 both produce the same effect. This is nice, as often I use the
6695 both produce the same effect. This is nice, as often I use the
6689 tab-complete to find the name of a method, but I used to then have
6696 tab-complete to find the name of a method, but I used to then have
6690 to go to the beginning of the line to put a ? if I wanted more
6697 to go to the beginning of the line to put a ? if I wanted more
6691 info. Now I can just add the ? and hit return. Convenient.
6698 info. Now I can just add the ? and hit return. Convenient.
6692
6699
6693 2001-11-02 Fernando Perez <fperez@colorado.edu>
6700 2001-11-02 Fernando Perez <fperez@colorado.edu>
6694
6701
6695 * Python version check (>=2.1) added.
6702 * Python version check (>=2.1) added.
6696
6703
6697 * Added LazyPython documentation. At this point the docs are quite
6704 * Added LazyPython documentation. At this point the docs are quite
6698 a mess. A cleanup is in order.
6705 a mess. A cleanup is in order.
6699
6706
6700 * Auto-installer created. For some bizarre reason, the zipfiles
6707 * Auto-installer created. For some bizarre reason, the zipfiles
6701 module isn't working on my system. So I made a tar version
6708 module isn't working on my system. So I made a tar version
6702 (hopefully the command line options in various systems won't kill
6709 (hopefully the command line options in various systems won't kill
6703 me).
6710 me).
6704
6711
6705 * Fixes to Struct in genutils. Now all dictionary-like methods are
6712 * Fixes to Struct in genutils. Now all dictionary-like methods are
6706 protected (reasonably).
6713 protected (reasonably).
6707
6714
6708 * Added pager function to genutils and changed ? to print usage
6715 * Added pager function to genutils and changed ? to print usage
6709 note through it (it was too long).
6716 note through it (it was too long).
6710
6717
6711 * Added the LazyPython functionality. Works great! I changed the
6718 * Added the LazyPython functionality. Works great! I changed the
6712 auto-quote escape to ';', it's on home row and next to '. But
6719 auto-quote escape to ';', it's on home row and next to '. But
6713 both auto-quote and auto-paren (still /) escapes are command-line
6720 both auto-quote and auto-paren (still /) escapes are command-line
6714 parameters.
6721 parameters.
6715
6722
6716
6723
6717 2001-11-01 Fernando Perez <fperez@colorado.edu>
6724 2001-11-01 Fernando Perez <fperez@colorado.edu>
6718
6725
6719 * Version changed to 0.0.7. Fairly large change: configuration now
6726 * Version changed to 0.0.7. Fairly large change: configuration now
6720 is all stored in a directory, by default .ipython. There, all
6727 is all stored in a directory, by default .ipython. There, all
6721 config files have normal looking names (not .names)
6728 config files have normal looking names (not .names)
6722
6729
6723 * Version 0.0.6 Released first to Lucas and Archie as a test
6730 * Version 0.0.6 Released first to Lucas and Archie as a test
6724 run. Since it's the first 'semi-public' release, change version to
6731 run. Since it's the first 'semi-public' release, change version to
6725 > 0.0.6 for any changes now.
6732 > 0.0.6 for any changes now.
6726
6733
6727 * Stuff I had put in the ipplib.py changelog:
6734 * Stuff I had put in the ipplib.py changelog:
6728
6735
6729 Changes to InteractiveShell:
6736 Changes to InteractiveShell:
6730
6737
6731 - Made the usage message a parameter.
6738 - Made the usage message a parameter.
6732
6739
6733 - Require the name of the shell variable to be given. It's a bit
6740 - Require the name of the shell variable to be given. It's a bit
6734 of a hack, but allows the name 'shell' not to be hardwired in the
6741 of a hack, but allows the name 'shell' not to be hardwired in the
6735 magic (@) handler, which is problematic b/c it requires
6742 magic (@) handler, which is problematic b/c it requires
6736 polluting the global namespace with 'shell'. This in turn is
6743 polluting the global namespace with 'shell'. This in turn is
6737 fragile: if a user redefines a variable called shell, things
6744 fragile: if a user redefines a variable called shell, things
6738 break.
6745 break.
6739
6746
6740 - magic @: all functions available through @ need to be defined
6747 - magic @: all functions available through @ need to be defined
6741 as magic_<name>, even though they can be called simply as
6748 as magic_<name>, even though they can be called simply as
6742 @<name>. This allows the special command @magic to gather
6749 @<name>. This allows the special command @magic to gather
6743 information automatically about all existing magic functions,
6750 information automatically about all existing magic functions,
6744 even if they are run-time user extensions, by parsing the shell
6751 even if they are run-time user extensions, by parsing the shell
6745 instance __dict__ looking for special magic_ names.
6752 instance __dict__ looking for special magic_ names.
6746
6753
6747 - mainloop: added *two* local namespace parameters. This allows
6754 - mainloop: added *two* local namespace parameters. This allows
6748 the class to differentiate between parameters which were there
6755 the class to differentiate between parameters which were there
6749 before and after command line initialization was processed. This
6756 before and after command line initialization was processed. This
6750 way, later @who can show things loaded at startup by the
6757 way, later @who can show things loaded at startup by the
6751 user. This trick was necessary to make session saving/reloading
6758 user. This trick was necessary to make session saving/reloading
6752 really work: ideally after saving/exiting/reloading a session,
6759 really work: ideally after saving/exiting/reloading a session,
6753 *everything* should look the same, including the output of @who. I
6760 *everything* should look the same, including the output of @who. I
6754 was only able to make this work with this double namespace
6761 was only able to make this work with this double namespace
6755 trick.
6762 trick.
6756
6763
6757 - added a header to the logfile which allows (almost) full
6764 - added a header to the logfile which allows (almost) full
6758 session restoring.
6765 session restoring.
6759
6766
6760 - prepend lines beginning with @ or !, with a and log
6767 - prepend lines beginning with @ or !, with a and log
6761 them. Why? !lines: may be useful to know what you did @lines:
6768 them. Why? !lines: may be useful to know what you did @lines:
6762 they may affect session state. So when restoring a session, at
6769 they may affect session state. So when restoring a session, at
6763 least inform the user of their presence. I couldn't quite get
6770 least inform the user of their presence. I couldn't quite get
6764 them to properly re-execute, but at least the user is warned.
6771 them to properly re-execute, but at least the user is warned.
6765
6772
6766 * Started ChangeLog.
6773 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now