##// END OF EJS Templates
run_ipy_in_profiler.py added
vivainio -
Show More
@@ -0,0 +1,16 b''
1 import cProfile as profile
2 import sys
3 #import profile
4
5 def main():
6 import IPython.ipapi
7 print "Entering ipython for profiling. Type 'Exit' for profiler report"
8 IPython.ipapi.launch_new_instance()
9
10 if len(sys.argv) == 1:
11 profile.run('main()', 'ipython_profiler_results')
12
13 import pstats
14 p = pstats.Stats(len(sys.argv) >1 and sys.argv[1] or 'ipython_profiler_results')
15 p.sort_stats('time').print_stats(30)
16
@@ -1,6138 +1,6141 b''
1 2006-12-24 Ville Vainio <vivainio@gmail.com>
1 2006-12-24 Ville Vainio <vivainio@gmail.com>
2
2
3 * ipmaker.py: more informative message when ipy_user_conf
3 * ipmaker.py: more informative message when ipy_user_conf
4 import fails (suggest running %upgrade).
4 import fails (suggest running %upgrade).
5
5
6 * tools/run_ipy_in_profiler.py: Utility to see where
7 the time during IPython startup is spent.
8
6 2006-12-20 Ville Vainio <vivainio@gmail.com>
9 2006-12-20 Ville Vainio <vivainio@gmail.com>
7
10
8 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
11 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
9
12
10 * ipapi.py: Add new ipapi method, expand_alias.
13 * ipapi.py: Add new ipapi method, expand_alias.
11
14
12 * Release.py: Bump up version to 0.7.4.svn
15 * Release.py: Bump up version to 0.7.4.svn
13
16
14 2006-12-17 Ville Vainio <vivainio@gmail.com>
17 2006-12-17 Ville Vainio <vivainio@gmail.com>
15
18
16 * Extensions/jobctrl.py: Fixed &cmd arg arg...
19 * Extensions/jobctrl.py: Fixed &cmd arg arg...
17 to work properly on posix too
20 to work properly on posix too
18
21
19 * Release.py: Update revnum (version is still just 0.7.3).
22 * Release.py: Update revnum (version is still just 0.7.3).
20
23
21 2006-12-15 Ville Vainio <vivainio@gmail.com>
24 2006-12-15 Ville Vainio <vivainio@gmail.com>
22
25
23 * scripts/ipython_win_post_install: create ipython.py in
26 * scripts/ipython_win_post_install: create ipython.py in
24 prefix + "/scripts".
27 prefix + "/scripts".
25
28
26 * Release.py: Update version to 0.7.3.
29 * Release.py: Update version to 0.7.3.
27
30
28 2006-12-14 Ville Vainio <vivainio@gmail.com>
31 2006-12-14 Ville Vainio <vivainio@gmail.com>
29
32
30 * scripts/ipython_win_post_install: Overwrite old shortcuts
33 * scripts/ipython_win_post_install: Overwrite old shortcuts
31 if they already exist
34 if they already exist
32
35
33 * Release.py: release 0.7.3rc2
36 * Release.py: release 0.7.3rc2
34
37
35 2006-12-13 Ville Vainio <vivainio@gmail.com>
38 2006-12-13 Ville Vainio <vivainio@gmail.com>
36
39
37 * Branch and update Release.py for 0.7.3rc1
40 * Branch and update Release.py for 0.7.3rc1
38
41
39 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
42 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
40
43
41 * IPython/Shell.py (IPShellWX): update for current WX naming
44 * IPython/Shell.py (IPShellWX): update for current WX naming
42 conventions, to avoid a deprecation warning with current WX
45 conventions, to avoid a deprecation warning with current WX
43 versions. Thanks to a report by Danny Shevitz.
46 versions. Thanks to a report by Danny Shevitz.
44
47
45 2006-12-12 Ville Vainio <vivainio@gmail.com>
48 2006-12-12 Ville Vainio <vivainio@gmail.com>
46
49
47 * ipmaker.py: apply david cournapeau's patch to make
50 * ipmaker.py: apply david cournapeau's patch to make
48 import_some work properly even when ipythonrc does
51 import_some work properly even when ipythonrc does
49 import_some on empty list (it was an old bug!).
52 import_some on empty list (it was an old bug!).
50
53
51 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
54 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
52 Add deprecation note to ipythonrc and a url to wiki
55 Add deprecation note to ipythonrc and a url to wiki
53 in ipy_user_conf.py
56 in ipy_user_conf.py
54
57
55
58
56 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
59 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
57 as if it was typed on IPython command prompt, i.e.
60 as if it was typed on IPython command prompt, i.e.
58 as IPython script.
61 as IPython script.
59
62
60 * example-magic.py, magic_grepl.py: remove outdated examples
63 * example-magic.py, magic_grepl.py: remove outdated examples
61
64
62 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
65 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
63
66
64 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
67 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
65 is called before any exception has occurred.
68 is called before any exception has occurred.
66
69
67 2006-12-08 Ville Vainio <vivainio@gmail.com>
70 2006-12-08 Ville Vainio <vivainio@gmail.com>
68
71
69 * Extensions/ipy_stock_completers.py.py: fix cd completer
72 * Extensions/ipy_stock_completers.py.py: fix cd completer
70 to translate /'s to \'s again.
73 to translate /'s to \'s again.
71
74
72 * completer.py: prevent traceback on file completions w/
75 * completer.py: prevent traceback on file completions w/
73 backslash.
76 backslash.
74
77
75 * Release.py: Update release number to 0.7.3b3 for release
78 * Release.py: Update release number to 0.7.3b3 for release
76
79
77 2006-12-07 Ville Vainio <vivainio@gmail.com>
80 2006-12-07 Ville Vainio <vivainio@gmail.com>
78
81
79 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
82 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
80 while executing external code. Provides more shell-like behaviour
83 while executing external code. Provides more shell-like behaviour
81 and overall better response to ctrl + C / ctrl + break.
84 and overall better response to ctrl + C / ctrl + break.
82
85
83 * tools/make_tarball.py: new script to create tarball straight from svn
86 * tools/make_tarball.py: new script to create tarball straight from svn
84 (setup.py sdist doesn't work on win32).
87 (setup.py sdist doesn't work on win32).
85
88
86 * Extensions/ipy_stock_completers.py: fix cd completer to give up
89 * Extensions/ipy_stock_completers.py: fix cd completer to give up
87 on dirnames with spaces and use the default completer instead.
90 on dirnames with spaces and use the default completer instead.
88
91
89 * Revision.py: Change version to 0.7.3b2 for release.
92 * Revision.py: Change version to 0.7.3b2 for release.
90
93
91 2006-12-05 Ville Vainio <vivainio@gmail.com>
94 2006-12-05 Ville Vainio <vivainio@gmail.com>
92
95
93 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
96 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
94 pydb patch 4 (rm debug printing, py 2.5 checking)
97 pydb patch 4 (rm debug printing, py 2.5 checking)
95
98
96 2006-11-30 Walter Doerwald <walter@livinglogic.de>
99 2006-11-30 Walter Doerwald <walter@livinglogic.de>
97 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
100 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
98 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
101 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
99 "refreshfind" (mapped to "R") does the same but tries to go back to the same
102 "refreshfind" (mapped to "R") does the same but tries to go back to the same
100 object the cursor was on before the refresh. The command "markrange" is
103 object the cursor was on before the refresh. The command "markrange" is
101 mapped to "%" now.
104 mapped to "%" now.
102 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
105 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
103
106
104 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
107 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
105
108
106 * IPython/Magic.py (magic_debug): new %debug magic to activate the
109 * IPython/Magic.py (magic_debug): new %debug magic to activate the
107 interactive debugger on the last traceback, without having to call
110 interactive debugger on the last traceback, without having to call
108 %pdb and rerun your code. Made minor changes in various modules,
111 %pdb and rerun your code. Made minor changes in various modules,
109 should automatically recognize pydb if available.
112 should automatically recognize pydb if available.
110
113
111 2006-11-28 Ville Vainio <vivainio@gmail.com>
114 2006-11-28 Ville Vainio <vivainio@gmail.com>
112
115
113 * completer.py: If the text start with !, show file completions
116 * completer.py: If the text start with !, show file completions
114 properly. This helps when trying to complete command name
117 properly. This helps when trying to complete command name
115 for shell escapes.
118 for shell escapes.
116
119
117 2006-11-27 Ville Vainio <vivainio@gmail.com>
120 2006-11-27 Ville Vainio <vivainio@gmail.com>
118
121
119 * ipy_stock_completers.py: bzr completer submitted by Stefan van
122 * ipy_stock_completers.py: bzr completer submitted by Stefan van
120 der Walt. Clean up svn and hg completers by using a common
123 der Walt. Clean up svn and hg completers by using a common
121 vcs_completer.
124 vcs_completer.
122
125
123 2006-11-26 Ville Vainio <vivainio@gmail.com>
126 2006-11-26 Ville Vainio <vivainio@gmail.com>
124
127
125 * Remove ipconfig and %config; you should use _ip.options structure
128 * Remove ipconfig and %config; you should use _ip.options structure
126 directly instead!
129 directly instead!
127
130
128 * genutils.py: add wrap_deprecated function for deprecating callables
131 * genutils.py: add wrap_deprecated function for deprecating callables
129
132
130 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
133 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
131 _ip.system instead. ipalias is redundant.
134 _ip.system instead. ipalias is redundant.
132
135
133 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
136 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
134 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
137 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
135 explicit.
138 explicit.
136
139
137 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
140 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
138 completer. Try it by entering 'hg ' and pressing tab.
141 completer. Try it by entering 'hg ' and pressing tab.
139
142
140 * macro.py: Give Macro a useful __repr__ method
143 * macro.py: Give Macro a useful __repr__ method
141
144
142 * Magic.py: %whos abbreviates the typename of Macro for brevity.
145 * Magic.py: %whos abbreviates the typename of Macro for brevity.
143
146
144 2006-11-24 Walter Doerwald <walter@livinglogic.de>
147 2006-11-24 Walter Doerwald <walter@livinglogic.de>
145 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
148 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
146 we don't get a duplicate ipipe module, where registration of the xrepr
149 we don't get a duplicate ipipe module, where registration of the xrepr
147 implementation for Text is useless.
150 implementation for Text is useless.
148
151
149 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
152 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
150
153
151 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
154 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
152
155
153 2006-11-24 Ville Vainio <vivainio@gmail.com>
156 2006-11-24 Ville Vainio <vivainio@gmail.com>
154
157
155 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
158 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
156 try to use "cProfile" instead of the slower pure python
159 try to use "cProfile" instead of the slower pure python
157 "profile"
160 "profile"
158
161
159 2006-11-23 Ville Vainio <vivainio@gmail.com>
162 2006-11-23 Ville Vainio <vivainio@gmail.com>
160
163
161 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
164 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
162 Qt+IPython+Designer link in documentation.
165 Qt+IPython+Designer link in documentation.
163
166
164 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
167 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
165 correct Pdb object to %pydb.
168 correct Pdb object to %pydb.
166
169
167
170
168 2006-11-22 Walter Doerwald <walter@livinglogic.de>
171 2006-11-22 Walter Doerwald <walter@livinglogic.de>
169 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
172 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
170 generic xrepr(), otherwise the list implementation would kick in.
173 generic xrepr(), otherwise the list implementation would kick in.
171
174
172 2006-11-21 Ville Vainio <vivainio@gmail.com>
175 2006-11-21 Ville Vainio <vivainio@gmail.com>
173
176
174 * upgrade_dir.py: Now actually overwrites a nonmodified user file
177 * upgrade_dir.py: Now actually overwrites a nonmodified user file
175 with one from UserConfig.
178 with one from UserConfig.
176
179
177 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
180 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
178 it was missing which broke the sh profile.
181 it was missing which broke the sh profile.
179
182
180 * completer.py: file completer now uses explicit '/' instead
183 * completer.py: file completer now uses explicit '/' instead
181 of os.path.join, expansion of 'foo' was broken on win32
184 of os.path.join, expansion of 'foo' was broken on win32
182 if there was one directory with name 'foobar'.
185 if there was one directory with name 'foobar'.
183
186
184 * A bunch of patches from Kirill Smelkov:
187 * A bunch of patches from Kirill Smelkov:
185
188
186 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
189 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
187
190
188 * [patch 7/9] Implement %page -r (page in raw mode) -
191 * [patch 7/9] Implement %page -r (page in raw mode) -
189
192
190 * [patch 5/9] ScientificPython webpage has moved
193 * [patch 5/9] ScientificPython webpage has moved
191
194
192 * [patch 4/9] The manual mentions %ds, should be %dhist
195 * [patch 4/9] The manual mentions %ds, should be %dhist
193
196
194 * [patch 3/9] Kill old bits from %prun doc.
197 * [patch 3/9] Kill old bits from %prun doc.
195
198
196 * [patch 1/9] Fix typos here and there.
199 * [patch 1/9] Fix typos here and there.
197
200
198 2006-11-08 Ville Vainio <vivainio@gmail.com>
201 2006-11-08 Ville Vainio <vivainio@gmail.com>
199
202
200 * completer.py (attr_matches): catch all exceptions raised
203 * completer.py (attr_matches): catch all exceptions raised
201 by eval of expr with dots.
204 by eval of expr with dots.
202
205
203 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
206 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
204
207
205 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
208 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
206 input if it starts with whitespace. This allows you to paste
209 input if it starts with whitespace. This allows you to paste
207 indented input from any editor without manually having to type in
210 indented input from any editor without manually having to type in
208 the 'if 1:', which is convenient when working interactively.
211 the 'if 1:', which is convenient when working interactively.
209 Slightly modifed version of a patch by Bo Peng
212 Slightly modifed version of a patch by Bo Peng
210 <bpeng-AT-rice.edu>.
213 <bpeng-AT-rice.edu>.
211
214
212 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
215 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
213
216
214 * IPython/irunner.py (main): modified irunner so it automatically
217 * IPython/irunner.py (main): modified irunner so it automatically
215 recognizes the right runner to use based on the extension (.py for
218 recognizes the right runner to use based on the extension (.py for
216 python, .ipy for ipython and .sage for sage).
219 python, .ipy for ipython and .sage for sage).
217
220
218 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
221 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
219 visible in ipapi as ip.config(), to programatically control the
222 visible in ipapi as ip.config(), to programatically control the
220 internal rc object. There's an accompanying %config magic for
223 internal rc object. There's an accompanying %config magic for
221 interactive use, which has been enhanced to match the
224 interactive use, which has been enhanced to match the
222 funtionality in ipconfig.
225 funtionality in ipconfig.
223
226
224 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
227 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
225 so it's not just a toggle, it now takes an argument. Add support
228 so it's not just a toggle, it now takes an argument. Add support
226 for a customizable header when making system calls, as the new
229 for a customizable header when making system calls, as the new
227 system_header variable in the ipythonrc file.
230 system_header variable in the ipythonrc file.
228
231
229 2006-11-03 Walter Doerwald <walter@livinglogic.de>
232 2006-11-03 Walter Doerwald <walter@livinglogic.de>
230
233
231 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
234 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
232 generic functions (using Philip J. Eby's simplegeneric package).
235 generic functions (using Philip J. Eby's simplegeneric package).
233 This makes it possible to customize the display of third-party classes
236 This makes it possible to customize the display of third-party classes
234 without having to monkeypatch them. xiter() no longer supports a mode
237 without having to monkeypatch them. xiter() no longer supports a mode
235 argument and the XMode class has been removed. The same functionality can
238 argument and the XMode class has been removed. The same functionality can
236 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
239 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
237 One consequence of the switch to generic functions is that xrepr() and
240 One consequence of the switch to generic functions is that xrepr() and
238 xattrs() implementation must define the default value for the mode
241 xattrs() implementation must define the default value for the mode
239 argument themselves and xattrs() implementations must return real
242 argument themselves and xattrs() implementations must return real
240 descriptors.
243 descriptors.
241
244
242 * IPython/external: This new subpackage will contain all third-party
245 * IPython/external: This new subpackage will contain all third-party
243 packages that are bundled with IPython. (The first one is simplegeneric).
246 packages that are bundled with IPython. (The first one is simplegeneric).
244
247
245 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
248 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
246 directory which as been dropped in r1703.
249 directory which as been dropped in r1703.
247
250
248 * IPython/Extensions/ipipe.py (iless): Fixed.
251 * IPython/Extensions/ipipe.py (iless): Fixed.
249
252
250 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
253 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
251
254
252 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
255 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
253
256
254 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
257 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
255 handling in variable expansion so that shells and magics recognize
258 handling in variable expansion so that shells and magics recognize
256 function local scopes correctly. Bug reported by Brian.
259 function local scopes correctly. Bug reported by Brian.
257
260
258 * scripts/ipython: remove the very first entry in sys.path which
261 * scripts/ipython: remove the very first entry in sys.path which
259 Python auto-inserts for scripts, so that sys.path under IPython is
262 Python auto-inserts for scripts, so that sys.path under IPython is
260 as similar as possible to that under plain Python.
263 as similar as possible to that under plain Python.
261
264
262 * IPython/completer.py (IPCompleter.file_matches): Fix
265 * IPython/completer.py (IPCompleter.file_matches): Fix
263 tab-completion so that quotes are not closed unless the completion
266 tab-completion so that quotes are not closed unless the completion
264 is unambiguous. After a request by Stefan. Minor cleanups in
267 is unambiguous. After a request by Stefan. Minor cleanups in
265 ipy_stock_completers.
268 ipy_stock_completers.
266
269
267 2006-11-02 Ville Vainio <vivainio@gmail.com>
270 2006-11-02 Ville Vainio <vivainio@gmail.com>
268
271
269 * ipy_stock_completers.py: Add %run and %cd completers.
272 * ipy_stock_completers.py: Add %run and %cd completers.
270
273
271 * completer.py: Try running custom completer for both
274 * completer.py: Try running custom completer for both
272 "foo" and "%foo" if the command is just "foo". Ignore case
275 "foo" and "%foo" if the command is just "foo". Ignore case
273 when filtering possible completions.
276 when filtering possible completions.
274
277
275 * UserConfig/ipy_user_conf.py: install stock completers as default
278 * UserConfig/ipy_user_conf.py: install stock completers as default
276
279
277 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
280 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
278 simplified readline history save / restore through a wrapper
281 simplified readline history save / restore through a wrapper
279 function
282 function
280
283
281
284
282 2006-10-31 Ville Vainio <vivainio@gmail.com>
285 2006-10-31 Ville Vainio <vivainio@gmail.com>
283
286
284 * strdispatch.py, completer.py, ipy_stock_completers.py:
287 * strdispatch.py, completer.py, ipy_stock_completers.py:
285 Allow str_key ("command") in completer hooks. Implement
288 Allow str_key ("command") in completer hooks. Implement
286 trivial completer for 'import' (stdlib modules only). Rename
289 trivial completer for 'import' (stdlib modules only). Rename
287 ipy_linux_package_managers.py to ipy_stock_completers.py.
290 ipy_linux_package_managers.py to ipy_stock_completers.py.
288 SVN completer.
291 SVN completer.
289
292
290 * Extensions/ledit.py: %magic line editor for easily and
293 * Extensions/ledit.py: %magic line editor for easily and
291 incrementally manipulating lists of strings. The magic command
294 incrementally manipulating lists of strings. The magic command
292 name is %led.
295 name is %led.
293
296
294 2006-10-30 Ville Vainio <vivainio@gmail.com>
297 2006-10-30 Ville Vainio <vivainio@gmail.com>
295
298
296 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
299 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
297 Bernsteins's patches for pydb integration.
300 Bernsteins's patches for pydb integration.
298 http://bashdb.sourceforge.net/pydb/
301 http://bashdb.sourceforge.net/pydb/
299
302
300 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
303 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
301 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
304 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
302 custom completer hook to allow the users to implement their own
305 custom completer hook to allow the users to implement their own
303 completers. See ipy_linux_package_managers.py for example. The
306 completers. See ipy_linux_package_managers.py for example. The
304 hook name is 'complete_command'.
307 hook name is 'complete_command'.
305
308
306 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
309 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
307
310
308 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
311 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
309 Numeric leftovers.
312 Numeric leftovers.
310
313
311 * ipython.el (py-execute-region): apply Stefan's patch to fix
314 * ipython.el (py-execute-region): apply Stefan's patch to fix
312 garbled results if the python shell hasn't been previously started.
315 garbled results if the python shell hasn't been previously started.
313
316
314 * IPython/genutils.py (arg_split): moved to genutils, since it's a
317 * IPython/genutils.py (arg_split): moved to genutils, since it's a
315 pretty generic function and useful for other things.
318 pretty generic function and useful for other things.
316
319
317 * IPython/OInspect.py (getsource): Add customizable source
320 * IPython/OInspect.py (getsource): Add customizable source
318 extractor. After a request/patch form W. Stein (SAGE).
321 extractor. After a request/patch form W. Stein (SAGE).
319
322
320 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
323 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
321 window size to a more reasonable value from what pexpect does,
324 window size to a more reasonable value from what pexpect does,
322 since their choice causes wrapping bugs with long input lines.
325 since their choice causes wrapping bugs with long input lines.
323
326
324 2006-10-28 Ville Vainio <vivainio@gmail.com>
327 2006-10-28 Ville Vainio <vivainio@gmail.com>
325
328
326 * Magic.py (%run): Save and restore the readline history from
329 * Magic.py (%run): Save and restore the readline history from
327 file around %run commands to prevent side effects from
330 file around %run commands to prevent side effects from
328 %runned programs that might use readline (e.g. pydb).
331 %runned programs that might use readline (e.g. pydb).
329
332
330 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
333 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
331 invoking the pydb enhanced debugger.
334 invoking the pydb enhanced debugger.
332
335
333 2006-10-23 Walter Doerwald <walter@livinglogic.de>
336 2006-10-23 Walter Doerwald <walter@livinglogic.de>
334
337
335 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
338 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
336 call the base class method and propagate the return value to
339 call the base class method and propagate the return value to
337 ifile. This is now done by path itself.
340 ifile. This is now done by path itself.
338
341
339 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
342 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
340
343
341 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
344 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
342 api: set_crash_handler(), to expose the ability to change the
345 api: set_crash_handler(), to expose the ability to change the
343 internal crash handler.
346 internal crash handler.
344
347
345 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
348 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
346 the various parameters of the crash handler so that apps using
349 the various parameters of the crash handler so that apps using
347 IPython as their engine can customize crash handling. Ipmlemented
350 IPython as their engine can customize crash handling. Ipmlemented
348 at the request of SAGE.
351 at the request of SAGE.
349
352
350 2006-10-14 Ville Vainio <vivainio@gmail.com>
353 2006-10-14 Ville Vainio <vivainio@gmail.com>
351
354
352 * Magic.py, ipython.el: applied first "safe" part of Rocky
355 * Magic.py, ipython.el: applied first "safe" part of Rocky
353 Bernstein's patch set for pydb integration.
356 Bernstein's patch set for pydb integration.
354
357
355 * Magic.py (%unalias, %alias): %store'd aliases can now be
358 * Magic.py (%unalias, %alias): %store'd aliases can now be
356 removed with '%unalias'. %alias w/o args now shows most
359 removed with '%unalias'. %alias w/o args now shows most
357 interesting (stored / manually defined) aliases last
360 interesting (stored / manually defined) aliases last
358 where they catch the eye w/o scrolling.
361 where they catch the eye w/o scrolling.
359
362
360 * Magic.py (%rehashx), ext_rehashdir.py: files with
363 * Magic.py (%rehashx), ext_rehashdir.py: files with
361 'py' extension are always considered executable, even
364 'py' extension are always considered executable, even
362 when not in PATHEXT environment variable.
365 when not in PATHEXT environment variable.
363
366
364 2006-10-12 Ville Vainio <vivainio@gmail.com>
367 2006-10-12 Ville Vainio <vivainio@gmail.com>
365
368
366 * jobctrl.py: Add new "jobctrl" extension for spawning background
369 * jobctrl.py: Add new "jobctrl" extension for spawning background
367 processes with "&find /". 'import jobctrl' to try it out. Requires
370 processes with "&find /". 'import jobctrl' to try it out. Requires
368 'subprocess' module, standard in python 2.4+.
371 'subprocess' module, standard in python 2.4+.
369
372
370 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
373 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
371 so if foo -> bar and bar -> baz, then foo -> baz.
374 so if foo -> bar and bar -> baz, then foo -> baz.
372
375
373 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
376 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
374
377
375 * IPython/Magic.py (Magic.parse_options): add a new posix option
378 * IPython/Magic.py (Magic.parse_options): add a new posix option
376 to allow parsing of input args in magics that doesn't strip quotes
379 to allow parsing of input args in magics that doesn't strip quotes
377 (if posix=False). This also closes %timeit bug reported by
380 (if posix=False). This also closes %timeit bug reported by
378 Stefan.
381 Stefan.
379
382
380 2006-10-03 Ville Vainio <vivainio@gmail.com>
383 2006-10-03 Ville Vainio <vivainio@gmail.com>
381
384
382 * iplib.py (raw_input, interact): Return ValueError catching for
385 * iplib.py (raw_input, interact): Return ValueError catching for
383 raw_input. Fixes infinite loop for sys.stdin.close() or
386 raw_input. Fixes infinite loop for sys.stdin.close() or
384 sys.stdout.close().
387 sys.stdout.close().
385
388
386 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
389 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
387
390
388 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
391 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
389 to help in handling doctests. irunner is now pretty useful for
392 to help in handling doctests. irunner is now pretty useful for
390 running standalone scripts and simulate a full interactive session
393 running standalone scripts and simulate a full interactive session
391 in a format that can be then pasted as a doctest.
394 in a format that can be then pasted as a doctest.
392
395
393 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
396 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
394 on top of the default (useless) ones. This also fixes the nasty
397 on top of the default (useless) ones. This also fixes the nasty
395 way in which 2.5's Quitter() exits (reverted [1785]).
398 way in which 2.5's Quitter() exits (reverted [1785]).
396
399
397 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
400 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
398 2.5.
401 2.5.
399
402
400 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
403 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
401 color scheme is updated as well when color scheme is changed
404 color scheme is updated as well when color scheme is changed
402 interactively.
405 interactively.
403
406
404 2006-09-27 Ville Vainio <vivainio@gmail.com>
407 2006-09-27 Ville Vainio <vivainio@gmail.com>
405
408
406 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
409 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
407 infinite loop and just exit. It's a hack, but will do for a while.
410 infinite loop and just exit. It's a hack, but will do for a while.
408
411
409 2006-08-25 Walter Doerwald <walter@livinglogic.de>
412 2006-08-25 Walter Doerwald <walter@livinglogic.de>
410
413
411 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
414 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
412 the constructor, this makes it possible to get a list of only directories
415 the constructor, this makes it possible to get a list of only directories
413 or only files.
416 or only files.
414
417
415 2006-08-12 Ville Vainio <vivainio@gmail.com>
418 2006-08-12 Ville Vainio <vivainio@gmail.com>
416
419
417 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
420 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
418 they broke unittest
421 they broke unittest
419
422
420 2006-08-11 Ville Vainio <vivainio@gmail.com>
423 2006-08-11 Ville Vainio <vivainio@gmail.com>
421
424
422 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
425 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
423 by resolving issue properly, i.e. by inheriting FakeModule
426 by resolving issue properly, i.e. by inheriting FakeModule
424 from types.ModuleType. Pickling ipython interactive data
427 from types.ModuleType. Pickling ipython interactive data
425 should still work as usual (testing appreciated).
428 should still work as usual (testing appreciated).
426
429
427 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
430 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
428
431
429 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
432 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
430 running under python 2.3 with code from 2.4 to fix a bug with
433 running under python 2.3 with code from 2.4 to fix a bug with
431 help(). Reported by the Debian maintainers, Norbert Tretkowski
434 help(). Reported by the Debian maintainers, Norbert Tretkowski
432 <norbert-AT-tretkowski.de> and Alexandre Fayolle
435 <norbert-AT-tretkowski.de> and Alexandre Fayolle
433 <afayolle-AT-debian.org>.
436 <afayolle-AT-debian.org>.
434
437
435 2006-08-04 Walter Doerwald <walter@livinglogic.de>
438 2006-08-04 Walter Doerwald <walter@livinglogic.de>
436
439
437 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
440 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
438 (which was displaying "quit" twice).
441 (which was displaying "quit" twice).
439
442
440 2006-07-28 Walter Doerwald <walter@livinglogic.de>
443 2006-07-28 Walter Doerwald <walter@livinglogic.de>
441
444
442 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
445 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
443 the mode argument).
446 the mode argument).
444
447
445 2006-07-27 Walter Doerwald <walter@livinglogic.de>
448 2006-07-27 Walter Doerwald <walter@livinglogic.de>
446
449
447 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
450 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
448 not running under IPython.
451 not running under IPython.
449
452
450 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
453 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
451 and make it iterable (iterating over the attribute itself). Add two new
454 and make it iterable (iterating over the attribute itself). Add two new
452 magic strings for __xattrs__(): If the string starts with "-", the attribute
455 magic strings for __xattrs__(): If the string starts with "-", the attribute
453 will not be displayed in ibrowse's detail view (but it can still be
456 will not be displayed in ibrowse's detail view (but it can still be
454 iterated over). This makes it possible to add attributes that are large
457 iterated over). This makes it possible to add attributes that are large
455 lists or generator methods to the detail view. Replace magic attribute names
458 lists or generator methods to the detail view. Replace magic attribute names
456 and _attrname() and _getattr() with "descriptors": For each type of magic
459 and _attrname() and _getattr() with "descriptors": For each type of magic
457 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
460 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
458 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
461 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
459 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
462 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
460 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
463 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
461 are still supported.
464 are still supported.
462
465
463 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
466 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
464 fails in ibrowse.fetch(), the exception object is added as the last item
467 fails in ibrowse.fetch(), the exception object is added as the last item
465 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
468 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
466 a generator throws an exception midway through execution.
469 a generator throws an exception midway through execution.
467
470
468 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
471 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
469 encoding into methods.
472 encoding into methods.
470
473
471 2006-07-26 Ville Vainio <vivainio@gmail.com>
474 2006-07-26 Ville Vainio <vivainio@gmail.com>
472
475
473 * iplib.py: history now stores multiline input as single
476 * iplib.py: history now stores multiline input as single
474 history entries. Patch by Jorgen Cederlof.
477 history entries. Patch by Jorgen Cederlof.
475
478
476 2006-07-18 Walter Doerwald <walter@livinglogic.de>
479 2006-07-18 Walter Doerwald <walter@livinglogic.de>
477
480
478 * IPython/Extensions/ibrowse.py: Make cursor visible over
481 * IPython/Extensions/ibrowse.py: Make cursor visible over
479 non existing attributes.
482 non existing attributes.
480
483
481 2006-07-14 Walter Doerwald <walter@livinglogic.de>
484 2006-07-14 Walter Doerwald <walter@livinglogic.de>
482
485
483 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
486 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
484 error output of the running command doesn't mess up the screen.
487 error output of the running command doesn't mess up the screen.
485
488
486 2006-07-13 Walter Doerwald <walter@livinglogic.de>
489 2006-07-13 Walter Doerwald <walter@livinglogic.de>
487
490
488 * IPython/Extensions/ipipe.py (isort): Make isort usable without
491 * IPython/Extensions/ipipe.py (isort): Make isort usable without
489 argument. This sorts the items themselves.
492 argument. This sorts the items themselves.
490
493
491 2006-07-12 Walter Doerwald <walter@livinglogic.de>
494 2006-07-12 Walter Doerwald <walter@livinglogic.de>
492
495
493 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
496 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
494 Compile expression strings into code objects. This should speed
497 Compile expression strings into code objects. This should speed
495 up ifilter and friends somewhat.
498 up ifilter and friends somewhat.
496
499
497 2006-07-08 Ville Vainio <vivainio@gmail.com>
500 2006-07-08 Ville Vainio <vivainio@gmail.com>
498
501
499 * Magic.py: %cpaste now strips > from the beginning of lines
502 * Magic.py: %cpaste now strips > from the beginning of lines
500 to ease pasting quoted code from emails. Contributed by
503 to ease pasting quoted code from emails. Contributed by
501 Stefan van der Walt.
504 Stefan van der Walt.
502
505
503 2006-06-29 Ville Vainio <vivainio@gmail.com>
506 2006-06-29 Ville Vainio <vivainio@gmail.com>
504
507
505 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
508 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
506 mode, patch contributed by Darren Dale. NEEDS TESTING!
509 mode, patch contributed by Darren Dale. NEEDS TESTING!
507
510
508 2006-06-28 Walter Doerwald <walter@livinglogic.de>
511 2006-06-28 Walter Doerwald <walter@livinglogic.de>
509
512
510 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
513 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
511 a blue background. Fix fetching new display rows when the browser
514 a blue background. Fix fetching new display rows when the browser
512 scrolls more than a screenful (e.g. by using the goto command).
515 scrolls more than a screenful (e.g. by using the goto command).
513
516
514 2006-06-27 Ville Vainio <vivainio@gmail.com>
517 2006-06-27 Ville Vainio <vivainio@gmail.com>
515
518
516 * Magic.py (_inspect, _ofind) Apply David Huard's
519 * Magic.py (_inspect, _ofind) Apply David Huard's
517 patch for displaying the correct docstring for 'property'
520 patch for displaying the correct docstring for 'property'
518 attributes.
521 attributes.
519
522
520 2006-06-23 Walter Doerwald <walter@livinglogic.de>
523 2006-06-23 Walter Doerwald <walter@livinglogic.de>
521
524
522 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
525 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
523 commands into the methods implementing them.
526 commands into the methods implementing them.
524
527
525 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
528 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
526
529
527 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
530 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
528 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
531 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
529 autoindent support was authored by Jin Liu.
532 autoindent support was authored by Jin Liu.
530
533
531 2006-06-22 Walter Doerwald <walter@livinglogic.de>
534 2006-06-22 Walter Doerwald <walter@livinglogic.de>
532
535
533 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
536 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
534 for keymaps with a custom class that simplifies handling.
537 for keymaps with a custom class that simplifies handling.
535
538
536 2006-06-19 Walter Doerwald <walter@livinglogic.de>
539 2006-06-19 Walter Doerwald <walter@livinglogic.de>
537
540
538 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
541 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
539 resizing. This requires Python 2.5 to work.
542 resizing. This requires Python 2.5 to work.
540
543
541 2006-06-16 Walter Doerwald <walter@livinglogic.de>
544 2006-06-16 Walter Doerwald <walter@livinglogic.de>
542
545
543 * IPython/Extensions/ibrowse.py: Add two new commands to
546 * IPython/Extensions/ibrowse.py: Add two new commands to
544 ibrowse: "hideattr" (mapped to "h") hides the attribute under
547 ibrowse: "hideattr" (mapped to "h") hides the attribute under
545 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
548 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
546 attributes again. Remapped the help command to "?". Display
549 attributes again. Remapped the help command to "?". Display
547 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
550 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
548 as keys for the "home" and "end" commands. Add three new commands
551 as keys for the "home" and "end" commands. Add three new commands
549 to the input mode for "find" and friends: "delend" (CTRL-K)
552 to the input mode for "find" and friends: "delend" (CTRL-K)
550 deletes to the end of line. "incsearchup" searches upwards in the
553 deletes to the end of line. "incsearchup" searches upwards in the
551 command history for an input that starts with the text before the cursor.
554 command history for an input that starts with the text before the cursor.
552 "incsearchdown" does the same downwards. Removed a bogus mapping of
555 "incsearchdown" does the same downwards. Removed a bogus mapping of
553 the x key to "delete".
556 the x key to "delete".
554
557
555 2006-06-15 Ville Vainio <vivainio@gmail.com>
558 2006-06-15 Ville Vainio <vivainio@gmail.com>
556
559
557 * iplib.py, hooks.py: Added new generate_prompt hook that can be
560 * iplib.py, hooks.py: Added new generate_prompt hook that can be
558 used to create prompts dynamically, instead of the "old" way of
561 used to create prompts dynamically, instead of the "old" way of
559 assigning "magic" strings to prompt_in1 and prompt_in2. The old
562 assigning "magic" strings to prompt_in1 and prompt_in2. The old
560 way still works (it's invoked by the default hook), of course.
563 way still works (it's invoked by the default hook), of course.
561
564
562 * Prompts.py: added generate_output_prompt hook for altering output
565 * Prompts.py: added generate_output_prompt hook for altering output
563 prompt
566 prompt
564
567
565 * Release.py: Changed version string to 0.7.3.svn.
568 * Release.py: Changed version string to 0.7.3.svn.
566
569
567 2006-06-15 Walter Doerwald <walter@livinglogic.de>
570 2006-06-15 Walter Doerwald <walter@livinglogic.de>
568
571
569 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
572 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
570 the call to fetch() always tries to fetch enough data for at least one
573 the call to fetch() always tries to fetch enough data for at least one
571 full screen. This makes it possible to simply call moveto(0,0,True) in
574 full screen. This makes it possible to simply call moveto(0,0,True) in
572 the constructor. Fix typos and removed the obsolete goto attribute.
575 the constructor. Fix typos and removed the obsolete goto attribute.
573
576
574 2006-06-12 Ville Vainio <vivainio@gmail.com>
577 2006-06-12 Ville Vainio <vivainio@gmail.com>
575
578
576 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
579 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
577 allowing $variable interpolation within multiline statements,
580 allowing $variable interpolation within multiline statements,
578 though so far only with "sh" profile for a testing period.
581 though so far only with "sh" profile for a testing period.
579 The patch also enables splitting long commands with \ but it
582 The patch also enables splitting long commands with \ but it
580 doesn't work properly yet.
583 doesn't work properly yet.
581
584
582 2006-06-12 Walter Doerwald <walter@livinglogic.de>
585 2006-06-12 Walter Doerwald <walter@livinglogic.de>
583
586
584 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
587 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
585 input history and the position of the cursor in the input history for
588 input history and the position of the cursor in the input history for
586 the find, findbackwards and goto command.
589 the find, findbackwards and goto command.
587
590
588 2006-06-10 Walter Doerwald <walter@livinglogic.de>
591 2006-06-10 Walter Doerwald <walter@livinglogic.de>
589
592
590 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
593 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
591 implements the basic functionality of browser commands that require
594 implements the basic functionality of browser commands that require
592 input. Reimplement the goto, find and findbackwards commands as
595 input. Reimplement the goto, find and findbackwards commands as
593 subclasses of _CommandInput. Add an input history and keymaps to those
596 subclasses of _CommandInput. Add an input history and keymaps to those
594 commands. Add "\r" as a keyboard shortcut for the enterdefault and
597 commands. Add "\r" as a keyboard shortcut for the enterdefault and
595 execute commands.
598 execute commands.
596
599
597 2006-06-07 Ville Vainio <vivainio@gmail.com>
600 2006-06-07 Ville Vainio <vivainio@gmail.com>
598
601
599 * iplib.py: ipython mybatch.ipy exits ipython immediately after
602 * iplib.py: ipython mybatch.ipy exits ipython immediately after
600 running the batch files instead of leaving the session open.
603 running the batch files instead of leaving the session open.
601
604
602 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
605 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
603
606
604 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
607 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
605 the original fix was incomplete. Patch submitted by W. Maier.
608 the original fix was incomplete. Patch submitted by W. Maier.
606
609
607 2006-06-07 Ville Vainio <vivainio@gmail.com>
610 2006-06-07 Ville Vainio <vivainio@gmail.com>
608
611
609 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
612 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
610 Confirmation prompts can be supressed by 'quiet' option.
613 Confirmation prompts can be supressed by 'quiet' option.
611 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
614 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
612
615
613 2006-06-06 *** Released version 0.7.2
616 2006-06-06 *** Released version 0.7.2
614
617
615 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
618 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
616
619
617 * IPython/Release.py (version): Made 0.7.2 final for release.
620 * IPython/Release.py (version): Made 0.7.2 final for release.
618 Repo tagged and release cut.
621 Repo tagged and release cut.
619
622
620 2006-06-05 Ville Vainio <vivainio@gmail.com>
623 2006-06-05 Ville Vainio <vivainio@gmail.com>
621
624
622 * Magic.py (magic_rehashx): Honor no_alias list earlier in
625 * Magic.py (magic_rehashx): Honor no_alias list earlier in
623 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
626 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
624
627
625 * upgrade_dir.py: try import 'path' module a bit harder
628 * upgrade_dir.py: try import 'path' module a bit harder
626 (for %upgrade)
629 (for %upgrade)
627
630
628 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
631 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
629
632
630 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
633 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
631 instead of looping 20 times.
634 instead of looping 20 times.
632
635
633 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
636 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
634 correctly at initialization time. Bug reported by Krishna Mohan
637 correctly at initialization time. Bug reported by Krishna Mohan
635 Gundu <gkmohan-AT-gmail.com> on the user list.
638 Gundu <gkmohan-AT-gmail.com> on the user list.
636
639
637 * IPython/Release.py (version): Mark 0.7.2 version to start
640 * IPython/Release.py (version): Mark 0.7.2 version to start
638 testing for release on 06/06.
641 testing for release on 06/06.
639
642
640 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
643 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
641
644
642 * scripts/irunner: thin script interface so users don't have to
645 * scripts/irunner: thin script interface so users don't have to
643 find the module and call it as an executable, since modules rarely
646 find the module and call it as an executable, since modules rarely
644 live in people's PATH.
647 live in people's PATH.
645
648
646 * IPython/irunner.py (InteractiveRunner.__init__): added
649 * IPython/irunner.py (InteractiveRunner.__init__): added
647 delaybeforesend attribute to control delays with newer versions of
650 delaybeforesend attribute to control delays with newer versions of
648 pexpect. Thanks to detailed help from pexpect's author, Noah
651 pexpect. Thanks to detailed help from pexpect's author, Noah
649 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
652 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
650 correctly (it works in NoColor mode).
653 correctly (it works in NoColor mode).
651
654
652 * IPython/iplib.py (handle_normal): fix nasty crash reported on
655 * IPython/iplib.py (handle_normal): fix nasty crash reported on
653 SAGE list, from improper log() calls.
656 SAGE list, from improper log() calls.
654
657
655 2006-05-31 Ville Vainio <vivainio@gmail.com>
658 2006-05-31 Ville Vainio <vivainio@gmail.com>
656
659
657 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
660 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
658 with args in parens to work correctly with dirs that have spaces.
661 with args in parens to work correctly with dirs that have spaces.
659
662
660 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
663 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
661
664
662 * IPython/Logger.py (Logger.logstart): add option to log raw input
665 * IPython/Logger.py (Logger.logstart): add option to log raw input
663 instead of the processed one. A -r flag was added to the
666 instead of the processed one. A -r flag was added to the
664 %logstart magic used for controlling logging.
667 %logstart magic used for controlling logging.
665
668
666 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
669 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
667
670
668 * IPython/iplib.py (InteractiveShell.__init__): add check for the
671 * IPython/iplib.py (InteractiveShell.__init__): add check for the
669 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
672 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
670 recognize the option. After a bug report by Will Maier. This
673 recognize the option. After a bug report by Will Maier. This
671 closes #64 (will do it after confirmation from W. Maier).
674 closes #64 (will do it after confirmation from W. Maier).
672
675
673 * IPython/irunner.py: New module to run scripts as if manually
676 * IPython/irunner.py: New module to run scripts as if manually
674 typed into an interactive environment, based on pexpect. After a
677 typed into an interactive environment, based on pexpect. After a
675 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
678 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
676 ipython-user list. Simple unittests in the tests/ directory.
679 ipython-user list. Simple unittests in the tests/ directory.
677
680
678 * tools/release: add Will Maier, OpenBSD port maintainer, to
681 * tools/release: add Will Maier, OpenBSD port maintainer, to
679 recepients list. We are now officially part of the OpenBSD ports:
682 recepients list. We are now officially part of the OpenBSD ports:
680 http://www.openbsd.org/ports.html ! Many thanks to Will for the
683 http://www.openbsd.org/ports.html ! Many thanks to Will for the
681 work.
684 work.
682
685
683 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
686 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
684
687
685 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
688 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
686 so that it doesn't break tkinter apps.
689 so that it doesn't break tkinter apps.
687
690
688 * IPython/iplib.py (_prefilter): fix bug where aliases would
691 * IPython/iplib.py (_prefilter): fix bug where aliases would
689 shadow variables when autocall was fully off. Reported by SAGE
692 shadow variables when autocall was fully off. Reported by SAGE
690 author William Stein.
693 author William Stein.
691
694
692 * IPython/OInspect.py (Inspector.__init__): add a flag to control
695 * IPython/OInspect.py (Inspector.__init__): add a flag to control
693 at what detail level strings are computed when foo? is requested.
696 at what detail level strings are computed when foo? is requested.
694 This allows users to ask for example that the string form of an
697 This allows users to ask for example that the string form of an
695 object is only computed when foo?? is called, or even never, by
698 object is only computed when foo?? is called, or even never, by
696 setting the object_info_string_level >= 2 in the configuration
699 setting the object_info_string_level >= 2 in the configuration
697 file. This new option has been added and documented. After a
700 file. This new option has been added and documented. After a
698 request by SAGE to be able to control the printing of very large
701 request by SAGE to be able to control the printing of very large
699 objects more easily.
702 objects more easily.
700
703
701 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
704 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
702
705
703 * IPython/ipmaker.py (make_IPython): remove the ipython call path
706 * IPython/ipmaker.py (make_IPython): remove the ipython call path
704 from sys.argv, to be 100% consistent with how Python itself works
707 from sys.argv, to be 100% consistent with how Python itself works
705 (as seen for example with python -i file.py). After a bug report
708 (as seen for example with python -i file.py). After a bug report
706 by Jeffrey Collins.
709 by Jeffrey Collins.
707
710
708 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
711 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
709 nasty bug which was preventing custom namespaces with -pylab,
712 nasty bug which was preventing custom namespaces with -pylab,
710 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
713 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
711 compatibility (long gone from mpl).
714 compatibility (long gone from mpl).
712
715
713 * IPython/ipapi.py (make_session): name change: create->make. We
716 * IPython/ipapi.py (make_session): name change: create->make. We
714 use make in other places (ipmaker,...), it's shorter and easier to
717 use make in other places (ipmaker,...), it's shorter and easier to
715 type and say, etc. I'm trying to clean things before 0.7.2 so
718 type and say, etc. I'm trying to clean things before 0.7.2 so
716 that I can keep things stable wrt to ipapi in the chainsaw branch.
719 that I can keep things stable wrt to ipapi in the chainsaw branch.
717
720
718 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
721 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
719 python-mode recognizes our debugger mode. Add support for
722 python-mode recognizes our debugger mode. Add support for
720 autoindent inside (X)emacs. After a patch sent in by Jin Liu
723 autoindent inside (X)emacs. After a patch sent in by Jin Liu
721 <m.liu.jin-AT-gmail.com> originally written by
724 <m.liu.jin-AT-gmail.com> originally written by
722 doxgen-AT-newsmth.net (with minor modifications for xemacs
725 doxgen-AT-newsmth.net (with minor modifications for xemacs
723 compatibility)
726 compatibility)
724
727
725 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
728 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
726 tracebacks when walking the stack so that the stack tracking system
729 tracebacks when walking the stack so that the stack tracking system
727 in emacs' python-mode can identify the frames correctly.
730 in emacs' python-mode can identify the frames correctly.
728
731
729 * IPython/ipmaker.py (make_IPython): make the internal (and
732 * IPython/ipmaker.py (make_IPython): make the internal (and
730 default config) autoedit_syntax value false by default. Too many
733 default config) autoedit_syntax value false by default. Too many
731 users have complained to me (both on and off-list) about problems
734 users have complained to me (both on and off-list) about problems
732 with this option being on by default, so I'm making it default to
735 with this option being on by default, so I'm making it default to
733 off. It can still be enabled by anyone via the usual mechanisms.
736 off. It can still be enabled by anyone via the usual mechanisms.
734
737
735 * IPython/completer.py (Completer.attr_matches): add support for
738 * IPython/completer.py (Completer.attr_matches): add support for
736 PyCrust-style _getAttributeNames magic method. Patch contributed
739 PyCrust-style _getAttributeNames magic method. Patch contributed
737 by <mscott-AT-goldenspud.com>. Closes #50.
740 by <mscott-AT-goldenspud.com>. Closes #50.
738
741
739 * IPython/iplib.py (InteractiveShell.__init__): remove the
742 * IPython/iplib.py (InteractiveShell.__init__): remove the
740 deletion of exit/quit from __builtin__, which can break
743 deletion of exit/quit from __builtin__, which can break
741 third-party tools like the Zope debugging console. The
744 third-party tools like the Zope debugging console. The
742 %exit/%quit magics remain. In general, it's probably a good idea
745 %exit/%quit magics remain. In general, it's probably a good idea
743 not to delete anything from __builtin__, since we never know what
746 not to delete anything from __builtin__, since we never know what
744 that will break. In any case, python now (for 2.5) will support
747 that will break. In any case, python now (for 2.5) will support
745 'real' exit/quit, so this issue is moot. Closes #55.
748 'real' exit/quit, so this issue is moot. Closes #55.
746
749
747 * IPython/genutils.py (with_obj): rename the 'with' function to
750 * IPython/genutils.py (with_obj): rename the 'with' function to
748 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
751 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
749 becomes a language keyword. Closes #53.
752 becomes a language keyword. Closes #53.
750
753
751 * IPython/FakeModule.py (FakeModule.__init__): add a proper
754 * IPython/FakeModule.py (FakeModule.__init__): add a proper
752 __file__ attribute to this so it fools more things into thinking
755 __file__ attribute to this so it fools more things into thinking
753 it is a real module. Closes #59.
756 it is a real module. Closes #59.
754
757
755 * IPython/Magic.py (magic_edit): add -n option to open the editor
758 * IPython/Magic.py (magic_edit): add -n option to open the editor
756 at a specific line number. After a patch by Stefan van der Walt.
759 at a specific line number. After a patch by Stefan van der Walt.
757
760
758 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
761 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
759
762
760 * IPython/iplib.py (edit_syntax_error): fix crash when for some
763 * IPython/iplib.py (edit_syntax_error): fix crash when for some
761 reason the file could not be opened. After automatic crash
764 reason the file could not be opened. After automatic crash
762 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
765 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
763 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
766 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
764 (_should_recompile): Don't fire editor if using %bg, since there
767 (_should_recompile): Don't fire editor if using %bg, since there
765 is no file in the first place. From the same report as above.
768 is no file in the first place. From the same report as above.
766 (raw_input): protect against faulty third-party prefilters. After
769 (raw_input): protect against faulty third-party prefilters. After
767 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
770 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
768 while running under SAGE.
771 while running under SAGE.
769
772
770 2006-05-23 Ville Vainio <vivainio@gmail.com>
773 2006-05-23 Ville Vainio <vivainio@gmail.com>
771
774
772 * ipapi.py: Stripped down ip.to_user_ns() to work only as
775 * ipapi.py: Stripped down ip.to_user_ns() to work only as
773 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
776 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
774 now returns None (again), unless dummy is specifically allowed by
777 now returns None (again), unless dummy is specifically allowed by
775 ipapi.get(allow_dummy=True).
778 ipapi.get(allow_dummy=True).
776
779
777 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
780 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
778
781
779 * IPython: remove all 2.2-compatibility objects and hacks from
782 * IPython: remove all 2.2-compatibility objects and hacks from
780 everywhere, since we only support 2.3 at this point. Docs
783 everywhere, since we only support 2.3 at this point. Docs
781 updated.
784 updated.
782
785
783 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
786 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
784 Anything requiring extra validation can be turned into a Python
787 Anything requiring extra validation can be turned into a Python
785 property in the future. I used a property for the db one b/c
788 property in the future. I used a property for the db one b/c
786 there was a nasty circularity problem with the initialization
789 there was a nasty circularity problem with the initialization
787 order, which right now I don't have time to clean up.
790 order, which right now I don't have time to clean up.
788
791
789 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
792 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
790 another locking bug reported by Jorgen. I'm not 100% sure though,
793 another locking bug reported by Jorgen. I'm not 100% sure though,
791 so more testing is needed...
794 so more testing is needed...
792
795
793 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
796 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
794
797
795 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
798 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
796 local variables from any routine in user code (typically executed
799 local variables from any routine in user code (typically executed
797 with %run) directly into the interactive namespace. Very useful
800 with %run) directly into the interactive namespace. Very useful
798 when doing complex debugging.
801 when doing complex debugging.
799 (IPythonNotRunning): Changed the default None object to a dummy
802 (IPythonNotRunning): Changed the default None object to a dummy
800 whose attributes can be queried as well as called without
803 whose attributes can be queried as well as called without
801 exploding, to ease writing code which works transparently both in
804 exploding, to ease writing code which works transparently both in
802 and out of ipython and uses some of this API.
805 and out of ipython and uses some of this API.
803
806
804 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
807 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
805
808
806 * IPython/hooks.py (result_display): Fix the fact that our display
809 * IPython/hooks.py (result_display): Fix the fact that our display
807 hook was using str() instead of repr(), as the default python
810 hook was using str() instead of repr(), as the default python
808 console does. This had gone unnoticed b/c it only happened if
811 console does. This had gone unnoticed b/c it only happened if
809 %Pprint was off, but the inconsistency was there.
812 %Pprint was off, but the inconsistency was there.
810
813
811 2006-05-15 Ville Vainio <vivainio@gmail.com>
814 2006-05-15 Ville Vainio <vivainio@gmail.com>
812
815
813 * Oinspect.py: Only show docstring for nonexisting/binary files
816 * Oinspect.py: Only show docstring for nonexisting/binary files
814 when doing object??, closing ticket #62
817 when doing object??, closing ticket #62
815
818
816 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
819 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
817
820
818 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
821 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
819 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
822 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
820 was being released in a routine which hadn't checked if it had
823 was being released in a routine which hadn't checked if it had
821 been the one to acquire it.
824 been the one to acquire it.
822
825
823 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
826 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
824
827
825 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
828 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
826
829
827 2006-04-11 Ville Vainio <vivainio@gmail.com>
830 2006-04-11 Ville Vainio <vivainio@gmail.com>
828
831
829 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
832 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
830 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
833 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
831 prefilters, allowing stuff like magics and aliases in the file.
834 prefilters, allowing stuff like magics and aliases in the file.
832
835
833 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
836 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
834 added. Supported now are "%clear in" and "%clear out" (clear input and
837 added. Supported now are "%clear in" and "%clear out" (clear input and
835 output history, respectively). Also fixed CachedOutput.flush to
838 output history, respectively). Also fixed CachedOutput.flush to
836 properly flush the output cache.
839 properly flush the output cache.
837
840
838 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
841 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
839 half-success (and fail explicitly).
842 half-success (and fail explicitly).
840
843
841 2006-03-28 Ville Vainio <vivainio@gmail.com>
844 2006-03-28 Ville Vainio <vivainio@gmail.com>
842
845
843 * iplib.py: Fix quoting of aliases so that only argless ones
846 * iplib.py: Fix quoting of aliases so that only argless ones
844 are quoted
847 are quoted
845
848
846 2006-03-28 Ville Vainio <vivainio@gmail.com>
849 2006-03-28 Ville Vainio <vivainio@gmail.com>
847
850
848 * iplib.py: Quote aliases with spaces in the name.
851 * iplib.py: Quote aliases with spaces in the name.
849 "c:\program files\blah\bin" is now legal alias target.
852 "c:\program files\blah\bin" is now legal alias target.
850
853
851 * ext_rehashdir.py: Space no longer allowed as arg
854 * ext_rehashdir.py: Space no longer allowed as arg
852 separator, since space is legal in path names.
855 separator, since space is legal in path names.
853
856
854 2006-03-16 Ville Vainio <vivainio@gmail.com>
857 2006-03-16 Ville Vainio <vivainio@gmail.com>
855
858
856 * upgrade_dir.py: Take path.py from Extensions, correcting
859 * upgrade_dir.py: Take path.py from Extensions, correcting
857 %upgrade magic
860 %upgrade magic
858
861
859 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
862 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
860
863
861 * hooks.py: Only enclose editor binary in quotes if legal and
864 * hooks.py: Only enclose editor binary in quotes if legal and
862 necessary (space in the name, and is an existing file). Fixes a bug
865 necessary (space in the name, and is an existing file). Fixes a bug
863 reported by Zachary Pincus.
866 reported by Zachary Pincus.
864
867
865 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
868 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
866
869
867 * Manual: thanks to a tip on proper color handling for Emacs, by
870 * Manual: thanks to a tip on proper color handling for Emacs, by
868 Eric J Haywiser <ejh1-AT-MIT.EDU>.
871 Eric J Haywiser <ejh1-AT-MIT.EDU>.
869
872
870 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
873 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
871 by applying the provided patch. Thanks to Liu Jin
874 by applying the provided patch. Thanks to Liu Jin
872 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
875 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
873 XEmacs/Linux, I'm trusting the submitter that it actually helps
876 XEmacs/Linux, I'm trusting the submitter that it actually helps
874 under win32/GNU Emacs. Will revisit if any problems are reported.
877 under win32/GNU Emacs. Will revisit if any problems are reported.
875
878
876 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
879 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
877
880
878 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
881 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
879 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
882 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
880
883
881 2006-03-12 Ville Vainio <vivainio@gmail.com>
884 2006-03-12 Ville Vainio <vivainio@gmail.com>
882
885
883 * Magic.py (magic_timeit): Added %timeit magic, contributed by
886 * Magic.py (magic_timeit): Added %timeit magic, contributed by
884 Torsten Marek.
887 Torsten Marek.
885
888
886 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
889 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
887
890
888 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
891 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
889 line ranges works again.
892 line ranges works again.
890
893
891 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
894 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
892
895
893 * IPython/iplib.py (showtraceback): add back sys.last_traceback
896 * IPython/iplib.py (showtraceback): add back sys.last_traceback
894 and friends, after a discussion with Zach Pincus on ipython-user.
897 and friends, after a discussion with Zach Pincus on ipython-user.
895 I'm not 100% sure, but after thinking about it quite a bit, it may
898 I'm not 100% sure, but after thinking about it quite a bit, it may
896 be OK. Testing with the multithreaded shells didn't reveal any
899 be OK. Testing with the multithreaded shells didn't reveal any
897 problems, but let's keep an eye out.
900 problems, but let's keep an eye out.
898
901
899 In the process, I fixed a few things which were calling
902 In the process, I fixed a few things which were calling
900 self.InteractiveTB() directly (like safe_execfile), which is a
903 self.InteractiveTB() directly (like safe_execfile), which is a
901 mistake: ALL exception reporting should be done by calling
904 mistake: ALL exception reporting should be done by calling
902 self.showtraceback(), which handles state and tab-completion and
905 self.showtraceback(), which handles state and tab-completion and
903 more.
906 more.
904
907
905 2006-03-01 Ville Vainio <vivainio@gmail.com>
908 2006-03-01 Ville Vainio <vivainio@gmail.com>
906
909
907 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
910 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
908 To use, do "from ipipe import *".
911 To use, do "from ipipe import *".
909
912
910 2006-02-24 Ville Vainio <vivainio@gmail.com>
913 2006-02-24 Ville Vainio <vivainio@gmail.com>
911
914
912 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
915 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
913 "cleanly" and safely than the older upgrade mechanism.
916 "cleanly" and safely than the older upgrade mechanism.
914
917
915 2006-02-21 Ville Vainio <vivainio@gmail.com>
918 2006-02-21 Ville Vainio <vivainio@gmail.com>
916
919
917 * Magic.py: %save works again.
920 * Magic.py: %save works again.
918
921
919 2006-02-15 Ville Vainio <vivainio@gmail.com>
922 2006-02-15 Ville Vainio <vivainio@gmail.com>
920
923
921 * Magic.py: %Pprint works again
924 * Magic.py: %Pprint works again
922
925
923 * Extensions/ipy_sane_defaults.py: Provide everything provided
926 * Extensions/ipy_sane_defaults.py: Provide everything provided
924 in default ipythonrc, to make it possible to have a completely empty
927 in default ipythonrc, to make it possible to have a completely empty
925 ipythonrc (and thus completely rc-file free configuration)
928 ipythonrc (and thus completely rc-file free configuration)
926
929
927 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
930 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
928
931
929 * IPython/hooks.py (editor): quote the call to the editor command,
932 * IPython/hooks.py (editor): quote the call to the editor command,
930 to allow commands with spaces in them. Problem noted by watching
933 to allow commands with spaces in them. Problem noted by watching
931 Ian Oswald's video about textpad under win32 at
934 Ian Oswald's video about textpad under win32 at
932 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
935 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
933
936
934 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
937 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
935 describing magics (we haven't used @ for a loong time).
938 describing magics (we haven't used @ for a loong time).
936
939
937 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
940 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
938 contributed by marienz to close
941 contributed by marienz to close
939 http://www.scipy.net/roundup/ipython/issue53.
942 http://www.scipy.net/roundup/ipython/issue53.
940
943
941 2006-02-10 Ville Vainio <vivainio@gmail.com>
944 2006-02-10 Ville Vainio <vivainio@gmail.com>
942
945
943 * genutils.py: getoutput now works in win32 too
946 * genutils.py: getoutput now works in win32 too
944
947
945 * completer.py: alias and magic completion only invoked
948 * completer.py: alias and magic completion only invoked
946 at the first "item" in the line, to avoid "cd %store"
949 at the first "item" in the line, to avoid "cd %store"
947 nonsense.
950 nonsense.
948
951
949 2006-02-09 Ville Vainio <vivainio@gmail.com>
952 2006-02-09 Ville Vainio <vivainio@gmail.com>
950
953
951 * test/*: Added a unit testing framework (finally).
954 * test/*: Added a unit testing framework (finally).
952 '%run runtests.py' to run test_*.
955 '%run runtests.py' to run test_*.
953
956
954 * ipapi.py: Exposed runlines and set_custom_exc
957 * ipapi.py: Exposed runlines and set_custom_exc
955
958
956 2006-02-07 Ville Vainio <vivainio@gmail.com>
959 2006-02-07 Ville Vainio <vivainio@gmail.com>
957
960
958 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
961 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
959 instead use "f(1 2)" as before.
962 instead use "f(1 2)" as before.
960
963
961 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
964 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
962
965
963 * IPython/demo.py (IPythonDemo): Add new classes to the demo
966 * IPython/demo.py (IPythonDemo): Add new classes to the demo
964 facilities, for demos processed by the IPython input filter
967 facilities, for demos processed by the IPython input filter
965 (IPythonDemo), and for running a script one-line-at-a-time as a
968 (IPythonDemo), and for running a script one-line-at-a-time as a
966 demo, both for pure Python (LineDemo) and for IPython-processed
969 demo, both for pure Python (LineDemo) and for IPython-processed
967 input (IPythonLineDemo). After a request by Dave Kohel, from the
970 input (IPythonLineDemo). After a request by Dave Kohel, from the
968 SAGE team.
971 SAGE team.
969 (Demo.edit): added an edit() method to the demo objects, to edit
972 (Demo.edit): added an edit() method to the demo objects, to edit
970 the in-memory copy of the last executed block.
973 the in-memory copy of the last executed block.
971
974
972 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
975 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
973 processing to %edit, %macro and %save. These commands can now be
976 processing to %edit, %macro and %save. These commands can now be
974 invoked on the unprocessed input as it was typed by the user
977 invoked on the unprocessed input as it was typed by the user
975 (without any prefilters applied). After requests by the SAGE team
978 (without any prefilters applied). After requests by the SAGE team
976 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
979 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
977
980
978 2006-02-01 Ville Vainio <vivainio@gmail.com>
981 2006-02-01 Ville Vainio <vivainio@gmail.com>
979
982
980 * setup.py, eggsetup.py: easy_install ipython==dev works
983 * setup.py, eggsetup.py: easy_install ipython==dev works
981 correctly now (on Linux)
984 correctly now (on Linux)
982
985
983 * ipy_user_conf,ipmaker: user config changes, removed spurious
986 * ipy_user_conf,ipmaker: user config changes, removed spurious
984 warnings
987 warnings
985
988
986 * iplib: if rc.banner is string, use it as is.
989 * iplib: if rc.banner is string, use it as is.
987
990
988 * Magic: %pycat accepts a string argument and pages it's contents.
991 * Magic: %pycat accepts a string argument and pages it's contents.
989
992
990
993
991 2006-01-30 Ville Vainio <vivainio@gmail.com>
994 2006-01-30 Ville Vainio <vivainio@gmail.com>
992
995
993 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
996 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
994 Now %store and bookmarks work through PickleShare, meaning that
997 Now %store and bookmarks work through PickleShare, meaning that
995 concurrent access is possible and all ipython sessions see the
998 concurrent access is possible and all ipython sessions see the
996 same database situation all the time, instead of snapshot of
999 same database situation all the time, instead of snapshot of
997 the situation when the session was started. Hence, %bookmark
1000 the situation when the session was started. Hence, %bookmark
998 results are immediately accessible from othes sessions. The database
1001 results are immediately accessible from othes sessions. The database
999 is also available for use by user extensions. See:
1002 is also available for use by user extensions. See:
1000 http://www.python.org/pypi/pickleshare
1003 http://www.python.org/pypi/pickleshare
1001
1004
1002 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1005 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1003
1006
1004 * aliases can now be %store'd
1007 * aliases can now be %store'd
1005
1008
1006 * path.py moved to Extensions so that pickleshare does not need
1009 * path.py moved to Extensions so that pickleshare does not need
1007 IPython-specific import. Extensions added to pythonpath right
1010 IPython-specific import. Extensions added to pythonpath right
1008 at __init__.
1011 at __init__.
1009
1012
1010 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1013 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1011 called with _ip.system and the pre-transformed command string.
1014 called with _ip.system and the pre-transformed command string.
1012
1015
1013 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1016 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1014
1017
1015 * IPython/iplib.py (interact): Fix that we were not catching
1018 * IPython/iplib.py (interact): Fix that we were not catching
1016 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1019 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1017 logic here had to change, but it's fixed now.
1020 logic here had to change, but it's fixed now.
1018
1021
1019 2006-01-29 Ville Vainio <vivainio@gmail.com>
1022 2006-01-29 Ville Vainio <vivainio@gmail.com>
1020
1023
1021 * iplib.py: Try to import pyreadline on Windows.
1024 * iplib.py: Try to import pyreadline on Windows.
1022
1025
1023 2006-01-27 Ville Vainio <vivainio@gmail.com>
1026 2006-01-27 Ville Vainio <vivainio@gmail.com>
1024
1027
1025 * iplib.py: Expose ipapi as _ip in builtin namespace.
1028 * iplib.py: Expose ipapi as _ip in builtin namespace.
1026 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1029 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1027 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1030 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1028 syntax now produce _ip.* variant of the commands.
1031 syntax now produce _ip.* variant of the commands.
1029
1032
1030 * "_ip.options().autoedit_syntax = 2" automatically throws
1033 * "_ip.options().autoedit_syntax = 2" automatically throws
1031 user to editor for syntax error correction without prompting.
1034 user to editor for syntax error correction without prompting.
1032
1035
1033 2006-01-27 Ville Vainio <vivainio@gmail.com>
1036 2006-01-27 Ville Vainio <vivainio@gmail.com>
1034
1037
1035 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1038 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1036 'ipython' at argv[0]) executed through command line.
1039 'ipython' at argv[0]) executed through command line.
1037 NOTE: this DEPRECATES calling ipython with multiple scripts
1040 NOTE: this DEPRECATES calling ipython with multiple scripts
1038 ("ipython a.py b.py c.py")
1041 ("ipython a.py b.py c.py")
1039
1042
1040 * iplib.py, hooks.py: Added configurable input prefilter,
1043 * iplib.py, hooks.py: Added configurable input prefilter,
1041 named 'input_prefilter'. See ext_rescapture.py for example
1044 named 'input_prefilter'. See ext_rescapture.py for example
1042 usage.
1045 usage.
1043
1046
1044 * ext_rescapture.py, Magic.py: Better system command output capture
1047 * ext_rescapture.py, Magic.py: Better system command output capture
1045 through 'var = !ls' (deprecates user-visible %sc). Same notation
1048 through 'var = !ls' (deprecates user-visible %sc). Same notation
1046 applies for magics, 'var = %alias' assigns alias list to var.
1049 applies for magics, 'var = %alias' assigns alias list to var.
1047
1050
1048 * ipapi.py: added meta() for accessing extension-usable data store.
1051 * ipapi.py: added meta() for accessing extension-usable data store.
1049
1052
1050 * iplib.py: added InteractiveShell.getapi(). New magics should be
1053 * iplib.py: added InteractiveShell.getapi(). New magics should be
1051 written doing self.getapi() instead of using the shell directly.
1054 written doing self.getapi() instead of using the shell directly.
1052
1055
1053 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1056 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1054 %store foo >> ~/myfoo.txt to store variables to files (in clean
1057 %store foo >> ~/myfoo.txt to store variables to files (in clean
1055 textual form, not a restorable pickle).
1058 textual form, not a restorable pickle).
1056
1059
1057 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1060 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1058
1061
1059 * usage.py, Magic.py: added %quickref
1062 * usage.py, Magic.py: added %quickref
1060
1063
1061 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1064 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1062
1065
1063 * GetoptErrors when invoking magics etc. with wrong args
1066 * GetoptErrors when invoking magics etc. with wrong args
1064 are now more helpful:
1067 are now more helpful:
1065 GetoptError: option -l not recognized (allowed: "qb" )
1068 GetoptError: option -l not recognized (allowed: "qb" )
1066
1069
1067 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1070 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1068
1071
1069 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1072 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1070 computationally intensive blocks don't appear to stall the demo.
1073 computationally intensive blocks don't appear to stall the demo.
1071
1074
1072 2006-01-24 Ville Vainio <vivainio@gmail.com>
1075 2006-01-24 Ville Vainio <vivainio@gmail.com>
1073
1076
1074 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1077 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1075 value to manipulate resulting history entry.
1078 value to manipulate resulting history entry.
1076
1079
1077 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1080 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1078 to instance methods of IPApi class, to make extending an embedded
1081 to instance methods of IPApi class, to make extending an embedded
1079 IPython feasible. See ext_rehashdir.py for example usage.
1082 IPython feasible. See ext_rehashdir.py for example usage.
1080
1083
1081 * Merged 1071-1076 from branches/0.7.1
1084 * Merged 1071-1076 from branches/0.7.1
1082
1085
1083
1086
1084 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1087 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1088
1086 * tools/release (daystamp): Fix build tools to use the new
1089 * tools/release (daystamp): Fix build tools to use the new
1087 eggsetup.py script to build lightweight eggs.
1090 eggsetup.py script to build lightweight eggs.
1088
1091
1089 * Applied changesets 1062 and 1064 before 0.7.1 release.
1092 * Applied changesets 1062 and 1064 before 0.7.1 release.
1090
1093
1091 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1094 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1092 see the raw input history (without conversions like %ls ->
1095 see the raw input history (without conversions like %ls ->
1093 ipmagic("ls")). After a request from W. Stein, SAGE
1096 ipmagic("ls")). After a request from W. Stein, SAGE
1094 (http://modular.ucsd.edu/sage) developer. This information is
1097 (http://modular.ucsd.edu/sage) developer. This information is
1095 stored in the input_hist_raw attribute of the IPython instance, so
1098 stored in the input_hist_raw attribute of the IPython instance, so
1096 developers can access it if needed (it's an InputList instance).
1099 developers can access it if needed (it's an InputList instance).
1097
1100
1098 * Versionstring = 0.7.2.svn
1101 * Versionstring = 0.7.2.svn
1099
1102
1100 * eggsetup.py: A separate script for constructing eggs, creates
1103 * eggsetup.py: A separate script for constructing eggs, creates
1101 proper launch scripts even on Windows (an .exe file in
1104 proper launch scripts even on Windows (an .exe file in
1102 \python24\scripts).
1105 \python24\scripts).
1103
1106
1104 * ipapi.py: launch_new_instance, launch entry point needed for the
1107 * ipapi.py: launch_new_instance, launch entry point needed for the
1105 egg.
1108 egg.
1106
1109
1107 2006-01-23 Ville Vainio <vivainio@gmail.com>
1110 2006-01-23 Ville Vainio <vivainio@gmail.com>
1108
1111
1109 * Added %cpaste magic for pasting python code
1112 * Added %cpaste magic for pasting python code
1110
1113
1111 2006-01-22 Ville Vainio <vivainio@gmail.com>
1114 2006-01-22 Ville Vainio <vivainio@gmail.com>
1112
1115
1113 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1116 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1114
1117
1115 * Versionstring = 0.7.2.svn
1118 * Versionstring = 0.7.2.svn
1116
1119
1117 * eggsetup.py: A separate script for constructing eggs, creates
1120 * eggsetup.py: A separate script for constructing eggs, creates
1118 proper launch scripts even on Windows (an .exe file in
1121 proper launch scripts even on Windows (an .exe file in
1119 \python24\scripts).
1122 \python24\scripts).
1120
1123
1121 * ipapi.py: launch_new_instance, launch entry point needed for the
1124 * ipapi.py: launch_new_instance, launch entry point needed for the
1122 egg.
1125 egg.
1123
1126
1124 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1127 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1125
1128
1126 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1129 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1127 %pfile foo would print the file for foo even if it was a binary.
1130 %pfile foo would print the file for foo even if it was a binary.
1128 Now, extensions '.so' and '.dll' are skipped.
1131 Now, extensions '.so' and '.dll' are skipped.
1129
1132
1130 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1133 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1131 bug, where macros would fail in all threaded modes. I'm not 100%
1134 bug, where macros would fail in all threaded modes. I'm not 100%
1132 sure, so I'm going to put out an rc instead of making a release
1135 sure, so I'm going to put out an rc instead of making a release
1133 today, and wait for feedback for at least a few days.
1136 today, and wait for feedback for at least a few days.
1134
1137
1135 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1138 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1136 it...) the handling of pasting external code with autoindent on.
1139 it...) the handling of pasting external code with autoindent on.
1137 To get out of a multiline input, the rule will appear for most
1140 To get out of a multiline input, the rule will appear for most
1138 users unchanged: two blank lines or change the indent level
1141 users unchanged: two blank lines or change the indent level
1139 proposed by IPython. But there is a twist now: you can
1142 proposed by IPython. But there is a twist now: you can
1140 add/subtract only *one or two spaces*. If you add/subtract three
1143 add/subtract only *one or two spaces*. If you add/subtract three
1141 or more (unless you completely delete the line), IPython will
1144 or more (unless you completely delete the line), IPython will
1142 accept that line, and you'll need to enter a second one of pure
1145 accept that line, and you'll need to enter a second one of pure
1143 whitespace. I know it sounds complicated, but I can't find a
1146 whitespace. I know it sounds complicated, but I can't find a
1144 different solution that covers all the cases, with the right
1147 different solution that covers all the cases, with the right
1145 heuristics. Hopefully in actual use, nobody will really notice
1148 heuristics. Hopefully in actual use, nobody will really notice
1146 all these strange rules and things will 'just work'.
1149 all these strange rules and things will 'just work'.
1147
1150
1148 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1151 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1149
1152
1150 * IPython/iplib.py (interact): catch exceptions which can be
1153 * IPython/iplib.py (interact): catch exceptions which can be
1151 triggered asynchronously by signal handlers. Thanks to an
1154 triggered asynchronously by signal handlers. Thanks to an
1152 automatic crash report, submitted by Colin Kingsley
1155 automatic crash report, submitted by Colin Kingsley
1153 <tercel-AT-gentoo.org>.
1156 <tercel-AT-gentoo.org>.
1154
1157
1155 2006-01-20 Ville Vainio <vivainio@gmail.com>
1158 2006-01-20 Ville Vainio <vivainio@gmail.com>
1156
1159
1157 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1160 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1158 (%rehashdir, very useful, try it out) of how to extend ipython
1161 (%rehashdir, very useful, try it out) of how to extend ipython
1159 with new magics. Also added Extensions dir to pythonpath to make
1162 with new magics. Also added Extensions dir to pythonpath to make
1160 importing extensions easy.
1163 importing extensions easy.
1161
1164
1162 * %store now complains when trying to store interactively declared
1165 * %store now complains when trying to store interactively declared
1163 classes / instances of those classes.
1166 classes / instances of those classes.
1164
1167
1165 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1168 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1166 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1169 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1167 if they exist, and ipy_user_conf.py with some defaults is created for
1170 if they exist, and ipy_user_conf.py with some defaults is created for
1168 the user.
1171 the user.
1169
1172
1170 * Startup rehashing done by the config file, not InterpreterExec.
1173 * Startup rehashing done by the config file, not InterpreterExec.
1171 This means system commands are available even without selecting the
1174 This means system commands are available even without selecting the
1172 pysh profile. It's the sensible default after all.
1175 pysh profile. It's the sensible default after all.
1173
1176
1174 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1177 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1175
1178
1176 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1179 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1177 multiline code with autoindent on working. But I am really not
1180 multiline code with autoindent on working. But I am really not
1178 sure, so this needs more testing. Will commit a debug-enabled
1181 sure, so this needs more testing. Will commit a debug-enabled
1179 version for now, while I test it some more, so that Ville and
1182 version for now, while I test it some more, so that Ville and
1180 others may also catch any problems. Also made
1183 others may also catch any problems. Also made
1181 self.indent_current_str() a method, to ensure that there's no
1184 self.indent_current_str() a method, to ensure that there's no
1182 chance of the indent space count and the corresponding string
1185 chance of the indent space count and the corresponding string
1183 falling out of sync. All code needing the string should just call
1186 falling out of sync. All code needing the string should just call
1184 the method.
1187 the method.
1185
1188
1186 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1189 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1187
1190
1188 * IPython/Magic.py (magic_edit): fix check for when users don't
1191 * IPython/Magic.py (magic_edit): fix check for when users don't
1189 save their output files, the try/except was in the wrong section.
1192 save their output files, the try/except was in the wrong section.
1190
1193
1191 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1194 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1192
1195
1193 * IPython/Magic.py (magic_run): fix __file__ global missing from
1196 * IPython/Magic.py (magic_run): fix __file__ global missing from
1194 script's namespace when executed via %run. After a report by
1197 script's namespace when executed via %run. After a report by
1195 Vivian.
1198 Vivian.
1196
1199
1197 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1200 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1198 when using python 2.4. The parent constructor changed in 2.4, and
1201 when using python 2.4. The parent constructor changed in 2.4, and
1199 we need to track it directly (we can't call it, as it messes up
1202 we need to track it directly (we can't call it, as it messes up
1200 readline and tab-completion inside our pdb would stop working).
1203 readline and tab-completion inside our pdb would stop working).
1201 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1204 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1202
1205
1203 2006-01-16 Ville Vainio <vivainio@gmail.com>
1206 2006-01-16 Ville Vainio <vivainio@gmail.com>
1204
1207
1205 * Ipython/magic.py: Reverted back to old %edit functionality
1208 * Ipython/magic.py: Reverted back to old %edit functionality
1206 that returns file contents on exit.
1209 that returns file contents on exit.
1207
1210
1208 * IPython/path.py: Added Jason Orendorff's "path" module to
1211 * IPython/path.py: Added Jason Orendorff's "path" module to
1209 IPython tree, http://www.jorendorff.com/articles/python/path/.
1212 IPython tree, http://www.jorendorff.com/articles/python/path/.
1210 You can get path objects conveniently through %sc, and !!, e.g.:
1213 You can get path objects conveniently through %sc, and !!, e.g.:
1211 sc files=ls
1214 sc files=ls
1212 for p in files.paths: # or files.p
1215 for p in files.paths: # or files.p
1213 print p,p.mtime
1216 print p,p.mtime
1214
1217
1215 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1218 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1216 now work again without considering the exclusion regexp -
1219 now work again without considering the exclusion regexp -
1217 hence, things like ',foo my/path' turn to 'foo("my/path")'
1220 hence, things like ',foo my/path' turn to 'foo("my/path")'
1218 instead of syntax error.
1221 instead of syntax error.
1219
1222
1220
1223
1221 2006-01-14 Ville Vainio <vivainio@gmail.com>
1224 2006-01-14 Ville Vainio <vivainio@gmail.com>
1222
1225
1223 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1226 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1224 ipapi decorators for python 2.4 users, options() provides access to rc
1227 ipapi decorators for python 2.4 users, options() provides access to rc
1225 data.
1228 data.
1226
1229
1227 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1230 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1228 as path separators (even on Linux ;-). Space character after
1231 as path separators (even on Linux ;-). Space character after
1229 backslash (as yielded by tab completer) is still space;
1232 backslash (as yielded by tab completer) is still space;
1230 "%cd long\ name" works as expected.
1233 "%cd long\ name" works as expected.
1231
1234
1232 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1235 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1233 as "chain of command", with priority. API stays the same,
1236 as "chain of command", with priority. API stays the same,
1234 TryNext exception raised by a hook function signals that
1237 TryNext exception raised by a hook function signals that
1235 current hook failed and next hook should try handling it, as
1238 current hook failed and next hook should try handling it, as
1236 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1239 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1237 requested configurable display hook, which is now implemented.
1240 requested configurable display hook, which is now implemented.
1238
1241
1239 2006-01-13 Ville Vainio <vivainio@gmail.com>
1242 2006-01-13 Ville Vainio <vivainio@gmail.com>
1240
1243
1241 * IPython/platutils*.py: platform specific utility functions,
1244 * IPython/platutils*.py: platform specific utility functions,
1242 so far only set_term_title is implemented (change terminal
1245 so far only set_term_title is implemented (change terminal
1243 label in windowing systems). %cd now changes the title to
1246 label in windowing systems). %cd now changes the title to
1244 current dir.
1247 current dir.
1245
1248
1246 * IPython/Release.py: Added myself to "authors" list,
1249 * IPython/Release.py: Added myself to "authors" list,
1247 had to create new files.
1250 had to create new files.
1248
1251
1249 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1252 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1250 shell escape; not a known bug but had potential to be one in the
1253 shell escape; not a known bug but had potential to be one in the
1251 future.
1254 future.
1252
1255
1253 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1256 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1254 extension API for IPython! See the module for usage example. Fix
1257 extension API for IPython! See the module for usage example. Fix
1255 OInspect for docstring-less magic functions.
1258 OInspect for docstring-less magic functions.
1256
1259
1257
1260
1258 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1261 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1259
1262
1260 * IPython/iplib.py (raw_input): temporarily deactivate all
1263 * IPython/iplib.py (raw_input): temporarily deactivate all
1261 attempts at allowing pasting of code with autoindent on. It
1264 attempts at allowing pasting of code with autoindent on. It
1262 introduced bugs (reported by Prabhu) and I can't seem to find a
1265 introduced bugs (reported by Prabhu) and I can't seem to find a
1263 robust combination which works in all cases. Will have to revisit
1266 robust combination which works in all cases. Will have to revisit
1264 later.
1267 later.
1265
1268
1266 * IPython/genutils.py: remove isspace() function. We've dropped
1269 * IPython/genutils.py: remove isspace() function. We've dropped
1267 2.2 compatibility, so it's OK to use the string method.
1270 2.2 compatibility, so it's OK to use the string method.
1268
1271
1269 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1272 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1270
1273
1271 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1274 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1272 matching what NOT to autocall on, to include all python binary
1275 matching what NOT to autocall on, to include all python binary
1273 operators (including things like 'and', 'or', 'is' and 'in').
1276 operators (including things like 'and', 'or', 'is' and 'in').
1274 Prompted by a bug report on 'foo & bar', but I realized we had
1277 Prompted by a bug report on 'foo & bar', but I realized we had
1275 many more potential bug cases with other operators. The regexp is
1278 many more potential bug cases with other operators. The regexp is
1276 self.re_exclude_auto, it's fairly commented.
1279 self.re_exclude_auto, it's fairly commented.
1277
1280
1278 2006-01-12 Ville Vainio <vivainio@gmail.com>
1281 2006-01-12 Ville Vainio <vivainio@gmail.com>
1279
1282
1280 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1283 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1281 Prettified and hardened string/backslash quoting with ipsystem(),
1284 Prettified and hardened string/backslash quoting with ipsystem(),
1282 ipalias() and ipmagic(). Now even \ characters are passed to
1285 ipalias() and ipmagic(). Now even \ characters are passed to
1283 %magics, !shell escapes and aliases exactly as they are in the
1286 %magics, !shell escapes and aliases exactly as they are in the
1284 ipython command line. Should improve backslash experience,
1287 ipython command line. Should improve backslash experience,
1285 particularly in Windows (path delimiter for some commands that
1288 particularly in Windows (path delimiter for some commands that
1286 won't understand '/'), but Unix benefits as well (regexps). %cd
1289 won't understand '/'), but Unix benefits as well (regexps). %cd
1287 magic still doesn't support backslash path delimiters, though. Also
1290 magic still doesn't support backslash path delimiters, though. Also
1288 deleted all pretense of supporting multiline command strings in
1291 deleted all pretense of supporting multiline command strings in
1289 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1292 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1290
1293
1291 * doc/build_doc_instructions.txt added. Documentation on how to
1294 * doc/build_doc_instructions.txt added. Documentation on how to
1292 use doc/update_manual.py, added yesterday. Both files contributed
1295 use doc/update_manual.py, added yesterday. Both files contributed
1293 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1296 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1294 doc/*.sh for deprecation at a later date.
1297 doc/*.sh for deprecation at a later date.
1295
1298
1296 * /ipython.py Added ipython.py to root directory for
1299 * /ipython.py Added ipython.py to root directory for
1297 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1300 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1298 ipython.py) and development convenience (no need to keep doing
1301 ipython.py) and development convenience (no need to keep doing
1299 "setup.py install" between changes).
1302 "setup.py install" between changes).
1300
1303
1301 * Made ! and !! shell escapes work (again) in multiline expressions:
1304 * Made ! and !! shell escapes work (again) in multiline expressions:
1302 if 1:
1305 if 1:
1303 !ls
1306 !ls
1304 !!ls
1307 !!ls
1305
1308
1306 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1309 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1307
1310
1308 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1311 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1309 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1312 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1310 module in case-insensitive installation. Was causing crashes
1313 module in case-insensitive installation. Was causing crashes
1311 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1314 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1312
1315
1313 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1316 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1314 <marienz-AT-gentoo.org>, closes
1317 <marienz-AT-gentoo.org>, closes
1315 http://www.scipy.net/roundup/ipython/issue51.
1318 http://www.scipy.net/roundup/ipython/issue51.
1316
1319
1317 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1320 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1318
1321
1319 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1322 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1320 problem of excessive CPU usage under *nix and keyboard lag under
1323 problem of excessive CPU usage under *nix and keyboard lag under
1321 win32.
1324 win32.
1322
1325
1323 2006-01-10 *** Released version 0.7.0
1326 2006-01-10 *** Released version 0.7.0
1324
1327
1325 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1328 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1326
1329
1327 * IPython/Release.py (revision): tag version number to 0.7.0,
1330 * IPython/Release.py (revision): tag version number to 0.7.0,
1328 ready for release.
1331 ready for release.
1329
1332
1330 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1333 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1331 it informs the user of the name of the temp. file used. This can
1334 it informs the user of the name of the temp. file used. This can
1332 help if you decide later to reuse that same file, so you know
1335 help if you decide later to reuse that same file, so you know
1333 where to copy the info from.
1336 where to copy the info from.
1334
1337
1335 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1338 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1336
1339
1337 * setup_bdist_egg.py: little script to build an egg. Added
1340 * setup_bdist_egg.py: little script to build an egg. Added
1338 support in the release tools as well.
1341 support in the release tools as well.
1339
1342
1340 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1343 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1341
1344
1342 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1345 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1343 version selection (new -wxversion command line and ipythonrc
1346 version selection (new -wxversion command line and ipythonrc
1344 parameter). Patch contributed by Arnd Baecker
1347 parameter). Patch contributed by Arnd Baecker
1345 <arnd.baecker-AT-web.de>.
1348 <arnd.baecker-AT-web.de>.
1346
1349
1347 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1350 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1348 embedded instances, for variables defined at the interactive
1351 embedded instances, for variables defined at the interactive
1349 prompt of the embedded ipython. Reported by Arnd.
1352 prompt of the embedded ipython. Reported by Arnd.
1350
1353
1351 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1354 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1352 it can be used as a (stateful) toggle, or with a direct parameter.
1355 it can be used as a (stateful) toggle, or with a direct parameter.
1353
1356
1354 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1357 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1355 could be triggered in certain cases and cause the traceback
1358 could be triggered in certain cases and cause the traceback
1356 printer not to work.
1359 printer not to work.
1357
1360
1358 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1361 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1359
1362
1360 * IPython/iplib.py (_should_recompile): Small fix, closes
1363 * IPython/iplib.py (_should_recompile): Small fix, closes
1361 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1364 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1362
1365
1363 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1366 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1364
1367
1365 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1368 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1366 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1369 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1367 Moad for help with tracking it down.
1370 Moad for help with tracking it down.
1368
1371
1369 * IPython/iplib.py (handle_auto): fix autocall handling for
1372 * IPython/iplib.py (handle_auto): fix autocall handling for
1370 objects which support BOTH __getitem__ and __call__ (so that f [x]
1373 objects which support BOTH __getitem__ and __call__ (so that f [x]
1371 is left alone, instead of becoming f([x]) automatically).
1374 is left alone, instead of becoming f([x]) automatically).
1372
1375
1373 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1376 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1374 Ville's patch.
1377 Ville's patch.
1375
1378
1376 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1379 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1380
1378 * IPython/iplib.py (handle_auto): changed autocall semantics to
1381 * IPython/iplib.py (handle_auto): changed autocall semantics to
1379 include 'smart' mode, where the autocall transformation is NOT
1382 include 'smart' mode, where the autocall transformation is NOT
1380 applied if there are no arguments on the line. This allows you to
1383 applied if there are no arguments on the line. This allows you to
1381 just type 'foo' if foo is a callable to see its internal form,
1384 just type 'foo' if foo is a callable to see its internal form,
1382 instead of having it called with no arguments (typically a
1385 instead of having it called with no arguments (typically a
1383 mistake). The old 'full' autocall still exists: for that, you
1386 mistake). The old 'full' autocall still exists: for that, you
1384 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1387 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1385
1388
1386 * IPython/completer.py (Completer.attr_matches): add
1389 * IPython/completer.py (Completer.attr_matches): add
1387 tab-completion support for Enthoughts' traits. After a report by
1390 tab-completion support for Enthoughts' traits. After a report by
1388 Arnd and a patch by Prabhu.
1391 Arnd and a patch by Prabhu.
1389
1392
1390 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1393 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1391
1394
1392 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1395 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1393 Schmolck's patch to fix inspect.getinnerframes().
1396 Schmolck's patch to fix inspect.getinnerframes().
1394
1397
1395 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1398 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1396 for embedded instances, regarding handling of namespaces and items
1399 for embedded instances, regarding handling of namespaces and items
1397 added to the __builtin__ one. Multiple embedded instances and
1400 added to the __builtin__ one. Multiple embedded instances and
1398 recursive embeddings should work better now (though I'm not sure
1401 recursive embeddings should work better now (though I'm not sure
1399 I've got all the corner cases fixed, that code is a bit of a brain
1402 I've got all the corner cases fixed, that code is a bit of a brain
1400 twister).
1403 twister).
1401
1404
1402 * IPython/Magic.py (magic_edit): added support to edit in-memory
1405 * IPython/Magic.py (magic_edit): added support to edit in-memory
1403 macros (automatically creates the necessary temp files). %edit
1406 macros (automatically creates the necessary temp files). %edit
1404 also doesn't return the file contents anymore, it's just noise.
1407 also doesn't return the file contents anymore, it's just noise.
1405
1408
1406 * IPython/completer.py (Completer.attr_matches): revert change to
1409 * IPython/completer.py (Completer.attr_matches): revert change to
1407 complete only on attributes listed in __all__. I realized it
1410 complete only on attributes listed in __all__. I realized it
1408 cripples the tab-completion system as a tool for exploring the
1411 cripples the tab-completion system as a tool for exploring the
1409 internals of unknown libraries (it renders any non-__all__
1412 internals of unknown libraries (it renders any non-__all__
1410 attribute off-limits). I got bit by this when trying to see
1413 attribute off-limits). I got bit by this when trying to see
1411 something inside the dis module.
1414 something inside the dis module.
1412
1415
1413 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1416 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1414
1417
1415 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1418 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1416 namespace for users and extension writers to hold data in. This
1419 namespace for users and extension writers to hold data in. This
1417 follows the discussion in
1420 follows the discussion in
1418 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1421 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1419
1422
1420 * IPython/completer.py (IPCompleter.complete): small patch to help
1423 * IPython/completer.py (IPCompleter.complete): small patch to help
1421 tab-completion under Emacs, after a suggestion by John Barnard
1424 tab-completion under Emacs, after a suggestion by John Barnard
1422 <barnarj-AT-ccf.org>.
1425 <barnarj-AT-ccf.org>.
1423
1426
1424 * IPython/Magic.py (Magic.extract_input_slices): added support for
1427 * IPython/Magic.py (Magic.extract_input_slices): added support for
1425 the slice notation in magics to use N-M to represent numbers N...M
1428 the slice notation in magics to use N-M to represent numbers N...M
1426 (closed endpoints). This is used by %macro and %save.
1429 (closed endpoints). This is used by %macro and %save.
1427
1430
1428 * IPython/completer.py (Completer.attr_matches): for modules which
1431 * IPython/completer.py (Completer.attr_matches): for modules which
1429 define __all__, complete only on those. After a patch by Jeffrey
1432 define __all__, complete only on those. After a patch by Jeffrey
1430 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1433 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1431 speed up this routine.
1434 speed up this routine.
1432
1435
1433 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1436 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1434 don't know if this is the end of it, but the behavior now is
1437 don't know if this is the end of it, but the behavior now is
1435 certainly much more correct. Note that coupled with macros,
1438 certainly much more correct. Note that coupled with macros,
1436 slightly surprising (at first) behavior may occur: a macro will in
1439 slightly surprising (at first) behavior may occur: a macro will in
1437 general expand to multiple lines of input, so upon exiting, the
1440 general expand to multiple lines of input, so upon exiting, the
1438 in/out counters will both be bumped by the corresponding amount
1441 in/out counters will both be bumped by the corresponding amount
1439 (as if the macro's contents had been typed interactively). Typing
1442 (as if the macro's contents had been typed interactively). Typing
1440 %hist will reveal the intermediate (silently processed) lines.
1443 %hist will reveal the intermediate (silently processed) lines.
1441
1444
1442 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1445 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1443 pickle to fail (%run was overwriting __main__ and not restoring
1446 pickle to fail (%run was overwriting __main__ and not restoring
1444 it, but pickle relies on __main__ to operate).
1447 it, but pickle relies on __main__ to operate).
1445
1448
1446 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1449 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1447 using properties, but forgot to make the main InteractiveShell
1450 using properties, but forgot to make the main InteractiveShell
1448 class a new-style class. Properties fail silently, and
1451 class a new-style class. Properties fail silently, and
1449 mysteriously, with old-style class (getters work, but
1452 mysteriously, with old-style class (getters work, but
1450 setters don't do anything).
1453 setters don't do anything).
1451
1454
1452 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1455 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1453
1456
1454 * IPython/Magic.py (magic_history): fix history reporting bug (I
1457 * IPython/Magic.py (magic_history): fix history reporting bug (I
1455 know some nasties are still there, I just can't seem to find a
1458 know some nasties are still there, I just can't seem to find a
1456 reproducible test case to track them down; the input history is
1459 reproducible test case to track them down; the input history is
1457 falling out of sync...)
1460 falling out of sync...)
1458
1461
1459 * IPython/iplib.py (handle_shell_escape): fix bug where both
1462 * IPython/iplib.py (handle_shell_escape): fix bug where both
1460 aliases and system accesses where broken for indented code (such
1463 aliases and system accesses where broken for indented code (such
1461 as loops).
1464 as loops).
1462
1465
1463 * IPython/genutils.py (shell): fix small but critical bug for
1466 * IPython/genutils.py (shell): fix small but critical bug for
1464 win32 system access.
1467 win32 system access.
1465
1468
1466 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1469 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1467
1470
1468 * IPython/iplib.py (showtraceback): remove use of the
1471 * IPython/iplib.py (showtraceback): remove use of the
1469 sys.last_{type/value/traceback} structures, which are non
1472 sys.last_{type/value/traceback} structures, which are non
1470 thread-safe.
1473 thread-safe.
1471 (_prefilter): change control flow to ensure that we NEVER
1474 (_prefilter): change control flow to ensure that we NEVER
1472 introspect objects when autocall is off. This will guarantee that
1475 introspect objects when autocall is off. This will guarantee that
1473 having an input line of the form 'x.y', where access to attribute
1476 having an input line of the form 'x.y', where access to attribute
1474 'y' has side effects, doesn't trigger the side effect TWICE. It
1477 'y' has side effects, doesn't trigger the side effect TWICE. It
1475 is important to note that, with autocall on, these side effects
1478 is important to note that, with autocall on, these side effects
1476 can still happen.
1479 can still happen.
1477 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1480 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1478 trio. IPython offers these three kinds of special calls which are
1481 trio. IPython offers these three kinds of special calls which are
1479 not python code, and it's a good thing to have their call method
1482 not python code, and it's a good thing to have their call method
1480 be accessible as pure python functions (not just special syntax at
1483 be accessible as pure python functions (not just special syntax at
1481 the command line). It gives us a better internal implementation
1484 the command line). It gives us a better internal implementation
1482 structure, as well as exposing these for user scripting more
1485 structure, as well as exposing these for user scripting more
1483 cleanly.
1486 cleanly.
1484
1487
1485 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1488 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1486 file. Now that they'll be more likely to be used with the
1489 file. Now that they'll be more likely to be used with the
1487 persistance system (%store), I want to make sure their module path
1490 persistance system (%store), I want to make sure their module path
1488 doesn't change in the future, so that we don't break things for
1491 doesn't change in the future, so that we don't break things for
1489 users' persisted data.
1492 users' persisted data.
1490
1493
1491 * IPython/iplib.py (autoindent_update): move indentation
1494 * IPython/iplib.py (autoindent_update): move indentation
1492 management into the _text_ processing loop, not the keyboard
1495 management into the _text_ processing loop, not the keyboard
1493 interactive one. This is necessary to correctly process non-typed
1496 interactive one. This is necessary to correctly process non-typed
1494 multiline input (such as macros).
1497 multiline input (such as macros).
1495
1498
1496 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1499 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1497 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1500 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1498 which was producing problems in the resulting manual.
1501 which was producing problems in the resulting manual.
1499 (magic_whos): improve reporting of instances (show their class,
1502 (magic_whos): improve reporting of instances (show their class,
1500 instead of simply printing 'instance' which isn't terribly
1503 instead of simply printing 'instance' which isn't terribly
1501 informative).
1504 informative).
1502
1505
1503 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1506 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1504 (minor mods) to support network shares under win32.
1507 (minor mods) to support network shares under win32.
1505
1508
1506 * IPython/winconsole.py (get_console_size): add new winconsole
1509 * IPython/winconsole.py (get_console_size): add new winconsole
1507 module and fixes to page_dumb() to improve its behavior under
1510 module and fixes to page_dumb() to improve its behavior under
1508 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1511 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1509
1512
1510 * IPython/Magic.py (Macro): simplified Macro class to just
1513 * IPython/Magic.py (Macro): simplified Macro class to just
1511 subclass list. We've had only 2.2 compatibility for a very long
1514 subclass list. We've had only 2.2 compatibility for a very long
1512 time, yet I was still avoiding subclassing the builtin types. No
1515 time, yet I was still avoiding subclassing the builtin types. No
1513 more (I'm also starting to use properties, though I won't shift to
1516 more (I'm also starting to use properties, though I won't shift to
1514 2.3-specific features quite yet).
1517 2.3-specific features quite yet).
1515 (magic_store): added Ville's patch for lightweight variable
1518 (magic_store): added Ville's patch for lightweight variable
1516 persistence, after a request on the user list by Matt Wilkie
1519 persistence, after a request on the user list by Matt Wilkie
1517 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1520 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1518 details.
1521 details.
1519
1522
1520 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1523 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1521 changed the default logfile name from 'ipython.log' to
1524 changed the default logfile name from 'ipython.log' to
1522 'ipython_log.py'. These logs are real python files, and now that
1525 'ipython_log.py'. These logs are real python files, and now that
1523 we have much better multiline support, people are more likely to
1526 we have much better multiline support, people are more likely to
1524 want to use them as such. Might as well name them correctly.
1527 want to use them as such. Might as well name them correctly.
1525
1528
1526 * IPython/Magic.py: substantial cleanup. While we can't stop
1529 * IPython/Magic.py: substantial cleanup. While we can't stop
1527 using magics as mixins, due to the existing customizations 'out
1530 using magics as mixins, due to the existing customizations 'out
1528 there' which rely on the mixin naming conventions, at least I
1531 there' which rely on the mixin naming conventions, at least I
1529 cleaned out all cross-class name usage. So once we are OK with
1532 cleaned out all cross-class name usage. So once we are OK with
1530 breaking compatibility, the two systems can be separated.
1533 breaking compatibility, the two systems can be separated.
1531
1534
1532 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1535 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1533 anymore, and the class is a fair bit less hideous as well. New
1536 anymore, and the class is a fair bit less hideous as well. New
1534 features were also introduced: timestamping of input, and logging
1537 features were also introduced: timestamping of input, and logging
1535 of output results. These are user-visible with the -t and -o
1538 of output results. These are user-visible with the -t and -o
1536 options to %logstart. Closes
1539 options to %logstart. Closes
1537 http://www.scipy.net/roundup/ipython/issue11 and a request by
1540 http://www.scipy.net/roundup/ipython/issue11 and a request by
1538 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1541 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1539
1542
1540 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1543 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1541
1544
1542 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1545 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1543 better handle backslashes in paths. See the thread 'More Windows
1546 better handle backslashes in paths. See the thread 'More Windows
1544 questions part 2 - \/ characters revisited' on the iypthon user
1547 questions part 2 - \/ characters revisited' on the iypthon user
1545 list:
1548 list:
1546 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1549 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1547
1550
1548 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1551 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1549
1552
1550 (InteractiveShell.__init__): change threaded shells to not use the
1553 (InteractiveShell.__init__): change threaded shells to not use the
1551 ipython crash handler. This was causing more problems than not,
1554 ipython crash handler. This was causing more problems than not,
1552 as exceptions in the main thread (GUI code, typically) would
1555 as exceptions in the main thread (GUI code, typically) would
1553 always show up as a 'crash', when they really weren't.
1556 always show up as a 'crash', when they really weren't.
1554
1557
1555 The colors and exception mode commands (%colors/%xmode) have been
1558 The colors and exception mode commands (%colors/%xmode) have been
1556 synchronized to also take this into account, so users can get
1559 synchronized to also take this into account, so users can get
1557 verbose exceptions for their threaded code as well. I also added
1560 verbose exceptions for their threaded code as well. I also added
1558 support for activating pdb inside this exception handler as well,
1561 support for activating pdb inside this exception handler as well,
1559 so now GUI authors can use IPython's enhanced pdb at runtime.
1562 so now GUI authors can use IPython's enhanced pdb at runtime.
1560
1563
1561 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1564 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1562 true by default, and add it to the shipped ipythonrc file. Since
1565 true by default, and add it to the shipped ipythonrc file. Since
1563 this asks the user before proceeding, I think it's OK to make it
1566 this asks the user before proceeding, I think it's OK to make it
1564 true by default.
1567 true by default.
1565
1568
1566 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1569 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1567 of the previous special-casing of input in the eval loop. I think
1570 of the previous special-casing of input in the eval loop. I think
1568 this is cleaner, as they really are commands and shouldn't have
1571 this is cleaner, as they really are commands and shouldn't have
1569 a special role in the middle of the core code.
1572 a special role in the middle of the core code.
1570
1573
1571 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1574 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1572
1575
1573 * IPython/iplib.py (edit_syntax_error): added support for
1576 * IPython/iplib.py (edit_syntax_error): added support for
1574 automatically reopening the editor if the file had a syntax error
1577 automatically reopening the editor if the file had a syntax error
1575 in it. Thanks to scottt who provided the patch at:
1578 in it. Thanks to scottt who provided the patch at:
1576 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1579 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1577 version committed).
1580 version committed).
1578
1581
1579 * IPython/iplib.py (handle_normal): add suport for multi-line
1582 * IPython/iplib.py (handle_normal): add suport for multi-line
1580 input with emtpy lines. This fixes
1583 input with emtpy lines. This fixes
1581 http://www.scipy.net/roundup/ipython/issue43 and a similar
1584 http://www.scipy.net/roundup/ipython/issue43 and a similar
1582 discussion on the user list.
1585 discussion on the user list.
1583
1586
1584 WARNING: a behavior change is necessarily introduced to support
1587 WARNING: a behavior change is necessarily introduced to support
1585 blank lines: now a single blank line with whitespace does NOT
1588 blank lines: now a single blank line with whitespace does NOT
1586 break the input loop, which means that when autoindent is on, by
1589 break the input loop, which means that when autoindent is on, by
1587 default hitting return on the next (indented) line does NOT exit.
1590 default hitting return on the next (indented) line does NOT exit.
1588
1591
1589 Instead, to exit a multiline input you can either have:
1592 Instead, to exit a multiline input you can either have:
1590
1593
1591 - TWO whitespace lines (just hit return again), or
1594 - TWO whitespace lines (just hit return again), or
1592 - a single whitespace line of a different length than provided
1595 - a single whitespace line of a different length than provided
1593 by the autoindent (add or remove a space).
1596 by the autoindent (add or remove a space).
1594
1597
1595 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1598 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1596 module to better organize all readline-related functionality.
1599 module to better organize all readline-related functionality.
1597 I've deleted FlexCompleter and put all completion clases here.
1600 I've deleted FlexCompleter and put all completion clases here.
1598
1601
1599 * IPython/iplib.py (raw_input): improve indentation management.
1602 * IPython/iplib.py (raw_input): improve indentation management.
1600 It is now possible to paste indented code with autoindent on, and
1603 It is now possible to paste indented code with autoindent on, and
1601 the code is interpreted correctly (though it still looks bad on
1604 the code is interpreted correctly (though it still looks bad on
1602 screen, due to the line-oriented nature of ipython).
1605 screen, due to the line-oriented nature of ipython).
1603 (MagicCompleter.complete): change behavior so that a TAB key on an
1606 (MagicCompleter.complete): change behavior so that a TAB key on an
1604 otherwise empty line actually inserts a tab, instead of completing
1607 otherwise empty line actually inserts a tab, instead of completing
1605 on the entire global namespace. This makes it easier to use the
1608 on the entire global namespace. This makes it easier to use the
1606 TAB key for indentation. After a request by Hans Meine
1609 TAB key for indentation. After a request by Hans Meine
1607 <hans_meine-AT-gmx.net>
1610 <hans_meine-AT-gmx.net>
1608 (_prefilter): add support so that typing plain 'exit' or 'quit'
1611 (_prefilter): add support so that typing plain 'exit' or 'quit'
1609 does a sensible thing. Originally I tried to deviate as little as
1612 does a sensible thing. Originally I tried to deviate as little as
1610 possible from the default python behavior, but even that one may
1613 possible from the default python behavior, but even that one may
1611 change in this direction (thread on python-dev to that effect).
1614 change in this direction (thread on python-dev to that effect).
1612 Regardless, ipython should do the right thing even if CPython's
1615 Regardless, ipython should do the right thing even if CPython's
1613 '>>>' prompt doesn't.
1616 '>>>' prompt doesn't.
1614 (InteractiveShell): removed subclassing code.InteractiveConsole
1617 (InteractiveShell): removed subclassing code.InteractiveConsole
1615 class. By now we'd overridden just about all of its methods: I've
1618 class. By now we'd overridden just about all of its methods: I've
1616 copied the remaining two over, and now ipython is a standalone
1619 copied the remaining two over, and now ipython is a standalone
1617 class. This will provide a clearer picture for the chainsaw
1620 class. This will provide a clearer picture for the chainsaw
1618 branch refactoring.
1621 branch refactoring.
1619
1622
1620 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1623 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1624
1622 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1625 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1623 failures for objects which break when dir() is called on them.
1626 failures for objects which break when dir() is called on them.
1624
1627
1625 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1628 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1626 distinct local and global namespaces in the completer API. This
1629 distinct local and global namespaces in the completer API. This
1627 change allows us to properly handle completion with distinct
1630 change allows us to properly handle completion with distinct
1628 scopes, including in embedded instances (this had never really
1631 scopes, including in embedded instances (this had never really
1629 worked correctly).
1632 worked correctly).
1630
1633
1631 Note: this introduces a change in the constructor for
1634 Note: this introduces a change in the constructor for
1632 MagicCompleter, as a new global_namespace parameter is now the
1635 MagicCompleter, as a new global_namespace parameter is now the
1633 second argument (the others were bumped one position).
1636 second argument (the others were bumped one position).
1634
1637
1635 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1638 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1636
1639
1637 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1640 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1638 embedded instances (which can be done now thanks to Vivian's
1641 embedded instances (which can be done now thanks to Vivian's
1639 frame-handling fixes for pdb).
1642 frame-handling fixes for pdb).
1640 (InteractiveShell.__init__): Fix namespace handling problem in
1643 (InteractiveShell.__init__): Fix namespace handling problem in
1641 embedded instances. We were overwriting __main__ unconditionally,
1644 embedded instances. We were overwriting __main__ unconditionally,
1642 and this should only be done for 'full' (non-embedded) IPython;
1645 and this should only be done for 'full' (non-embedded) IPython;
1643 embedded instances must respect the caller's __main__. Thanks to
1646 embedded instances must respect the caller's __main__. Thanks to
1644 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1647 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1645
1648
1646 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1647
1650
1648 * setup.py: added download_url to setup(). This registers the
1651 * setup.py: added download_url to setup(). This registers the
1649 download address at PyPI, which is not only useful to humans
1652 download address at PyPI, which is not only useful to humans
1650 browsing the site, but is also picked up by setuptools (the Eggs
1653 browsing the site, but is also picked up by setuptools (the Eggs
1651 machinery). Thanks to Ville and R. Kern for the info/discussion
1654 machinery). Thanks to Ville and R. Kern for the info/discussion
1652 on this.
1655 on this.
1653
1656
1654 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1657 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1655
1658
1656 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1659 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1657 This brings a lot of nice functionality to the pdb mode, which now
1660 This brings a lot of nice functionality to the pdb mode, which now
1658 has tab-completion, syntax highlighting, and better stack handling
1661 has tab-completion, syntax highlighting, and better stack handling
1659 than before. Many thanks to Vivian De Smedt
1662 than before. Many thanks to Vivian De Smedt
1660 <vivian-AT-vdesmedt.com> for the original patches.
1663 <vivian-AT-vdesmedt.com> for the original patches.
1661
1664
1662 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1665 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1663
1666
1664 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1667 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1665 sequence to consistently accept the banner argument. The
1668 sequence to consistently accept the banner argument. The
1666 inconsistency was tripping SAGE, thanks to Gary Zablackis
1669 inconsistency was tripping SAGE, thanks to Gary Zablackis
1667 <gzabl-AT-yahoo.com> for the report.
1670 <gzabl-AT-yahoo.com> for the report.
1668
1671
1669 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1672 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1670
1673
1671 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1674 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1672 Fix bug where a naked 'alias' call in the ipythonrc file would
1675 Fix bug where a naked 'alias' call in the ipythonrc file would
1673 cause a crash. Bug reported by Jorgen Stenarson.
1676 cause a crash. Bug reported by Jorgen Stenarson.
1674
1677
1675 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1678 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1676
1679
1677 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1680 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1678 startup time.
1681 startup time.
1679
1682
1680 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1683 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1681 instances had introduced a bug with globals in normal code. Now
1684 instances had introduced a bug with globals in normal code. Now
1682 it's working in all cases.
1685 it's working in all cases.
1683
1686
1684 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1687 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1685 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1688 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1686 has been introduced to set the default case sensitivity of the
1689 has been introduced to set the default case sensitivity of the
1687 searches. Users can still select either mode at runtime on a
1690 searches. Users can still select either mode at runtime on a
1688 per-search basis.
1691 per-search basis.
1689
1692
1690 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1691
1694
1692 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1695 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1693 attributes in wildcard searches for subclasses. Modified version
1696 attributes in wildcard searches for subclasses. Modified version
1694 of a patch by Jorgen.
1697 of a patch by Jorgen.
1695
1698
1696 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1699 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1697
1700
1698 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1701 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1699 embedded instances. I added a user_global_ns attribute to the
1702 embedded instances. I added a user_global_ns attribute to the
1700 InteractiveShell class to handle this.
1703 InteractiveShell class to handle this.
1701
1704
1702 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1705 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1706
1704 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1707 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1705 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1708 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1706 (reported under win32, but may happen also in other platforms).
1709 (reported under win32, but may happen also in other platforms).
1707 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1710 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1708
1711
1709 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1712 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1710
1713
1711 * IPython/Magic.py (magic_psearch): new support for wildcard
1714 * IPython/Magic.py (magic_psearch): new support for wildcard
1712 patterns. Now, typing ?a*b will list all names which begin with a
1715 patterns. Now, typing ?a*b will list all names which begin with a
1713 and end in b, for example. The %psearch magic has full
1716 and end in b, for example. The %psearch magic has full
1714 docstrings. Many thanks to JΓΆrgen Stenarson
1717 docstrings. Many thanks to JΓΆrgen Stenarson
1715 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1718 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1716 implementing this functionality.
1719 implementing this functionality.
1717
1720
1718 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1721 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1719
1722
1720 * Manual: fixed long-standing annoyance of double-dashes (as in
1723 * Manual: fixed long-standing annoyance of double-dashes (as in
1721 --prefix=~, for example) being stripped in the HTML version. This
1724 --prefix=~, for example) being stripped in the HTML version. This
1722 is a latex2html bug, but a workaround was provided. Many thanks
1725 is a latex2html bug, but a workaround was provided. Many thanks
1723 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1726 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1724 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1727 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1725 rolling. This seemingly small issue had tripped a number of users
1728 rolling. This seemingly small issue had tripped a number of users
1726 when first installing, so I'm glad to see it gone.
1729 when first installing, so I'm glad to see it gone.
1727
1730
1728 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1731 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1729
1732
1730 * IPython/Extensions/numeric_formats.py: fix missing import,
1733 * IPython/Extensions/numeric_formats.py: fix missing import,
1731 reported by Stephen Walton.
1734 reported by Stephen Walton.
1732
1735
1733 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1736 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1734
1737
1735 * IPython/demo.py: finish demo module, fully documented now.
1738 * IPython/demo.py: finish demo module, fully documented now.
1736
1739
1737 * IPython/genutils.py (file_read): simple little utility to read a
1740 * IPython/genutils.py (file_read): simple little utility to read a
1738 file and ensure it's closed afterwards.
1741 file and ensure it's closed afterwards.
1739
1742
1740 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1743 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1741
1744
1742 * IPython/demo.py (Demo.__init__): added support for individually
1745 * IPython/demo.py (Demo.__init__): added support for individually
1743 tagging blocks for automatic execution.
1746 tagging blocks for automatic execution.
1744
1747
1745 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1748 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1746 syntax-highlighted python sources, requested by John.
1749 syntax-highlighted python sources, requested by John.
1747
1750
1748 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1749
1752
1750 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1753 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1751 finishing.
1754 finishing.
1752
1755
1753 * IPython/genutils.py (shlex_split): moved from Magic to here,
1756 * IPython/genutils.py (shlex_split): moved from Magic to here,
1754 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1757 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1755
1758
1756 * IPython/demo.py (Demo.__init__): added support for silent
1759 * IPython/demo.py (Demo.__init__): added support for silent
1757 blocks, improved marks as regexps, docstrings written.
1760 blocks, improved marks as regexps, docstrings written.
1758 (Demo.__init__): better docstring, added support for sys.argv.
1761 (Demo.__init__): better docstring, added support for sys.argv.
1759
1762
1760 * IPython/genutils.py (marquee): little utility used by the demo
1763 * IPython/genutils.py (marquee): little utility used by the demo
1761 code, handy in general.
1764 code, handy in general.
1762
1765
1763 * IPython/demo.py (Demo.__init__): new class for interactive
1766 * IPython/demo.py (Demo.__init__): new class for interactive
1764 demos. Not documented yet, I just wrote it in a hurry for
1767 demos. Not documented yet, I just wrote it in a hurry for
1765 scipy'05. Will docstring later.
1768 scipy'05. Will docstring later.
1766
1769
1767 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1770 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1768
1771
1769 * IPython/Shell.py (sigint_handler): Drastic simplification which
1772 * IPython/Shell.py (sigint_handler): Drastic simplification which
1770 also seems to make Ctrl-C work correctly across threads! This is
1773 also seems to make Ctrl-C work correctly across threads! This is
1771 so simple, that I can't beleive I'd missed it before. Needs more
1774 so simple, that I can't beleive I'd missed it before. Needs more
1772 testing, though.
1775 testing, though.
1773 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1776 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1774 like this before...
1777 like this before...
1775
1778
1776 * IPython/genutils.py (get_home_dir): add protection against
1779 * IPython/genutils.py (get_home_dir): add protection against
1777 non-dirs in win32 registry.
1780 non-dirs in win32 registry.
1778
1781
1779 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1782 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1780 bug where dict was mutated while iterating (pysh crash).
1783 bug where dict was mutated while iterating (pysh crash).
1781
1784
1782 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1785 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1783
1786
1784 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1787 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1785 spurious newlines added by this routine. After a report by
1788 spurious newlines added by this routine. After a report by
1786 F. Mantegazza.
1789 F. Mantegazza.
1787
1790
1788 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1791 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1789
1792
1790 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1793 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1791 calls. These were a leftover from the GTK 1.x days, and can cause
1794 calls. These were a leftover from the GTK 1.x days, and can cause
1792 problems in certain cases (after a report by John Hunter).
1795 problems in certain cases (after a report by John Hunter).
1793
1796
1794 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1797 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1795 os.getcwd() fails at init time. Thanks to patch from David Remahl
1798 os.getcwd() fails at init time. Thanks to patch from David Remahl
1796 <chmod007-AT-mac.com>.
1799 <chmod007-AT-mac.com>.
1797 (InteractiveShell.__init__): prevent certain special magics from
1800 (InteractiveShell.__init__): prevent certain special magics from
1798 being shadowed by aliases. Closes
1801 being shadowed by aliases. Closes
1799 http://www.scipy.net/roundup/ipython/issue41.
1802 http://www.scipy.net/roundup/ipython/issue41.
1800
1803
1801 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1804 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1802
1805
1803 * IPython/iplib.py (InteractiveShell.complete): Added new
1806 * IPython/iplib.py (InteractiveShell.complete): Added new
1804 top-level completion method to expose the completion mechanism
1807 top-level completion method to expose the completion mechanism
1805 beyond readline-based environments.
1808 beyond readline-based environments.
1806
1809
1807 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1810 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1808
1811
1809 * tools/ipsvnc (svnversion): fix svnversion capture.
1812 * tools/ipsvnc (svnversion): fix svnversion capture.
1810
1813
1811 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1814 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1812 attribute to self, which was missing. Before, it was set by a
1815 attribute to self, which was missing. Before, it was set by a
1813 routine which in certain cases wasn't being called, so the
1816 routine which in certain cases wasn't being called, so the
1814 instance could end up missing the attribute. This caused a crash.
1817 instance could end up missing the attribute. This caused a crash.
1815 Closes http://www.scipy.net/roundup/ipython/issue40.
1818 Closes http://www.scipy.net/roundup/ipython/issue40.
1816
1819
1817 2005-08-16 Fernando Perez <fperez@colorado.edu>
1820 2005-08-16 Fernando Perez <fperez@colorado.edu>
1818
1821
1819 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1822 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1820 contains non-string attribute. Closes
1823 contains non-string attribute. Closes
1821 http://www.scipy.net/roundup/ipython/issue38.
1824 http://www.scipy.net/roundup/ipython/issue38.
1822
1825
1823 2005-08-14 Fernando Perez <fperez@colorado.edu>
1826 2005-08-14 Fernando Perez <fperez@colorado.edu>
1824
1827
1825 * tools/ipsvnc: Minor improvements, to add changeset info.
1828 * tools/ipsvnc: Minor improvements, to add changeset info.
1826
1829
1827 2005-08-12 Fernando Perez <fperez@colorado.edu>
1830 2005-08-12 Fernando Perez <fperez@colorado.edu>
1828
1831
1829 * IPython/iplib.py (runsource): remove self.code_to_run_src
1832 * IPython/iplib.py (runsource): remove self.code_to_run_src
1830 attribute. I realized this is nothing more than
1833 attribute. I realized this is nothing more than
1831 '\n'.join(self.buffer), and having the same data in two different
1834 '\n'.join(self.buffer), and having the same data in two different
1832 places is just asking for synchronization bugs. This may impact
1835 places is just asking for synchronization bugs. This may impact
1833 people who have custom exception handlers, so I need to warn
1836 people who have custom exception handlers, so I need to warn
1834 ipython-dev about it (F. Mantegazza may use them).
1837 ipython-dev about it (F. Mantegazza may use them).
1835
1838
1836 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1839 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1837
1840
1838 * IPython/genutils.py: fix 2.2 compatibility (generators)
1841 * IPython/genutils.py: fix 2.2 compatibility (generators)
1839
1842
1840 2005-07-18 Fernando Perez <fperez@colorado.edu>
1843 2005-07-18 Fernando Perez <fperez@colorado.edu>
1841
1844
1842 * IPython/genutils.py (get_home_dir): fix to help users with
1845 * IPython/genutils.py (get_home_dir): fix to help users with
1843 invalid $HOME under win32.
1846 invalid $HOME under win32.
1844
1847
1845 2005-07-17 Fernando Perez <fperez@colorado.edu>
1848 2005-07-17 Fernando Perez <fperez@colorado.edu>
1846
1849
1847 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1850 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1848 some old hacks and clean up a bit other routines; code should be
1851 some old hacks and clean up a bit other routines; code should be
1849 simpler and a bit faster.
1852 simpler and a bit faster.
1850
1853
1851 * IPython/iplib.py (interact): removed some last-resort attempts
1854 * IPython/iplib.py (interact): removed some last-resort attempts
1852 to survive broken stdout/stderr. That code was only making it
1855 to survive broken stdout/stderr. That code was only making it
1853 harder to abstract out the i/o (necessary for gui integration),
1856 harder to abstract out the i/o (necessary for gui integration),
1854 and the crashes it could prevent were extremely rare in practice
1857 and the crashes it could prevent were extremely rare in practice
1855 (besides being fully user-induced in a pretty violent manner).
1858 (besides being fully user-induced in a pretty violent manner).
1856
1859
1857 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1860 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1858 Nothing major yet, but the code is simpler to read; this should
1861 Nothing major yet, but the code is simpler to read; this should
1859 make it easier to do more serious modifications in the future.
1862 make it easier to do more serious modifications in the future.
1860
1863
1861 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1864 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1862 which broke in .15 (thanks to a report by Ville).
1865 which broke in .15 (thanks to a report by Ville).
1863
1866
1864 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1867 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1865 be quite correct, I know next to nothing about unicode). This
1868 be quite correct, I know next to nothing about unicode). This
1866 will allow unicode strings to be used in prompts, amongst other
1869 will allow unicode strings to be used in prompts, amongst other
1867 cases. It also will prevent ipython from crashing when unicode
1870 cases. It also will prevent ipython from crashing when unicode
1868 shows up unexpectedly in many places. If ascii encoding fails, we
1871 shows up unexpectedly in many places. If ascii encoding fails, we
1869 assume utf_8. Currently the encoding is not a user-visible
1872 assume utf_8. Currently the encoding is not a user-visible
1870 setting, though it could be made so if there is demand for it.
1873 setting, though it could be made so if there is demand for it.
1871
1874
1872 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1875 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1873
1876
1874 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1877 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1875
1878
1876 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1879 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1877
1880
1878 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1881 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1879 code can work transparently for 2.2/2.3.
1882 code can work transparently for 2.2/2.3.
1880
1883
1881 2005-07-16 Fernando Perez <fperez@colorado.edu>
1884 2005-07-16 Fernando Perez <fperez@colorado.edu>
1882
1885
1883 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1886 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1884 out of the color scheme table used for coloring exception
1887 out of the color scheme table used for coloring exception
1885 tracebacks. This allows user code to add new schemes at runtime.
1888 tracebacks. This allows user code to add new schemes at runtime.
1886 This is a minimally modified version of the patch at
1889 This is a minimally modified version of the patch at
1887 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1890 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1888 for the contribution.
1891 for the contribution.
1889
1892
1890 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1893 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1891 slightly modified version of the patch in
1894 slightly modified version of the patch in
1892 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1895 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1893 to remove the previous try/except solution (which was costlier).
1896 to remove the previous try/except solution (which was costlier).
1894 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1897 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1895
1898
1896 2005-06-08 Fernando Perez <fperez@colorado.edu>
1899 2005-06-08 Fernando Perez <fperez@colorado.edu>
1897
1900
1898 * IPython/iplib.py (write/write_err): Add methods to abstract all
1901 * IPython/iplib.py (write/write_err): Add methods to abstract all
1899 I/O a bit more.
1902 I/O a bit more.
1900
1903
1901 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1904 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1902 warning, reported by Aric Hagberg, fix by JD Hunter.
1905 warning, reported by Aric Hagberg, fix by JD Hunter.
1903
1906
1904 2005-06-02 *** Released version 0.6.15
1907 2005-06-02 *** Released version 0.6.15
1905
1908
1906 2005-06-01 Fernando Perez <fperez@colorado.edu>
1909 2005-06-01 Fernando Perez <fperez@colorado.edu>
1907
1910
1908 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1911 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1909 tab-completion of filenames within open-quoted strings. Note that
1912 tab-completion of filenames within open-quoted strings. Note that
1910 this requires that in ~/.ipython/ipythonrc, users change the
1913 this requires that in ~/.ipython/ipythonrc, users change the
1911 readline delimiters configuration to read:
1914 readline delimiters configuration to read:
1912
1915
1913 readline_remove_delims -/~
1916 readline_remove_delims -/~
1914
1917
1915
1918
1916 2005-05-31 *** Released version 0.6.14
1919 2005-05-31 *** Released version 0.6.14
1917
1920
1918 2005-05-29 Fernando Perez <fperez@colorado.edu>
1921 2005-05-29 Fernando Perez <fperez@colorado.edu>
1919
1922
1920 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1923 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1921 with files not on the filesystem. Reported by Eliyahu Sandler
1924 with files not on the filesystem. Reported by Eliyahu Sandler
1922 <eli@gondolin.net>
1925 <eli@gondolin.net>
1923
1926
1924 2005-05-22 Fernando Perez <fperez@colorado.edu>
1927 2005-05-22 Fernando Perez <fperez@colorado.edu>
1925
1928
1926 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1929 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1927 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1930 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1928
1931
1929 2005-05-19 Fernando Perez <fperez@colorado.edu>
1932 2005-05-19 Fernando Perez <fperez@colorado.edu>
1930
1933
1931 * IPython/iplib.py (safe_execfile): close a file which could be
1934 * IPython/iplib.py (safe_execfile): close a file which could be
1932 left open (causing problems in win32, which locks open files).
1935 left open (causing problems in win32, which locks open files).
1933 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1936 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1934
1937
1935 2005-05-18 Fernando Perez <fperez@colorado.edu>
1938 2005-05-18 Fernando Perez <fperez@colorado.edu>
1936
1939
1937 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1940 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1938 keyword arguments correctly to safe_execfile().
1941 keyword arguments correctly to safe_execfile().
1939
1942
1940 2005-05-13 Fernando Perez <fperez@colorado.edu>
1943 2005-05-13 Fernando Perez <fperez@colorado.edu>
1941
1944
1942 * ipython.1: Added info about Qt to manpage, and threads warning
1945 * ipython.1: Added info about Qt to manpage, and threads warning
1943 to usage page (invoked with --help).
1946 to usage page (invoked with --help).
1944
1947
1945 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1948 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1946 new matcher (it goes at the end of the priority list) to do
1949 new matcher (it goes at the end of the priority list) to do
1947 tab-completion on named function arguments. Submitted by George
1950 tab-completion on named function arguments. Submitted by George
1948 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1951 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1949 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1952 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1950 for more details.
1953 for more details.
1951
1954
1952 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1955 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1953 SystemExit exceptions in the script being run. Thanks to a report
1956 SystemExit exceptions in the script being run. Thanks to a report
1954 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1957 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1955 producing very annoying behavior when running unit tests.
1958 producing very annoying behavior when running unit tests.
1956
1959
1957 2005-05-12 Fernando Perez <fperez@colorado.edu>
1960 2005-05-12 Fernando Perez <fperez@colorado.edu>
1958
1961
1959 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1962 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1960 which I'd broken (again) due to a changed regexp. In the process,
1963 which I'd broken (again) due to a changed regexp. In the process,
1961 added ';' as an escape to auto-quote the whole line without
1964 added ';' as an escape to auto-quote the whole line without
1962 splitting its arguments. Thanks to a report by Jerry McRae
1965 splitting its arguments. Thanks to a report by Jerry McRae
1963 <qrs0xyc02-AT-sneakemail.com>.
1966 <qrs0xyc02-AT-sneakemail.com>.
1964
1967
1965 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1968 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1966 possible crashes caused by a TokenError. Reported by Ed Schofield
1969 possible crashes caused by a TokenError. Reported by Ed Schofield
1967 <schofield-AT-ftw.at>.
1970 <schofield-AT-ftw.at>.
1968
1971
1969 2005-05-06 Fernando Perez <fperez@colorado.edu>
1972 2005-05-06 Fernando Perez <fperez@colorado.edu>
1970
1973
1971 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1974 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1972
1975
1973 2005-04-29 Fernando Perez <fperez@colorado.edu>
1976 2005-04-29 Fernando Perez <fperez@colorado.edu>
1974
1977
1975 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1978 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1976 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1979 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1977 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1980 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1978 which provides support for Qt interactive usage (similar to the
1981 which provides support for Qt interactive usage (similar to the
1979 existing one for WX and GTK). This had been often requested.
1982 existing one for WX and GTK). This had been often requested.
1980
1983
1981 2005-04-14 *** Released version 0.6.13
1984 2005-04-14 *** Released version 0.6.13
1982
1985
1983 2005-04-08 Fernando Perez <fperez@colorado.edu>
1986 2005-04-08 Fernando Perez <fperez@colorado.edu>
1984
1987
1985 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1988 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1986 from _ofind, which gets called on almost every input line. Now,
1989 from _ofind, which gets called on almost every input line. Now,
1987 we only try to get docstrings if they are actually going to be
1990 we only try to get docstrings if they are actually going to be
1988 used (the overhead of fetching unnecessary docstrings can be
1991 used (the overhead of fetching unnecessary docstrings can be
1989 noticeable for certain objects, such as Pyro proxies).
1992 noticeable for certain objects, such as Pyro proxies).
1990
1993
1991 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1994 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1992 for completers. For some reason I had been passing them the state
1995 for completers. For some reason I had been passing them the state
1993 variable, which completers never actually need, and was in
1996 variable, which completers never actually need, and was in
1994 conflict with the rlcompleter API. Custom completers ONLY need to
1997 conflict with the rlcompleter API. Custom completers ONLY need to
1995 take the text parameter.
1998 take the text parameter.
1996
1999
1997 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2000 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1998 work correctly in pysh. I've also moved all the logic which used
2001 work correctly in pysh. I've also moved all the logic which used
1999 to be in pysh.py here, which will prevent problems with future
2002 to be in pysh.py here, which will prevent problems with future
2000 upgrades. However, this time I must warn users to update their
2003 upgrades. However, this time I must warn users to update their
2001 pysh profile to include the line
2004 pysh profile to include the line
2002
2005
2003 import_all IPython.Extensions.InterpreterExec
2006 import_all IPython.Extensions.InterpreterExec
2004
2007
2005 because otherwise things won't work for them. They MUST also
2008 because otherwise things won't work for them. They MUST also
2006 delete pysh.py and the line
2009 delete pysh.py and the line
2007
2010
2008 execfile pysh.py
2011 execfile pysh.py
2009
2012
2010 from their ipythonrc-pysh.
2013 from their ipythonrc-pysh.
2011
2014
2012 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2015 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2013 robust in the face of objects whose dir() returns non-strings
2016 robust in the face of objects whose dir() returns non-strings
2014 (which it shouldn't, but some broken libs like ITK do). Thanks to
2017 (which it shouldn't, but some broken libs like ITK do). Thanks to
2015 a patch by John Hunter (implemented differently, though). Also
2018 a patch by John Hunter (implemented differently, though). Also
2016 minor improvements by using .extend instead of + on lists.
2019 minor improvements by using .extend instead of + on lists.
2017
2020
2018 * pysh.py:
2021 * pysh.py:
2019
2022
2020 2005-04-06 Fernando Perez <fperez@colorado.edu>
2023 2005-04-06 Fernando Perez <fperez@colorado.edu>
2021
2024
2022 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2025 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2023 by default, so that all users benefit from it. Those who don't
2026 by default, so that all users benefit from it. Those who don't
2024 want it can still turn it off.
2027 want it can still turn it off.
2025
2028
2026 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2029 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2027 config file, I'd forgotten about this, so users were getting it
2030 config file, I'd forgotten about this, so users were getting it
2028 off by default.
2031 off by default.
2029
2032
2030 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2033 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2031 consistency. Now magics can be called in multiline statements,
2034 consistency. Now magics can be called in multiline statements,
2032 and python variables can be expanded in magic calls via $var.
2035 and python variables can be expanded in magic calls via $var.
2033 This makes the magic system behave just like aliases or !system
2036 This makes the magic system behave just like aliases or !system
2034 calls.
2037 calls.
2035
2038
2036 2005-03-28 Fernando Perez <fperez@colorado.edu>
2039 2005-03-28 Fernando Perez <fperez@colorado.edu>
2037
2040
2038 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2041 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2039 expensive string additions for building command. Add support for
2042 expensive string additions for building command. Add support for
2040 trailing ';' when autocall is used.
2043 trailing ';' when autocall is used.
2041
2044
2042 2005-03-26 Fernando Perez <fperez@colorado.edu>
2045 2005-03-26 Fernando Perez <fperez@colorado.edu>
2043
2046
2044 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2047 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2045 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2048 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2046 ipython.el robust against prompts with any number of spaces
2049 ipython.el robust against prompts with any number of spaces
2047 (including 0) after the ':' character.
2050 (including 0) after the ':' character.
2048
2051
2049 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2052 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2050 continuation prompt, which misled users to think the line was
2053 continuation prompt, which misled users to think the line was
2051 already indented. Closes debian Bug#300847, reported to me by
2054 already indented. Closes debian Bug#300847, reported to me by
2052 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2055 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2053
2056
2054 2005-03-23 Fernando Perez <fperez@colorado.edu>
2057 2005-03-23 Fernando Perez <fperez@colorado.edu>
2055
2058
2056 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2059 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2057 properly aligned if they have embedded newlines.
2060 properly aligned if they have embedded newlines.
2058
2061
2059 * IPython/iplib.py (runlines): Add a public method to expose
2062 * IPython/iplib.py (runlines): Add a public method to expose
2060 IPython's code execution machinery, so that users can run strings
2063 IPython's code execution machinery, so that users can run strings
2061 as if they had been typed at the prompt interactively.
2064 as if they had been typed at the prompt interactively.
2062 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2065 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2063 methods which can call the system shell, but with python variable
2066 methods which can call the system shell, but with python variable
2064 expansion. The three such methods are: __IPYTHON__.system,
2067 expansion. The three such methods are: __IPYTHON__.system,
2065 .getoutput and .getoutputerror. These need to be documented in a
2068 .getoutput and .getoutputerror. These need to be documented in a
2066 'public API' section (to be written) of the manual.
2069 'public API' section (to be written) of the manual.
2067
2070
2068 2005-03-20 Fernando Perez <fperez@colorado.edu>
2071 2005-03-20 Fernando Perez <fperez@colorado.edu>
2069
2072
2070 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2073 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2071 for custom exception handling. This is quite powerful, and it
2074 for custom exception handling. This is quite powerful, and it
2072 allows for user-installable exception handlers which can trap
2075 allows for user-installable exception handlers which can trap
2073 custom exceptions at runtime and treat them separately from
2076 custom exceptions at runtime and treat them separately from
2074 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2077 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2075 Mantegazza <mantegazza-AT-ill.fr>.
2078 Mantegazza <mantegazza-AT-ill.fr>.
2076 (InteractiveShell.set_custom_completer): public API function to
2079 (InteractiveShell.set_custom_completer): public API function to
2077 add new completers at runtime.
2080 add new completers at runtime.
2078
2081
2079 2005-03-19 Fernando Perez <fperez@colorado.edu>
2082 2005-03-19 Fernando Perez <fperez@colorado.edu>
2080
2083
2081 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2084 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2082 allow objects which provide their docstrings via non-standard
2085 allow objects which provide their docstrings via non-standard
2083 mechanisms (like Pyro proxies) to still be inspected by ipython's
2086 mechanisms (like Pyro proxies) to still be inspected by ipython's
2084 ? system.
2087 ? system.
2085
2088
2086 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2089 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2087 automatic capture system. I tried quite hard to make it work
2090 automatic capture system. I tried quite hard to make it work
2088 reliably, and simply failed. I tried many combinations with the
2091 reliably, and simply failed. I tried many combinations with the
2089 subprocess module, but eventually nothing worked in all needed
2092 subprocess module, but eventually nothing worked in all needed
2090 cases (not blocking stdin for the child, duplicating stdout
2093 cases (not blocking stdin for the child, duplicating stdout
2091 without blocking, etc). The new %sc/%sx still do capture to these
2094 without blocking, etc). The new %sc/%sx still do capture to these
2092 magical list/string objects which make shell use much more
2095 magical list/string objects which make shell use much more
2093 conveninent, so not all is lost.
2096 conveninent, so not all is lost.
2094
2097
2095 XXX - FIX MANUAL for the change above!
2098 XXX - FIX MANUAL for the change above!
2096
2099
2097 (runsource): I copied code.py's runsource() into ipython to modify
2100 (runsource): I copied code.py's runsource() into ipython to modify
2098 it a bit. Now the code object and source to be executed are
2101 it a bit. Now the code object and source to be executed are
2099 stored in ipython. This makes this info accessible to third-party
2102 stored in ipython. This makes this info accessible to third-party
2100 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2103 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2101 Mantegazza <mantegazza-AT-ill.fr>.
2104 Mantegazza <mantegazza-AT-ill.fr>.
2102
2105
2103 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2106 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2104 history-search via readline (like C-p/C-n). I'd wanted this for a
2107 history-search via readline (like C-p/C-n). I'd wanted this for a
2105 long time, but only recently found out how to do it. For users
2108 long time, but only recently found out how to do it. For users
2106 who already have their ipythonrc files made and want this, just
2109 who already have their ipythonrc files made and want this, just
2107 add:
2110 add:
2108
2111
2109 readline_parse_and_bind "\e[A": history-search-backward
2112 readline_parse_and_bind "\e[A": history-search-backward
2110 readline_parse_and_bind "\e[B": history-search-forward
2113 readline_parse_and_bind "\e[B": history-search-forward
2111
2114
2112 2005-03-18 Fernando Perez <fperez@colorado.edu>
2115 2005-03-18 Fernando Perez <fperez@colorado.edu>
2113
2116
2114 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2117 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2115 LSString and SList classes which allow transparent conversions
2118 LSString and SList classes which allow transparent conversions
2116 between list mode and whitespace-separated string.
2119 between list mode and whitespace-separated string.
2117 (magic_r): Fix recursion problem in %r.
2120 (magic_r): Fix recursion problem in %r.
2118
2121
2119 * IPython/genutils.py (LSString): New class to be used for
2122 * IPython/genutils.py (LSString): New class to be used for
2120 automatic storage of the results of all alias/system calls in _o
2123 automatic storage of the results of all alias/system calls in _o
2121 and _e (stdout/err). These provide a .l/.list attribute which
2124 and _e (stdout/err). These provide a .l/.list attribute which
2122 does automatic splitting on newlines. This means that for most
2125 does automatic splitting on newlines. This means that for most
2123 uses, you'll never need to do capturing of output with %sc/%sx
2126 uses, you'll never need to do capturing of output with %sc/%sx
2124 anymore, since ipython keeps this always done for you. Note that
2127 anymore, since ipython keeps this always done for you. Note that
2125 only the LAST results are stored, the _o/e variables are
2128 only the LAST results are stored, the _o/e variables are
2126 overwritten on each call. If you need to save their contents
2129 overwritten on each call. If you need to save their contents
2127 further, simply bind them to any other name.
2130 further, simply bind them to any other name.
2128
2131
2129 2005-03-17 Fernando Perez <fperez@colorado.edu>
2132 2005-03-17 Fernando Perez <fperez@colorado.edu>
2130
2133
2131 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2134 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2132 prompt namespace handling.
2135 prompt namespace handling.
2133
2136
2134 2005-03-16 Fernando Perez <fperez@colorado.edu>
2137 2005-03-16 Fernando Perez <fperez@colorado.edu>
2135
2138
2136 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2139 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2137 classic prompts to be '>>> ' (final space was missing, and it
2140 classic prompts to be '>>> ' (final space was missing, and it
2138 trips the emacs python mode).
2141 trips the emacs python mode).
2139 (BasePrompt.__str__): Added safe support for dynamic prompt
2142 (BasePrompt.__str__): Added safe support for dynamic prompt
2140 strings. Now you can set your prompt string to be '$x', and the
2143 strings. Now you can set your prompt string to be '$x', and the
2141 value of x will be printed from your interactive namespace. The
2144 value of x will be printed from your interactive namespace. The
2142 interpolation syntax includes the full Itpl support, so
2145 interpolation syntax includes the full Itpl support, so
2143 ${foo()+x+bar()} is a valid prompt string now, and the function
2146 ${foo()+x+bar()} is a valid prompt string now, and the function
2144 calls will be made at runtime.
2147 calls will be made at runtime.
2145
2148
2146 2005-03-15 Fernando Perez <fperez@colorado.edu>
2149 2005-03-15 Fernando Perez <fperez@colorado.edu>
2147
2150
2148 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2151 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2149 avoid name clashes in pylab. %hist still works, it just forwards
2152 avoid name clashes in pylab. %hist still works, it just forwards
2150 the call to %history.
2153 the call to %history.
2151
2154
2152 2005-03-02 *** Released version 0.6.12
2155 2005-03-02 *** Released version 0.6.12
2153
2156
2154 2005-03-02 Fernando Perez <fperez@colorado.edu>
2157 2005-03-02 Fernando Perez <fperez@colorado.edu>
2155
2158
2156 * IPython/iplib.py (handle_magic): log magic calls properly as
2159 * IPython/iplib.py (handle_magic): log magic calls properly as
2157 ipmagic() function calls.
2160 ipmagic() function calls.
2158
2161
2159 * IPython/Magic.py (magic_time): Improved %time to support
2162 * IPython/Magic.py (magic_time): Improved %time to support
2160 statements and provide wall-clock as well as CPU time.
2163 statements and provide wall-clock as well as CPU time.
2161
2164
2162 2005-02-27 Fernando Perez <fperez@colorado.edu>
2165 2005-02-27 Fernando Perez <fperez@colorado.edu>
2163
2166
2164 * IPython/hooks.py: New hooks module, to expose user-modifiable
2167 * IPython/hooks.py: New hooks module, to expose user-modifiable
2165 IPython functionality in a clean manner. For now only the editor
2168 IPython functionality in a clean manner. For now only the editor
2166 hook is actually written, and other thigns which I intend to turn
2169 hook is actually written, and other thigns which I intend to turn
2167 into proper hooks aren't yet there. The display and prefilter
2170 into proper hooks aren't yet there. The display and prefilter
2168 stuff, for example, should be hooks. But at least now the
2171 stuff, for example, should be hooks. But at least now the
2169 framework is in place, and the rest can be moved here with more
2172 framework is in place, and the rest can be moved here with more
2170 time later. IPython had had a .hooks variable for a long time for
2173 time later. IPython had had a .hooks variable for a long time for
2171 this purpose, but I'd never actually used it for anything.
2174 this purpose, but I'd never actually used it for anything.
2172
2175
2173 2005-02-26 Fernando Perez <fperez@colorado.edu>
2176 2005-02-26 Fernando Perez <fperez@colorado.edu>
2174
2177
2175 * IPython/ipmaker.py (make_IPython): make the default ipython
2178 * IPython/ipmaker.py (make_IPython): make the default ipython
2176 directory be called _ipython under win32, to follow more the
2179 directory be called _ipython under win32, to follow more the
2177 naming peculiarities of that platform (where buggy software like
2180 naming peculiarities of that platform (where buggy software like
2178 Visual Sourcesafe breaks with .named directories). Reported by
2181 Visual Sourcesafe breaks with .named directories). Reported by
2179 Ville Vainio.
2182 Ville Vainio.
2180
2183
2181 2005-02-23 Fernando Perez <fperez@colorado.edu>
2184 2005-02-23 Fernando Perez <fperez@colorado.edu>
2182
2185
2183 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2186 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2184 auto_aliases for win32 which were causing problems. Users can
2187 auto_aliases for win32 which were causing problems. Users can
2185 define the ones they personally like.
2188 define the ones they personally like.
2186
2189
2187 2005-02-21 Fernando Perez <fperez@colorado.edu>
2190 2005-02-21 Fernando Perez <fperez@colorado.edu>
2188
2191
2189 * IPython/Magic.py (magic_time): new magic to time execution of
2192 * IPython/Magic.py (magic_time): new magic to time execution of
2190 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2193 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2191
2194
2192 2005-02-19 Fernando Perez <fperez@colorado.edu>
2195 2005-02-19 Fernando Perez <fperez@colorado.edu>
2193
2196
2194 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2197 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2195 into keys (for prompts, for example).
2198 into keys (for prompts, for example).
2196
2199
2197 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2200 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2198 prompts in case users want them. This introduces a small behavior
2201 prompts in case users want them. This introduces a small behavior
2199 change: ipython does not automatically add a space to all prompts
2202 change: ipython does not automatically add a space to all prompts
2200 anymore. To get the old prompts with a space, users should add it
2203 anymore. To get the old prompts with a space, users should add it
2201 manually to their ipythonrc file, so for example prompt_in1 should
2204 manually to their ipythonrc file, so for example prompt_in1 should
2202 now read 'In [\#]: ' instead of 'In [\#]:'.
2205 now read 'In [\#]: ' instead of 'In [\#]:'.
2203 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2206 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2204 file) to control left-padding of secondary prompts.
2207 file) to control left-padding of secondary prompts.
2205
2208
2206 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2209 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2207 the profiler can't be imported. Fix for Debian, which removed
2210 the profiler can't be imported. Fix for Debian, which removed
2208 profile.py because of License issues. I applied a slightly
2211 profile.py because of License issues. I applied a slightly
2209 modified version of the original Debian patch at
2212 modified version of the original Debian patch at
2210 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2213 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2211
2214
2212 2005-02-17 Fernando Perez <fperez@colorado.edu>
2215 2005-02-17 Fernando Perez <fperez@colorado.edu>
2213
2216
2214 * IPython/genutils.py (native_line_ends): Fix bug which would
2217 * IPython/genutils.py (native_line_ends): Fix bug which would
2215 cause improper line-ends under win32 b/c I was not opening files
2218 cause improper line-ends under win32 b/c I was not opening files
2216 in binary mode. Bug report and fix thanks to Ville.
2219 in binary mode. Bug report and fix thanks to Ville.
2217
2220
2218 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2221 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2219 trying to catch spurious foo[1] autocalls. My fix actually broke
2222 trying to catch spurious foo[1] autocalls. My fix actually broke
2220 ',/' autoquote/call with explicit escape (bad regexp).
2223 ',/' autoquote/call with explicit escape (bad regexp).
2221
2224
2222 2005-02-15 *** Released version 0.6.11
2225 2005-02-15 *** Released version 0.6.11
2223
2226
2224 2005-02-14 Fernando Perez <fperez@colorado.edu>
2227 2005-02-14 Fernando Perez <fperez@colorado.edu>
2225
2228
2226 * IPython/background_jobs.py: New background job management
2229 * IPython/background_jobs.py: New background job management
2227 subsystem. This is implemented via a new set of classes, and
2230 subsystem. This is implemented via a new set of classes, and
2228 IPython now provides a builtin 'jobs' object for background job
2231 IPython now provides a builtin 'jobs' object for background job
2229 execution. A convenience %bg magic serves as a lightweight
2232 execution. A convenience %bg magic serves as a lightweight
2230 frontend for starting the more common type of calls. This was
2233 frontend for starting the more common type of calls. This was
2231 inspired by discussions with B. Granger and the BackgroundCommand
2234 inspired by discussions with B. Granger and the BackgroundCommand
2232 class described in the book Python Scripting for Computational
2235 class described in the book Python Scripting for Computational
2233 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2236 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2234 (although ultimately no code from this text was used, as IPython's
2237 (although ultimately no code from this text was used, as IPython's
2235 system is a separate implementation).
2238 system is a separate implementation).
2236
2239
2237 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2240 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2238 to control the completion of single/double underscore names
2241 to control the completion of single/double underscore names
2239 separately. As documented in the example ipytonrc file, the
2242 separately. As documented in the example ipytonrc file, the
2240 readline_omit__names variable can now be set to 2, to omit even
2243 readline_omit__names variable can now be set to 2, to omit even
2241 single underscore names. Thanks to a patch by Brian Wong
2244 single underscore names. Thanks to a patch by Brian Wong
2242 <BrianWong-AT-AirgoNetworks.Com>.
2245 <BrianWong-AT-AirgoNetworks.Com>.
2243 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2246 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2244 be autocalled as foo([1]) if foo were callable. A problem for
2247 be autocalled as foo([1]) if foo were callable. A problem for
2245 things which are both callable and implement __getitem__.
2248 things which are both callable and implement __getitem__.
2246 (init_readline): Fix autoindentation for win32. Thanks to a patch
2249 (init_readline): Fix autoindentation for win32. Thanks to a patch
2247 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2250 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2248
2251
2249 2005-02-12 Fernando Perez <fperez@colorado.edu>
2252 2005-02-12 Fernando Perez <fperez@colorado.edu>
2250
2253
2251 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2254 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2252 which I had written long ago to sort out user error messages which
2255 which I had written long ago to sort out user error messages which
2253 may occur during startup. This seemed like a good idea initially,
2256 may occur during startup. This seemed like a good idea initially,
2254 but it has proven a disaster in retrospect. I don't want to
2257 but it has proven a disaster in retrospect. I don't want to
2255 change much code for now, so my fix is to set the internal 'debug'
2258 change much code for now, so my fix is to set the internal 'debug'
2256 flag to true everywhere, whose only job was precisely to control
2259 flag to true everywhere, whose only job was precisely to control
2257 this subsystem. This closes issue 28 (as well as avoiding all
2260 this subsystem. This closes issue 28 (as well as avoiding all
2258 sorts of strange hangups which occur from time to time).
2261 sorts of strange hangups which occur from time to time).
2259
2262
2260 2005-02-07 Fernando Perez <fperez@colorado.edu>
2263 2005-02-07 Fernando Perez <fperez@colorado.edu>
2261
2264
2262 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2265 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2263 previous call produced a syntax error.
2266 previous call produced a syntax error.
2264
2267
2265 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2268 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2266 classes without constructor.
2269 classes without constructor.
2267
2270
2268 2005-02-06 Fernando Perez <fperez@colorado.edu>
2271 2005-02-06 Fernando Perez <fperez@colorado.edu>
2269
2272
2270 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2273 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2271 completions with the results of each matcher, so we return results
2274 completions with the results of each matcher, so we return results
2272 to the user from all namespaces. This breaks with ipython
2275 to the user from all namespaces. This breaks with ipython
2273 tradition, but I think it's a nicer behavior. Now you get all
2276 tradition, but I think it's a nicer behavior. Now you get all
2274 possible completions listed, from all possible namespaces (python,
2277 possible completions listed, from all possible namespaces (python,
2275 filesystem, magics...) After a request by John Hunter
2278 filesystem, magics...) After a request by John Hunter
2276 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2279 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2277
2280
2278 2005-02-05 Fernando Perez <fperez@colorado.edu>
2281 2005-02-05 Fernando Perez <fperez@colorado.edu>
2279
2282
2280 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2283 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2281 the call had quote characters in it (the quotes were stripped).
2284 the call had quote characters in it (the quotes were stripped).
2282
2285
2283 2005-01-31 Fernando Perez <fperez@colorado.edu>
2286 2005-01-31 Fernando Perez <fperez@colorado.edu>
2284
2287
2285 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2288 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2286 Itpl.itpl() to make the code more robust against psyco
2289 Itpl.itpl() to make the code more robust against psyco
2287 optimizations.
2290 optimizations.
2288
2291
2289 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2292 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2290 of causing an exception. Quicker, cleaner.
2293 of causing an exception. Quicker, cleaner.
2291
2294
2292 2005-01-28 Fernando Perez <fperez@colorado.edu>
2295 2005-01-28 Fernando Perez <fperez@colorado.edu>
2293
2296
2294 * scripts/ipython_win_post_install.py (install): hardcode
2297 * scripts/ipython_win_post_install.py (install): hardcode
2295 sys.prefix+'python.exe' as the executable path. It turns out that
2298 sys.prefix+'python.exe' as the executable path. It turns out that
2296 during the post-installation run, sys.executable resolves to the
2299 during the post-installation run, sys.executable resolves to the
2297 name of the binary installer! I should report this as a distutils
2300 name of the binary installer! I should report this as a distutils
2298 bug, I think. I updated the .10 release with this tiny fix, to
2301 bug, I think. I updated the .10 release with this tiny fix, to
2299 avoid annoying the lists further.
2302 avoid annoying the lists further.
2300
2303
2301 2005-01-27 *** Released version 0.6.10
2304 2005-01-27 *** Released version 0.6.10
2302
2305
2303 2005-01-27 Fernando Perez <fperez@colorado.edu>
2306 2005-01-27 Fernando Perez <fperez@colorado.edu>
2304
2307
2305 * IPython/numutils.py (norm): Added 'inf' as optional name for
2308 * IPython/numutils.py (norm): Added 'inf' as optional name for
2306 L-infinity norm, included references to mathworld.com for vector
2309 L-infinity norm, included references to mathworld.com for vector
2307 norm definitions.
2310 norm definitions.
2308 (amin/amax): added amin/amax for array min/max. Similar to what
2311 (amin/amax): added amin/amax for array min/max. Similar to what
2309 pylab ships with after the recent reorganization of names.
2312 pylab ships with after the recent reorganization of names.
2310 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2313 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2311
2314
2312 * ipython.el: committed Alex's recent fixes and improvements.
2315 * ipython.el: committed Alex's recent fixes and improvements.
2313 Tested with python-mode from CVS, and it looks excellent. Since
2316 Tested with python-mode from CVS, and it looks excellent. Since
2314 python-mode hasn't released anything in a while, I'm temporarily
2317 python-mode hasn't released anything in a while, I'm temporarily
2315 putting a copy of today's CVS (v 4.70) of python-mode in:
2318 putting a copy of today's CVS (v 4.70) of python-mode in:
2316 http://ipython.scipy.org/tmp/python-mode.el
2319 http://ipython.scipy.org/tmp/python-mode.el
2317
2320
2318 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2321 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2319 sys.executable for the executable name, instead of assuming it's
2322 sys.executable for the executable name, instead of assuming it's
2320 called 'python.exe' (the post-installer would have produced broken
2323 called 'python.exe' (the post-installer would have produced broken
2321 setups on systems with a differently named python binary).
2324 setups on systems with a differently named python binary).
2322
2325
2323 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2326 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2324 references to os.linesep, to make the code more
2327 references to os.linesep, to make the code more
2325 platform-independent. This is also part of the win32 coloring
2328 platform-independent. This is also part of the win32 coloring
2326 fixes.
2329 fixes.
2327
2330
2328 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2331 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2329 lines, which actually cause coloring bugs because the length of
2332 lines, which actually cause coloring bugs because the length of
2330 the line is very difficult to correctly compute with embedded
2333 the line is very difficult to correctly compute with embedded
2331 escapes. This was the source of all the coloring problems under
2334 escapes. This was the source of all the coloring problems under
2332 Win32. I think that _finally_, Win32 users have a properly
2335 Win32. I think that _finally_, Win32 users have a properly
2333 working ipython in all respects. This would never have happened
2336 working ipython in all respects. This would never have happened
2334 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2337 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2335
2338
2336 2005-01-26 *** Released version 0.6.9
2339 2005-01-26 *** Released version 0.6.9
2337
2340
2338 2005-01-25 Fernando Perez <fperez@colorado.edu>
2341 2005-01-25 Fernando Perez <fperez@colorado.edu>
2339
2342
2340 * setup.py: finally, we have a true Windows installer, thanks to
2343 * setup.py: finally, we have a true Windows installer, thanks to
2341 the excellent work of Viktor Ransmayr
2344 the excellent work of Viktor Ransmayr
2342 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2345 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2343 Windows users. The setup routine is quite a bit cleaner thanks to
2346 Windows users. The setup routine is quite a bit cleaner thanks to
2344 this, and the post-install script uses the proper functions to
2347 this, and the post-install script uses the proper functions to
2345 allow a clean de-installation using the standard Windows Control
2348 allow a clean de-installation using the standard Windows Control
2346 Panel.
2349 Panel.
2347
2350
2348 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2351 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2349 environment variable under all OSes (including win32) if
2352 environment variable under all OSes (including win32) if
2350 available. This will give consistency to win32 users who have set
2353 available. This will give consistency to win32 users who have set
2351 this variable for any reason. If os.environ['HOME'] fails, the
2354 this variable for any reason. If os.environ['HOME'] fails, the
2352 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2355 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2353
2356
2354 2005-01-24 Fernando Perez <fperez@colorado.edu>
2357 2005-01-24 Fernando Perez <fperez@colorado.edu>
2355
2358
2356 * IPython/numutils.py (empty_like): add empty_like(), similar to
2359 * IPython/numutils.py (empty_like): add empty_like(), similar to
2357 zeros_like() but taking advantage of the new empty() Numeric routine.
2360 zeros_like() but taking advantage of the new empty() Numeric routine.
2358
2361
2359 2005-01-23 *** Released version 0.6.8
2362 2005-01-23 *** Released version 0.6.8
2360
2363
2361 2005-01-22 Fernando Perez <fperez@colorado.edu>
2364 2005-01-22 Fernando Perez <fperez@colorado.edu>
2362
2365
2363 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2366 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2364 automatic show() calls. After discussing things with JDH, it
2367 automatic show() calls. After discussing things with JDH, it
2365 turns out there are too many corner cases where this can go wrong.
2368 turns out there are too many corner cases where this can go wrong.
2366 It's best not to try to be 'too smart', and simply have ipython
2369 It's best not to try to be 'too smart', and simply have ipython
2367 reproduce as much as possible the default behavior of a normal
2370 reproduce as much as possible the default behavior of a normal
2368 python shell.
2371 python shell.
2369
2372
2370 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2373 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2371 line-splitting regexp and _prefilter() to avoid calling getattr()
2374 line-splitting regexp and _prefilter() to avoid calling getattr()
2372 on assignments. This closes
2375 on assignments. This closes
2373 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2376 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2374 readline uses getattr(), so a simple <TAB> keypress is still
2377 readline uses getattr(), so a simple <TAB> keypress is still
2375 enough to trigger getattr() calls on an object.
2378 enough to trigger getattr() calls on an object.
2376
2379
2377 2005-01-21 Fernando Perez <fperez@colorado.edu>
2380 2005-01-21 Fernando Perez <fperez@colorado.edu>
2378
2381
2379 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2382 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2380 docstring under pylab so it doesn't mask the original.
2383 docstring under pylab so it doesn't mask the original.
2381
2384
2382 2005-01-21 *** Released version 0.6.7
2385 2005-01-21 *** Released version 0.6.7
2383
2386
2384 2005-01-21 Fernando Perez <fperez@colorado.edu>
2387 2005-01-21 Fernando Perez <fperez@colorado.edu>
2385
2388
2386 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2389 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2387 signal handling for win32 users in multithreaded mode.
2390 signal handling for win32 users in multithreaded mode.
2388
2391
2389 2005-01-17 Fernando Perez <fperez@colorado.edu>
2392 2005-01-17 Fernando Perez <fperez@colorado.edu>
2390
2393
2391 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2394 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2392 instances with no __init__. After a crash report by Norbert Nemec
2395 instances with no __init__. After a crash report by Norbert Nemec
2393 <Norbert-AT-nemec-online.de>.
2396 <Norbert-AT-nemec-online.de>.
2394
2397
2395 2005-01-14 Fernando Perez <fperez@colorado.edu>
2398 2005-01-14 Fernando Perez <fperez@colorado.edu>
2396
2399
2397 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2400 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2398 names for verbose exceptions, when multiple dotted names and the
2401 names for verbose exceptions, when multiple dotted names and the
2399 'parent' object were present on the same line.
2402 'parent' object were present on the same line.
2400
2403
2401 2005-01-11 Fernando Perez <fperez@colorado.edu>
2404 2005-01-11 Fernando Perez <fperez@colorado.edu>
2402
2405
2403 * IPython/genutils.py (flag_calls): new utility to trap and flag
2406 * IPython/genutils.py (flag_calls): new utility to trap and flag
2404 calls in functions. I need it to clean up matplotlib support.
2407 calls in functions. I need it to clean up matplotlib support.
2405 Also removed some deprecated code in genutils.
2408 Also removed some deprecated code in genutils.
2406
2409
2407 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2410 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2408 that matplotlib scripts called with %run, which don't call show()
2411 that matplotlib scripts called with %run, which don't call show()
2409 themselves, still have their plotting windows open.
2412 themselves, still have their plotting windows open.
2410
2413
2411 2005-01-05 Fernando Perez <fperez@colorado.edu>
2414 2005-01-05 Fernando Perez <fperez@colorado.edu>
2412
2415
2413 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2416 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2414 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2417 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2415
2418
2416 2004-12-19 Fernando Perez <fperez@colorado.edu>
2419 2004-12-19 Fernando Perez <fperez@colorado.edu>
2417
2420
2418 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2421 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2419 parent_runcode, which was an eyesore. The same result can be
2422 parent_runcode, which was an eyesore. The same result can be
2420 obtained with Python's regular superclass mechanisms.
2423 obtained with Python's regular superclass mechanisms.
2421
2424
2422 2004-12-17 Fernando Perez <fperez@colorado.edu>
2425 2004-12-17 Fernando Perez <fperez@colorado.edu>
2423
2426
2424 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2427 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2425 reported by Prabhu.
2428 reported by Prabhu.
2426 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2429 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2427 sys.stderr) instead of explicitly calling sys.stderr. This helps
2430 sys.stderr) instead of explicitly calling sys.stderr. This helps
2428 maintain our I/O abstractions clean, for future GUI embeddings.
2431 maintain our I/O abstractions clean, for future GUI embeddings.
2429
2432
2430 * IPython/genutils.py (info): added new utility for sys.stderr
2433 * IPython/genutils.py (info): added new utility for sys.stderr
2431 unified info message handling (thin wrapper around warn()).
2434 unified info message handling (thin wrapper around warn()).
2432
2435
2433 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2436 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2434 composite (dotted) names on verbose exceptions.
2437 composite (dotted) names on verbose exceptions.
2435 (VerboseTB.nullrepr): harden against another kind of errors which
2438 (VerboseTB.nullrepr): harden against another kind of errors which
2436 Python's inspect module can trigger, and which were crashing
2439 Python's inspect module can trigger, and which were crashing
2437 IPython. Thanks to a report by Marco Lombardi
2440 IPython. Thanks to a report by Marco Lombardi
2438 <mlombard-AT-ma010192.hq.eso.org>.
2441 <mlombard-AT-ma010192.hq.eso.org>.
2439
2442
2440 2004-12-13 *** Released version 0.6.6
2443 2004-12-13 *** Released version 0.6.6
2441
2444
2442 2004-12-12 Fernando Perez <fperez@colorado.edu>
2445 2004-12-12 Fernando Perez <fperez@colorado.edu>
2443
2446
2444 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2447 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2445 generated by pygtk upon initialization if it was built without
2448 generated by pygtk upon initialization if it was built without
2446 threads (for matplotlib users). After a crash reported by
2449 threads (for matplotlib users). After a crash reported by
2447 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2450 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2448
2451
2449 * IPython/ipmaker.py (make_IPython): fix small bug in the
2452 * IPython/ipmaker.py (make_IPython): fix small bug in the
2450 import_some parameter for multiple imports.
2453 import_some parameter for multiple imports.
2451
2454
2452 * IPython/iplib.py (ipmagic): simplified the interface of
2455 * IPython/iplib.py (ipmagic): simplified the interface of
2453 ipmagic() to take a single string argument, just as it would be
2456 ipmagic() to take a single string argument, just as it would be
2454 typed at the IPython cmd line.
2457 typed at the IPython cmd line.
2455 (ipalias): Added new ipalias() with an interface identical to
2458 (ipalias): Added new ipalias() with an interface identical to
2456 ipmagic(). This completes exposing a pure python interface to the
2459 ipmagic(). This completes exposing a pure python interface to the
2457 alias and magic system, which can be used in loops or more complex
2460 alias and magic system, which can be used in loops or more complex
2458 code where IPython's automatic line mangling is not active.
2461 code where IPython's automatic line mangling is not active.
2459
2462
2460 * IPython/genutils.py (timing): changed interface of timing to
2463 * IPython/genutils.py (timing): changed interface of timing to
2461 simply run code once, which is the most common case. timings()
2464 simply run code once, which is the most common case. timings()
2462 remains unchanged, for the cases where you want multiple runs.
2465 remains unchanged, for the cases where you want multiple runs.
2463
2466
2464 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2467 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2465 bug where Python2.2 crashes with exec'ing code which does not end
2468 bug where Python2.2 crashes with exec'ing code which does not end
2466 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2469 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2467 before.
2470 before.
2468
2471
2469 2004-12-10 Fernando Perez <fperez@colorado.edu>
2472 2004-12-10 Fernando Perez <fperez@colorado.edu>
2470
2473
2471 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2474 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2472 -t to -T, to accomodate the new -t flag in %run (the %run and
2475 -t to -T, to accomodate the new -t flag in %run (the %run and
2473 %prun options are kind of intermixed, and it's not easy to change
2476 %prun options are kind of intermixed, and it's not easy to change
2474 this with the limitations of python's getopt).
2477 this with the limitations of python's getopt).
2475
2478
2476 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2479 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2477 the execution of scripts. It's not as fine-tuned as timeit.py,
2480 the execution of scripts. It's not as fine-tuned as timeit.py,
2478 but it works from inside ipython (and under 2.2, which lacks
2481 but it works from inside ipython (and under 2.2, which lacks
2479 timeit.py). Optionally a number of runs > 1 can be given for
2482 timeit.py). Optionally a number of runs > 1 can be given for
2480 timing very short-running code.
2483 timing very short-running code.
2481
2484
2482 * IPython/genutils.py (uniq_stable): new routine which returns a
2485 * IPython/genutils.py (uniq_stable): new routine which returns a
2483 list of unique elements in any iterable, but in stable order of
2486 list of unique elements in any iterable, but in stable order of
2484 appearance. I needed this for the ultraTB fixes, and it's a handy
2487 appearance. I needed this for the ultraTB fixes, and it's a handy
2485 utility.
2488 utility.
2486
2489
2487 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2490 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2488 dotted names in Verbose exceptions. This had been broken since
2491 dotted names in Verbose exceptions. This had been broken since
2489 the very start, now x.y will properly be printed in a Verbose
2492 the very start, now x.y will properly be printed in a Verbose
2490 traceback, instead of x being shown and y appearing always as an
2493 traceback, instead of x being shown and y appearing always as an
2491 'undefined global'. Getting this to work was a bit tricky,
2494 'undefined global'. Getting this to work was a bit tricky,
2492 because by default python tokenizers are stateless. Saved by
2495 because by default python tokenizers are stateless. Saved by
2493 python's ability to easily add a bit of state to an arbitrary
2496 python's ability to easily add a bit of state to an arbitrary
2494 function (without needing to build a full-blown callable object).
2497 function (without needing to build a full-blown callable object).
2495
2498
2496 Also big cleanup of this code, which had horrendous runtime
2499 Also big cleanup of this code, which had horrendous runtime
2497 lookups of zillions of attributes for colorization. Moved all
2500 lookups of zillions of attributes for colorization. Moved all
2498 this code into a few templates, which make it cleaner and quicker.
2501 this code into a few templates, which make it cleaner and quicker.
2499
2502
2500 Printout quality was also improved for Verbose exceptions: one
2503 Printout quality was also improved for Verbose exceptions: one
2501 variable per line, and memory addresses are printed (this can be
2504 variable per line, and memory addresses are printed (this can be
2502 quite handy in nasty debugging situations, which is what Verbose
2505 quite handy in nasty debugging situations, which is what Verbose
2503 is for).
2506 is for).
2504
2507
2505 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2508 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2506 the command line as scripts to be loaded by embedded instances.
2509 the command line as scripts to be loaded by embedded instances.
2507 Doing so has the potential for an infinite recursion if there are
2510 Doing so has the potential for an infinite recursion if there are
2508 exceptions thrown in the process. This fixes a strange crash
2511 exceptions thrown in the process. This fixes a strange crash
2509 reported by Philippe MULLER <muller-AT-irit.fr>.
2512 reported by Philippe MULLER <muller-AT-irit.fr>.
2510
2513
2511 2004-12-09 Fernando Perez <fperez@colorado.edu>
2514 2004-12-09 Fernando Perez <fperez@colorado.edu>
2512
2515
2513 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2516 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2514 to reflect new names in matplotlib, which now expose the
2517 to reflect new names in matplotlib, which now expose the
2515 matlab-compatible interface via a pylab module instead of the
2518 matlab-compatible interface via a pylab module instead of the
2516 'matlab' name. The new code is backwards compatible, so users of
2519 'matlab' name. The new code is backwards compatible, so users of
2517 all matplotlib versions are OK. Patch by J. Hunter.
2520 all matplotlib versions are OK. Patch by J. Hunter.
2518
2521
2519 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2522 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2520 of __init__ docstrings for instances (class docstrings are already
2523 of __init__ docstrings for instances (class docstrings are already
2521 automatically printed). Instances with customized docstrings
2524 automatically printed). Instances with customized docstrings
2522 (indep. of the class) are also recognized and all 3 separate
2525 (indep. of the class) are also recognized and all 3 separate
2523 docstrings are printed (instance, class, constructor). After some
2526 docstrings are printed (instance, class, constructor). After some
2524 comments/suggestions by J. Hunter.
2527 comments/suggestions by J. Hunter.
2525
2528
2526 2004-12-05 Fernando Perez <fperez@colorado.edu>
2529 2004-12-05 Fernando Perez <fperez@colorado.edu>
2527
2530
2528 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2531 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2529 warnings when tab-completion fails and triggers an exception.
2532 warnings when tab-completion fails and triggers an exception.
2530
2533
2531 2004-12-03 Fernando Perez <fperez@colorado.edu>
2534 2004-12-03 Fernando Perez <fperez@colorado.edu>
2532
2535
2533 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2536 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2534 be triggered when using 'run -p'. An incorrect option flag was
2537 be triggered when using 'run -p'. An incorrect option flag was
2535 being set ('d' instead of 'D').
2538 being set ('d' instead of 'D').
2536 (manpage): fix missing escaped \- sign.
2539 (manpage): fix missing escaped \- sign.
2537
2540
2538 2004-11-30 *** Released version 0.6.5
2541 2004-11-30 *** Released version 0.6.5
2539
2542
2540 2004-11-30 Fernando Perez <fperez@colorado.edu>
2543 2004-11-30 Fernando Perez <fperez@colorado.edu>
2541
2544
2542 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2545 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2543 setting with -d option.
2546 setting with -d option.
2544
2547
2545 * setup.py (docfiles): Fix problem where the doc glob I was using
2548 * setup.py (docfiles): Fix problem where the doc glob I was using
2546 was COMPLETELY BROKEN. It was giving the right files by pure
2549 was COMPLETELY BROKEN. It was giving the right files by pure
2547 accident, but failed once I tried to include ipython.el. Note:
2550 accident, but failed once I tried to include ipython.el. Note:
2548 glob() does NOT allow you to do exclusion on multiple endings!
2551 glob() does NOT allow you to do exclusion on multiple endings!
2549
2552
2550 2004-11-29 Fernando Perez <fperez@colorado.edu>
2553 2004-11-29 Fernando Perez <fperez@colorado.edu>
2551
2554
2552 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2555 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2553 the manpage as the source. Better formatting & consistency.
2556 the manpage as the source. Better formatting & consistency.
2554
2557
2555 * IPython/Magic.py (magic_run): Added new -d option, to run
2558 * IPython/Magic.py (magic_run): Added new -d option, to run
2556 scripts under the control of the python pdb debugger. Note that
2559 scripts under the control of the python pdb debugger. Note that
2557 this required changing the %prun option -d to -D, to avoid a clash
2560 this required changing the %prun option -d to -D, to avoid a clash
2558 (since %run must pass options to %prun, and getopt is too dumb to
2561 (since %run must pass options to %prun, and getopt is too dumb to
2559 handle options with string values with embedded spaces). Thanks
2562 handle options with string values with embedded spaces). Thanks
2560 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2563 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2561 (magic_who_ls): added type matching to %who and %whos, so that one
2564 (magic_who_ls): added type matching to %who and %whos, so that one
2562 can filter their output to only include variables of certain
2565 can filter their output to only include variables of certain
2563 types. Another suggestion by Matthew.
2566 types. Another suggestion by Matthew.
2564 (magic_whos): Added memory summaries in kb and Mb for arrays.
2567 (magic_whos): Added memory summaries in kb and Mb for arrays.
2565 (magic_who): Improve formatting (break lines every 9 vars).
2568 (magic_who): Improve formatting (break lines every 9 vars).
2566
2569
2567 2004-11-28 Fernando Perez <fperez@colorado.edu>
2570 2004-11-28 Fernando Perez <fperez@colorado.edu>
2568
2571
2569 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2572 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2570 cache when empty lines were present.
2573 cache when empty lines were present.
2571
2574
2572 2004-11-24 Fernando Perez <fperez@colorado.edu>
2575 2004-11-24 Fernando Perez <fperez@colorado.edu>
2573
2576
2574 * IPython/usage.py (__doc__): document the re-activated threading
2577 * IPython/usage.py (__doc__): document the re-activated threading
2575 options for WX and GTK.
2578 options for WX and GTK.
2576
2579
2577 2004-11-23 Fernando Perez <fperez@colorado.edu>
2580 2004-11-23 Fernando Perez <fperez@colorado.edu>
2578
2581
2579 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2582 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2580 the -wthread and -gthread options, along with a new -tk one to try
2583 the -wthread and -gthread options, along with a new -tk one to try
2581 and coordinate Tk threading with wx/gtk. The tk support is very
2584 and coordinate Tk threading with wx/gtk. The tk support is very
2582 platform dependent, since it seems to require Tcl and Tk to be
2585 platform dependent, since it seems to require Tcl and Tk to be
2583 built with threads (Fedora1/2 appears NOT to have it, but in
2586 built with threads (Fedora1/2 appears NOT to have it, but in
2584 Prabhu's Debian boxes it works OK). But even with some Tk
2587 Prabhu's Debian boxes it works OK). But even with some Tk
2585 limitations, this is a great improvement.
2588 limitations, this is a great improvement.
2586
2589
2587 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2590 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2588 info in user prompts. Patch by Prabhu.
2591 info in user prompts. Patch by Prabhu.
2589
2592
2590 2004-11-18 Fernando Perez <fperez@colorado.edu>
2593 2004-11-18 Fernando Perez <fperez@colorado.edu>
2591
2594
2592 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2595 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2593 EOFErrors and bail, to avoid infinite loops if a non-terminating
2596 EOFErrors and bail, to avoid infinite loops if a non-terminating
2594 file is fed into ipython. Patch submitted in issue 19 by user,
2597 file is fed into ipython. Patch submitted in issue 19 by user,
2595 many thanks.
2598 many thanks.
2596
2599
2597 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2600 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2598 autoquote/parens in continuation prompts, which can cause lots of
2601 autoquote/parens in continuation prompts, which can cause lots of
2599 problems. Closes roundup issue 20.
2602 problems. Closes roundup issue 20.
2600
2603
2601 2004-11-17 Fernando Perez <fperez@colorado.edu>
2604 2004-11-17 Fernando Perez <fperez@colorado.edu>
2602
2605
2603 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2606 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2604 reported as debian bug #280505. I'm not sure my local changelog
2607 reported as debian bug #280505. I'm not sure my local changelog
2605 entry has the proper debian format (Jack?).
2608 entry has the proper debian format (Jack?).
2606
2609
2607 2004-11-08 *** Released version 0.6.4
2610 2004-11-08 *** Released version 0.6.4
2608
2611
2609 2004-11-08 Fernando Perez <fperez@colorado.edu>
2612 2004-11-08 Fernando Perez <fperez@colorado.edu>
2610
2613
2611 * IPython/iplib.py (init_readline): Fix exit message for Windows
2614 * IPython/iplib.py (init_readline): Fix exit message for Windows
2612 when readline is active. Thanks to a report by Eric Jones
2615 when readline is active. Thanks to a report by Eric Jones
2613 <eric-AT-enthought.com>.
2616 <eric-AT-enthought.com>.
2614
2617
2615 2004-11-07 Fernando Perez <fperez@colorado.edu>
2618 2004-11-07 Fernando Perez <fperez@colorado.edu>
2616
2619
2617 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2620 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2618 sometimes seen by win2k/cygwin users.
2621 sometimes seen by win2k/cygwin users.
2619
2622
2620 2004-11-06 Fernando Perez <fperez@colorado.edu>
2623 2004-11-06 Fernando Perez <fperez@colorado.edu>
2621
2624
2622 * IPython/iplib.py (interact): Change the handling of %Exit from
2625 * IPython/iplib.py (interact): Change the handling of %Exit from
2623 trying to propagate a SystemExit to an internal ipython flag.
2626 trying to propagate a SystemExit to an internal ipython flag.
2624 This is less elegant than using Python's exception mechanism, but
2627 This is less elegant than using Python's exception mechanism, but
2625 I can't get that to work reliably with threads, so under -pylab
2628 I can't get that to work reliably with threads, so under -pylab
2626 %Exit was hanging IPython. Cross-thread exception handling is
2629 %Exit was hanging IPython. Cross-thread exception handling is
2627 really a bitch. Thaks to a bug report by Stephen Walton
2630 really a bitch. Thaks to a bug report by Stephen Walton
2628 <stephen.walton-AT-csun.edu>.
2631 <stephen.walton-AT-csun.edu>.
2629
2632
2630 2004-11-04 Fernando Perez <fperez@colorado.edu>
2633 2004-11-04 Fernando Perez <fperez@colorado.edu>
2631
2634
2632 * IPython/iplib.py (raw_input_original): store a pointer to the
2635 * IPython/iplib.py (raw_input_original): store a pointer to the
2633 true raw_input to harden against code which can modify it
2636 true raw_input to harden against code which can modify it
2634 (wx.py.PyShell does this and would otherwise crash ipython).
2637 (wx.py.PyShell does this and would otherwise crash ipython).
2635 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2638 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2636
2639
2637 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2640 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2638 Ctrl-C problem, which does not mess up the input line.
2641 Ctrl-C problem, which does not mess up the input line.
2639
2642
2640 2004-11-03 Fernando Perez <fperez@colorado.edu>
2643 2004-11-03 Fernando Perez <fperez@colorado.edu>
2641
2644
2642 * IPython/Release.py: Changed licensing to BSD, in all files.
2645 * IPython/Release.py: Changed licensing to BSD, in all files.
2643 (name): lowercase name for tarball/RPM release.
2646 (name): lowercase name for tarball/RPM release.
2644
2647
2645 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2648 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2646 use throughout ipython.
2649 use throughout ipython.
2647
2650
2648 * IPython/Magic.py (Magic._ofind): Switch to using the new
2651 * IPython/Magic.py (Magic._ofind): Switch to using the new
2649 OInspect.getdoc() function.
2652 OInspect.getdoc() function.
2650
2653
2651 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2654 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2652 of the line currently being canceled via Ctrl-C. It's extremely
2655 of the line currently being canceled via Ctrl-C. It's extremely
2653 ugly, but I don't know how to do it better (the problem is one of
2656 ugly, but I don't know how to do it better (the problem is one of
2654 handling cross-thread exceptions).
2657 handling cross-thread exceptions).
2655
2658
2656 2004-10-28 Fernando Perez <fperez@colorado.edu>
2659 2004-10-28 Fernando Perez <fperez@colorado.edu>
2657
2660
2658 * IPython/Shell.py (signal_handler): add signal handlers to trap
2661 * IPython/Shell.py (signal_handler): add signal handlers to trap
2659 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2662 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2660 report by Francesc Alted.
2663 report by Francesc Alted.
2661
2664
2662 2004-10-21 Fernando Perez <fperez@colorado.edu>
2665 2004-10-21 Fernando Perez <fperez@colorado.edu>
2663
2666
2664 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2667 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2665 to % for pysh syntax extensions.
2668 to % for pysh syntax extensions.
2666
2669
2667 2004-10-09 Fernando Perez <fperez@colorado.edu>
2670 2004-10-09 Fernando Perez <fperez@colorado.edu>
2668
2671
2669 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2672 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2670 arrays to print a more useful summary, without calling str(arr).
2673 arrays to print a more useful summary, without calling str(arr).
2671 This avoids the problem of extremely lengthy computations which
2674 This avoids the problem of extremely lengthy computations which
2672 occur if arr is large, and appear to the user as a system lockup
2675 occur if arr is large, and appear to the user as a system lockup
2673 with 100% cpu activity. After a suggestion by Kristian Sandberg
2676 with 100% cpu activity. After a suggestion by Kristian Sandberg
2674 <Kristian.Sandberg@colorado.edu>.
2677 <Kristian.Sandberg@colorado.edu>.
2675 (Magic.__init__): fix bug in global magic escapes not being
2678 (Magic.__init__): fix bug in global magic escapes not being
2676 correctly set.
2679 correctly set.
2677
2680
2678 2004-10-08 Fernando Perez <fperez@colorado.edu>
2681 2004-10-08 Fernando Perez <fperez@colorado.edu>
2679
2682
2680 * IPython/Magic.py (__license__): change to absolute imports of
2683 * IPython/Magic.py (__license__): change to absolute imports of
2681 ipython's own internal packages, to start adapting to the absolute
2684 ipython's own internal packages, to start adapting to the absolute
2682 import requirement of PEP-328.
2685 import requirement of PEP-328.
2683
2686
2684 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2687 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2685 files, and standardize author/license marks through the Release
2688 files, and standardize author/license marks through the Release
2686 module instead of having per/file stuff (except for files with
2689 module instead of having per/file stuff (except for files with
2687 particular licenses, like the MIT/PSF-licensed codes).
2690 particular licenses, like the MIT/PSF-licensed codes).
2688
2691
2689 * IPython/Debugger.py: remove dead code for python 2.1
2692 * IPython/Debugger.py: remove dead code for python 2.1
2690
2693
2691 2004-10-04 Fernando Perez <fperez@colorado.edu>
2694 2004-10-04 Fernando Perez <fperez@colorado.edu>
2692
2695
2693 * IPython/iplib.py (ipmagic): New function for accessing magics
2696 * IPython/iplib.py (ipmagic): New function for accessing magics
2694 via a normal python function call.
2697 via a normal python function call.
2695
2698
2696 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2699 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2697 from '@' to '%', to accomodate the new @decorator syntax of python
2700 from '@' to '%', to accomodate the new @decorator syntax of python
2698 2.4.
2701 2.4.
2699
2702
2700 2004-09-29 Fernando Perez <fperez@colorado.edu>
2703 2004-09-29 Fernando Perez <fperez@colorado.edu>
2701
2704
2702 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2705 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2703 matplotlib.use to prevent running scripts which try to switch
2706 matplotlib.use to prevent running scripts which try to switch
2704 interactive backends from within ipython. This will just crash
2707 interactive backends from within ipython. This will just crash
2705 the python interpreter, so we can't allow it (but a detailed error
2708 the python interpreter, so we can't allow it (but a detailed error
2706 is given to the user).
2709 is given to the user).
2707
2710
2708 2004-09-28 Fernando Perez <fperez@colorado.edu>
2711 2004-09-28 Fernando Perez <fperez@colorado.edu>
2709
2712
2710 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2713 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2711 matplotlib-related fixes so that using @run with non-matplotlib
2714 matplotlib-related fixes so that using @run with non-matplotlib
2712 scripts doesn't pop up spurious plot windows. This requires
2715 scripts doesn't pop up spurious plot windows. This requires
2713 matplotlib >= 0.63, where I had to make some changes as well.
2716 matplotlib >= 0.63, where I had to make some changes as well.
2714
2717
2715 * IPython/ipmaker.py (make_IPython): update version requirement to
2718 * IPython/ipmaker.py (make_IPython): update version requirement to
2716 python 2.2.
2719 python 2.2.
2717
2720
2718 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2721 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2719 banner arg for embedded customization.
2722 banner arg for embedded customization.
2720
2723
2721 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2724 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2722 explicit uses of __IP as the IPython's instance name. Now things
2725 explicit uses of __IP as the IPython's instance name. Now things
2723 are properly handled via the shell.name value. The actual code
2726 are properly handled via the shell.name value. The actual code
2724 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2727 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2725 is much better than before. I'll clean things completely when the
2728 is much better than before. I'll clean things completely when the
2726 magic stuff gets a real overhaul.
2729 magic stuff gets a real overhaul.
2727
2730
2728 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2731 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2729 minor changes to debian dir.
2732 minor changes to debian dir.
2730
2733
2731 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2734 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2732 pointer to the shell itself in the interactive namespace even when
2735 pointer to the shell itself in the interactive namespace even when
2733 a user-supplied dict is provided. This is needed for embedding
2736 a user-supplied dict is provided. This is needed for embedding
2734 purposes (found by tests with Michel Sanner).
2737 purposes (found by tests with Michel Sanner).
2735
2738
2736 2004-09-27 Fernando Perez <fperez@colorado.edu>
2739 2004-09-27 Fernando Perez <fperez@colorado.edu>
2737
2740
2738 * IPython/UserConfig/ipythonrc: remove []{} from
2741 * IPython/UserConfig/ipythonrc: remove []{} from
2739 readline_remove_delims, so that things like [modname.<TAB> do
2742 readline_remove_delims, so that things like [modname.<TAB> do
2740 proper completion. This disables [].TAB, but that's a less common
2743 proper completion. This disables [].TAB, but that's a less common
2741 case than module names in list comprehensions, for example.
2744 case than module names in list comprehensions, for example.
2742 Thanks to a report by Andrea Riciputi.
2745 Thanks to a report by Andrea Riciputi.
2743
2746
2744 2004-09-09 Fernando Perez <fperez@colorado.edu>
2747 2004-09-09 Fernando Perez <fperez@colorado.edu>
2745
2748
2746 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2749 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2747 blocking problems in win32 and osx. Fix by John.
2750 blocking problems in win32 and osx. Fix by John.
2748
2751
2749 2004-09-08 Fernando Perez <fperez@colorado.edu>
2752 2004-09-08 Fernando Perez <fperez@colorado.edu>
2750
2753
2751 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2754 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2752 for Win32 and OSX. Fix by John Hunter.
2755 for Win32 and OSX. Fix by John Hunter.
2753
2756
2754 2004-08-30 *** Released version 0.6.3
2757 2004-08-30 *** Released version 0.6.3
2755
2758
2756 2004-08-30 Fernando Perez <fperez@colorado.edu>
2759 2004-08-30 Fernando Perez <fperez@colorado.edu>
2757
2760
2758 * setup.py (isfile): Add manpages to list of dependent files to be
2761 * setup.py (isfile): Add manpages to list of dependent files to be
2759 updated.
2762 updated.
2760
2763
2761 2004-08-27 Fernando Perez <fperez@colorado.edu>
2764 2004-08-27 Fernando Perez <fperez@colorado.edu>
2762
2765
2763 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2766 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2764 for now. They don't really work with standalone WX/GTK code
2767 for now. They don't really work with standalone WX/GTK code
2765 (though matplotlib IS working fine with both of those backends).
2768 (though matplotlib IS working fine with both of those backends).
2766 This will neeed much more testing. I disabled most things with
2769 This will neeed much more testing. I disabled most things with
2767 comments, so turning it back on later should be pretty easy.
2770 comments, so turning it back on later should be pretty easy.
2768
2771
2769 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2772 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2770 autocalling of expressions like r'foo', by modifying the line
2773 autocalling of expressions like r'foo', by modifying the line
2771 split regexp. Closes
2774 split regexp. Closes
2772 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2775 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2773 Riley <ipythonbugs-AT-sabi.net>.
2776 Riley <ipythonbugs-AT-sabi.net>.
2774 (InteractiveShell.mainloop): honor --nobanner with banner
2777 (InteractiveShell.mainloop): honor --nobanner with banner
2775 extensions.
2778 extensions.
2776
2779
2777 * IPython/Shell.py: Significant refactoring of all classes, so
2780 * IPython/Shell.py: Significant refactoring of all classes, so
2778 that we can really support ALL matplotlib backends and threading
2781 that we can really support ALL matplotlib backends and threading
2779 models (John spotted a bug with Tk which required this). Now we
2782 models (John spotted a bug with Tk which required this). Now we
2780 should support single-threaded, WX-threads and GTK-threads, both
2783 should support single-threaded, WX-threads and GTK-threads, both
2781 for generic code and for matplotlib.
2784 for generic code and for matplotlib.
2782
2785
2783 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2786 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2784 -pylab, to simplify things for users. Will also remove the pylab
2787 -pylab, to simplify things for users. Will also remove the pylab
2785 profile, since now all of matplotlib configuration is directly
2788 profile, since now all of matplotlib configuration is directly
2786 handled here. This also reduces startup time.
2789 handled here. This also reduces startup time.
2787
2790
2788 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2791 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2789 shell wasn't being correctly called. Also in IPShellWX.
2792 shell wasn't being correctly called. Also in IPShellWX.
2790
2793
2791 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2794 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2792 fine-tune banner.
2795 fine-tune banner.
2793
2796
2794 * IPython/numutils.py (spike): Deprecate these spike functions,
2797 * IPython/numutils.py (spike): Deprecate these spike functions,
2795 delete (long deprecated) gnuplot_exec handler.
2798 delete (long deprecated) gnuplot_exec handler.
2796
2799
2797 2004-08-26 Fernando Perez <fperez@colorado.edu>
2800 2004-08-26 Fernando Perez <fperez@colorado.edu>
2798
2801
2799 * ipython.1: Update for threading options, plus some others which
2802 * ipython.1: Update for threading options, plus some others which
2800 were missing.
2803 were missing.
2801
2804
2802 * IPython/ipmaker.py (__call__): Added -wthread option for
2805 * IPython/ipmaker.py (__call__): Added -wthread option for
2803 wxpython thread handling. Make sure threading options are only
2806 wxpython thread handling. Make sure threading options are only
2804 valid at the command line.
2807 valid at the command line.
2805
2808
2806 * scripts/ipython: moved shell selection into a factory function
2809 * scripts/ipython: moved shell selection into a factory function
2807 in Shell.py, to keep the starter script to a minimum.
2810 in Shell.py, to keep the starter script to a minimum.
2808
2811
2809 2004-08-25 Fernando Perez <fperez@colorado.edu>
2812 2004-08-25 Fernando Perez <fperez@colorado.edu>
2810
2813
2811 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2814 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2812 John. Along with some recent changes he made to matplotlib, the
2815 John. Along with some recent changes he made to matplotlib, the
2813 next versions of both systems should work very well together.
2816 next versions of both systems should work very well together.
2814
2817
2815 2004-08-24 Fernando Perez <fperez@colorado.edu>
2818 2004-08-24 Fernando Perez <fperez@colorado.edu>
2816
2819
2817 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2820 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2818 tried to switch the profiling to using hotshot, but I'm getting
2821 tried to switch the profiling to using hotshot, but I'm getting
2819 strange errors from prof.runctx() there. I may be misreading the
2822 strange errors from prof.runctx() there. I may be misreading the
2820 docs, but it looks weird. For now the profiling code will
2823 docs, but it looks weird. For now the profiling code will
2821 continue to use the standard profiler.
2824 continue to use the standard profiler.
2822
2825
2823 2004-08-23 Fernando Perez <fperez@colorado.edu>
2826 2004-08-23 Fernando Perez <fperez@colorado.edu>
2824
2827
2825 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2828 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2826 threaded shell, by John Hunter. It's not quite ready yet, but
2829 threaded shell, by John Hunter. It's not quite ready yet, but
2827 close.
2830 close.
2828
2831
2829 2004-08-22 Fernando Perez <fperez@colorado.edu>
2832 2004-08-22 Fernando Perez <fperez@colorado.edu>
2830
2833
2831 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2834 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2832 in Magic and ultraTB.
2835 in Magic and ultraTB.
2833
2836
2834 * ipython.1: document threading options in manpage.
2837 * ipython.1: document threading options in manpage.
2835
2838
2836 * scripts/ipython: Changed name of -thread option to -gthread,
2839 * scripts/ipython: Changed name of -thread option to -gthread,
2837 since this is GTK specific. I want to leave the door open for a
2840 since this is GTK specific. I want to leave the door open for a
2838 -wthread option for WX, which will most likely be necessary. This
2841 -wthread option for WX, which will most likely be necessary. This
2839 change affects usage and ipmaker as well.
2842 change affects usage and ipmaker as well.
2840
2843
2841 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2844 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2842 handle the matplotlib shell issues. Code by John Hunter
2845 handle the matplotlib shell issues. Code by John Hunter
2843 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2846 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2844 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2847 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2845 broken (and disabled for end users) for now, but it puts the
2848 broken (and disabled for end users) for now, but it puts the
2846 infrastructure in place.
2849 infrastructure in place.
2847
2850
2848 2004-08-21 Fernando Perez <fperez@colorado.edu>
2851 2004-08-21 Fernando Perez <fperez@colorado.edu>
2849
2852
2850 * ipythonrc-pylab: Add matplotlib support.
2853 * ipythonrc-pylab: Add matplotlib support.
2851
2854
2852 * matplotlib_config.py: new files for matplotlib support, part of
2855 * matplotlib_config.py: new files for matplotlib support, part of
2853 the pylab profile.
2856 the pylab profile.
2854
2857
2855 * IPython/usage.py (__doc__): documented the threading options.
2858 * IPython/usage.py (__doc__): documented the threading options.
2856
2859
2857 2004-08-20 Fernando Perez <fperez@colorado.edu>
2860 2004-08-20 Fernando Perez <fperez@colorado.edu>
2858
2861
2859 * ipython: Modified the main calling routine to handle the -thread
2862 * ipython: Modified the main calling routine to handle the -thread
2860 and -mpthread options. This needs to be done as a top-level hack,
2863 and -mpthread options. This needs to be done as a top-level hack,
2861 because it determines which class to instantiate for IPython
2864 because it determines which class to instantiate for IPython
2862 itself.
2865 itself.
2863
2866
2864 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2867 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2865 classes to support multithreaded GTK operation without blocking,
2868 classes to support multithreaded GTK operation without blocking,
2866 and matplotlib with all backends. This is a lot of still very
2869 and matplotlib with all backends. This is a lot of still very
2867 experimental code, and threads are tricky. So it may still have a
2870 experimental code, and threads are tricky. So it may still have a
2868 few rough edges... This code owes a lot to
2871 few rough edges... This code owes a lot to
2869 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2872 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2870 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2873 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2871 to John Hunter for all the matplotlib work.
2874 to John Hunter for all the matplotlib work.
2872
2875
2873 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2876 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2874 options for gtk thread and matplotlib support.
2877 options for gtk thread and matplotlib support.
2875
2878
2876 2004-08-16 Fernando Perez <fperez@colorado.edu>
2879 2004-08-16 Fernando Perez <fperez@colorado.edu>
2877
2880
2878 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2881 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2879 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2882 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2880 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2883 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2881
2884
2882 2004-08-11 Fernando Perez <fperez@colorado.edu>
2885 2004-08-11 Fernando Perez <fperez@colorado.edu>
2883
2886
2884 * setup.py (isfile): Fix build so documentation gets updated for
2887 * setup.py (isfile): Fix build so documentation gets updated for
2885 rpms (it was only done for .tgz builds).
2888 rpms (it was only done for .tgz builds).
2886
2889
2887 2004-08-10 Fernando Perez <fperez@colorado.edu>
2890 2004-08-10 Fernando Perez <fperez@colorado.edu>
2888
2891
2889 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2892 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2890
2893
2891 * iplib.py : Silence syntax error exceptions in tab-completion.
2894 * iplib.py : Silence syntax error exceptions in tab-completion.
2892
2895
2893 2004-08-05 Fernando Perez <fperez@colorado.edu>
2896 2004-08-05 Fernando Perez <fperez@colorado.edu>
2894
2897
2895 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2898 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2896 'color off' mark for continuation prompts. This was causing long
2899 'color off' mark for continuation prompts. This was causing long
2897 continuation lines to mis-wrap.
2900 continuation lines to mis-wrap.
2898
2901
2899 2004-08-01 Fernando Perez <fperez@colorado.edu>
2902 2004-08-01 Fernando Perez <fperez@colorado.edu>
2900
2903
2901 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2904 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2902 for building ipython to be a parameter. All this is necessary
2905 for building ipython to be a parameter. All this is necessary
2903 right now to have a multithreaded version, but this insane
2906 right now to have a multithreaded version, but this insane
2904 non-design will be cleaned up soon. For now, it's a hack that
2907 non-design will be cleaned up soon. For now, it's a hack that
2905 works.
2908 works.
2906
2909
2907 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2910 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2908 args in various places. No bugs so far, but it's a dangerous
2911 args in various places. No bugs so far, but it's a dangerous
2909 practice.
2912 practice.
2910
2913
2911 2004-07-31 Fernando Perez <fperez@colorado.edu>
2914 2004-07-31 Fernando Perez <fperez@colorado.edu>
2912
2915
2913 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2916 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2914 fix completion of files with dots in their names under most
2917 fix completion of files with dots in their names under most
2915 profiles (pysh was OK because the completion order is different).
2918 profiles (pysh was OK because the completion order is different).
2916
2919
2917 2004-07-27 Fernando Perez <fperez@colorado.edu>
2920 2004-07-27 Fernando Perez <fperez@colorado.edu>
2918
2921
2919 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2922 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2920 keywords manually, b/c the one in keyword.py was removed in python
2923 keywords manually, b/c the one in keyword.py was removed in python
2921 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2924 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2922 This is NOT a bug under python 2.3 and earlier.
2925 This is NOT a bug under python 2.3 and earlier.
2923
2926
2924 2004-07-26 Fernando Perez <fperez@colorado.edu>
2927 2004-07-26 Fernando Perez <fperez@colorado.edu>
2925
2928
2926 * IPython/ultraTB.py (VerboseTB.text): Add another
2929 * IPython/ultraTB.py (VerboseTB.text): Add another
2927 linecache.checkcache() call to try to prevent inspect.py from
2930 linecache.checkcache() call to try to prevent inspect.py from
2928 crashing under python 2.3. I think this fixes
2931 crashing under python 2.3. I think this fixes
2929 http://www.scipy.net/roundup/ipython/issue17.
2932 http://www.scipy.net/roundup/ipython/issue17.
2930
2933
2931 2004-07-26 *** Released version 0.6.2
2934 2004-07-26 *** Released version 0.6.2
2932
2935
2933 2004-07-26 Fernando Perez <fperez@colorado.edu>
2936 2004-07-26 Fernando Perez <fperez@colorado.edu>
2934
2937
2935 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2938 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2936 fail for any number.
2939 fail for any number.
2937 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2940 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2938 empty bookmarks.
2941 empty bookmarks.
2939
2942
2940 2004-07-26 *** Released version 0.6.1
2943 2004-07-26 *** Released version 0.6.1
2941
2944
2942 2004-07-26 Fernando Perez <fperez@colorado.edu>
2945 2004-07-26 Fernando Perez <fperez@colorado.edu>
2943
2946
2944 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2947 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2945
2948
2946 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2949 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2947 escaping '()[]{}' in filenames.
2950 escaping '()[]{}' in filenames.
2948
2951
2949 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2952 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2950 Python 2.2 users who lack a proper shlex.split.
2953 Python 2.2 users who lack a proper shlex.split.
2951
2954
2952 2004-07-19 Fernando Perez <fperez@colorado.edu>
2955 2004-07-19 Fernando Perez <fperez@colorado.edu>
2953
2956
2954 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2957 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2955 for reading readline's init file. I follow the normal chain:
2958 for reading readline's init file. I follow the normal chain:
2956 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2959 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2957 report by Mike Heeter. This closes
2960 report by Mike Heeter. This closes
2958 http://www.scipy.net/roundup/ipython/issue16.
2961 http://www.scipy.net/roundup/ipython/issue16.
2959
2962
2960 2004-07-18 Fernando Perez <fperez@colorado.edu>
2963 2004-07-18 Fernando Perez <fperez@colorado.edu>
2961
2964
2962 * IPython/iplib.py (__init__): Add better handling of '\' under
2965 * IPython/iplib.py (__init__): Add better handling of '\' under
2963 Win32 for filenames. After a patch by Ville.
2966 Win32 for filenames. After a patch by Ville.
2964
2967
2965 2004-07-17 Fernando Perez <fperez@colorado.edu>
2968 2004-07-17 Fernando Perez <fperez@colorado.edu>
2966
2969
2967 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2970 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2968 autocalling would be triggered for 'foo is bar' if foo is
2971 autocalling would be triggered for 'foo is bar' if foo is
2969 callable. I also cleaned up the autocall detection code to use a
2972 callable. I also cleaned up the autocall detection code to use a
2970 regexp, which is faster. Bug reported by Alexander Schmolck.
2973 regexp, which is faster. Bug reported by Alexander Schmolck.
2971
2974
2972 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2975 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2973 '?' in them would confuse the help system. Reported by Alex
2976 '?' in them would confuse the help system. Reported by Alex
2974 Schmolck.
2977 Schmolck.
2975
2978
2976 2004-07-16 Fernando Perez <fperez@colorado.edu>
2979 2004-07-16 Fernando Perez <fperez@colorado.edu>
2977
2980
2978 * IPython/GnuplotInteractive.py (__all__): added plot2.
2981 * IPython/GnuplotInteractive.py (__all__): added plot2.
2979
2982
2980 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2983 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2981 plotting dictionaries, lists or tuples of 1d arrays.
2984 plotting dictionaries, lists or tuples of 1d arrays.
2982
2985
2983 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2986 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2984 optimizations.
2987 optimizations.
2985
2988
2986 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2989 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2987 the information which was there from Janko's original IPP code:
2990 the information which was there from Janko's original IPP code:
2988
2991
2989 03.05.99 20:53 porto.ifm.uni-kiel.de
2992 03.05.99 20:53 porto.ifm.uni-kiel.de
2990 --Started changelog.
2993 --Started changelog.
2991 --make clear do what it say it does
2994 --make clear do what it say it does
2992 --added pretty output of lines from inputcache
2995 --added pretty output of lines from inputcache
2993 --Made Logger a mixin class, simplifies handling of switches
2996 --Made Logger a mixin class, simplifies handling of switches
2994 --Added own completer class. .string<TAB> expands to last history
2997 --Added own completer class. .string<TAB> expands to last history
2995 line which starts with string. The new expansion is also present
2998 line which starts with string. The new expansion is also present
2996 with Ctrl-r from the readline library. But this shows, who this
2999 with Ctrl-r from the readline library. But this shows, who this
2997 can be done for other cases.
3000 can be done for other cases.
2998 --Added convention that all shell functions should accept a
3001 --Added convention that all shell functions should accept a
2999 parameter_string This opens the door for different behaviour for
3002 parameter_string This opens the door for different behaviour for
3000 each function. @cd is a good example of this.
3003 each function. @cd is a good example of this.
3001
3004
3002 04.05.99 12:12 porto.ifm.uni-kiel.de
3005 04.05.99 12:12 porto.ifm.uni-kiel.de
3003 --added logfile rotation
3006 --added logfile rotation
3004 --added new mainloop method which freezes first the namespace
3007 --added new mainloop method which freezes first the namespace
3005
3008
3006 07.05.99 21:24 porto.ifm.uni-kiel.de
3009 07.05.99 21:24 porto.ifm.uni-kiel.de
3007 --added the docreader classes. Now there is a help system.
3010 --added the docreader classes. Now there is a help system.
3008 -This is only a first try. Currently it's not easy to put new
3011 -This is only a first try. Currently it's not easy to put new
3009 stuff in the indices. But this is the way to go. Info would be
3012 stuff in the indices. But this is the way to go. Info would be
3010 better, but HTML is every where and not everybody has an info
3013 better, but HTML is every where and not everybody has an info
3011 system installed and it's not so easy to change html-docs to info.
3014 system installed and it's not so easy to change html-docs to info.
3012 --added global logfile option
3015 --added global logfile option
3013 --there is now a hook for object inspection method pinfo needs to
3016 --there is now a hook for object inspection method pinfo needs to
3014 be provided for this. Can be reached by two '??'.
3017 be provided for this. Can be reached by two '??'.
3015
3018
3016 08.05.99 20:51 porto.ifm.uni-kiel.de
3019 08.05.99 20:51 porto.ifm.uni-kiel.de
3017 --added a README
3020 --added a README
3018 --bug in rc file. Something has changed so functions in the rc
3021 --bug in rc file. Something has changed so functions in the rc
3019 file need to reference the shell and not self. Not clear if it's a
3022 file need to reference the shell and not self. Not clear if it's a
3020 bug or feature.
3023 bug or feature.
3021 --changed rc file for new behavior
3024 --changed rc file for new behavior
3022
3025
3023 2004-07-15 Fernando Perez <fperez@colorado.edu>
3026 2004-07-15 Fernando Perez <fperez@colorado.edu>
3024
3027
3025 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3028 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3026 cache was falling out of sync in bizarre manners when multi-line
3029 cache was falling out of sync in bizarre manners when multi-line
3027 input was present. Minor optimizations and cleanup.
3030 input was present. Minor optimizations and cleanup.
3028
3031
3029 (Logger): Remove old Changelog info for cleanup. This is the
3032 (Logger): Remove old Changelog info for cleanup. This is the
3030 information which was there from Janko's original code:
3033 information which was there from Janko's original code:
3031
3034
3032 Changes to Logger: - made the default log filename a parameter
3035 Changes to Logger: - made the default log filename a parameter
3033
3036
3034 - put a check for lines beginning with !@? in log(). Needed
3037 - put a check for lines beginning with !@? in log(). Needed
3035 (even if the handlers properly log their lines) for mid-session
3038 (even if the handlers properly log their lines) for mid-session
3036 logging activation to work properly. Without this, lines logged
3039 logging activation to work properly. Without this, lines logged
3037 in mid session, which get read from the cache, would end up
3040 in mid session, which get read from the cache, would end up
3038 'bare' (with !@? in the open) in the log. Now they are caught
3041 'bare' (with !@? in the open) in the log. Now they are caught
3039 and prepended with a #.
3042 and prepended with a #.
3040
3043
3041 * IPython/iplib.py (InteractiveShell.init_readline): added check
3044 * IPython/iplib.py (InteractiveShell.init_readline): added check
3042 in case MagicCompleter fails to be defined, so we don't crash.
3045 in case MagicCompleter fails to be defined, so we don't crash.
3043
3046
3044 2004-07-13 Fernando Perez <fperez@colorado.edu>
3047 2004-07-13 Fernando Perez <fperez@colorado.edu>
3045
3048
3046 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3049 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3047 of EPS if the requested filename ends in '.eps'.
3050 of EPS if the requested filename ends in '.eps'.
3048
3051
3049 2004-07-04 Fernando Perez <fperez@colorado.edu>
3052 2004-07-04 Fernando Perez <fperez@colorado.edu>
3050
3053
3051 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3054 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3052 escaping of quotes when calling the shell.
3055 escaping of quotes when calling the shell.
3053
3056
3054 2004-07-02 Fernando Perez <fperez@colorado.edu>
3057 2004-07-02 Fernando Perez <fperez@colorado.edu>
3055
3058
3056 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3059 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3057 gettext not working because we were clobbering '_'. Fixes
3060 gettext not working because we were clobbering '_'. Fixes
3058 http://www.scipy.net/roundup/ipython/issue6.
3061 http://www.scipy.net/roundup/ipython/issue6.
3059
3062
3060 2004-07-01 Fernando Perez <fperez@colorado.edu>
3063 2004-07-01 Fernando Perez <fperez@colorado.edu>
3061
3064
3062 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3065 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3063 into @cd. Patch by Ville.
3066 into @cd. Patch by Ville.
3064
3067
3065 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3068 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3066 new function to store things after ipmaker runs. Patch by Ville.
3069 new function to store things after ipmaker runs. Patch by Ville.
3067 Eventually this will go away once ipmaker is removed and the class
3070 Eventually this will go away once ipmaker is removed and the class
3068 gets cleaned up, but for now it's ok. Key functionality here is
3071 gets cleaned up, but for now it's ok. Key functionality here is
3069 the addition of the persistent storage mechanism, a dict for
3072 the addition of the persistent storage mechanism, a dict for
3070 keeping data across sessions (for now just bookmarks, but more can
3073 keeping data across sessions (for now just bookmarks, but more can
3071 be implemented later).
3074 be implemented later).
3072
3075
3073 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3076 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3074 persistent across sections. Patch by Ville, I modified it
3077 persistent across sections. Patch by Ville, I modified it
3075 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3078 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3076 added a '-l' option to list all bookmarks.
3079 added a '-l' option to list all bookmarks.
3077
3080
3078 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3081 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3079 center for cleanup. Registered with atexit.register(). I moved
3082 center for cleanup. Registered with atexit.register(). I moved
3080 here the old exit_cleanup(). After a patch by Ville.
3083 here the old exit_cleanup(). After a patch by Ville.
3081
3084
3082 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3085 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3083 characters in the hacked shlex_split for python 2.2.
3086 characters in the hacked shlex_split for python 2.2.
3084
3087
3085 * IPython/iplib.py (file_matches): more fixes to filenames with
3088 * IPython/iplib.py (file_matches): more fixes to filenames with
3086 whitespace in them. It's not perfect, but limitations in python's
3089 whitespace in them. It's not perfect, but limitations in python's
3087 readline make it impossible to go further.
3090 readline make it impossible to go further.
3088
3091
3089 2004-06-29 Fernando Perez <fperez@colorado.edu>
3092 2004-06-29 Fernando Perez <fperez@colorado.edu>
3090
3093
3091 * IPython/iplib.py (file_matches): escape whitespace correctly in
3094 * IPython/iplib.py (file_matches): escape whitespace correctly in
3092 filename completions. Bug reported by Ville.
3095 filename completions. Bug reported by Ville.
3093
3096
3094 2004-06-28 Fernando Perez <fperez@colorado.edu>
3097 2004-06-28 Fernando Perez <fperez@colorado.edu>
3095
3098
3096 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3099 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3097 the history file will be called 'history-PROFNAME' (or just
3100 the history file will be called 'history-PROFNAME' (or just
3098 'history' if no profile is loaded). I was getting annoyed at
3101 'history' if no profile is loaded). I was getting annoyed at
3099 getting my Numerical work history clobbered by pysh sessions.
3102 getting my Numerical work history clobbered by pysh sessions.
3100
3103
3101 * IPython/iplib.py (InteractiveShell.__init__): Internal
3104 * IPython/iplib.py (InteractiveShell.__init__): Internal
3102 getoutputerror() function so that we can honor the system_verbose
3105 getoutputerror() function so that we can honor the system_verbose
3103 flag for _all_ system calls. I also added escaping of #
3106 flag for _all_ system calls. I also added escaping of #
3104 characters here to avoid confusing Itpl.
3107 characters here to avoid confusing Itpl.
3105
3108
3106 * IPython/Magic.py (shlex_split): removed call to shell in
3109 * IPython/Magic.py (shlex_split): removed call to shell in
3107 parse_options and replaced it with shlex.split(). The annoying
3110 parse_options and replaced it with shlex.split(). The annoying
3108 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3111 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3109 to backport it from 2.3, with several frail hacks (the shlex
3112 to backport it from 2.3, with several frail hacks (the shlex
3110 module is rather limited in 2.2). Thanks to a suggestion by Ville
3113 module is rather limited in 2.2). Thanks to a suggestion by Ville
3111 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3114 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3112 problem.
3115 problem.
3113
3116
3114 (Magic.magic_system_verbose): new toggle to print the actual
3117 (Magic.magic_system_verbose): new toggle to print the actual
3115 system calls made by ipython. Mainly for debugging purposes.
3118 system calls made by ipython. Mainly for debugging purposes.
3116
3119
3117 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3120 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3118 doesn't support persistence. Reported (and fix suggested) by
3121 doesn't support persistence. Reported (and fix suggested) by
3119 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3122 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3120
3123
3121 2004-06-26 Fernando Perez <fperez@colorado.edu>
3124 2004-06-26 Fernando Perez <fperez@colorado.edu>
3122
3125
3123 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3126 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3124 continue prompts.
3127 continue prompts.
3125
3128
3126 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3129 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3127 function (basically a big docstring) and a few more things here to
3130 function (basically a big docstring) and a few more things here to
3128 speedup startup. pysh.py is now very lightweight. We want because
3131 speedup startup. pysh.py is now very lightweight. We want because
3129 it gets execfile'd, while InterpreterExec gets imported, so
3132 it gets execfile'd, while InterpreterExec gets imported, so
3130 byte-compilation saves time.
3133 byte-compilation saves time.
3131
3134
3132 2004-06-25 Fernando Perez <fperez@colorado.edu>
3135 2004-06-25 Fernando Perez <fperez@colorado.edu>
3133
3136
3134 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3137 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3135 -NUM', which was recently broken.
3138 -NUM', which was recently broken.
3136
3139
3137 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3140 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3138 in multi-line input (but not !!, which doesn't make sense there).
3141 in multi-line input (but not !!, which doesn't make sense there).
3139
3142
3140 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3143 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3141 It's just too useful, and people can turn it off in the less
3144 It's just too useful, and people can turn it off in the less
3142 common cases where it's a problem.
3145 common cases where it's a problem.
3143
3146
3144 2004-06-24 Fernando Perez <fperez@colorado.edu>
3147 2004-06-24 Fernando Perez <fperez@colorado.edu>
3145
3148
3146 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3149 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3147 special syntaxes (like alias calling) is now allied in multi-line
3150 special syntaxes (like alias calling) is now allied in multi-line
3148 input. This is still _very_ experimental, but it's necessary for
3151 input. This is still _very_ experimental, but it's necessary for
3149 efficient shell usage combining python looping syntax with system
3152 efficient shell usage combining python looping syntax with system
3150 calls. For now it's restricted to aliases, I don't think it
3153 calls. For now it's restricted to aliases, I don't think it
3151 really even makes sense to have this for magics.
3154 really even makes sense to have this for magics.
3152
3155
3153 2004-06-23 Fernando Perez <fperez@colorado.edu>
3156 2004-06-23 Fernando Perez <fperez@colorado.edu>
3154
3157
3155 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3158 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3156 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3159 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3157
3160
3158 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3161 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3159 extensions under Windows (after code sent by Gary Bishop). The
3162 extensions under Windows (after code sent by Gary Bishop). The
3160 extensions considered 'executable' are stored in IPython's rc
3163 extensions considered 'executable' are stored in IPython's rc
3161 structure as win_exec_ext.
3164 structure as win_exec_ext.
3162
3165
3163 * IPython/genutils.py (shell): new function, like system() but
3166 * IPython/genutils.py (shell): new function, like system() but
3164 without return value. Very useful for interactive shell work.
3167 without return value. Very useful for interactive shell work.
3165
3168
3166 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3169 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3167 delete aliases.
3170 delete aliases.
3168
3171
3169 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3172 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3170 sure that the alias table doesn't contain python keywords.
3173 sure that the alias table doesn't contain python keywords.
3171
3174
3172 2004-06-21 Fernando Perez <fperez@colorado.edu>
3175 2004-06-21 Fernando Perez <fperez@colorado.edu>
3173
3176
3174 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3177 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3175 non-existent items are found in $PATH. Reported by Thorsten.
3178 non-existent items are found in $PATH. Reported by Thorsten.
3176
3179
3177 2004-06-20 Fernando Perez <fperez@colorado.edu>
3180 2004-06-20 Fernando Perez <fperez@colorado.edu>
3178
3181
3179 * IPython/iplib.py (complete): modified the completer so that the
3182 * IPython/iplib.py (complete): modified the completer so that the
3180 order of priorities can be easily changed at runtime.
3183 order of priorities can be easily changed at runtime.
3181
3184
3182 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3185 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3183 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3186 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3184
3187
3185 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3188 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3186 expand Python variables prepended with $ in all system calls. The
3189 expand Python variables prepended with $ in all system calls. The
3187 same was done to InteractiveShell.handle_shell_escape. Now all
3190 same was done to InteractiveShell.handle_shell_escape. Now all
3188 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3191 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3189 expansion of python variables and expressions according to the
3192 expansion of python variables and expressions according to the
3190 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3193 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3191
3194
3192 Though PEP-215 has been rejected, a similar (but simpler) one
3195 Though PEP-215 has been rejected, a similar (but simpler) one
3193 seems like it will go into Python 2.4, PEP-292 -
3196 seems like it will go into Python 2.4, PEP-292 -
3194 http://www.python.org/peps/pep-0292.html.
3197 http://www.python.org/peps/pep-0292.html.
3195
3198
3196 I'll keep the full syntax of PEP-215, since IPython has since the
3199 I'll keep the full syntax of PEP-215, since IPython has since the
3197 start used Ka-Ping Yee's reference implementation discussed there
3200 start used Ka-Ping Yee's reference implementation discussed there
3198 (Itpl), and I actually like the powerful semantics it offers.
3201 (Itpl), and I actually like the powerful semantics it offers.
3199
3202
3200 In order to access normal shell variables, the $ has to be escaped
3203 In order to access normal shell variables, the $ has to be escaped
3201 via an extra $. For example:
3204 via an extra $. For example:
3202
3205
3203 In [7]: PATH='a python variable'
3206 In [7]: PATH='a python variable'
3204
3207
3205 In [8]: !echo $PATH
3208 In [8]: !echo $PATH
3206 a python variable
3209 a python variable
3207
3210
3208 In [9]: !echo $$PATH
3211 In [9]: !echo $$PATH
3209 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3212 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3210
3213
3211 (Magic.parse_options): escape $ so the shell doesn't evaluate
3214 (Magic.parse_options): escape $ so the shell doesn't evaluate
3212 things prematurely.
3215 things prematurely.
3213
3216
3214 * IPython/iplib.py (InteractiveShell.call_alias): added the
3217 * IPython/iplib.py (InteractiveShell.call_alias): added the
3215 ability for aliases to expand python variables via $.
3218 ability for aliases to expand python variables via $.
3216
3219
3217 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3220 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3218 system, now there's a @rehash/@rehashx pair of magics. These work
3221 system, now there's a @rehash/@rehashx pair of magics. These work
3219 like the csh rehash command, and can be invoked at any time. They
3222 like the csh rehash command, and can be invoked at any time. They
3220 build a table of aliases to everything in the user's $PATH
3223 build a table of aliases to everything in the user's $PATH
3221 (@rehash uses everything, @rehashx is slower but only adds
3224 (@rehash uses everything, @rehashx is slower but only adds
3222 executable files). With this, the pysh.py-based shell profile can
3225 executable files). With this, the pysh.py-based shell profile can
3223 now simply call rehash upon startup, and full access to all
3226 now simply call rehash upon startup, and full access to all
3224 programs in the user's path is obtained.
3227 programs in the user's path is obtained.
3225
3228
3226 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3229 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3227 functionality is now fully in place. I removed the old dynamic
3230 functionality is now fully in place. I removed the old dynamic
3228 code generation based approach, in favor of a much lighter one
3231 code generation based approach, in favor of a much lighter one
3229 based on a simple dict. The advantage is that this allows me to
3232 based on a simple dict. The advantage is that this allows me to
3230 now have thousands of aliases with negligible cost (unthinkable
3233 now have thousands of aliases with negligible cost (unthinkable
3231 with the old system).
3234 with the old system).
3232
3235
3233 2004-06-19 Fernando Perez <fperez@colorado.edu>
3236 2004-06-19 Fernando Perez <fperez@colorado.edu>
3234
3237
3235 * IPython/iplib.py (__init__): extended MagicCompleter class to
3238 * IPython/iplib.py (__init__): extended MagicCompleter class to
3236 also complete (last in priority) on user aliases.
3239 also complete (last in priority) on user aliases.
3237
3240
3238 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3241 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3239 call to eval.
3242 call to eval.
3240 (ItplNS.__init__): Added a new class which functions like Itpl,
3243 (ItplNS.__init__): Added a new class which functions like Itpl,
3241 but allows configuring the namespace for the evaluation to occur
3244 but allows configuring the namespace for the evaluation to occur
3242 in.
3245 in.
3243
3246
3244 2004-06-18 Fernando Perez <fperez@colorado.edu>
3247 2004-06-18 Fernando Perez <fperez@colorado.edu>
3245
3248
3246 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3249 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3247 better message when 'exit' or 'quit' are typed (a common newbie
3250 better message when 'exit' or 'quit' are typed (a common newbie
3248 confusion).
3251 confusion).
3249
3252
3250 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3253 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3251 check for Windows users.
3254 check for Windows users.
3252
3255
3253 * IPython/iplib.py (InteractiveShell.user_setup): removed
3256 * IPython/iplib.py (InteractiveShell.user_setup): removed
3254 disabling of colors for Windows. I'll test at runtime and issue a
3257 disabling of colors for Windows. I'll test at runtime and issue a
3255 warning if Gary's readline isn't found, as to nudge users to
3258 warning if Gary's readline isn't found, as to nudge users to
3256 download it.
3259 download it.
3257
3260
3258 2004-06-16 Fernando Perez <fperez@colorado.edu>
3261 2004-06-16 Fernando Perez <fperez@colorado.edu>
3259
3262
3260 * IPython/genutils.py (Stream.__init__): changed to print errors
3263 * IPython/genutils.py (Stream.__init__): changed to print errors
3261 to sys.stderr. I had a circular dependency here. Now it's
3264 to sys.stderr. I had a circular dependency here. Now it's
3262 possible to run ipython as IDLE's shell (consider this pre-alpha,
3265 possible to run ipython as IDLE's shell (consider this pre-alpha,
3263 since true stdout things end up in the starting terminal instead
3266 since true stdout things end up in the starting terminal instead
3264 of IDLE's out).
3267 of IDLE's out).
3265
3268
3266 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3269 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3267 users who haven't # updated their prompt_in2 definitions. Remove
3270 users who haven't # updated their prompt_in2 definitions. Remove
3268 eventually.
3271 eventually.
3269 (multiple_replace): added credit to original ASPN recipe.
3272 (multiple_replace): added credit to original ASPN recipe.
3270
3273
3271 2004-06-15 Fernando Perez <fperez@colorado.edu>
3274 2004-06-15 Fernando Perez <fperez@colorado.edu>
3272
3275
3273 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3276 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3274 list of auto-defined aliases.
3277 list of auto-defined aliases.
3275
3278
3276 2004-06-13 Fernando Perez <fperez@colorado.edu>
3279 2004-06-13 Fernando Perez <fperez@colorado.edu>
3277
3280
3278 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3281 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3279 install was really requested (so setup.py can be used for other
3282 install was really requested (so setup.py can be used for other
3280 things under Windows).
3283 things under Windows).
3281
3284
3282 2004-06-10 Fernando Perez <fperez@colorado.edu>
3285 2004-06-10 Fernando Perez <fperez@colorado.edu>
3283
3286
3284 * IPython/Logger.py (Logger.create_log): Manually remove any old
3287 * IPython/Logger.py (Logger.create_log): Manually remove any old
3285 backup, since os.remove may fail under Windows. Fixes bug
3288 backup, since os.remove may fail under Windows. Fixes bug
3286 reported by Thorsten.
3289 reported by Thorsten.
3287
3290
3288 2004-06-09 Fernando Perez <fperez@colorado.edu>
3291 2004-06-09 Fernando Perez <fperez@colorado.edu>
3289
3292
3290 * examples/example-embed.py: fixed all references to %n (replaced
3293 * examples/example-embed.py: fixed all references to %n (replaced
3291 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3294 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3292 for all examples and the manual as well.
3295 for all examples and the manual as well.
3293
3296
3294 2004-06-08 Fernando Perez <fperez@colorado.edu>
3297 2004-06-08 Fernando Perez <fperez@colorado.edu>
3295
3298
3296 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3299 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3297 alignment and color management. All 3 prompt subsystems now
3300 alignment and color management. All 3 prompt subsystems now
3298 inherit from BasePrompt.
3301 inherit from BasePrompt.
3299
3302
3300 * tools/release: updates for windows installer build and tag rpms
3303 * tools/release: updates for windows installer build and tag rpms
3301 with python version (since paths are fixed).
3304 with python version (since paths are fixed).
3302
3305
3303 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3306 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3304 which will become eventually obsolete. Also fixed the default
3307 which will become eventually obsolete. Also fixed the default
3305 prompt_in2 to use \D, so at least new users start with the correct
3308 prompt_in2 to use \D, so at least new users start with the correct
3306 defaults.
3309 defaults.
3307 WARNING: Users with existing ipythonrc files will need to apply
3310 WARNING: Users with existing ipythonrc files will need to apply
3308 this fix manually!
3311 this fix manually!
3309
3312
3310 * setup.py: make windows installer (.exe). This is finally the
3313 * setup.py: make windows installer (.exe). This is finally the
3311 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3314 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3312 which I hadn't included because it required Python 2.3 (or recent
3315 which I hadn't included because it required Python 2.3 (or recent
3313 distutils).
3316 distutils).
3314
3317
3315 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3318 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3316 usage of new '\D' escape.
3319 usage of new '\D' escape.
3317
3320
3318 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3321 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3319 lacks os.getuid())
3322 lacks os.getuid())
3320 (CachedOutput.set_colors): Added the ability to turn coloring
3323 (CachedOutput.set_colors): Added the ability to turn coloring
3321 on/off with @colors even for manually defined prompt colors. It
3324 on/off with @colors even for manually defined prompt colors. It
3322 uses a nasty global, but it works safely and via the generic color
3325 uses a nasty global, but it works safely and via the generic color
3323 handling mechanism.
3326 handling mechanism.
3324 (Prompt2.__init__): Introduced new escape '\D' for continuation
3327 (Prompt2.__init__): Introduced new escape '\D' for continuation
3325 prompts. It represents the counter ('\#') as dots.
3328 prompts. It represents the counter ('\#') as dots.
3326 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3329 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3327 need to update their ipythonrc files and replace '%n' with '\D' in
3330 need to update their ipythonrc files and replace '%n' with '\D' in
3328 their prompt_in2 settings everywhere. Sorry, but there's
3331 their prompt_in2 settings everywhere. Sorry, but there's
3329 otherwise no clean way to get all prompts to properly align. The
3332 otherwise no clean way to get all prompts to properly align. The
3330 ipythonrc shipped with IPython has been updated.
3333 ipythonrc shipped with IPython has been updated.
3331
3334
3332 2004-06-07 Fernando Perez <fperez@colorado.edu>
3335 2004-06-07 Fernando Perez <fperez@colorado.edu>
3333
3336
3334 * setup.py (isfile): Pass local_icons option to latex2html, so the
3337 * setup.py (isfile): Pass local_icons option to latex2html, so the
3335 resulting HTML file is self-contained. Thanks to
3338 resulting HTML file is self-contained. Thanks to
3336 dryice-AT-liu.com.cn for the tip.
3339 dryice-AT-liu.com.cn for the tip.
3337
3340
3338 * pysh.py: I created a new profile 'shell', which implements a
3341 * pysh.py: I created a new profile 'shell', which implements a
3339 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3342 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3340 system shell, nor will it become one anytime soon. It's mainly
3343 system shell, nor will it become one anytime soon. It's mainly
3341 meant to illustrate the use of the new flexible bash-like prompts.
3344 meant to illustrate the use of the new flexible bash-like prompts.
3342 I guess it could be used by hardy souls for true shell management,
3345 I guess it could be used by hardy souls for true shell management,
3343 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3346 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3344 profile. This uses the InterpreterExec extension provided by
3347 profile. This uses the InterpreterExec extension provided by
3345 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3348 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3346
3349
3347 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3350 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3348 auto-align itself with the length of the previous input prompt
3351 auto-align itself with the length of the previous input prompt
3349 (taking into account the invisible color escapes).
3352 (taking into account the invisible color escapes).
3350 (CachedOutput.__init__): Large restructuring of this class. Now
3353 (CachedOutput.__init__): Large restructuring of this class. Now
3351 all three prompts (primary1, primary2, output) are proper objects,
3354 all three prompts (primary1, primary2, output) are proper objects,
3352 managed by the 'parent' CachedOutput class. The code is still a
3355 managed by the 'parent' CachedOutput class. The code is still a
3353 bit hackish (all prompts share state via a pointer to the cache),
3356 bit hackish (all prompts share state via a pointer to the cache),
3354 but it's overall far cleaner than before.
3357 but it's overall far cleaner than before.
3355
3358
3356 * IPython/genutils.py (getoutputerror): modified to add verbose,
3359 * IPython/genutils.py (getoutputerror): modified to add verbose,
3357 debug and header options. This makes the interface of all getout*
3360 debug and header options. This makes the interface of all getout*
3358 functions uniform.
3361 functions uniform.
3359 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3362 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3360
3363
3361 * IPython/Magic.py (Magic.default_option): added a function to
3364 * IPython/Magic.py (Magic.default_option): added a function to
3362 allow registering default options for any magic command. This
3365 allow registering default options for any magic command. This
3363 makes it easy to have profiles which customize the magics globally
3366 makes it easy to have profiles which customize the magics globally
3364 for a certain use. The values set through this function are
3367 for a certain use. The values set through this function are
3365 picked up by the parse_options() method, which all magics should
3368 picked up by the parse_options() method, which all magics should
3366 use to parse their options.
3369 use to parse their options.
3367
3370
3368 * IPython/genutils.py (warn): modified the warnings framework to
3371 * IPython/genutils.py (warn): modified the warnings framework to
3369 use the Term I/O class. I'm trying to slowly unify all of
3372 use the Term I/O class. I'm trying to slowly unify all of
3370 IPython's I/O operations to pass through Term.
3373 IPython's I/O operations to pass through Term.
3371
3374
3372 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3375 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3373 the secondary prompt to correctly match the length of the primary
3376 the secondary prompt to correctly match the length of the primary
3374 one for any prompt. Now multi-line code will properly line up
3377 one for any prompt. Now multi-line code will properly line up
3375 even for path dependent prompts, such as the new ones available
3378 even for path dependent prompts, such as the new ones available
3376 via the prompt_specials.
3379 via the prompt_specials.
3377
3380
3378 2004-06-06 Fernando Perez <fperez@colorado.edu>
3381 2004-06-06 Fernando Perez <fperez@colorado.edu>
3379
3382
3380 * IPython/Prompts.py (prompt_specials): Added the ability to have
3383 * IPython/Prompts.py (prompt_specials): Added the ability to have
3381 bash-like special sequences in the prompts, which get
3384 bash-like special sequences in the prompts, which get
3382 automatically expanded. Things like hostname, current working
3385 automatically expanded. Things like hostname, current working
3383 directory and username are implemented already, but it's easy to
3386 directory and username are implemented already, but it's easy to
3384 add more in the future. Thanks to a patch by W.J. van der Laan
3387 add more in the future. Thanks to a patch by W.J. van der Laan
3385 <gnufnork-AT-hetdigitalegat.nl>
3388 <gnufnork-AT-hetdigitalegat.nl>
3386 (prompt_specials): Added color support for prompt strings, so
3389 (prompt_specials): Added color support for prompt strings, so
3387 users can define arbitrary color setups for their prompts.
3390 users can define arbitrary color setups for their prompts.
3388
3391
3389 2004-06-05 Fernando Perez <fperez@colorado.edu>
3392 2004-06-05 Fernando Perez <fperez@colorado.edu>
3390
3393
3391 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3394 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3392 code to load Gary Bishop's readline and configure it
3395 code to load Gary Bishop's readline and configure it
3393 automatically. Thanks to Gary for help on this.
3396 automatically. Thanks to Gary for help on this.
3394
3397
3395 2004-06-01 Fernando Perez <fperez@colorado.edu>
3398 2004-06-01 Fernando Perez <fperez@colorado.edu>
3396
3399
3397 * IPython/Logger.py (Logger.create_log): fix bug for logging
3400 * IPython/Logger.py (Logger.create_log): fix bug for logging
3398 with no filename (previous fix was incomplete).
3401 with no filename (previous fix was incomplete).
3399
3402
3400 2004-05-25 Fernando Perez <fperez@colorado.edu>
3403 2004-05-25 Fernando Perez <fperez@colorado.edu>
3401
3404
3402 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3405 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3403 parens would get passed to the shell.
3406 parens would get passed to the shell.
3404
3407
3405 2004-05-20 Fernando Perez <fperez@colorado.edu>
3408 2004-05-20 Fernando Perez <fperez@colorado.edu>
3406
3409
3407 * IPython/Magic.py (Magic.magic_prun): changed default profile
3410 * IPython/Magic.py (Magic.magic_prun): changed default profile
3408 sort order to 'time' (the more common profiling need).
3411 sort order to 'time' (the more common profiling need).
3409
3412
3410 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3413 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3411 so that source code shown is guaranteed in sync with the file on
3414 so that source code shown is guaranteed in sync with the file on
3412 disk (also changed in psource). Similar fix to the one for
3415 disk (also changed in psource). Similar fix to the one for
3413 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3416 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3414 <yann.ledu-AT-noos.fr>.
3417 <yann.ledu-AT-noos.fr>.
3415
3418
3416 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3419 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3417 with a single option would not be correctly parsed. Closes
3420 with a single option would not be correctly parsed. Closes
3418 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3421 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3419 introduced in 0.6.0 (on 2004-05-06).
3422 introduced in 0.6.0 (on 2004-05-06).
3420
3423
3421 2004-05-13 *** Released version 0.6.0
3424 2004-05-13 *** Released version 0.6.0
3422
3425
3423 2004-05-13 Fernando Perez <fperez@colorado.edu>
3426 2004-05-13 Fernando Perez <fperez@colorado.edu>
3424
3427
3425 * debian/: Added debian/ directory to CVS, so that debian support
3428 * debian/: Added debian/ directory to CVS, so that debian support
3426 is publicly accessible. The debian package is maintained by Jack
3429 is publicly accessible. The debian package is maintained by Jack
3427 Moffit <jack-AT-xiph.org>.
3430 Moffit <jack-AT-xiph.org>.
3428
3431
3429 * Documentation: included the notes about an ipython-based system
3432 * Documentation: included the notes about an ipython-based system
3430 shell (the hypothetical 'pysh') into the new_design.pdf document,
3433 shell (the hypothetical 'pysh') into the new_design.pdf document,
3431 so that these ideas get distributed to users along with the
3434 so that these ideas get distributed to users along with the
3432 official documentation.
3435 official documentation.
3433
3436
3434 2004-05-10 Fernando Perez <fperez@colorado.edu>
3437 2004-05-10 Fernando Perez <fperez@colorado.edu>
3435
3438
3436 * IPython/Logger.py (Logger.create_log): fix recently introduced
3439 * IPython/Logger.py (Logger.create_log): fix recently introduced
3437 bug (misindented line) where logstart would fail when not given an
3440 bug (misindented line) where logstart would fail when not given an
3438 explicit filename.
3441 explicit filename.
3439
3442
3440 2004-05-09 Fernando Perez <fperez@colorado.edu>
3443 2004-05-09 Fernando Perez <fperez@colorado.edu>
3441
3444
3442 * IPython/Magic.py (Magic.parse_options): skip system call when
3445 * IPython/Magic.py (Magic.parse_options): skip system call when
3443 there are no options to look for. Faster, cleaner for the common
3446 there are no options to look for. Faster, cleaner for the common
3444 case.
3447 case.
3445
3448
3446 * Documentation: many updates to the manual: describing Windows
3449 * Documentation: many updates to the manual: describing Windows
3447 support better, Gnuplot updates, credits, misc small stuff. Also
3450 support better, Gnuplot updates, credits, misc small stuff. Also
3448 updated the new_design doc a bit.
3451 updated the new_design doc a bit.
3449
3452
3450 2004-05-06 *** Released version 0.6.0.rc1
3453 2004-05-06 *** Released version 0.6.0.rc1
3451
3454
3452 2004-05-06 Fernando Perez <fperez@colorado.edu>
3455 2004-05-06 Fernando Perez <fperez@colorado.edu>
3453
3456
3454 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3457 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3455 operations to use the vastly more efficient list/''.join() method.
3458 operations to use the vastly more efficient list/''.join() method.
3456 (FormattedTB.text): Fix
3459 (FormattedTB.text): Fix
3457 http://www.scipy.net/roundup/ipython/issue12 - exception source
3460 http://www.scipy.net/roundup/ipython/issue12 - exception source
3458 extract not updated after reload. Thanks to Mike Salib
3461 extract not updated after reload. Thanks to Mike Salib
3459 <msalib-AT-mit.edu> for pinning the source of the problem.
3462 <msalib-AT-mit.edu> for pinning the source of the problem.
3460 Fortunately, the solution works inside ipython and doesn't require
3463 Fortunately, the solution works inside ipython and doesn't require
3461 any changes to python proper.
3464 any changes to python proper.
3462
3465
3463 * IPython/Magic.py (Magic.parse_options): Improved to process the
3466 * IPython/Magic.py (Magic.parse_options): Improved to process the
3464 argument list as a true shell would (by actually using the
3467 argument list as a true shell would (by actually using the
3465 underlying system shell). This way, all @magics automatically get
3468 underlying system shell). This way, all @magics automatically get
3466 shell expansion for variables. Thanks to a comment by Alex
3469 shell expansion for variables. Thanks to a comment by Alex
3467 Schmolck.
3470 Schmolck.
3468
3471
3469 2004-04-04 Fernando Perez <fperez@colorado.edu>
3472 2004-04-04 Fernando Perez <fperez@colorado.edu>
3470
3473
3471 * IPython/iplib.py (InteractiveShell.interact): Added a special
3474 * IPython/iplib.py (InteractiveShell.interact): Added a special
3472 trap for a debugger quit exception, which is basically impossible
3475 trap for a debugger quit exception, which is basically impossible
3473 to handle by normal mechanisms, given what pdb does to the stack.
3476 to handle by normal mechanisms, given what pdb does to the stack.
3474 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3477 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3475
3478
3476 2004-04-03 Fernando Perez <fperez@colorado.edu>
3479 2004-04-03 Fernando Perez <fperez@colorado.edu>
3477
3480
3478 * IPython/genutils.py (Term): Standardized the names of the Term
3481 * IPython/genutils.py (Term): Standardized the names of the Term
3479 class streams to cin/cout/cerr, following C++ naming conventions
3482 class streams to cin/cout/cerr, following C++ naming conventions
3480 (I can't use in/out/err because 'in' is not a valid attribute
3483 (I can't use in/out/err because 'in' is not a valid attribute
3481 name).
3484 name).
3482
3485
3483 * IPython/iplib.py (InteractiveShell.interact): don't increment
3486 * IPython/iplib.py (InteractiveShell.interact): don't increment
3484 the prompt if there's no user input. By Daniel 'Dang' Griffith
3487 the prompt if there's no user input. By Daniel 'Dang' Griffith
3485 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3488 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3486 Francois Pinard.
3489 Francois Pinard.
3487
3490
3488 2004-04-02 Fernando Perez <fperez@colorado.edu>
3491 2004-04-02 Fernando Perez <fperez@colorado.edu>
3489
3492
3490 * IPython/genutils.py (Stream.__init__): Modified to survive at
3493 * IPython/genutils.py (Stream.__init__): Modified to survive at
3491 least importing in contexts where stdin/out/err aren't true file
3494 least importing in contexts where stdin/out/err aren't true file
3492 objects, such as PyCrust (they lack fileno() and mode). However,
3495 objects, such as PyCrust (they lack fileno() and mode). However,
3493 the recovery facilities which rely on these things existing will
3496 the recovery facilities which rely on these things existing will
3494 not work.
3497 not work.
3495
3498
3496 2004-04-01 Fernando Perez <fperez@colorado.edu>
3499 2004-04-01 Fernando Perez <fperez@colorado.edu>
3497
3500
3498 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3501 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3499 use the new getoutputerror() function, so it properly
3502 use the new getoutputerror() function, so it properly
3500 distinguishes stdout/err.
3503 distinguishes stdout/err.
3501
3504
3502 * IPython/genutils.py (getoutputerror): added a function to
3505 * IPython/genutils.py (getoutputerror): added a function to
3503 capture separately the standard output and error of a command.
3506 capture separately the standard output and error of a command.
3504 After a comment from dang on the mailing lists. This code is
3507 After a comment from dang on the mailing lists. This code is
3505 basically a modified version of commands.getstatusoutput(), from
3508 basically a modified version of commands.getstatusoutput(), from
3506 the standard library.
3509 the standard library.
3507
3510
3508 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3511 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3509 '!!' as a special syntax (shorthand) to access @sx.
3512 '!!' as a special syntax (shorthand) to access @sx.
3510
3513
3511 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3514 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3512 command and return its output as a list split on '\n'.
3515 command and return its output as a list split on '\n'.
3513
3516
3514 2004-03-31 Fernando Perez <fperez@colorado.edu>
3517 2004-03-31 Fernando Perez <fperez@colorado.edu>
3515
3518
3516 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3519 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3517 method to dictionaries used as FakeModule instances if they lack
3520 method to dictionaries used as FakeModule instances if they lack
3518 it. At least pydoc in python2.3 breaks for runtime-defined
3521 it. At least pydoc in python2.3 breaks for runtime-defined
3519 functions without this hack. At some point I need to _really_
3522 functions without this hack. At some point I need to _really_
3520 understand what FakeModule is doing, because it's a gross hack.
3523 understand what FakeModule is doing, because it's a gross hack.
3521 But it solves Arnd's problem for now...
3524 But it solves Arnd's problem for now...
3522
3525
3523 2004-02-27 Fernando Perez <fperez@colorado.edu>
3526 2004-02-27 Fernando Perez <fperez@colorado.edu>
3524
3527
3525 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3528 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3526 mode would behave erratically. Also increased the number of
3529 mode would behave erratically. Also increased the number of
3527 possible logs in rotate mod to 999. Thanks to Rod Holland
3530 possible logs in rotate mod to 999. Thanks to Rod Holland
3528 <rhh@StructureLABS.com> for the report and fixes.
3531 <rhh@StructureLABS.com> for the report and fixes.
3529
3532
3530 2004-02-26 Fernando Perez <fperez@colorado.edu>
3533 2004-02-26 Fernando Perez <fperez@colorado.edu>
3531
3534
3532 * IPython/genutils.py (page): Check that the curses module really
3535 * IPython/genutils.py (page): Check that the curses module really
3533 has the initscr attribute before trying to use it. For some
3536 has the initscr attribute before trying to use it. For some
3534 reason, the Solaris curses module is missing this. I think this
3537 reason, the Solaris curses module is missing this. I think this
3535 should be considered a Solaris python bug, but I'm not sure.
3538 should be considered a Solaris python bug, but I'm not sure.
3536
3539
3537 2004-01-17 Fernando Perez <fperez@colorado.edu>
3540 2004-01-17 Fernando Perez <fperez@colorado.edu>
3538
3541
3539 * IPython/genutils.py (Stream.__init__): Changes to try to make
3542 * IPython/genutils.py (Stream.__init__): Changes to try to make
3540 ipython robust against stdin/out/err being closed by the user.
3543 ipython robust against stdin/out/err being closed by the user.
3541 This is 'user error' (and blocks a normal python session, at least
3544 This is 'user error' (and blocks a normal python session, at least
3542 the stdout case). However, Ipython should be able to survive such
3545 the stdout case). However, Ipython should be able to survive such
3543 instances of abuse as gracefully as possible. To simplify the
3546 instances of abuse as gracefully as possible. To simplify the
3544 coding and maintain compatibility with Gary Bishop's Term
3547 coding and maintain compatibility with Gary Bishop's Term
3545 contributions, I've made use of classmethods for this. I think
3548 contributions, I've made use of classmethods for this. I think
3546 this introduces a dependency on python 2.2.
3549 this introduces a dependency on python 2.2.
3547
3550
3548 2004-01-13 Fernando Perez <fperez@colorado.edu>
3551 2004-01-13 Fernando Perez <fperez@colorado.edu>
3549
3552
3550 * IPython/numutils.py (exp_safe): simplified the code a bit and
3553 * IPython/numutils.py (exp_safe): simplified the code a bit and
3551 removed the need for importing the kinds module altogether.
3554 removed the need for importing the kinds module altogether.
3552
3555
3553 2004-01-06 Fernando Perez <fperez@colorado.edu>
3556 2004-01-06 Fernando Perez <fperez@colorado.edu>
3554
3557
3555 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3558 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3556 a magic function instead, after some community feedback. No
3559 a magic function instead, after some community feedback. No
3557 special syntax will exist for it, but its name is deliberately
3560 special syntax will exist for it, but its name is deliberately
3558 very short.
3561 very short.
3559
3562
3560 2003-12-20 Fernando Perez <fperez@colorado.edu>
3563 2003-12-20 Fernando Perez <fperez@colorado.edu>
3561
3564
3562 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3565 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3563 new functionality, to automagically assign the result of a shell
3566 new functionality, to automagically assign the result of a shell
3564 command to a variable. I'll solicit some community feedback on
3567 command to a variable. I'll solicit some community feedback on
3565 this before making it permanent.
3568 this before making it permanent.
3566
3569
3567 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3570 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3568 requested about callables for which inspect couldn't obtain a
3571 requested about callables for which inspect couldn't obtain a
3569 proper argspec. Thanks to a crash report sent by Etienne
3572 proper argspec. Thanks to a crash report sent by Etienne
3570 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3573 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3571
3574
3572 2003-12-09 Fernando Perez <fperez@colorado.edu>
3575 2003-12-09 Fernando Perez <fperez@colorado.edu>
3573
3576
3574 * IPython/genutils.py (page): patch for the pager to work across
3577 * IPython/genutils.py (page): patch for the pager to work across
3575 various versions of Windows. By Gary Bishop.
3578 various versions of Windows. By Gary Bishop.
3576
3579
3577 2003-12-04 Fernando Perez <fperez@colorado.edu>
3580 2003-12-04 Fernando Perez <fperez@colorado.edu>
3578
3581
3579 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3582 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3580 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3583 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3581 While I tested this and it looks ok, there may still be corner
3584 While I tested this and it looks ok, there may still be corner
3582 cases I've missed.
3585 cases I've missed.
3583
3586
3584 2003-12-01 Fernando Perez <fperez@colorado.edu>
3587 2003-12-01 Fernando Perez <fperez@colorado.edu>
3585
3588
3586 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3589 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3587 where a line like 'p,q=1,2' would fail because the automagic
3590 where a line like 'p,q=1,2' would fail because the automagic
3588 system would be triggered for @p.
3591 system would be triggered for @p.
3589
3592
3590 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3593 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3591 cleanups, code unmodified.
3594 cleanups, code unmodified.
3592
3595
3593 * IPython/genutils.py (Term): added a class for IPython to handle
3596 * IPython/genutils.py (Term): added a class for IPython to handle
3594 output. In most cases it will just be a proxy for stdout/err, but
3597 output. In most cases it will just be a proxy for stdout/err, but
3595 having this allows modifications to be made for some platforms,
3598 having this allows modifications to be made for some platforms,
3596 such as handling color escapes under Windows. All of this code
3599 such as handling color escapes under Windows. All of this code
3597 was contributed by Gary Bishop, with minor modifications by me.
3600 was contributed by Gary Bishop, with minor modifications by me.
3598 The actual changes affect many files.
3601 The actual changes affect many files.
3599
3602
3600 2003-11-30 Fernando Perez <fperez@colorado.edu>
3603 2003-11-30 Fernando Perez <fperez@colorado.edu>
3601
3604
3602 * IPython/iplib.py (file_matches): new completion code, courtesy
3605 * IPython/iplib.py (file_matches): new completion code, courtesy
3603 of Jeff Collins. This enables filename completion again under
3606 of Jeff Collins. This enables filename completion again under
3604 python 2.3, which disabled it at the C level.
3607 python 2.3, which disabled it at the C level.
3605
3608
3606 2003-11-11 Fernando Perez <fperez@colorado.edu>
3609 2003-11-11 Fernando Perez <fperez@colorado.edu>
3607
3610
3608 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3611 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3609 for Numeric.array(map(...)), but often convenient.
3612 for Numeric.array(map(...)), but often convenient.
3610
3613
3611 2003-11-05 Fernando Perez <fperez@colorado.edu>
3614 2003-11-05 Fernando Perez <fperez@colorado.edu>
3612
3615
3613 * IPython/numutils.py (frange): Changed a call from int() to
3616 * IPython/numutils.py (frange): Changed a call from int() to
3614 int(round()) to prevent a problem reported with arange() in the
3617 int(round()) to prevent a problem reported with arange() in the
3615 numpy list.
3618 numpy list.
3616
3619
3617 2003-10-06 Fernando Perez <fperez@colorado.edu>
3620 2003-10-06 Fernando Perez <fperez@colorado.edu>
3618
3621
3619 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3622 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3620 prevent crashes if sys lacks an argv attribute (it happens with
3623 prevent crashes if sys lacks an argv attribute (it happens with
3621 embedded interpreters which build a bare-bones sys module).
3624 embedded interpreters which build a bare-bones sys module).
3622 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3625 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3623
3626
3624 2003-09-24 Fernando Perez <fperez@colorado.edu>
3627 2003-09-24 Fernando Perez <fperez@colorado.edu>
3625
3628
3626 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3629 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3627 to protect against poorly written user objects where __getattr__
3630 to protect against poorly written user objects where __getattr__
3628 raises exceptions other than AttributeError. Thanks to a bug
3631 raises exceptions other than AttributeError. Thanks to a bug
3629 report by Oliver Sander <osander-AT-gmx.de>.
3632 report by Oliver Sander <osander-AT-gmx.de>.
3630
3633
3631 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3634 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3632 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3635 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3633
3636
3634 2003-09-09 Fernando Perez <fperez@colorado.edu>
3637 2003-09-09 Fernando Perez <fperez@colorado.edu>
3635
3638
3636 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3639 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3637 unpacking a list whith a callable as first element would
3640 unpacking a list whith a callable as first element would
3638 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3641 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3639 Collins.
3642 Collins.
3640
3643
3641 2003-08-25 *** Released version 0.5.0
3644 2003-08-25 *** Released version 0.5.0
3642
3645
3643 2003-08-22 Fernando Perez <fperez@colorado.edu>
3646 2003-08-22 Fernando Perez <fperez@colorado.edu>
3644
3647
3645 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3648 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3646 improperly defined user exceptions. Thanks to feedback from Mark
3649 improperly defined user exceptions. Thanks to feedback from Mark
3647 Russell <mrussell-AT-verio.net>.
3650 Russell <mrussell-AT-verio.net>.
3648
3651
3649 2003-08-20 Fernando Perez <fperez@colorado.edu>
3652 2003-08-20 Fernando Perez <fperez@colorado.edu>
3650
3653
3651 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3654 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3652 printing so that it would print multi-line string forms starting
3655 printing so that it would print multi-line string forms starting
3653 with a new line. This way the formatting is better respected for
3656 with a new line. This way the formatting is better respected for
3654 objects which work hard to make nice string forms.
3657 objects which work hard to make nice string forms.
3655
3658
3656 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3659 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3657 autocall would overtake data access for objects with both
3660 autocall would overtake data access for objects with both
3658 __getitem__ and __call__.
3661 __getitem__ and __call__.
3659
3662
3660 2003-08-19 *** Released version 0.5.0-rc1
3663 2003-08-19 *** Released version 0.5.0-rc1
3661
3664
3662 2003-08-19 Fernando Perez <fperez@colorado.edu>
3665 2003-08-19 Fernando Perez <fperez@colorado.edu>
3663
3666
3664 * IPython/deep_reload.py (load_tail): single tiny change here
3667 * IPython/deep_reload.py (load_tail): single tiny change here
3665 seems to fix the long-standing bug of dreload() failing to work
3668 seems to fix the long-standing bug of dreload() failing to work
3666 for dotted names. But this module is pretty tricky, so I may have
3669 for dotted names. But this module is pretty tricky, so I may have
3667 missed some subtlety. Needs more testing!.
3670 missed some subtlety. Needs more testing!.
3668
3671
3669 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3672 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3670 exceptions which have badly implemented __str__ methods.
3673 exceptions which have badly implemented __str__ methods.
3671 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3674 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3672 which I've been getting reports about from Python 2.3 users. I
3675 which I've been getting reports about from Python 2.3 users. I
3673 wish I had a simple test case to reproduce the problem, so I could
3676 wish I had a simple test case to reproduce the problem, so I could
3674 either write a cleaner workaround or file a bug report if
3677 either write a cleaner workaround or file a bug report if
3675 necessary.
3678 necessary.
3676
3679
3677 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3680 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3678 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3681 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3679 a bug report by Tjabo Kloppenburg.
3682 a bug report by Tjabo Kloppenburg.
3680
3683
3681 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3684 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3682 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3685 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3683 seems rather unstable. Thanks to a bug report by Tjabo
3686 seems rather unstable. Thanks to a bug report by Tjabo
3684 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3687 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3685
3688
3686 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3689 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3687 this out soon because of the critical fixes in the inner loop for
3690 this out soon because of the critical fixes in the inner loop for
3688 generators.
3691 generators.
3689
3692
3690 * IPython/Magic.py (Magic.getargspec): removed. This (and
3693 * IPython/Magic.py (Magic.getargspec): removed. This (and
3691 _get_def) have been obsoleted by OInspect for a long time, I
3694 _get_def) have been obsoleted by OInspect for a long time, I
3692 hadn't noticed that they were dead code.
3695 hadn't noticed that they were dead code.
3693 (Magic._ofind): restored _ofind functionality for a few literals
3696 (Magic._ofind): restored _ofind functionality for a few literals
3694 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3697 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3695 for things like "hello".capitalize?, since that would require a
3698 for things like "hello".capitalize?, since that would require a
3696 potentially dangerous eval() again.
3699 potentially dangerous eval() again.
3697
3700
3698 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3701 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3699 logic a bit more to clean up the escapes handling and minimize the
3702 logic a bit more to clean up the escapes handling and minimize the
3700 use of _ofind to only necessary cases. The interactive 'feel' of
3703 use of _ofind to only necessary cases. The interactive 'feel' of
3701 IPython should have improved quite a bit with the changes in
3704 IPython should have improved quite a bit with the changes in
3702 _prefilter and _ofind (besides being far safer than before).
3705 _prefilter and _ofind (besides being far safer than before).
3703
3706
3704 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3707 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3705 obscure, never reported). Edit would fail to find the object to
3708 obscure, never reported). Edit would fail to find the object to
3706 edit under some circumstances.
3709 edit under some circumstances.
3707 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3710 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3708 which were causing double-calling of generators. Those eval calls
3711 which were causing double-calling of generators. Those eval calls
3709 were _very_ dangerous, since code with side effects could be
3712 were _very_ dangerous, since code with side effects could be
3710 triggered. As they say, 'eval is evil'... These were the
3713 triggered. As they say, 'eval is evil'... These were the
3711 nastiest evals in IPython. Besides, _ofind is now far simpler,
3714 nastiest evals in IPython. Besides, _ofind is now far simpler,
3712 and it should also be quite a bit faster. Its use of inspect is
3715 and it should also be quite a bit faster. Its use of inspect is
3713 also safer, so perhaps some of the inspect-related crashes I've
3716 also safer, so perhaps some of the inspect-related crashes I've
3714 seen lately with Python 2.3 might be taken care of. That will
3717 seen lately with Python 2.3 might be taken care of. That will
3715 need more testing.
3718 need more testing.
3716
3719
3717 2003-08-17 Fernando Perez <fperez@colorado.edu>
3720 2003-08-17 Fernando Perez <fperez@colorado.edu>
3718
3721
3719 * IPython/iplib.py (InteractiveShell._prefilter): significant
3722 * IPython/iplib.py (InteractiveShell._prefilter): significant
3720 simplifications to the logic for handling user escapes. Faster
3723 simplifications to the logic for handling user escapes. Faster
3721 and simpler code.
3724 and simpler code.
3722
3725
3723 2003-08-14 Fernando Perez <fperez@colorado.edu>
3726 2003-08-14 Fernando Perez <fperez@colorado.edu>
3724
3727
3725 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3728 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3726 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3729 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3727 but it should be quite a bit faster. And the recursive version
3730 but it should be quite a bit faster. And the recursive version
3728 generated O(log N) intermediate storage for all rank>1 arrays,
3731 generated O(log N) intermediate storage for all rank>1 arrays,
3729 even if they were contiguous.
3732 even if they were contiguous.
3730 (l1norm): Added this function.
3733 (l1norm): Added this function.
3731 (norm): Added this function for arbitrary norms (including
3734 (norm): Added this function for arbitrary norms (including
3732 l-infinity). l1 and l2 are still special cases for convenience
3735 l-infinity). l1 and l2 are still special cases for convenience
3733 and speed.
3736 and speed.
3734
3737
3735 2003-08-03 Fernando Perez <fperez@colorado.edu>
3738 2003-08-03 Fernando Perez <fperez@colorado.edu>
3736
3739
3737 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3740 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3738 exceptions, which now raise PendingDeprecationWarnings in Python
3741 exceptions, which now raise PendingDeprecationWarnings in Python
3739 2.3. There were some in Magic and some in Gnuplot2.
3742 2.3. There were some in Magic and some in Gnuplot2.
3740
3743
3741 2003-06-30 Fernando Perez <fperez@colorado.edu>
3744 2003-06-30 Fernando Perez <fperez@colorado.edu>
3742
3745
3743 * IPython/genutils.py (page): modified to call curses only for
3746 * IPython/genutils.py (page): modified to call curses only for
3744 terminals where TERM=='xterm'. After problems under many other
3747 terminals where TERM=='xterm'. After problems under many other
3745 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3748 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3746
3749
3747 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3750 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3748 would be triggered when readline was absent. This was just an old
3751 would be triggered when readline was absent. This was just an old
3749 debugging statement I'd forgotten to take out.
3752 debugging statement I'd forgotten to take out.
3750
3753
3751 2003-06-20 Fernando Perez <fperez@colorado.edu>
3754 2003-06-20 Fernando Perez <fperez@colorado.edu>
3752
3755
3753 * IPython/genutils.py (clock): modified to return only user time
3756 * IPython/genutils.py (clock): modified to return only user time
3754 (not counting system time), after a discussion on scipy. While
3757 (not counting system time), after a discussion on scipy. While
3755 system time may be a useful quantity occasionally, it may much
3758 system time may be a useful quantity occasionally, it may much
3756 more easily be skewed by occasional swapping or other similar
3759 more easily be skewed by occasional swapping or other similar
3757 activity.
3760 activity.
3758
3761
3759 2003-06-05 Fernando Perez <fperez@colorado.edu>
3762 2003-06-05 Fernando Perez <fperez@colorado.edu>
3760
3763
3761 * IPython/numutils.py (identity): new function, for building
3764 * IPython/numutils.py (identity): new function, for building
3762 arbitrary rank Kronecker deltas (mostly backwards compatible with
3765 arbitrary rank Kronecker deltas (mostly backwards compatible with
3763 Numeric.identity)
3766 Numeric.identity)
3764
3767
3765 2003-06-03 Fernando Perez <fperez@colorado.edu>
3768 2003-06-03 Fernando Perez <fperez@colorado.edu>
3766
3769
3767 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3770 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3768 arguments passed to magics with spaces, to allow trailing '\' to
3771 arguments passed to magics with spaces, to allow trailing '\' to
3769 work normally (mainly for Windows users).
3772 work normally (mainly for Windows users).
3770
3773
3771 2003-05-29 Fernando Perez <fperez@colorado.edu>
3774 2003-05-29 Fernando Perez <fperez@colorado.edu>
3772
3775
3773 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3776 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3774 instead of pydoc.help. This fixes a bizarre behavior where
3777 instead of pydoc.help. This fixes a bizarre behavior where
3775 printing '%s' % locals() would trigger the help system. Now
3778 printing '%s' % locals() would trigger the help system. Now
3776 ipython behaves like normal python does.
3779 ipython behaves like normal python does.
3777
3780
3778 Note that if one does 'from pydoc import help', the bizarre
3781 Note that if one does 'from pydoc import help', the bizarre
3779 behavior returns, but this will also happen in normal python, so
3782 behavior returns, but this will also happen in normal python, so
3780 it's not an ipython bug anymore (it has to do with how pydoc.help
3783 it's not an ipython bug anymore (it has to do with how pydoc.help
3781 is implemented).
3784 is implemented).
3782
3785
3783 2003-05-22 Fernando Perez <fperez@colorado.edu>
3786 2003-05-22 Fernando Perez <fperez@colorado.edu>
3784
3787
3785 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3788 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3786 return [] instead of None when nothing matches, also match to end
3789 return [] instead of None when nothing matches, also match to end
3787 of line. Patch by Gary Bishop.
3790 of line. Patch by Gary Bishop.
3788
3791
3789 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3792 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3790 protection as before, for files passed on the command line. This
3793 protection as before, for files passed on the command line. This
3791 prevents the CrashHandler from kicking in if user files call into
3794 prevents the CrashHandler from kicking in if user files call into
3792 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3795 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3793 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3796 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3794
3797
3795 2003-05-20 *** Released version 0.4.0
3798 2003-05-20 *** Released version 0.4.0
3796
3799
3797 2003-05-20 Fernando Perez <fperez@colorado.edu>
3800 2003-05-20 Fernando Perez <fperez@colorado.edu>
3798
3801
3799 * setup.py: added support for manpages. It's a bit hackish b/c of
3802 * setup.py: added support for manpages. It's a bit hackish b/c of
3800 a bug in the way the bdist_rpm distutils target handles gzipped
3803 a bug in the way the bdist_rpm distutils target handles gzipped
3801 manpages, but it works. After a patch by Jack.
3804 manpages, but it works. After a patch by Jack.
3802
3805
3803 2003-05-19 Fernando Perez <fperez@colorado.edu>
3806 2003-05-19 Fernando Perez <fperez@colorado.edu>
3804
3807
3805 * IPython/numutils.py: added a mockup of the kinds module, since
3808 * IPython/numutils.py: added a mockup of the kinds module, since
3806 it was recently removed from Numeric. This way, numutils will
3809 it was recently removed from Numeric. This way, numutils will
3807 work for all users even if they are missing kinds.
3810 work for all users even if they are missing kinds.
3808
3811
3809 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3812 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3810 failure, which can occur with SWIG-wrapped extensions. After a
3813 failure, which can occur with SWIG-wrapped extensions. After a
3811 crash report from Prabhu.
3814 crash report from Prabhu.
3812
3815
3813 2003-05-16 Fernando Perez <fperez@colorado.edu>
3816 2003-05-16 Fernando Perez <fperez@colorado.edu>
3814
3817
3815 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3818 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3816 protect ipython from user code which may call directly
3819 protect ipython from user code which may call directly
3817 sys.excepthook (this looks like an ipython crash to the user, even
3820 sys.excepthook (this looks like an ipython crash to the user, even
3818 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3821 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3819 This is especially important to help users of WxWindows, but may
3822 This is especially important to help users of WxWindows, but may
3820 also be useful in other cases.
3823 also be useful in other cases.
3821
3824
3822 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3825 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3823 an optional tb_offset to be specified, and to preserve exception
3826 an optional tb_offset to be specified, and to preserve exception
3824 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3827 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3825
3828
3826 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3829 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3827
3830
3828 2003-05-15 Fernando Perez <fperez@colorado.edu>
3831 2003-05-15 Fernando Perez <fperez@colorado.edu>
3829
3832
3830 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3833 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3831 installing for a new user under Windows.
3834 installing for a new user under Windows.
3832
3835
3833 2003-05-12 Fernando Perez <fperez@colorado.edu>
3836 2003-05-12 Fernando Perez <fperez@colorado.edu>
3834
3837
3835 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3838 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3836 handler for Emacs comint-based lines. Currently it doesn't do
3839 handler for Emacs comint-based lines. Currently it doesn't do
3837 much (but importantly, it doesn't update the history cache). In
3840 much (but importantly, it doesn't update the history cache). In
3838 the future it may be expanded if Alex needs more functionality
3841 the future it may be expanded if Alex needs more functionality
3839 there.
3842 there.
3840
3843
3841 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3844 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3842 info to crash reports.
3845 info to crash reports.
3843
3846
3844 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3847 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3845 just like Python's -c. Also fixed crash with invalid -color
3848 just like Python's -c. Also fixed crash with invalid -color
3846 option value at startup. Thanks to Will French
3849 option value at startup. Thanks to Will French
3847 <wfrench-AT-bestweb.net> for the bug report.
3850 <wfrench-AT-bestweb.net> for the bug report.
3848
3851
3849 2003-05-09 Fernando Perez <fperez@colorado.edu>
3852 2003-05-09 Fernando Perez <fperez@colorado.edu>
3850
3853
3851 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3854 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3852 to EvalDict (it's a mapping, after all) and simplified its code
3855 to EvalDict (it's a mapping, after all) and simplified its code
3853 quite a bit, after a nice discussion on c.l.py where Gustavo
3856 quite a bit, after a nice discussion on c.l.py where Gustavo
3854 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3857 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3855
3858
3856 2003-04-30 Fernando Perez <fperez@colorado.edu>
3859 2003-04-30 Fernando Perez <fperez@colorado.edu>
3857
3860
3858 * IPython/genutils.py (timings_out): modified it to reduce its
3861 * IPython/genutils.py (timings_out): modified it to reduce its
3859 overhead in the common reps==1 case.
3862 overhead in the common reps==1 case.
3860
3863
3861 2003-04-29 Fernando Perez <fperez@colorado.edu>
3864 2003-04-29 Fernando Perez <fperez@colorado.edu>
3862
3865
3863 * IPython/genutils.py (timings_out): Modified to use the resource
3866 * IPython/genutils.py (timings_out): Modified to use the resource
3864 module, which avoids the wraparound problems of time.clock().
3867 module, which avoids the wraparound problems of time.clock().
3865
3868
3866 2003-04-17 *** Released version 0.2.15pre4
3869 2003-04-17 *** Released version 0.2.15pre4
3867
3870
3868 2003-04-17 Fernando Perez <fperez@colorado.edu>
3871 2003-04-17 Fernando Perez <fperez@colorado.edu>
3869
3872
3870 * setup.py (scriptfiles): Split windows-specific stuff over to a
3873 * setup.py (scriptfiles): Split windows-specific stuff over to a
3871 separate file, in an attempt to have a Windows GUI installer.
3874 separate file, in an attempt to have a Windows GUI installer.
3872 That didn't work, but part of the groundwork is done.
3875 That didn't work, but part of the groundwork is done.
3873
3876
3874 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3877 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3875 indent/unindent with 4 spaces. Particularly useful in combination
3878 indent/unindent with 4 spaces. Particularly useful in combination
3876 with the new auto-indent option.
3879 with the new auto-indent option.
3877
3880
3878 2003-04-16 Fernando Perez <fperez@colorado.edu>
3881 2003-04-16 Fernando Perez <fperez@colorado.edu>
3879
3882
3880 * IPython/Magic.py: various replacements of self.rc for
3883 * IPython/Magic.py: various replacements of self.rc for
3881 self.shell.rc. A lot more remains to be done to fully disentangle
3884 self.shell.rc. A lot more remains to be done to fully disentangle
3882 this class from the main Shell class.
3885 this class from the main Shell class.
3883
3886
3884 * IPython/GnuplotRuntime.py: added checks for mouse support so
3887 * IPython/GnuplotRuntime.py: added checks for mouse support so
3885 that we don't try to enable it if the current gnuplot doesn't
3888 that we don't try to enable it if the current gnuplot doesn't
3886 really support it. Also added checks so that we don't try to
3889 really support it. Also added checks so that we don't try to
3887 enable persist under Windows (where Gnuplot doesn't recognize the
3890 enable persist under Windows (where Gnuplot doesn't recognize the
3888 option).
3891 option).
3889
3892
3890 * IPython/iplib.py (InteractiveShell.interact): Added optional
3893 * IPython/iplib.py (InteractiveShell.interact): Added optional
3891 auto-indenting code, after a patch by King C. Shu
3894 auto-indenting code, after a patch by King C. Shu
3892 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3895 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3893 get along well with pasting indented code. If I ever figure out
3896 get along well with pasting indented code. If I ever figure out
3894 how to make that part go well, it will become on by default.
3897 how to make that part go well, it will become on by default.
3895
3898
3896 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3899 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3897 crash ipython if there was an unmatched '%' in the user's prompt
3900 crash ipython if there was an unmatched '%' in the user's prompt
3898 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3901 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3899
3902
3900 * IPython/iplib.py (InteractiveShell.interact): removed the
3903 * IPython/iplib.py (InteractiveShell.interact): removed the
3901 ability to ask the user whether he wants to crash or not at the
3904 ability to ask the user whether he wants to crash or not at the
3902 'last line' exception handler. Calling functions at that point
3905 'last line' exception handler. Calling functions at that point
3903 changes the stack, and the error reports would have incorrect
3906 changes the stack, and the error reports would have incorrect
3904 tracebacks.
3907 tracebacks.
3905
3908
3906 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3909 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3907 pass through a peger a pretty-printed form of any object. After a
3910 pass through a peger a pretty-printed form of any object. After a
3908 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3911 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3909
3912
3910 2003-04-14 Fernando Perez <fperez@colorado.edu>
3913 2003-04-14 Fernando Perez <fperez@colorado.edu>
3911
3914
3912 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3915 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3913 all files in ~ would be modified at first install (instead of
3916 all files in ~ would be modified at first install (instead of
3914 ~/.ipython). This could be potentially disastrous, as the
3917 ~/.ipython). This could be potentially disastrous, as the
3915 modification (make line-endings native) could damage binary files.
3918 modification (make line-endings native) could damage binary files.
3916
3919
3917 2003-04-10 Fernando Perez <fperez@colorado.edu>
3920 2003-04-10 Fernando Perez <fperez@colorado.edu>
3918
3921
3919 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3922 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3920 handle only lines which are invalid python. This now means that
3923 handle only lines which are invalid python. This now means that
3921 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3924 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3922 for the bug report.
3925 for the bug report.
3923
3926
3924 2003-04-01 Fernando Perez <fperez@colorado.edu>
3927 2003-04-01 Fernando Perez <fperez@colorado.edu>
3925
3928
3926 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3929 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3927 where failing to set sys.last_traceback would crash pdb.pm().
3930 where failing to set sys.last_traceback would crash pdb.pm().
3928 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3931 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3929 report.
3932 report.
3930
3933
3931 2003-03-25 Fernando Perez <fperez@colorado.edu>
3934 2003-03-25 Fernando Perez <fperez@colorado.edu>
3932
3935
3933 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3936 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3934 before printing it (it had a lot of spurious blank lines at the
3937 before printing it (it had a lot of spurious blank lines at the
3935 end).
3938 end).
3936
3939
3937 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3940 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3938 output would be sent 21 times! Obviously people don't use this
3941 output would be sent 21 times! Obviously people don't use this
3939 too often, or I would have heard about it.
3942 too often, or I would have heard about it.
3940
3943
3941 2003-03-24 Fernando Perez <fperez@colorado.edu>
3944 2003-03-24 Fernando Perez <fperez@colorado.edu>
3942
3945
3943 * setup.py (scriptfiles): renamed the data_files parameter from
3946 * setup.py (scriptfiles): renamed the data_files parameter from
3944 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3947 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3945 for the patch.
3948 for the patch.
3946
3949
3947 2003-03-20 Fernando Perez <fperez@colorado.edu>
3950 2003-03-20 Fernando Perez <fperez@colorado.edu>
3948
3951
3949 * IPython/genutils.py (error): added error() and fatal()
3952 * IPython/genutils.py (error): added error() and fatal()
3950 functions.
3953 functions.
3951
3954
3952 2003-03-18 *** Released version 0.2.15pre3
3955 2003-03-18 *** Released version 0.2.15pre3
3953
3956
3954 2003-03-18 Fernando Perez <fperez@colorado.edu>
3957 2003-03-18 Fernando Perez <fperez@colorado.edu>
3955
3958
3956 * setupext/install_data_ext.py
3959 * setupext/install_data_ext.py
3957 (install_data_ext.initialize_options): Class contributed by Jack
3960 (install_data_ext.initialize_options): Class contributed by Jack
3958 Moffit for fixing the old distutils hack. He is sending this to
3961 Moffit for fixing the old distutils hack. He is sending this to
3959 the distutils folks so in the future we may not need it as a
3962 the distutils folks so in the future we may not need it as a
3960 private fix.
3963 private fix.
3961
3964
3962 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3965 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3963 changes for Debian packaging. See his patch for full details.
3966 changes for Debian packaging. See his patch for full details.
3964 The old distutils hack of making the ipythonrc* files carry a
3967 The old distutils hack of making the ipythonrc* files carry a
3965 bogus .py extension is gone, at last. Examples were moved to a
3968 bogus .py extension is gone, at last. Examples were moved to a
3966 separate subdir under doc/, and the separate executable scripts
3969 separate subdir under doc/, and the separate executable scripts
3967 now live in their own directory. Overall a great cleanup. The
3970 now live in their own directory. Overall a great cleanup. The
3968 manual was updated to use the new files, and setup.py has been
3971 manual was updated to use the new files, and setup.py has been
3969 fixed for this setup.
3972 fixed for this setup.
3970
3973
3971 * IPython/PyColorize.py (Parser.usage): made non-executable and
3974 * IPython/PyColorize.py (Parser.usage): made non-executable and
3972 created a pycolor wrapper around it to be included as a script.
3975 created a pycolor wrapper around it to be included as a script.
3973
3976
3974 2003-03-12 *** Released version 0.2.15pre2
3977 2003-03-12 *** Released version 0.2.15pre2
3975
3978
3976 2003-03-12 Fernando Perez <fperez@colorado.edu>
3979 2003-03-12 Fernando Perez <fperez@colorado.edu>
3977
3980
3978 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3981 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3979 long-standing problem with garbage characters in some terminals.
3982 long-standing problem with garbage characters in some terminals.
3980 The issue was really that the \001 and \002 escapes must _only_ be
3983 The issue was really that the \001 and \002 escapes must _only_ be
3981 passed to input prompts (which call readline), but _never_ to
3984 passed to input prompts (which call readline), but _never_ to
3982 normal text to be printed on screen. I changed ColorANSI to have
3985 normal text to be printed on screen. I changed ColorANSI to have
3983 two classes: TermColors and InputTermColors, each with the
3986 two classes: TermColors and InputTermColors, each with the
3984 appropriate escapes for input prompts or normal text. The code in
3987 appropriate escapes for input prompts or normal text. The code in
3985 Prompts.py got slightly more complicated, but this very old and
3988 Prompts.py got slightly more complicated, but this very old and
3986 annoying bug is finally fixed.
3989 annoying bug is finally fixed.
3987
3990
3988 All the credit for nailing down the real origin of this problem
3991 All the credit for nailing down the real origin of this problem
3989 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3992 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3990 *Many* thanks to him for spending quite a bit of effort on this.
3993 *Many* thanks to him for spending quite a bit of effort on this.
3991
3994
3992 2003-03-05 *** Released version 0.2.15pre1
3995 2003-03-05 *** Released version 0.2.15pre1
3993
3996
3994 2003-03-03 Fernando Perez <fperez@colorado.edu>
3997 2003-03-03 Fernando Perez <fperez@colorado.edu>
3995
3998
3996 * IPython/FakeModule.py: Moved the former _FakeModule to a
3999 * IPython/FakeModule.py: Moved the former _FakeModule to a
3997 separate file, because it's also needed by Magic (to fix a similar
4000 separate file, because it's also needed by Magic (to fix a similar
3998 pickle-related issue in @run).
4001 pickle-related issue in @run).
3999
4002
4000 2003-03-02 Fernando Perez <fperez@colorado.edu>
4003 2003-03-02 Fernando Perez <fperez@colorado.edu>
4001
4004
4002 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4005 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4003 the autocall option at runtime.
4006 the autocall option at runtime.
4004 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4007 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4005 across Magic.py to start separating Magic from InteractiveShell.
4008 across Magic.py to start separating Magic from InteractiveShell.
4006 (Magic._ofind): Fixed to return proper namespace for dotted
4009 (Magic._ofind): Fixed to return proper namespace for dotted
4007 names. Before, a dotted name would always return 'not currently
4010 names. Before, a dotted name would always return 'not currently
4008 defined', because it would find the 'parent'. s.x would be found,
4011 defined', because it would find the 'parent'. s.x would be found,
4009 but since 'x' isn't defined by itself, it would get confused.
4012 but since 'x' isn't defined by itself, it would get confused.
4010 (Magic.magic_run): Fixed pickling problems reported by Ralf
4013 (Magic.magic_run): Fixed pickling problems reported by Ralf
4011 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4014 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4012 that I'd used when Mike Heeter reported similar issues at the
4015 that I'd used when Mike Heeter reported similar issues at the
4013 top-level, but now for @run. It boils down to injecting the
4016 top-level, but now for @run. It boils down to injecting the
4014 namespace where code is being executed with something that looks
4017 namespace where code is being executed with something that looks
4015 enough like a module to fool pickle.dump(). Since a pickle stores
4018 enough like a module to fool pickle.dump(). Since a pickle stores
4016 a named reference to the importing module, we need this for
4019 a named reference to the importing module, we need this for
4017 pickles to save something sensible.
4020 pickles to save something sensible.
4018
4021
4019 * IPython/ipmaker.py (make_IPython): added an autocall option.
4022 * IPython/ipmaker.py (make_IPython): added an autocall option.
4020
4023
4021 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4024 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4022 the auto-eval code. Now autocalling is an option, and the code is
4025 the auto-eval code. Now autocalling is an option, and the code is
4023 also vastly safer. There is no more eval() involved at all.
4026 also vastly safer. There is no more eval() involved at all.
4024
4027
4025 2003-03-01 Fernando Perez <fperez@colorado.edu>
4028 2003-03-01 Fernando Perez <fperez@colorado.edu>
4026
4029
4027 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4030 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4028 dict with named keys instead of a tuple.
4031 dict with named keys instead of a tuple.
4029
4032
4030 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4033 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4031
4034
4032 * setup.py (make_shortcut): Fixed message about directories
4035 * setup.py (make_shortcut): Fixed message about directories
4033 created during Windows installation (the directories were ok, just
4036 created during Windows installation (the directories were ok, just
4034 the printed message was misleading). Thanks to Chris Liechti
4037 the printed message was misleading). Thanks to Chris Liechti
4035 <cliechti-AT-gmx.net> for the heads up.
4038 <cliechti-AT-gmx.net> for the heads up.
4036
4039
4037 2003-02-21 Fernando Perez <fperez@colorado.edu>
4040 2003-02-21 Fernando Perez <fperez@colorado.edu>
4038
4041
4039 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4042 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4040 of ValueError exception when checking for auto-execution. This
4043 of ValueError exception when checking for auto-execution. This
4041 one is raised by things like Numeric arrays arr.flat when the
4044 one is raised by things like Numeric arrays arr.flat when the
4042 array is non-contiguous.
4045 array is non-contiguous.
4043
4046
4044 2003-01-31 Fernando Perez <fperez@colorado.edu>
4047 2003-01-31 Fernando Perez <fperez@colorado.edu>
4045
4048
4046 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4049 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4047 not return any value at all (even though the command would get
4050 not return any value at all (even though the command would get
4048 executed).
4051 executed).
4049 (xsys): Flush stdout right after printing the command to ensure
4052 (xsys): Flush stdout right after printing the command to ensure
4050 proper ordering of commands and command output in the total
4053 proper ordering of commands and command output in the total
4051 output.
4054 output.
4052 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4055 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4053 system/getoutput as defaults. The old ones are kept for
4056 system/getoutput as defaults. The old ones are kept for
4054 compatibility reasons, so no code which uses this library needs
4057 compatibility reasons, so no code which uses this library needs
4055 changing.
4058 changing.
4056
4059
4057 2003-01-27 *** Released version 0.2.14
4060 2003-01-27 *** Released version 0.2.14
4058
4061
4059 2003-01-25 Fernando Perez <fperez@colorado.edu>
4062 2003-01-25 Fernando Perez <fperez@colorado.edu>
4060
4063
4061 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4064 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4062 functions defined in previous edit sessions could not be re-edited
4065 functions defined in previous edit sessions could not be re-edited
4063 (because the temp files were immediately removed). Now temp files
4066 (because the temp files were immediately removed). Now temp files
4064 are removed only at IPython's exit.
4067 are removed only at IPython's exit.
4065 (Magic.magic_run): Improved @run to perform shell-like expansions
4068 (Magic.magic_run): Improved @run to perform shell-like expansions
4066 on its arguments (~users and $VARS). With this, @run becomes more
4069 on its arguments (~users and $VARS). With this, @run becomes more
4067 like a normal command-line.
4070 like a normal command-line.
4068
4071
4069 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4072 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4070 bugs related to embedding and cleaned up that code. A fairly
4073 bugs related to embedding and cleaned up that code. A fairly
4071 important one was the impossibility to access the global namespace
4074 important one was the impossibility to access the global namespace
4072 through the embedded IPython (only local variables were visible).
4075 through the embedded IPython (only local variables were visible).
4073
4076
4074 2003-01-14 Fernando Perez <fperez@colorado.edu>
4077 2003-01-14 Fernando Perez <fperez@colorado.edu>
4075
4078
4076 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4079 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4077 auto-calling to be a bit more conservative. Now it doesn't get
4080 auto-calling to be a bit more conservative. Now it doesn't get
4078 triggered if any of '!=()<>' are in the rest of the input line, to
4081 triggered if any of '!=()<>' are in the rest of the input line, to
4079 allow comparing callables. Thanks to Alex for the heads up.
4082 allow comparing callables. Thanks to Alex for the heads up.
4080
4083
4081 2003-01-07 Fernando Perez <fperez@colorado.edu>
4084 2003-01-07 Fernando Perez <fperez@colorado.edu>
4082
4085
4083 * IPython/genutils.py (page): fixed estimation of the number of
4086 * IPython/genutils.py (page): fixed estimation of the number of
4084 lines in a string to be paged to simply count newlines. This
4087 lines in a string to be paged to simply count newlines. This
4085 prevents over-guessing due to embedded escape sequences. A better
4088 prevents over-guessing due to embedded escape sequences. A better
4086 long-term solution would involve stripping out the control chars
4089 long-term solution would involve stripping out the control chars
4087 for the count, but it's potentially so expensive I just don't
4090 for the count, but it's potentially so expensive I just don't
4088 think it's worth doing.
4091 think it's worth doing.
4089
4092
4090 2002-12-19 *** Released version 0.2.14pre50
4093 2002-12-19 *** Released version 0.2.14pre50
4091
4094
4092 2002-12-19 Fernando Perez <fperez@colorado.edu>
4095 2002-12-19 Fernando Perez <fperez@colorado.edu>
4093
4096
4094 * tools/release (version): Changed release scripts to inform
4097 * tools/release (version): Changed release scripts to inform
4095 Andrea and build a NEWS file with a list of recent changes.
4098 Andrea and build a NEWS file with a list of recent changes.
4096
4099
4097 * IPython/ColorANSI.py (__all__): changed terminal detection
4100 * IPython/ColorANSI.py (__all__): changed terminal detection
4098 code. Seems to work better for xterms without breaking
4101 code. Seems to work better for xterms without breaking
4099 konsole. Will need more testing to determine if WinXP and Mac OSX
4102 konsole. Will need more testing to determine if WinXP and Mac OSX
4100 also work ok.
4103 also work ok.
4101
4104
4102 2002-12-18 *** Released version 0.2.14pre49
4105 2002-12-18 *** Released version 0.2.14pre49
4103
4106
4104 2002-12-18 Fernando Perez <fperez@colorado.edu>
4107 2002-12-18 Fernando Perez <fperez@colorado.edu>
4105
4108
4106 * Docs: added new info about Mac OSX, from Andrea.
4109 * Docs: added new info about Mac OSX, from Andrea.
4107
4110
4108 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4111 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4109 allow direct plotting of python strings whose format is the same
4112 allow direct plotting of python strings whose format is the same
4110 of gnuplot data files.
4113 of gnuplot data files.
4111
4114
4112 2002-12-16 Fernando Perez <fperez@colorado.edu>
4115 2002-12-16 Fernando Perez <fperez@colorado.edu>
4113
4116
4114 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4117 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4115 value of exit question to be acknowledged.
4118 value of exit question to be acknowledged.
4116
4119
4117 2002-12-03 Fernando Perez <fperez@colorado.edu>
4120 2002-12-03 Fernando Perez <fperez@colorado.edu>
4118
4121
4119 * IPython/ipmaker.py: removed generators, which had been added
4122 * IPython/ipmaker.py: removed generators, which had been added
4120 by mistake in an earlier debugging run. This was causing trouble
4123 by mistake in an earlier debugging run. This was causing trouble
4121 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4124 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4122 for pointing this out.
4125 for pointing this out.
4123
4126
4124 2002-11-17 Fernando Perez <fperez@colorado.edu>
4127 2002-11-17 Fernando Perez <fperez@colorado.edu>
4125
4128
4126 * Manual: updated the Gnuplot section.
4129 * Manual: updated the Gnuplot section.
4127
4130
4128 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4131 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4129 a much better split of what goes in Runtime and what goes in
4132 a much better split of what goes in Runtime and what goes in
4130 Interactive.
4133 Interactive.
4131
4134
4132 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4135 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4133 being imported from iplib.
4136 being imported from iplib.
4134
4137
4135 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4138 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4136 for command-passing. Now the global Gnuplot instance is called
4139 for command-passing. Now the global Gnuplot instance is called
4137 'gp' instead of 'g', which was really a far too fragile and
4140 'gp' instead of 'g', which was really a far too fragile and
4138 common name.
4141 common name.
4139
4142
4140 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4143 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4141 bounding boxes generated by Gnuplot for square plots.
4144 bounding boxes generated by Gnuplot for square plots.
4142
4145
4143 * IPython/genutils.py (popkey): new function added. I should
4146 * IPython/genutils.py (popkey): new function added. I should
4144 suggest this on c.l.py as a dict method, it seems useful.
4147 suggest this on c.l.py as a dict method, it seems useful.
4145
4148
4146 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4149 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4147 to transparently handle PostScript generation. MUCH better than
4150 to transparently handle PostScript generation. MUCH better than
4148 the previous plot_eps/replot_eps (which I removed now). The code
4151 the previous plot_eps/replot_eps (which I removed now). The code
4149 is also fairly clean and well documented now (including
4152 is also fairly clean and well documented now (including
4150 docstrings).
4153 docstrings).
4151
4154
4152 2002-11-13 Fernando Perez <fperez@colorado.edu>
4155 2002-11-13 Fernando Perez <fperez@colorado.edu>
4153
4156
4154 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4157 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4155 (inconsistent with options).
4158 (inconsistent with options).
4156
4159
4157 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4160 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4158 manually disabled, I don't know why. Fixed it.
4161 manually disabled, I don't know why. Fixed it.
4159 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4162 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4160 eps output.
4163 eps output.
4161
4164
4162 2002-11-12 Fernando Perez <fperez@colorado.edu>
4165 2002-11-12 Fernando Perez <fperez@colorado.edu>
4163
4166
4164 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4167 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4165 don't propagate up to caller. Fixes crash reported by François
4168 don't propagate up to caller. Fixes crash reported by François
4166 Pinard.
4169 Pinard.
4167
4170
4168 2002-11-09 Fernando Perez <fperez@colorado.edu>
4171 2002-11-09 Fernando Perez <fperez@colorado.edu>
4169
4172
4170 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4173 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4171 history file for new users.
4174 history file for new users.
4172 (make_IPython): fixed bug where initial install would leave the
4175 (make_IPython): fixed bug where initial install would leave the
4173 user running in the .ipython dir.
4176 user running in the .ipython dir.
4174 (make_IPython): fixed bug where config dir .ipython would be
4177 (make_IPython): fixed bug where config dir .ipython would be
4175 created regardless of the given -ipythondir option. Thanks to Cory
4178 created regardless of the given -ipythondir option. Thanks to Cory
4176 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4179 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4177
4180
4178 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4181 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4179 type confirmations. Will need to use it in all of IPython's code
4182 type confirmations. Will need to use it in all of IPython's code
4180 consistently.
4183 consistently.
4181
4184
4182 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4185 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4183 context to print 31 lines instead of the default 5. This will make
4186 context to print 31 lines instead of the default 5. This will make
4184 the crash reports extremely detailed in case the problem is in
4187 the crash reports extremely detailed in case the problem is in
4185 libraries I don't have access to.
4188 libraries I don't have access to.
4186
4189
4187 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4190 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4188 line of defense' code to still crash, but giving users fair
4191 line of defense' code to still crash, but giving users fair
4189 warning. I don't want internal errors to go unreported: if there's
4192 warning. I don't want internal errors to go unreported: if there's
4190 an internal problem, IPython should crash and generate a full
4193 an internal problem, IPython should crash and generate a full
4191 report.
4194 report.
4192
4195
4193 2002-11-08 Fernando Perez <fperez@colorado.edu>
4196 2002-11-08 Fernando Perez <fperez@colorado.edu>
4194
4197
4195 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4198 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4196 otherwise uncaught exceptions which can appear if people set
4199 otherwise uncaught exceptions which can appear if people set
4197 sys.stdout to something badly broken. Thanks to a crash report
4200 sys.stdout to something badly broken. Thanks to a crash report
4198 from henni-AT-mail.brainbot.com.
4201 from henni-AT-mail.brainbot.com.
4199
4202
4200 2002-11-04 Fernando Perez <fperez@colorado.edu>
4203 2002-11-04 Fernando Perez <fperez@colorado.edu>
4201
4204
4202 * IPython/iplib.py (InteractiveShell.interact): added
4205 * IPython/iplib.py (InteractiveShell.interact): added
4203 __IPYTHON__active to the builtins. It's a flag which goes on when
4206 __IPYTHON__active to the builtins. It's a flag which goes on when
4204 the interaction starts and goes off again when it stops. This
4207 the interaction starts and goes off again when it stops. This
4205 allows embedding code to detect being inside IPython. Before this
4208 allows embedding code to detect being inside IPython. Before this
4206 was done via __IPYTHON__, but that only shows that an IPython
4209 was done via __IPYTHON__, but that only shows that an IPython
4207 instance has been created.
4210 instance has been created.
4208
4211
4209 * IPython/Magic.py (Magic.magic_env): I realized that in a
4212 * IPython/Magic.py (Magic.magic_env): I realized that in a
4210 UserDict, instance.data holds the data as a normal dict. So I
4213 UserDict, instance.data holds the data as a normal dict. So I
4211 modified @env to return os.environ.data instead of rebuilding a
4214 modified @env to return os.environ.data instead of rebuilding a
4212 dict by hand.
4215 dict by hand.
4213
4216
4214 2002-11-02 Fernando Perez <fperez@colorado.edu>
4217 2002-11-02 Fernando Perez <fperez@colorado.edu>
4215
4218
4216 * IPython/genutils.py (warn): changed so that level 1 prints no
4219 * IPython/genutils.py (warn): changed so that level 1 prints no
4217 header. Level 2 is now the default (with 'WARNING' header, as
4220 header. Level 2 is now the default (with 'WARNING' header, as
4218 before). I think I tracked all places where changes were needed in
4221 before). I think I tracked all places where changes were needed in
4219 IPython, but outside code using the old level numbering may have
4222 IPython, but outside code using the old level numbering may have
4220 broken.
4223 broken.
4221
4224
4222 * IPython/iplib.py (InteractiveShell.runcode): added this to
4225 * IPython/iplib.py (InteractiveShell.runcode): added this to
4223 handle the tracebacks in SystemExit traps correctly. The previous
4226 handle the tracebacks in SystemExit traps correctly. The previous
4224 code (through interact) was printing more of the stack than
4227 code (through interact) was printing more of the stack than
4225 necessary, showing IPython internal code to the user.
4228 necessary, showing IPython internal code to the user.
4226
4229
4227 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4230 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4228 default. Now that the default at the confirmation prompt is yes,
4231 default. Now that the default at the confirmation prompt is yes,
4229 it's not so intrusive. François' argument that ipython sessions
4232 it's not so intrusive. François' argument that ipython sessions
4230 tend to be complex enough not to lose them from an accidental C-d,
4233 tend to be complex enough not to lose them from an accidental C-d,
4231 is a valid one.
4234 is a valid one.
4232
4235
4233 * IPython/iplib.py (InteractiveShell.interact): added a
4236 * IPython/iplib.py (InteractiveShell.interact): added a
4234 showtraceback() call to the SystemExit trap, and modified the exit
4237 showtraceback() call to the SystemExit trap, and modified the exit
4235 confirmation to have yes as the default.
4238 confirmation to have yes as the default.
4236
4239
4237 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4240 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4238 this file. It's been gone from the code for a long time, this was
4241 this file. It's been gone from the code for a long time, this was
4239 simply leftover junk.
4242 simply leftover junk.
4240
4243
4241 2002-11-01 Fernando Perez <fperez@colorado.edu>
4244 2002-11-01 Fernando Perez <fperez@colorado.edu>
4242
4245
4243 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4246 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4244 added. If set, IPython now traps EOF and asks for
4247 added. If set, IPython now traps EOF and asks for
4245 confirmation. After a request by François Pinard.
4248 confirmation. After a request by François Pinard.
4246
4249
4247 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4250 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4248 of @abort, and with a new (better) mechanism for handling the
4251 of @abort, and with a new (better) mechanism for handling the
4249 exceptions.
4252 exceptions.
4250
4253
4251 2002-10-27 Fernando Perez <fperez@colorado.edu>
4254 2002-10-27 Fernando Perez <fperez@colorado.edu>
4252
4255
4253 * IPython/usage.py (__doc__): updated the --help information and
4256 * IPython/usage.py (__doc__): updated the --help information and
4254 the ipythonrc file to indicate that -log generates
4257 the ipythonrc file to indicate that -log generates
4255 ./ipython.log. Also fixed the corresponding info in @logstart.
4258 ./ipython.log. Also fixed the corresponding info in @logstart.
4256 This and several other fixes in the manuals thanks to reports by
4259 This and several other fixes in the manuals thanks to reports by
4257 François Pinard <pinard-AT-iro.umontreal.ca>.
4260 François Pinard <pinard-AT-iro.umontreal.ca>.
4258
4261
4259 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4262 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4260 refer to @logstart (instead of @log, which doesn't exist).
4263 refer to @logstart (instead of @log, which doesn't exist).
4261
4264
4262 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4265 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4263 AttributeError crash. Thanks to Christopher Armstrong
4266 AttributeError crash. Thanks to Christopher Armstrong
4264 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4267 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4265 introduced recently (in 0.2.14pre37) with the fix to the eval
4268 introduced recently (in 0.2.14pre37) with the fix to the eval
4266 problem mentioned below.
4269 problem mentioned below.
4267
4270
4268 2002-10-17 Fernando Perez <fperez@colorado.edu>
4271 2002-10-17 Fernando Perez <fperez@colorado.edu>
4269
4272
4270 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4273 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4271 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4274 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4272
4275
4273 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4276 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4274 this function to fix a problem reported by Alex Schmolck. He saw
4277 this function to fix a problem reported by Alex Schmolck. He saw
4275 it with list comprehensions and generators, which were getting
4278 it with list comprehensions and generators, which were getting
4276 called twice. The real problem was an 'eval' call in testing for
4279 called twice. The real problem was an 'eval' call in testing for
4277 automagic which was evaluating the input line silently.
4280 automagic which was evaluating the input line silently.
4278
4281
4279 This is a potentially very nasty bug, if the input has side
4282 This is a potentially very nasty bug, if the input has side
4280 effects which must not be repeated. The code is much cleaner now,
4283 effects which must not be repeated. The code is much cleaner now,
4281 without any blanket 'except' left and with a regexp test for
4284 without any blanket 'except' left and with a regexp test for
4282 actual function names.
4285 actual function names.
4283
4286
4284 But an eval remains, which I'm not fully comfortable with. I just
4287 But an eval remains, which I'm not fully comfortable with. I just
4285 don't know how to find out if an expression could be a callable in
4288 don't know how to find out if an expression could be a callable in
4286 the user's namespace without doing an eval on the string. However
4289 the user's namespace without doing an eval on the string. However
4287 that string is now much more strictly checked so that no code
4290 that string is now much more strictly checked so that no code
4288 slips by, so the eval should only happen for things that can
4291 slips by, so the eval should only happen for things that can
4289 really be only function/method names.
4292 really be only function/method names.
4290
4293
4291 2002-10-15 Fernando Perez <fperez@colorado.edu>
4294 2002-10-15 Fernando Perez <fperez@colorado.edu>
4292
4295
4293 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4296 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4294 OSX information to main manual, removed README_Mac_OSX file from
4297 OSX information to main manual, removed README_Mac_OSX file from
4295 distribution. Also updated credits for recent additions.
4298 distribution. Also updated credits for recent additions.
4296
4299
4297 2002-10-10 Fernando Perez <fperez@colorado.edu>
4300 2002-10-10 Fernando Perez <fperez@colorado.edu>
4298
4301
4299 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4302 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4300 terminal-related issues. Many thanks to Andrea Riciputi
4303 terminal-related issues. Many thanks to Andrea Riciputi
4301 <andrea.riciputi-AT-libero.it> for writing it.
4304 <andrea.riciputi-AT-libero.it> for writing it.
4302
4305
4303 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4306 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4304 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4307 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4305
4308
4306 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4309 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4307 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4310 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4308 <syver-en-AT-online.no> who both submitted patches for this problem.
4311 <syver-en-AT-online.no> who both submitted patches for this problem.
4309
4312
4310 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4313 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4311 global embedding to make sure that things don't overwrite user
4314 global embedding to make sure that things don't overwrite user
4312 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4315 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4313
4316
4314 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4317 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4315 compatibility. Thanks to Hayden Callow
4318 compatibility. Thanks to Hayden Callow
4316 <h.callow-AT-elec.canterbury.ac.nz>
4319 <h.callow-AT-elec.canterbury.ac.nz>
4317
4320
4318 2002-10-04 Fernando Perez <fperez@colorado.edu>
4321 2002-10-04 Fernando Perez <fperez@colorado.edu>
4319
4322
4320 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4323 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4321 Gnuplot.File objects.
4324 Gnuplot.File objects.
4322
4325
4323 2002-07-23 Fernando Perez <fperez@colorado.edu>
4326 2002-07-23 Fernando Perez <fperez@colorado.edu>
4324
4327
4325 * IPython/genutils.py (timing): Added timings() and timing() for
4328 * IPython/genutils.py (timing): Added timings() and timing() for
4326 quick access to the most commonly needed data, the execution
4329 quick access to the most commonly needed data, the execution
4327 times. Old timing() renamed to timings_out().
4330 times. Old timing() renamed to timings_out().
4328
4331
4329 2002-07-18 Fernando Perez <fperez@colorado.edu>
4332 2002-07-18 Fernando Perez <fperez@colorado.edu>
4330
4333
4331 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4334 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4332 bug with nested instances disrupting the parent's tab completion.
4335 bug with nested instances disrupting the parent's tab completion.
4333
4336
4334 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4337 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4335 all_completions code to begin the emacs integration.
4338 all_completions code to begin the emacs integration.
4336
4339
4337 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4340 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4338 argument to allow titling individual arrays when plotting.
4341 argument to allow titling individual arrays when plotting.
4339
4342
4340 2002-07-15 Fernando Perez <fperez@colorado.edu>
4343 2002-07-15 Fernando Perez <fperez@colorado.edu>
4341
4344
4342 * setup.py (make_shortcut): changed to retrieve the value of
4345 * setup.py (make_shortcut): changed to retrieve the value of
4343 'Program Files' directory from the registry (this value changes in
4346 'Program Files' directory from the registry (this value changes in
4344 non-english versions of Windows). Thanks to Thomas Fanslau
4347 non-english versions of Windows). Thanks to Thomas Fanslau
4345 <tfanslau-AT-gmx.de> for the report.
4348 <tfanslau-AT-gmx.de> for the report.
4346
4349
4347 2002-07-10 Fernando Perez <fperez@colorado.edu>
4350 2002-07-10 Fernando Perez <fperez@colorado.edu>
4348
4351
4349 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4352 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4350 a bug in pdb, which crashes if a line with only whitespace is
4353 a bug in pdb, which crashes if a line with only whitespace is
4351 entered. Bug report submitted to sourceforge.
4354 entered. Bug report submitted to sourceforge.
4352
4355
4353 2002-07-09 Fernando Perez <fperez@colorado.edu>
4356 2002-07-09 Fernando Perez <fperez@colorado.edu>
4354
4357
4355 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4358 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4356 reporting exceptions (it's a bug in inspect.py, I just set a
4359 reporting exceptions (it's a bug in inspect.py, I just set a
4357 workaround).
4360 workaround).
4358
4361
4359 2002-07-08 Fernando Perez <fperez@colorado.edu>
4362 2002-07-08 Fernando Perez <fperez@colorado.edu>
4360
4363
4361 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4364 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4362 __IPYTHON__ in __builtins__ to show up in user_ns.
4365 __IPYTHON__ in __builtins__ to show up in user_ns.
4363
4366
4364 2002-07-03 Fernando Perez <fperez@colorado.edu>
4367 2002-07-03 Fernando Perez <fperez@colorado.edu>
4365
4368
4366 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4369 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4367 name from @gp_set_instance to @gp_set_default.
4370 name from @gp_set_instance to @gp_set_default.
4368
4371
4369 * IPython/ipmaker.py (make_IPython): default editor value set to
4372 * IPython/ipmaker.py (make_IPython): default editor value set to
4370 '0' (a string), to match the rc file. Otherwise will crash when
4373 '0' (a string), to match the rc file. Otherwise will crash when
4371 .strip() is called on it.
4374 .strip() is called on it.
4372
4375
4373
4376
4374 2002-06-28 Fernando Perez <fperez@colorado.edu>
4377 2002-06-28 Fernando Perez <fperez@colorado.edu>
4375
4378
4376 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4379 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4377 of files in current directory when a file is executed via
4380 of files in current directory when a file is executed via
4378 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4381 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4379
4382
4380 * setup.py (manfiles): fix for rpm builds, submitted by RA
4383 * setup.py (manfiles): fix for rpm builds, submitted by RA
4381 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4384 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4382
4385
4383 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4386 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4384 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4387 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4385 string!). A. Schmolck caught this one.
4388 string!). A. Schmolck caught this one.
4386
4389
4387 2002-06-27 Fernando Perez <fperez@colorado.edu>
4390 2002-06-27 Fernando Perez <fperez@colorado.edu>
4388
4391
4389 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4392 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4390 defined files at the cmd line. __name__ wasn't being set to
4393 defined files at the cmd line. __name__ wasn't being set to
4391 __main__.
4394 __main__.
4392
4395
4393 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4396 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4394 regular lists and tuples besides Numeric arrays.
4397 regular lists and tuples besides Numeric arrays.
4395
4398
4396 * IPython/Prompts.py (CachedOutput.__call__): Added output
4399 * IPython/Prompts.py (CachedOutput.__call__): Added output
4397 supression for input ending with ';'. Similar to Mathematica and
4400 supression for input ending with ';'. Similar to Mathematica and
4398 Matlab. The _* vars and Out[] list are still updated, just like
4401 Matlab. The _* vars and Out[] list are still updated, just like
4399 Mathematica behaves.
4402 Mathematica behaves.
4400
4403
4401 2002-06-25 Fernando Perez <fperez@colorado.edu>
4404 2002-06-25 Fernando Perez <fperez@colorado.edu>
4402
4405
4403 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4406 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4404 .ini extensions for profiels under Windows.
4407 .ini extensions for profiels under Windows.
4405
4408
4406 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4409 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4407 string form. Fix contributed by Alexander Schmolck
4410 string form. Fix contributed by Alexander Schmolck
4408 <a.schmolck-AT-gmx.net>
4411 <a.schmolck-AT-gmx.net>
4409
4412
4410 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4413 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4411 pre-configured Gnuplot instance.
4414 pre-configured Gnuplot instance.
4412
4415
4413 2002-06-21 Fernando Perez <fperez@colorado.edu>
4416 2002-06-21 Fernando Perez <fperez@colorado.edu>
4414
4417
4415 * IPython/numutils.py (exp_safe): new function, works around the
4418 * IPython/numutils.py (exp_safe): new function, works around the
4416 underflow problems in Numeric.
4419 underflow problems in Numeric.
4417 (log2): New fn. Safe log in base 2: returns exact integer answer
4420 (log2): New fn. Safe log in base 2: returns exact integer answer
4418 for exact integer powers of 2.
4421 for exact integer powers of 2.
4419
4422
4420 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4423 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4421 properly.
4424 properly.
4422
4425
4423 2002-06-20 Fernando Perez <fperez@colorado.edu>
4426 2002-06-20 Fernando Perez <fperez@colorado.edu>
4424
4427
4425 * IPython/genutils.py (timing): new function like
4428 * IPython/genutils.py (timing): new function like
4426 Mathematica's. Similar to time_test, but returns more info.
4429 Mathematica's. Similar to time_test, but returns more info.
4427
4430
4428 2002-06-18 Fernando Perez <fperez@colorado.edu>
4431 2002-06-18 Fernando Perez <fperez@colorado.edu>
4429
4432
4430 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4433 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4431 according to Mike Heeter's suggestions.
4434 according to Mike Heeter's suggestions.
4432
4435
4433 2002-06-16 Fernando Perez <fperez@colorado.edu>
4436 2002-06-16 Fernando Perez <fperez@colorado.edu>
4434
4437
4435 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4438 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4436 system. GnuplotMagic is gone as a user-directory option. New files
4439 system. GnuplotMagic is gone as a user-directory option. New files
4437 make it easier to use all the gnuplot stuff both from external
4440 make it easier to use all the gnuplot stuff both from external
4438 programs as well as from IPython. Had to rewrite part of
4441 programs as well as from IPython. Had to rewrite part of
4439 hardcopy() b/c of a strange bug: often the ps files simply don't
4442 hardcopy() b/c of a strange bug: often the ps files simply don't
4440 get created, and require a repeat of the command (often several
4443 get created, and require a repeat of the command (often several
4441 times).
4444 times).
4442
4445
4443 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4446 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4444 resolve output channel at call time, so that if sys.stderr has
4447 resolve output channel at call time, so that if sys.stderr has
4445 been redirected by user this gets honored.
4448 been redirected by user this gets honored.
4446
4449
4447 2002-06-13 Fernando Perez <fperez@colorado.edu>
4450 2002-06-13 Fernando Perez <fperez@colorado.edu>
4448
4451
4449 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4452 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4450 IPShell. Kept a copy with the old names to avoid breaking people's
4453 IPShell. Kept a copy with the old names to avoid breaking people's
4451 embedded code.
4454 embedded code.
4452
4455
4453 * IPython/ipython: simplified it to the bare minimum after
4456 * IPython/ipython: simplified it to the bare minimum after
4454 Holger's suggestions. Added info about how to use it in
4457 Holger's suggestions. Added info about how to use it in
4455 PYTHONSTARTUP.
4458 PYTHONSTARTUP.
4456
4459
4457 * IPython/Shell.py (IPythonShell): changed the options passing
4460 * IPython/Shell.py (IPythonShell): changed the options passing
4458 from a string with funky %s replacements to a straight list. Maybe
4461 from a string with funky %s replacements to a straight list. Maybe
4459 a bit more typing, but it follows sys.argv conventions, so there's
4462 a bit more typing, but it follows sys.argv conventions, so there's
4460 less special-casing to remember.
4463 less special-casing to remember.
4461
4464
4462 2002-06-12 Fernando Perez <fperez@colorado.edu>
4465 2002-06-12 Fernando Perez <fperez@colorado.edu>
4463
4466
4464 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4467 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4465 command. Thanks to a suggestion by Mike Heeter.
4468 command. Thanks to a suggestion by Mike Heeter.
4466 (Magic.magic_pfile): added behavior to look at filenames if given
4469 (Magic.magic_pfile): added behavior to look at filenames if given
4467 arg is not a defined object.
4470 arg is not a defined object.
4468 (Magic.magic_save): New @save function to save code snippets. Also
4471 (Magic.magic_save): New @save function to save code snippets. Also
4469 a Mike Heeter idea.
4472 a Mike Heeter idea.
4470
4473
4471 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4474 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4472 plot() and replot(). Much more convenient now, especially for
4475 plot() and replot(). Much more convenient now, especially for
4473 interactive use.
4476 interactive use.
4474
4477
4475 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4478 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4476 filenames.
4479 filenames.
4477
4480
4478 2002-06-02 Fernando Perez <fperez@colorado.edu>
4481 2002-06-02 Fernando Perez <fperez@colorado.edu>
4479
4482
4480 * IPython/Struct.py (Struct.__init__): modified to admit
4483 * IPython/Struct.py (Struct.__init__): modified to admit
4481 initialization via another struct.
4484 initialization via another struct.
4482
4485
4483 * IPython/genutils.py (SystemExec.__init__): New stateful
4486 * IPython/genutils.py (SystemExec.__init__): New stateful
4484 interface to xsys and bq. Useful for writing system scripts.
4487 interface to xsys and bq. Useful for writing system scripts.
4485
4488
4486 2002-05-30 Fernando Perez <fperez@colorado.edu>
4489 2002-05-30 Fernando Perez <fperez@colorado.edu>
4487
4490
4488 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4491 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4489 documents. This will make the user download smaller (it's getting
4492 documents. This will make the user download smaller (it's getting
4490 too big).
4493 too big).
4491
4494
4492 2002-05-29 Fernando Perez <fperez@colorado.edu>
4495 2002-05-29 Fernando Perez <fperez@colorado.edu>
4493
4496
4494 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4497 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4495 fix problems with shelve and pickle. Seems to work, but I don't
4498 fix problems with shelve and pickle. Seems to work, but I don't
4496 know if corner cases break it. Thanks to Mike Heeter
4499 know if corner cases break it. Thanks to Mike Heeter
4497 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4500 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4498
4501
4499 2002-05-24 Fernando Perez <fperez@colorado.edu>
4502 2002-05-24 Fernando Perez <fperez@colorado.edu>
4500
4503
4501 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4504 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4502 macros having broken.
4505 macros having broken.
4503
4506
4504 2002-05-21 Fernando Perez <fperez@colorado.edu>
4507 2002-05-21 Fernando Perez <fperez@colorado.edu>
4505
4508
4506 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4509 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4507 introduced logging bug: all history before logging started was
4510 introduced logging bug: all history before logging started was
4508 being written one character per line! This came from the redesign
4511 being written one character per line! This came from the redesign
4509 of the input history as a special list which slices to strings,
4512 of the input history as a special list which slices to strings,
4510 not to lists.
4513 not to lists.
4511
4514
4512 2002-05-20 Fernando Perez <fperez@colorado.edu>
4515 2002-05-20 Fernando Perez <fperez@colorado.edu>
4513
4516
4514 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4517 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4515 be an attribute of all classes in this module. The design of these
4518 be an attribute of all classes in this module. The design of these
4516 classes needs some serious overhauling.
4519 classes needs some serious overhauling.
4517
4520
4518 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4521 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4519 which was ignoring '_' in option names.
4522 which was ignoring '_' in option names.
4520
4523
4521 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4524 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4522 'Verbose_novars' to 'Context' and made it the new default. It's a
4525 'Verbose_novars' to 'Context' and made it the new default. It's a
4523 bit more readable and also safer than verbose.
4526 bit more readable and also safer than verbose.
4524
4527
4525 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4528 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4526 triple-quoted strings.
4529 triple-quoted strings.
4527
4530
4528 * IPython/OInspect.py (__all__): new module exposing the object
4531 * IPython/OInspect.py (__all__): new module exposing the object
4529 introspection facilities. Now the corresponding magics are dummy
4532 introspection facilities. Now the corresponding magics are dummy
4530 wrappers around this. Having this module will make it much easier
4533 wrappers around this. Having this module will make it much easier
4531 to put these functions into our modified pdb.
4534 to put these functions into our modified pdb.
4532 This new object inspector system uses the new colorizing module,
4535 This new object inspector system uses the new colorizing module,
4533 so source code and other things are nicely syntax highlighted.
4536 so source code and other things are nicely syntax highlighted.
4534
4537
4535 2002-05-18 Fernando Perez <fperez@colorado.edu>
4538 2002-05-18 Fernando Perez <fperez@colorado.edu>
4536
4539
4537 * IPython/ColorANSI.py: Split the coloring tools into a separate
4540 * IPython/ColorANSI.py: Split the coloring tools into a separate
4538 module so I can use them in other code easier (they were part of
4541 module so I can use them in other code easier (they were part of
4539 ultraTB).
4542 ultraTB).
4540
4543
4541 2002-05-17 Fernando Perez <fperez@colorado.edu>
4544 2002-05-17 Fernando Perez <fperez@colorado.edu>
4542
4545
4543 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4546 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4544 fixed it to set the global 'g' also to the called instance, as
4547 fixed it to set the global 'g' also to the called instance, as
4545 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4548 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4546 user's 'g' variables).
4549 user's 'g' variables).
4547
4550
4548 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4551 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4549 global variables (aliases to _ih,_oh) so that users which expect
4552 global variables (aliases to _ih,_oh) so that users which expect
4550 In[5] or Out[7] to work aren't unpleasantly surprised.
4553 In[5] or Out[7] to work aren't unpleasantly surprised.
4551 (InputList.__getslice__): new class to allow executing slices of
4554 (InputList.__getslice__): new class to allow executing slices of
4552 input history directly. Very simple class, complements the use of
4555 input history directly. Very simple class, complements the use of
4553 macros.
4556 macros.
4554
4557
4555 2002-05-16 Fernando Perez <fperez@colorado.edu>
4558 2002-05-16 Fernando Perez <fperez@colorado.edu>
4556
4559
4557 * setup.py (docdirbase): make doc directory be just doc/IPython
4560 * setup.py (docdirbase): make doc directory be just doc/IPython
4558 without version numbers, it will reduce clutter for users.
4561 without version numbers, it will reduce clutter for users.
4559
4562
4560 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4563 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4561 execfile call to prevent possible memory leak. See for details:
4564 execfile call to prevent possible memory leak. See for details:
4562 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4565 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4563
4566
4564 2002-05-15 Fernando Perez <fperez@colorado.edu>
4567 2002-05-15 Fernando Perez <fperez@colorado.edu>
4565
4568
4566 * IPython/Magic.py (Magic.magic_psource): made the object
4569 * IPython/Magic.py (Magic.magic_psource): made the object
4567 introspection names be more standard: pdoc, pdef, pfile and
4570 introspection names be more standard: pdoc, pdef, pfile and
4568 psource. They all print/page their output, and it makes
4571 psource. They all print/page their output, and it makes
4569 remembering them easier. Kept old names for compatibility as
4572 remembering them easier. Kept old names for compatibility as
4570 aliases.
4573 aliases.
4571
4574
4572 2002-05-14 Fernando Perez <fperez@colorado.edu>
4575 2002-05-14 Fernando Perez <fperez@colorado.edu>
4573
4576
4574 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4577 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4575 what the mouse problem was. The trick is to use gnuplot with temp
4578 what the mouse problem was. The trick is to use gnuplot with temp
4576 files and NOT with pipes (for data communication), because having
4579 files and NOT with pipes (for data communication), because having
4577 both pipes and the mouse on is bad news.
4580 both pipes and the mouse on is bad news.
4578
4581
4579 2002-05-13 Fernando Perez <fperez@colorado.edu>
4582 2002-05-13 Fernando Perez <fperez@colorado.edu>
4580
4583
4581 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4584 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4582 bug. Information would be reported about builtins even when
4585 bug. Information would be reported about builtins even when
4583 user-defined functions overrode them.
4586 user-defined functions overrode them.
4584
4587
4585 2002-05-11 Fernando Perez <fperez@colorado.edu>
4588 2002-05-11 Fernando Perez <fperez@colorado.edu>
4586
4589
4587 * IPython/__init__.py (__all__): removed FlexCompleter from
4590 * IPython/__init__.py (__all__): removed FlexCompleter from
4588 __all__ so that things don't fail in platforms without readline.
4591 __all__ so that things don't fail in platforms without readline.
4589
4592
4590 2002-05-10 Fernando Perez <fperez@colorado.edu>
4593 2002-05-10 Fernando Perez <fperez@colorado.edu>
4591
4594
4592 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4595 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4593 it requires Numeric, effectively making Numeric a dependency for
4596 it requires Numeric, effectively making Numeric a dependency for
4594 IPython.
4597 IPython.
4595
4598
4596 * Released 0.2.13
4599 * Released 0.2.13
4597
4600
4598 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4601 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4599 profiler interface. Now all the major options from the profiler
4602 profiler interface. Now all the major options from the profiler
4600 module are directly supported in IPython, both for single
4603 module are directly supported in IPython, both for single
4601 expressions (@prun) and for full programs (@run -p).
4604 expressions (@prun) and for full programs (@run -p).
4602
4605
4603 2002-05-09 Fernando Perez <fperez@colorado.edu>
4606 2002-05-09 Fernando Perez <fperez@colorado.edu>
4604
4607
4605 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4608 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4606 magic properly formatted for screen.
4609 magic properly formatted for screen.
4607
4610
4608 * setup.py (make_shortcut): Changed things to put pdf version in
4611 * setup.py (make_shortcut): Changed things to put pdf version in
4609 doc/ instead of doc/manual (had to change lyxport a bit).
4612 doc/ instead of doc/manual (had to change lyxport a bit).
4610
4613
4611 * IPython/Magic.py (Profile.string_stats): made profile runs go
4614 * IPython/Magic.py (Profile.string_stats): made profile runs go
4612 through pager (they are long and a pager allows searching, saving,
4615 through pager (they are long and a pager allows searching, saving,
4613 etc.)
4616 etc.)
4614
4617
4615 2002-05-08 Fernando Perez <fperez@colorado.edu>
4618 2002-05-08 Fernando Perez <fperez@colorado.edu>
4616
4619
4617 * Released 0.2.12
4620 * Released 0.2.12
4618
4621
4619 2002-05-06 Fernando Perez <fperez@colorado.edu>
4622 2002-05-06 Fernando Perez <fperez@colorado.edu>
4620
4623
4621 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4624 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4622 introduced); 'hist n1 n2' was broken.
4625 introduced); 'hist n1 n2' was broken.
4623 (Magic.magic_pdb): added optional on/off arguments to @pdb
4626 (Magic.magic_pdb): added optional on/off arguments to @pdb
4624 (Magic.magic_run): added option -i to @run, which executes code in
4627 (Magic.magic_run): added option -i to @run, which executes code in
4625 the IPython namespace instead of a clean one. Also added @irun as
4628 the IPython namespace instead of a clean one. Also added @irun as
4626 an alias to @run -i.
4629 an alias to @run -i.
4627
4630
4628 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4631 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4629 fixed (it didn't really do anything, the namespaces were wrong).
4632 fixed (it didn't really do anything, the namespaces were wrong).
4630
4633
4631 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4634 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4632
4635
4633 * IPython/__init__.py (__all__): Fixed package namespace, now
4636 * IPython/__init__.py (__all__): Fixed package namespace, now
4634 'import IPython' does give access to IPython.<all> as
4637 'import IPython' does give access to IPython.<all> as
4635 expected. Also renamed __release__ to Release.
4638 expected. Also renamed __release__ to Release.
4636
4639
4637 * IPython/Debugger.py (__license__): created new Pdb class which
4640 * IPython/Debugger.py (__license__): created new Pdb class which
4638 functions like a drop-in for the normal pdb.Pdb but does NOT
4641 functions like a drop-in for the normal pdb.Pdb but does NOT
4639 import readline by default. This way it doesn't muck up IPython's
4642 import readline by default. This way it doesn't muck up IPython's
4640 readline handling, and now tab-completion finally works in the
4643 readline handling, and now tab-completion finally works in the
4641 debugger -- sort of. It completes things globally visible, but the
4644 debugger -- sort of. It completes things globally visible, but the
4642 completer doesn't track the stack as pdb walks it. That's a bit
4645 completer doesn't track the stack as pdb walks it. That's a bit
4643 tricky, and I'll have to implement it later.
4646 tricky, and I'll have to implement it later.
4644
4647
4645 2002-05-05 Fernando Perez <fperez@colorado.edu>
4648 2002-05-05 Fernando Perez <fperez@colorado.edu>
4646
4649
4647 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4650 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4648 magic docstrings when printed via ? (explicit \'s were being
4651 magic docstrings when printed via ? (explicit \'s were being
4649 printed).
4652 printed).
4650
4653
4651 * IPython/ipmaker.py (make_IPython): fixed namespace
4654 * IPython/ipmaker.py (make_IPython): fixed namespace
4652 identification bug. Now variables loaded via logs or command-line
4655 identification bug. Now variables loaded via logs or command-line
4653 files are recognized in the interactive namespace by @who.
4656 files are recognized in the interactive namespace by @who.
4654
4657
4655 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4658 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4656 log replay system stemming from the string form of Structs.
4659 log replay system stemming from the string form of Structs.
4657
4660
4658 * IPython/Magic.py (Macro.__init__): improved macros to properly
4661 * IPython/Magic.py (Macro.__init__): improved macros to properly
4659 handle magic commands in them.
4662 handle magic commands in them.
4660 (Magic.magic_logstart): usernames are now expanded so 'logstart
4663 (Magic.magic_logstart): usernames are now expanded so 'logstart
4661 ~/mylog' now works.
4664 ~/mylog' now works.
4662
4665
4663 * IPython/iplib.py (complete): fixed bug where paths starting with
4666 * IPython/iplib.py (complete): fixed bug where paths starting with
4664 '/' would be completed as magic names.
4667 '/' would be completed as magic names.
4665
4668
4666 2002-05-04 Fernando Perez <fperez@colorado.edu>
4669 2002-05-04 Fernando Perez <fperez@colorado.edu>
4667
4670
4668 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4671 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4669 allow running full programs under the profiler's control.
4672 allow running full programs under the profiler's control.
4670
4673
4671 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4674 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4672 mode to report exceptions verbosely but without formatting
4675 mode to report exceptions verbosely but without formatting
4673 variables. This addresses the issue of ipython 'freezing' (it's
4676 variables. This addresses the issue of ipython 'freezing' (it's
4674 not frozen, but caught in an expensive formatting loop) when huge
4677 not frozen, but caught in an expensive formatting loop) when huge
4675 variables are in the context of an exception.
4678 variables are in the context of an exception.
4676 (VerboseTB.text): Added '--->' markers at line where exception was
4679 (VerboseTB.text): Added '--->' markers at line where exception was
4677 triggered. Much clearer to read, especially in NoColor modes.
4680 triggered. Much clearer to read, especially in NoColor modes.
4678
4681
4679 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4682 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4680 implemented in reverse when changing to the new parse_options().
4683 implemented in reverse when changing to the new parse_options().
4681
4684
4682 2002-05-03 Fernando Perez <fperez@colorado.edu>
4685 2002-05-03 Fernando Perez <fperez@colorado.edu>
4683
4686
4684 * IPython/Magic.py (Magic.parse_options): new function so that
4687 * IPython/Magic.py (Magic.parse_options): new function so that
4685 magics can parse options easier.
4688 magics can parse options easier.
4686 (Magic.magic_prun): new function similar to profile.run(),
4689 (Magic.magic_prun): new function similar to profile.run(),
4687 suggested by Chris Hart.
4690 suggested by Chris Hart.
4688 (Magic.magic_cd): fixed behavior so that it only changes if
4691 (Magic.magic_cd): fixed behavior so that it only changes if
4689 directory actually is in history.
4692 directory actually is in history.
4690
4693
4691 * IPython/usage.py (__doc__): added information about potential
4694 * IPython/usage.py (__doc__): added information about potential
4692 slowness of Verbose exception mode when there are huge data
4695 slowness of Verbose exception mode when there are huge data
4693 structures to be formatted (thanks to Archie Paulson).
4696 structures to be formatted (thanks to Archie Paulson).
4694
4697
4695 * IPython/ipmaker.py (make_IPython): Changed default logging
4698 * IPython/ipmaker.py (make_IPython): Changed default logging
4696 (when simply called with -log) to use curr_dir/ipython.log in
4699 (when simply called with -log) to use curr_dir/ipython.log in
4697 rotate mode. Fixed crash which was occuring with -log before
4700 rotate mode. Fixed crash which was occuring with -log before
4698 (thanks to Jim Boyle).
4701 (thanks to Jim Boyle).
4699
4702
4700 2002-05-01 Fernando Perez <fperez@colorado.edu>
4703 2002-05-01 Fernando Perez <fperez@colorado.edu>
4701
4704
4702 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4705 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4703 was nasty -- though somewhat of a corner case).
4706 was nasty -- though somewhat of a corner case).
4704
4707
4705 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4708 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4706 text (was a bug).
4709 text (was a bug).
4707
4710
4708 2002-04-30 Fernando Perez <fperez@colorado.edu>
4711 2002-04-30 Fernando Perez <fperez@colorado.edu>
4709
4712
4710 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4713 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4711 a print after ^D or ^C from the user so that the In[] prompt
4714 a print after ^D or ^C from the user so that the In[] prompt
4712 doesn't over-run the gnuplot one.
4715 doesn't over-run the gnuplot one.
4713
4716
4714 2002-04-29 Fernando Perez <fperez@colorado.edu>
4717 2002-04-29 Fernando Perez <fperez@colorado.edu>
4715
4718
4716 * Released 0.2.10
4719 * Released 0.2.10
4717
4720
4718 * IPython/__release__.py (version): get date dynamically.
4721 * IPython/__release__.py (version): get date dynamically.
4719
4722
4720 * Misc. documentation updates thanks to Arnd's comments. Also ran
4723 * Misc. documentation updates thanks to Arnd's comments. Also ran
4721 a full spellcheck on the manual (hadn't been done in a while).
4724 a full spellcheck on the manual (hadn't been done in a while).
4722
4725
4723 2002-04-27 Fernando Perez <fperez@colorado.edu>
4726 2002-04-27 Fernando Perez <fperez@colorado.edu>
4724
4727
4725 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4728 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4726 starting a log in mid-session would reset the input history list.
4729 starting a log in mid-session would reset the input history list.
4727
4730
4728 2002-04-26 Fernando Perez <fperez@colorado.edu>
4731 2002-04-26 Fernando Perez <fperez@colorado.edu>
4729
4732
4730 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4733 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4731 all files were being included in an update. Now anything in
4734 all files were being included in an update. Now anything in
4732 UserConfig that matches [A-Za-z]*.py will go (this excludes
4735 UserConfig that matches [A-Za-z]*.py will go (this excludes
4733 __init__.py)
4736 __init__.py)
4734
4737
4735 2002-04-25 Fernando Perez <fperez@colorado.edu>
4738 2002-04-25 Fernando Perez <fperez@colorado.edu>
4736
4739
4737 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4740 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4738 to __builtins__ so that any form of embedded or imported code can
4741 to __builtins__ so that any form of embedded or imported code can
4739 test for being inside IPython.
4742 test for being inside IPython.
4740
4743
4741 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4744 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4742 changed to GnuplotMagic because it's now an importable module,
4745 changed to GnuplotMagic because it's now an importable module,
4743 this makes the name follow that of the standard Gnuplot module.
4746 this makes the name follow that of the standard Gnuplot module.
4744 GnuplotMagic can now be loaded at any time in mid-session.
4747 GnuplotMagic can now be loaded at any time in mid-session.
4745
4748
4746 2002-04-24 Fernando Perez <fperez@colorado.edu>
4749 2002-04-24 Fernando Perez <fperez@colorado.edu>
4747
4750
4748 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4751 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4749 the globals (IPython has its own namespace) and the
4752 the globals (IPython has its own namespace) and the
4750 PhysicalQuantity stuff is much better anyway.
4753 PhysicalQuantity stuff is much better anyway.
4751
4754
4752 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4755 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4753 embedding example to standard user directory for
4756 embedding example to standard user directory for
4754 distribution. Also put it in the manual.
4757 distribution. Also put it in the manual.
4755
4758
4756 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4759 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4757 instance as first argument (so it doesn't rely on some obscure
4760 instance as first argument (so it doesn't rely on some obscure
4758 hidden global).
4761 hidden global).
4759
4762
4760 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4763 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4761 delimiters. While it prevents ().TAB from working, it allows
4764 delimiters. While it prevents ().TAB from working, it allows
4762 completions in open (... expressions. This is by far a more common
4765 completions in open (... expressions. This is by far a more common
4763 case.
4766 case.
4764
4767
4765 2002-04-23 Fernando Perez <fperez@colorado.edu>
4768 2002-04-23 Fernando Perez <fperez@colorado.edu>
4766
4769
4767 * IPython/Extensions/InterpreterPasteInput.py: new
4770 * IPython/Extensions/InterpreterPasteInput.py: new
4768 syntax-processing module for pasting lines with >>> or ... at the
4771 syntax-processing module for pasting lines with >>> or ... at the
4769 start.
4772 start.
4770
4773
4771 * IPython/Extensions/PhysicalQ_Interactive.py
4774 * IPython/Extensions/PhysicalQ_Interactive.py
4772 (PhysicalQuantityInteractive.__int__): fixed to work with either
4775 (PhysicalQuantityInteractive.__int__): fixed to work with either
4773 Numeric or math.
4776 Numeric or math.
4774
4777
4775 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4778 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4776 provided profiles. Now we have:
4779 provided profiles. Now we have:
4777 -math -> math module as * and cmath with its own namespace.
4780 -math -> math module as * and cmath with its own namespace.
4778 -numeric -> Numeric as *, plus gnuplot & grace
4781 -numeric -> Numeric as *, plus gnuplot & grace
4779 -physics -> same as before
4782 -physics -> same as before
4780
4783
4781 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4784 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4782 user-defined magics wouldn't be found by @magic if they were
4785 user-defined magics wouldn't be found by @magic if they were
4783 defined as class methods. Also cleaned up the namespace search
4786 defined as class methods. Also cleaned up the namespace search
4784 logic and the string building (to use %s instead of many repeated
4787 logic and the string building (to use %s instead of many repeated
4785 string adds).
4788 string adds).
4786
4789
4787 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4790 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4788 of user-defined magics to operate with class methods (cleaner, in
4791 of user-defined magics to operate with class methods (cleaner, in
4789 line with the gnuplot code).
4792 line with the gnuplot code).
4790
4793
4791 2002-04-22 Fernando Perez <fperez@colorado.edu>
4794 2002-04-22 Fernando Perez <fperez@colorado.edu>
4792
4795
4793 * setup.py: updated dependency list so that manual is updated when
4796 * setup.py: updated dependency list so that manual is updated when
4794 all included files change.
4797 all included files change.
4795
4798
4796 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4799 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4797 the delimiter removal option (the fix is ugly right now).
4800 the delimiter removal option (the fix is ugly right now).
4798
4801
4799 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4802 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4800 all of the math profile (quicker loading, no conflict between
4803 all of the math profile (quicker loading, no conflict between
4801 g-9.8 and g-gnuplot).
4804 g-9.8 and g-gnuplot).
4802
4805
4803 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4806 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4804 name of post-mortem files to IPython_crash_report.txt.
4807 name of post-mortem files to IPython_crash_report.txt.
4805
4808
4806 * Cleanup/update of the docs. Added all the new readline info and
4809 * Cleanup/update of the docs. Added all the new readline info and
4807 formatted all lists as 'real lists'.
4810 formatted all lists as 'real lists'.
4808
4811
4809 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4812 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4810 tab-completion options, since the full readline parse_and_bind is
4813 tab-completion options, since the full readline parse_and_bind is
4811 now accessible.
4814 now accessible.
4812
4815
4813 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4816 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4814 handling of readline options. Now users can specify any string to
4817 handling of readline options. Now users can specify any string to
4815 be passed to parse_and_bind(), as well as the delimiters to be
4818 be passed to parse_and_bind(), as well as the delimiters to be
4816 removed.
4819 removed.
4817 (InteractiveShell.__init__): Added __name__ to the global
4820 (InteractiveShell.__init__): Added __name__ to the global
4818 namespace so that things like Itpl which rely on its existence
4821 namespace so that things like Itpl which rely on its existence
4819 don't crash.
4822 don't crash.
4820 (InteractiveShell._prefilter): Defined the default with a _ so
4823 (InteractiveShell._prefilter): Defined the default with a _ so
4821 that prefilter() is easier to override, while the default one
4824 that prefilter() is easier to override, while the default one
4822 remains available.
4825 remains available.
4823
4826
4824 2002-04-18 Fernando Perez <fperez@colorado.edu>
4827 2002-04-18 Fernando Perez <fperez@colorado.edu>
4825
4828
4826 * Added information about pdb in the docs.
4829 * Added information about pdb in the docs.
4827
4830
4828 2002-04-17 Fernando Perez <fperez@colorado.edu>
4831 2002-04-17 Fernando Perez <fperez@colorado.edu>
4829
4832
4830 * IPython/ipmaker.py (make_IPython): added rc_override option to
4833 * IPython/ipmaker.py (make_IPython): added rc_override option to
4831 allow passing config options at creation time which may override
4834 allow passing config options at creation time which may override
4832 anything set in the config files or command line. This is
4835 anything set in the config files or command line. This is
4833 particularly useful for configuring embedded instances.
4836 particularly useful for configuring embedded instances.
4834
4837
4835 2002-04-15 Fernando Perez <fperez@colorado.edu>
4838 2002-04-15 Fernando Perez <fperez@colorado.edu>
4836
4839
4837 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4840 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4838 crash embedded instances because of the input cache falling out of
4841 crash embedded instances because of the input cache falling out of
4839 sync with the output counter.
4842 sync with the output counter.
4840
4843
4841 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4844 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4842 mode which calls pdb after an uncaught exception in IPython itself.
4845 mode which calls pdb after an uncaught exception in IPython itself.
4843
4846
4844 2002-04-14 Fernando Perez <fperez@colorado.edu>
4847 2002-04-14 Fernando Perez <fperez@colorado.edu>
4845
4848
4846 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4849 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4847 readline, fix it back after each call.
4850 readline, fix it back after each call.
4848
4851
4849 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4852 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4850 method to force all access via __call__(), which guarantees that
4853 method to force all access via __call__(), which guarantees that
4851 traceback references are properly deleted.
4854 traceback references are properly deleted.
4852
4855
4853 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4856 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4854 improve printing when pprint is in use.
4857 improve printing when pprint is in use.
4855
4858
4856 2002-04-13 Fernando Perez <fperez@colorado.edu>
4859 2002-04-13 Fernando Perez <fperez@colorado.edu>
4857
4860
4858 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4861 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4859 exceptions aren't caught anymore. If the user triggers one, he
4862 exceptions aren't caught anymore. If the user triggers one, he
4860 should know why he's doing it and it should go all the way up,
4863 should know why he's doing it and it should go all the way up,
4861 just like any other exception. So now @abort will fully kill the
4864 just like any other exception. So now @abort will fully kill the
4862 embedded interpreter and the embedding code (unless that happens
4865 embedded interpreter and the embedding code (unless that happens
4863 to catch SystemExit).
4866 to catch SystemExit).
4864
4867
4865 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4868 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4866 and a debugger() method to invoke the interactive pdb debugger
4869 and a debugger() method to invoke the interactive pdb debugger
4867 after printing exception information. Also added the corresponding
4870 after printing exception information. Also added the corresponding
4868 -pdb option and @pdb magic to control this feature, and updated
4871 -pdb option and @pdb magic to control this feature, and updated
4869 the docs. After a suggestion from Christopher Hart
4872 the docs. After a suggestion from Christopher Hart
4870 (hart-AT-caltech.edu).
4873 (hart-AT-caltech.edu).
4871
4874
4872 2002-04-12 Fernando Perez <fperez@colorado.edu>
4875 2002-04-12 Fernando Perez <fperez@colorado.edu>
4873
4876
4874 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4877 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4875 the exception handlers defined by the user (not the CrashHandler)
4878 the exception handlers defined by the user (not the CrashHandler)
4876 so that user exceptions don't trigger an ipython bug report.
4879 so that user exceptions don't trigger an ipython bug report.
4877
4880
4878 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4881 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4879 configurable (it should have always been so).
4882 configurable (it should have always been so).
4880
4883
4881 2002-03-26 Fernando Perez <fperez@colorado.edu>
4884 2002-03-26 Fernando Perez <fperez@colorado.edu>
4882
4885
4883 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4886 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4884 and there to fix embedding namespace issues. This should all be
4887 and there to fix embedding namespace issues. This should all be
4885 done in a more elegant way.
4888 done in a more elegant way.
4886
4889
4887 2002-03-25 Fernando Perez <fperez@colorado.edu>
4890 2002-03-25 Fernando Perez <fperez@colorado.edu>
4888
4891
4889 * IPython/genutils.py (get_home_dir): Try to make it work under
4892 * IPython/genutils.py (get_home_dir): Try to make it work under
4890 win9x also.
4893 win9x also.
4891
4894
4892 2002-03-20 Fernando Perez <fperez@colorado.edu>
4895 2002-03-20 Fernando Perez <fperez@colorado.edu>
4893
4896
4894 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4897 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4895 sys.displayhook untouched upon __init__.
4898 sys.displayhook untouched upon __init__.
4896
4899
4897 2002-03-19 Fernando Perez <fperez@colorado.edu>
4900 2002-03-19 Fernando Perez <fperez@colorado.edu>
4898
4901
4899 * Released 0.2.9 (for embedding bug, basically).
4902 * Released 0.2.9 (for embedding bug, basically).
4900
4903
4901 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4904 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4902 exceptions so that enclosing shell's state can be restored.
4905 exceptions so that enclosing shell's state can be restored.
4903
4906
4904 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4907 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4905 naming conventions in the .ipython/ dir.
4908 naming conventions in the .ipython/ dir.
4906
4909
4907 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4910 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4908 from delimiters list so filenames with - in them get expanded.
4911 from delimiters list so filenames with - in them get expanded.
4909
4912
4910 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4913 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4911 sys.displayhook not being properly restored after an embedded call.
4914 sys.displayhook not being properly restored after an embedded call.
4912
4915
4913 2002-03-18 Fernando Perez <fperez@colorado.edu>
4916 2002-03-18 Fernando Perez <fperez@colorado.edu>
4914
4917
4915 * Released 0.2.8
4918 * Released 0.2.8
4916
4919
4917 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4920 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4918 some files weren't being included in a -upgrade.
4921 some files weren't being included in a -upgrade.
4919 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4922 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4920 on' so that the first tab completes.
4923 on' so that the first tab completes.
4921 (InteractiveShell.handle_magic): fixed bug with spaces around
4924 (InteractiveShell.handle_magic): fixed bug with spaces around
4922 quotes breaking many magic commands.
4925 quotes breaking many magic commands.
4923
4926
4924 * setup.py: added note about ignoring the syntax error messages at
4927 * setup.py: added note about ignoring the syntax error messages at
4925 installation.
4928 installation.
4926
4929
4927 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4930 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4928 streamlining the gnuplot interface, now there's only one magic @gp.
4931 streamlining the gnuplot interface, now there's only one magic @gp.
4929
4932
4930 2002-03-17 Fernando Perez <fperez@colorado.edu>
4933 2002-03-17 Fernando Perez <fperez@colorado.edu>
4931
4934
4932 * IPython/UserConfig/magic_gnuplot.py: new name for the
4935 * IPython/UserConfig/magic_gnuplot.py: new name for the
4933 example-magic_pm.py file. Much enhanced system, now with a shell
4936 example-magic_pm.py file. Much enhanced system, now with a shell
4934 for communicating directly with gnuplot, one command at a time.
4937 for communicating directly with gnuplot, one command at a time.
4935
4938
4936 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4939 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4937 setting __name__=='__main__'.
4940 setting __name__=='__main__'.
4938
4941
4939 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4942 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4940 mini-shell for accessing gnuplot from inside ipython. Should
4943 mini-shell for accessing gnuplot from inside ipython. Should
4941 extend it later for grace access too. Inspired by Arnd's
4944 extend it later for grace access too. Inspired by Arnd's
4942 suggestion.
4945 suggestion.
4943
4946
4944 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4947 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4945 calling magic functions with () in their arguments. Thanks to Arnd
4948 calling magic functions with () in their arguments. Thanks to Arnd
4946 Baecker for pointing this to me.
4949 Baecker for pointing this to me.
4947
4950
4948 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4951 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4949 infinitely for integer or complex arrays (only worked with floats).
4952 infinitely for integer or complex arrays (only worked with floats).
4950
4953
4951 2002-03-16 Fernando Perez <fperez@colorado.edu>
4954 2002-03-16 Fernando Perez <fperez@colorado.edu>
4952
4955
4953 * setup.py: Merged setup and setup_windows into a single script
4956 * setup.py: Merged setup and setup_windows into a single script
4954 which properly handles things for windows users.
4957 which properly handles things for windows users.
4955
4958
4956 2002-03-15 Fernando Perez <fperez@colorado.edu>
4959 2002-03-15 Fernando Perez <fperez@colorado.edu>
4957
4960
4958 * Big change to the manual: now the magics are all automatically
4961 * Big change to the manual: now the magics are all automatically
4959 documented. This information is generated from their docstrings
4962 documented. This information is generated from their docstrings
4960 and put in a latex file included by the manual lyx file. This way
4963 and put in a latex file included by the manual lyx file. This way
4961 we get always up to date information for the magics. The manual
4964 we get always up to date information for the magics. The manual
4962 now also has proper version information, also auto-synced.
4965 now also has proper version information, also auto-synced.
4963
4966
4964 For this to work, an undocumented --magic_docstrings option was added.
4967 For this to work, an undocumented --magic_docstrings option was added.
4965
4968
4966 2002-03-13 Fernando Perez <fperez@colorado.edu>
4969 2002-03-13 Fernando Perez <fperez@colorado.edu>
4967
4970
4968 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4971 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4969 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4972 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4970
4973
4971 2002-03-12 Fernando Perez <fperez@colorado.edu>
4974 2002-03-12 Fernando Perez <fperez@colorado.edu>
4972
4975
4973 * IPython/ultraTB.py (TermColors): changed color escapes again to
4976 * IPython/ultraTB.py (TermColors): changed color escapes again to
4974 fix the (old, reintroduced) line-wrapping bug. Basically, if
4977 fix the (old, reintroduced) line-wrapping bug. Basically, if
4975 \001..\002 aren't given in the color escapes, lines get wrapped
4978 \001..\002 aren't given in the color escapes, lines get wrapped
4976 weirdly. But giving those screws up old xterms and emacs terms. So
4979 weirdly. But giving those screws up old xterms and emacs terms. So
4977 I added some logic for emacs terms to be ok, but I can't identify old
4980 I added some logic for emacs terms to be ok, but I can't identify old
4978 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4981 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4979
4982
4980 2002-03-10 Fernando Perez <fperez@colorado.edu>
4983 2002-03-10 Fernando Perez <fperez@colorado.edu>
4981
4984
4982 * IPython/usage.py (__doc__): Various documentation cleanups and
4985 * IPython/usage.py (__doc__): Various documentation cleanups and
4983 updates, both in usage docstrings and in the manual.
4986 updates, both in usage docstrings and in the manual.
4984
4987
4985 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4988 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4986 handling of caching. Set minimum acceptabe value for having a
4989 handling of caching. Set minimum acceptabe value for having a
4987 cache at 20 values.
4990 cache at 20 values.
4988
4991
4989 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4992 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4990 install_first_time function to a method, renamed it and added an
4993 install_first_time function to a method, renamed it and added an
4991 'upgrade' mode. Now people can update their config directory with
4994 'upgrade' mode. Now people can update their config directory with
4992 a simple command line switch (-upgrade, also new).
4995 a simple command line switch (-upgrade, also new).
4993
4996
4994 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4997 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4995 @file (convenient for automagic users under Python >= 2.2).
4998 @file (convenient for automagic users under Python >= 2.2).
4996 Removed @files (it seemed more like a plural than an abbrev. of
4999 Removed @files (it seemed more like a plural than an abbrev. of
4997 'file show').
5000 'file show').
4998
5001
4999 * IPython/iplib.py (install_first_time): Fixed crash if there were
5002 * IPython/iplib.py (install_first_time): Fixed crash if there were
5000 backup files ('~') in .ipython/ install directory.
5003 backup files ('~') in .ipython/ install directory.
5001
5004
5002 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5005 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5003 system. Things look fine, but these changes are fairly
5006 system. Things look fine, but these changes are fairly
5004 intrusive. Test them for a few days.
5007 intrusive. Test them for a few days.
5005
5008
5006 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5009 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5007 the prompts system. Now all in/out prompt strings are user
5010 the prompts system. Now all in/out prompt strings are user
5008 controllable. This is particularly useful for embedding, as one
5011 controllable. This is particularly useful for embedding, as one
5009 can tag embedded instances with particular prompts.
5012 can tag embedded instances with particular prompts.
5010
5013
5011 Also removed global use of sys.ps1/2, which now allows nested
5014 Also removed global use of sys.ps1/2, which now allows nested
5012 embeddings without any problems. Added command-line options for
5015 embeddings without any problems. Added command-line options for
5013 the prompt strings.
5016 the prompt strings.
5014
5017
5015 2002-03-08 Fernando Perez <fperez@colorado.edu>
5018 2002-03-08 Fernando Perez <fperez@colorado.edu>
5016
5019
5017 * IPython/UserConfig/example-embed-short.py (ipshell): added
5020 * IPython/UserConfig/example-embed-short.py (ipshell): added
5018 example file with the bare minimum code for embedding.
5021 example file with the bare minimum code for embedding.
5019
5022
5020 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5023 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5021 functionality for the embeddable shell to be activated/deactivated
5024 functionality for the embeddable shell to be activated/deactivated
5022 either globally or at each call.
5025 either globally or at each call.
5023
5026
5024 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5027 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5025 rewriting the prompt with '--->' for auto-inputs with proper
5028 rewriting the prompt with '--->' for auto-inputs with proper
5026 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5029 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5027 this is handled by the prompts class itself, as it should.
5030 this is handled by the prompts class itself, as it should.
5028
5031
5029 2002-03-05 Fernando Perez <fperez@colorado.edu>
5032 2002-03-05 Fernando Perez <fperez@colorado.edu>
5030
5033
5031 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5034 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5032 @logstart to avoid name clashes with the math log function.
5035 @logstart to avoid name clashes with the math log function.
5033
5036
5034 * Big updates to X/Emacs section of the manual.
5037 * Big updates to X/Emacs section of the manual.
5035
5038
5036 * Removed ipython_emacs. Milan explained to me how to pass
5039 * Removed ipython_emacs. Milan explained to me how to pass
5037 arguments to ipython through Emacs. Some day I'm going to end up
5040 arguments to ipython through Emacs. Some day I'm going to end up
5038 learning some lisp...
5041 learning some lisp...
5039
5042
5040 2002-03-04 Fernando Perez <fperez@colorado.edu>
5043 2002-03-04 Fernando Perez <fperez@colorado.edu>
5041
5044
5042 * IPython/ipython_emacs: Created script to be used as the
5045 * IPython/ipython_emacs: Created script to be used as the
5043 py-python-command Emacs variable so we can pass IPython
5046 py-python-command Emacs variable so we can pass IPython
5044 parameters. I can't figure out how to tell Emacs directly to pass
5047 parameters. I can't figure out how to tell Emacs directly to pass
5045 parameters to IPython, so a dummy shell script will do it.
5048 parameters to IPython, so a dummy shell script will do it.
5046
5049
5047 Other enhancements made for things to work better under Emacs'
5050 Other enhancements made for things to work better under Emacs'
5048 various types of terminals. Many thanks to Milan Zamazal
5051 various types of terminals. Many thanks to Milan Zamazal
5049 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5052 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5050
5053
5051 2002-03-01 Fernando Perez <fperez@colorado.edu>
5054 2002-03-01 Fernando Perez <fperez@colorado.edu>
5052
5055
5053 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5056 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5054 that loading of readline is now optional. This gives better
5057 that loading of readline is now optional. This gives better
5055 control to emacs users.
5058 control to emacs users.
5056
5059
5057 * IPython/ultraTB.py (__date__): Modified color escape sequences
5060 * IPython/ultraTB.py (__date__): Modified color escape sequences
5058 and now things work fine under xterm and in Emacs' term buffers
5061 and now things work fine under xterm and in Emacs' term buffers
5059 (though not shell ones). Well, in emacs you get colors, but all
5062 (though not shell ones). Well, in emacs you get colors, but all
5060 seem to be 'light' colors (no difference between dark and light
5063 seem to be 'light' colors (no difference between dark and light
5061 ones). But the garbage chars are gone, and also in xterms. It
5064 ones). But the garbage chars are gone, and also in xterms. It
5062 seems that now I'm using 'cleaner' ansi sequences.
5065 seems that now I'm using 'cleaner' ansi sequences.
5063
5066
5064 2002-02-21 Fernando Perez <fperez@colorado.edu>
5067 2002-02-21 Fernando Perez <fperez@colorado.edu>
5065
5068
5066 * Released 0.2.7 (mainly to publish the scoping fix).
5069 * Released 0.2.7 (mainly to publish the scoping fix).
5067
5070
5068 * IPython/Logger.py (Logger.logstate): added. A corresponding
5071 * IPython/Logger.py (Logger.logstate): added. A corresponding
5069 @logstate magic was created.
5072 @logstate magic was created.
5070
5073
5071 * IPython/Magic.py: fixed nested scoping problem under Python
5074 * IPython/Magic.py: fixed nested scoping problem under Python
5072 2.1.x (automagic wasn't working).
5075 2.1.x (automagic wasn't working).
5073
5076
5074 2002-02-20 Fernando Perez <fperez@colorado.edu>
5077 2002-02-20 Fernando Perez <fperez@colorado.edu>
5075
5078
5076 * Released 0.2.6.
5079 * Released 0.2.6.
5077
5080
5078 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5081 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5079 option so that logs can come out without any headers at all.
5082 option so that logs can come out without any headers at all.
5080
5083
5081 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5084 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5082 SciPy.
5085 SciPy.
5083
5086
5084 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5087 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5085 that embedded IPython calls don't require vars() to be explicitly
5088 that embedded IPython calls don't require vars() to be explicitly
5086 passed. Now they are extracted from the caller's frame (code
5089 passed. Now they are extracted from the caller's frame (code
5087 snatched from Eric Jones' weave). Added better documentation to
5090 snatched from Eric Jones' weave). Added better documentation to
5088 the section on embedding and the example file.
5091 the section on embedding and the example file.
5089
5092
5090 * IPython/genutils.py (page): Changed so that under emacs, it just
5093 * IPython/genutils.py (page): Changed so that under emacs, it just
5091 prints the string. You can then page up and down in the emacs
5094 prints the string. You can then page up and down in the emacs
5092 buffer itself. This is how the builtin help() works.
5095 buffer itself. This is how the builtin help() works.
5093
5096
5094 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5097 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5095 macro scoping: macros need to be executed in the user's namespace
5098 macro scoping: macros need to be executed in the user's namespace
5096 to work as if they had been typed by the user.
5099 to work as if they had been typed by the user.
5097
5100
5098 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5101 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5099 execute automatically (no need to type 'exec...'). They then
5102 execute automatically (no need to type 'exec...'). They then
5100 behave like 'true macros'. The printing system was also modified
5103 behave like 'true macros'. The printing system was also modified
5101 for this to work.
5104 for this to work.
5102
5105
5103 2002-02-19 Fernando Perez <fperez@colorado.edu>
5106 2002-02-19 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * IPython/genutils.py (page_file): new function for paging files
5108 * IPython/genutils.py (page_file): new function for paging files
5106 in an OS-independent way. Also necessary for file viewing to work
5109 in an OS-independent way. Also necessary for file viewing to work
5107 well inside Emacs buffers.
5110 well inside Emacs buffers.
5108 (page): Added checks for being in an emacs buffer.
5111 (page): Added checks for being in an emacs buffer.
5109 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5112 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5110 same bug in iplib.
5113 same bug in iplib.
5111
5114
5112 2002-02-18 Fernando Perez <fperez@colorado.edu>
5115 2002-02-18 Fernando Perez <fperez@colorado.edu>
5113
5116
5114 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5117 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5115 of readline so that IPython can work inside an Emacs buffer.
5118 of readline so that IPython can work inside an Emacs buffer.
5116
5119
5117 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5120 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5118 method signatures (they weren't really bugs, but it looks cleaner
5121 method signatures (they weren't really bugs, but it looks cleaner
5119 and keeps PyChecker happy).
5122 and keeps PyChecker happy).
5120
5123
5121 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5124 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5122 for implementing various user-defined hooks. Currently only
5125 for implementing various user-defined hooks. Currently only
5123 display is done.
5126 display is done.
5124
5127
5125 * IPython/Prompts.py (CachedOutput._display): changed display
5128 * IPython/Prompts.py (CachedOutput._display): changed display
5126 functions so that they can be dynamically changed by users easily.
5129 functions so that they can be dynamically changed by users easily.
5127
5130
5128 * IPython/Extensions/numeric_formats.py (num_display): added an
5131 * IPython/Extensions/numeric_formats.py (num_display): added an
5129 extension for printing NumPy arrays in flexible manners. It
5132 extension for printing NumPy arrays in flexible manners. It
5130 doesn't do anything yet, but all the structure is in
5133 doesn't do anything yet, but all the structure is in
5131 place. Ultimately the plan is to implement output format control
5134 place. Ultimately the plan is to implement output format control
5132 like in Octave.
5135 like in Octave.
5133
5136
5134 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5137 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5135 methods are found at run-time by all the automatic machinery.
5138 methods are found at run-time by all the automatic machinery.
5136
5139
5137 2002-02-17 Fernando Perez <fperez@colorado.edu>
5140 2002-02-17 Fernando Perez <fperez@colorado.edu>
5138
5141
5139 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5142 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5140 whole file a little.
5143 whole file a little.
5141
5144
5142 * ToDo: closed this document. Now there's a new_design.lyx
5145 * ToDo: closed this document. Now there's a new_design.lyx
5143 document for all new ideas. Added making a pdf of it for the
5146 document for all new ideas. Added making a pdf of it for the
5144 end-user distro.
5147 end-user distro.
5145
5148
5146 * IPython/Logger.py (Logger.switch_log): Created this to replace
5149 * IPython/Logger.py (Logger.switch_log): Created this to replace
5147 logon() and logoff(). It also fixes a nasty crash reported by
5150 logon() and logoff(). It also fixes a nasty crash reported by
5148 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5151 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5149
5152
5150 * IPython/iplib.py (complete): got auto-completion to work with
5153 * IPython/iplib.py (complete): got auto-completion to work with
5151 automagic (I had wanted this for a long time).
5154 automagic (I had wanted this for a long time).
5152
5155
5153 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5156 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5154 to @file, since file() is now a builtin and clashes with automagic
5157 to @file, since file() is now a builtin and clashes with automagic
5155 for @file.
5158 for @file.
5156
5159
5157 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5160 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5158 of this was previously in iplib, which had grown to more than 2000
5161 of this was previously in iplib, which had grown to more than 2000
5159 lines, way too long. No new functionality, but it makes managing
5162 lines, way too long. No new functionality, but it makes managing
5160 the code a bit easier.
5163 the code a bit easier.
5161
5164
5162 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5165 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5163 information to crash reports.
5166 information to crash reports.
5164
5167
5165 2002-02-12 Fernando Perez <fperez@colorado.edu>
5168 2002-02-12 Fernando Perez <fperez@colorado.edu>
5166
5169
5167 * Released 0.2.5.
5170 * Released 0.2.5.
5168
5171
5169 2002-02-11 Fernando Perez <fperez@colorado.edu>
5172 2002-02-11 Fernando Perez <fperez@colorado.edu>
5170
5173
5171 * Wrote a relatively complete Windows installer. It puts
5174 * Wrote a relatively complete Windows installer. It puts
5172 everything in place, creates Start Menu entries and fixes the
5175 everything in place, creates Start Menu entries and fixes the
5173 color issues. Nothing fancy, but it works.
5176 color issues. Nothing fancy, but it works.
5174
5177
5175 2002-02-10 Fernando Perez <fperez@colorado.edu>
5178 2002-02-10 Fernando Perez <fperez@colorado.edu>
5176
5179
5177 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5180 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5178 os.path.expanduser() call so that we can type @run ~/myfile.py and
5181 os.path.expanduser() call so that we can type @run ~/myfile.py and
5179 have thigs work as expected.
5182 have thigs work as expected.
5180
5183
5181 * IPython/genutils.py (page): fixed exception handling so things
5184 * IPython/genutils.py (page): fixed exception handling so things
5182 work both in Unix and Windows correctly. Quitting a pager triggers
5185 work both in Unix and Windows correctly. Quitting a pager triggers
5183 an IOError/broken pipe in Unix, and in windows not finding a pager
5186 an IOError/broken pipe in Unix, and in windows not finding a pager
5184 is also an IOError, so I had to actually look at the return value
5187 is also an IOError, so I had to actually look at the return value
5185 of the exception, not just the exception itself. Should be ok now.
5188 of the exception, not just the exception itself. Should be ok now.
5186
5189
5187 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5190 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5188 modified to allow case-insensitive color scheme changes.
5191 modified to allow case-insensitive color scheme changes.
5189
5192
5190 2002-02-09 Fernando Perez <fperez@colorado.edu>
5193 2002-02-09 Fernando Perez <fperez@colorado.edu>
5191
5194
5192 * IPython/genutils.py (native_line_ends): new function to leave
5195 * IPython/genutils.py (native_line_ends): new function to leave
5193 user config files with os-native line-endings.
5196 user config files with os-native line-endings.
5194
5197
5195 * README and manual updates.
5198 * README and manual updates.
5196
5199
5197 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5200 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5198 instead of StringType to catch Unicode strings.
5201 instead of StringType to catch Unicode strings.
5199
5202
5200 * IPython/genutils.py (filefind): fixed bug for paths with
5203 * IPython/genutils.py (filefind): fixed bug for paths with
5201 embedded spaces (very common in Windows).
5204 embedded spaces (very common in Windows).
5202
5205
5203 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5206 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5204 files under Windows, so that they get automatically associated
5207 files under Windows, so that they get automatically associated
5205 with a text editor. Windows makes it a pain to handle
5208 with a text editor. Windows makes it a pain to handle
5206 extension-less files.
5209 extension-less files.
5207
5210
5208 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5211 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5209 warning about readline only occur for Posix. In Windows there's no
5212 warning about readline only occur for Posix. In Windows there's no
5210 way to get readline, so why bother with the warning.
5213 way to get readline, so why bother with the warning.
5211
5214
5212 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5215 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5213 for __str__ instead of dir(self), since dir() changed in 2.2.
5216 for __str__ instead of dir(self), since dir() changed in 2.2.
5214
5217
5215 * Ported to Windows! Tested on XP, I suspect it should work fine
5218 * Ported to Windows! Tested on XP, I suspect it should work fine
5216 on NT/2000, but I don't think it will work on 98 et al. That
5219 on NT/2000, but I don't think it will work on 98 et al. That
5217 series of Windows is such a piece of junk anyway that I won't try
5220 series of Windows is such a piece of junk anyway that I won't try
5218 porting it there. The XP port was straightforward, showed a few
5221 porting it there. The XP port was straightforward, showed a few
5219 bugs here and there (fixed all), in particular some string
5222 bugs here and there (fixed all), in particular some string
5220 handling stuff which required considering Unicode strings (which
5223 handling stuff which required considering Unicode strings (which
5221 Windows uses). This is good, but hasn't been too tested :) No
5224 Windows uses). This is good, but hasn't been too tested :) No
5222 fancy installer yet, I'll put a note in the manual so people at
5225 fancy installer yet, I'll put a note in the manual so people at
5223 least make manually a shortcut.
5226 least make manually a shortcut.
5224
5227
5225 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5228 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5226 into a single one, "colors". This now controls both prompt and
5229 into a single one, "colors". This now controls both prompt and
5227 exception color schemes, and can be changed both at startup
5230 exception color schemes, and can be changed both at startup
5228 (either via command-line switches or via ipythonrc files) and at
5231 (either via command-line switches or via ipythonrc files) and at
5229 runtime, with @colors.
5232 runtime, with @colors.
5230 (Magic.magic_run): renamed @prun to @run and removed the old
5233 (Magic.magic_run): renamed @prun to @run and removed the old
5231 @run. The two were too similar to warrant keeping both.
5234 @run. The two were too similar to warrant keeping both.
5232
5235
5233 2002-02-03 Fernando Perez <fperez@colorado.edu>
5236 2002-02-03 Fernando Perez <fperez@colorado.edu>
5234
5237
5235 * IPython/iplib.py (install_first_time): Added comment on how to
5238 * IPython/iplib.py (install_first_time): Added comment on how to
5236 configure the color options for first-time users. Put a <return>
5239 configure the color options for first-time users. Put a <return>
5237 request at the end so that small-terminal users get a chance to
5240 request at the end so that small-terminal users get a chance to
5238 read the startup info.
5241 read the startup info.
5239
5242
5240 2002-01-23 Fernando Perez <fperez@colorado.edu>
5243 2002-01-23 Fernando Perez <fperez@colorado.edu>
5241
5244
5242 * IPython/iplib.py (CachedOutput.update): Changed output memory
5245 * IPython/iplib.py (CachedOutput.update): Changed output memory
5243 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5246 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5244 input history we still use _i. Did this b/c these variable are
5247 input history we still use _i. Did this b/c these variable are
5245 very commonly used in interactive work, so the less we need to
5248 very commonly used in interactive work, so the less we need to
5246 type the better off we are.
5249 type the better off we are.
5247 (Magic.magic_prun): updated @prun to better handle the namespaces
5250 (Magic.magic_prun): updated @prun to better handle the namespaces
5248 the file will run in, including a fix for __name__ not being set
5251 the file will run in, including a fix for __name__ not being set
5249 before.
5252 before.
5250
5253
5251 2002-01-20 Fernando Perez <fperez@colorado.edu>
5254 2002-01-20 Fernando Perez <fperez@colorado.edu>
5252
5255
5253 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5256 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5254 extra garbage for Python 2.2. Need to look more carefully into
5257 extra garbage for Python 2.2. Need to look more carefully into
5255 this later.
5258 this later.
5256
5259
5257 2002-01-19 Fernando Perez <fperez@colorado.edu>
5260 2002-01-19 Fernando Perez <fperez@colorado.edu>
5258
5261
5259 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5262 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5260 display SyntaxError exceptions properly formatted when they occur
5263 display SyntaxError exceptions properly formatted when they occur
5261 (they can be triggered by imported code).
5264 (they can be triggered by imported code).
5262
5265
5263 2002-01-18 Fernando Perez <fperez@colorado.edu>
5266 2002-01-18 Fernando Perez <fperez@colorado.edu>
5264
5267
5265 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5268 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5266 SyntaxError exceptions are reported nicely formatted, instead of
5269 SyntaxError exceptions are reported nicely formatted, instead of
5267 spitting out only offset information as before.
5270 spitting out only offset information as before.
5268 (Magic.magic_prun): Added the @prun function for executing
5271 (Magic.magic_prun): Added the @prun function for executing
5269 programs with command line args inside IPython.
5272 programs with command line args inside IPython.
5270
5273
5271 2002-01-16 Fernando Perez <fperez@colorado.edu>
5274 2002-01-16 Fernando Perez <fperez@colorado.edu>
5272
5275
5273 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5276 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5274 to *not* include the last item given in a range. This brings their
5277 to *not* include the last item given in a range. This brings their
5275 behavior in line with Python's slicing:
5278 behavior in line with Python's slicing:
5276 a[n1:n2] -> a[n1]...a[n2-1]
5279 a[n1:n2] -> a[n1]...a[n2-1]
5277 It may be a bit less convenient, but I prefer to stick to Python's
5280 It may be a bit less convenient, but I prefer to stick to Python's
5278 conventions *everywhere*, so users never have to wonder.
5281 conventions *everywhere*, so users never have to wonder.
5279 (Magic.magic_macro): Added @macro function to ease the creation of
5282 (Magic.magic_macro): Added @macro function to ease the creation of
5280 macros.
5283 macros.
5281
5284
5282 2002-01-05 Fernando Perez <fperez@colorado.edu>
5285 2002-01-05 Fernando Perez <fperez@colorado.edu>
5283
5286
5284 * Released 0.2.4.
5287 * Released 0.2.4.
5285
5288
5286 * IPython/iplib.py (Magic.magic_pdef):
5289 * IPython/iplib.py (Magic.magic_pdef):
5287 (InteractiveShell.safe_execfile): report magic lines and error
5290 (InteractiveShell.safe_execfile): report magic lines and error
5288 lines without line numbers so one can easily copy/paste them for
5291 lines without line numbers so one can easily copy/paste them for
5289 re-execution.
5292 re-execution.
5290
5293
5291 * Updated manual with recent changes.
5294 * Updated manual with recent changes.
5292
5295
5293 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5296 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5294 docstring printing when class? is called. Very handy for knowing
5297 docstring printing when class? is called. Very handy for knowing
5295 how to create class instances (as long as __init__ is well
5298 how to create class instances (as long as __init__ is well
5296 documented, of course :)
5299 documented, of course :)
5297 (Magic.magic_doc): print both class and constructor docstrings.
5300 (Magic.magic_doc): print both class and constructor docstrings.
5298 (Magic.magic_pdef): give constructor info if passed a class and
5301 (Magic.magic_pdef): give constructor info if passed a class and
5299 __call__ info for callable object instances.
5302 __call__ info for callable object instances.
5300
5303
5301 2002-01-04 Fernando Perez <fperez@colorado.edu>
5304 2002-01-04 Fernando Perez <fperez@colorado.edu>
5302
5305
5303 * Made deep_reload() off by default. It doesn't always work
5306 * Made deep_reload() off by default. It doesn't always work
5304 exactly as intended, so it's probably safer to have it off. It's
5307 exactly as intended, so it's probably safer to have it off. It's
5305 still available as dreload() anyway, so nothing is lost.
5308 still available as dreload() anyway, so nothing is lost.
5306
5309
5307 2002-01-02 Fernando Perez <fperez@colorado.edu>
5310 2002-01-02 Fernando Perez <fperez@colorado.edu>
5308
5311
5309 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5312 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5310 so I wanted an updated release).
5313 so I wanted an updated release).
5311
5314
5312 2001-12-27 Fernando Perez <fperez@colorado.edu>
5315 2001-12-27 Fernando Perez <fperez@colorado.edu>
5313
5316
5314 * IPython/iplib.py (InteractiveShell.interact): Added the original
5317 * IPython/iplib.py (InteractiveShell.interact): Added the original
5315 code from 'code.py' for this module in order to change the
5318 code from 'code.py' for this module in order to change the
5316 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5319 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5317 the history cache would break when the user hit Ctrl-C, and
5320 the history cache would break when the user hit Ctrl-C, and
5318 interact() offers no way to add any hooks to it.
5321 interact() offers no way to add any hooks to it.
5319
5322
5320 2001-12-23 Fernando Perez <fperez@colorado.edu>
5323 2001-12-23 Fernando Perez <fperez@colorado.edu>
5321
5324
5322 * setup.py: added check for 'MANIFEST' before trying to remove
5325 * setup.py: added check for 'MANIFEST' before trying to remove
5323 it. Thanks to Sean Reifschneider.
5326 it. Thanks to Sean Reifschneider.
5324
5327
5325 2001-12-22 Fernando Perez <fperez@colorado.edu>
5328 2001-12-22 Fernando Perez <fperez@colorado.edu>
5326
5329
5327 * Released 0.2.2.
5330 * Released 0.2.2.
5328
5331
5329 * Finished (reasonably) writing the manual. Later will add the
5332 * Finished (reasonably) writing the manual. Later will add the
5330 python-standard navigation stylesheets, but for the time being
5333 python-standard navigation stylesheets, but for the time being
5331 it's fairly complete. Distribution will include html and pdf
5334 it's fairly complete. Distribution will include html and pdf
5332 versions.
5335 versions.
5333
5336
5334 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5337 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5335 (MayaVi author).
5338 (MayaVi author).
5336
5339
5337 2001-12-21 Fernando Perez <fperez@colorado.edu>
5340 2001-12-21 Fernando Perez <fperez@colorado.edu>
5338
5341
5339 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5342 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5340 good public release, I think (with the manual and the distutils
5343 good public release, I think (with the manual and the distutils
5341 installer). The manual can use some work, but that can go
5344 installer). The manual can use some work, but that can go
5342 slowly. Otherwise I think it's quite nice for end users. Next
5345 slowly. Otherwise I think it's quite nice for end users. Next
5343 summer, rewrite the guts of it...
5346 summer, rewrite the guts of it...
5344
5347
5345 * Changed format of ipythonrc files to use whitespace as the
5348 * Changed format of ipythonrc files to use whitespace as the
5346 separator instead of an explicit '='. Cleaner.
5349 separator instead of an explicit '='. Cleaner.
5347
5350
5348 2001-12-20 Fernando Perez <fperez@colorado.edu>
5351 2001-12-20 Fernando Perez <fperez@colorado.edu>
5349
5352
5350 * Started a manual in LyX. For now it's just a quick merge of the
5353 * Started a manual in LyX. For now it's just a quick merge of the
5351 various internal docstrings and READMEs. Later it may grow into a
5354 various internal docstrings and READMEs. Later it may grow into a
5352 nice, full-blown manual.
5355 nice, full-blown manual.
5353
5356
5354 * Set up a distutils based installer. Installation should now be
5357 * Set up a distutils based installer. Installation should now be
5355 trivially simple for end-users.
5358 trivially simple for end-users.
5356
5359
5357 2001-12-11 Fernando Perez <fperez@colorado.edu>
5360 2001-12-11 Fernando Perez <fperez@colorado.edu>
5358
5361
5359 * Released 0.2.0. First public release, announced it at
5362 * Released 0.2.0. First public release, announced it at
5360 comp.lang.python. From now on, just bugfixes...
5363 comp.lang.python. From now on, just bugfixes...
5361
5364
5362 * Went through all the files, set copyright/license notices and
5365 * Went through all the files, set copyright/license notices and
5363 cleaned up things. Ready for release.
5366 cleaned up things. Ready for release.
5364
5367
5365 2001-12-10 Fernando Perez <fperez@colorado.edu>
5368 2001-12-10 Fernando Perez <fperez@colorado.edu>
5366
5369
5367 * Changed the first-time installer not to use tarfiles. It's more
5370 * Changed the first-time installer not to use tarfiles. It's more
5368 robust now and less unix-dependent. Also makes it easier for
5371 robust now and less unix-dependent. Also makes it easier for
5369 people to later upgrade versions.
5372 people to later upgrade versions.
5370
5373
5371 * Changed @exit to @abort to reflect the fact that it's pretty
5374 * Changed @exit to @abort to reflect the fact that it's pretty
5372 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5375 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5373 becomes significant only when IPyhton is embedded: in that case,
5376 becomes significant only when IPyhton is embedded: in that case,
5374 C-D closes IPython only, but @abort kills the enclosing program
5377 C-D closes IPython only, but @abort kills the enclosing program
5375 too (unless it had called IPython inside a try catching
5378 too (unless it had called IPython inside a try catching
5376 SystemExit).
5379 SystemExit).
5377
5380
5378 * Created Shell module which exposes the actuall IPython Shell
5381 * Created Shell module which exposes the actuall IPython Shell
5379 classes, currently the normal and the embeddable one. This at
5382 classes, currently the normal and the embeddable one. This at
5380 least offers a stable interface we won't need to change when
5383 least offers a stable interface we won't need to change when
5381 (later) the internals are rewritten. That rewrite will be confined
5384 (later) the internals are rewritten. That rewrite will be confined
5382 to iplib and ipmaker, but the Shell interface should remain as is.
5385 to iplib and ipmaker, but the Shell interface should remain as is.
5383
5386
5384 * Added embed module which offers an embeddable IPShell object,
5387 * Added embed module which offers an embeddable IPShell object,
5385 useful to fire up IPython *inside* a running program. Great for
5388 useful to fire up IPython *inside* a running program. Great for
5386 debugging or dynamical data analysis.
5389 debugging or dynamical data analysis.
5387
5390
5388 2001-12-08 Fernando Perez <fperez@colorado.edu>
5391 2001-12-08 Fernando Perez <fperez@colorado.edu>
5389
5392
5390 * Fixed small bug preventing seeing info from methods of defined
5393 * Fixed small bug preventing seeing info from methods of defined
5391 objects (incorrect namespace in _ofind()).
5394 objects (incorrect namespace in _ofind()).
5392
5395
5393 * Documentation cleanup. Moved the main usage docstrings to a
5396 * Documentation cleanup. Moved the main usage docstrings to a
5394 separate file, usage.py (cleaner to maintain, and hopefully in the
5397 separate file, usage.py (cleaner to maintain, and hopefully in the
5395 future some perlpod-like way of producing interactive, man and
5398 future some perlpod-like way of producing interactive, man and
5396 html docs out of it will be found).
5399 html docs out of it will be found).
5397
5400
5398 * Added @profile to see your profile at any time.
5401 * Added @profile to see your profile at any time.
5399
5402
5400 * Added @p as an alias for 'print'. It's especially convenient if
5403 * Added @p as an alias for 'print'. It's especially convenient if
5401 using automagic ('p x' prints x).
5404 using automagic ('p x' prints x).
5402
5405
5403 * Small cleanups and fixes after a pychecker run.
5406 * Small cleanups and fixes after a pychecker run.
5404
5407
5405 * Changed the @cd command to handle @cd - and @cd -<n> for
5408 * Changed the @cd command to handle @cd - and @cd -<n> for
5406 visiting any directory in _dh.
5409 visiting any directory in _dh.
5407
5410
5408 * Introduced _dh, a history of visited directories. @dhist prints
5411 * Introduced _dh, a history of visited directories. @dhist prints
5409 it out with numbers.
5412 it out with numbers.
5410
5413
5411 2001-12-07 Fernando Perez <fperez@colorado.edu>
5414 2001-12-07 Fernando Perez <fperez@colorado.edu>
5412
5415
5413 * Released 0.1.22
5416 * Released 0.1.22
5414
5417
5415 * Made initialization a bit more robust against invalid color
5418 * Made initialization a bit more robust against invalid color
5416 options in user input (exit, not traceback-crash).
5419 options in user input (exit, not traceback-crash).
5417
5420
5418 * Changed the bug crash reporter to write the report only in the
5421 * Changed the bug crash reporter to write the report only in the
5419 user's .ipython directory. That way IPython won't litter people's
5422 user's .ipython directory. That way IPython won't litter people's
5420 hard disks with crash files all over the place. Also print on
5423 hard disks with crash files all over the place. Also print on
5421 screen the necessary mail command.
5424 screen the necessary mail command.
5422
5425
5423 * With the new ultraTB, implemented LightBG color scheme for light
5426 * With the new ultraTB, implemented LightBG color scheme for light
5424 background terminals. A lot of people like white backgrounds, so I
5427 background terminals. A lot of people like white backgrounds, so I
5425 guess we should at least give them something readable.
5428 guess we should at least give them something readable.
5426
5429
5427 2001-12-06 Fernando Perez <fperez@colorado.edu>
5430 2001-12-06 Fernando Perez <fperez@colorado.edu>
5428
5431
5429 * Modified the structure of ultraTB. Now there's a proper class
5432 * Modified the structure of ultraTB. Now there's a proper class
5430 for tables of color schemes which allow adding schemes easily and
5433 for tables of color schemes which allow adding schemes easily and
5431 switching the active scheme without creating a new instance every
5434 switching the active scheme without creating a new instance every
5432 time (which was ridiculous). The syntax for creating new schemes
5435 time (which was ridiculous). The syntax for creating new schemes
5433 is also cleaner. I think ultraTB is finally done, with a clean
5436 is also cleaner. I think ultraTB is finally done, with a clean
5434 class structure. Names are also much cleaner (now there's proper
5437 class structure. Names are also much cleaner (now there's proper
5435 color tables, no need for every variable to also have 'color' in
5438 color tables, no need for every variable to also have 'color' in
5436 its name).
5439 its name).
5437
5440
5438 * Broke down genutils into separate files. Now genutils only
5441 * Broke down genutils into separate files. Now genutils only
5439 contains utility functions, and classes have been moved to their
5442 contains utility functions, and classes have been moved to their
5440 own files (they had enough independent functionality to warrant
5443 own files (they had enough independent functionality to warrant
5441 it): ConfigLoader, OutputTrap, Struct.
5444 it): ConfigLoader, OutputTrap, Struct.
5442
5445
5443 2001-12-05 Fernando Perez <fperez@colorado.edu>
5446 2001-12-05 Fernando Perez <fperez@colorado.edu>
5444
5447
5445 * IPython turns 21! Released version 0.1.21, as a candidate for
5448 * IPython turns 21! Released version 0.1.21, as a candidate for
5446 public consumption. If all goes well, release in a few days.
5449 public consumption. If all goes well, release in a few days.
5447
5450
5448 * Fixed path bug (files in Extensions/ directory wouldn't be found
5451 * Fixed path bug (files in Extensions/ directory wouldn't be found
5449 unless IPython/ was explicitly in sys.path).
5452 unless IPython/ was explicitly in sys.path).
5450
5453
5451 * Extended the FlexCompleter class as MagicCompleter to allow
5454 * Extended the FlexCompleter class as MagicCompleter to allow
5452 completion of @-starting lines.
5455 completion of @-starting lines.
5453
5456
5454 * Created __release__.py file as a central repository for release
5457 * Created __release__.py file as a central repository for release
5455 info that other files can read from.
5458 info that other files can read from.
5456
5459
5457 * Fixed small bug in logging: when logging was turned on in
5460 * Fixed small bug in logging: when logging was turned on in
5458 mid-session, old lines with special meanings (!@?) were being
5461 mid-session, old lines with special meanings (!@?) were being
5459 logged without the prepended comment, which is necessary since
5462 logged without the prepended comment, which is necessary since
5460 they are not truly valid python syntax. This should make session
5463 they are not truly valid python syntax. This should make session
5461 restores produce less errors.
5464 restores produce less errors.
5462
5465
5463 * The namespace cleanup forced me to make a FlexCompleter class
5466 * The namespace cleanup forced me to make a FlexCompleter class
5464 which is nothing but a ripoff of rlcompleter, but with selectable
5467 which is nothing but a ripoff of rlcompleter, but with selectable
5465 namespace (rlcompleter only works in __main__.__dict__). I'll try
5468 namespace (rlcompleter only works in __main__.__dict__). I'll try
5466 to submit a note to the authors to see if this change can be
5469 to submit a note to the authors to see if this change can be
5467 incorporated in future rlcompleter releases (Dec.6: done)
5470 incorporated in future rlcompleter releases (Dec.6: done)
5468
5471
5469 * More fixes to namespace handling. It was a mess! Now all
5472 * More fixes to namespace handling. It was a mess! Now all
5470 explicit references to __main__.__dict__ are gone (except when
5473 explicit references to __main__.__dict__ are gone (except when
5471 really needed) and everything is handled through the namespace
5474 really needed) and everything is handled through the namespace
5472 dicts in the IPython instance. We seem to be getting somewhere
5475 dicts in the IPython instance. We seem to be getting somewhere
5473 with this, finally...
5476 with this, finally...
5474
5477
5475 * Small documentation updates.
5478 * Small documentation updates.
5476
5479
5477 * Created the Extensions directory under IPython (with an
5480 * Created the Extensions directory under IPython (with an
5478 __init__.py). Put the PhysicalQ stuff there. This directory should
5481 __init__.py). Put the PhysicalQ stuff there. This directory should
5479 be used for all special-purpose extensions.
5482 be used for all special-purpose extensions.
5480
5483
5481 * File renaming:
5484 * File renaming:
5482 ipythonlib --> ipmaker
5485 ipythonlib --> ipmaker
5483 ipplib --> iplib
5486 ipplib --> iplib
5484 This makes a bit more sense in terms of what these files actually do.
5487 This makes a bit more sense in terms of what these files actually do.
5485
5488
5486 * Moved all the classes and functions in ipythonlib to ipplib, so
5489 * Moved all the classes and functions in ipythonlib to ipplib, so
5487 now ipythonlib only has make_IPython(). This will ease up its
5490 now ipythonlib only has make_IPython(). This will ease up its
5488 splitting in smaller functional chunks later.
5491 splitting in smaller functional chunks later.
5489
5492
5490 * Cleaned up (done, I think) output of @whos. Better column
5493 * Cleaned up (done, I think) output of @whos. Better column
5491 formatting, and now shows str(var) for as much as it can, which is
5494 formatting, and now shows str(var) for as much as it can, which is
5492 typically what one gets with a 'print var'.
5495 typically what one gets with a 'print var'.
5493
5496
5494 2001-12-04 Fernando Perez <fperez@colorado.edu>
5497 2001-12-04 Fernando Perez <fperez@colorado.edu>
5495
5498
5496 * Fixed namespace problems. Now builtin/IPyhton/user names get
5499 * Fixed namespace problems. Now builtin/IPyhton/user names get
5497 properly reported in their namespace. Internal namespace handling
5500 properly reported in their namespace. Internal namespace handling
5498 is finally getting decent (not perfect yet, but much better than
5501 is finally getting decent (not perfect yet, but much better than
5499 the ad-hoc mess we had).
5502 the ad-hoc mess we had).
5500
5503
5501 * Removed -exit option. If people just want to run a python
5504 * Removed -exit option. If people just want to run a python
5502 script, that's what the normal interpreter is for. Less
5505 script, that's what the normal interpreter is for. Less
5503 unnecessary options, less chances for bugs.
5506 unnecessary options, less chances for bugs.
5504
5507
5505 * Added a crash handler which generates a complete post-mortem if
5508 * Added a crash handler which generates a complete post-mortem if
5506 IPython crashes. This will help a lot in tracking bugs down the
5509 IPython crashes. This will help a lot in tracking bugs down the
5507 road.
5510 road.
5508
5511
5509 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5512 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5510 which were boud to functions being reassigned would bypass the
5513 which were boud to functions being reassigned would bypass the
5511 logger, breaking the sync of _il with the prompt counter. This
5514 logger, breaking the sync of _il with the prompt counter. This
5512 would then crash IPython later when a new line was logged.
5515 would then crash IPython later when a new line was logged.
5513
5516
5514 2001-12-02 Fernando Perez <fperez@colorado.edu>
5517 2001-12-02 Fernando Perez <fperez@colorado.edu>
5515
5518
5516 * Made IPython a package. This means people don't have to clutter
5519 * Made IPython a package. This means people don't have to clutter
5517 their sys.path with yet another directory. Changed the INSTALL
5520 their sys.path with yet another directory. Changed the INSTALL
5518 file accordingly.
5521 file accordingly.
5519
5522
5520 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5523 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5521 sorts its output (so @who shows it sorted) and @whos formats the
5524 sorts its output (so @who shows it sorted) and @whos formats the
5522 table according to the width of the first column. Nicer, easier to
5525 table according to the width of the first column. Nicer, easier to
5523 read. Todo: write a generic table_format() which takes a list of
5526 read. Todo: write a generic table_format() which takes a list of
5524 lists and prints it nicely formatted, with optional row/column
5527 lists and prints it nicely formatted, with optional row/column
5525 separators and proper padding and justification.
5528 separators and proper padding and justification.
5526
5529
5527 * Released 0.1.20
5530 * Released 0.1.20
5528
5531
5529 * Fixed bug in @log which would reverse the inputcache list (a
5532 * Fixed bug in @log which would reverse the inputcache list (a
5530 copy operation was missing).
5533 copy operation was missing).
5531
5534
5532 * Code cleanup. @config was changed to use page(). Better, since
5535 * Code cleanup. @config was changed to use page(). Better, since
5533 its output is always quite long.
5536 its output is always quite long.
5534
5537
5535 * Itpl is back as a dependency. I was having too many problems
5538 * Itpl is back as a dependency. I was having too many problems
5536 getting the parametric aliases to work reliably, and it's just
5539 getting the parametric aliases to work reliably, and it's just
5537 easier to code weird string operations with it than playing %()s
5540 easier to code weird string operations with it than playing %()s
5538 games. It's only ~6k, so I don't think it's too big a deal.
5541 games. It's only ~6k, so I don't think it's too big a deal.
5539
5542
5540 * Found (and fixed) a very nasty bug with history. !lines weren't
5543 * Found (and fixed) a very nasty bug with history. !lines weren't
5541 getting cached, and the out of sync caches would crash
5544 getting cached, and the out of sync caches would crash
5542 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5545 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5543 division of labor a bit better. Bug fixed, cleaner structure.
5546 division of labor a bit better. Bug fixed, cleaner structure.
5544
5547
5545 2001-12-01 Fernando Perez <fperez@colorado.edu>
5548 2001-12-01 Fernando Perez <fperez@colorado.edu>
5546
5549
5547 * Released 0.1.19
5550 * Released 0.1.19
5548
5551
5549 * Added option -n to @hist to prevent line number printing. Much
5552 * Added option -n to @hist to prevent line number printing. Much
5550 easier to copy/paste code this way.
5553 easier to copy/paste code this way.
5551
5554
5552 * Created global _il to hold the input list. Allows easy
5555 * Created global _il to hold the input list. Allows easy
5553 re-execution of blocks of code by slicing it (inspired by Janko's
5556 re-execution of blocks of code by slicing it (inspired by Janko's
5554 comment on 'macros').
5557 comment on 'macros').
5555
5558
5556 * Small fixes and doc updates.
5559 * Small fixes and doc updates.
5557
5560
5558 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5561 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5559 much too fragile with automagic. Handles properly multi-line
5562 much too fragile with automagic. Handles properly multi-line
5560 statements and takes parameters.
5563 statements and takes parameters.
5561
5564
5562 2001-11-30 Fernando Perez <fperez@colorado.edu>
5565 2001-11-30 Fernando Perez <fperez@colorado.edu>
5563
5566
5564 * Version 0.1.18 released.
5567 * Version 0.1.18 released.
5565
5568
5566 * Fixed nasty namespace bug in initial module imports.
5569 * Fixed nasty namespace bug in initial module imports.
5567
5570
5568 * Added copyright/license notes to all code files (except
5571 * Added copyright/license notes to all code files (except
5569 DPyGetOpt). For the time being, LGPL. That could change.
5572 DPyGetOpt). For the time being, LGPL. That could change.
5570
5573
5571 * Rewrote a much nicer README, updated INSTALL, cleaned up
5574 * Rewrote a much nicer README, updated INSTALL, cleaned up
5572 ipythonrc-* samples.
5575 ipythonrc-* samples.
5573
5576
5574 * Overall code/documentation cleanup. Basically ready for
5577 * Overall code/documentation cleanup. Basically ready for
5575 release. Only remaining thing: licence decision (LGPL?).
5578 release. Only remaining thing: licence decision (LGPL?).
5576
5579
5577 * Converted load_config to a class, ConfigLoader. Now recursion
5580 * Converted load_config to a class, ConfigLoader. Now recursion
5578 control is better organized. Doesn't include the same file twice.
5581 control is better organized. Doesn't include the same file twice.
5579
5582
5580 2001-11-29 Fernando Perez <fperez@colorado.edu>
5583 2001-11-29 Fernando Perez <fperez@colorado.edu>
5581
5584
5582 * Got input history working. Changed output history variables from
5585 * Got input history working. Changed output history variables from
5583 _p to _o so that _i is for input and _o for output. Just cleaner
5586 _p to _o so that _i is for input and _o for output. Just cleaner
5584 convention.
5587 convention.
5585
5588
5586 * Implemented parametric aliases. This pretty much allows the
5589 * Implemented parametric aliases. This pretty much allows the
5587 alias system to offer full-blown shell convenience, I think.
5590 alias system to offer full-blown shell convenience, I think.
5588
5591
5589 * Version 0.1.17 released, 0.1.18 opened.
5592 * Version 0.1.17 released, 0.1.18 opened.
5590
5593
5591 * dot_ipython/ipythonrc (alias): added documentation.
5594 * dot_ipython/ipythonrc (alias): added documentation.
5592 (xcolor): Fixed small bug (xcolors -> xcolor)
5595 (xcolor): Fixed small bug (xcolors -> xcolor)
5593
5596
5594 * Changed the alias system. Now alias is a magic command to define
5597 * Changed the alias system. Now alias is a magic command to define
5595 aliases just like the shell. Rationale: the builtin magics should
5598 aliases just like the shell. Rationale: the builtin magics should
5596 be there for things deeply connected to IPython's
5599 be there for things deeply connected to IPython's
5597 architecture. And this is a much lighter system for what I think
5600 architecture. And this is a much lighter system for what I think
5598 is the really important feature: allowing users to define quickly
5601 is the really important feature: allowing users to define quickly
5599 magics that will do shell things for them, so they can customize
5602 magics that will do shell things for them, so they can customize
5600 IPython easily to match their work habits. If someone is really
5603 IPython easily to match their work habits. If someone is really
5601 desperate to have another name for a builtin alias, they can
5604 desperate to have another name for a builtin alias, they can
5602 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5605 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5603 works.
5606 works.
5604
5607
5605 2001-11-28 Fernando Perez <fperez@colorado.edu>
5608 2001-11-28 Fernando Perez <fperez@colorado.edu>
5606
5609
5607 * Changed @file so that it opens the source file at the proper
5610 * Changed @file so that it opens the source file at the proper
5608 line. Since it uses less, if your EDITOR environment is
5611 line. Since it uses less, if your EDITOR environment is
5609 configured, typing v will immediately open your editor of choice
5612 configured, typing v will immediately open your editor of choice
5610 right at the line where the object is defined. Not as quick as
5613 right at the line where the object is defined. Not as quick as
5611 having a direct @edit command, but for all intents and purposes it
5614 having a direct @edit command, but for all intents and purposes it
5612 works. And I don't have to worry about writing @edit to deal with
5615 works. And I don't have to worry about writing @edit to deal with
5613 all the editors, less does that.
5616 all the editors, less does that.
5614
5617
5615 * Version 0.1.16 released, 0.1.17 opened.
5618 * Version 0.1.16 released, 0.1.17 opened.
5616
5619
5617 * Fixed some nasty bugs in the page/page_dumb combo that could
5620 * Fixed some nasty bugs in the page/page_dumb combo that could
5618 crash IPython.
5621 crash IPython.
5619
5622
5620 2001-11-27 Fernando Perez <fperez@colorado.edu>
5623 2001-11-27 Fernando Perez <fperez@colorado.edu>
5621
5624
5622 * Version 0.1.15 released, 0.1.16 opened.
5625 * Version 0.1.15 released, 0.1.16 opened.
5623
5626
5624 * Finally got ? and ?? to work for undefined things: now it's
5627 * Finally got ? and ?? to work for undefined things: now it's
5625 possible to type {}.get? and get information about the get method
5628 possible to type {}.get? and get information about the get method
5626 of dicts, or os.path? even if only os is defined (so technically
5629 of dicts, or os.path? even if only os is defined (so technically
5627 os.path isn't). Works at any level. For example, after import os,
5630 os.path isn't). Works at any level. For example, after import os,
5628 os?, os.path?, os.path.abspath? all work. This is great, took some
5631 os?, os.path?, os.path.abspath? all work. This is great, took some
5629 work in _ofind.
5632 work in _ofind.
5630
5633
5631 * Fixed more bugs with logging. The sanest way to do it was to add
5634 * Fixed more bugs with logging. The sanest way to do it was to add
5632 to @log a 'mode' parameter. Killed two in one shot (this mode
5635 to @log a 'mode' parameter. Killed two in one shot (this mode
5633 option was a request of Janko's). I think it's finally clean
5636 option was a request of Janko's). I think it's finally clean
5634 (famous last words).
5637 (famous last words).
5635
5638
5636 * Added a page_dumb() pager which does a decent job of paging on
5639 * Added a page_dumb() pager which does a decent job of paging on
5637 screen, if better things (like less) aren't available. One less
5640 screen, if better things (like less) aren't available. One less
5638 unix dependency (someday maybe somebody will port this to
5641 unix dependency (someday maybe somebody will port this to
5639 windows).
5642 windows).
5640
5643
5641 * Fixed problem in magic_log: would lock of logging out if log
5644 * Fixed problem in magic_log: would lock of logging out if log
5642 creation failed (because it would still think it had succeeded).
5645 creation failed (because it would still think it had succeeded).
5643
5646
5644 * Improved the page() function using curses to auto-detect screen
5647 * Improved the page() function using curses to auto-detect screen
5645 size. Now it can make a much better decision on whether to print
5648 size. Now it can make a much better decision on whether to print
5646 or page a string. Option screen_length was modified: a value 0
5649 or page a string. Option screen_length was modified: a value 0
5647 means auto-detect, and that's the default now.
5650 means auto-detect, and that's the default now.
5648
5651
5649 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5652 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5650 go out. I'll test it for a few days, then talk to Janko about
5653 go out. I'll test it for a few days, then talk to Janko about
5651 licences and announce it.
5654 licences and announce it.
5652
5655
5653 * Fixed the length of the auto-generated ---> prompt which appears
5656 * Fixed the length of the auto-generated ---> prompt which appears
5654 for auto-parens and auto-quotes. Getting this right isn't trivial,
5657 for auto-parens and auto-quotes. Getting this right isn't trivial,
5655 with all the color escapes, different prompt types and optional
5658 with all the color escapes, different prompt types and optional
5656 separators. But it seems to be working in all the combinations.
5659 separators. But it seems to be working in all the combinations.
5657
5660
5658 2001-11-26 Fernando Perez <fperez@colorado.edu>
5661 2001-11-26 Fernando Perez <fperez@colorado.edu>
5659
5662
5660 * Wrote a regexp filter to get option types from the option names
5663 * Wrote a regexp filter to get option types from the option names
5661 string. This eliminates the need to manually keep two duplicate
5664 string. This eliminates the need to manually keep two duplicate
5662 lists.
5665 lists.
5663
5666
5664 * Removed the unneeded check_option_names. Now options are handled
5667 * Removed the unneeded check_option_names. Now options are handled
5665 in a much saner manner and it's easy to visually check that things
5668 in a much saner manner and it's easy to visually check that things
5666 are ok.
5669 are ok.
5667
5670
5668 * Updated version numbers on all files I modified to carry a
5671 * Updated version numbers on all files I modified to carry a
5669 notice so Janko and Nathan have clear version markers.
5672 notice so Janko and Nathan have clear version markers.
5670
5673
5671 * Updated docstring for ultraTB with my changes. I should send
5674 * Updated docstring for ultraTB with my changes. I should send
5672 this to Nathan.
5675 this to Nathan.
5673
5676
5674 * Lots of small fixes. Ran everything through pychecker again.
5677 * Lots of small fixes. Ran everything through pychecker again.
5675
5678
5676 * Made loading of deep_reload an cmd line option. If it's not too
5679 * Made loading of deep_reload an cmd line option. If it's not too
5677 kosher, now people can just disable it. With -nodeep_reload it's
5680 kosher, now people can just disable it. With -nodeep_reload it's
5678 still available as dreload(), it just won't overwrite reload().
5681 still available as dreload(), it just won't overwrite reload().
5679
5682
5680 * Moved many options to the no| form (-opt and -noopt
5683 * Moved many options to the no| form (-opt and -noopt
5681 accepted). Cleaner.
5684 accepted). Cleaner.
5682
5685
5683 * Changed magic_log so that if called with no parameters, it uses
5686 * Changed magic_log so that if called with no parameters, it uses
5684 'rotate' mode. That way auto-generated logs aren't automatically
5687 'rotate' mode. That way auto-generated logs aren't automatically
5685 over-written. For normal logs, now a backup is made if it exists
5688 over-written. For normal logs, now a backup is made if it exists
5686 (only 1 level of backups). A new 'backup' mode was added to the
5689 (only 1 level of backups). A new 'backup' mode was added to the
5687 Logger class to support this. This was a request by Janko.
5690 Logger class to support this. This was a request by Janko.
5688
5691
5689 * Added @logoff/@logon to stop/restart an active log.
5692 * Added @logoff/@logon to stop/restart an active log.
5690
5693
5691 * Fixed a lot of bugs in log saving/replay. It was pretty
5694 * Fixed a lot of bugs in log saving/replay. It was pretty
5692 broken. Now special lines (!@,/) appear properly in the command
5695 broken. Now special lines (!@,/) appear properly in the command
5693 history after a log replay.
5696 history after a log replay.
5694
5697
5695 * Tried and failed to implement full session saving via pickle. My
5698 * Tried and failed to implement full session saving via pickle. My
5696 idea was to pickle __main__.__dict__, but modules can't be
5699 idea was to pickle __main__.__dict__, but modules can't be
5697 pickled. This would be a better alternative to replaying logs, but
5700 pickled. This would be a better alternative to replaying logs, but
5698 seems quite tricky to get to work. Changed -session to be called
5701 seems quite tricky to get to work. Changed -session to be called
5699 -logplay, which more accurately reflects what it does. And if we
5702 -logplay, which more accurately reflects what it does. And if we
5700 ever get real session saving working, -session is now available.
5703 ever get real session saving working, -session is now available.
5701
5704
5702 * Implemented color schemes for prompts also. As for tracebacks,
5705 * Implemented color schemes for prompts also. As for tracebacks,
5703 currently only NoColor and Linux are supported. But now the
5706 currently only NoColor and Linux are supported. But now the
5704 infrastructure is in place, based on a generic ColorScheme
5707 infrastructure is in place, based on a generic ColorScheme
5705 class. So writing and activating new schemes both for the prompts
5708 class. So writing and activating new schemes both for the prompts
5706 and the tracebacks should be straightforward.
5709 and the tracebacks should be straightforward.
5707
5710
5708 * Version 0.1.13 released, 0.1.14 opened.
5711 * Version 0.1.13 released, 0.1.14 opened.
5709
5712
5710 * Changed handling of options for output cache. Now counter is
5713 * Changed handling of options for output cache. Now counter is
5711 hardwired starting at 1 and one specifies the maximum number of
5714 hardwired starting at 1 and one specifies the maximum number of
5712 entries *in the outcache* (not the max prompt counter). This is
5715 entries *in the outcache* (not the max prompt counter). This is
5713 much better, since many statements won't increase the cache
5716 much better, since many statements won't increase the cache
5714 count. It also eliminated some confusing options, now there's only
5717 count. It also eliminated some confusing options, now there's only
5715 one: cache_size.
5718 one: cache_size.
5716
5719
5717 * Added 'alias' magic function and magic_alias option in the
5720 * Added 'alias' magic function and magic_alias option in the
5718 ipythonrc file. Now the user can easily define whatever names he
5721 ipythonrc file. Now the user can easily define whatever names he
5719 wants for the magic functions without having to play weird
5722 wants for the magic functions without having to play weird
5720 namespace games. This gives IPython a real shell-like feel.
5723 namespace games. This gives IPython a real shell-like feel.
5721
5724
5722 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5725 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5723 @ or not).
5726 @ or not).
5724
5727
5725 This was one of the last remaining 'visible' bugs (that I know
5728 This was one of the last remaining 'visible' bugs (that I know
5726 of). I think if I can clean up the session loading so it works
5729 of). I think if I can clean up the session loading so it works
5727 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5730 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5728 about licensing).
5731 about licensing).
5729
5732
5730 2001-11-25 Fernando Perez <fperez@colorado.edu>
5733 2001-11-25 Fernando Perez <fperez@colorado.edu>
5731
5734
5732 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5735 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5733 there's a cleaner distinction between what ? and ?? show.
5736 there's a cleaner distinction between what ? and ?? show.
5734
5737
5735 * Added screen_length option. Now the user can define his own
5738 * Added screen_length option. Now the user can define his own
5736 screen size for page() operations.
5739 screen size for page() operations.
5737
5740
5738 * Implemented magic shell-like functions with automatic code
5741 * Implemented magic shell-like functions with automatic code
5739 generation. Now adding another function is just a matter of adding
5742 generation. Now adding another function is just a matter of adding
5740 an entry to a dict, and the function is dynamically generated at
5743 an entry to a dict, and the function is dynamically generated at
5741 run-time. Python has some really cool features!
5744 run-time. Python has some really cool features!
5742
5745
5743 * Renamed many options to cleanup conventions a little. Now all
5746 * Renamed many options to cleanup conventions a little. Now all
5744 are lowercase, and only underscores where needed. Also in the code
5747 are lowercase, and only underscores where needed. Also in the code
5745 option name tables are clearer.
5748 option name tables are clearer.
5746
5749
5747 * Changed prompts a little. Now input is 'In [n]:' instead of
5750 * Changed prompts a little. Now input is 'In [n]:' instead of
5748 'In[n]:='. This allows it the numbers to be aligned with the
5751 'In[n]:='. This allows it the numbers to be aligned with the
5749 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5752 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5750 Python (it was a Mathematica thing). The '...' continuation prompt
5753 Python (it was a Mathematica thing). The '...' continuation prompt
5751 was also changed a little to align better.
5754 was also changed a little to align better.
5752
5755
5753 * Fixed bug when flushing output cache. Not all _p<n> variables
5756 * Fixed bug when flushing output cache. Not all _p<n> variables
5754 exist, so their deletion needs to be wrapped in a try:
5757 exist, so their deletion needs to be wrapped in a try:
5755
5758
5756 * Figured out how to properly use inspect.formatargspec() (it
5759 * Figured out how to properly use inspect.formatargspec() (it
5757 requires the args preceded by *). So I removed all the code from
5760 requires the args preceded by *). So I removed all the code from
5758 _get_pdef in Magic, which was just replicating that.
5761 _get_pdef in Magic, which was just replicating that.
5759
5762
5760 * Added test to prefilter to allow redefining magic function names
5763 * Added test to prefilter to allow redefining magic function names
5761 as variables. This is ok, since the @ form is always available,
5764 as variables. This is ok, since the @ form is always available,
5762 but whe should allow the user to define a variable called 'ls' if
5765 but whe should allow the user to define a variable called 'ls' if
5763 he needs it.
5766 he needs it.
5764
5767
5765 * Moved the ToDo information from README into a separate ToDo.
5768 * Moved the ToDo information from README into a separate ToDo.
5766
5769
5767 * General code cleanup and small bugfixes. I think it's close to a
5770 * General code cleanup and small bugfixes. I think it's close to a
5768 state where it can be released, obviously with a big 'beta'
5771 state where it can be released, obviously with a big 'beta'
5769 warning on it.
5772 warning on it.
5770
5773
5771 * Got the magic function split to work. Now all magics are defined
5774 * Got the magic function split to work. Now all magics are defined
5772 in a separate class. It just organizes things a bit, and now
5775 in a separate class. It just organizes things a bit, and now
5773 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5776 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5774 was too long).
5777 was too long).
5775
5778
5776 * Changed @clear to @reset to avoid potential confusions with
5779 * Changed @clear to @reset to avoid potential confusions with
5777 the shell command clear. Also renamed @cl to @clear, which does
5780 the shell command clear. Also renamed @cl to @clear, which does
5778 exactly what people expect it to from their shell experience.
5781 exactly what people expect it to from their shell experience.
5779
5782
5780 Added a check to the @reset command (since it's so
5783 Added a check to the @reset command (since it's so
5781 destructive, it's probably a good idea to ask for confirmation).
5784 destructive, it's probably a good idea to ask for confirmation).
5782 But now reset only works for full namespace resetting. Since the
5785 But now reset only works for full namespace resetting. Since the
5783 del keyword is already there for deleting a few specific
5786 del keyword is already there for deleting a few specific
5784 variables, I don't see the point of having a redundant magic
5787 variables, I don't see the point of having a redundant magic
5785 function for the same task.
5788 function for the same task.
5786
5789
5787 2001-11-24 Fernando Perez <fperez@colorado.edu>
5790 2001-11-24 Fernando Perez <fperez@colorado.edu>
5788
5791
5789 * Updated the builtin docs (esp. the ? ones).
5792 * Updated the builtin docs (esp. the ? ones).
5790
5793
5791 * Ran all the code through pychecker. Not terribly impressed with
5794 * Ran all the code through pychecker. Not terribly impressed with
5792 it: lots of spurious warnings and didn't really find anything of
5795 it: lots of spurious warnings and didn't really find anything of
5793 substance (just a few modules being imported and not used).
5796 substance (just a few modules being imported and not used).
5794
5797
5795 * Implemented the new ultraTB functionality into IPython. New
5798 * Implemented the new ultraTB functionality into IPython. New
5796 option: xcolors. This chooses color scheme. xmode now only selects
5799 option: xcolors. This chooses color scheme. xmode now only selects
5797 between Plain and Verbose. Better orthogonality.
5800 between Plain and Verbose. Better orthogonality.
5798
5801
5799 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5802 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5800 mode and color scheme for the exception handlers. Now it's
5803 mode and color scheme for the exception handlers. Now it's
5801 possible to have the verbose traceback with no coloring.
5804 possible to have the verbose traceback with no coloring.
5802
5805
5803 2001-11-23 Fernando Perez <fperez@colorado.edu>
5806 2001-11-23 Fernando Perez <fperez@colorado.edu>
5804
5807
5805 * Version 0.1.12 released, 0.1.13 opened.
5808 * Version 0.1.12 released, 0.1.13 opened.
5806
5809
5807 * Removed option to set auto-quote and auto-paren escapes by
5810 * Removed option to set auto-quote and auto-paren escapes by
5808 user. The chances of breaking valid syntax are just too high. If
5811 user. The chances of breaking valid syntax are just too high. If
5809 someone *really* wants, they can always dig into the code.
5812 someone *really* wants, they can always dig into the code.
5810
5813
5811 * Made prompt separators configurable.
5814 * Made prompt separators configurable.
5812
5815
5813 2001-11-22 Fernando Perez <fperez@colorado.edu>
5816 2001-11-22 Fernando Perez <fperez@colorado.edu>
5814
5817
5815 * Small bugfixes in many places.
5818 * Small bugfixes in many places.
5816
5819
5817 * Removed the MyCompleter class from ipplib. It seemed redundant
5820 * Removed the MyCompleter class from ipplib. It seemed redundant
5818 with the C-p,C-n history search functionality. Less code to
5821 with the C-p,C-n history search functionality. Less code to
5819 maintain.
5822 maintain.
5820
5823
5821 * Moved all the original ipython.py code into ipythonlib.py. Right
5824 * Moved all the original ipython.py code into ipythonlib.py. Right
5822 now it's just one big dump into a function called make_IPython, so
5825 now it's just one big dump into a function called make_IPython, so
5823 no real modularity has been gained. But at least it makes the
5826 no real modularity has been gained. But at least it makes the
5824 wrapper script tiny, and since ipythonlib is a module, it gets
5827 wrapper script tiny, and since ipythonlib is a module, it gets
5825 compiled and startup is much faster.
5828 compiled and startup is much faster.
5826
5829
5827 This is a reasobably 'deep' change, so we should test it for a
5830 This is a reasobably 'deep' change, so we should test it for a
5828 while without messing too much more with the code.
5831 while without messing too much more with the code.
5829
5832
5830 2001-11-21 Fernando Perez <fperez@colorado.edu>
5833 2001-11-21 Fernando Perez <fperez@colorado.edu>
5831
5834
5832 * Version 0.1.11 released, 0.1.12 opened for further work.
5835 * Version 0.1.11 released, 0.1.12 opened for further work.
5833
5836
5834 * Removed dependency on Itpl. It was only needed in one place. It
5837 * Removed dependency on Itpl. It was only needed in one place. It
5835 would be nice if this became part of python, though. It makes life
5838 would be nice if this became part of python, though. It makes life
5836 *a lot* easier in some cases.
5839 *a lot* easier in some cases.
5837
5840
5838 * Simplified the prefilter code a bit. Now all handlers are
5841 * Simplified the prefilter code a bit. Now all handlers are
5839 expected to explicitly return a value (at least a blank string).
5842 expected to explicitly return a value (at least a blank string).
5840
5843
5841 * Heavy edits in ipplib. Removed the help system altogether. Now
5844 * Heavy edits in ipplib. Removed the help system altogether. Now
5842 obj?/?? is used for inspecting objects, a magic @doc prints
5845 obj?/?? is used for inspecting objects, a magic @doc prints
5843 docstrings, and full-blown Python help is accessed via the 'help'
5846 docstrings, and full-blown Python help is accessed via the 'help'
5844 keyword. This cleans up a lot of code (less to maintain) and does
5847 keyword. This cleans up a lot of code (less to maintain) and does
5845 the job. Since 'help' is now a standard Python component, might as
5848 the job. Since 'help' is now a standard Python component, might as
5846 well use it and remove duplicate functionality.
5849 well use it and remove duplicate functionality.
5847
5850
5848 Also removed the option to use ipplib as a standalone program. By
5851 Also removed the option to use ipplib as a standalone program. By
5849 now it's too dependent on other parts of IPython to function alone.
5852 now it's too dependent on other parts of IPython to function alone.
5850
5853
5851 * Fixed bug in genutils.pager. It would crash if the pager was
5854 * Fixed bug in genutils.pager. It would crash if the pager was
5852 exited immediately after opening (broken pipe).
5855 exited immediately after opening (broken pipe).
5853
5856
5854 * Trimmed down the VerboseTB reporting a little. The header is
5857 * Trimmed down the VerboseTB reporting a little. The header is
5855 much shorter now and the repeated exception arguments at the end
5858 much shorter now and the repeated exception arguments at the end
5856 have been removed. For interactive use the old header seemed a bit
5859 have been removed. For interactive use the old header seemed a bit
5857 excessive.
5860 excessive.
5858
5861
5859 * Fixed small bug in output of @whos for variables with multi-word
5862 * Fixed small bug in output of @whos for variables with multi-word
5860 types (only first word was displayed).
5863 types (only first word was displayed).
5861
5864
5862 2001-11-17 Fernando Perez <fperez@colorado.edu>
5865 2001-11-17 Fernando Perez <fperez@colorado.edu>
5863
5866
5864 * Version 0.1.10 released, 0.1.11 opened for further work.
5867 * Version 0.1.10 released, 0.1.11 opened for further work.
5865
5868
5866 * Modified dirs and friends. dirs now *returns* the stack (not
5869 * Modified dirs and friends. dirs now *returns* the stack (not
5867 prints), so one can manipulate it as a variable. Convenient to
5870 prints), so one can manipulate it as a variable. Convenient to
5868 travel along many directories.
5871 travel along many directories.
5869
5872
5870 * Fixed bug in magic_pdef: would only work with functions with
5873 * Fixed bug in magic_pdef: would only work with functions with
5871 arguments with default values.
5874 arguments with default values.
5872
5875
5873 2001-11-14 Fernando Perez <fperez@colorado.edu>
5876 2001-11-14 Fernando Perez <fperez@colorado.edu>
5874
5877
5875 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5878 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5876 example with IPython. Various other minor fixes and cleanups.
5879 example with IPython. Various other minor fixes and cleanups.
5877
5880
5878 * Version 0.1.9 released, 0.1.10 opened for further work.
5881 * Version 0.1.9 released, 0.1.10 opened for further work.
5879
5882
5880 * Added sys.path to the list of directories searched in the
5883 * Added sys.path to the list of directories searched in the
5881 execfile= option. It used to be the current directory and the
5884 execfile= option. It used to be the current directory and the
5882 user's IPYTHONDIR only.
5885 user's IPYTHONDIR only.
5883
5886
5884 2001-11-13 Fernando Perez <fperez@colorado.edu>
5887 2001-11-13 Fernando Perez <fperez@colorado.edu>
5885
5888
5886 * Reinstated the raw_input/prefilter separation that Janko had
5889 * Reinstated the raw_input/prefilter separation that Janko had
5887 initially. This gives a more convenient setup for extending the
5890 initially. This gives a more convenient setup for extending the
5888 pre-processor from the outside: raw_input always gets a string,
5891 pre-processor from the outside: raw_input always gets a string,
5889 and prefilter has to process it. We can then redefine prefilter
5892 and prefilter has to process it. We can then redefine prefilter
5890 from the outside and implement extensions for special
5893 from the outside and implement extensions for special
5891 purposes.
5894 purposes.
5892
5895
5893 Today I got one for inputting PhysicalQuantity objects
5896 Today I got one for inputting PhysicalQuantity objects
5894 (from Scientific) without needing any function calls at
5897 (from Scientific) without needing any function calls at
5895 all. Extremely convenient, and it's all done as a user-level
5898 all. Extremely convenient, and it's all done as a user-level
5896 extension (no IPython code was touched). Now instead of:
5899 extension (no IPython code was touched). Now instead of:
5897 a = PhysicalQuantity(4.2,'m/s**2')
5900 a = PhysicalQuantity(4.2,'m/s**2')
5898 one can simply say
5901 one can simply say
5899 a = 4.2 m/s**2
5902 a = 4.2 m/s**2
5900 or even
5903 or even
5901 a = 4.2 m/s^2
5904 a = 4.2 m/s^2
5902
5905
5903 I use this, but it's also a proof of concept: IPython really is
5906 I use this, but it's also a proof of concept: IPython really is
5904 fully user-extensible, even at the level of the parsing of the
5907 fully user-extensible, even at the level of the parsing of the
5905 command line. It's not trivial, but it's perfectly doable.
5908 command line. It's not trivial, but it's perfectly doable.
5906
5909
5907 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5910 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5908 the problem of modules being loaded in the inverse order in which
5911 the problem of modules being loaded in the inverse order in which
5909 they were defined in
5912 they were defined in
5910
5913
5911 * Version 0.1.8 released, 0.1.9 opened for further work.
5914 * Version 0.1.8 released, 0.1.9 opened for further work.
5912
5915
5913 * Added magics pdef, source and file. They respectively show the
5916 * Added magics pdef, source and file. They respectively show the
5914 definition line ('prototype' in C), source code and full python
5917 definition line ('prototype' in C), source code and full python
5915 file for any callable object. The object inspector oinfo uses
5918 file for any callable object. The object inspector oinfo uses
5916 these to show the same information.
5919 these to show the same information.
5917
5920
5918 * Version 0.1.7 released, 0.1.8 opened for further work.
5921 * Version 0.1.7 released, 0.1.8 opened for further work.
5919
5922
5920 * Separated all the magic functions into a class called Magic. The
5923 * Separated all the magic functions into a class called Magic. The
5921 InteractiveShell class was becoming too big for Xemacs to handle
5924 InteractiveShell class was becoming too big for Xemacs to handle
5922 (de-indenting a line would lock it up for 10 seconds while it
5925 (de-indenting a line would lock it up for 10 seconds while it
5923 backtracked on the whole class!)
5926 backtracked on the whole class!)
5924
5927
5925 FIXME: didn't work. It can be done, but right now namespaces are
5928 FIXME: didn't work. It can be done, but right now namespaces are
5926 all messed up. Do it later (reverted it for now, so at least
5929 all messed up. Do it later (reverted it for now, so at least
5927 everything works as before).
5930 everything works as before).
5928
5931
5929 * Got the object introspection system (magic_oinfo) working! I
5932 * Got the object introspection system (magic_oinfo) working! I
5930 think this is pretty much ready for release to Janko, so he can
5933 think this is pretty much ready for release to Janko, so he can
5931 test it for a while and then announce it. Pretty much 100% of what
5934 test it for a while and then announce it. Pretty much 100% of what
5932 I wanted for the 'phase 1' release is ready. Happy, tired.
5935 I wanted for the 'phase 1' release is ready. Happy, tired.
5933
5936
5934 2001-11-12 Fernando Perez <fperez@colorado.edu>
5937 2001-11-12 Fernando Perez <fperez@colorado.edu>
5935
5938
5936 * Version 0.1.6 released, 0.1.7 opened for further work.
5939 * Version 0.1.6 released, 0.1.7 opened for further work.
5937
5940
5938 * Fixed bug in printing: it used to test for truth before
5941 * Fixed bug in printing: it used to test for truth before
5939 printing, so 0 wouldn't print. Now checks for None.
5942 printing, so 0 wouldn't print. Now checks for None.
5940
5943
5941 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5944 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5942 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5945 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5943 reaches by hand into the outputcache. Think of a better way to do
5946 reaches by hand into the outputcache. Think of a better way to do
5944 this later.
5947 this later.
5945
5948
5946 * Various small fixes thanks to Nathan's comments.
5949 * Various small fixes thanks to Nathan's comments.
5947
5950
5948 * Changed magic_pprint to magic_Pprint. This way it doesn't
5951 * Changed magic_pprint to magic_Pprint. This way it doesn't
5949 collide with pprint() and the name is consistent with the command
5952 collide with pprint() and the name is consistent with the command
5950 line option.
5953 line option.
5951
5954
5952 * Changed prompt counter behavior to be fully like
5955 * Changed prompt counter behavior to be fully like
5953 Mathematica's. That is, even input that doesn't return a result
5956 Mathematica's. That is, even input that doesn't return a result
5954 raises the prompt counter. The old behavior was kind of confusing
5957 raises the prompt counter. The old behavior was kind of confusing
5955 (getting the same prompt number several times if the operation
5958 (getting the same prompt number several times if the operation
5956 didn't return a result).
5959 didn't return a result).
5957
5960
5958 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5961 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5959
5962
5960 * Fixed -Classic mode (wasn't working anymore).
5963 * Fixed -Classic mode (wasn't working anymore).
5961
5964
5962 * Added colored prompts using Nathan's new code. Colors are
5965 * Added colored prompts using Nathan's new code. Colors are
5963 currently hardwired, they can be user-configurable. For
5966 currently hardwired, they can be user-configurable. For
5964 developers, they can be chosen in file ipythonlib.py, at the
5967 developers, they can be chosen in file ipythonlib.py, at the
5965 beginning of the CachedOutput class def.
5968 beginning of the CachedOutput class def.
5966
5969
5967 2001-11-11 Fernando Perez <fperez@colorado.edu>
5970 2001-11-11 Fernando Perez <fperez@colorado.edu>
5968
5971
5969 * Version 0.1.5 released, 0.1.6 opened for further work.
5972 * Version 0.1.5 released, 0.1.6 opened for further work.
5970
5973
5971 * Changed magic_env to *return* the environment as a dict (not to
5974 * Changed magic_env to *return* the environment as a dict (not to
5972 print it). This way it prints, but it can also be processed.
5975 print it). This way it prints, but it can also be processed.
5973
5976
5974 * Added Verbose exception reporting to interactive
5977 * Added Verbose exception reporting to interactive
5975 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5978 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5976 traceback. Had to make some changes to the ultraTB file. This is
5979 traceback. Had to make some changes to the ultraTB file. This is
5977 probably the last 'big' thing in my mental todo list. This ties
5980 probably the last 'big' thing in my mental todo list. This ties
5978 in with the next entry:
5981 in with the next entry:
5979
5982
5980 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5983 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5981 has to specify is Plain, Color or Verbose for all exception
5984 has to specify is Plain, Color or Verbose for all exception
5982 handling.
5985 handling.
5983
5986
5984 * Removed ShellServices option. All this can really be done via
5987 * Removed ShellServices option. All this can really be done via
5985 the magic system. It's easier to extend, cleaner and has automatic
5988 the magic system. It's easier to extend, cleaner and has automatic
5986 namespace protection and documentation.
5989 namespace protection and documentation.
5987
5990
5988 2001-11-09 Fernando Perez <fperez@colorado.edu>
5991 2001-11-09 Fernando Perez <fperez@colorado.edu>
5989
5992
5990 * Fixed bug in output cache flushing (missing parameter to
5993 * Fixed bug in output cache flushing (missing parameter to
5991 __init__). Other small bugs fixed (found using pychecker).
5994 __init__). Other small bugs fixed (found using pychecker).
5992
5995
5993 * Version 0.1.4 opened for bugfixing.
5996 * Version 0.1.4 opened for bugfixing.
5994
5997
5995 2001-11-07 Fernando Perez <fperez@colorado.edu>
5998 2001-11-07 Fernando Perez <fperez@colorado.edu>
5996
5999
5997 * Version 0.1.3 released, mainly because of the raw_input bug.
6000 * Version 0.1.3 released, mainly because of the raw_input bug.
5998
6001
5999 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6002 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6000 and when testing for whether things were callable, a call could
6003 and when testing for whether things were callable, a call could
6001 actually be made to certain functions. They would get called again
6004 actually be made to certain functions. They would get called again
6002 once 'really' executed, with a resulting double call. A disaster
6005 once 'really' executed, with a resulting double call. A disaster
6003 in many cases (list.reverse() would never work!).
6006 in many cases (list.reverse() would never work!).
6004
6007
6005 * Removed prefilter() function, moved its code to raw_input (which
6008 * Removed prefilter() function, moved its code to raw_input (which
6006 after all was just a near-empty caller for prefilter). This saves
6009 after all was just a near-empty caller for prefilter). This saves
6007 a function call on every prompt, and simplifies the class a tiny bit.
6010 a function call on every prompt, and simplifies the class a tiny bit.
6008
6011
6009 * Fix _ip to __ip name in magic example file.
6012 * Fix _ip to __ip name in magic example file.
6010
6013
6011 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6014 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6012 work with non-gnu versions of tar.
6015 work with non-gnu versions of tar.
6013
6016
6014 2001-11-06 Fernando Perez <fperez@colorado.edu>
6017 2001-11-06 Fernando Perez <fperez@colorado.edu>
6015
6018
6016 * Version 0.1.2. Just to keep track of the recent changes.
6019 * Version 0.1.2. Just to keep track of the recent changes.
6017
6020
6018 * Fixed nasty bug in output prompt routine. It used to check 'if
6021 * Fixed nasty bug in output prompt routine. It used to check 'if
6019 arg != None...'. Problem is, this fails if arg implements a
6022 arg != None...'. Problem is, this fails if arg implements a
6020 special comparison (__cmp__) which disallows comparing to
6023 special comparison (__cmp__) which disallows comparing to
6021 None. Found it when trying to use the PhysicalQuantity module from
6024 None. Found it when trying to use the PhysicalQuantity module from
6022 ScientificPython.
6025 ScientificPython.
6023
6026
6024 2001-11-05 Fernando Perez <fperez@colorado.edu>
6027 2001-11-05 Fernando Perez <fperez@colorado.edu>
6025
6028
6026 * Also added dirs. Now the pushd/popd/dirs family functions
6029 * Also added dirs. Now the pushd/popd/dirs family functions
6027 basically like the shell, with the added convenience of going home
6030 basically like the shell, with the added convenience of going home
6028 when called with no args.
6031 when called with no args.
6029
6032
6030 * pushd/popd slightly modified to mimic shell behavior more
6033 * pushd/popd slightly modified to mimic shell behavior more
6031 closely.
6034 closely.
6032
6035
6033 * Added env,pushd,popd from ShellServices as magic functions. I
6036 * Added env,pushd,popd from ShellServices as magic functions. I
6034 think the cleanest will be to port all desired functions from
6037 think the cleanest will be to port all desired functions from
6035 ShellServices as magics and remove ShellServices altogether. This
6038 ShellServices as magics and remove ShellServices altogether. This
6036 will provide a single, clean way of adding functionality
6039 will provide a single, clean way of adding functionality
6037 (shell-type or otherwise) to IP.
6040 (shell-type or otherwise) to IP.
6038
6041
6039 2001-11-04 Fernando Perez <fperez@colorado.edu>
6042 2001-11-04 Fernando Perez <fperez@colorado.edu>
6040
6043
6041 * Added .ipython/ directory to sys.path. This way users can keep
6044 * Added .ipython/ directory to sys.path. This way users can keep
6042 customizations there and access them via import.
6045 customizations there and access them via import.
6043
6046
6044 2001-11-03 Fernando Perez <fperez@colorado.edu>
6047 2001-11-03 Fernando Perez <fperez@colorado.edu>
6045
6048
6046 * Opened version 0.1.1 for new changes.
6049 * Opened version 0.1.1 for new changes.
6047
6050
6048 * Changed version number to 0.1.0: first 'public' release, sent to
6051 * Changed version number to 0.1.0: first 'public' release, sent to
6049 Nathan and Janko.
6052 Nathan and Janko.
6050
6053
6051 * Lots of small fixes and tweaks.
6054 * Lots of small fixes and tweaks.
6052
6055
6053 * Minor changes to whos format. Now strings are shown, snipped if
6056 * Minor changes to whos format. Now strings are shown, snipped if
6054 too long.
6057 too long.
6055
6058
6056 * Changed ShellServices to work on __main__ so they show up in @who
6059 * Changed ShellServices to work on __main__ so they show up in @who
6057
6060
6058 * Help also works with ? at the end of a line:
6061 * Help also works with ? at the end of a line:
6059 ?sin and sin?
6062 ?sin and sin?
6060 both produce the same effect. This is nice, as often I use the
6063 both produce the same effect. This is nice, as often I use the
6061 tab-complete to find the name of a method, but I used to then have
6064 tab-complete to find the name of a method, but I used to then have
6062 to go to the beginning of the line to put a ? if I wanted more
6065 to go to the beginning of the line to put a ? if I wanted more
6063 info. Now I can just add the ? and hit return. Convenient.
6066 info. Now I can just add the ? and hit return. Convenient.
6064
6067
6065 2001-11-02 Fernando Perez <fperez@colorado.edu>
6068 2001-11-02 Fernando Perez <fperez@colorado.edu>
6066
6069
6067 * Python version check (>=2.1) added.
6070 * Python version check (>=2.1) added.
6068
6071
6069 * Added LazyPython documentation. At this point the docs are quite
6072 * Added LazyPython documentation. At this point the docs are quite
6070 a mess. A cleanup is in order.
6073 a mess. A cleanup is in order.
6071
6074
6072 * Auto-installer created. For some bizarre reason, the zipfiles
6075 * Auto-installer created. For some bizarre reason, the zipfiles
6073 module isn't working on my system. So I made a tar version
6076 module isn't working on my system. So I made a tar version
6074 (hopefully the command line options in various systems won't kill
6077 (hopefully the command line options in various systems won't kill
6075 me).
6078 me).
6076
6079
6077 * Fixes to Struct in genutils. Now all dictionary-like methods are
6080 * Fixes to Struct in genutils. Now all dictionary-like methods are
6078 protected (reasonably).
6081 protected (reasonably).
6079
6082
6080 * Added pager function to genutils and changed ? to print usage
6083 * Added pager function to genutils and changed ? to print usage
6081 note through it (it was too long).
6084 note through it (it was too long).
6082
6085
6083 * Added the LazyPython functionality. Works great! I changed the
6086 * Added the LazyPython functionality. Works great! I changed the
6084 auto-quote escape to ';', it's on home row and next to '. But
6087 auto-quote escape to ';', it's on home row and next to '. But
6085 both auto-quote and auto-paren (still /) escapes are command-line
6088 both auto-quote and auto-paren (still /) escapes are command-line
6086 parameters.
6089 parameters.
6087
6090
6088
6091
6089 2001-11-01 Fernando Perez <fperez@colorado.edu>
6092 2001-11-01 Fernando Perez <fperez@colorado.edu>
6090
6093
6091 * Version changed to 0.0.7. Fairly large change: configuration now
6094 * Version changed to 0.0.7. Fairly large change: configuration now
6092 is all stored in a directory, by default .ipython. There, all
6095 is all stored in a directory, by default .ipython. There, all
6093 config files have normal looking names (not .names)
6096 config files have normal looking names (not .names)
6094
6097
6095 * Version 0.0.6 Released first to Lucas and Archie as a test
6098 * Version 0.0.6 Released first to Lucas and Archie as a test
6096 run. Since it's the first 'semi-public' release, change version to
6099 run. Since it's the first 'semi-public' release, change version to
6097 > 0.0.6 for any changes now.
6100 > 0.0.6 for any changes now.
6098
6101
6099 * Stuff I had put in the ipplib.py changelog:
6102 * Stuff I had put in the ipplib.py changelog:
6100
6103
6101 Changes to InteractiveShell:
6104 Changes to InteractiveShell:
6102
6105
6103 - Made the usage message a parameter.
6106 - Made the usage message a parameter.
6104
6107
6105 - Require the name of the shell variable to be given. It's a bit
6108 - Require the name of the shell variable to be given. It's a bit
6106 of a hack, but allows the name 'shell' not to be hardwired in the
6109 of a hack, but allows the name 'shell' not to be hardwired in the
6107 magic (@) handler, which is problematic b/c it requires
6110 magic (@) handler, which is problematic b/c it requires
6108 polluting the global namespace with 'shell'. This in turn is
6111 polluting the global namespace with 'shell'. This in turn is
6109 fragile: if a user redefines a variable called shell, things
6112 fragile: if a user redefines a variable called shell, things
6110 break.
6113 break.
6111
6114
6112 - magic @: all functions available through @ need to be defined
6115 - magic @: all functions available through @ need to be defined
6113 as magic_<name>, even though they can be called simply as
6116 as magic_<name>, even though they can be called simply as
6114 @<name>. This allows the special command @magic to gather
6117 @<name>. This allows the special command @magic to gather
6115 information automatically about all existing magic functions,
6118 information automatically about all existing magic functions,
6116 even if they are run-time user extensions, by parsing the shell
6119 even if they are run-time user extensions, by parsing the shell
6117 instance __dict__ looking for special magic_ names.
6120 instance __dict__ looking for special magic_ names.
6118
6121
6119 - mainloop: added *two* local namespace parameters. This allows
6122 - mainloop: added *two* local namespace parameters. This allows
6120 the class to differentiate between parameters which were there
6123 the class to differentiate between parameters which were there
6121 before and after command line initialization was processed. This
6124 before and after command line initialization was processed. This
6122 way, later @who can show things loaded at startup by the
6125 way, later @who can show things loaded at startup by the
6123 user. This trick was necessary to make session saving/reloading
6126 user. This trick was necessary to make session saving/reloading
6124 really work: ideally after saving/exiting/reloading a session,
6127 really work: ideally after saving/exiting/reloading a session,
6125 *everything* should look the same, including the output of @who. I
6128 *everything* should look the same, including the output of @who. I
6126 was only able to make this work with this double namespace
6129 was only able to make this work with this double namespace
6127 trick.
6130 trick.
6128
6131
6129 - added a header to the logfile which allows (almost) full
6132 - added a header to the logfile which allows (almost) full
6130 session restoring.
6133 session restoring.
6131
6134
6132 - prepend lines beginning with @ or !, with a and log
6135 - prepend lines beginning with @ or !, with a and log
6133 them. Why? !lines: may be useful to know what you did @lines:
6136 them. Why? !lines: may be useful to know what you did @lines:
6134 they may affect session state. So when restoring a session, at
6137 they may affect session state. So when restoring a session, at
6135 least inform the user of their presence. I couldn't quite get
6138 least inform the user of their presence. I couldn't quite get
6136 them to properly re-execute, but at least the user is warned.
6139 them to properly re-execute, but at least the user is warned.
6137
6140
6138 * Started ChangeLog.
6141 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now