##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,6062 +1,6072 b''
1 2006-12-08 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ipy_stock_completers.py.py: fix cd completer
4 to translate /'s to \'s again.
5
6 * completer.py: prevent traceback on file completions w/
7 backslash.
8
9 * Release.py: Update release number to 0.7.3b3 for release
10
1 2006-12-07 Ville Vainio <vivainio@gmail.com>
11 2006-12-07 Ville Vainio <vivainio@gmail.com>
2
12
3 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
13 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
4 while executing external code. Provides more shell-like behaviour
14 while executing external code. Provides more shell-like behaviour
5 and overall better response to ctrl + C / ctrl + break.
15 and overall better response to ctrl + C / ctrl + break.
6
16
7 * tools/make_tarball.py: new script to create tarball straight from svn
17 * tools/make_tarball.py: new script to create tarball straight from svn
8 (setup.py sdist doesn't work on win32).
18 (setup.py sdist doesn't work on win32).
9
19
10 * Extensions/ipy_stock_completers.py: fix cd completer to give up
20 * Extensions/ipy_stock_completers.py: fix cd completer to give up
11 on dirnames with spaces and use the default completer instead.
21 on dirnames with spaces and use the default completer instead.
12
22
13 * Revision.py: Change version to 0.7.3b2 for release.
23 * Revision.py: Change version to 0.7.3b2 for release.
14
24
15 2006-12-05 Ville Vainio <vivainio@gmail.com>
25 2006-12-05 Ville Vainio <vivainio@gmail.com>
16
26
17 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
27 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
18 pydb patch 4 (rm debug printing, py 2.5 checking)
28 pydb patch 4 (rm debug printing, py 2.5 checking)
19
29
20 2006-11-30 Walter Doerwald <walter@livinglogic.de>
30 2006-11-30 Walter Doerwald <walter@livinglogic.de>
21 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
31 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
22 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
32 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
23 "refreshfind" (mapped to "R") does the same but tries to go back to the same
33 "refreshfind" (mapped to "R") does the same but tries to go back to the same
24 object the cursor was on before the refresh. The command "markrange" is
34 object the cursor was on before the refresh. The command "markrange" is
25 mapped to "%" now.
35 mapped to "%" now.
26 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
36 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
27
37
28 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
38 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
29
39
30 * IPython/Magic.py (magic_debug): new %debug magic to activate the
40 * IPython/Magic.py (magic_debug): new %debug magic to activate the
31 interactive debugger on the last traceback, without having to call
41 interactive debugger on the last traceback, without having to call
32 %pdb and rerun your code. Made minor changes in various modules,
42 %pdb and rerun your code. Made minor changes in various modules,
33 should automatically recognize pydb if available.
43 should automatically recognize pydb if available.
34
44
35 2006-11-28 Ville Vainio <vivainio@gmail.com>
45 2006-11-28 Ville Vainio <vivainio@gmail.com>
36
46
37 * completer.py: If the text start with !, show file completions
47 * completer.py: If the text start with !, show file completions
38 properly. This helps when trying to complete command name
48 properly. This helps when trying to complete command name
39 for shell escapes.
49 for shell escapes.
40
50
41 2006-11-27 Ville Vainio <vivainio@gmail.com>
51 2006-11-27 Ville Vainio <vivainio@gmail.com>
42
52
43 * ipy_stock_completers.py: bzr completer submitted by Stefan van
53 * ipy_stock_completers.py: bzr completer submitted by Stefan van
44 der Walt. Clean up svn and hg completers by using a common
54 der Walt. Clean up svn and hg completers by using a common
45 vcs_completer.
55 vcs_completer.
46
56
47 2006-11-26 Ville Vainio <vivainio@gmail.com>
57 2006-11-26 Ville Vainio <vivainio@gmail.com>
48
58
49 * Remove ipconfig and %config; you should use _ip.options structure
59 * Remove ipconfig and %config; you should use _ip.options structure
50 directly instead!
60 directly instead!
51
61
52 * genutils.py: add wrap_deprecated function for deprecating callables
62 * genutils.py: add wrap_deprecated function for deprecating callables
53
63
54 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
64 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
55 _ip.system instead. ipalias is redundant.
65 _ip.system instead. ipalias is redundant.
56
66
57 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
67 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
58 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
68 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
59 explicit.
69 explicit.
60
70
61 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
71 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
62 completer. Try it by entering 'hg ' and pressing tab.
72 completer. Try it by entering 'hg ' and pressing tab.
63
73
64 * macro.py: Give Macro a useful __repr__ method
74 * macro.py: Give Macro a useful __repr__ method
65
75
66 * Magic.py: %whos abbreviates the typename of Macro for brevity.
76 * Magic.py: %whos abbreviates the typename of Macro for brevity.
67
77
68 2006-11-24 Walter Doerwald <walter@livinglogic.de>
78 2006-11-24 Walter Doerwald <walter@livinglogic.de>
69 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
79 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
70 we don't get a duplicate ipipe module, where registration of the xrepr
80 we don't get a duplicate ipipe module, where registration of the xrepr
71 implementation for Text is useless.
81 implementation for Text is useless.
72
82
73 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
83 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
74
84
75 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
85 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
76
86
77 2006-11-24 Ville Vainio <vivainio@gmail.com>
87 2006-11-24 Ville Vainio <vivainio@gmail.com>
78
88
79 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
89 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
80 try to use "cProfile" instead of the slower pure python
90 try to use "cProfile" instead of the slower pure python
81 "profile"
91 "profile"
82
92
83 2006-11-23 Ville Vainio <vivainio@gmail.com>
93 2006-11-23 Ville Vainio <vivainio@gmail.com>
84
94
85 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
95 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
86 Qt+IPython+Designer link in documentation.
96 Qt+IPython+Designer link in documentation.
87
97
88 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
98 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
89 correct Pdb object to %pydb.
99 correct Pdb object to %pydb.
90
100
91
101
92 2006-11-22 Walter Doerwald <walter@livinglogic.de>
102 2006-11-22 Walter Doerwald <walter@livinglogic.de>
93 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
103 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
94 generic xrepr(), otherwise the list implementation would kick in.
104 generic xrepr(), otherwise the list implementation would kick in.
95
105
96 2006-11-21 Ville Vainio <vivainio@gmail.com>
106 2006-11-21 Ville Vainio <vivainio@gmail.com>
97
107
98 * upgrade_dir.py: Now actually overwrites a nonmodified user file
108 * upgrade_dir.py: Now actually overwrites a nonmodified user file
99 with one from UserConfig.
109 with one from UserConfig.
100
110
101 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
111 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
102 it was missing which broke the sh profile.
112 it was missing which broke the sh profile.
103
113
104 * completer.py: file completer now uses explicit '/' instead
114 * completer.py: file completer now uses explicit '/' instead
105 of os.path.join, expansion of 'foo' was broken on win32
115 of os.path.join, expansion of 'foo' was broken on win32
106 if there was one directory with name 'foobar'.
116 if there was one directory with name 'foobar'.
107
117
108 * A bunch of patches from Kirill Smelkov:
118 * A bunch of patches from Kirill Smelkov:
109
119
110 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
120 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
111
121
112 * [patch 7/9] Implement %page -r (page in raw mode) -
122 * [patch 7/9] Implement %page -r (page in raw mode) -
113
123
114 * [patch 5/9] ScientificPython webpage has moved
124 * [patch 5/9] ScientificPython webpage has moved
115
125
116 * [patch 4/9] The manual mentions %ds, should be %dhist
126 * [patch 4/9] The manual mentions %ds, should be %dhist
117
127
118 * [patch 3/9] Kill old bits from %prun doc.
128 * [patch 3/9] Kill old bits from %prun doc.
119
129
120 * [patch 1/9] Fix typos here and there.
130 * [patch 1/9] Fix typos here and there.
121
131
122 2006-11-08 Ville Vainio <vivainio@gmail.com>
132 2006-11-08 Ville Vainio <vivainio@gmail.com>
123
133
124 * completer.py (attr_matches): catch all exceptions raised
134 * completer.py (attr_matches): catch all exceptions raised
125 by eval of expr with dots.
135 by eval of expr with dots.
126
136
127 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
137 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
128
138
129 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
139 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
130 input if it starts with whitespace. This allows you to paste
140 input if it starts with whitespace. This allows you to paste
131 indented input from any editor without manually having to type in
141 indented input from any editor without manually having to type in
132 the 'if 1:', which is convenient when working interactively.
142 the 'if 1:', which is convenient when working interactively.
133 Slightly modifed version of a patch by Bo Peng
143 Slightly modifed version of a patch by Bo Peng
134 <bpeng-AT-rice.edu>.
144 <bpeng-AT-rice.edu>.
135
145
136 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
146 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
137
147
138 * IPython/irunner.py (main): modified irunner so it automatically
148 * IPython/irunner.py (main): modified irunner so it automatically
139 recognizes the right runner to use based on the extension (.py for
149 recognizes the right runner to use based on the extension (.py for
140 python, .ipy for ipython and .sage for sage).
150 python, .ipy for ipython and .sage for sage).
141
151
142 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
152 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
143 visible in ipapi as ip.config(), to programatically control the
153 visible in ipapi as ip.config(), to programatically control the
144 internal rc object. There's an accompanying %config magic for
154 internal rc object. There's an accompanying %config magic for
145 interactive use, which has been enhanced to match the
155 interactive use, which has been enhanced to match the
146 funtionality in ipconfig.
156 funtionality in ipconfig.
147
157
148 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
158 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
149 so it's not just a toggle, it now takes an argument. Add support
159 so it's not just a toggle, it now takes an argument. Add support
150 for a customizable header when making system calls, as the new
160 for a customizable header when making system calls, as the new
151 system_header variable in the ipythonrc file.
161 system_header variable in the ipythonrc file.
152
162
153 2006-11-03 Walter Doerwald <walter@livinglogic.de>
163 2006-11-03 Walter Doerwald <walter@livinglogic.de>
154
164
155 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
165 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
156 generic functions (using Philip J. Eby's simplegeneric package).
166 generic functions (using Philip J. Eby's simplegeneric package).
157 This makes it possible to customize the display of third-party classes
167 This makes it possible to customize the display of third-party classes
158 without having to monkeypatch them. xiter() no longer supports a mode
168 without having to monkeypatch them. xiter() no longer supports a mode
159 argument and the XMode class has been removed. The same functionality can
169 argument and the XMode class has been removed. The same functionality can
160 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
170 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
161 One consequence of the switch to generic functions is that xrepr() and
171 One consequence of the switch to generic functions is that xrepr() and
162 xattrs() implementation must define the default value for the mode
172 xattrs() implementation must define the default value for the mode
163 argument themselves and xattrs() implementations must return real
173 argument themselves and xattrs() implementations must return real
164 descriptors.
174 descriptors.
165
175
166 * IPython/external: This new subpackage will contain all third-party
176 * IPython/external: This new subpackage will contain all third-party
167 packages that are bundled with IPython. (The first one is simplegeneric).
177 packages that are bundled with IPython. (The first one is simplegeneric).
168
178
169 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
179 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
170 directory which as been dropped in r1703.
180 directory which as been dropped in r1703.
171
181
172 * IPython/Extensions/ipipe.py (iless): Fixed.
182 * IPython/Extensions/ipipe.py (iless): Fixed.
173
183
174 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
184 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
175
185
176 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
186 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
177
187
178 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
188 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
179 handling in variable expansion so that shells and magics recognize
189 handling in variable expansion so that shells and magics recognize
180 function local scopes correctly. Bug reported by Brian.
190 function local scopes correctly. Bug reported by Brian.
181
191
182 * scripts/ipython: remove the very first entry in sys.path which
192 * scripts/ipython: remove the very first entry in sys.path which
183 Python auto-inserts for scripts, so that sys.path under IPython is
193 Python auto-inserts for scripts, so that sys.path under IPython is
184 as similar as possible to that under plain Python.
194 as similar as possible to that under plain Python.
185
195
186 * IPython/completer.py (IPCompleter.file_matches): Fix
196 * IPython/completer.py (IPCompleter.file_matches): Fix
187 tab-completion so that quotes are not closed unless the completion
197 tab-completion so that quotes are not closed unless the completion
188 is unambiguous. After a request by Stefan. Minor cleanups in
198 is unambiguous. After a request by Stefan. Minor cleanups in
189 ipy_stock_completers.
199 ipy_stock_completers.
190
200
191 2006-11-02 Ville Vainio <vivainio@gmail.com>
201 2006-11-02 Ville Vainio <vivainio@gmail.com>
192
202
193 * ipy_stock_completers.py: Add %run and %cd completers.
203 * ipy_stock_completers.py: Add %run and %cd completers.
194
204
195 * completer.py: Try running custom completer for both
205 * completer.py: Try running custom completer for both
196 "foo" and "%foo" if the command is just "foo". Ignore case
206 "foo" and "%foo" if the command is just "foo". Ignore case
197 when filtering possible completions.
207 when filtering possible completions.
198
208
199 * UserConfig/ipy_user_conf.py: install stock completers as default
209 * UserConfig/ipy_user_conf.py: install stock completers as default
200
210
201 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
211 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
202 simplified readline history save / restore through a wrapper
212 simplified readline history save / restore through a wrapper
203 function
213 function
204
214
205
215
206 2006-10-31 Ville Vainio <vivainio@gmail.com>
216 2006-10-31 Ville Vainio <vivainio@gmail.com>
207
217
208 * strdispatch.py, completer.py, ipy_stock_completers.py:
218 * strdispatch.py, completer.py, ipy_stock_completers.py:
209 Allow str_key ("command") in completer hooks. Implement
219 Allow str_key ("command") in completer hooks. Implement
210 trivial completer for 'import' (stdlib modules only). Rename
220 trivial completer for 'import' (stdlib modules only). Rename
211 ipy_linux_package_managers.py to ipy_stock_completers.py.
221 ipy_linux_package_managers.py to ipy_stock_completers.py.
212 SVN completer.
222 SVN completer.
213
223
214 * Extensions/ledit.py: %magic line editor for easily and
224 * Extensions/ledit.py: %magic line editor for easily and
215 incrementally manipulating lists of strings. The magic command
225 incrementally manipulating lists of strings. The magic command
216 name is %led.
226 name is %led.
217
227
218 2006-10-30 Ville Vainio <vivainio@gmail.com>
228 2006-10-30 Ville Vainio <vivainio@gmail.com>
219
229
220 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
230 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
221 Bernsteins's patches for pydb integration.
231 Bernsteins's patches for pydb integration.
222 http://bashdb.sourceforge.net/pydb/
232 http://bashdb.sourceforge.net/pydb/
223
233
224 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
234 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
225 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
235 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
226 custom completer hook to allow the users to implement their own
236 custom completer hook to allow the users to implement their own
227 completers. See ipy_linux_package_managers.py for example. The
237 completers. See ipy_linux_package_managers.py for example. The
228 hook name is 'complete_command'.
238 hook name is 'complete_command'.
229
239
230 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
240 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
231
241
232 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
242 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
233 Numeric leftovers.
243 Numeric leftovers.
234
244
235 * ipython.el (py-execute-region): apply Stefan's patch to fix
245 * ipython.el (py-execute-region): apply Stefan's patch to fix
236 garbled results if the python shell hasn't been previously started.
246 garbled results if the python shell hasn't been previously started.
237
247
238 * IPython/genutils.py (arg_split): moved to genutils, since it's a
248 * IPython/genutils.py (arg_split): moved to genutils, since it's a
239 pretty generic function and useful for other things.
249 pretty generic function and useful for other things.
240
250
241 * IPython/OInspect.py (getsource): Add customizable source
251 * IPython/OInspect.py (getsource): Add customizable source
242 extractor. After a request/patch form W. Stein (SAGE).
252 extractor. After a request/patch form W. Stein (SAGE).
243
253
244 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
254 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
245 window size to a more reasonable value from what pexpect does,
255 window size to a more reasonable value from what pexpect does,
246 since their choice causes wrapping bugs with long input lines.
256 since their choice causes wrapping bugs with long input lines.
247
257
248 2006-10-28 Ville Vainio <vivainio@gmail.com>
258 2006-10-28 Ville Vainio <vivainio@gmail.com>
249
259
250 * Magic.py (%run): Save and restore the readline history from
260 * Magic.py (%run): Save and restore the readline history from
251 file around %run commands to prevent side effects from
261 file around %run commands to prevent side effects from
252 %runned programs that might use readline (e.g. pydb).
262 %runned programs that might use readline (e.g. pydb).
253
263
254 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
264 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
255 invoking the pydb enhanced debugger.
265 invoking the pydb enhanced debugger.
256
266
257 2006-10-23 Walter Doerwald <walter@livinglogic.de>
267 2006-10-23 Walter Doerwald <walter@livinglogic.de>
258
268
259 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
269 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
260 call the base class method and propagate the return value to
270 call the base class method and propagate the return value to
261 ifile. This is now done by path itself.
271 ifile. This is now done by path itself.
262
272
263 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
273 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
264
274
265 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
275 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
266 api: set_crash_handler(), to expose the ability to change the
276 api: set_crash_handler(), to expose the ability to change the
267 internal crash handler.
277 internal crash handler.
268
278
269 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
279 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
270 the various parameters of the crash handler so that apps using
280 the various parameters of the crash handler so that apps using
271 IPython as their engine can customize crash handling. Ipmlemented
281 IPython as their engine can customize crash handling. Ipmlemented
272 at the request of SAGE.
282 at the request of SAGE.
273
283
274 2006-10-14 Ville Vainio <vivainio@gmail.com>
284 2006-10-14 Ville Vainio <vivainio@gmail.com>
275
285
276 * Magic.py, ipython.el: applied first "safe" part of Rocky
286 * Magic.py, ipython.el: applied first "safe" part of Rocky
277 Bernstein's patch set for pydb integration.
287 Bernstein's patch set for pydb integration.
278
288
279 * Magic.py (%unalias, %alias): %store'd aliases can now be
289 * Magic.py (%unalias, %alias): %store'd aliases can now be
280 removed with '%unalias'. %alias w/o args now shows most
290 removed with '%unalias'. %alias w/o args now shows most
281 interesting (stored / manually defined) aliases last
291 interesting (stored / manually defined) aliases last
282 where they catch the eye w/o scrolling.
292 where they catch the eye w/o scrolling.
283
293
284 * Magic.py (%rehashx), ext_rehashdir.py: files with
294 * Magic.py (%rehashx), ext_rehashdir.py: files with
285 'py' extension are always considered executable, even
295 'py' extension are always considered executable, even
286 when not in PATHEXT environment variable.
296 when not in PATHEXT environment variable.
287
297
288 2006-10-12 Ville Vainio <vivainio@gmail.com>
298 2006-10-12 Ville Vainio <vivainio@gmail.com>
289
299
290 * jobctrl.py: Add new "jobctrl" extension for spawning background
300 * jobctrl.py: Add new "jobctrl" extension for spawning background
291 processes with "&find /". 'import jobctrl' to try it out. Requires
301 processes with "&find /". 'import jobctrl' to try it out. Requires
292 'subprocess' module, standard in python 2.4+.
302 'subprocess' module, standard in python 2.4+.
293
303
294 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
304 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
295 so if foo -> bar and bar -> baz, then foo -> baz.
305 so if foo -> bar and bar -> baz, then foo -> baz.
296
306
297 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
307 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
298
308
299 * IPython/Magic.py (Magic.parse_options): add a new posix option
309 * IPython/Magic.py (Magic.parse_options): add a new posix option
300 to allow parsing of input args in magics that doesn't strip quotes
310 to allow parsing of input args in magics that doesn't strip quotes
301 (if posix=False). This also closes %timeit bug reported by
311 (if posix=False). This also closes %timeit bug reported by
302 Stefan.
312 Stefan.
303
313
304 2006-10-03 Ville Vainio <vivainio@gmail.com>
314 2006-10-03 Ville Vainio <vivainio@gmail.com>
305
315
306 * iplib.py (raw_input, interact): Return ValueError catching for
316 * iplib.py (raw_input, interact): Return ValueError catching for
307 raw_input. Fixes infinite loop for sys.stdin.close() or
317 raw_input. Fixes infinite loop for sys.stdin.close() or
308 sys.stdout.close().
318 sys.stdout.close().
309
319
310 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
320 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
311
321
312 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
322 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
313 to help in handling doctests. irunner is now pretty useful for
323 to help in handling doctests. irunner is now pretty useful for
314 running standalone scripts and simulate a full interactive session
324 running standalone scripts and simulate a full interactive session
315 in a format that can be then pasted as a doctest.
325 in a format that can be then pasted as a doctest.
316
326
317 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
327 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
318 on top of the default (useless) ones. This also fixes the nasty
328 on top of the default (useless) ones. This also fixes the nasty
319 way in which 2.5's Quitter() exits (reverted [1785]).
329 way in which 2.5's Quitter() exits (reverted [1785]).
320
330
321 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
331 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
322 2.5.
332 2.5.
323
333
324 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
334 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
325 color scheme is updated as well when color scheme is changed
335 color scheme is updated as well when color scheme is changed
326 interactively.
336 interactively.
327
337
328 2006-09-27 Ville Vainio <vivainio@gmail.com>
338 2006-09-27 Ville Vainio <vivainio@gmail.com>
329
339
330 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
340 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
331 infinite loop and just exit. It's a hack, but will do for a while.
341 infinite loop and just exit. It's a hack, but will do for a while.
332
342
333 2006-08-25 Walter Doerwald <walter@livinglogic.de>
343 2006-08-25 Walter Doerwald <walter@livinglogic.de>
334
344
335 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
345 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
336 the constructor, this makes it possible to get a list of only directories
346 the constructor, this makes it possible to get a list of only directories
337 or only files.
347 or only files.
338
348
339 2006-08-12 Ville Vainio <vivainio@gmail.com>
349 2006-08-12 Ville Vainio <vivainio@gmail.com>
340
350
341 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
351 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
342 they broke unittest
352 they broke unittest
343
353
344 2006-08-11 Ville Vainio <vivainio@gmail.com>
354 2006-08-11 Ville Vainio <vivainio@gmail.com>
345
355
346 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
356 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
347 by resolving issue properly, i.e. by inheriting FakeModule
357 by resolving issue properly, i.e. by inheriting FakeModule
348 from types.ModuleType. Pickling ipython interactive data
358 from types.ModuleType. Pickling ipython interactive data
349 should still work as usual (testing appreciated).
359 should still work as usual (testing appreciated).
350
360
351 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
361 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
352
362
353 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
363 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
354 running under python 2.3 with code from 2.4 to fix a bug with
364 running under python 2.3 with code from 2.4 to fix a bug with
355 help(). Reported by the Debian maintainers, Norbert Tretkowski
365 help(). Reported by the Debian maintainers, Norbert Tretkowski
356 <norbert-AT-tretkowski.de> and Alexandre Fayolle
366 <norbert-AT-tretkowski.de> and Alexandre Fayolle
357 <afayolle-AT-debian.org>.
367 <afayolle-AT-debian.org>.
358
368
359 2006-08-04 Walter Doerwald <walter@livinglogic.de>
369 2006-08-04 Walter Doerwald <walter@livinglogic.de>
360
370
361 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
371 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
362 (which was displaying "quit" twice).
372 (which was displaying "quit" twice).
363
373
364 2006-07-28 Walter Doerwald <walter@livinglogic.de>
374 2006-07-28 Walter Doerwald <walter@livinglogic.de>
365
375
366 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
376 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
367 the mode argument).
377 the mode argument).
368
378
369 2006-07-27 Walter Doerwald <walter@livinglogic.de>
379 2006-07-27 Walter Doerwald <walter@livinglogic.de>
370
380
371 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
381 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
372 not running under IPython.
382 not running under IPython.
373
383
374 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
384 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
375 and make it iterable (iterating over the attribute itself). Add two new
385 and make it iterable (iterating over the attribute itself). Add two new
376 magic strings for __xattrs__(): If the string starts with "-", the attribute
386 magic strings for __xattrs__(): If the string starts with "-", the attribute
377 will not be displayed in ibrowse's detail view (but it can still be
387 will not be displayed in ibrowse's detail view (but it can still be
378 iterated over). This makes it possible to add attributes that are large
388 iterated over). This makes it possible to add attributes that are large
379 lists or generator methods to the detail view. Replace magic attribute names
389 lists or generator methods to the detail view. Replace magic attribute names
380 and _attrname() and _getattr() with "descriptors": For each type of magic
390 and _attrname() and _getattr() with "descriptors": For each type of magic
381 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
391 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
382 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
392 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
383 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
393 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
384 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
394 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
385 are still supported.
395 are still supported.
386
396
387 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
397 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
388 fails in ibrowse.fetch(), the exception object is added as the last item
398 fails in ibrowse.fetch(), the exception object is added as the last item
389 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
399 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
390 a generator throws an exception midway through execution.
400 a generator throws an exception midway through execution.
391
401
392 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
402 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
393 encoding into methods.
403 encoding into methods.
394
404
395 2006-07-26 Ville Vainio <vivainio@gmail.com>
405 2006-07-26 Ville Vainio <vivainio@gmail.com>
396
406
397 * iplib.py: history now stores multiline input as single
407 * iplib.py: history now stores multiline input as single
398 history entries. Patch by Jorgen Cederlof.
408 history entries. Patch by Jorgen Cederlof.
399
409
400 2006-07-18 Walter Doerwald <walter@livinglogic.de>
410 2006-07-18 Walter Doerwald <walter@livinglogic.de>
401
411
402 * IPython/Extensions/ibrowse.py: Make cursor visible over
412 * IPython/Extensions/ibrowse.py: Make cursor visible over
403 non existing attributes.
413 non existing attributes.
404
414
405 2006-07-14 Walter Doerwald <walter@livinglogic.de>
415 2006-07-14 Walter Doerwald <walter@livinglogic.de>
406
416
407 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
417 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
408 error output of the running command doesn't mess up the screen.
418 error output of the running command doesn't mess up the screen.
409
419
410 2006-07-13 Walter Doerwald <walter@livinglogic.de>
420 2006-07-13 Walter Doerwald <walter@livinglogic.de>
411
421
412 * IPython/Extensions/ipipe.py (isort): Make isort usable without
422 * IPython/Extensions/ipipe.py (isort): Make isort usable without
413 argument. This sorts the items themselves.
423 argument. This sorts the items themselves.
414
424
415 2006-07-12 Walter Doerwald <walter@livinglogic.de>
425 2006-07-12 Walter Doerwald <walter@livinglogic.de>
416
426
417 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
427 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
418 Compile expression strings into code objects. This should speed
428 Compile expression strings into code objects. This should speed
419 up ifilter and friends somewhat.
429 up ifilter and friends somewhat.
420
430
421 2006-07-08 Ville Vainio <vivainio@gmail.com>
431 2006-07-08 Ville Vainio <vivainio@gmail.com>
422
432
423 * Magic.py: %cpaste now strips > from the beginning of lines
433 * Magic.py: %cpaste now strips > from the beginning of lines
424 to ease pasting quoted code from emails. Contributed by
434 to ease pasting quoted code from emails. Contributed by
425 Stefan van der Walt.
435 Stefan van der Walt.
426
436
427 2006-06-29 Ville Vainio <vivainio@gmail.com>
437 2006-06-29 Ville Vainio <vivainio@gmail.com>
428
438
429 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
439 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
430 mode, patch contributed by Darren Dale. NEEDS TESTING!
440 mode, patch contributed by Darren Dale. NEEDS TESTING!
431
441
432 2006-06-28 Walter Doerwald <walter@livinglogic.de>
442 2006-06-28 Walter Doerwald <walter@livinglogic.de>
433
443
434 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
444 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
435 a blue background. Fix fetching new display rows when the browser
445 a blue background. Fix fetching new display rows when the browser
436 scrolls more than a screenful (e.g. by using the goto command).
446 scrolls more than a screenful (e.g. by using the goto command).
437
447
438 2006-06-27 Ville Vainio <vivainio@gmail.com>
448 2006-06-27 Ville Vainio <vivainio@gmail.com>
439
449
440 * Magic.py (_inspect, _ofind) Apply David Huard's
450 * Magic.py (_inspect, _ofind) Apply David Huard's
441 patch for displaying the correct docstring for 'property'
451 patch for displaying the correct docstring for 'property'
442 attributes.
452 attributes.
443
453
444 2006-06-23 Walter Doerwald <walter@livinglogic.de>
454 2006-06-23 Walter Doerwald <walter@livinglogic.de>
445
455
446 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
456 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
447 commands into the methods implementing them.
457 commands into the methods implementing them.
448
458
449 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
459 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
450
460
451 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
461 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
452 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
462 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
453 autoindent support was authored by Jin Liu.
463 autoindent support was authored by Jin Liu.
454
464
455 2006-06-22 Walter Doerwald <walter@livinglogic.de>
465 2006-06-22 Walter Doerwald <walter@livinglogic.de>
456
466
457 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
467 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
458 for keymaps with a custom class that simplifies handling.
468 for keymaps with a custom class that simplifies handling.
459
469
460 2006-06-19 Walter Doerwald <walter@livinglogic.de>
470 2006-06-19 Walter Doerwald <walter@livinglogic.de>
461
471
462 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
472 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
463 resizing. This requires Python 2.5 to work.
473 resizing. This requires Python 2.5 to work.
464
474
465 2006-06-16 Walter Doerwald <walter@livinglogic.de>
475 2006-06-16 Walter Doerwald <walter@livinglogic.de>
466
476
467 * IPython/Extensions/ibrowse.py: Add two new commands to
477 * IPython/Extensions/ibrowse.py: Add two new commands to
468 ibrowse: "hideattr" (mapped to "h") hides the attribute under
478 ibrowse: "hideattr" (mapped to "h") hides the attribute under
469 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
479 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
470 attributes again. Remapped the help command to "?". Display
480 attributes again. Remapped the help command to "?". Display
471 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
481 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
472 as keys for the "home" and "end" commands. Add three new commands
482 as keys for the "home" and "end" commands. Add three new commands
473 to the input mode for "find" and friends: "delend" (CTRL-K)
483 to the input mode for "find" and friends: "delend" (CTRL-K)
474 deletes to the end of line. "incsearchup" searches upwards in the
484 deletes to the end of line. "incsearchup" searches upwards in the
475 command history for an input that starts with the text before the cursor.
485 command history for an input that starts with the text before the cursor.
476 "incsearchdown" does the same downwards. Removed a bogus mapping of
486 "incsearchdown" does the same downwards. Removed a bogus mapping of
477 the x key to "delete".
487 the x key to "delete".
478
488
479 2006-06-15 Ville Vainio <vivainio@gmail.com>
489 2006-06-15 Ville Vainio <vivainio@gmail.com>
480
490
481 * iplib.py, hooks.py: Added new generate_prompt hook that can be
491 * iplib.py, hooks.py: Added new generate_prompt hook that can be
482 used to create prompts dynamically, instead of the "old" way of
492 used to create prompts dynamically, instead of the "old" way of
483 assigning "magic" strings to prompt_in1 and prompt_in2. The old
493 assigning "magic" strings to prompt_in1 and prompt_in2. The old
484 way still works (it's invoked by the default hook), of course.
494 way still works (it's invoked by the default hook), of course.
485
495
486 * Prompts.py: added generate_output_prompt hook for altering output
496 * Prompts.py: added generate_output_prompt hook for altering output
487 prompt
497 prompt
488
498
489 * Release.py: Changed version string to 0.7.3.svn.
499 * Release.py: Changed version string to 0.7.3.svn.
490
500
491 2006-06-15 Walter Doerwald <walter@livinglogic.de>
501 2006-06-15 Walter Doerwald <walter@livinglogic.de>
492
502
493 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
503 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
494 the call to fetch() always tries to fetch enough data for at least one
504 the call to fetch() always tries to fetch enough data for at least one
495 full screen. This makes it possible to simply call moveto(0,0,True) in
505 full screen. This makes it possible to simply call moveto(0,0,True) in
496 the constructor. Fix typos and removed the obsolete goto attribute.
506 the constructor. Fix typos and removed the obsolete goto attribute.
497
507
498 2006-06-12 Ville Vainio <vivainio@gmail.com>
508 2006-06-12 Ville Vainio <vivainio@gmail.com>
499
509
500 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
510 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
501 allowing $variable interpolation within multiline statements,
511 allowing $variable interpolation within multiline statements,
502 though so far only with "sh" profile for a testing period.
512 though so far only with "sh" profile for a testing period.
503 The patch also enables splitting long commands with \ but it
513 The patch also enables splitting long commands with \ but it
504 doesn't work properly yet.
514 doesn't work properly yet.
505
515
506 2006-06-12 Walter Doerwald <walter@livinglogic.de>
516 2006-06-12 Walter Doerwald <walter@livinglogic.de>
507
517
508 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
518 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
509 input history and the position of the cursor in the input history for
519 input history and the position of the cursor in the input history for
510 the find, findbackwards and goto command.
520 the find, findbackwards and goto command.
511
521
512 2006-06-10 Walter Doerwald <walter@livinglogic.de>
522 2006-06-10 Walter Doerwald <walter@livinglogic.de>
513
523
514 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
524 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
515 implements the basic functionality of browser commands that require
525 implements the basic functionality of browser commands that require
516 input. Reimplement the goto, find and findbackwards commands as
526 input. Reimplement the goto, find and findbackwards commands as
517 subclasses of _CommandInput. Add an input history and keymaps to those
527 subclasses of _CommandInput. Add an input history and keymaps to those
518 commands. Add "\r" as a keyboard shortcut for the enterdefault and
528 commands. Add "\r" as a keyboard shortcut for the enterdefault and
519 execute commands.
529 execute commands.
520
530
521 2006-06-07 Ville Vainio <vivainio@gmail.com>
531 2006-06-07 Ville Vainio <vivainio@gmail.com>
522
532
523 * iplib.py: ipython mybatch.ipy exits ipython immediately after
533 * iplib.py: ipython mybatch.ipy exits ipython immediately after
524 running the batch files instead of leaving the session open.
534 running the batch files instead of leaving the session open.
525
535
526 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
536 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
527
537
528 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
538 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
529 the original fix was incomplete. Patch submitted by W. Maier.
539 the original fix was incomplete. Patch submitted by W. Maier.
530
540
531 2006-06-07 Ville Vainio <vivainio@gmail.com>
541 2006-06-07 Ville Vainio <vivainio@gmail.com>
532
542
533 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
543 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
534 Confirmation prompts can be supressed by 'quiet' option.
544 Confirmation prompts can be supressed by 'quiet' option.
535 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
545 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
536
546
537 2006-06-06 *** Released version 0.7.2
547 2006-06-06 *** Released version 0.7.2
538
548
539 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
549 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
540
550
541 * IPython/Release.py (version): Made 0.7.2 final for release.
551 * IPython/Release.py (version): Made 0.7.2 final for release.
542 Repo tagged and release cut.
552 Repo tagged and release cut.
543
553
544 2006-06-05 Ville Vainio <vivainio@gmail.com>
554 2006-06-05 Ville Vainio <vivainio@gmail.com>
545
555
546 * Magic.py (magic_rehashx): Honor no_alias list earlier in
556 * Magic.py (magic_rehashx): Honor no_alias list earlier in
547 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
557 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
548
558
549 * upgrade_dir.py: try import 'path' module a bit harder
559 * upgrade_dir.py: try import 'path' module a bit harder
550 (for %upgrade)
560 (for %upgrade)
551
561
552 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
562 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
553
563
554 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
564 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
555 instead of looping 20 times.
565 instead of looping 20 times.
556
566
557 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
567 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
558 correctly at initialization time. Bug reported by Krishna Mohan
568 correctly at initialization time. Bug reported by Krishna Mohan
559 Gundu <gkmohan-AT-gmail.com> on the user list.
569 Gundu <gkmohan-AT-gmail.com> on the user list.
560
570
561 * IPython/Release.py (version): Mark 0.7.2 version to start
571 * IPython/Release.py (version): Mark 0.7.2 version to start
562 testing for release on 06/06.
572 testing for release on 06/06.
563
573
564 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
574 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
565
575
566 * scripts/irunner: thin script interface so users don't have to
576 * scripts/irunner: thin script interface so users don't have to
567 find the module and call it as an executable, since modules rarely
577 find the module and call it as an executable, since modules rarely
568 live in people's PATH.
578 live in people's PATH.
569
579
570 * IPython/irunner.py (InteractiveRunner.__init__): added
580 * IPython/irunner.py (InteractiveRunner.__init__): added
571 delaybeforesend attribute to control delays with newer versions of
581 delaybeforesend attribute to control delays with newer versions of
572 pexpect. Thanks to detailed help from pexpect's author, Noah
582 pexpect. Thanks to detailed help from pexpect's author, Noah
573 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
583 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
574 correctly (it works in NoColor mode).
584 correctly (it works in NoColor mode).
575
585
576 * IPython/iplib.py (handle_normal): fix nasty crash reported on
586 * IPython/iplib.py (handle_normal): fix nasty crash reported on
577 SAGE list, from improper log() calls.
587 SAGE list, from improper log() calls.
578
588
579 2006-05-31 Ville Vainio <vivainio@gmail.com>
589 2006-05-31 Ville Vainio <vivainio@gmail.com>
580
590
581 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
591 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
582 with args in parens to work correctly with dirs that have spaces.
592 with args in parens to work correctly with dirs that have spaces.
583
593
584 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
594 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
585
595
586 * IPython/Logger.py (Logger.logstart): add option to log raw input
596 * IPython/Logger.py (Logger.logstart): add option to log raw input
587 instead of the processed one. A -r flag was added to the
597 instead of the processed one. A -r flag was added to the
588 %logstart magic used for controlling logging.
598 %logstart magic used for controlling logging.
589
599
590 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
600 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
591
601
592 * IPython/iplib.py (InteractiveShell.__init__): add check for the
602 * IPython/iplib.py (InteractiveShell.__init__): add check for the
593 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
603 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
594 recognize the option. After a bug report by Will Maier. This
604 recognize the option. After a bug report by Will Maier. This
595 closes #64 (will do it after confirmation from W. Maier).
605 closes #64 (will do it after confirmation from W. Maier).
596
606
597 * IPython/irunner.py: New module to run scripts as if manually
607 * IPython/irunner.py: New module to run scripts as if manually
598 typed into an interactive environment, based on pexpect. After a
608 typed into an interactive environment, based on pexpect. After a
599 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
609 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
600 ipython-user list. Simple unittests in the tests/ directory.
610 ipython-user list. Simple unittests in the tests/ directory.
601
611
602 * tools/release: add Will Maier, OpenBSD port maintainer, to
612 * tools/release: add Will Maier, OpenBSD port maintainer, to
603 recepients list. We are now officially part of the OpenBSD ports:
613 recepients list. We are now officially part of the OpenBSD ports:
604 http://www.openbsd.org/ports.html ! Many thanks to Will for the
614 http://www.openbsd.org/ports.html ! Many thanks to Will for the
605 work.
615 work.
606
616
607 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
617 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
608
618
609 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
619 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
610 so that it doesn't break tkinter apps.
620 so that it doesn't break tkinter apps.
611
621
612 * IPython/iplib.py (_prefilter): fix bug where aliases would
622 * IPython/iplib.py (_prefilter): fix bug where aliases would
613 shadow variables when autocall was fully off. Reported by SAGE
623 shadow variables when autocall was fully off. Reported by SAGE
614 author William Stein.
624 author William Stein.
615
625
616 * IPython/OInspect.py (Inspector.__init__): add a flag to control
626 * IPython/OInspect.py (Inspector.__init__): add a flag to control
617 at what detail level strings are computed when foo? is requested.
627 at what detail level strings are computed when foo? is requested.
618 This allows users to ask for example that the string form of an
628 This allows users to ask for example that the string form of an
619 object is only computed when foo?? is called, or even never, by
629 object is only computed when foo?? is called, or even never, by
620 setting the object_info_string_level >= 2 in the configuration
630 setting the object_info_string_level >= 2 in the configuration
621 file. This new option has been added and documented. After a
631 file. This new option has been added and documented. After a
622 request by SAGE to be able to control the printing of very large
632 request by SAGE to be able to control the printing of very large
623 objects more easily.
633 objects more easily.
624
634
625 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
635 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
626
636
627 * IPython/ipmaker.py (make_IPython): remove the ipython call path
637 * IPython/ipmaker.py (make_IPython): remove the ipython call path
628 from sys.argv, to be 100% consistent with how Python itself works
638 from sys.argv, to be 100% consistent with how Python itself works
629 (as seen for example with python -i file.py). After a bug report
639 (as seen for example with python -i file.py). After a bug report
630 by Jeffrey Collins.
640 by Jeffrey Collins.
631
641
632 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
642 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
633 nasty bug which was preventing custom namespaces with -pylab,
643 nasty bug which was preventing custom namespaces with -pylab,
634 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
644 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
635 compatibility (long gone from mpl).
645 compatibility (long gone from mpl).
636
646
637 * IPython/ipapi.py (make_session): name change: create->make. We
647 * IPython/ipapi.py (make_session): name change: create->make. We
638 use make in other places (ipmaker,...), it's shorter and easier to
648 use make in other places (ipmaker,...), it's shorter and easier to
639 type and say, etc. I'm trying to clean things before 0.7.2 so
649 type and say, etc. I'm trying to clean things before 0.7.2 so
640 that I can keep things stable wrt to ipapi in the chainsaw branch.
650 that I can keep things stable wrt to ipapi in the chainsaw branch.
641
651
642 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
652 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
643 python-mode recognizes our debugger mode. Add support for
653 python-mode recognizes our debugger mode. Add support for
644 autoindent inside (X)emacs. After a patch sent in by Jin Liu
654 autoindent inside (X)emacs. After a patch sent in by Jin Liu
645 <m.liu.jin-AT-gmail.com> originally written by
655 <m.liu.jin-AT-gmail.com> originally written by
646 doxgen-AT-newsmth.net (with minor modifications for xemacs
656 doxgen-AT-newsmth.net (with minor modifications for xemacs
647 compatibility)
657 compatibility)
648
658
649 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
659 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
650 tracebacks when walking the stack so that the stack tracking system
660 tracebacks when walking the stack so that the stack tracking system
651 in emacs' python-mode can identify the frames correctly.
661 in emacs' python-mode can identify the frames correctly.
652
662
653 * IPython/ipmaker.py (make_IPython): make the internal (and
663 * IPython/ipmaker.py (make_IPython): make the internal (and
654 default config) autoedit_syntax value false by default. Too many
664 default config) autoedit_syntax value false by default. Too many
655 users have complained to me (both on and off-list) about problems
665 users have complained to me (both on and off-list) about problems
656 with this option being on by default, so I'm making it default to
666 with this option being on by default, so I'm making it default to
657 off. It can still be enabled by anyone via the usual mechanisms.
667 off. It can still be enabled by anyone via the usual mechanisms.
658
668
659 * IPython/completer.py (Completer.attr_matches): add support for
669 * IPython/completer.py (Completer.attr_matches): add support for
660 PyCrust-style _getAttributeNames magic method. Patch contributed
670 PyCrust-style _getAttributeNames magic method. Patch contributed
661 by <mscott-AT-goldenspud.com>. Closes #50.
671 by <mscott-AT-goldenspud.com>. Closes #50.
662
672
663 * IPython/iplib.py (InteractiveShell.__init__): remove the
673 * IPython/iplib.py (InteractiveShell.__init__): remove the
664 deletion of exit/quit from __builtin__, which can break
674 deletion of exit/quit from __builtin__, which can break
665 third-party tools like the Zope debugging console. The
675 third-party tools like the Zope debugging console. The
666 %exit/%quit magics remain. In general, it's probably a good idea
676 %exit/%quit magics remain. In general, it's probably a good idea
667 not to delete anything from __builtin__, since we never know what
677 not to delete anything from __builtin__, since we never know what
668 that will break. In any case, python now (for 2.5) will support
678 that will break. In any case, python now (for 2.5) will support
669 'real' exit/quit, so this issue is moot. Closes #55.
679 'real' exit/quit, so this issue is moot. Closes #55.
670
680
671 * IPython/genutils.py (with_obj): rename the 'with' function to
681 * IPython/genutils.py (with_obj): rename the 'with' function to
672 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
682 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
673 becomes a language keyword. Closes #53.
683 becomes a language keyword. Closes #53.
674
684
675 * IPython/FakeModule.py (FakeModule.__init__): add a proper
685 * IPython/FakeModule.py (FakeModule.__init__): add a proper
676 __file__ attribute to this so it fools more things into thinking
686 __file__ attribute to this so it fools more things into thinking
677 it is a real module. Closes #59.
687 it is a real module. Closes #59.
678
688
679 * IPython/Magic.py (magic_edit): add -n option to open the editor
689 * IPython/Magic.py (magic_edit): add -n option to open the editor
680 at a specific line number. After a patch by Stefan van der Walt.
690 at a specific line number. After a patch by Stefan van der Walt.
681
691
682 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
692 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
683
693
684 * IPython/iplib.py (edit_syntax_error): fix crash when for some
694 * IPython/iplib.py (edit_syntax_error): fix crash when for some
685 reason the file could not be opened. After automatic crash
695 reason the file could not be opened. After automatic crash
686 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
696 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
687 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
697 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
688 (_should_recompile): Don't fire editor if using %bg, since there
698 (_should_recompile): Don't fire editor if using %bg, since there
689 is no file in the first place. From the same report as above.
699 is no file in the first place. From the same report as above.
690 (raw_input): protect against faulty third-party prefilters. After
700 (raw_input): protect against faulty third-party prefilters. After
691 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
701 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
692 while running under SAGE.
702 while running under SAGE.
693
703
694 2006-05-23 Ville Vainio <vivainio@gmail.com>
704 2006-05-23 Ville Vainio <vivainio@gmail.com>
695
705
696 * ipapi.py: Stripped down ip.to_user_ns() to work only as
706 * ipapi.py: Stripped down ip.to_user_ns() to work only as
697 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
707 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
698 now returns None (again), unless dummy is specifically allowed by
708 now returns None (again), unless dummy is specifically allowed by
699 ipapi.get(allow_dummy=True).
709 ipapi.get(allow_dummy=True).
700
710
701 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
711 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
702
712
703 * IPython: remove all 2.2-compatibility objects and hacks from
713 * IPython: remove all 2.2-compatibility objects and hacks from
704 everywhere, since we only support 2.3 at this point. Docs
714 everywhere, since we only support 2.3 at this point. Docs
705 updated.
715 updated.
706
716
707 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
717 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
708 Anything requiring extra validation can be turned into a Python
718 Anything requiring extra validation can be turned into a Python
709 property in the future. I used a property for the db one b/c
719 property in the future. I used a property for the db one b/c
710 there was a nasty circularity problem with the initialization
720 there was a nasty circularity problem with the initialization
711 order, which right now I don't have time to clean up.
721 order, which right now I don't have time to clean up.
712
722
713 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
723 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
714 another locking bug reported by Jorgen. I'm not 100% sure though,
724 another locking bug reported by Jorgen. I'm not 100% sure though,
715 so more testing is needed...
725 so more testing is needed...
716
726
717 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
727 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
718
728
719 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
729 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
720 local variables from any routine in user code (typically executed
730 local variables from any routine in user code (typically executed
721 with %run) directly into the interactive namespace. Very useful
731 with %run) directly into the interactive namespace. Very useful
722 when doing complex debugging.
732 when doing complex debugging.
723 (IPythonNotRunning): Changed the default None object to a dummy
733 (IPythonNotRunning): Changed the default None object to a dummy
724 whose attributes can be queried as well as called without
734 whose attributes can be queried as well as called without
725 exploding, to ease writing code which works transparently both in
735 exploding, to ease writing code which works transparently both in
726 and out of ipython and uses some of this API.
736 and out of ipython and uses some of this API.
727
737
728 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
738 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
729
739
730 * IPython/hooks.py (result_display): Fix the fact that our display
740 * IPython/hooks.py (result_display): Fix the fact that our display
731 hook was using str() instead of repr(), as the default python
741 hook was using str() instead of repr(), as the default python
732 console does. This had gone unnoticed b/c it only happened if
742 console does. This had gone unnoticed b/c it only happened if
733 %Pprint was off, but the inconsistency was there.
743 %Pprint was off, but the inconsistency was there.
734
744
735 2006-05-15 Ville Vainio <vivainio@gmail.com>
745 2006-05-15 Ville Vainio <vivainio@gmail.com>
736
746
737 * Oinspect.py: Only show docstring for nonexisting/binary files
747 * Oinspect.py: Only show docstring for nonexisting/binary files
738 when doing object??, closing ticket #62
748 when doing object??, closing ticket #62
739
749
740 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
750 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
741
751
742 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
752 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
743 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
753 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
744 was being released in a routine which hadn't checked if it had
754 was being released in a routine which hadn't checked if it had
745 been the one to acquire it.
755 been the one to acquire it.
746
756
747 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
757 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
748
758
749 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
759 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
750
760
751 2006-04-11 Ville Vainio <vivainio@gmail.com>
761 2006-04-11 Ville Vainio <vivainio@gmail.com>
752
762
753 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
763 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
754 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
764 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
755 prefilters, allowing stuff like magics and aliases in the file.
765 prefilters, allowing stuff like magics and aliases in the file.
756
766
757 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
767 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
758 added. Supported now are "%clear in" and "%clear out" (clear input and
768 added. Supported now are "%clear in" and "%clear out" (clear input and
759 output history, respectively). Also fixed CachedOutput.flush to
769 output history, respectively). Also fixed CachedOutput.flush to
760 properly flush the output cache.
770 properly flush the output cache.
761
771
762 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
772 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
763 half-success (and fail explicitly).
773 half-success (and fail explicitly).
764
774
765 2006-03-28 Ville Vainio <vivainio@gmail.com>
775 2006-03-28 Ville Vainio <vivainio@gmail.com>
766
776
767 * iplib.py: Fix quoting of aliases so that only argless ones
777 * iplib.py: Fix quoting of aliases so that only argless ones
768 are quoted
778 are quoted
769
779
770 2006-03-28 Ville Vainio <vivainio@gmail.com>
780 2006-03-28 Ville Vainio <vivainio@gmail.com>
771
781
772 * iplib.py: Quote aliases with spaces in the name.
782 * iplib.py: Quote aliases with spaces in the name.
773 "c:\program files\blah\bin" is now legal alias target.
783 "c:\program files\blah\bin" is now legal alias target.
774
784
775 * ext_rehashdir.py: Space no longer allowed as arg
785 * ext_rehashdir.py: Space no longer allowed as arg
776 separator, since space is legal in path names.
786 separator, since space is legal in path names.
777
787
778 2006-03-16 Ville Vainio <vivainio@gmail.com>
788 2006-03-16 Ville Vainio <vivainio@gmail.com>
779
789
780 * upgrade_dir.py: Take path.py from Extensions, correcting
790 * upgrade_dir.py: Take path.py from Extensions, correcting
781 %upgrade magic
791 %upgrade magic
782
792
783 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
793 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
784
794
785 * hooks.py: Only enclose editor binary in quotes if legal and
795 * hooks.py: Only enclose editor binary in quotes if legal and
786 necessary (space in the name, and is an existing file). Fixes a bug
796 necessary (space in the name, and is an existing file). Fixes a bug
787 reported by Zachary Pincus.
797 reported by Zachary Pincus.
788
798
789 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
799 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
790
800
791 * Manual: thanks to a tip on proper color handling for Emacs, by
801 * Manual: thanks to a tip on proper color handling for Emacs, by
792 Eric J Haywiser <ejh1-AT-MIT.EDU>.
802 Eric J Haywiser <ejh1-AT-MIT.EDU>.
793
803
794 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
804 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
795 by applying the provided patch. Thanks to Liu Jin
805 by applying the provided patch. Thanks to Liu Jin
796 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
806 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
797 XEmacs/Linux, I'm trusting the submitter that it actually helps
807 XEmacs/Linux, I'm trusting the submitter that it actually helps
798 under win32/GNU Emacs. Will revisit if any problems are reported.
808 under win32/GNU Emacs. Will revisit if any problems are reported.
799
809
800 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
810 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
801
811
802 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
812 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
803 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
813 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
804
814
805 2006-03-12 Ville Vainio <vivainio@gmail.com>
815 2006-03-12 Ville Vainio <vivainio@gmail.com>
806
816
807 * Magic.py (magic_timeit): Added %timeit magic, contributed by
817 * Magic.py (magic_timeit): Added %timeit magic, contributed by
808 Torsten Marek.
818 Torsten Marek.
809
819
810 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
820 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
811
821
812 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
822 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
813 line ranges works again.
823 line ranges works again.
814
824
815 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
825 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
816
826
817 * IPython/iplib.py (showtraceback): add back sys.last_traceback
827 * IPython/iplib.py (showtraceback): add back sys.last_traceback
818 and friends, after a discussion with Zach Pincus on ipython-user.
828 and friends, after a discussion with Zach Pincus on ipython-user.
819 I'm not 100% sure, but after thinking about it quite a bit, it may
829 I'm not 100% sure, but after thinking about it quite a bit, it may
820 be OK. Testing with the multithreaded shells didn't reveal any
830 be OK. Testing with the multithreaded shells didn't reveal any
821 problems, but let's keep an eye out.
831 problems, but let's keep an eye out.
822
832
823 In the process, I fixed a few things which were calling
833 In the process, I fixed a few things which were calling
824 self.InteractiveTB() directly (like safe_execfile), which is a
834 self.InteractiveTB() directly (like safe_execfile), which is a
825 mistake: ALL exception reporting should be done by calling
835 mistake: ALL exception reporting should be done by calling
826 self.showtraceback(), which handles state and tab-completion and
836 self.showtraceback(), which handles state and tab-completion and
827 more.
837 more.
828
838
829 2006-03-01 Ville Vainio <vivainio@gmail.com>
839 2006-03-01 Ville Vainio <vivainio@gmail.com>
830
840
831 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
841 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
832 To use, do "from ipipe import *".
842 To use, do "from ipipe import *".
833
843
834 2006-02-24 Ville Vainio <vivainio@gmail.com>
844 2006-02-24 Ville Vainio <vivainio@gmail.com>
835
845
836 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
846 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
837 "cleanly" and safely than the older upgrade mechanism.
847 "cleanly" and safely than the older upgrade mechanism.
838
848
839 2006-02-21 Ville Vainio <vivainio@gmail.com>
849 2006-02-21 Ville Vainio <vivainio@gmail.com>
840
850
841 * Magic.py: %save works again.
851 * Magic.py: %save works again.
842
852
843 2006-02-15 Ville Vainio <vivainio@gmail.com>
853 2006-02-15 Ville Vainio <vivainio@gmail.com>
844
854
845 * Magic.py: %Pprint works again
855 * Magic.py: %Pprint works again
846
856
847 * Extensions/ipy_sane_defaults.py: Provide everything provided
857 * Extensions/ipy_sane_defaults.py: Provide everything provided
848 in default ipythonrc, to make it possible to have a completely empty
858 in default ipythonrc, to make it possible to have a completely empty
849 ipythonrc (and thus completely rc-file free configuration)
859 ipythonrc (and thus completely rc-file free configuration)
850
860
851 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
861 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
852
862
853 * IPython/hooks.py (editor): quote the call to the editor command,
863 * IPython/hooks.py (editor): quote the call to the editor command,
854 to allow commands with spaces in them. Problem noted by watching
864 to allow commands with spaces in them. Problem noted by watching
855 Ian Oswald's video about textpad under win32 at
865 Ian Oswald's video about textpad under win32 at
856 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
866 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
857
867
858 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
868 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
859 describing magics (we haven't used @ for a loong time).
869 describing magics (we haven't used @ for a loong time).
860
870
861 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
871 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
862 contributed by marienz to close
872 contributed by marienz to close
863 http://www.scipy.net/roundup/ipython/issue53.
873 http://www.scipy.net/roundup/ipython/issue53.
864
874
865 2006-02-10 Ville Vainio <vivainio@gmail.com>
875 2006-02-10 Ville Vainio <vivainio@gmail.com>
866
876
867 * genutils.py: getoutput now works in win32 too
877 * genutils.py: getoutput now works in win32 too
868
878
869 * completer.py: alias and magic completion only invoked
879 * completer.py: alias and magic completion only invoked
870 at the first "item" in the line, to avoid "cd %store"
880 at the first "item" in the line, to avoid "cd %store"
871 nonsense.
881 nonsense.
872
882
873 2006-02-09 Ville Vainio <vivainio@gmail.com>
883 2006-02-09 Ville Vainio <vivainio@gmail.com>
874
884
875 * test/*: Added a unit testing framework (finally).
885 * test/*: Added a unit testing framework (finally).
876 '%run runtests.py' to run test_*.
886 '%run runtests.py' to run test_*.
877
887
878 * ipapi.py: Exposed runlines and set_custom_exc
888 * ipapi.py: Exposed runlines and set_custom_exc
879
889
880 2006-02-07 Ville Vainio <vivainio@gmail.com>
890 2006-02-07 Ville Vainio <vivainio@gmail.com>
881
891
882 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
892 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
883 instead use "f(1 2)" as before.
893 instead use "f(1 2)" as before.
884
894
885 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
895 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
886
896
887 * IPython/demo.py (IPythonDemo): Add new classes to the demo
897 * IPython/demo.py (IPythonDemo): Add new classes to the demo
888 facilities, for demos processed by the IPython input filter
898 facilities, for demos processed by the IPython input filter
889 (IPythonDemo), and for running a script one-line-at-a-time as a
899 (IPythonDemo), and for running a script one-line-at-a-time as a
890 demo, both for pure Python (LineDemo) and for IPython-processed
900 demo, both for pure Python (LineDemo) and for IPython-processed
891 input (IPythonLineDemo). After a request by Dave Kohel, from the
901 input (IPythonLineDemo). After a request by Dave Kohel, from the
892 SAGE team.
902 SAGE team.
893 (Demo.edit): added an edit() method to the demo objects, to edit
903 (Demo.edit): added an edit() method to the demo objects, to edit
894 the in-memory copy of the last executed block.
904 the in-memory copy of the last executed block.
895
905
896 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
906 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
897 processing to %edit, %macro and %save. These commands can now be
907 processing to %edit, %macro and %save. These commands can now be
898 invoked on the unprocessed input as it was typed by the user
908 invoked on the unprocessed input as it was typed by the user
899 (without any prefilters applied). After requests by the SAGE team
909 (without any prefilters applied). After requests by the SAGE team
900 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
910 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
901
911
902 2006-02-01 Ville Vainio <vivainio@gmail.com>
912 2006-02-01 Ville Vainio <vivainio@gmail.com>
903
913
904 * setup.py, eggsetup.py: easy_install ipython==dev works
914 * setup.py, eggsetup.py: easy_install ipython==dev works
905 correctly now (on Linux)
915 correctly now (on Linux)
906
916
907 * ipy_user_conf,ipmaker: user config changes, removed spurious
917 * ipy_user_conf,ipmaker: user config changes, removed spurious
908 warnings
918 warnings
909
919
910 * iplib: if rc.banner is string, use it as is.
920 * iplib: if rc.banner is string, use it as is.
911
921
912 * Magic: %pycat accepts a string argument and pages it's contents.
922 * Magic: %pycat accepts a string argument and pages it's contents.
913
923
914
924
915 2006-01-30 Ville Vainio <vivainio@gmail.com>
925 2006-01-30 Ville Vainio <vivainio@gmail.com>
916
926
917 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
927 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
918 Now %store and bookmarks work through PickleShare, meaning that
928 Now %store and bookmarks work through PickleShare, meaning that
919 concurrent access is possible and all ipython sessions see the
929 concurrent access is possible and all ipython sessions see the
920 same database situation all the time, instead of snapshot of
930 same database situation all the time, instead of snapshot of
921 the situation when the session was started. Hence, %bookmark
931 the situation when the session was started. Hence, %bookmark
922 results are immediately accessible from othes sessions. The database
932 results are immediately accessible from othes sessions. The database
923 is also available for use by user extensions. See:
933 is also available for use by user extensions. See:
924 http://www.python.org/pypi/pickleshare
934 http://www.python.org/pypi/pickleshare
925
935
926 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
936 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
927
937
928 * aliases can now be %store'd
938 * aliases can now be %store'd
929
939
930 * path.py moved to Extensions so that pickleshare does not need
940 * path.py moved to Extensions so that pickleshare does not need
931 IPython-specific import. Extensions added to pythonpath right
941 IPython-specific import. Extensions added to pythonpath right
932 at __init__.
942 at __init__.
933
943
934 * iplib.py: ipalias deprecated/redundant; aliases are converted and
944 * iplib.py: ipalias deprecated/redundant; aliases are converted and
935 called with _ip.system and the pre-transformed command string.
945 called with _ip.system and the pre-transformed command string.
936
946
937 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
947 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
938
948
939 * IPython/iplib.py (interact): Fix that we were not catching
949 * IPython/iplib.py (interact): Fix that we were not catching
940 KeyboardInterrupt exceptions properly. I'm not quite sure why the
950 KeyboardInterrupt exceptions properly. I'm not quite sure why the
941 logic here had to change, but it's fixed now.
951 logic here had to change, but it's fixed now.
942
952
943 2006-01-29 Ville Vainio <vivainio@gmail.com>
953 2006-01-29 Ville Vainio <vivainio@gmail.com>
944
954
945 * iplib.py: Try to import pyreadline on Windows.
955 * iplib.py: Try to import pyreadline on Windows.
946
956
947 2006-01-27 Ville Vainio <vivainio@gmail.com>
957 2006-01-27 Ville Vainio <vivainio@gmail.com>
948
958
949 * iplib.py: Expose ipapi as _ip in builtin namespace.
959 * iplib.py: Expose ipapi as _ip in builtin namespace.
950 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
960 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
951 and ip_set_hook (-> _ip.set_hook) redundant. % and !
961 and ip_set_hook (-> _ip.set_hook) redundant. % and !
952 syntax now produce _ip.* variant of the commands.
962 syntax now produce _ip.* variant of the commands.
953
963
954 * "_ip.options().autoedit_syntax = 2" automatically throws
964 * "_ip.options().autoedit_syntax = 2" automatically throws
955 user to editor for syntax error correction without prompting.
965 user to editor for syntax error correction without prompting.
956
966
957 2006-01-27 Ville Vainio <vivainio@gmail.com>
967 2006-01-27 Ville Vainio <vivainio@gmail.com>
958
968
959 * ipmaker.py: Give "realistic" sys.argv for scripts (without
969 * ipmaker.py: Give "realistic" sys.argv for scripts (without
960 'ipython' at argv[0]) executed through command line.
970 'ipython' at argv[0]) executed through command line.
961 NOTE: this DEPRECATES calling ipython with multiple scripts
971 NOTE: this DEPRECATES calling ipython with multiple scripts
962 ("ipython a.py b.py c.py")
972 ("ipython a.py b.py c.py")
963
973
964 * iplib.py, hooks.py: Added configurable input prefilter,
974 * iplib.py, hooks.py: Added configurable input prefilter,
965 named 'input_prefilter'. See ext_rescapture.py for example
975 named 'input_prefilter'. See ext_rescapture.py for example
966 usage.
976 usage.
967
977
968 * ext_rescapture.py, Magic.py: Better system command output capture
978 * ext_rescapture.py, Magic.py: Better system command output capture
969 through 'var = !ls' (deprecates user-visible %sc). Same notation
979 through 'var = !ls' (deprecates user-visible %sc). Same notation
970 applies for magics, 'var = %alias' assigns alias list to var.
980 applies for magics, 'var = %alias' assigns alias list to var.
971
981
972 * ipapi.py: added meta() for accessing extension-usable data store.
982 * ipapi.py: added meta() for accessing extension-usable data store.
973
983
974 * iplib.py: added InteractiveShell.getapi(). New magics should be
984 * iplib.py: added InteractiveShell.getapi(). New magics should be
975 written doing self.getapi() instead of using the shell directly.
985 written doing self.getapi() instead of using the shell directly.
976
986
977 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
987 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
978 %store foo >> ~/myfoo.txt to store variables to files (in clean
988 %store foo >> ~/myfoo.txt to store variables to files (in clean
979 textual form, not a restorable pickle).
989 textual form, not a restorable pickle).
980
990
981 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
991 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
982
992
983 * usage.py, Magic.py: added %quickref
993 * usage.py, Magic.py: added %quickref
984
994
985 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
995 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
986
996
987 * GetoptErrors when invoking magics etc. with wrong args
997 * GetoptErrors when invoking magics etc. with wrong args
988 are now more helpful:
998 are now more helpful:
989 GetoptError: option -l not recognized (allowed: "qb" )
999 GetoptError: option -l not recognized (allowed: "qb" )
990
1000
991 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
992
1002
993 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1003 * IPython/demo.py (Demo.show): Flush stdout after each block, so
994 computationally intensive blocks don't appear to stall the demo.
1004 computationally intensive blocks don't appear to stall the demo.
995
1005
996 2006-01-24 Ville Vainio <vivainio@gmail.com>
1006 2006-01-24 Ville Vainio <vivainio@gmail.com>
997
1007
998 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1008 * iplib.py, hooks.py: 'result_display' hook can return a non-None
999 value to manipulate resulting history entry.
1009 value to manipulate resulting history entry.
1000
1010
1001 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1011 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1002 to instance methods of IPApi class, to make extending an embedded
1012 to instance methods of IPApi class, to make extending an embedded
1003 IPython feasible. See ext_rehashdir.py for example usage.
1013 IPython feasible. See ext_rehashdir.py for example usage.
1004
1014
1005 * Merged 1071-1076 from branches/0.7.1
1015 * Merged 1071-1076 from branches/0.7.1
1006
1016
1007
1017
1008 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1018 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1009
1019
1010 * tools/release (daystamp): Fix build tools to use the new
1020 * tools/release (daystamp): Fix build tools to use the new
1011 eggsetup.py script to build lightweight eggs.
1021 eggsetup.py script to build lightweight eggs.
1012
1022
1013 * Applied changesets 1062 and 1064 before 0.7.1 release.
1023 * Applied changesets 1062 and 1064 before 0.7.1 release.
1014
1024
1015 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1025 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1016 see the raw input history (without conversions like %ls ->
1026 see the raw input history (without conversions like %ls ->
1017 ipmagic("ls")). After a request from W. Stein, SAGE
1027 ipmagic("ls")). After a request from W. Stein, SAGE
1018 (http://modular.ucsd.edu/sage) developer. This information is
1028 (http://modular.ucsd.edu/sage) developer. This information is
1019 stored in the input_hist_raw attribute of the IPython instance, so
1029 stored in the input_hist_raw attribute of the IPython instance, so
1020 developers can access it if needed (it's an InputList instance).
1030 developers can access it if needed (it's an InputList instance).
1021
1031
1022 * Versionstring = 0.7.2.svn
1032 * Versionstring = 0.7.2.svn
1023
1033
1024 * eggsetup.py: A separate script for constructing eggs, creates
1034 * eggsetup.py: A separate script for constructing eggs, creates
1025 proper launch scripts even on Windows (an .exe file in
1035 proper launch scripts even on Windows (an .exe file in
1026 \python24\scripts).
1036 \python24\scripts).
1027
1037
1028 * ipapi.py: launch_new_instance, launch entry point needed for the
1038 * ipapi.py: launch_new_instance, launch entry point needed for the
1029 egg.
1039 egg.
1030
1040
1031 2006-01-23 Ville Vainio <vivainio@gmail.com>
1041 2006-01-23 Ville Vainio <vivainio@gmail.com>
1032
1042
1033 * Added %cpaste magic for pasting python code
1043 * Added %cpaste magic for pasting python code
1034
1044
1035 2006-01-22 Ville Vainio <vivainio@gmail.com>
1045 2006-01-22 Ville Vainio <vivainio@gmail.com>
1036
1046
1037 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1047 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1038
1048
1039 * Versionstring = 0.7.2.svn
1049 * Versionstring = 0.7.2.svn
1040
1050
1041 * eggsetup.py: A separate script for constructing eggs, creates
1051 * eggsetup.py: A separate script for constructing eggs, creates
1042 proper launch scripts even on Windows (an .exe file in
1052 proper launch scripts even on Windows (an .exe file in
1043 \python24\scripts).
1053 \python24\scripts).
1044
1054
1045 * ipapi.py: launch_new_instance, launch entry point needed for the
1055 * ipapi.py: launch_new_instance, launch entry point needed for the
1046 egg.
1056 egg.
1047
1057
1048 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1049
1059
1050 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1060 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1051 %pfile foo would print the file for foo even if it was a binary.
1061 %pfile foo would print the file for foo even if it was a binary.
1052 Now, extensions '.so' and '.dll' are skipped.
1062 Now, extensions '.so' and '.dll' are skipped.
1053
1063
1054 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1064 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1055 bug, where macros would fail in all threaded modes. I'm not 100%
1065 bug, where macros would fail in all threaded modes. I'm not 100%
1056 sure, so I'm going to put out an rc instead of making a release
1066 sure, so I'm going to put out an rc instead of making a release
1057 today, and wait for feedback for at least a few days.
1067 today, and wait for feedback for at least a few days.
1058
1068
1059 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1069 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1060 it...) the handling of pasting external code with autoindent on.
1070 it...) the handling of pasting external code with autoindent on.
1061 To get out of a multiline input, the rule will appear for most
1071 To get out of a multiline input, the rule will appear for most
1062 users unchanged: two blank lines or change the indent level
1072 users unchanged: two blank lines or change the indent level
1063 proposed by IPython. But there is a twist now: you can
1073 proposed by IPython. But there is a twist now: you can
1064 add/subtract only *one or two spaces*. If you add/subtract three
1074 add/subtract only *one or two spaces*. If you add/subtract three
1065 or more (unless you completely delete the line), IPython will
1075 or more (unless you completely delete the line), IPython will
1066 accept that line, and you'll need to enter a second one of pure
1076 accept that line, and you'll need to enter a second one of pure
1067 whitespace. I know it sounds complicated, but I can't find a
1077 whitespace. I know it sounds complicated, but I can't find a
1068 different solution that covers all the cases, with the right
1078 different solution that covers all the cases, with the right
1069 heuristics. Hopefully in actual use, nobody will really notice
1079 heuristics. Hopefully in actual use, nobody will really notice
1070 all these strange rules and things will 'just work'.
1080 all these strange rules and things will 'just work'.
1071
1081
1072 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1082 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1073
1083
1074 * IPython/iplib.py (interact): catch exceptions which can be
1084 * IPython/iplib.py (interact): catch exceptions which can be
1075 triggered asynchronously by signal handlers. Thanks to an
1085 triggered asynchronously by signal handlers. Thanks to an
1076 automatic crash report, submitted by Colin Kingsley
1086 automatic crash report, submitted by Colin Kingsley
1077 <tercel-AT-gentoo.org>.
1087 <tercel-AT-gentoo.org>.
1078
1088
1079 2006-01-20 Ville Vainio <vivainio@gmail.com>
1089 2006-01-20 Ville Vainio <vivainio@gmail.com>
1080
1090
1081 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1091 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1082 (%rehashdir, very useful, try it out) of how to extend ipython
1092 (%rehashdir, very useful, try it out) of how to extend ipython
1083 with new magics. Also added Extensions dir to pythonpath to make
1093 with new magics. Also added Extensions dir to pythonpath to make
1084 importing extensions easy.
1094 importing extensions easy.
1085
1095
1086 * %store now complains when trying to store interactively declared
1096 * %store now complains when trying to store interactively declared
1087 classes / instances of those classes.
1097 classes / instances of those classes.
1088
1098
1089 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1099 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1090 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1100 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1091 if they exist, and ipy_user_conf.py with some defaults is created for
1101 if they exist, and ipy_user_conf.py with some defaults is created for
1092 the user.
1102 the user.
1093
1103
1094 * Startup rehashing done by the config file, not InterpreterExec.
1104 * Startup rehashing done by the config file, not InterpreterExec.
1095 This means system commands are available even without selecting the
1105 This means system commands are available even without selecting the
1096 pysh profile. It's the sensible default after all.
1106 pysh profile. It's the sensible default after all.
1097
1107
1098 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1099
1109
1100 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1110 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1101 multiline code with autoindent on working. But I am really not
1111 multiline code with autoindent on working. But I am really not
1102 sure, so this needs more testing. Will commit a debug-enabled
1112 sure, so this needs more testing. Will commit a debug-enabled
1103 version for now, while I test it some more, so that Ville and
1113 version for now, while I test it some more, so that Ville and
1104 others may also catch any problems. Also made
1114 others may also catch any problems. Also made
1105 self.indent_current_str() a method, to ensure that there's no
1115 self.indent_current_str() a method, to ensure that there's no
1106 chance of the indent space count and the corresponding string
1116 chance of the indent space count and the corresponding string
1107 falling out of sync. All code needing the string should just call
1117 falling out of sync. All code needing the string should just call
1108 the method.
1118 the method.
1109
1119
1110 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1120 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1121
1112 * IPython/Magic.py (magic_edit): fix check for when users don't
1122 * IPython/Magic.py (magic_edit): fix check for when users don't
1113 save their output files, the try/except was in the wrong section.
1123 save their output files, the try/except was in the wrong section.
1114
1124
1115 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1125 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1116
1126
1117 * IPython/Magic.py (magic_run): fix __file__ global missing from
1127 * IPython/Magic.py (magic_run): fix __file__ global missing from
1118 script's namespace when executed via %run. After a report by
1128 script's namespace when executed via %run. After a report by
1119 Vivian.
1129 Vivian.
1120
1130
1121 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1131 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1122 when using python 2.4. The parent constructor changed in 2.4, and
1132 when using python 2.4. The parent constructor changed in 2.4, and
1123 we need to track it directly (we can't call it, as it messes up
1133 we need to track it directly (we can't call it, as it messes up
1124 readline and tab-completion inside our pdb would stop working).
1134 readline and tab-completion inside our pdb would stop working).
1125 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1135 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1126
1136
1127 2006-01-16 Ville Vainio <vivainio@gmail.com>
1137 2006-01-16 Ville Vainio <vivainio@gmail.com>
1128
1138
1129 * Ipython/magic.py: Reverted back to old %edit functionality
1139 * Ipython/magic.py: Reverted back to old %edit functionality
1130 that returns file contents on exit.
1140 that returns file contents on exit.
1131
1141
1132 * IPython/path.py: Added Jason Orendorff's "path" module to
1142 * IPython/path.py: Added Jason Orendorff's "path" module to
1133 IPython tree, http://www.jorendorff.com/articles/python/path/.
1143 IPython tree, http://www.jorendorff.com/articles/python/path/.
1134 You can get path objects conveniently through %sc, and !!, e.g.:
1144 You can get path objects conveniently through %sc, and !!, e.g.:
1135 sc files=ls
1145 sc files=ls
1136 for p in files.paths: # or files.p
1146 for p in files.paths: # or files.p
1137 print p,p.mtime
1147 print p,p.mtime
1138
1148
1139 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1149 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1140 now work again without considering the exclusion regexp -
1150 now work again without considering the exclusion regexp -
1141 hence, things like ',foo my/path' turn to 'foo("my/path")'
1151 hence, things like ',foo my/path' turn to 'foo("my/path")'
1142 instead of syntax error.
1152 instead of syntax error.
1143
1153
1144
1154
1145 2006-01-14 Ville Vainio <vivainio@gmail.com>
1155 2006-01-14 Ville Vainio <vivainio@gmail.com>
1146
1156
1147 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1157 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1148 ipapi decorators for python 2.4 users, options() provides access to rc
1158 ipapi decorators for python 2.4 users, options() provides access to rc
1149 data.
1159 data.
1150
1160
1151 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1161 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1152 as path separators (even on Linux ;-). Space character after
1162 as path separators (even on Linux ;-). Space character after
1153 backslash (as yielded by tab completer) is still space;
1163 backslash (as yielded by tab completer) is still space;
1154 "%cd long\ name" works as expected.
1164 "%cd long\ name" works as expected.
1155
1165
1156 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1166 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1157 as "chain of command", with priority. API stays the same,
1167 as "chain of command", with priority. API stays the same,
1158 TryNext exception raised by a hook function signals that
1168 TryNext exception raised by a hook function signals that
1159 current hook failed and next hook should try handling it, as
1169 current hook failed and next hook should try handling it, as
1160 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1170 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1161 requested configurable display hook, which is now implemented.
1171 requested configurable display hook, which is now implemented.
1162
1172
1163 2006-01-13 Ville Vainio <vivainio@gmail.com>
1173 2006-01-13 Ville Vainio <vivainio@gmail.com>
1164
1174
1165 * IPython/platutils*.py: platform specific utility functions,
1175 * IPython/platutils*.py: platform specific utility functions,
1166 so far only set_term_title is implemented (change terminal
1176 so far only set_term_title is implemented (change terminal
1167 label in windowing systems). %cd now changes the title to
1177 label in windowing systems). %cd now changes the title to
1168 current dir.
1178 current dir.
1169
1179
1170 * IPython/Release.py: Added myself to "authors" list,
1180 * IPython/Release.py: Added myself to "authors" list,
1171 had to create new files.
1181 had to create new files.
1172
1182
1173 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1183 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1174 shell escape; not a known bug but had potential to be one in the
1184 shell escape; not a known bug but had potential to be one in the
1175 future.
1185 future.
1176
1186
1177 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1187 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1178 extension API for IPython! See the module for usage example. Fix
1188 extension API for IPython! See the module for usage example. Fix
1179 OInspect for docstring-less magic functions.
1189 OInspect for docstring-less magic functions.
1180
1190
1181
1191
1182 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1192 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1183
1193
1184 * IPython/iplib.py (raw_input): temporarily deactivate all
1194 * IPython/iplib.py (raw_input): temporarily deactivate all
1185 attempts at allowing pasting of code with autoindent on. It
1195 attempts at allowing pasting of code with autoindent on. It
1186 introduced bugs (reported by Prabhu) and I can't seem to find a
1196 introduced bugs (reported by Prabhu) and I can't seem to find a
1187 robust combination which works in all cases. Will have to revisit
1197 robust combination which works in all cases. Will have to revisit
1188 later.
1198 later.
1189
1199
1190 * IPython/genutils.py: remove isspace() function. We've dropped
1200 * IPython/genutils.py: remove isspace() function. We've dropped
1191 2.2 compatibility, so it's OK to use the string method.
1201 2.2 compatibility, so it's OK to use the string method.
1192
1202
1193 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1203 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1194
1204
1195 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1205 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1196 matching what NOT to autocall on, to include all python binary
1206 matching what NOT to autocall on, to include all python binary
1197 operators (including things like 'and', 'or', 'is' and 'in').
1207 operators (including things like 'and', 'or', 'is' and 'in').
1198 Prompted by a bug report on 'foo & bar', but I realized we had
1208 Prompted by a bug report on 'foo & bar', but I realized we had
1199 many more potential bug cases with other operators. The regexp is
1209 many more potential bug cases with other operators. The regexp is
1200 self.re_exclude_auto, it's fairly commented.
1210 self.re_exclude_auto, it's fairly commented.
1201
1211
1202 2006-01-12 Ville Vainio <vivainio@gmail.com>
1212 2006-01-12 Ville Vainio <vivainio@gmail.com>
1203
1213
1204 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1214 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1205 Prettified and hardened string/backslash quoting with ipsystem(),
1215 Prettified and hardened string/backslash quoting with ipsystem(),
1206 ipalias() and ipmagic(). Now even \ characters are passed to
1216 ipalias() and ipmagic(). Now even \ characters are passed to
1207 %magics, !shell escapes and aliases exactly as they are in the
1217 %magics, !shell escapes and aliases exactly as they are in the
1208 ipython command line. Should improve backslash experience,
1218 ipython command line. Should improve backslash experience,
1209 particularly in Windows (path delimiter for some commands that
1219 particularly in Windows (path delimiter for some commands that
1210 won't understand '/'), but Unix benefits as well (regexps). %cd
1220 won't understand '/'), but Unix benefits as well (regexps). %cd
1211 magic still doesn't support backslash path delimiters, though. Also
1221 magic still doesn't support backslash path delimiters, though. Also
1212 deleted all pretense of supporting multiline command strings in
1222 deleted all pretense of supporting multiline command strings in
1213 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1223 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1214
1224
1215 * doc/build_doc_instructions.txt added. Documentation on how to
1225 * doc/build_doc_instructions.txt added. Documentation on how to
1216 use doc/update_manual.py, added yesterday. Both files contributed
1226 use doc/update_manual.py, added yesterday. Both files contributed
1217 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1227 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1218 doc/*.sh for deprecation at a later date.
1228 doc/*.sh for deprecation at a later date.
1219
1229
1220 * /ipython.py Added ipython.py to root directory for
1230 * /ipython.py Added ipython.py to root directory for
1221 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1231 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1222 ipython.py) and development convenience (no need to keep doing
1232 ipython.py) and development convenience (no need to keep doing
1223 "setup.py install" between changes).
1233 "setup.py install" between changes).
1224
1234
1225 * Made ! and !! shell escapes work (again) in multiline expressions:
1235 * Made ! and !! shell escapes work (again) in multiline expressions:
1226 if 1:
1236 if 1:
1227 !ls
1237 !ls
1228 !!ls
1238 !!ls
1229
1239
1230 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1240 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1231
1241
1232 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1242 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1233 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1243 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1234 module in case-insensitive installation. Was causing crashes
1244 module in case-insensitive installation. Was causing crashes
1235 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1245 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1236
1246
1237 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1247 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1238 <marienz-AT-gentoo.org>, closes
1248 <marienz-AT-gentoo.org>, closes
1239 http://www.scipy.net/roundup/ipython/issue51.
1249 http://www.scipy.net/roundup/ipython/issue51.
1240
1250
1241 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1251 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1242
1252
1243 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1253 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1244 problem of excessive CPU usage under *nix and keyboard lag under
1254 problem of excessive CPU usage under *nix and keyboard lag under
1245 win32.
1255 win32.
1246
1256
1247 2006-01-10 *** Released version 0.7.0
1257 2006-01-10 *** Released version 0.7.0
1248
1258
1249 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1259 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1250
1260
1251 * IPython/Release.py (revision): tag version number to 0.7.0,
1261 * IPython/Release.py (revision): tag version number to 0.7.0,
1252 ready for release.
1262 ready for release.
1253
1263
1254 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1264 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1255 it informs the user of the name of the temp. file used. This can
1265 it informs the user of the name of the temp. file used. This can
1256 help if you decide later to reuse that same file, so you know
1266 help if you decide later to reuse that same file, so you know
1257 where to copy the info from.
1267 where to copy the info from.
1258
1268
1259 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1269 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1260
1270
1261 * setup_bdist_egg.py: little script to build an egg. Added
1271 * setup_bdist_egg.py: little script to build an egg. Added
1262 support in the release tools as well.
1272 support in the release tools as well.
1263
1273
1264 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1274 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1265
1275
1266 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1276 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1267 version selection (new -wxversion command line and ipythonrc
1277 version selection (new -wxversion command line and ipythonrc
1268 parameter). Patch contributed by Arnd Baecker
1278 parameter). Patch contributed by Arnd Baecker
1269 <arnd.baecker-AT-web.de>.
1279 <arnd.baecker-AT-web.de>.
1270
1280
1271 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1281 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1272 embedded instances, for variables defined at the interactive
1282 embedded instances, for variables defined at the interactive
1273 prompt of the embedded ipython. Reported by Arnd.
1283 prompt of the embedded ipython. Reported by Arnd.
1274
1284
1275 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1285 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1276 it can be used as a (stateful) toggle, or with a direct parameter.
1286 it can be used as a (stateful) toggle, or with a direct parameter.
1277
1287
1278 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1288 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1279 could be triggered in certain cases and cause the traceback
1289 could be triggered in certain cases and cause the traceback
1280 printer not to work.
1290 printer not to work.
1281
1291
1282 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1292 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1283
1293
1284 * IPython/iplib.py (_should_recompile): Small fix, closes
1294 * IPython/iplib.py (_should_recompile): Small fix, closes
1285 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1295 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1286
1296
1287 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1288
1298
1289 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1299 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1290 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1300 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1291 Moad for help with tracking it down.
1301 Moad for help with tracking it down.
1292
1302
1293 * IPython/iplib.py (handle_auto): fix autocall handling for
1303 * IPython/iplib.py (handle_auto): fix autocall handling for
1294 objects which support BOTH __getitem__ and __call__ (so that f [x]
1304 objects which support BOTH __getitem__ and __call__ (so that f [x]
1295 is left alone, instead of becoming f([x]) automatically).
1305 is left alone, instead of becoming f([x]) automatically).
1296
1306
1297 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1307 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1298 Ville's patch.
1308 Ville's patch.
1299
1309
1300 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1310 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1301
1311
1302 * IPython/iplib.py (handle_auto): changed autocall semantics to
1312 * IPython/iplib.py (handle_auto): changed autocall semantics to
1303 include 'smart' mode, where the autocall transformation is NOT
1313 include 'smart' mode, where the autocall transformation is NOT
1304 applied if there are no arguments on the line. This allows you to
1314 applied if there are no arguments on the line. This allows you to
1305 just type 'foo' if foo is a callable to see its internal form,
1315 just type 'foo' if foo is a callable to see its internal form,
1306 instead of having it called with no arguments (typically a
1316 instead of having it called with no arguments (typically a
1307 mistake). The old 'full' autocall still exists: for that, you
1317 mistake). The old 'full' autocall still exists: for that, you
1308 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1318 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1309
1319
1310 * IPython/completer.py (Completer.attr_matches): add
1320 * IPython/completer.py (Completer.attr_matches): add
1311 tab-completion support for Enthoughts' traits. After a report by
1321 tab-completion support for Enthoughts' traits. After a report by
1312 Arnd and a patch by Prabhu.
1322 Arnd and a patch by Prabhu.
1313
1323
1314 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1324 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1315
1325
1316 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1326 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1317 Schmolck's patch to fix inspect.getinnerframes().
1327 Schmolck's patch to fix inspect.getinnerframes().
1318
1328
1319 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1329 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1320 for embedded instances, regarding handling of namespaces and items
1330 for embedded instances, regarding handling of namespaces and items
1321 added to the __builtin__ one. Multiple embedded instances and
1331 added to the __builtin__ one. Multiple embedded instances and
1322 recursive embeddings should work better now (though I'm not sure
1332 recursive embeddings should work better now (though I'm not sure
1323 I've got all the corner cases fixed, that code is a bit of a brain
1333 I've got all the corner cases fixed, that code is a bit of a brain
1324 twister).
1334 twister).
1325
1335
1326 * IPython/Magic.py (magic_edit): added support to edit in-memory
1336 * IPython/Magic.py (magic_edit): added support to edit in-memory
1327 macros (automatically creates the necessary temp files). %edit
1337 macros (automatically creates the necessary temp files). %edit
1328 also doesn't return the file contents anymore, it's just noise.
1338 also doesn't return the file contents anymore, it's just noise.
1329
1339
1330 * IPython/completer.py (Completer.attr_matches): revert change to
1340 * IPython/completer.py (Completer.attr_matches): revert change to
1331 complete only on attributes listed in __all__. I realized it
1341 complete only on attributes listed in __all__. I realized it
1332 cripples the tab-completion system as a tool for exploring the
1342 cripples the tab-completion system as a tool for exploring the
1333 internals of unknown libraries (it renders any non-__all__
1343 internals of unknown libraries (it renders any non-__all__
1334 attribute off-limits). I got bit by this when trying to see
1344 attribute off-limits). I got bit by this when trying to see
1335 something inside the dis module.
1345 something inside the dis module.
1336
1346
1337 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1347 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1338
1348
1339 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1349 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1340 namespace for users and extension writers to hold data in. This
1350 namespace for users and extension writers to hold data in. This
1341 follows the discussion in
1351 follows the discussion in
1342 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1352 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1343
1353
1344 * IPython/completer.py (IPCompleter.complete): small patch to help
1354 * IPython/completer.py (IPCompleter.complete): small patch to help
1345 tab-completion under Emacs, after a suggestion by John Barnard
1355 tab-completion under Emacs, after a suggestion by John Barnard
1346 <barnarj-AT-ccf.org>.
1356 <barnarj-AT-ccf.org>.
1347
1357
1348 * IPython/Magic.py (Magic.extract_input_slices): added support for
1358 * IPython/Magic.py (Magic.extract_input_slices): added support for
1349 the slice notation in magics to use N-M to represent numbers N...M
1359 the slice notation in magics to use N-M to represent numbers N...M
1350 (closed endpoints). This is used by %macro and %save.
1360 (closed endpoints). This is used by %macro and %save.
1351
1361
1352 * IPython/completer.py (Completer.attr_matches): for modules which
1362 * IPython/completer.py (Completer.attr_matches): for modules which
1353 define __all__, complete only on those. After a patch by Jeffrey
1363 define __all__, complete only on those. After a patch by Jeffrey
1354 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1364 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1355 speed up this routine.
1365 speed up this routine.
1356
1366
1357 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1367 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1358 don't know if this is the end of it, but the behavior now is
1368 don't know if this is the end of it, but the behavior now is
1359 certainly much more correct. Note that coupled with macros,
1369 certainly much more correct. Note that coupled with macros,
1360 slightly surprising (at first) behavior may occur: a macro will in
1370 slightly surprising (at first) behavior may occur: a macro will in
1361 general expand to multiple lines of input, so upon exiting, the
1371 general expand to multiple lines of input, so upon exiting, the
1362 in/out counters will both be bumped by the corresponding amount
1372 in/out counters will both be bumped by the corresponding amount
1363 (as if the macro's contents had been typed interactively). Typing
1373 (as if the macro's contents had been typed interactively). Typing
1364 %hist will reveal the intermediate (silently processed) lines.
1374 %hist will reveal the intermediate (silently processed) lines.
1365
1375
1366 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1376 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1367 pickle to fail (%run was overwriting __main__ and not restoring
1377 pickle to fail (%run was overwriting __main__ and not restoring
1368 it, but pickle relies on __main__ to operate).
1378 it, but pickle relies on __main__ to operate).
1369
1379
1370 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1380 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1371 using properties, but forgot to make the main InteractiveShell
1381 using properties, but forgot to make the main InteractiveShell
1372 class a new-style class. Properties fail silently, and
1382 class a new-style class. Properties fail silently, and
1373 mysteriously, with old-style class (getters work, but
1383 mysteriously, with old-style class (getters work, but
1374 setters don't do anything).
1384 setters don't do anything).
1375
1385
1376 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1386 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1387
1378 * IPython/Magic.py (magic_history): fix history reporting bug (I
1388 * IPython/Magic.py (magic_history): fix history reporting bug (I
1379 know some nasties are still there, I just can't seem to find a
1389 know some nasties are still there, I just can't seem to find a
1380 reproducible test case to track them down; the input history is
1390 reproducible test case to track them down; the input history is
1381 falling out of sync...)
1391 falling out of sync...)
1382
1392
1383 * IPython/iplib.py (handle_shell_escape): fix bug where both
1393 * IPython/iplib.py (handle_shell_escape): fix bug where both
1384 aliases and system accesses where broken for indented code (such
1394 aliases and system accesses where broken for indented code (such
1385 as loops).
1395 as loops).
1386
1396
1387 * IPython/genutils.py (shell): fix small but critical bug for
1397 * IPython/genutils.py (shell): fix small but critical bug for
1388 win32 system access.
1398 win32 system access.
1389
1399
1390 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1400 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1391
1401
1392 * IPython/iplib.py (showtraceback): remove use of the
1402 * IPython/iplib.py (showtraceback): remove use of the
1393 sys.last_{type/value/traceback} structures, which are non
1403 sys.last_{type/value/traceback} structures, which are non
1394 thread-safe.
1404 thread-safe.
1395 (_prefilter): change control flow to ensure that we NEVER
1405 (_prefilter): change control flow to ensure that we NEVER
1396 introspect objects when autocall is off. This will guarantee that
1406 introspect objects when autocall is off. This will guarantee that
1397 having an input line of the form 'x.y', where access to attribute
1407 having an input line of the form 'x.y', where access to attribute
1398 'y' has side effects, doesn't trigger the side effect TWICE. It
1408 'y' has side effects, doesn't trigger the side effect TWICE. It
1399 is important to note that, with autocall on, these side effects
1409 is important to note that, with autocall on, these side effects
1400 can still happen.
1410 can still happen.
1401 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1411 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1402 trio. IPython offers these three kinds of special calls which are
1412 trio. IPython offers these three kinds of special calls which are
1403 not python code, and it's a good thing to have their call method
1413 not python code, and it's a good thing to have their call method
1404 be accessible as pure python functions (not just special syntax at
1414 be accessible as pure python functions (not just special syntax at
1405 the command line). It gives us a better internal implementation
1415 the command line). It gives us a better internal implementation
1406 structure, as well as exposing these for user scripting more
1416 structure, as well as exposing these for user scripting more
1407 cleanly.
1417 cleanly.
1408
1418
1409 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1419 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1410 file. Now that they'll be more likely to be used with the
1420 file. Now that they'll be more likely to be used with the
1411 persistance system (%store), I want to make sure their module path
1421 persistance system (%store), I want to make sure their module path
1412 doesn't change in the future, so that we don't break things for
1422 doesn't change in the future, so that we don't break things for
1413 users' persisted data.
1423 users' persisted data.
1414
1424
1415 * IPython/iplib.py (autoindent_update): move indentation
1425 * IPython/iplib.py (autoindent_update): move indentation
1416 management into the _text_ processing loop, not the keyboard
1426 management into the _text_ processing loop, not the keyboard
1417 interactive one. This is necessary to correctly process non-typed
1427 interactive one. This is necessary to correctly process non-typed
1418 multiline input (such as macros).
1428 multiline input (such as macros).
1419
1429
1420 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1430 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1421 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1431 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1422 which was producing problems in the resulting manual.
1432 which was producing problems in the resulting manual.
1423 (magic_whos): improve reporting of instances (show their class,
1433 (magic_whos): improve reporting of instances (show their class,
1424 instead of simply printing 'instance' which isn't terribly
1434 instead of simply printing 'instance' which isn't terribly
1425 informative).
1435 informative).
1426
1436
1427 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1437 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1428 (minor mods) to support network shares under win32.
1438 (minor mods) to support network shares under win32.
1429
1439
1430 * IPython/winconsole.py (get_console_size): add new winconsole
1440 * IPython/winconsole.py (get_console_size): add new winconsole
1431 module and fixes to page_dumb() to improve its behavior under
1441 module and fixes to page_dumb() to improve its behavior under
1432 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1442 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1433
1443
1434 * IPython/Magic.py (Macro): simplified Macro class to just
1444 * IPython/Magic.py (Macro): simplified Macro class to just
1435 subclass list. We've had only 2.2 compatibility for a very long
1445 subclass list. We've had only 2.2 compatibility for a very long
1436 time, yet I was still avoiding subclassing the builtin types. No
1446 time, yet I was still avoiding subclassing the builtin types. No
1437 more (I'm also starting to use properties, though I won't shift to
1447 more (I'm also starting to use properties, though I won't shift to
1438 2.3-specific features quite yet).
1448 2.3-specific features quite yet).
1439 (magic_store): added Ville's patch for lightweight variable
1449 (magic_store): added Ville's patch for lightweight variable
1440 persistence, after a request on the user list by Matt Wilkie
1450 persistence, after a request on the user list by Matt Wilkie
1441 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1451 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1442 details.
1452 details.
1443
1453
1444 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1454 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1445 changed the default logfile name from 'ipython.log' to
1455 changed the default logfile name from 'ipython.log' to
1446 'ipython_log.py'. These logs are real python files, and now that
1456 'ipython_log.py'. These logs are real python files, and now that
1447 we have much better multiline support, people are more likely to
1457 we have much better multiline support, people are more likely to
1448 want to use them as such. Might as well name them correctly.
1458 want to use them as such. Might as well name them correctly.
1449
1459
1450 * IPython/Magic.py: substantial cleanup. While we can't stop
1460 * IPython/Magic.py: substantial cleanup. While we can't stop
1451 using magics as mixins, due to the existing customizations 'out
1461 using magics as mixins, due to the existing customizations 'out
1452 there' which rely on the mixin naming conventions, at least I
1462 there' which rely on the mixin naming conventions, at least I
1453 cleaned out all cross-class name usage. So once we are OK with
1463 cleaned out all cross-class name usage. So once we are OK with
1454 breaking compatibility, the two systems can be separated.
1464 breaking compatibility, the two systems can be separated.
1455
1465
1456 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1466 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1457 anymore, and the class is a fair bit less hideous as well. New
1467 anymore, and the class is a fair bit less hideous as well. New
1458 features were also introduced: timestamping of input, and logging
1468 features were also introduced: timestamping of input, and logging
1459 of output results. These are user-visible with the -t and -o
1469 of output results. These are user-visible with the -t and -o
1460 options to %logstart. Closes
1470 options to %logstart. Closes
1461 http://www.scipy.net/roundup/ipython/issue11 and a request by
1471 http://www.scipy.net/roundup/ipython/issue11 and a request by
1462 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1472 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1463
1473
1464 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1474 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1465
1475
1466 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1476 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1467 better handle backslashes in paths. See the thread 'More Windows
1477 better handle backslashes in paths. See the thread 'More Windows
1468 questions part 2 - \/ characters revisited' on the iypthon user
1478 questions part 2 - \/ characters revisited' on the iypthon user
1469 list:
1479 list:
1470 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1480 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1471
1481
1472 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1482 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1473
1483
1474 (InteractiveShell.__init__): change threaded shells to not use the
1484 (InteractiveShell.__init__): change threaded shells to not use the
1475 ipython crash handler. This was causing more problems than not,
1485 ipython crash handler. This was causing more problems than not,
1476 as exceptions in the main thread (GUI code, typically) would
1486 as exceptions in the main thread (GUI code, typically) would
1477 always show up as a 'crash', when they really weren't.
1487 always show up as a 'crash', when they really weren't.
1478
1488
1479 The colors and exception mode commands (%colors/%xmode) have been
1489 The colors and exception mode commands (%colors/%xmode) have been
1480 synchronized to also take this into account, so users can get
1490 synchronized to also take this into account, so users can get
1481 verbose exceptions for their threaded code as well. I also added
1491 verbose exceptions for their threaded code as well. I also added
1482 support for activating pdb inside this exception handler as well,
1492 support for activating pdb inside this exception handler as well,
1483 so now GUI authors can use IPython's enhanced pdb at runtime.
1493 so now GUI authors can use IPython's enhanced pdb at runtime.
1484
1494
1485 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1495 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1486 true by default, and add it to the shipped ipythonrc file. Since
1496 true by default, and add it to the shipped ipythonrc file. Since
1487 this asks the user before proceeding, I think it's OK to make it
1497 this asks the user before proceeding, I think it's OK to make it
1488 true by default.
1498 true by default.
1489
1499
1490 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1500 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1491 of the previous special-casing of input in the eval loop. I think
1501 of the previous special-casing of input in the eval loop. I think
1492 this is cleaner, as they really are commands and shouldn't have
1502 this is cleaner, as they really are commands and shouldn't have
1493 a special role in the middle of the core code.
1503 a special role in the middle of the core code.
1494
1504
1495 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1505 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1496
1506
1497 * IPython/iplib.py (edit_syntax_error): added support for
1507 * IPython/iplib.py (edit_syntax_error): added support for
1498 automatically reopening the editor if the file had a syntax error
1508 automatically reopening the editor if the file had a syntax error
1499 in it. Thanks to scottt who provided the patch at:
1509 in it. Thanks to scottt who provided the patch at:
1500 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1510 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1501 version committed).
1511 version committed).
1502
1512
1503 * IPython/iplib.py (handle_normal): add suport for multi-line
1513 * IPython/iplib.py (handle_normal): add suport for multi-line
1504 input with emtpy lines. This fixes
1514 input with emtpy lines. This fixes
1505 http://www.scipy.net/roundup/ipython/issue43 and a similar
1515 http://www.scipy.net/roundup/ipython/issue43 and a similar
1506 discussion on the user list.
1516 discussion on the user list.
1507
1517
1508 WARNING: a behavior change is necessarily introduced to support
1518 WARNING: a behavior change is necessarily introduced to support
1509 blank lines: now a single blank line with whitespace does NOT
1519 blank lines: now a single blank line with whitespace does NOT
1510 break the input loop, which means that when autoindent is on, by
1520 break the input loop, which means that when autoindent is on, by
1511 default hitting return on the next (indented) line does NOT exit.
1521 default hitting return on the next (indented) line does NOT exit.
1512
1522
1513 Instead, to exit a multiline input you can either have:
1523 Instead, to exit a multiline input you can either have:
1514
1524
1515 - TWO whitespace lines (just hit return again), or
1525 - TWO whitespace lines (just hit return again), or
1516 - a single whitespace line of a different length than provided
1526 - a single whitespace line of a different length than provided
1517 by the autoindent (add or remove a space).
1527 by the autoindent (add or remove a space).
1518
1528
1519 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1529 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1520 module to better organize all readline-related functionality.
1530 module to better organize all readline-related functionality.
1521 I've deleted FlexCompleter and put all completion clases here.
1531 I've deleted FlexCompleter and put all completion clases here.
1522
1532
1523 * IPython/iplib.py (raw_input): improve indentation management.
1533 * IPython/iplib.py (raw_input): improve indentation management.
1524 It is now possible to paste indented code with autoindent on, and
1534 It is now possible to paste indented code with autoindent on, and
1525 the code is interpreted correctly (though it still looks bad on
1535 the code is interpreted correctly (though it still looks bad on
1526 screen, due to the line-oriented nature of ipython).
1536 screen, due to the line-oriented nature of ipython).
1527 (MagicCompleter.complete): change behavior so that a TAB key on an
1537 (MagicCompleter.complete): change behavior so that a TAB key on an
1528 otherwise empty line actually inserts a tab, instead of completing
1538 otherwise empty line actually inserts a tab, instead of completing
1529 on the entire global namespace. This makes it easier to use the
1539 on the entire global namespace. This makes it easier to use the
1530 TAB key for indentation. After a request by Hans Meine
1540 TAB key for indentation. After a request by Hans Meine
1531 <hans_meine-AT-gmx.net>
1541 <hans_meine-AT-gmx.net>
1532 (_prefilter): add support so that typing plain 'exit' or 'quit'
1542 (_prefilter): add support so that typing plain 'exit' or 'quit'
1533 does a sensible thing. Originally I tried to deviate as little as
1543 does a sensible thing. Originally I tried to deviate as little as
1534 possible from the default python behavior, but even that one may
1544 possible from the default python behavior, but even that one may
1535 change in this direction (thread on python-dev to that effect).
1545 change in this direction (thread on python-dev to that effect).
1536 Regardless, ipython should do the right thing even if CPython's
1546 Regardless, ipython should do the right thing even if CPython's
1537 '>>>' prompt doesn't.
1547 '>>>' prompt doesn't.
1538 (InteractiveShell): removed subclassing code.InteractiveConsole
1548 (InteractiveShell): removed subclassing code.InteractiveConsole
1539 class. By now we'd overridden just about all of its methods: I've
1549 class. By now we'd overridden just about all of its methods: I've
1540 copied the remaining two over, and now ipython is a standalone
1550 copied the remaining two over, and now ipython is a standalone
1541 class. This will provide a clearer picture for the chainsaw
1551 class. This will provide a clearer picture for the chainsaw
1542 branch refactoring.
1552 branch refactoring.
1543
1553
1544 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1545
1555
1546 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1556 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1547 failures for objects which break when dir() is called on them.
1557 failures for objects which break when dir() is called on them.
1548
1558
1549 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1559 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1550 distinct local and global namespaces in the completer API. This
1560 distinct local and global namespaces in the completer API. This
1551 change allows us to properly handle completion with distinct
1561 change allows us to properly handle completion with distinct
1552 scopes, including in embedded instances (this had never really
1562 scopes, including in embedded instances (this had never really
1553 worked correctly).
1563 worked correctly).
1554
1564
1555 Note: this introduces a change in the constructor for
1565 Note: this introduces a change in the constructor for
1556 MagicCompleter, as a new global_namespace parameter is now the
1566 MagicCompleter, as a new global_namespace parameter is now the
1557 second argument (the others were bumped one position).
1567 second argument (the others were bumped one position).
1558
1568
1559 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1569 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1560
1570
1561 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1571 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1562 embedded instances (which can be done now thanks to Vivian's
1572 embedded instances (which can be done now thanks to Vivian's
1563 frame-handling fixes for pdb).
1573 frame-handling fixes for pdb).
1564 (InteractiveShell.__init__): Fix namespace handling problem in
1574 (InteractiveShell.__init__): Fix namespace handling problem in
1565 embedded instances. We were overwriting __main__ unconditionally,
1575 embedded instances. We were overwriting __main__ unconditionally,
1566 and this should only be done for 'full' (non-embedded) IPython;
1576 and this should only be done for 'full' (non-embedded) IPython;
1567 embedded instances must respect the caller's __main__. Thanks to
1577 embedded instances must respect the caller's __main__. Thanks to
1568 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1578 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1569
1579
1570 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1580 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1571
1581
1572 * setup.py: added download_url to setup(). This registers the
1582 * setup.py: added download_url to setup(). This registers the
1573 download address at PyPI, which is not only useful to humans
1583 download address at PyPI, which is not only useful to humans
1574 browsing the site, but is also picked up by setuptools (the Eggs
1584 browsing the site, but is also picked up by setuptools (the Eggs
1575 machinery). Thanks to Ville and R. Kern for the info/discussion
1585 machinery). Thanks to Ville and R. Kern for the info/discussion
1576 on this.
1586 on this.
1577
1587
1578 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1588 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1579
1589
1580 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1590 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1581 This brings a lot of nice functionality to the pdb mode, which now
1591 This brings a lot of nice functionality to the pdb mode, which now
1582 has tab-completion, syntax highlighting, and better stack handling
1592 has tab-completion, syntax highlighting, and better stack handling
1583 than before. Many thanks to Vivian De Smedt
1593 than before. Many thanks to Vivian De Smedt
1584 <vivian-AT-vdesmedt.com> for the original patches.
1594 <vivian-AT-vdesmedt.com> for the original patches.
1585
1595
1586 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1596 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1587
1597
1588 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1598 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1589 sequence to consistently accept the banner argument. The
1599 sequence to consistently accept the banner argument. The
1590 inconsistency was tripping SAGE, thanks to Gary Zablackis
1600 inconsistency was tripping SAGE, thanks to Gary Zablackis
1591 <gzabl-AT-yahoo.com> for the report.
1601 <gzabl-AT-yahoo.com> for the report.
1592
1602
1593 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1603 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1594
1604
1595 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1605 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1596 Fix bug where a naked 'alias' call in the ipythonrc file would
1606 Fix bug where a naked 'alias' call in the ipythonrc file would
1597 cause a crash. Bug reported by Jorgen Stenarson.
1607 cause a crash. Bug reported by Jorgen Stenarson.
1598
1608
1599 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1609 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1600
1610
1601 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1611 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1602 startup time.
1612 startup time.
1603
1613
1604 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1614 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1605 instances had introduced a bug with globals in normal code. Now
1615 instances had introduced a bug with globals in normal code. Now
1606 it's working in all cases.
1616 it's working in all cases.
1607
1617
1608 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1618 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1609 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1619 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1610 has been introduced to set the default case sensitivity of the
1620 has been introduced to set the default case sensitivity of the
1611 searches. Users can still select either mode at runtime on a
1621 searches. Users can still select either mode at runtime on a
1612 per-search basis.
1622 per-search basis.
1613
1623
1614 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1624 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1615
1625
1616 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1626 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1617 attributes in wildcard searches for subclasses. Modified version
1627 attributes in wildcard searches for subclasses. Modified version
1618 of a patch by Jorgen.
1628 of a patch by Jorgen.
1619
1629
1620 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1630 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1631
1622 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1632 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1623 embedded instances. I added a user_global_ns attribute to the
1633 embedded instances. I added a user_global_ns attribute to the
1624 InteractiveShell class to handle this.
1634 InteractiveShell class to handle this.
1625
1635
1626 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1636 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1627
1637
1628 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1638 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1629 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1639 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1630 (reported under win32, but may happen also in other platforms).
1640 (reported under win32, but may happen also in other platforms).
1631 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1641 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1632
1642
1633 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1643 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1634
1644
1635 * IPython/Magic.py (magic_psearch): new support for wildcard
1645 * IPython/Magic.py (magic_psearch): new support for wildcard
1636 patterns. Now, typing ?a*b will list all names which begin with a
1646 patterns. Now, typing ?a*b will list all names which begin with a
1637 and end in b, for example. The %psearch magic has full
1647 and end in b, for example. The %psearch magic has full
1638 docstrings. Many thanks to JΓΆrgen Stenarson
1648 docstrings. Many thanks to JΓΆrgen Stenarson
1639 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1649 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1640 implementing this functionality.
1650 implementing this functionality.
1641
1651
1642 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1652 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1643
1653
1644 * Manual: fixed long-standing annoyance of double-dashes (as in
1654 * Manual: fixed long-standing annoyance of double-dashes (as in
1645 --prefix=~, for example) being stripped in the HTML version. This
1655 --prefix=~, for example) being stripped in the HTML version. This
1646 is a latex2html bug, but a workaround was provided. Many thanks
1656 is a latex2html bug, but a workaround was provided. Many thanks
1647 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1657 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1648 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1658 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1649 rolling. This seemingly small issue had tripped a number of users
1659 rolling. This seemingly small issue had tripped a number of users
1650 when first installing, so I'm glad to see it gone.
1660 when first installing, so I'm glad to see it gone.
1651
1661
1652 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1662 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1653
1663
1654 * IPython/Extensions/numeric_formats.py: fix missing import,
1664 * IPython/Extensions/numeric_formats.py: fix missing import,
1655 reported by Stephen Walton.
1665 reported by Stephen Walton.
1656
1666
1657 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1667 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1658
1668
1659 * IPython/demo.py: finish demo module, fully documented now.
1669 * IPython/demo.py: finish demo module, fully documented now.
1660
1670
1661 * IPython/genutils.py (file_read): simple little utility to read a
1671 * IPython/genutils.py (file_read): simple little utility to read a
1662 file and ensure it's closed afterwards.
1672 file and ensure it's closed afterwards.
1663
1673
1664 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1674 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1665
1675
1666 * IPython/demo.py (Demo.__init__): added support for individually
1676 * IPython/demo.py (Demo.__init__): added support for individually
1667 tagging blocks for automatic execution.
1677 tagging blocks for automatic execution.
1668
1678
1669 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1679 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1670 syntax-highlighted python sources, requested by John.
1680 syntax-highlighted python sources, requested by John.
1671
1681
1672 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1682 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1673
1683
1674 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1684 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1675 finishing.
1685 finishing.
1676
1686
1677 * IPython/genutils.py (shlex_split): moved from Magic to here,
1687 * IPython/genutils.py (shlex_split): moved from Magic to here,
1678 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1688 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1679
1689
1680 * IPython/demo.py (Demo.__init__): added support for silent
1690 * IPython/demo.py (Demo.__init__): added support for silent
1681 blocks, improved marks as regexps, docstrings written.
1691 blocks, improved marks as regexps, docstrings written.
1682 (Demo.__init__): better docstring, added support for sys.argv.
1692 (Demo.__init__): better docstring, added support for sys.argv.
1683
1693
1684 * IPython/genutils.py (marquee): little utility used by the demo
1694 * IPython/genutils.py (marquee): little utility used by the demo
1685 code, handy in general.
1695 code, handy in general.
1686
1696
1687 * IPython/demo.py (Demo.__init__): new class for interactive
1697 * IPython/demo.py (Demo.__init__): new class for interactive
1688 demos. Not documented yet, I just wrote it in a hurry for
1698 demos. Not documented yet, I just wrote it in a hurry for
1689 scipy'05. Will docstring later.
1699 scipy'05. Will docstring later.
1690
1700
1691 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1701 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1692
1702
1693 * IPython/Shell.py (sigint_handler): Drastic simplification which
1703 * IPython/Shell.py (sigint_handler): Drastic simplification which
1694 also seems to make Ctrl-C work correctly across threads! This is
1704 also seems to make Ctrl-C work correctly across threads! This is
1695 so simple, that I can't beleive I'd missed it before. Needs more
1705 so simple, that I can't beleive I'd missed it before. Needs more
1696 testing, though.
1706 testing, though.
1697 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1707 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1698 like this before...
1708 like this before...
1699
1709
1700 * IPython/genutils.py (get_home_dir): add protection against
1710 * IPython/genutils.py (get_home_dir): add protection against
1701 non-dirs in win32 registry.
1711 non-dirs in win32 registry.
1702
1712
1703 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1713 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1704 bug where dict was mutated while iterating (pysh crash).
1714 bug where dict was mutated while iterating (pysh crash).
1705
1715
1706 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1716 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1707
1717
1708 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1718 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1709 spurious newlines added by this routine. After a report by
1719 spurious newlines added by this routine. After a report by
1710 F. Mantegazza.
1720 F. Mantegazza.
1711
1721
1712 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1722 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1713
1723
1714 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1724 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1715 calls. These were a leftover from the GTK 1.x days, and can cause
1725 calls. These were a leftover from the GTK 1.x days, and can cause
1716 problems in certain cases (after a report by John Hunter).
1726 problems in certain cases (after a report by John Hunter).
1717
1727
1718 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1728 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1719 os.getcwd() fails at init time. Thanks to patch from David Remahl
1729 os.getcwd() fails at init time. Thanks to patch from David Remahl
1720 <chmod007-AT-mac.com>.
1730 <chmod007-AT-mac.com>.
1721 (InteractiveShell.__init__): prevent certain special magics from
1731 (InteractiveShell.__init__): prevent certain special magics from
1722 being shadowed by aliases. Closes
1732 being shadowed by aliases. Closes
1723 http://www.scipy.net/roundup/ipython/issue41.
1733 http://www.scipy.net/roundup/ipython/issue41.
1724
1734
1725 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1735 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1726
1736
1727 * IPython/iplib.py (InteractiveShell.complete): Added new
1737 * IPython/iplib.py (InteractiveShell.complete): Added new
1728 top-level completion method to expose the completion mechanism
1738 top-level completion method to expose the completion mechanism
1729 beyond readline-based environments.
1739 beyond readline-based environments.
1730
1740
1731 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1741 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1732
1742
1733 * tools/ipsvnc (svnversion): fix svnversion capture.
1743 * tools/ipsvnc (svnversion): fix svnversion capture.
1734
1744
1735 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1745 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1736 attribute to self, which was missing. Before, it was set by a
1746 attribute to self, which was missing. Before, it was set by a
1737 routine which in certain cases wasn't being called, so the
1747 routine which in certain cases wasn't being called, so the
1738 instance could end up missing the attribute. This caused a crash.
1748 instance could end up missing the attribute. This caused a crash.
1739 Closes http://www.scipy.net/roundup/ipython/issue40.
1749 Closes http://www.scipy.net/roundup/ipython/issue40.
1740
1750
1741 2005-08-16 Fernando Perez <fperez@colorado.edu>
1751 2005-08-16 Fernando Perez <fperez@colorado.edu>
1742
1752
1743 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1753 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1744 contains non-string attribute. Closes
1754 contains non-string attribute. Closes
1745 http://www.scipy.net/roundup/ipython/issue38.
1755 http://www.scipy.net/roundup/ipython/issue38.
1746
1756
1747 2005-08-14 Fernando Perez <fperez@colorado.edu>
1757 2005-08-14 Fernando Perez <fperez@colorado.edu>
1748
1758
1749 * tools/ipsvnc: Minor improvements, to add changeset info.
1759 * tools/ipsvnc: Minor improvements, to add changeset info.
1750
1760
1751 2005-08-12 Fernando Perez <fperez@colorado.edu>
1761 2005-08-12 Fernando Perez <fperez@colorado.edu>
1752
1762
1753 * IPython/iplib.py (runsource): remove self.code_to_run_src
1763 * IPython/iplib.py (runsource): remove self.code_to_run_src
1754 attribute. I realized this is nothing more than
1764 attribute. I realized this is nothing more than
1755 '\n'.join(self.buffer), and having the same data in two different
1765 '\n'.join(self.buffer), and having the same data in two different
1756 places is just asking for synchronization bugs. This may impact
1766 places is just asking for synchronization bugs. This may impact
1757 people who have custom exception handlers, so I need to warn
1767 people who have custom exception handlers, so I need to warn
1758 ipython-dev about it (F. Mantegazza may use them).
1768 ipython-dev about it (F. Mantegazza may use them).
1759
1769
1760 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1770 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1761
1771
1762 * IPython/genutils.py: fix 2.2 compatibility (generators)
1772 * IPython/genutils.py: fix 2.2 compatibility (generators)
1763
1773
1764 2005-07-18 Fernando Perez <fperez@colorado.edu>
1774 2005-07-18 Fernando Perez <fperez@colorado.edu>
1765
1775
1766 * IPython/genutils.py (get_home_dir): fix to help users with
1776 * IPython/genutils.py (get_home_dir): fix to help users with
1767 invalid $HOME under win32.
1777 invalid $HOME under win32.
1768
1778
1769 2005-07-17 Fernando Perez <fperez@colorado.edu>
1779 2005-07-17 Fernando Perez <fperez@colorado.edu>
1770
1780
1771 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1781 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1772 some old hacks and clean up a bit other routines; code should be
1782 some old hacks and clean up a bit other routines; code should be
1773 simpler and a bit faster.
1783 simpler and a bit faster.
1774
1784
1775 * IPython/iplib.py (interact): removed some last-resort attempts
1785 * IPython/iplib.py (interact): removed some last-resort attempts
1776 to survive broken stdout/stderr. That code was only making it
1786 to survive broken stdout/stderr. That code was only making it
1777 harder to abstract out the i/o (necessary for gui integration),
1787 harder to abstract out the i/o (necessary for gui integration),
1778 and the crashes it could prevent were extremely rare in practice
1788 and the crashes it could prevent were extremely rare in practice
1779 (besides being fully user-induced in a pretty violent manner).
1789 (besides being fully user-induced in a pretty violent manner).
1780
1790
1781 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1791 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1782 Nothing major yet, but the code is simpler to read; this should
1792 Nothing major yet, but the code is simpler to read; this should
1783 make it easier to do more serious modifications in the future.
1793 make it easier to do more serious modifications in the future.
1784
1794
1785 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1795 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1786 which broke in .15 (thanks to a report by Ville).
1796 which broke in .15 (thanks to a report by Ville).
1787
1797
1788 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1798 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1789 be quite correct, I know next to nothing about unicode). This
1799 be quite correct, I know next to nothing about unicode). This
1790 will allow unicode strings to be used in prompts, amongst other
1800 will allow unicode strings to be used in prompts, amongst other
1791 cases. It also will prevent ipython from crashing when unicode
1801 cases. It also will prevent ipython from crashing when unicode
1792 shows up unexpectedly in many places. If ascii encoding fails, we
1802 shows up unexpectedly in many places. If ascii encoding fails, we
1793 assume utf_8. Currently the encoding is not a user-visible
1803 assume utf_8. Currently the encoding is not a user-visible
1794 setting, though it could be made so if there is demand for it.
1804 setting, though it could be made so if there is demand for it.
1795
1805
1796 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1806 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1797
1807
1798 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1808 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1799
1809
1800 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1810 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1801
1811
1802 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1812 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1803 code can work transparently for 2.2/2.3.
1813 code can work transparently for 2.2/2.3.
1804
1814
1805 2005-07-16 Fernando Perez <fperez@colorado.edu>
1815 2005-07-16 Fernando Perez <fperez@colorado.edu>
1806
1816
1807 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1817 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1808 out of the color scheme table used for coloring exception
1818 out of the color scheme table used for coloring exception
1809 tracebacks. This allows user code to add new schemes at runtime.
1819 tracebacks. This allows user code to add new schemes at runtime.
1810 This is a minimally modified version of the patch at
1820 This is a minimally modified version of the patch at
1811 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1821 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1812 for the contribution.
1822 for the contribution.
1813
1823
1814 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1824 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1815 slightly modified version of the patch in
1825 slightly modified version of the patch in
1816 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1826 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1817 to remove the previous try/except solution (which was costlier).
1827 to remove the previous try/except solution (which was costlier).
1818 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1828 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1819
1829
1820 2005-06-08 Fernando Perez <fperez@colorado.edu>
1830 2005-06-08 Fernando Perez <fperez@colorado.edu>
1821
1831
1822 * IPython/iplib.py (write/write_err): Add methods to abstract all
1832 * IPython/iplib.py (write/write_err): Add methods to abstract all
1823 I/O a bit more.
1833 I/O a bit more.
1824
1834
1825 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1835 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1826 warning, reported by Aric Hagberg, fix by JD Hunter.
1836 warning, reported by Aric Hagberg, fix by JD Hunter.
1827
1837
1828 2005-06-02 *** Released version 0.6.15
1838 2005-06-02 *** Released version 0.6.15
1829
1839
1830 2005-06-01 Fernando Perez <fperez@colorado.edu>
1840 2005-06-01 Fernando Perez <fperez@colorado.edu>
1831
1841
1832 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1842 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1833 tab-completion of filenames within open-quoted strings. Note that
1843 tab-completion of filenames within open-quoted strings. Note that
1834 this requires that in ~/.ipython/ipythonrc, users change the
1844 this requires that in ~/.ipython/ipythonrc, users change the
1835 readline delimiters configuration to read:
1845 readline delimiters configuration to read:
1836
1846
1837 readline_remove_delims -/~
1847 readline_remove_delims -/~
1838
1848
1839
1849
1840 2005-05-31 *** Released version 0.6.14
1850 2005-05-31 *** Released version 0.6.14
1841
1851
1842 2005-05-29 Fernando Perez <fperez@colorado.edu>
1852 2005-05-29 Fernando Perez <fperez@colorado.edu>
1843
1853
1844 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1854 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1845 with files not on the filesystem. Reported by Eliyahu Sandler
1855 with files not on the filesystem. Reported by Eliyahu Sandler
1846 <eli@gondolin.net>
1856 <eli@gondolin.net>
1847
1857
1848 2005-05-22 Fernando Perez <fperez@colorado.edu>
1858 2005-05-22 Fernando Perez <fperez@colorado.edu>
1849
1859
1850 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1860 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1851 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1861 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1852
1862
1853 2005-05-19 Fernando Perez <fperez@colorado.edu>
1863 2005-05-19 Fernando Perez <fperez@colorado.edu>
1854
1864
1855 * IPython/iplib.py (safe_execfile): close a file which could be
1865 * IPython/iplib.py (safe_execfile): close a file which could be
1856 left open (causing problems in win32, which locks open files).
1866 left open (causing problems in win32, which locks open files).
1857 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1867 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1858
1868
1859 2005-05-18 Fernando Perez <fperez@colorado.edu>
1869 2005-05-18 Fernando Perez <fperez@colorado.edu>
1860
1870
1861 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1871 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1862 keyword arguments correctly to safe_execfile().
1872 keyword arguments correctly to safe_execfile().
1863
1873
1864 2005-05-13 Fernando Perez <fperez@colorado.edu>
1874 2005-05-13 Fernando Perez <fperez@colorado.edu>
1865
1875
1866 * ipython.1: Added info about Qt to manpage, and threads warning
1876 * ipython.1: Added info about Qt to manpage, and threads warning
1867 to usage page (invoked with --help).
1877 to usage page (invoked with --help).
1868
1878
1869 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1879 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1870 new matcher (it goes at the end of the priority list) to do
1880 new matcher (it goes at the end of the priority list) to do
1871 tab-completion on named function arguments. Submitted by George
1881 tab-completion on named function arguments. Submitted by George
1872 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1882 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1873 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1883 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1874 for more details.
1884 for more details.
1875
1885
1876 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1886 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1877 SystemExit exceptions in the script being run. Thanks to a report
1887 SystemExit exceptions in the script being run. Thanks to a report
1878 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1888 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1879 producing very annoying behavior when running unit tests.
1889 producing very annoying behavior when running unit tests.
1880
1890
1881 2005-05-12 Fernando Perez <fperez@colorado.edu>
1891 2005-05-12 Fernando Perez <fperez@colorado.edu>
1882
1892
1883 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1893 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1884 which I'd broken (again) due to a changed regexp. In the process,
1894 which I'd broken (again) due to a changed regexp. In the process,
1885 added ';' as an escape to auto-quote the whole line without
1895 added ';' as an escape to auto-quote the whole line without
1886 splitting its arguments. Thanks to a report by Jerry McRae
1896 splitting its arguments. Thanks to a report by Jerry McRae
1887 <qrs0xyc02-AT-sneakemail.com>.
1897 <qrs0xyc02-AT-sneakemail.com>.
1888
1898
1889 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1899 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1890 possible crashes caused by a TokenError. Reported by Ed Schofield
1900 possible crashes caused by a TokenError. Reported by Ed Schofield
1891 <schofield-AT-ftw.at>.
1901 <schofield-AT-ftw.at>.
1892
1902
1893 2005-05-06 Fernando Perez <fperez@colorado.edu>
1903 2005-05-06 Fernando Perez <fperez@colorado.edu>
1894
1904
1895 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1905 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1896
1906
1897 2005-04-29 Fernando Perez <fperez@colorado.edu>
1907 2005-04-29 Fernando Perez <fperez@colorado.edu>
1898
1908
1899 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1909 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1900 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1910 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1901 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1911 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1902 which provides support for Qt interactive usage (similar to the
1912 which provides support for Qt interactive usage (similar to the
1903 existing one for WX and GTK). This had been often requested.
1913 existing one for WX and GTK). This had been often requested.
1904
1914
1905 2005-04-14 *** Released version 0.6.13
1915 2005-04-14 *** Released version 0.6.13
1906
1916
1907 2005-04-08 Fernando Perez <fperez@colorado.edu>
1917 2005-04-08 Fernando Perez <fperez@colorado.edu>
1908
1918
1909 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1919 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1910 from _ofind, which gets called on almost every input line. Now,
1920 from _ofind, which gets called on almost every input line. Now,
1911 we only try to get docstrings if they are actually going to be
1921 we only try to get docstrings if they are actually going to be
1912 used (the overhead of fetching unnecessary docstrings can be
1922 used (the overhead of fetching unnecessary docstrings can be
1913 noticeable for certain objects, such as Pyro proxies).
1923 noticeable for certain objects, such as Pyro proxies).
1914
1924
1915 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1925 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1916 for completers. For some reason I had been passing them the state
1926 for completers. For some reason I had been passing them the state
1917 variable, which completers never actually need, and was in
1927 variable, which completers never actually need, and was in
1918 conflict with the rlcompleter API. Custom completers ONLY need to
1928 conflict with the rlcompleter API. Custom completers ONLY need to
1919 take the text parameter.
1929 take the text parameter.
1920
1930
1921 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1931 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1922 work correctly in pysh. I've also moved all the logic which used
1932 work correctly in pysh. I've also moved all the logic which used
1923 to be in pysh.py here, which will prevent problems with future
1933 to be in pysh.py here, which will prevent problems with future
1924 upgrades. However, this time I must warn users to update their
1934 upgrades. However, this time I must warn users to update their
1925 pysh profile to include the line
1935 pysh profile to include the line
1926
1936
1927 import_all IPython.Extensions.InterpreterExec
1937 import_all IPython.Extensions.InterpreterExec
1928
1938
1929 because otherwise things won't work for them. They MUST also
1939 because otherwise things won't work for them. They MUST also
1930 delete pysh.py and the line
1940 delete pysh.py and the line
1931
1941
1932 execfile pysh.py
1942 execfile pysh.py
1933
1943
1934 from their ipythonrc-pysh.
1944 from their ipythonrc-pysh.
1935
1945
1936 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1946 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1937 robust in the face of objects whose dir() returns non-strings
1947 robust in the face of objects whose dir() returns non-strings
1938 (which it shouldn't, but some broken libs like ITK do). Thanks to
1948 (which it shouldn't, but some broken libs like ITK do). Thanks to
1939 a patch by John Hunter (implemented differently, though). Also
1949 a patch by John Hunter (implemented differently, though). Also
1940 minor improvements by using .extend instead of + on lists.
1950 minor improvements by using .extend instead of + on lists.
1941
1951
1942 * pysh.py:
1952 * pysh.py:
1943
1953
1944 2005-04-06 Fernando Perez <fperez@colorado.edu>
1954 2005-04-06 Fernando Perez <fperez@colorado.edu>
1945
1955
1946 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1956 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1947 by default, so that all users benefit from it. Those who don't
1957 by default, so that all users benefit from it. Those who don't
1948 want it can still turn it off.
1958 want it can still turn it off.
1949
1959
1950 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1960 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1951 config file, I'd forgotten about this, so users were getting it
1961 config file, I'd forgotten about this, so users were getting it
1952 off by default.
1962 off by default.
1953
1963
1954 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1964 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1955 consistency. Now magics can be called in multiline statements,
1965 consistency. Now magics can be called in multiline statements,
1956 and python variables can be expanded in magic calls via $var.
1966 and python variables can be expanded in magic calls via $var.
1957 This makes the magic system behave just like aliases or !system
1967 This makes the magic system behave just like aliases or !system
1958 calls.
1968 calls.
1959
1969
1960 2005-03-28 Fernando Perez <fperez@colorado.edu>
1970 2005-03-28 Fernando Perez <fperez@colorado.edu>
1961
1971
1962 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1972 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1963 expensive string additions for building command. Add support for
1973 expensive string additions for building command. Add support for
1964 trailing ';' when autocall is used.
1974 trailing ';' when autocall is used.
1965
1975
1966 2005-03-26 Fernando Perez <fperez@colorado.edu>
1976 2005-03-26 Fernando Perez <fperez@colorado.edu>
1967
1977
1968 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1978 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1969 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1979 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1970 ipython.el robust against prompts with any number of spaces
1980 ipython.el robust against prompts with any number of spaces
1971 (including 0) after the ':' character.
1981 (including 0) after the ':' character.
1972
1982
1973 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1983 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1974 continuation prompt, which misled users to think the line was
1984 continuation prompt, which misled users to think the line was
1975 already indented. Closes debian Bug#300847, reported to me by
1985 already indented. Closes debian Bug#300847, reported to me by
1976 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1986 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1977
1987
1978 2005-03-23 Fernando Perez <fperez@colorado.edu>
1988 2005-03-23 Fernando Perez <fperez@colorado.edu>
1979
1989
1980 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1990 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1981 properly aligned if they have embedded newlines.
1991 properly aligned if they have embedded newlines.
1982
1992
1983 * IPython/iplib.py (runlines): Add a public method to expose
1993 * IPython/iplib.py (runlines): Add a public method to expose
1984 IPython's code execution machinery, so that users can run strings
1994 IPython's code execution machinery, so that users can run strings
1985 as if they had been typed at the prompt interactively.
1995 as if they had been typed at the prompt interactively.
1986 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1996 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1987 methods which can call the system shell, but with python variable
1997 methods which can call the system shell, but with python variable
1988 expansion. The three such methods are: __IPYTHON__.system,
1998 expansion. The three such methods are: __IPYTHON__.system,
1989 .getoutput and .getoutputerror. These need to be documented in a
1999 .getoutput and .getoutputerror. These need to be documented in a
1990 'public API' section (to be written) of the manual.
2000 'public API' section (to be written) of the manual.
1991
2001
1992 2005-03-20 Fernando Perez <fperez@colorado.edu>
2002 2005-03-20 Fernando Perez <fperez@colorado.edu>
1993
2003
1994 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2004 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1995 for custom exception handling. This is quite powerful, and it
2005 for custom exception handling. This is quite powerful, and it
1996 allows for user-installable exception handlers which can trap
2006 allows for user-installable exception handlers which can trap
1997 custom exceptions at runtime and treat them separately from
2007 custom exceptions at runtime and treat them separately from
1998 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2008 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1999 Mantegazza <mantegazza-AT-ill.fr>.
2009 Mantegazza <mantegazza-AT-ill.fr>.
2000 (InteractiveShell.set_custom_completer): public API function to
2010 (InteractiveShell.set_custom_completer): public API function to
2001 add new completers at runtime.
2011 add new completers at runtime.
2002
2012
2003 2005-03-19 Fernando Perez <fperez@colorado.edu>
2013 2005-03-19 Fernando Perez <fperez@colorado.edu>
2004
2014
2005 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2015 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2006 allow objects which provide their docstrings via non-standard
2016 allow objects which provide their docstrings via non-standard
2007 mechanisms (like Pyro proxies) to still be inspected by ipython's
2017 mechanisms (like Pyro proxies) to still be inspected by ipython's
2008 ? system.
2018 ? system.
2009
2019
2010 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2020 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2011 automatic capture system. I tried quite hard to make it work
2021 automatic capture system. I tried quite hard to make it work
2012 reliably, and simply failed. I tried many combinations with the
2022 reliably, and simply failed. I tried many combinations with the
2013 subprocess module, but eventually nothing worked in all needed
2023 subprocess module, but eventually nothing worked in all needed
2014 cases (not blocking stdin for the child, duplicating stdout
2024 cases (not blocking stdin for the child, duplicating stdout
2015 without blocking, etc). The new %sc/%sx still do capture to these
2025 without blocking, etc). The new %sc/%sx still do capture to these
2016 magical list/string objects which make shell use much more
2026 magical list/string objects which make shell use much more
2017 conveninent, so not all is lost.
2027 conveninent, so not all is lost.
2018
2028
2019 XXX - FIX MANUAL for the change above!
2029 XXX - FIX MANUAL for the change above!
2020
2030
2021 (runsource): I copied code.py's runsource() into ipython to modify
2031 (runsource): I copied code.py's runsource() into ipython to modify
2022 it a bit. Now the code object and source to be executed are
2032 it a bit. Now the code object and source to be executed are
2023 stored in ipython. This makes this info accessible to third-party
2033 stored in ipython. This makes this info accessible to third-party
2024 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2034 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2025 Mantegazza <mantegazza-AT-ill.fr>.
2035 Mantegazza <mantegazza-AT-ill.fr>.
2026
2036
2027 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2037 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2028 history-search via readline (like C-p/C-n). I'd wanted this for a
2038 history-search via readline (like C-p/C-n). I'd wanted this for a
2029 long time, but only recently found out how to do it. For users
2039 long time, but only recently found out how to do it. For users
2030 who already have their ipythonrc files made and want this, just
2040 who already have their ipythonrc files made and want this, just
2031 add:
2041 add:
2032
2042
2033 readline_parse_and_bind "\e[A": history-search-backward
2043 readline_parse_and_bind "\e[A": history-search-backward
2034 readline_parse_and_bind "\e[B": history-search-forward
2044 readline_parse_and_bind "\e[B": history-search-forward
2035
2045
2036 2005-03-18 Fernando Perez <fperez@colorado.edu>
2046 2005-03-18 Fernando Perez <fperez@colorado.edu>
2037
2047
2038 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2048 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2039 LSString and SList classes which allow transparent conversions
2049 LSString and SList classes which allow transparent conversions
2040 between list mode and whitespace-separated string.
2050 between list mode and whitespace-separated string.
2041 (magic_r): Fix recursion problem in %r.
2051 (magic_r): Fix recursion problem in %r.
2042
2052
2043 * IPython/genutils.py (LSString): New class to be used for
2053 * IPython/genutils.py (LSString): New class to be used for
2044 automatic storage of the results of all alias/system calls in _o
2054 automatic storage of the results of all alias/system calls in _o
2045 and _e (stdout/err). These provide a .l/.list attribute which
2055 and _e (stdout/err). These provide a .l/.list attribute which
2046 does automatic splitting on newlines. This means that for most
2056 does automatic splitting on newlines. This means that for most
2047 uses, you'll never need to do capturing of output with %sc/%sx
2057 uses, you'll never need to do capturing of output with %sc/%sx
2048 anymore, since ipython keeps this always done for you. Note that
2058 anymore, since ipython keeps this always done for you. Note that
2049 only the LAST results are stored, the _o/e variables are
2059 only the LAST results are stored, the _o/e variables are
2050 overwritten on each call. If you need to save their contents
2060 overwritten on each call. If you need to save their contents
2051 further, simply bind them to any other name.
2061 further, simply bind them to any other name.
2052
2062
2053 2005-03-17 Fernando Perez <fperez@colorado.edu>
2063 2005-03-17 Fernando Perez <fperez@colorado.edu>
2054
2064
2055 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2065 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2056 prompt namespace handling.
2066 prompt namespace handling.
2057
2067
2058 2005-03-16 Fernando Perez <fperez@colorado.edu>
2068 2005-03-16 Fernando Perez <fperez@colorado.edu>
2059
2069
2060 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2070 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2061 classic prompts to be '>>> ' (final space was missing, and it
2071 classic prompts to be '>>> ' (final space was missing, and it
2062 trips the emacs python mode).
2072 trips the emacs python mode).
2063 (BasePrompt.__str__): Added safe support for dynamic prompt
2073 (BasePrompt.__str__): Added safe support for dynamic prompt
2064 strings. Now you can set your prompt string to be '$x', and the
2074 strings. Now you can set your prompt string to be '$x', and the
2065 value of x will be printed from your interactive namespace. The
2075 value of x will be printed from your interactive namespace. The
2066 interpolation syntax includes the full Itpl support, so
2076 interpolation syntax includes the full Itpl support, so
2067 ${foo()+x+bar()} is a valid prompt string now, and the function
2077 ${foo()+x+bar()} is a valid prompt string now, and the function
2068 calls will be made at runtime.
2078 calls will be made at runtime.
2069
2079
2070 2005-03-15 Fernando Perez <fperez@colorado.edu>
2080 2005-03-15 Fernando Perez <fperez@colorado.edu>
2071
2081
2072 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2082 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2073 avoid name clashes in pylab. %hist still works, it just forwards
2083 avoid name clashes in pylab. %hist still works, it just forwards
2074 the call to %history.
2084 the call to %history.
2075
2085
2076 2005-03-02 *** Released version 0.6.12
2086 2005-03-02 *** Released version 0.6.12
2077
2087
2078 2005-03-02 Fernando Perez <fperez@colorado.edu>
2088 2005-03-02 Fernando Perez <fperez@colorado.edu>
2079
2089
2080 * IPython/iplib.py (handle_magic): log magic calls properly as
2090 * IPython/iplib.py (handle_magic): log magic calls properly as
2081 ipmagic() function calls.
2091 ipmagic() function calls.
2082
2092
2083 * IPython/Magic.py (magic_time): Improved %time to support
2093 * IPython/Magic.py (magic_time): Improved %time to support
2084 statements and provide wall-clock as well as CPU time.
2094 statements and provide wall-clock as well as CPU time.
2085
2095
2086 2005-02-27 Fernando Perez <fperez@colorado.edu>
2096 2005-02-27 Fernando Perez <fperez@colorado.edu>
2087
2097
2088 * IPython/hooks.py: New hooks module, to expose user-modifiable
2098 * IPython/hooks.py: New hooks module, to expose user-modifiable
2089 IPython functionality in a clean manner. For now only the editor
2099 IPython functionality in a clean manner. For now only the editor
2090 hook is actually written, and other thigns which I intend to turn
2100 hook is actually written, and other thigns which I intend to turn
2091 into proper hooks aren't yet there. The display and prefilter
2101 into proper hooks aren't yet there. The display and prefilter
2092 stuff, for example, should be hooks. But at least now the
2102 stuff, for example, should be hooks. But at least now the
2093 framework is in place, and the rest can be moved here with more
2103 framework is in place, and the rest can be moved here with more
2094 time later. IPython had had a .hooks variable for a long time for
2104 time later. IPython had had a .hooks variable for a long time for
2095 this purpose, but I'd never actually used it for anything.
2105 this purpose, but I'd never actually used it for anything.
2096
2106
2097 2005-02-26 Fernando Perez <fperez@colorado.edu>
2107 2005-02-26 Fernando Perez <fperez@colorado.edu>
2098
2108
2099 * IPython/ipmaker.py (make_IPython): make the default ipython
2109 * IPython/ipmaker.py (make_IPython): make the default ipython
2100 directory be called _ipython under win32, to follow more the
2110 directory be called _ipython under win32, to follow more the
2101 naming peculiarities of that platform (where buggy software like
2111 naming peculiarities of that platform (where buggy software like
2102 Visual Sourcesafe breaks with .named directories). Reported by
2112 Visual Sourcesafe breaks with .named directories). Reported by
2103 Ville Vainio.
2113 Ville Vainio.
2104
2114
2105 2005-02-23 Fernando Perez <fperez@colorado.edu>
2115 2005-02-23 Fernando Perez <fperez@colorado.edu>
2106
2116
2107 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2117 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2108 auto_aliases for win32 which were causing problems. Users can
2118 auto_aliases for win32 which were causing problems. Users can
2109 define the ones they personally like.
2119 define the ones they personally like.
2110
2120
2111 2005-02-21 Fernando Perez <fperez@colorado.edu>
2121 2005-02-21 Fernando Perez <fperez@colorado.edu>
2112
2122
2113 * IPython/Magic.py (magic_time): new magic to time execution of
2123 * IPython/Magic.py (magic_time): new magic to time execution of
2114 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2124 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2115
2125
2116 2005-02-19 Fernando Perez <fperez@colorado.edu>
2126 2005-02-19 Fernando Perez <fperez@colorado.edu>
2117
2127
2118 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2128 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2119 into keys (for prompts, for example).
2129 into keys (for prompts, for example).
2120
2130
2121 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2131 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2122 prompts in case users want them. This introduces a small behavior
2132 prompts in case users want them. This introduces a small behavior
2123 change: ipython does not automatically add a space to all prompts
2133 change: ipython does not automatically add a space to all prompts
2124 anymore. To get the old prompts with a space, users should add it
2134 anymore. To get the old prompts with a space, users should add it
2125 manually to their ipythonrc file, so for example prompt_in1 should
2135 manually to their ipythonrc file, so for example prompt_in1 should
2126 now read 'In [\#]: ' instead of 'In [\#]:'.
2136 now read 'In [\#]: ' instead of 'In [\#]:'.
2127 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2137 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2128 file) to control left-padding of secondary prompts.
2138 file) to control left-padding of secondary prompts.
2129
2139
2130 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2140 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2131 the profiler can't be imported. Fix for Debian, which removed
2141 the profiler can't be imported. Fix for Debian, which removed
2132 profile.py because of License issues. I applied a slightly
2142 profile.py because of License issues. I applied a slightly
2133 modified version of the original Debian patch at
2143 modified version of the original Debian patch at
2134 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2144 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2135
2145
2136 2005-02-17 Fernando Perez <fperez@colorado.edu>
2146 2005-02-17 Fernando Perez <fperez@colorado.edu>
2137
2147
2138 * IPython/genutils.py (native_line_ends): Fix bug which would
2148 * IPython/genutils.py (native_line_ends): Fix bug which would
2139 cause improper line-ends under win32 b/c I was not opening files
2149 cause improper line-ends under win32 b/c I was not opening files
2140 in binary mode. Bug report and fix thanks to Ville.
2150 in binary mode. Bug report and fix thanks to Ville.
2141
2151
2142 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2152 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2143 trying to catch spurious foo[1] autocalls. My fix actually broke
2153 trying to catch spurious foo[1] autocalls. My fix actually broke
2144 ',/' autoquote/call with explicit escape (bad regexp).
2154 ',/' autoquote/call with explicit escape (bad regexp).
2145
2155
2146 2005-02-15 *** Released version 0.6.11
2156 2005-02-15 *** Released version 0.6.11
2147
2157
2148 2005-02-14 Fernando Perez <fperez@colorado.edu>
2158 2005-02-14 Fernando Perez <fperez@colorado.edu>
2149
2159
2150 * IPython/background_jobs.py: New background job management
2160 * IPython/background_jobs.py: New background job management
2151 subsystem. This is implemented via a new set of classes, and
2161 subsystem. This is implemented via a new set of classes, and
2152 IPython now provides a builtin 'jobs' object for background job
2162 IPython now provides a builtin 'jobs' object for background job
2153 execution. A convenience %bg magic serves as a lightweight
2163 execution. A convenience %bg magic serves as a lightweight
2154 frontend for starting the more common type of calls. This was
2164 frontend for starting the more common type of calls. This was
2155 inspired by discussions with B. Granger and the BackgroundCommand
2165 inspired by discussions with B. Granger and the BackgroundCommand
2156 class described in the book Python Scripting for Computational
2166 class described in the book Python Scripting for Computational
2157 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2167 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2158 (although ultimately no code from this text was used, as IPython's
2168 (although ultimately no code from this text was used, as IPython's
2159 system is a separate implementation).
2169 system is a separate implementation).
2160
2170
2161 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2171 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2162 to control the completion of single/double underscore names
2172 to control the completion of single/double underscore names
2163 separately. As documented in the example ipytonrc file, the
2173 separately. As documented in the example ipytonrc file, the
2164 readline_omit__names variable can now be set to 2, to omit even
2174 readline_omit__names variable can now be set to 2, to omit even
2165 single underscore names. Thanks to a patch by Brian Wong
2175 single underscore names. Thanks to a patch by Brian Wong
2166 <BrianWong-AT-AirgoNetworks.Com>.
2176 <BrianWong-AT-AirgoNetworks.Com>.
2167 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2177 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2168 be autocalled as foo([1]) if foo were callable. A problem for
2178 be autocalled as foo([1]) if foo were callable. A problem for
2169 things which are both callable and implement __getitem__.
2179 things which are both callable and implement __getitem__.
2170 (init_readline): Fix autoindentation for win32. Thanks to a patch
2180 (init_readline): Fix autoindentation for win32. Thanks to a patch
2171 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2181 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2172
2182
2173 2005-02-12 Fernando Perez <fperez@colorado.edu>
2183 2005-02-12 Fernando Perez <fperez@colorado.edu>
2174
2184
2175 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2185 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2176 which I had written long ago to sort out user error messages which
2186 which I had written long ago to sort out user error messages which
2177 may occur during startup. This seemed like a good idea initially,
2187 may occur during startup. This seemed like a good idea initially,
2178 but it has proven a disaster in retrospect. I don't want to
2188 but it has proven a disaster in retrospect. I don't want to
2179 change much code for now, so my fix is to set the internal 'debug'
2189 change much code for now, so my fix is to set the internal 'debug'
2180 flag to true everywhere, whose only job was precisely to control
2190 flag to true everywhere, whose only job was precisely to control
2181 this subsystem. This closes issue 28 (as well as avoiding all
2191 this subsystem. This closes issue 28 (as well as avoiding all
2182 sorts of strange hangups which occur from time to time).
2192 sorts of strange hangups which occur from time to time).
2183
2193
2184 2005-02-07 Fernando Perez <fperez@colorado.edu>
2194 2005-02-07 Fernando Perez <fperez@colorado.edu>
2185
2195
2186 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2196 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2187 previous call produced a syntax error.
2197 previous call produced a syntax error.
2188
2198
2189 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2199 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2190 classes without constructor.
2200 classes without constructor.
2191
2201
2192 2005-02-06 Fernando Perez <fperez@colorado.edu>
2202 2005-02-06 Fernando Perez <fperez@colorado.edu>
2193
2203
2194 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2204 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2195 completions with the results of each matcher, so we return results
2205 completions with the results of each matcher, so we return results
2196 to the user from all namespaces. This breaks with ipython
2206 to the user from all namespaces. This breaks with ipython
2197 tradition, but I think it's a nicer behavior. Now you get all
2207 tradition, but I think it's a nicer behavior. Now you get all
2198 possible completions listed, from all possible namespaces (python,
2208 possible completions listed, from all possible namespaces (python,
2199 filesystem, magics...) After a request by John Hunter
2209 filesystem, magics...) After a request by John Hunter
2200 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2210 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2201
2211
2202 2005-02-05 Fernando Perez <fperez@colorado.edu>
2212 2005-02-05 Fernando Perez <fperez@colorado.edu>
2203
2213
2204 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2214 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2205 the call had quote characters in it (the quotes were stripped).
2215 the call had quote characters in it (the quotes were stripped).
2206
2216
2207 2005-01-31 Fernando Perez <fperez@colorado.edu>
2217 2005-01-31 Fernando Perez <fperez@colorado.edu>
2208
2218
2209 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2219 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2210 Itpl.itpl() to make the code more robust against psyco
2220 Itpl.itpl() to make the code more robust against psyco
2211 optimizations.
2221 optimizations.
2212
2222
2213 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2223 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2214 of causing an exception. Quicker, cleaner.
2224 of causing an exception. Quicker, cleaner.
2215
2225
2216 2005-01-28 Fernando Perez <fperez@colorado.edu>
2226 2005-01-28 Fernando Perez <fperez@colorado.edu>
2217
2227
2218 * scripts/ipython_win_post_install.py (install): hardcode
2228 * scripts/ipython_win_post_install.py (install): hardcode
2219 sys.prefix+'python.exe' as the executable path. It turns out that
2229 sys.prefix+'python.exe' as the executable path. It turns out that
2220 during the post-installation run, sys.executable resolves to the
2230 during the post-installation run, sys.executable resolves to the
2221 name of the binary installer! I should report this as a distutils
2231 name of the binary installer! I should report this as a distutils
2222 bug, I think. I updated the .10 release with this tiny fix, to
2232 bug, I think. I updated the .10 release with this tiny fix, to
2223 avoid annoying the lists further.
2233 avoid annoying the lists further.
2224
2234
2225 2005-01-27 *** Released version 0.6.10
2235 2005-01-27 *** Released version 0.6.10
2226
2236
2227 2005-01-27 Fernando Perez <fperez@colorado.edu>
2237 2005-01-27 Fernando Perez <fperez@colorado.edu>
2228
2238
2229 * IPython/numutils.py (norm): Added 'inf' as optional name for
2239 * IPython/numutils.py (norm): Added 'inf' as optional name for
2230 L-infinity norm, included references to mathworld.com for vector
2240 L-infinity norm, included references to mathworld.com for vector
2231 norm definitions.
2241 norm definitions.
2232 (amin/amax): added amin/amax for array min/max. Similar to what
2242 (amin/amax): added amin/amax for array min/max. Similar to what
2233 pylab ships with after the recent reorganization of names.
2243 pylab ships with after the recent reorganization of names.
2234 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2244 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2235
2245
2236 * ipython.el: committed Alex's recent fixes and improvements.
2246 * ipython.el: committed Alex's recent fixes and improvements.
2237 Tested with python-mode from CVS, and it looks excellent. Since
2247 Tested with python-mode from CVS, and it looks excellent. Since
2238 python-mode hasn't released anything in a while, I'm temporarily
2248 python-mode hasn't released anything in a while, I'm temporarily
2239 putting a copy of today's CVS (v 4.70) of python-mode in:
2249 putting a copy of today's CVS (v 4.70) of python-mode in:
2240 http://ipython.scipy.org/tmp/python-mode.el
2250 http://ipython.scipy.org/tmp/python-mode.el
2241
2251
2242 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2252 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2243 sys.executable for the executable name, instead of assuming it's
2253 sys.executable for the executable name, instead of assuming it's
2244 called 'python.exe' (the post-installer would have produced broken
2254 called 'python.exe' (the post-installer would have produced broken
2245 setups on systems with a differently named python binary).
2255 setups on systems with a differently named python binary).
2246
2256
2247 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2257 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2248 references to os.linesep, to make the code more
2258 references to os.linesep, to make the code more
2249 platform-independent. This is also part of the win32 coloring
2259 platform-independent. This is also part of the win32 coloring
2250 fixes.
2260 fixes.
2251
2261
2252 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2262 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2253 lines, which actually cause coloring bugs because the length of
2263 lines, which actually cause coloring bugs because the length of
2254 the line is very difficult to correctly compute with embedded
2264 the line is very difficult to correctly compute with embedded
2255 escapes. This was the source of all the coloring problems under
2265 escapes. This was the source of all the coloring problems under
2256 Win32. I think that _finally_, Win32 users have a properly
2266 Win32. I think that _finally_, Win32 users have a properly
2257 working ipython in all respects. This would never have happened
2267 working ipython in all respects. This would never have happened
2258 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2268 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2259
2269
2260 2005-01-26 *** Released version 0.6.9
2270 2005-01-26 *** Released version 0.6.9
2261
2271
2262 2005-01-25 Fernando Perez <fperez@colorado.edu>
2272 2005-01-25 Fernando Perez <fperez@colorado.edu>
2263
2273
2264 * setup.py: finally, we have a true Windows installer, thanks to
2274 * setup.py: finally, we have a true Windows installer, thanks to
2265 the excellent work of Viktor Ransmayr
2275 the excellent work of Viktor Ransmayr
2266 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2276 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2267 Windows users. The setup routine is quite a bit cleaner thanks to
2277 Windows users. The setup routine is quite a bit cleaner thanks to
2268 this, and the post-install script uses the proper functions to
2278 this, and the post-install script uses the proper functions to
2269 allow a clean de-installation using the standard Windows Control
2279 allow a clean de-installation using the standard Windows Control
2270 Panel.
2280 Panel.
2271
2281
2272 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2282 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2273 environment variable under all OSes (including win32) if
2283 environment variable under all OSes (including win32) if
2274 available. This will give consistency to win32 users who have set
2284 available. This will give consistency to win32 users who have set
2275 this variable for any reason. If os.environ['HOME'] fails, the
2285 this variable for any reason. If os.environ['HOME'] fails, the
2276 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2286 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2277
2287
2278 2005-01-24 Fernando Perez <fperez@colorado.edu>
2288 2005-01-24 Fernando Perez <fperez@colorado.edu>
2279
2289
2280 * IPython/numutils.py (empty_like): add empty_like(), similar to
2290 * IPython/numutils.py (empty_like): add empty_like(), similar to
2281 zeros_like() but taking advantage of the new empty() Numeric routine.
2291 zeros_like() but taking advantage of the new empty() Numeric routine.
2282
2292
2283 2005-01-23 *** Released version 0.6.8
2293 2005-01-23 *** Released version 0.6.8
2284
2294
2285 2005-01-22 Fernando Perez <fperez@colorado.edu>
2295 2005-01-22 Fernando Perez <fperez@colorado.edu>
2286
2296
2287 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2297 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2288 automatic show() calls. After discussing things with JDH, it
2298 automatic show() calls. After discussing things with JDH, it
2289 turns out there are too many corner cases where this can go wrong.
2299 turns out there are too many corner cases where this can go wrong.
2290 It's best not to try to be 'too smart', and simply have ipython
2300 It's best not to try to be 'too smart', and simply have ipython
2291 reproduce as much as possible the default behavior of a normal
2301 reproduce as much as possible the default behavior of a normal
2292 python shell.
2302 python shell.
2293
2303
2294 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2304 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2295 line-splitting regexp and _prefilter() to avoid calling getattr()
2305 line-splitting regexp and _prefilter() to avoid calling getattr()
2296 on assignments. This closes
2306 on assignments. This closes
2297 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2307 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2298 readline uses getattr(), so a simple <TAB> keypress is still
2308 readline uses getattr(), so a simple <TAB> keypress is still
2299 enough to trigger getattr() calls on an object.
2309 enough to trigger getattr() calls on an object.
2300
2310
2301 2005-01-21 Fernando Perez <fperez@colorado.edu>
2311 2005-01-21 Fernando Perez <fperez@colorado.edu>
2302
2312
2303 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2313 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2304 docstring under pylab so it doesn't mask the original.
2314 docstring under pylab so it doesn't mask the original.
2305
2315
2306 2005-01-21 *** Released version 0.6.7
2316 2005-01-21 *** Released version 0.6.7
2307
2317
2308 2005-01-21 Fernando Perez <fperez@colorado.edu>
2318 2005-01-21 Fernando Perez <fperez@colorado.edu>
2309
2319
2310 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2320 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2311 signal handling for win32 users in multithreaded mode.
2321 signal handling for win32 users in multithreaded mode.
2312
2322
2313 2005-01-17 Fernando Perez <fperez@colorado.edu>
2323 2005-01-17 Fernando Perez <fperez@colorado.edu>
2314
2324
2315 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2325 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2316 instances with no __init__. After a crash report by Norbert Nemec
2326 instances with no __init__. After a crash report by Norbert Nemec
2317 <Norbert-AT-nemec-online.de>.
2327 <Norbert-AT-nemec-online.de>.
2318
2328
2319 2005-01-14 Fernando Perez <fperez@colorado.edu>
2329 2005-01-14 Fernando Perez <fperez@colorado.edu>
2320
2330
2321 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2331 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2322 names for verbose exceptions, when multiple dotted names and the
2332 names for verbose exceptions, when multiple dotted names and the
2323 'parent' object were present on the same line.
2333 'parent' object were present on the same line.
2324
2334
2325 2005-01-11 Fernando Perez <fperez@colorado.edu>
2335 2005-01-11 Fernando Perez <fperez@colorado.edu>
2326
2336
2327 * IPython/genutils.py (flag_calls): new utility to trap and flag
2337 * IPython/genutils.py (flag_calls): new utility to trap and flag
2328 calls in functions. I need it to clean up matplotlib support.
2338 calls in functions. I need it to clean up matplotlib support.
2329 Also removed some deprecated code in genutils.
2339 Also removed some deprecated code in genutils.
2330
2340
2331 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2341 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2332 that matplotlib scripts called with %run, which don't call show()
2342 that matplotlib scripts called with %run, which don't call show()
2333 themselves, still have their plotting windows open.
2343 themselves, still have their plotting windows open.
2334
2344
2335 2005-01-05 Fernando Perez <fperez@colorado.edu>
2345 2005-01-05 Fernando Perez <fperez@colorado.edu>
2336
2346
2337 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2347 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2338 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2348 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2339
2349
2340 2004-12-19 Fernando Perez <fperez@colorado.edu>
2350 2004-12-19 Fernando Perez <fperez@colorado.edu>
2341
2351
2342 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2352 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2343 parent_runcode, which was an eyesore. The same result can be
2353 parent_runcode, which was an eyesore. The same result can be
2344 obtained with Python's regular superclass mechanisms.
2354 obtained with Python's regular superclass mechanisms.
2345
2355
2346 2004-12-17 Fernando Perez <fperez@colorado.edu>
2356 2004-12-17 Fernando Perez <fperez@colorado.edu>
2347
2357
2348 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2358 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2349 reported by Prabhu.
2359 reported by Prabhu.
2350 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2360 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2351 sys.stderr) instead of explicitly calling sys.stderr. This helps
2361 sys.stderr) instead of explicitly calling sys.stderr. This helps
2352 maintain our I/O abstractions clean, for future GUI embeddings.
2362 maintain our I/O abstractions clean, for future GUI embeddings.
2353
2363
2354 * IPython/genutils.py (info): added new utility for sys.stderr
2364 * IPython/genutils.py (info): added new utility for sys.stderr
2355 unified info message handling (thin wrapper around warn()).
2365 unified info message handling (thin wrapper around warn()).
2356
2366
2357 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2367 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2358 composite (dotted) names on verbose exceptions.
2368 composite (dotted) names on verbose exceptions.
2359 (VerboseTB.nullrepr): harden against another kind of errors which
2369 (VerboseTB.nullrepr): harden against another kind of errors which
2360 Python's inspect module can trigger, and which were crashing
2370 Python's inspect module can trigger, and which were crashing
2361 IPython. Thanks to a report by Marco Lombardi
2371 IPython. Thanks to a report by Marco Lombardi
2362 <mlombard-AT-ma010192.hq.eso.org>.
2372 <mlombard-AT-ma010192.hq.eso.org>.
2363
2373
2364 2004-12-13 *** Released version 0.6.6
2374 2004-12-13 *** Released version 0.6.6
2365
2375
2366 2004-12-12 Fernando Perez <fperez@colorado.edu>
2376 2004-12-12 Fernando Perez <fperez@colorado.edu>
2367
2377
2368 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2378 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2369 generated by pygtk upon initialization if it was built without
2379 generated by pygtk upon initialization if it was built without
2370 threads (for matplotlib users). After a crash reported by
2380 threads (for matplotlib users). After a crash reported by
2371 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2381 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2372
2382
2373 * IPython/ipmaker.py (make_IPython): fix small bug in the
2383 * IPython/ipmaker.py (make_IPython): fix small bug in the
2374 import_some parameter for multiple imports.
2384 import_some parameter for multiple imports.
2375
2385
2376 * IPython/iplib.py (ipmagic): simplified the interface of
2386 * IPython/iplib.py (ipmagic): simplified the interface of
2377 ipmagic() to take a single string argument, just as it would be
2387 ipmagic() to take a single string argument, just as it would be
2378 typed at the IPython cmd line.
2388 typed at the IPython cmd line.
2379 (ipalias): Added new ipalias() with an interface identical to
2389 (ipalias): Added new ipalias() with an interface identical to
2380 ipmagic(). This completes exposing a pure python interface to the
2390 ipmagic(). This completes exposing a pure python interface to the
2381 alias and magic system, which can be used in loops or more complex
2391 alias and magic system, which can be used in loops or more complex
2382 code where IPython's automatic line mangling is not active.
2392 code where IPython's automatic line mangling is not active.
2383
2393
2384 * IPython/genutils.py (timing): changed interface of timing to
2394 * IPython/genutils.py (timing): changed interface of timing to
2385 simply run code once, which is the most common case. timings()
2395 simply run code once, which is the most common case. timings()
2386 remains unchanged, for the cases where you want multiple runs.
2396 remains unchanged, for the cases where you want multiple runs.
2387
2397
2388 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2398 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2389 bug where Python2.2 crashes with exec'ing code which does not end
2399 bug where Python2.2 crashes with exec'ing code which does not end
2390 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2400 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2391 before.
2401 before.
2392
2402
2393 2004-12-10 Fernando Perez <fperez@colorado.edu>
2403 2004-12-10 Fernando Perez <fperez@colorado.edu>
2394
2404
2395 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2405 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2396 -t to -T, to accomodate the new -t flag in %run (the %run and
2406 -t to -T, to accomodate the new -t flag in %run (the %run and
2397 %prun options are kind of intermixed, and it's not easy to change
2407 %prun options are kind of intermixed, and it's not easy to change
2398 this with the limitations of python's getopt).
2408 this with the limitations of python's getopt).
2399
2409
2400 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2410 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2401 the execution of scripts. It's not as fine-tuned as timeit.py,
2411 the execution of scripts. It's not as fine-tuned as timeit.py,
2402 but it works from inside ipython (and under 2.2, which lacks
2412 but it works from inside ipython (and under 2.2, which lacks
2403 timeit.py). Optionally a number of runs > 1 can be given for
2413 timeit.py). Optionally a number of runs > 1 can be given for
2404 timing very short-running code.
2414 timing very short-running code.
2405
2415
2406 * IPython/genutils.py (uniq_stable): new routine which returns a
2416 * IPython/genutils.py (uniq_stable): new routine which returns a
2407 list of unique elements in any iterable, but in stable order of
2417 list of unique elements in any iterable, but in stable order of
2408 appearance. I needed this for the ultraTB fixes, and it's a handy
2418 appearance. I needed this for the ultraTB fixes, and it's a handy
2409 utility.
2419 utility.
2410
2420
2411 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2421 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2412 dotted names in Verbose exceptions. This had been broken since
2422 dotted names in Verbose exceptions. This had been broken since
2413 the very start, now x.y will properly be printed in a Verbose
2423 the very start, now x.y will properly be printed in a Verbose
2414 traceback, instead of x being shown and y appearing always as an
2424 traceback, instead of x being shown and y appearing always as an
2415 'undefined global'. Getting this to work was a bit tricky,
2425 'undefined global'. Getting this to work was a bit tricky,
2416 because by default python tokenizers are stateless. Saved by
2426 because by default python tokenizers are stateless. Saved by
2417 python's ability to easily add a bit of state to an arbitrary
2427 python's ability to easily add a bit of state to an arbitrary
2418 function (without needing to build a full-blown callable object).
2428 function (without needing to build a full-blown callable object).
2419
2429
2420 Also big cleanup of this code, which had horrendous runtime
2430 Also big cleanup of this code, which had horrendous runtime
2421 lookups of zillions of attributes for colorization. Moved all
2431 lookups of zillions of attributes for colorization. Moved all
2422 this code into a few templates, which make it cleaner and quicker.
2432 this code into a few templates, which make it cleaner and quicker.
2423
2433
2424 Printout quality was also improved for Verbose exceptions: one
2434 Printout quality was also improved for Verbose exceptions: one
2425 variable per line, and memory addresses are printed (this can be
2435 variable per line, and memory addresses are printed (this can be
2426 quite handy in nasty debugging situations, which is what Verbose
2436 quite handy in nasty debugging situations, which is what Verbose
2427 is for).
2437 is for).
2428
2438
2429 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2439 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2430 the command line as scripts to be loaded by embedded instances.
2440 the command line as scripts to be loaded by embedded instances.
2431 Doing so has the potential for an infinite recursion if there are
2441 Doing so has the potential for an infinite recursion if there are
2432 exceptions thrown in the process. This fixes a strange crash
2442 exceptions thrown in the process. This fixes a strange crash
2433 reported by Philippe MULLER <muller-AT-irit.fr>.
2443 reported by Philippe MULLER <muller-AT-irit.fr>.
2434
2444
2435 2004-12-09 Fernando Perez <fperez@colorado.edu>
2445 2004-12-09 Fernando Perez <fperez@colorado.edu>
2436
2446
2437 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2447 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2438 to reflect new names in matplotlib, which now expose the
2448 to reflect new names in matplotlib, which now expose the
2439 matlab-compatible interface via a pylab module instead of the
2449 matlab-compatible interface via a pylab module instead of the
2440 'matlab' name. The new code is backwards compatible, so users of
2450 'matlab' name. The new code is backwards compatible, so users of
2441 all matplotlib versions are OK. Patch by J. Hunter.
2451 all matplotlib versions are OK. Patch by J. Hunter.
2442
2452
2443 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2453 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2444 of __init__ docstrings for instances (class docstrings are already
2454 of __init__ docstrings for instances (class docstrings are already
2445 automatically printed). Instances with customized docstrings
2455 automatically printed). Instances with customized docstrings
2446 (indep. of the class) are also recognized and all 3 separate
2456 (indep. of the class) are also recognized and all 3 separate
2447 docstrings are printed (instance, class, constructor). After some
2457 docstrings are printed (instance, class, constructor). After some
2448 comments/suggestions by J. Hunter.
2458 comments/suggestions by J. Hunter.
2449
2459
2450 2004-12-05 Fernando Perez <fperez@colorado.edu>
2460 2004-12-05 Fernando Perez <fperez@colorado.edu>
2451
2461
2452 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2462 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2453 warnings when tab-completion fails and triggers an exception.
2463 warnings when tab-completion fails and triggers an exception.
2454
2464
2455 2004-12-03 Fernando Perez <fperez@colorado.edu>
2465 2004-12-03 Fernando Perez <fperez@colorado.edu>
2456
2466
2457 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2467 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2458 be triggered when using 'run -p'. An incorrect option flag was
2468 be triggered when using 'run -p'. An incorrect option flag was
2459 being set ('d' instead of 'D').
2469 being set ('d' instead of 'D').
2460 (manpage): fix missing escaped \- sign.
2470 (manpage): fix missing escaped \- sign.
2461
2471
2462 2004-11-30 *** Released version 0.6.5
2472 2004-11-30 *** Released version 0.6.5
2463
2473
2464 2004-11-30 Fernando Perez <fperez@colorado.edu>
2474 2004-11-30 Fernando Perez <fperez@colorado.edu>
2465
2475
2466 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2476 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2467 setting with -d option.
2477 setting with -d option.
2468
2478
2469 * setup.py (docfiles): Fix problem where the doc glob I was using
2479 * setup.py (docfiles): Fix problem where the doc glob I was using
2470 was COMPLETELY BROKEN. It was giving the right files by pure
2480 was COMPLETELY BROKEN. It was giving the right files by pure
2471 accident, but failed once I tried to include ipython.el. Note:
2481 accident, but failed once I tried to include ipython.el. Note:
2472 glob() does NOT allow you to do exclusion on multiple endings!
2482 glob() does NOT allow you to do exclusion on multiple endings!
2473
2483
2474 2004-11-29 Fernando Perez <fperez@colorado.edu>
2484 2004-11-29 Fernando Perez <fperez@colorado.edu>
2475
2485
2476 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2486 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2477 the manpage as the source. Better formatting & consistency.
2487 the manpage as the source. Better formatting & consistency.
2478
2488
2479 * IPython/Magic.py (magic_run): Added new -d option, to run
2489 * IPython/Magic.py (magic_run): Added new -d option, to run
2480 scripts under the control of the python pdb debugger. Note that
2490 scripts under the control of the python pdb debugger. Note that
2481 this required changing the %prun option -d to -D, to avoid a clash
2491 this required changing the %prun option -d to -D, to avoid a clash
2482 (since %run must pass options to %prun, and getopt is too dumb to
2492 (since %run must pass options to %prun, and getopt is too dumb to
2483 handle options with string values with embedded spaces). Thanks
2493 handle options with string values with embedded spaces). Thanks
2484 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2494 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2485 (magic_who_ls): added type matching to %who and %whos, so that one
2495 (magic_who_ls): added type matching to %who and %whos, so that one
2486 can filter their output to only include variables of certain
2496 can filter their output to only include variables of certain
2487 types. Another suggestion by Matthew.
2497 types. Another suggestion by Matthew.
2488 (magic_whos): Added memory summaries in kb and Mb for arrays.
2498 (magic_whos): Added memory summaries in kb and Mb for arrays.
2489 (magic_who): Improve formatting (break lines every 9 vars).
2499 (magic_who): Improve formatting (break lines every 9 vars).
2490
2500
2491 2004-11-28 Fernando Perez <fperez@colorado.edu>
2501 2004-11-28 Fernando Perez <fperez@colorado.edu>
2492
2502
2493 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2503 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2494 cache when empty lines were present.
2504 cache when empty lines were present.
2495
2505
2496 2004-11-24 Fernando Perez <fperez@colorado.edu>
2506 2004-11-24 Fernando Perez <fperez@colorado.edu>
2497
2507
2498 * IPython/usage.py (__doc__): document the re-activated threading
2508 * IPython/usage.py (__doc__): document the re-activated threading
2499 options for WX and GTK.
2509 options for WX and GTK.
2500
2510
2501 2004-11-23 Fernando Perez <fperez@colorado.edu>
2511 2004-11-23 Fernando Perez <fperez@colorado.edu>
2502
2512
2503 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2513 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2504 the -wthread and -gthread options, along with a new -tk one to try
2514 the -wthread and -gthread options, along with a new -tk one to try
2505 and coordinate Tk threading with wx/gtk. The tk support is very
2515 and coordinate Tk threading with wx/gtk. The tk support is very
2506 platform dependent, since it seems to require Tcl and Tk to be
2516 platform dependent, since it seems to require Tcl and Tk to be
2507 built with threads (Fedora1/2 appears NOT to have it, but in
2517 built with threads (Fedora1/2 appears NOT to have it, but in
2508 Prabhu's Debian boxes it works OK). But even with some Tk
2518 Prabhu's Debian boxes it works OK). But even with some Tk
2509 limitations, this is a great improvement.
2519 limitations, this is a great improvement.
2510
2520
2511 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2521 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2512 info in user prompts. Patch by Prabhu.
2522 info in user prompts. Patch by Prabhu.
2513
2523
2514 2004-11-18 Fernando Perez <fperez@colorado.edu>
2524 2004-11-18 Fernando Perez <fperez@colorado.edu>
2515
2525
2516 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2526 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2517 EOFErrors and bail, to avoid infinite loops if a non-terminating
2527 EOFErrors and bail, to avoid infinite loops if a non-terminating
2518 file is fed into ipython. Patch submitted in issue 19 by user,
2528 file is fed into ipython. Patch submitted in issue 19 by user,
2519 many thanks.
2529 many thanks.
2520
2530
2521 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2531 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2522 autoquote/parens in continuation prompts, which can cause lots of
2532 autoquote/parens in continuation prompts, which can cause lots of
2523 problems. Closes roundup issue 20.
2533 problems. Closes roundup issue 20.
2524
2534
2525 2004-11-17 Fernando Perez <fperez@colorado.edu>
2535 2004-11-17 Fernando Perez <fperez@colorado.edu>
2526
2536
2527 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2537 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2528 reported as debian bug #280505. I'm not sure my local changelog
2538 reported as debian bug #280505. I'm not sure my local changelog
2529 entry has the proper debian format (Jack?).
2539 entry has the proper debian format (Jack?).
2530
2540
2531 2004-11-08 *** Released version 0.6.4
2541 2004-11-08 *** Released version 0.6.4
2532
2542
2533 2004-11-08 Fernando Perez <fperez@colorado.edu>
2543 2004-11-08 Fernando Perez <fperez@colorado.edu>
2534
2544
2535 * IPython/iplib.py (init_readline): Fix exit message for Windows
2545 * IPython/iplib.py (init_readline): Fix exit message for Windows
2536 when readline is active. Thanks to a report by Eric Jones
2546 when readline is active. Thanks to a report by Eric Jones
2537 <eric-AT-enthought.com>.
2547 <eric-AT-enthought.com>.
2538
2548
2539 2004-11-07 Fernando Perez <fperez@colorado.edu>
2549 2004-11-07 Fernando Perez <fperez@colorado.edu>
2540
2550
2541 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2551 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2542 sometimes seen by win2k/cygwin users.
2552 sometimes seen by win2k/cygwin users.
2543
2553
2544 2004-11-06 Fernando Perez <fperez@colorado.edu>
2554 2004-11-06 Fernando Perez <fperez@colorado.edu>
2545
2555
2546 * IPython/iplib.py (interact): Change the handling of %Exit from
2556 * IPython/iplib.py (interact): Change the handling of %Exit from
2547 trying to propagate a SystemExit to an internal ipython flag.
2557 trying to propagate a SystemExit to an internal ipython flag.
2548 This is less elegant than using Python's exception mechanism, but
2558 This is less elegant than using Python's exception mechanism, but
2549 I can't get that to work reliably with threads, so under -pylab
2559 I can't get that to work reliably with threads, so under -pylab
2550 %Exit was hanging IPython. Cross-thread exception handling is
2560 %Exit was hanging IPython. Cross-thread exception handling is
2551 really a bitch. Thaks to a bug report by Stephen Walton
2561 really a bitch. Thaks to a bug report by Stephen Walton
2552 <stephen.walton-AT-csun.edu>.
2562 <stephen.walton-AT-csun.edu>.
2553
2563
2554 2004-11-04 Fernando Perez <fperez@colorado.edu>
2564 2004-11-04 Fernando Perez <fperez@colorado.edu>
2555
2565
2556 * IPython/iplib.py (raw_input_original): store a pointer to the
2566 * IPython/iplib.py (raw_input_original): store a pointer to the
2557 true raw_input to harden against code which can modify it
2567 true raw_input to harden against code which can modify it
2558 (wx.py.PyShell does this and would otherwise crash ipython).
2568 (wx.py.PyShell does this and would otherwise crash ipython).
2559 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2569 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2560
2570
2561 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2571 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2562 Ctrl-C problem, which does not mess up the input line.
2572 Ctrl-C problem, which does not mess up the input line.
2563
2573
2564 2004-11-03 Fernando Perez <fperez@colorado.edu>
2574 2004-11-03 Fernando Perez <fperez@colorado.edu>
2565
2575
2566 * IPython/Release.py: Changed licensing to BSD, in all files.
2576 * IPython/Release.py: Changed licensing to BSD, in all files.
2567 (name): lowercase name for tarball/RPM release.
2577 (name): lowercase name for tarball/RPM release.
2568
2578
2569 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2579 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2570 use throughout ipython.
2580 use throughout ipython.
2571
2581
2572 * IPython/Magic.py (Magic._ofind): Switch to using the new
2582 * IPython/Magic.py (Magic._ofind): Switch to using the new
2573 OInspect.getdoc() function.
2583 OInspect.getdoc() function.
2574
2584
2575 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2585 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2576 of the line currently being canceled via Ctrl-C. It's extremely
2586 of the line currently being canceled via Ctrl-C. It's extremely
2577 ugly, but I don't know how to do it better (the problem is one of
2587 ugly, but I don't know how to do it better (the problem is one of
2578 handling cross-thread exceptions).
2588 handling cross-thread exceptions).
2579
2589
2580 2004-10-28 Fernando Perez <fperez@colorado.edu>
2590 2004-10-28 Fernando Perez <fperez@colorado.edu>
2581
2591
2582 * IPython/Shell.py (signal_handler): add signal handlers to trap
2592 * IPython/Shell.py (signal_handler): add signal handlers to trap
2583 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2593 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2584 report by Francesc Alted.
2594 report by Francesc Alted.
2585
2595
2586 2004-10-21 Fernando Perez <fperez@colorado.edu>
2596 2004-10-21 Fernando Perez <fperez@colorado.edu>
2587
2597
2588 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2598 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2589 to % for pysh syntax extensions.
2599 to % for pysh syntax extensions.
2590
2600
2591 2004-10-09 Fernando Perez <fperez@colorado.edu>
2601 2004-10-09 Fernando Perez <fperez@colorado.edu>
2592
2602
2593 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2603 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2594 arrays to print a more useful summary, without calling str(arr).
2604 arrays to print a more useful summary, without calling str(arr).
2595 This avoids the problem of extremely lengthy computations which
2605 This avoids the problem of extremely lengthy computations which
2596 occur if arr is large, and appear to the user as a system lockup
2606 occur if arr is large, and appear to the user as a system lockup
2597 with 100% cpu activity. After a suggestion by Kristian Sandberg
2607 with 100% cpu activity. After a suggestion by Kristian Sandberg
2598 <Kristian.Sandberg@colorado.edu>.
2608 <Kristian.Sandberg@colorado.edu>.
2599 (Magic.__init__): fix bug in global magic escapes not being
2609 (Magic.__init__): fix bug in global magic escapes not being
2600 correctly set.
2610 correctly set.
2601
2611
2602 2004-10-08 Fernando Perez <fperez@colorado.edu>
2612 2004-10-08 Fernando Perez <fperez@colorado.edu>
2603
2613
2604 * IPython/Magic.py (__license__): change to absolute imports of
2614 * IPython/Magic.py (__license__): change to absolute imports of
2605 ipython's own internal packages, to start adapting to the absolute
2615 ipython's own internal packages, to start adapting to the absolute
2606 import requirement of PEP-328.
2616 import requirement of PEP-328.
2607
2617
2608 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2618 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2609 files, and standardize author/license marks through the Release
2619 files, and standardize author/license marks through the Release
2610 module instead of having per/file stuff (except for files with
2620 module instead of having per/file stuff (except for files with
2611 particular licenses, like the MIT/PSF-licensed codes).
2621 particular licenses, like the MIT/PSF-licensed codes).
2612
2622
2613 * IPython/Debugger.py: remove dead code for python 2.1
2623 * IPython/Debugger.py: remove dead code for python 2.1
2614
2624
2615 2004-10-04 Fernando Perez <fperez@colorado.edu>
2625 2004-10-04 Fernando Perez <fperez@colorado.edu>
2616
2626
2617 * IPython/iplib.py (ipmagic): New function for accessing magics
2627 * IPython/iplib.py (ipmagic): New function for accessing magics
2618 via a normal python function call.
2628 via a normal python function call.
2619
2629
2620 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2630 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2621 from '@' to '%', to accomodate the new @decorator syntax of python
2631 from '@' to '%', to accomodate the new @decorator syntax of python
2622 2.4.
2632 2.4.
2623
2633
2624 2004-09-29 Fernando Perez <fperez@colorado.edu>
2634 2004-09-29 Fernando Perez <fperez@colorado.edu>
2625
2635
2626 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2636 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2627 matplotlib.use to prevent running scripts which try to switch
2637 matplotlib.use to prevent running scripts which try to switch
2628 interactive backends from within ipython. This will just crash
2638 interactive backends from within ipython. This will just crash
2629 the python interpreter, so we can't allow it (but a detailed error
2639 the python interpreter, so we can't allow it (but a detailed error
2630 is given to the user).
2640 is given to the user).
2631
2641
2632 2004-09-28 Fernando Perez <fperez@colorado.edu>
2642 2004-09-28 Fernando Perez <fperez@colorado.edu>
2633
2643
2634 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2644 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2635 matplotlib-related fixes so that using @run with non-matplotlib
2645 matplotlib-related fixes so that using @run with non-matplotlib
2636 scripts doesn't pop up spurious plot windows. This requires
2646 scripts doesn't pop up spurious plot windows. This requires
2637 matplotlib >= 0.63, where I had to make some changes as well.
2647 matplotlib >= 0.63, where I had to make some changes as well.
2638
2648
2639 * IPython/ipmaker.py (make_IPython): update version requirement to
2649 * IPython/ipmaker.py (make_IPython): update version requirement to
2640 python 2.2.
2650 python 2.2.
2641
2651
2642 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2652 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2643 banner arg for embedded customization.
2653 banner arg for embedded customization.
2644
2654
2645 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2655 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2646 explicit uses of __IP as the IPython's instance name. Now things
2656 explicit uses of __IP as the IPython's instance name. Now things
2647 are properly handled via the shell.name value. The actual code
2657 are properly handled via the shell.name value. The actual code
2648 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2658 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2649 is much better than before. I'll clean things completely when the
2659 is much better than before. I'll clean things completely when the
2650 magic stuff gets a real overhaul.
2660 magic stuff gets a real overhaul.
2651
2661
2652 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2662 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2653 minor changes to debian dir.
2663 minor changes to debian dir.
2654
2664
2655 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2665 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2656 pointer to the shell itself in the interactive namespace even when
2666 pointer to the shell itself in the interactive namespace even when
2657 a user-supplied dict is provided. This is needed for embedding
2667 a user-supplied dict is provided. This is needed for embedding
2658 purposes (found by tests with Michel Sanner).
2668 purposes (found by tests with Michel Sanner).
2659
2669
2660 2004-09-27 Fernando Perez <fperez@colorado.edu>
2670 2004-09-27 Fernando Perez <fperez@colorado.edu>
2661
2671
2662 * IPython/UserConfig/ipythonrc: remove []{} from
2672 * IPython/UserConfig/ipythonrc: remove []{} from
2663 readline_remove_delims, so that things like [modname.<TAB> do
2673 readline_remove_delims, so that things like [modname.<TAB> do
2664 proper completion. This disables [].TAB, but that's a less common
2674 proper completion. This disables [].TAB, but that's a less common
2665 case than module names in list comprehensions, for example.
2675 case than module names in list comprehensions, for example.
2666 Thanks to a report by Andrea Riciputi.
2676 Thanks to a report by Andrea Riciputi.
2667
2677
2668 2004-09-09 Fernando Perez <fperez@colorado.edu>
2678 2004-09-09 Fernando Perez <fperez@colorado.edu>
2669
2679
2670 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2680 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2671 blocking problems in win32 and osx. Fix by John.
2681 blocking problems in win32 and osx. Fix by John.
2672
2682
2673 2004-09-08 Fernando Perez <fperez@colorado.edu>
2683 2004-09-08 Fernando Perez <fperez@colorado.edu>
2674
2684
2675 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2685 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2676 for Win32 and OSX. Fix by John Hunter.
2686 for Win32 and OSX. Fix by John Hunter.
2677
2687
2678 2004-08-30 *** Released version 0.6.3
2688 2004-08-30 *** Released version 0.6.3
2679
2689
2680 2004-08-30 Fernando Perez <fperez@colorado.edu>
2690 2004-08-30 Fernando Perez <fperez@colorado.edu>
2681
2691
2682 * setup.py (isfile): Add manpages to list of dependent files to be
2692 * setup.py (isfile): Add manpages to list of dependent files to be
2683 updated.
2693 updated.
2684
2694
2685 2004-08-27 Fernando Perez <fperez@colorado.edu>
2695 2004-08-27 Fernando Perez <fperez@colorado.edu>
2686
2696
2687 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2697 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2688 for now. They don't really work with standalone WX/GTK code
2698 for now. They don't really work with standalone WX/GTK code
2689 (though matplotlib IS working fine with both of those backends).
2699 (though matplotlib IS working fine with both of those backends).
2690 This will neeed much more testing. I disabled most things with
2700 This will neeed much more testing. I disabled most things with
2691 comments, so turning it back on later should be pretty easy.
2701 comments, so turning it back on later should be pretty easy.
2692
2702
2693 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2703 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2694 autocalling of expressions like r'foo', by modifying the line
2704 autocalling of expressions like r'foo', by modifying the line
2695 split regexp. Closes
2705 split regexp. Closes
2696 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2706 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2697 Riley <ipythonbugs-AT-sabi.net>.
2707 Riley <ipythonbugs-AT-sabi.net>.
2698 (InteractiveShell.mainloop): honor --nobanner with banner
2708 (InteractiveShell.mainloop): honor --nobanner with banner
2699 extensions.
2709 extensions.
2700
2710
2701 * IPython/Shell.py: Significant refactoring of all classes, so
2711 * IPython/Shell.py: Significant refactoring of all classes, so
2702 that we can really support ALL matplotlib backends and threading
2712 that we can really support ALL matplotlib backends and threading
2703 models (John spotted a bug with Tk which required this). Now we
2713 models (John spotted a bug with Tk which required this). Now we
2704 should support single-threaded, WX-threads and GTK-threads, both
2714 should support single-threaded, WX-threads and GTK-threads, both
2705 for generic code and for matplotlib.
2715 for generic code and for matplotlib.
2706
2716
2707 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2717 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2708 -pylab, to simplify things for users. Will also remove the pylab
2718 -pylab, to simplify things for users. Will also remove the pylab
2709 profile, since now all of matplotlib configuration is directly
2719 profile, since now all of matplotlib configuration is directly
2710 handled here. This also reduces startup time.
2720 handled here. This also reduces startup time.
2711
2721
2712 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2722 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2713 shell wasn't being correctly called. Also in IPShellWX.
2723 shell wasn't being correctly called. Also in IPShellWX.
2714
2724
2715 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2725 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2716 fine-tune banner.
2726 fine-tune banner.
2717
2727
2718 * IPython/numutils.py (spike): Deprecate these spike functions,
2728 * IPython/numutils.py (spike): Deprecate these spike functions,
2719 delete (long deprecated) gnuplot_exec handler.
2729 delete (long deprecated) gnuplot_exec handler.
2720
2730
2721 2004-08-26 Fernando Perez <fperez@colorado.edu>
2731 2004-08-26 Fernando Perez <fperez@colorado.edu>
2722
2732
2723 * ipython.1: Update for threading options, plus some others which
2733 * ipython.1: Update for threading options, plus some others which
2724 were missing.
2734 were missing.
2725
2735
2726 * IPython/ipmaker.py (__call__): Added -wthread option for
2736 * IPython/ipmaker.py (__call__): Added -wthread option for
2727 wxpython thread handling. Make sure threading options are only
2737 wxpython thread handling. Make sure threading options are only
2728 valid at the command line.
2738 valid at the command line.
2729
2739
2730 * scripts/ipython: moved shell selection into a factory function
2740 * scripts/ipython: moved shell selection into a factory function
2731 in Shell.py, to keep the starter script to a minimum.
2741 in Shell.py, to keep the starter script to a minimum.
2732
2742
2733 2004-08-25 Fernando Perez <fperez@colorado.edu>
2743 2004-08-25 Fernando Perez <fperez@colorado.edu>
2734
2744
2735 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2745 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2736 John. Along with some recent changes he made to matplotlib, the
2746 John. Along with some recent changes he made to matplotlib, the
2737 next versions of both systems should work very well together.
2747 next versions of both systems should work very well together.
2738
2748
2739 2004-08-24 Fernando Perez <fperez@colorado.edu>
2749 2004-08-24 Fernando Perez <fperez@colorado.edu>
2740
2750
2741 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2751 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2742 tried to switch the profiling to using hotshot, but I'm getting
2752 tried to switch the profiling to using hotshot, but I'm getting
2743 strange errors from prof.runctx() there. I may be misreading the
2753 strange errors from prof.runctx() there. I may be misreading the
2744 docs, but it looks weird. For now the profiling code will
2754 docs, but it looks weird. For now the profiling code will
2745 continue to use the standard profiler.
2755 continue to use the standard profiler.
2746
2756
2747 2004-08-23 Fernando Perez <fperez@colorado.edu>
2757 2004-08-23 Fernando Perez <fperez@colorado.edu>
2748
2758
2749 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2759 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2750 threaded shell, by John Hunter. It's not quite ready yet, but
2760 threaded shell, by John Hunter. It's not quite ready yet, but
2751 close.
2761 close.
2752
2762
2753 2004-08-22 Fernando Perez <fperez@colorado.edu>
2763 2004-08-22 Fernando Perez <fperez@colorado.edu>
2754
2764
2755 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2765 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2756 in Magic and ultraTB.
2766 in Magic and ultraTB.
2757
2767
2758 * ipython.1: document threading options in manpage.
2768 * ipython.1: document threading options in manpage.
2759
2769
2760 * scripts/ipython: Changed name of -thread option to -gthread,
2770 * scripts/ipython: Changed name of -thread option to -gthread,
2761 since this is GTK specific. I want to leave the door open for a
2771 since this is GTK specific. I want to leave the door open for a
2762 -wthread option for WX, which will most likely be necessary. This
2772 -wthread option for WX, which will most likely be necessary. This
2763 change affects usage and ipmaker as well.
2773 change affects usage and ipmaker as well.
2764
2774
2765 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2775 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2766 handle the matplotlib shell issues. Code by John Hunter
2776 handle the matplotlib shell issues. Code by John Hunter
2767 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2777 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2768 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2778 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2769 broken (and disabled for end users) for now, but it puts the
2779 broken (and disabled for end users) for now, but it puts the
2770 infrastructure in place.
2780 infrastructure in place.
2771
2781
2772 2004-08-21 Fernando Perez <fperez@colorado.edu>
2782 2004-08-21 Fernando Perez <fperez@colorado.edu>
2773
2783
2774 * ipythonrc-pylab: Add matplotlib support.
2784 * ipythonrc-pylab: Add matplotlib support.
2775
2785
2776 * matplotlib_config.py: new files for matplotlib support, part of
2786 * matplotlib_config.py: new files for matplotlib support, part of
2777 the pylab profile.
2787 the pylab profile.
2778
2788
2779 * IPython/usage.py (__doc__): documented the threading options.
2789 * IPython/usage.py (__doc__): documented the threading options.
2780
2790
2781 2004-08-20 Fernando Perez <fperez@colorado.edu>
2791 2004-08-20 Fernando Perez <fperez@colorado.edu>
2782
2792
2783 * ipython: Modified the main calling routine to handle the -thread
2793 * ipython: Modified the main calling routine to handle the -thread
2784 and -mpthread options. This needs to be done as a top-level hack,
2794 and -mpthread options. This needs to be done as a top-level hack,
2785 because it determines which class to instantiate for IPython
2795 because it determines which class to instantiate for IPython
2786 itself.
2796 itself.
2787
2797
2788 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2798 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2789 classes to support multithreaded GTK operation without blocking,
2799 classes to support multithreaded GTK operation without blocking,
2790 and matplotlib with all backends. This is a lot of still very
2800 and matplotlib with all backends. This is a lot of still very
2791 experimental code, and threads are tricky. So it may still have a
2801 experimental code, and threads are tricky. So it may still have a
2792 few rough edges... This code owes a lot to
2802 few rough edges... This code owes a lot to
2793 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2803 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2794 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2804 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2795 to John Hunter for all the matplotlib work.
2805 to John Hunter for all the matplotlib work.
2796
2806
2797 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2807 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2798 options for gtk thread and matplotlib support.
2808 options for gtk thread and matplotlib support.
2799
2809
2800 2004-08-16 Fernando Perez <fperez@colorado.edu>
2810 2004-08-16 Fernando Perez <fperez@colorado.edu>
2801
2811
2802 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2812 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2803 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2813 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2804 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2814 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2805
2815
2806 2004-08-11 Fernando Perez <fperez@colorado.edu>
2816 2004-08-11 Fernando Perez <fperez@colorado.edu>
2807
2817
2808 * setup.py (isfile): Fix build so documentation gets updated for
2818 * setup.py (isfile): Fix build so documentation gets updated for
2809 rpms (it was only done for .tgz builds).
2819 rpms (it was only done for .tgz builds).
2810
2820
2811 2004-08-10 Fernando Perez <fperez@colorado.edu>
2821 2004-08-10 Fernando Perez <fperez@colorado.edu>
2812
2822
2813 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2823 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2814
2824
2815 * iplib.py : Silence syntax error exceptions in tab-completion.
2825 * iplib.py : Silence syntax error exceptions in tab-completion.
2816
2826
2817 2004-08-05 Fernando Perez <fperez@colorado.edu>
2827 2004-08-05 Fernando Perez <fperez@colorado.edu>
2818
2828
2819 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2829 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2820 'color off' mark for continuation prompts. This was causing long
2830 'color off' mark for continuation prompts. This was causing long
2821 continuation lines to mis-wrap.
2831 continuation lines to mis-wrap.
2822
2832
2823 2004-08-01 Fernando Perez <fperez@colorado.edu>
2833 2004-08-01 Fernando Perez <fperez@colorado.edu>
2824
2834
2825 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2835 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2826 for building ipython to be a parameter. All this is necessary
2836 for building ipython to be a parameter. All this is necessary
2827 right now to have a multithreaded version, but this insane
2837 right now to have a multithreaded version, but this insane
2828 non-design will be cleaned up soon. For now, it's a hack that
2838 non-design will be cleaned up soon. For now, it's a hack that
2829 works.
2839 works.
2830
2840
2831 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2841 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2832 args in various places. No bugs so far, but it's a dangerous
2842 args in various places. No bugs so far, but it's a dangerous
2833 practice.
2843 practice.
2834
2844
2835 2004-07-31 Fernando Perez <fperez@colorado.edu>
2845 2004-07-31 Fernando Perez <fperez@colorado.edu>
2836
2846
2837 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2847 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2838 fix completion of files with dots in their names under most
2848 fix completion of files with dots in their names under most
2839 profiles (pysh was OK because the completion order is different).
2849 profiles (pysh was OK because the completion order is different).
2840
2850
2841 2004-07-27 Fernando Perez <fperez@colorado.edu>
2851 2004-07-27 Fernando Perez <fperez@colorado.edu>
2842
2852
2843 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2853 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2844 keywords manually, b/c the one in keyword.py was removed in python
2854 keywords manually, b/c the one in keyword.py was removed in python
2845 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2855 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2846 This is NOT a bug under python 2.3 and earlier.
2856 This is NOT a bug under python 2.3 and earlier.
2847
2857
2848 2004-07-26 Fernando Perez <fperez@colorado.edu>
2858 2004-07-26 Fernando Perez <fperez@colorado.edu>
2849
2859
2850 * IPython/ultraTB.py (VerboseTB.text): Add another
2860 * IPython/ultraTB.py (VerboseTB.text): Add another
2851 linecache.checkcache() call to try to prevent inspect.py from
2861 linecache.checkcache() call to try to prevent inspect.py from
2852 crashing under python 2.3. I think this fixes
2862 crashing under python 2.3. I think this fixes
2853 http://www.scipy.net/roundup/ipython/issue17.
2863 http://www.scipy.net/roundup/ipython/issue17.
2854
2864
2855 2004-07-26 *** Released version 0.6.2
2865 2004-07-26 *** Released version 0.6.2
2856
2866
2857 2004-07-26 Fernando Perez <fperez@colorado.edu>
2867 2004-07-26 Fernando Perez <fperez@colorado.edu>
2858
2868
2859 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2869 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2860 fail for any number.
2870 fail for any number.
2861 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2871 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2862 empty bookmarks.
2872 empty bookmarks.
2863
2873
2864 2004-07-26 *** Released version 0.6.1
2874 2004-07-26 *** Released version 0.6.1
2865
2875
2866 2004-07-26 Fernando Perez <fperez@colorado.edu>
2876 2004-07-26 Fernando Perez <fperez@colorado.edu>
2867
2877
2868 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2878 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2869
2879
2870 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2880 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2871 escaping '()[]{}' in filenames.
2881 escaping '()[]{}' in filenames.
2872
2882
2873 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2883 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2874 Python 2.2 users who lack a proper shlex.split.
2884 Python 2.2 users who lack a proper shlex.split.
2875
2885
2876 2004-07-19 Fernando Perez <fperez@colorado.edu>
2886 2004-07-19 Fernando Perez <fperez@colorado.edu>
2877
2887
2878 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2888 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2879 for reading readline's init file. I follow the normal chain:
2889 for reading readline's init file. I follow the normal chain:
2880 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2890 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2881 report by Mike Heeter. This closes
2891 report by Mike Heeter. This closes
2882 http://www.scipy.net/roundup/ipython/issue16.
2892 http://www.scipy.net/roundup/ipython/issue16.
2883
2893
2884 2004-07-18 Fernando Perez <fperez@colorado.edu>
2894 2004-07-18 Fernando Perez <fperez@colorado.edu>
2885
2895
2886 * IPython/iplib.py (__init__): Add better handling of '\' under
2896 * IPython/iplib.py (__init__): Add better handling of '\' under
2887 Win32 for filenames. After a patch by Ville.
2897 Win32 for filenames. After a patch by Ville.
2888
2898
2889 2004-07-17 Fernando Perez <fperez@colorado.edu>
2899 2004-07-17 Fernando Perez <fperez@colorado.edu>
2890
2900
2891 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2901 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2892 autocalling would be triggered for 'foo is bar' if foo is
2902 autocalling would be triggered for 'foo is bar' if foo is
2893 callable. I also cleaned up the autocall detection code to use a
2903 callable. I also cleaned up the autocall detection code to use a
2894 regexp, which is faster. Bug reported by Alexander Schmolck.
2904 regexp, which is faster. Bug reported by Alexander Schmolck.
2895
2905
2896 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2906 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2897 '?' in them would confuse the help system. Reported by Alex
2907 '?' in them would confuse the help system. Reported by Alex
2898 Schmolck.
2908 Schmolck.
2899
2909
2900 2004-07-16 Fernando Perez <fperez@colorado.edu>
2910 2004-07-16 Fernando Perez <fperez@colorado.edu>
2901
2911
2902 * IPython/GnuplotInteractive.py (__all__): added plot2.
2912 * IPython/GnuplotInteractive.py (__all__): added plot2.
2903
2913
2904 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2914 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2905 plotting dictionaries, lists or tuples of 1d arrays.
2915 plotting dictionaries, lists or tuples of 1d arrays.
2906
2916
2907 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2917 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2908 optimizations.
2918 optimizations.
2909
2919
2910 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2920 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2911 the information which was there from Janko's original IPP code:
2921 the information which was there from Janko's original IPP code:
2912
2922
2913 03.05.99 20:53 porto.ifm.uni-kiel.de
2923 03.05.99 20:53 porto.ifm.uni-kiel.de
2914 --Started changelog.
2924 --Started changelog.
2915 --make clear do what it say it does
2925 --make clear do what it say it does
2916 --added pretty output of lines from inputcache
2926 --added pretty output of lines from inputcache
2917 --Made Logger a mixin class, simplifies handling of switches
2927 --Made Logger a mixin class, simplifies handling of switches
2918 --Added own completer class. .string<TAB> expands to last history
2928 --Added own completer class. .string<TAB> expands to last history
2919 line which starts with string. The new expansion is also present
2929 line which starts with string. The new expansion is also present
2920 with Ctrl-r from the readline library. But this shows, who this
2930 with Ctrl-r from the readline library. But this shows, who this
2921 can be done for other cases.
2931 can be done for other cases.
2922 --Added convention that all shell functions should accept a
2932 --Added convention that all shell functions should accept a
2923 parameter_string This opens the door for different behaviour for
2933 parameter_string This opens the door for different behaviour for
2924 each function. @cd is a good example of this.
2934 each function. @cd is a good example of this.
2925
2935
2926 04.05.99 12:12 porto.ifm.uni-kiel.de
2936 04.05.99 12:12 porto.ifm.uni-kiel.de
2927 --added logfile rotation
2937 --added logfile rotation
2928 --added new mainloop method which freezes first the namespace
2938 --added new mainloop method which freezes first the namespace
2929
2939
2930 07.05.99 21:24 porto.ifm.uni-kiel.de
2940 07.05.99 21:24 porto.ifm.uni-kiel.de
2931 --added the docreader classes. Now there is a help system.
2941 --added the docreader classes. Now there is a help system.
2932 -This is only a first try. Currently it's not easy to put new
2942 -This is only a first try. Currently it's not easy to put new
2933 stuff in the indices. But this is the way to go. Info would be
2943 stuff in the indices. But this is the way to go. Info would be
2934 better, but HTML is every where and not everybody has an info
2944 better, but HTML is every where and not everybody has an info
2935 system installed and it's not so easy to change html-docs to info.
2945 system installed and it's not so easy to change html-docs to info.
2936 --added global logfile option
2946 --added global logfile option
2937 --there is now a hook for object inspection method pinfo needs to
2947 --there is now a hook for object inspection method pinfo needs to
2938 be provided for this. Can be reached by two '??'.
2948 be provided for this. Can be reached by two '??'.
2939
2949
2940 08.05.99 20:51 porto.ifm.uni-kiel.de
2950 08.05.99 20:51 porto.ifm.uni-kiel.de
2941 --added a README
2951 --added a README
2942 --bug in rc file. Something has changed so functions in the rc
2952 --bug in rc file. Something has changed so functions in the rc
2943 file need to reference the shell and not self. Not clear if it's a
2953 file need to reference the shell and not self. Not clear if it's a
2944 bug or feature.
2954 bug or feature.
2945 --changed rc file for new behavior
2955 --changed rc file for new behavior
2946
2956
2947 2004-07-15 Fernando Perez <fperez@colorado.edu>
2957 2004-07-15 Fernando Perez <fperez@colorado.edu>
2948
2958
2949 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2959 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2950 cache was falling out of sync in bizarre manners when multi-line
2960 cache was falling out of sync in bizarre manners when multi-line
2951 input was present. Minor optimizations and cleanup.
2961 input was present. Minor optimizations and cleanup.
2952
2962
2953 (Logger): Remove old Changelog info for cleanup. This is the
2963 (Logger): Remove old Changelog info for cleanup. This is the
2954 information which was there from Janko's original code:
2964 information which was there from Janko's original code:
2955
2965
2956 Changes to Logger: - made the default log filename a parameter
2966 Changes to Logger: - made the default log filename a parameter
2957
2967
2958 - put a check for lines beginning with !@? in log(). Needed
2968 - put a check for lines beginning with !@? in log(). Needed
2959 (even if the handlers properly log their lines) for mid-session
2969 (even if the handlers properly log their lines) for mid-session
2960 logging activation to work properly. Without this, lines logged
2970 logging activation to work properly. Without this, lines logged
2961 in mid session, which get read from the cache, would end up
2971 in mid session, which get read from the cache, would end up
2962 'bare' (with !@? in the open) in the log. Now they are caught
2972 'bare' (with !@? in the open) in the log. Now they are caught
2963 and prepended with a #.
2973 and prepended with a #.
2964
2974
2965 * IPython/iplib.py (InteractiveShell.init_readline): added check
2975 * IPython/iplib.py (InteractiveShell.init_readline): added check
2966 in case MagicCompleter fails to be defined, so we don't crash.
2976 in case MagicCompleter fails to be defined, so we don't crash.
2967
2977
2968 2004-07-13 Fernando Perez <fperez@colorado.edu>
2978 2004-07-13 Fernando Perez <fperez@colorado.edu>
2969
2979
2970 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2980 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2971 of EPS if the requested filename ends in '.eps'.
2981 of EPS if the requested filename ends in '.eps'.
2972
2982
2973 2004-07-04 Fernando Perez <fperez@colorado.edu>
2983 2004-07-04 Fernando Perez <fperez@colorado.edu>
2974
2984
2975 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2985 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2976 escaping of quotes when calling the shell.
2986 escaping of quotes when calling the shell.
2977
2987
2978 2004-07-02 Fernando Perez <fperez@colorado.edu>
2988 2004-07-02 Fernando Perez <fperez@colorado.edu>
2979
2989
2980 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2990 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2981 gettext not working because we were clobbering '_'. Fixes
2991 gettext not working because we were clobbering '_'. Fixes
2982 http://www.scipy.net/roundup/ipython/issue6.
2992 http://www.scipy.net/roundup/ipython/issue6.
2983
2993
2984 2004-07-01 Fernando Perez <fperez@colorado.edu>
2994 2004-07-01 Fernando Perez <fperez@colorado.edu>
2985
2995
2986 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2996 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2987 into @cd. Patch by Ville.
2997 into @cd. Patch by Ville.
2988
2998
2989 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2999 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2990 new function to store things after ipmaker runs. Patch by Ville.
3000 new function to store things after ipmaker runs. Patch by Ville.
2991 Eventually this will go away once ipmaker is removed and the class
3001 Eventually this will go away once ipmaker is removed and the class
2992 gets cleaned up, but for now it's ok. Key functionality here is
3002 gets cleaned up, but for now it's ok. Key functionality here is
2993 the addition of the persistent storage mechanism, a dict for
3003 the addition of the persistent storage mechanism, a dict for
2994 keeping data across sessions (for now just bookmarks, but more can
3004 keeping data across sessions (for now just bookmarks, but more can
2995 be implemented later).
3005 be implemented later).
2996
3006
2997 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3007 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2998 persistent across sections. Patch by Ville, I modified it
3008 persistent across sections. Patch by Ville, I modified it
2999 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3009 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3000 added a '-l' option to list all bookmarks.
3010 added a '-l' option to list all bookmarks.
3001
3011
3002 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3012 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3003 center for cleanup. Registered with atexit.register(). I moved
3013 center for cleanup. Registered with atexit.register(). I moved
3004 here the old exit_cleanup(). After a patch by Ville.
3014 here the old exit_cleanup(). After a patch by Ville.
3005
3015
3006 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3016 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3007 characters in the hacked shlex_split for python 2.2.
3017 characters in the hacked shlex_split for python 2.2.
3008
3018
3009 * IPython/iplib.py (file_matches): more fixes to filenames with
3019 * IPython/iplib.py (file_matches): more fixes to filenames with
3010 whitespace in them. It's not perfect, but limitations in python's
3020 whitespace in them. It's not perfect, but limitations in python's
3011 readline make it impossible to go further.
3021 readline make it impossible to go further.
3012
3022
3013 2004-06-29 Fernando Perez <fperez@colorado.edu>
3023 2004-06-29 Fernando Perez <fperez@colorado.edu>
3014
3024
3015 * IPython/iplib.py (file_matches): escape whitespace correctly in
3025 * IPython/iplib.py (file_matches): escape whitespace correctly in
3016 filename completions. Bug reported by Ville.
3026 filename completions. Bug reported by Ville.
3017
3027
3018 2004-06-28 Fernando Perez <fperez@colorado.edu>
3028 2004-06-28 Fernando Perez <fperez@colorado.edu>
3019
3029
3020 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3030 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3021 the history file will be called 'history-PROFNAME' (or just
3031 the history file will be called 'history-PROFNAME' (or just
3022 'history' if no profile is loaded). I was getting annoyed at
3032 'history' if no profile is loaded). I was getting annoyed at
3023 getting my Numerical work history clobbered by pysh sessions.
3033 getting my Numerical work history clobbered by pysh sessions.
3024
3034
3025 * IPython/iplib.py (InteractiveShell.__init__): Internal
3035 * IPython/iplib.py (InteractiveShell.__init__): Internal
3026 getoutputerror() function so that we can honor the system_verbose
3036 getoutputerror() function so that we can honor the system_verbose
3027 flag for _all_ system calls. I also added escaping of #
3037 flag for _all_ system calls. I also added escaping of #
3028 characters here to avoid confusing Itpl.
3038 characters here to avoid confusing Itpl.
3029
3039
3030 * IPython/Magic.py (shlex_split): removed call to shell in
3040 * IPython/Magic.py (shlex_split): removed call to shell in
3031 parse_options and replaced it with shlex.split(). The annoying
3041 parse_options and replaced it with shlex.split(). The annoying
3032 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3042 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3033 to backport it from 2.3, with several frail hacks (the shlex
3043 to backport it from 2.3, with several frail hacks (the shlex
3034 module is rather limited in 2.2). Thanks to a suggestion by Ville
3044 module is rather limited in 2.2). Thanks to a suggestion by Ville
3035 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3045 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3036 problem.
3046 problem.
3037
3047
3038 (Magic.magic_system_verbose): new toggle to print the actual
3048 (Magic.magic_system_verbose): new toggle to print the actual
3039 system calls made by ipython. Mainly for debugging purposes.
3049 system calls made by ipython. Mainly for debugging purposes.
3040
3050
3041 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3051 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3042 doesn't support persistence. Reported (and fix suggested) by
3052 doesn't support persistence. Reported (and fix suggested) by
3043 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3053 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3044
3054
3045 2004-06-26 Fernando Perez <fperez@colorado.edu>
3055 2004-06-26 Fernando Perez <fperez@colorado.edu>
3046
3056
3047 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3057 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3048 continue prompts.
3058 continue prompts.
3049
3059
3050 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3060 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3051 function (basically a big docstring) and a few more things here to
3061 function (basically a big docstring) and a few more things here to
3052 speedup startup. pysh.py is now very lightweight. We want because
3062 speedup startup. pysh.py is now very lightweight. We want because
3053 it gets execfile'd, while InterpreterExec gets imported, so
3063 it gets execfile'd, while InterpreterExec gets imported, so
3054 byte-compilation saves time.
3064 byte-compilation saves time.
3055
3065
3056 2004-06-25 Fernando Perez <fperez@colorado.edu>
3066 2004-06-25 Fernando Perez <fperez@colorado.edu>
3057
3067
3058 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3068 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3059 -NUM', which was recently broken.
3069 -NUM', which was recently broken.
3060
3070
3061 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3071 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3062 in multi-line input (but not !!, which doesn't make sense there).
3072 in multi-line input (but not !!, which doesn't make sense there).
3063
3073
3064 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3074 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3065 It's just too useful, and people can turn it off in the less
3075 It's just too useful, and people can turn it off in the less
3066 common cases where it's a problem.
3076 common cases where it's a problem.
3067
3077
3068 2004-06-24 Fernando Perez <fperez@colorado.edu>
3078 2004-06-24 Fernando Perez <fperez@colorado.edu>
3069
3079
3070 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3080 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3071 special syntaxes (like alias calling) is now allied in multi-line
3081 special syntaxes (like alias calling) is now allied in multi-line
3072 input. This is still _very_ experimental, but it's necessary for
3082 input. This is still _very_ experimental, but it's necessary for
3073 efficient shell usage combining python looping syntax with system
3083 efficient shell usage combining python looping syntax with system
3074 calls. For now it's restricted to aliases, I don't think it
3084 calls. For now it's restricted to aliases, I don't think it
3075 really even makes sense to have this for magics.
3085 really even makes sense to have this for magics.
3076
3086
3077 2004-06-23 Fernando Perez <fperez@colorado.edu>
3087 2004-06-23 Fernando Perez <fperez@colorado.edu>
3078
3088
3079 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3089 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3080 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3090 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3081
3091
3082 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3092 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3083 extensions under Windows (after code sent by Gary Bishop). The
3093 extensions under Windows (after code sent by Gary Bishop). The
3084 extensions considered 'executable' are stored in IPython's rc
3094 extensions considered 'executable' are stored in IPython's rc
3085 structure as win_exec_ext.
3095 structure as win_exec_ext.
3086
3096
3087 * IPython/genutils.py (shell): new function, like system() but
3097 * IPython/genutils.py (shell): new function, like system() but
3088 without return value. Very useful for interactive shell work.
3098 without return value. Very useful for interactive shell work.
3089
3099
3090 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3100 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3091 delete aliases.
3101 delete aliases.
3092
3102
3093 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3103 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3094 sure that the alias table doesn't contain python keywords.
3104 sure that the alias table doesn't contain python keywords.
3095
3105
3096 2004-06-21 Fernando Perez <fperez@colorado.edu>
3106 2004-06-21 Fernando Perez <fperez@colorado.edu>
3097
3107
3098 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3108 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3099 non-existent items are found in $PATH. Reported by Thorsten.
3109 non-existent items are found in $PATH. Reported by Thorsten.
3100
3110
3101 2004-06-20 Fernando Perez <fperez@colorado.edu>
3111 2004-06-20 Fernando Perez <fperez@colorado.edu>
3102
3112
3103 * IPython/iplib.py (complete): modified the completer so that the
3113 * IPython/iplib.py (complete): modified the completer so that the
3104 order of priorities can be easily changed at runtime.
3114 order of priorities can be easily changed at runtime.
3105
3115
3106 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3116 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3107 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3117 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3108
3118
3109 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3119 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3110 expand Python variables prepended with $ in all system calls. The
3120 expand Python variables prepended with $ in all system calls. The
3111 same was done to InteractiveShell.handle_shell_escape. Now all
3121 same was done to InteractiveShell.handle_shell_escape. Now all
3112 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3122 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3113 expansion of python variables and expressions according to the
3123 expansion of python variables and expressions according to the
3114 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3124 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3115
3125
3116 Though PEP-215 has been rejected, a similar (but simpler) one
3126 Though PEP-215 has been rejected, a similar (but simpler) one
3117 seems like it will go into Python 2.4, PEP-292 -
3127 seems like it will go into Python 2.4, PEP-292 -
3118 http://www.python.org/peps/pep-0292.html.
3128 http://www.python.org/peps/pep-0292.html.
3119
3129
3120 I'll keep the full syntax of PEP-215, since IPython has since the
3130 I'll keep the full syntax of PEP-215, since IPython has since the
3121 start used Ka-Ping Yee's reference implementation discussed there
3131 start used Ka-Ping Yee's reference implementation discussed there
3122 (Itpl), and I actually like the powerful semantics it offers.
3132 (Itpl), and I actually like the powerful semantics it offers.
3123
3133
3124 In order to access normal shell variables, the $ has to be escaped
3134 In order to access normal shell variables, the $ has to be escaped
3125 via an extra $. For example:
3135 via an extra $. For example:
3126
3136
3127 In [7]: PATH='a python variable'
3137 In [7]: PATH='a python variable'
3128
3138
3129 In [8]: !echo $PATH
3139 In [8]: !echo $PATH
3130 a python variable
3140 a python variable
3131
3141
3132 In [9]: !echo $$PATH
3142 In [9]: !echo $$PATH
3133 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3143 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3134
3144
3135 (Magic.parse_options): escape $ so the shell doesn't evaluate
3145 (Magic.parse_options): escape $ so the shell doesn't evaluate
3136 things prematurely.
3146 things prematurely.
3137
3147
3138 * IPython/iplib.py (InteractiveShell.call_alias): added the
3148 * IPython/iplib.py (InteractiveShell.call_alias): added the
3139 ability for aliases to expand python variables via $.
3149 ability for aliases to expand python variables via $.
3140
3150
3141 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3151 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3142 system, now there's a @rehash/@rehashx pair of magics. These work
3152 system, now there's a @rehash/@rehashx pair of magics. These work
3143 like the csh rehash command, and can be invoked at any time. They
3153 like the csh rehash command, and can be invoked at any time. They
3144 build a table of aliases to everything in the user's $PATH
3154 build a table of aliases to everything in the user's $PATH
3145 (@rehash uses everything, @rehashx is slower but only adds
3155 (@rehash uses everything, @rehashx is slower but only adds
3146 executable files). With this, the pysh.py-based shell profile can
3156 executable files). With this, the pysh.py-based shell profile can
3147 now simply call rehash upon startup, and full access to all
3157 now simply call rehash upon startup, and full access to all
3148 programs in the user's path is obtained.
3158 programs in the user's path is obtained.
3149
3159
3150 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3160 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3151 functionality is now fully in place. I removed the old dynamic
3161 functionality is now fully in place. I removed the old dynamic
3152 code generation based approach, in favor of a much lighter one
3162 code generation based approach, in favor of a much lighter one
3153 based on a simple dict. The advantage is that this allows me to
3163 based on a simple dict. The advantage is that this allows me to
3154 now have thousands of aliases with negligible cost (unthinkable
3164 now have thousands of aliases with negligible cost (unthinkable
3155 with the old system).
3165 with the old system).
3156
3166
3157 2004-06-19 Fernando Perez <fperez@colorado.edu>
3167 2004-06-19 Fernando Perez <fperez@colorado.edu>
3158
3168
3159 * IPython/iplib.py (__init__): extended MagicCompleter class to
3169 * IPython/iplib.py (__init__): extended MagicCompleter class to
3160 also complete (last in priority) on user aliases.
3170 also complete (last in priority) on user aliases.
3161
3171
3162 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3172 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3163 call to eval.
3173 call to eval.
3164 (ItplNS.__init__): Added a new class which functions like Itpl,
3174 (ItplNS.__init__): Added a new class which functions like Itpl,
3165 but allows configuring the namespace for the evaluation to occur
3175 but allows configuring the namespace for the evaluation to occur
3166 in.
3176 in.
3167
3177
3168 2004-06-18 Fernando Perez <fperez@colorado.edu>
3178 2004-06-18 Fernando Perez <fperez@colorado.edu>
3169
3179
3170 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3180 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3171 better message when 'exit' or 'quit' are typed (a common newbie
3181 better message when 'exit' or 'quit' are typed (a common newbie
3172 confusion).
3182 confusion).
3173
3183
3174 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3184 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3175 check for Windows users.
3185 check for Windows users.
3176
3186
3177 * IPython/iplib.py (InteractiveShell.user_setup): removed
3187 * IPython/iplib.py (InteractiveShell.user_setup): removed
3178 disabling of colors for Windows. I'll test at runtime and issue a
3188 disabling of colors for Windows. I'll test at runtime and issue a
3179 warning if Gary's readline isn't found, as to nudge users to
3189 warning if Gary's readline isn't found, as to nudge users to
3180 download it.
3190 download it.
3181
3191
3182 2004-06-16 Fernando Perez <fperez@colorado.edu>
3192 2004-06-16 Fernando Perez <fperez@colorado.edu>
3183
3193
3184 * IPython/genutils.py (Stream.__init__): changed to print errors
3194 * IPython/genutils.py (Stream.__init__): changed to print errors
3185 to sys.stderr. I had a circular dependency here. Now it's
3195 to sys.stderr. I had a circular dependency here. Now it's
3186 possible to run ipython as IDLE's shell (consider this pre-alpha,
3196 possible to run ipython as IDLE's shell (consider this pre-alpha,
3187 since true stdout things end up in the starting terminal instead
3197 since true stdout things end up in the starting terminal instead
3188 of IDLE's out).
3198 of IDLE's out).
3189
3199
3190 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3200 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3191 users who haven't # updated their prompt_in2 definitions. Remove
3201 users who haven't # updated their prompt_in2 definitions. Remove
3192 eventually.
3202 eventually.
3193 (multiple_replace): added credit to original ASPN recipe.
3203 (multiple_replace): added credit to original ASPN recipe.
3194
3204
3195 2004-06-15 Fernando Perez <fperez@colorado.edu>
3205 2004-06-15 Fernando Perez <fperez@colorado.edu>
3196
3206
3197 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3207 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3198 list of auto-defined aliases.
3208 list of auto-defined aliases.
3199
3209
3200 2004-06-13 Fernando Perez <fperez@colorado.edu>
3210 2004-06-13 Fernando Perez <fperez@colorado.edu>
3201
3211
3202 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3212 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3203 install was really requested (so setup.py can be used for other
3213 install was really requested (so setup.py can be used for other
3204 things under Windows).
3214 things under Windows).
3205
3215
3206 2004-06-10 Fernando Perez <fperez@colorado.edu>
3216 2004-06-10 Fernando Perez <fperez@colorado.edu>
3207
3217
3208 * IPython/Logger.py (Logger.create_log): Manually remove any old
3218 * IPython/Logger.py (Logger.create_log): Manually remove any old
3209 backup, since os.remove may fail under Windows. Fixes bug
3219 backup, since os.remove may fail under Windows. Fixes bug
3210 reported by Thorsten.
3220 reported by Thorsten.
3211
3221
3212 2004-06-09 Fernando Perez <fperez@colorado.edu>
3222 2004-06-09 Fernando Perez <fperez@colorado.edu>
3213
3223
3214 * examples/example-embed.py: fixed all references to %n (replaced
3224 * examples/example-embed.py: fixed all references to %n (replaced
3215 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3225 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3216 for all examples and the manual as well.
3226 for all examples and the manual as well.
3217
3227
3218 2004-06-08 Fernando Perez <fperez@colorado.edu>
3228 2004-06-08 Fernando Perez <fperez@colorado.edu>
3219
3229
3220 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3230 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3221 alignment and color management. All 3 prompt subsystems now
3231 alignment and color management. All 3 prompt subsystems now
3222 inherit from BasePrompt.
3232 inherit from BasePrompt.
3223
3233
3224 * tools/release: updates for windows installer build and tag rpms
3234 * tools/release: updates for windows installer build and tag rpms
3225 with python version (since paths are fixed).
3235 with python version (since paths are fixed).
3226
3236
3227 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3237 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3228 which will become eventually obsolete. Also fixed the default
3238 which will become eventually obsolete. Also fixed the default
3229 prompt_in2 to use \D, so at least new users start with the correct
3239 prompt_in2 to use \D, so at least new users start with the correct
3230 defaults.
3240 defaults.
3231 WARNING: Users with existing ipythonrc files will need to apply
3241 WARNING: Users with existing ipythonrc files will need to apply
3232 this fix manually!
3242 this fix manually!
3233
3243
3234 * setup.py: make windows installer (.exe). This is finally the
3244 * setup.py: make windows installer (.exe). This is finally the
3235 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3245 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3236 which I hadn't included because it required Python 2.3 (or recent
3246 which I hadn't included because it required Python 2.3 (or recent
3237 distutils).
3247 distutils).
3238
3248
3239 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3249 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3240 usage of new '\D' escape.
3250 usage of new '\D' escape.
3241
3251
3242 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3252 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3243 lacks os.getuid())
3253 lacks os.getuid())
3244 (CachedOutput.set_colors): Added the ability to turn coloring
3254 (CachedOutput.set_colors): Added the ability to turn coloring
3245 on/off with @colors even for manually defined prompt colors. It
3255 on/off with @colors even for manually defined prompt colors. It
3246 uses a nasty global, but it works safely and via the generic color
3256 uses a nasty global, but it works safely and via the generic color
3247 handling mechanism.
3257 handling mechanism.
3248 (Prompt2.__init__): Introduced new escape '\D' for continuation
3258 (Prompt2.__init__): Introduced new escape '\D' for continuation
3249 prompts. It represents the counter ('\#') as dots.
3259 prompts. It represents the counter ('\#') as dots.
3250 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3260 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3251 need to update their ipythonrc files and replace '%n' with '\D' in
3261 need to update their ipythonrc files and replace '%n' with '\D' in
3252 their prompt_in2 settings everywhere. Sorry, but there's
3262 their prompt_in2 settings everywhere. Sorry, but there's
3253 otherwise no clean way to get all prompts to properly align. The
3263 otherwise no clean way to get all prompts to properly align. The
3254 ipythonrc shipped with IPython has been updated.
3264 ipythonrc shipped with IPython has been updated.
3255
3265
3256 2004-06-07 Fernando Perez <fperez@colorado.edu>
3266 2004-06-07 Fernando Perez <fperez@colorado.edu>
3257
3267
3258 * setup.py (isfile): Pass local_icons option to latex2html, so the
3268 * setup.py (isfile): Pass local_icons option to latex2html, so the
3259 resulting HTML file is self-contained. Thanks to
3269 resulting HTML file is self-contained. Thanks to
3260 dryice-AT-liu.com.cn for the tip.
3270 dryice-AT-liu.com.cn for the tip.
3261
3271
3262 * pysh.py: I created a new profile 'shell', which implements a
3272 * pysh.py: I created a new profile 'shell', which implements a
3263 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3273 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3264 system shell, nor will it become one anytime soon. It's mainly
3274 system shell, nor will it become one anytime soon. It's mainly
3265 meant to illustrate the use of the new flexible bash-like prompts.
3275 meant to illustrate the use of the new flexible bash-like prompts.
3266 I guess it could be used by hardy souls for true shell management,
3276 I guess it could be used by hardy souls for true shell management,
3267 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3277 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3268 profile. This uses the InterpreterExec extension provided by
3278 profile. This uses the InterpreterExec extension provided by
3269 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3279 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3270
3280
3271 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3281 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3272 auto-align itself with the length of the previous input prompt
3282 auto-align itself with the length of the previous input prompt
3273 (taking into account the invisible color escapes).
3283 (taking into account the invisible color escapes).
3274 (CachedOutput.__init__): Large restructuring of this class. Now
3284 (CachedOutput.__init__): Large restructuring of this class. Now
3275 all three prompts (primary1, primary2, output) are proper objects,
3285 all three prompts (primary1, primary2, output) are proper objects,
3276 managed by the 'parent' CachedOutput class. The code is still a
3286 managed by the 'parent' CachedOutput class. The code is still a
3277 bit hackish (all prompts share state via a pointer to the cache),
3287 bit hackish (all prompts share state via a pointer to the cache),
3278 but it's overall far cleaner than before.
3288 but it's overall far cleaner than before.
3279
3289
3280 * IPython/genutils.py (getoutputerror): modified to add verbose,
3290 * IPython/genutils.py (getoutputerror): modified to add verbose,
3281 debug and header options. This makes the interface of all getout*
3291 debug and header options. This makes the interface of all getout*
3282 functions uniform.
3292 functions uniform.
3283 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3293 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3284
3294
3285 * IPython/Magic.py (Magic.default_option): added a function to
3295 * IPython/Magic.py (Magic.default_option): added a function to
3286 allow registering default options for any magic command. This
3296 allow registering default options for any magic command. This
3287 makes it easy to have profiles which customize the magics globally
3297 makes it easy to have profiles which customize the magics globally
3288 for a certain use. The values set through this function are
3298 for a certain use. The values set through this function are
3289 picked up by the parse_options() method, which all magics should
3299 picked up by the parse_options() method, which all magics should
3290 use to parse their options.
3300 use to parse their options.
3291
3301
3292 * IPython/genutils.py (warn): modified the warnings framework to
3302 * IPython/genutils.py (warn): modified the warnings framework to
3293 use the Term I/O class. I'm trying to slowly unify all of
3303 use the Term I/O class. I'm trying to slowly unify all of
3294 IPython's I/O operations to pass through Term.
3304 IPython's I/O operations to pass through Term.
3295
3305
3296 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3306 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3297 the secondary prompt to correctly match the length of the primary
3307 the secondary prompt to correctly match the length of the primary
3298 one for any prompt. Now multi-line code will properly line up
3308 one for any prompt. Now multi-line code will properly line up
3299 even for path dependent prompts, such as the new ones available
3309 even for path dependent prompts, such as the new ones available
3300 via the prompt_specials.
3310 via the prompt_specials.
3301
3311
3302 2004-06-06 Fernando Perez <fperez@colorado.edu>
3312 2004-06-06 Fernando Perez <fperez@colorado.edu>
3303
3313
3304 * IPython/Prompts.py (prompt_specials): Added the ability to have
3314 * IPython/Prompts.py (prompt_specials): Added the ability to have
3305 bash-like special sequences in the prompts, which get
3315 bash-like special sequences in the prompts, which get
3306 automatically expanded. Things like hostname, current working
3316 automatically expanded. Things like hostname, current working
3307 directory and username are implemented already, but it's easy to
3317 directory and username are implemented already, but it's easy to
3308 add more in the future. Thanks to a patch by W.J. van der Laan
3318 add more in the future. Thanks to a patch by W.J. van der Laan
3309 <gnufnork-AT-hetdigitalegat.nl>
3319 <gnufnork-AT-hetdigitalegat.nl>
3310 (prompt_specials): Added color support for prompt strings, so
3320 (prompt_specials): Added color support for prompt strings, so
3311 users can define arbitrary color setups for their prompts.
3321 users can define arbitrary color setups for their prompts.
3312
3322
3313 2004-06-05 Fernando Perez <fperez@colorado.edu>
3323 2004-06-05 Fernando Perez <fperez@colorado.edu>
3314
3324
3315 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3325 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3316 code to load Gary Bishop's readline and configure it
3326 code to load Gary Bishop's readline and configure it
3317 automatically. Thanks to Gary for help on this.
3327 automatically. Thanks to Gary for help on this.
3318
3328
3319 2004-06-01 Fernando Perez <fperez@colorado.edu>
3329 2004-06-01 Fernando Perez <fperez@colorado.edu>
3320
3330
3321 * IPython/Logger.py (Logger.create_log): fix bug for logging
3331 * IPython/Logger.py (Logger.create_log): fix bug for logging
3322 with no filename (previous fix was incomplete).
3332 with no filename (previous fix was incomplete).
3323
3333
3324 2004-05-25 Fernando Perez <fperez@colorado.edu>
3334 2004-05-25 Fernando Perez <fperez@colorado.edu>
3325
3335
3326 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3336 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3327 parens would get passed to the shell.
3337 parens would get passed to the shell.
3328
3338
3329 2004-05-20 Fernando Perez <fperez@colorado.edu>
3339 2004-05-20 Fernando Perez <fperez@colorado.edu>
3330
3340
3331 * IPython/Magic.py (Magic.magic_prun): changed default profile
3341 * IPython/Magic.py (Magic.magic_prun): changed default profile
3332 sort order to 'time' (the more common profiling need).
3342 sort order to 'time' (the more common profiling need).
3333
3343
3334 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3344 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3335 so that source code shown is guaranteed in sync with the file on
3345 so that source code shown is guaranteed in sync with the file on
3336 disk (also changed in psource). Similar fix to the one for
3346 disk (also changed in psource). Similar fix to the one for
3337 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3347 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3338 <yann.ledu-AT-noos.fr>.
3348 <yann.ledu-AT-noos.fr>.
3339
3349
3340 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3350 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3341 with a single option would not be correctly parsed. Closes
3351 with a single option would not be correctly parsed. Closes
3342 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3352 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3343 introduced in 0.6.0 (on 2004-05-06).
3353 introduced in 0.6.0 (on 2004-05-06).
3344
3354
3345 2004-05-13 *** Released version 0.6.0
3355 2004-05-13 *** Released version 0.6.0
3346
3356
3347 2004-05-13 Fernando Perez <fperez@colorado.edu>
3357 2004-05-13 Fernando Perez <fperez@colorado.edu>
3348
3358
3349 * debian/: Added debian/ directory to CVS, so that debian support
3359 * debian/: Added debian/ directory to CVS, so that debian support
3350 is publicly accessible. The debian package is maintained by Jack
3360 is publicly accessible. The debian package is maintained by Jack
3351 Moffit <jack-AT-xiph.org>.
3361 Moffit <jack-AT-xiph.org>.
3352
3362
3353 * Documentation: included the notes about an ipython-based system
3363 * Documentation: included the notes about an ipython-based system
3354 shell (the hypothetical 'pysh') into the new_design.pdf document,
3364 shell (the hypothetical 'pysh') into the new_design.pdf document,
3355 so that these ideas get distributed to users along with the
3365 so that these ideas get distributed to users along with the
3356 official documentation.
3366 official documentation.
3357
3367
3358 2004-05-10 Fernando Perez <fperez@colorado.edu>
3368 2004-05-10 Fernando Perez <fperez@colorado.edu>
3359
3369
3360 * IPython/Logger.py (Logger.create_log): fix recently introduced
3370 * IPython/Logger.py (Logger.create_log): fix recently introduced
3361 bug (misindented line) where logstart would fail when not given an
3371 bug (misindented line) where logstart would fail when not given an
3362 explicit filename.
3372 explicit filename.
3363
3373
3364 2004-05-09 Fernando Perez <fperez@colorado.edu>
3374 2004-05-09 Fernando Perez <fperez@colorado.edu>
3365
3375
3366 * IPython/Magic.py (Magic.parse_options): skip system call when
3376 * IPython/Magic.py (Magic.parse_options): skip system call when
3367 there are no options to look for. Faster, cleaner for the common
3377 there are no options to look for. Faster, cleaner for the common
3368 case.
3378 case.
3369
3379
3370 * Documentation: many updates to the manual: describing Windows
3380 * Documentation: many updates to the manual: describing Windows
3371 support better, Gnuplot updates, credits, misc small stuff. Also
3381 support better, Gnuplot updates, credits, misc small stuff. Also
3372 updated the new_design doc a bit.
3382 updated the new_design doc a bit.
3373
3383
3374 2004-05-06 *** Released version 0.6.0.rc1
3384 2004-05-06 *** Released version 0.6.0.rc1
3375
3385
3376 2004-05-06 Fernando Perez <fperez@colorado.edu>
3386 2004-05-06 Fernando Perez <fperez@colorado.edu>
3377
3387
3378 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3388 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3379 operations to use the vastly more efficient list/''.join() method.
3389 operations to use the vastly more efficient list/''.join() method.
3380 (FormattedTB.text): Fix
3390 (FormattedTB.text): Fix
3381 http://www.scipy.net/roundup/ipython/issue12 - exception source
3391 http://www.scipy.net/roundup/ipython/issue12 - exception source
3382 extract not updated after reload. Thanks to Mike Salib
3392 extract not updated after reload. Thanks to Mike Salib
3383 <msalib-AT-mit.edu> for pinning the source of the problem.
3393 <msalib-AT-mit.edu> for pinning the source of the problem.
3384 Fortunately, the solution works inside ipython and doesn't require
3394 Fortunately, the solution works inside ipython and doesn't require
3385 any changes to python proper.
3395 any changes to python proper.
3386
3396
3387 * IPython/Magic.py (Magic.parse_options): Improved to process the
3397 * IPython/Magic.py (Magic.parse_options): Improved to process the
3388 argument list as a true shell would (by actually using the
3398 argument list as a true shell would (by actually using the
3389 underlying system shell). This way, all @magics automatically get
3399 underlying system shell). This way, all @magics automatically get
3390 shell expansion for variables. Thanks to a comment by Alex
3400 shell expansion for variables. Thanks to a comment by Alex
3391 Schmolck.
3401 Schmolck.
3392
3402
3393 2004-04-04 Fernando Perez <fperez@colorado.edu>
3403 2004-04-04 Fernando Perez <fperez@colorado.edu>
3394
3404
3395 * IPython/iplib.py (InteractiveShell.interact): Added a special
3405 * IPython/iplib.py (InteractiveShell.interact): Added a special
3396 trap for a debugger quit exception, which is basically impossible
3406 trap for a debugger quit exception, which is basically impossible
3397 to handle by normal mechanisms, given what pdb does to the stack.
3407 to handle by normal mechanisms, given what pdb does to the stack.
3398 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3408 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3399
3409
3400 2004-04-03 Fernando Perez <fperez@colorado.edu>
3410 2004-04-03 Fernando Perez <fperez@colorado.edu>
3401
3411
3402 * IPython/genutils.py (Term): Standardized the names of the Term
3412 * IPython/genutils.py (Term): Standardized the names of the Term
3403 class streams to cin/cout/cerr, following C++ naming conventions
3413 class streams to cin/cout/cerr, following C++ naming conventions
3404 (I can't use in/out/err because 'in' is not a valid attribute
3414 (I can't use in/out/err because 'in' is not a valid attribute
3405 name).
3415 name).
3406
3416
3407 * IPython/iplib.py (InteractiveShell.interact): don't increment
3417 * IPython/iplib.py (InteractiveShell.interact): don't increment
3408 the prompt if there's no user input. By Daniel 'Dang' Griffith
3418 the prompt if there's no user input. By Daniel 'Dang' Griffith
3409 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3419 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3410 Francois Pinard.
3420 Francois Pinard.
3411
3421
3412 2004-04-02 Fernando Perez <fperez@colorado.edu>
3422 2004-04-02 Fernando Perez <fperez@colorado.edu>
3413
3423
3414 * IPython/genutils.py (Stream.__init__): Modified to survive at
3424 * IPython/genutils.py (Stream.__init__): Modified to survive at
3415 least importing in contexts where stdin/out/err aren't true file
3425 least importing in contexts where stdin/out/err aren't true file
3416 objects, such as PyCrust (they lack fileno() and mode). However,
3426 objects, such as PyCrust (they lack fileno() and mode). However,
3417 the recovery facilities which rely on these things existing will
3427 the recovery facilities which rely on these things existing will
3418 not work.
3428 not work.
3419
3429
3420 2004-04-01 Fernando Perez <fperez@colorado.edu>
3430 2004-04-01 Fernando Perez <fperez@colorado.edu>
3421
3431
3422 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3432 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3423 use the new getoutputerror() function, so it properly
3433 use the new getoutputerror() function, so it properly
3424 distinguishes stdout/err.
3434 distinguishes stdout/err.
3425
3435
3426 * IPython/genutils.py (getoutputerror): added a function to
3436 * IPython/genutils.py (getoutputerror): added a function to
3427 capture separately the standard output and error of a command.
3437 capture separately the standard output and error of a command.
3428 After a comment from dang on the mailing lists. This code is
3438 After a comment from dang on the mailing lists. This code is
3429 basically a modified version of commands.getstatusoutput(), from
3439 basically a modified version of commands.getstatusoutput(), from
3430 the standard library.
3440 the standard library.
3431
3441
3432 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3442 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3433 '!!' as a special syntax (shorthand) to access @sx.
3443 '!!' as a special syntax (shorthand) to access @sx.
3434
3444
3435 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3445 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3436 command and return its output as a list split on '\n'.
3446 command and return its output as a list split on '\n'.
3437
3447
3438 2004-03-31 Fernando Perez <fperez@colorado.edu>
3448 2004-03-31 Fernando Perez <fperez@colorado.edu>
3439
3449
3440 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3450 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3441 method to dictionaries used as FakeModule instances if they lack
3451 method to dictionaries used as FakeModule instances if they lack
3442 it. At least pydoc in python2.3 breaks for runtime-defined
3452 it. At least pydoc in python2.3 breaks for runtime-defined
3443 functions without this hack. At some point I need to _really_
3453 functions without this hack. At some point I need to _really_
3444 understand what FakeModule is doing, because it's a gross hack.
3454 understand what FakeModule is doing, because it's a gross hack.
3445 But it solves Arnd's problem for now...
3455 But it solves Arnd's problem for now...
3446
3456
3447 2004-02-27 Fernando Perez <fperez@colorado.edu>
3457 2004-02-27 Fernando Perez <fperez@colorado.edu>
3448
3458
3449 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3459 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3450 mode would behave erratically. Also increased the number of
3460 mode would behave erratically. Also increased the number of
3451 possible logs in rotate mod to 999. Thanks to Rod Holland
3461 possible logs in rotate mod to 999. Thanks to Rod Holland
3452 <rhh@StructureLABS.com> for the report and fixes.
3462 <rhh@StructureLABS.com> for the report and fixes.
3453
3463
3454 2004-02-26 Fernando Perez <fperez@colorado.edu>
3464 2004-02-26 Fernando Perez <fperez@colorado.edu>
3455
3465
3456 * IPython/genutils.py (page): Check that the curses module really
3466 * IPython/genutils.py (page): Check that the curses module really
3457 has the initscr attribute before trying to use it. For some
3467 has the initscr attribute before trying to use it. For some
3458 reason, the Solaris curses module is missing this. I think this
3468 reason, the Solaris curses module is missing this. I think this
3459 should be considered a Solaris python bug, but I'm not sure.
3469 should be considered a Solaris python bug, but I'm not sure.
3460
3470
3461 2004-01-17 Fernando Perez <fperez@colorado.edu>
3471 2004-01-17 Fernando Perez <fperez@colorado.edu>
3462
3472
3463 * IPython/genutils.py (Stream.__init__): Changes to try to make
3473 * IPython/genutils.py (Stream.__init__): Changes to try to make
3464 ipython robust against stdin/out/err being closed by the user.
3474 ipython robust against stdin/out/err being closed by the user.
3465 This is 'user error' (and blocks a normal python session, at least
3475 This is 'user error' (and blocks a normal python session, at least
3466 the stdout case). However, Ipython should be able to survive such
3476 the stdout case). However, Ipython should be able to survive such
3467 instances of abuse as gracefully as possible. To simplify the
3477 instances of abuse as gracefully as possible. To simplify the
3468 coding and maintain compatibility with Gary Bishop's Term
3478 coding and maintain compatibility with Gary Bishop's Term
3469 contributions, I've made use of classmethods for this. I think
3479 contributions, I've made use of classmethods for this. I think
3470 this introduces a dependency on python 2.2.
3480 this introduces a dependency on python 2.2.
3471
3481
3472 2004-01-13 Fernando Perez <fperez@colorado.edu>
3482 2004-01-13 Fernando Perez <fperez@colorado.edu>
3473
3483
3474 * IPython/numutils.py (exp_safe): simplified the code a bit and
3484 * IPython/numutils.py (exp_safe): simplified the code a bit and
3475 removed the need for importing the kinds module altogether.
3485 removed the need for importing the kinds module altogether.
3476
3486
3477 2004-01-06 Fernando Perez <fperez@colorado.edu>
3487 2004-01-06 Fernando Perez <fperez@colorado.edu>
3478
3488
3479 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3489 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3480 a magic function instead, after some community feedback. No
3490 a magic function instead, after some community feedback. No
3481 special syntax will exist for it, but its name is deliberately
3491 special syntax will exist for it, but its name is deliberately
3482 very short.
3492 very short.
3483
3493
3484 2003-12-20 Fernando Perez <fperez@colorado.edu>
3494 2003-12-20 Fernando Perez <fperez@colorado.edu>
3485
3495
3486 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3496 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3487 new functionality, to automagically assign the result of a shell
3497 new functionality, to automagically assign the result of a shell
3488 command to a variable. I'll solicit some community feedback on
3498 command to a variable. I'll solicit some community feedback on
3489 this before making it permanent.
3499 this before making it permanent.
3490
3500
3491 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3501 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3492 requested about callables for which inspect couldn't obtain a
3502 requested about callables for which inspect couldn't obtain a
3493 proper argspec. Thanks to a crash report sent by Etienne
3503 proper argspec. Thanks to a crash report sent by Etienne
3494 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3504 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3495
3505
3496 2003-12-09 Fernando Perez <fperez@colorado.edu>
3506 2003-12-09 Fernando Perez <fperez@colorado.edu>
3497
3507
3498 * IPython/genutils.py (page): patch for the pager to work across
3508 * IPython/genutils.py (page): patch for the pager to work across
3499 various versions of Windows. By Gary Bishop.
3509 various versions of Windows. By Gary Bishop.
3500
3510
3501 2003-12-04 Fernando Perez <fperez@colorado.edu>
3511 2003-12-04 Fernando Perez <fperez@colorado.edu>
3502
3512
3503 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3513 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3504 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3514 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3505 While I tested this and it looks ok, there may still be corner
3515 While I tested this and it looks ok, there may still be corner
3506 cases I've missed.
3516 cases I've missed.
3507
3517
3508 2003-12-01 Fernando Perez <fperez@colorado.edu>
3518 2003-12-01 Fernando Perez <fperez@colorado.edu>
3509
3519
3510 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3520 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3511 where a line like 'p,q=1,2' would fail because the automagic
3521 where a line like 'p,q=1,2' would fail because the automagic
3512 system would be triggered for @p.
3522 system would be triggered for @p.
3513
3523
3514 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3524 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3515 cleanups, code unmodified.
3525 cleanups, code unmodified.
3516
3526
3517 * IPython/genutils.py (Term): added a class for IPython to handle
3527 * IPython/genutils.py (Term): added a class for IPython to handle
3518 output. In most cases it will just be a proxy for stdout/err, but
3528 output. In most cases it will just be a proxy for stdout/err, but
3519 having this allows modifications to be made for some platforms,
3529 having this allows modifications to be made for some platforms,
3520 such as handling color escapes under Windows. All of this code
3530 such as handling color escapes under Windows. All of this code
3521 was contributed by Gary Bishop, with minor modifications by me.
3531 was contributed by Gary Bishop, with minor modifications by me.
3522 The actual changes affect many files.
3532 The actual changes affect many files.
3523
3533
3524 2003-11-30 Fernando Perez <fperez@colorado.edu>
3534 2003-11-30 Fernando Perez <fperez@colorado.edu>
3525
3535
3526 * IPython/iplib.py (file_matches): new completion code, courtesy
3536 * IPython/iplib.py (file_matches): new completion code, courtesy
3527 of Jeff Collins. This enables filename completion again under
3537 of Jeff Collins. This enables filename completion again under
3528 python 2.3, which disabled it at the C level.
3538 python 2.3, which disabled it at the C level.
3529
3539
3530 2003-11-11 Fernando Perez <fperez@colorado.edu>
3540 2003-11-11 Fernando Perez <fperez@colorado.edu>
3531
3541
3532 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3542 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3533 for Numeric.array(map(...)), but often convenient.
3543 for Numeric.array(map(...)), but often convenient.
3534
3544
3535 2003-11-05 Fernando Perez <fperez@colorado.edu>
3545 2003-11-05 Fernando Perez <fperez@colorado.edu>
3536
3546
3537 * IPython/numutils.py (frange): Changed a call from int() to
3547 * IPython/numutils.py (frange): Changed a call from int() to
3538 int(round()) to prevent a problem reported with arange() in the
3548 int(round()) to prevent a problem reported with arange() in the
3539 numpy list.
3549 numpy list.
3540
3550
3541 2003-10-06 Fernando Perez <fperez@colorado.edu>
3551 2003-10-06 Fernando Perez <fperez@colorado.edu>
3542
3552
3543 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3553 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3544 prevent crashes if sys lacks an argv attribute (it happens with
3554 prevent crashes if sys lacks an argv attribute (it happens with
3545 embedded interpreters which build a bare-bones sys module).
3555 embedded interpreters which build a bare-bones sys module).
3546 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3556 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3547
3557
3548 2003-09-24 Fernando Perez <fperez@colorado.edu>
3558 2003-09-24 Fernando Perez <fperez@colorado.edu>
3549
3559
3550 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3560 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3551 to protect against poorly written user objects where __getattr__
3561 to protect against poorly written user objects where __getattr__
3552 raises exceptions other than AttributeError. Thanks to a bug
3562 raises exceptions other than AttributeError. Thanks to a bug
3553 report by Oliver Sander <osander-AT-gmx.de>.
3563 report by Oliver Sander <osander-AT-gmx.de>.
3554
3564
3555 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3565 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3556 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3566 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3557
3567
3558 2003-09-09 Fernando Perez <fperez@colorado.edu>
3568 2003-09-09 Fernando Perez <fperez@colorado.edu>
3559
3569
3560 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3570 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3561 unpacking a list whith a callable as first element would
3571 unpacking a list whith a callable as first element would
3562 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3572 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3563 Collins.
3573 Collins.
3564
3574
3565 2003-08-25 *** Released version 0.5.0
3575 2003-08-25 *** Released version 0.5.0
3566
3576
3567 2003-08-22 Fernando Perez <fperez@colorado.edu>
3577 2003-08-22 Fernando Perez <fperez@colorado.edu>
3568
3578
3569 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3579 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3570 improperly defined user exceptions. Thanks to feedback from Mark
3580 improperly defined user exceptions. Thanks to feedback from Mark
3571 Russell <mrussell-AT-verio.net>.
3581 Russell <mrussell-AT-verio.net>.
3572
3582
3573 2003-08-20 Fernando Perez <fperez@colorado.edu>
3583 2003-08-20 Fernando Perez <fperez@colorado.edu>
3574
3584
3575 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3585 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3576 printing so that it would print multi-line string forms starting
3586 printing so that it would print multi-line string forms starting
3577 with a new line. This way the formatting is better respected for
3587 with a new line. This way the formatting is better respected for
3578 objects which work hard to make nice string forms.
3588 objects which work hard to make nice string forms.
3579
3589
3580 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3590 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3581 autocall would overtake data access for objects with both
3591 autocall would overtake data access for objects with both
3582 __getitem__ and __call__.
3592 __getitem__ and __call__.
3583
3593
3584 2003-08-19 *** Released version 0.5.0-rc1
3594 2003-08-19 *** Released version 0.5.0-rc1
3585
3595
3586 2003-08-19 Fernando Perez <fperez@colorado.edu>
3596 2003-08-19 Fernando Perez <fperez@colorado.edu>
3587
3597
3588 * IPython/deep_reload.py (load_tail): single tiny change here
3598 * IPython/deep_reload.py (load_tail): single tiny change here
3589 seems to fix the long-standing bug of dreload() failing to work
3599 seems to fix the long-standing bug of dreload() failing to work
3590 for dotted names. But this module is pretty tricky, so I may have
3600 for dotted names. But this module is pretty tricky, so I may have
3591 missed some subtlety. Needs more testing!.
3601 missed some subtlety. Needs more testing!.
3592
3602
3593 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3603 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3594 exceptions which have badly implemented __str__ methods.
3604 exceptions which have badly implemented __str__ methods.
3595 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3605 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3596 which I've been getting reports about from Python 2.3 users. I
3606 which I've been getting reports about from Python 2.3 users. I
3597 wish I had a simple test case to reproduce the problem, so I could
3607 wish I had a simple test case to reproduce the problem, so I could
3598 either write a cleaner workaround or file a bug report if
3608 either write a cleaner workaround or file a bug report if
3599 necessary.
3609 necessary.
3600
3610
3601 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3611 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3602 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3612 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3603 a bug report by Tjabo Kloppenburg.
3613 a bug report by Tjabo Kloppenburg.
3604
3614
3605 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3615 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3606 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3616 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3607 seems rather unstable. Thanks to a bug report by Tjabo
3617 seems rather unstable. Thanks to a bug report by Tjabo
3608 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3618 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3609
3619
3610 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3620 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3611 this out soon because of the critical fixes in the inner loop for
3621 this out soon because of the critical fixes in the inner loop for
3612 generators.
3622 generators.
3613
3623
3614 * IPython/Magic.py (Magic.getargspec): removed. This (and
3624 * IPython/Magic.py (Magic.getargspec): removed. This (and
3615 _get_def) have been obsoleted by OInspect for a long time, I
3625 _get_def) have been obsoleted by OInspect for a long time, I
3616 hadn't noticed that they were dead code.
3626 hadn't noticed that they were dead code.
3617 (Magic._ofind): restored _ofind functionality for a few literals
3627 (Magic._ofind): restored _ofind functionality for a few literals
3618 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3628 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3619 for things like "hello".capitalize?, since that would require a
3629 for things like "hello".capitalize?, since that would require a
3620 potentially dangerous eval() again.
3630 potentially dangerous eval() again.
3621
3631
3622 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3632 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3623 logic a bit more to clean up the escapes handling and minimize the
3633 logic a bit more to clean up the escapes handling and minimize the
3624 use of _ofind to only necessary cases. The interactive 'feel' of
3634 use of _ofind to only necessary cases. The interactive 'feel' of
3625 IPython should have improved quite a bit with the changes in
3635 IPython should have improved quite a bit with the changes in
3626 _prefilter and _ofind (besides being far safer than before).
3636 _prefilter and _ofind (besides being far safer than before).
3627
3637
3628 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3638 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3629 obscure, never reported). Edit would fail to find the object to
3639 obscure, never reported). Edit would fail to find the object to
3630 edit under some circumstances.
3640 edit under some circumstances.
3631 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3641 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3632 which were causing double-calling of generators. Those eval calls
3642 which were causing double-calling of generators. Those eval calls
3633 were _very_ dangerous, since code with side effects could be
3643 were _very_ dangerous, since code with side effects could be
3634 triggered. As they say, 'eval is evil'... These were the
3644 triggered. As they say, 'eval is evil'... These were the
3635 nastiest evals in IPython. Besides, _ofind is now far simpler,
3645 nastiest evals in IPython. Besides, _ofind is now far simpler,
3636 and it should also be quite a bit faster. Its use of inspect is
3646 and it should also be quite a bit faster. Its use of inspect is
3637 also safer, so perhaps some of the inspect-related crashes I've
3647 also safer, so perhaps some of the inspect-related crashes I've
3638 seen lately with Python 2.3 might be taken care of. That will
3648 seen lately with Python 2.3 might be taken care of. That will
3639 need more testing.
3649 need more testing.
3640
3650
3641 2003-08-17 Fernando Perez <fperez@colorado.edu>
3651 2003-08-17 Fernando Perez <fperez@colorado.edu>
3642
3652
3643 * IPython/iplib.py (InteractiveShell._prefilter): significant
3653 * IPython/iplib.py (InteractiveShell._prefilter): significant
3644 simplifications to the logic for handling user escapes. Faster
3654 simplifications to the logic for handling user escapes. Faster
3645 and simpler code.
3655 and simpler code.
3646
3656
3647 2003-08-14 Fernando Perez <fperez@colorado.edu>
3657 2003-08-14 Fernando Perez <fperez@colorado.edu>
3648
3658
3649 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3659 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3650 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3660 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3651 but it should be quite a bit faster. And the recursive version
3661 but it should be quite a bit faster. And the recursive version
3652 generated O(log N) intermediate storage for all rank>1 arrays,
3662 generated O(log N) intermediate storage for all rank>1 arrays,
3653 even if they were contiguous.
3663 even if they were contiguous.
3654 (l1norm): Added this function.
3664 (l1norm): Added this function.
3655 (norm): Added this function for arbitrary norms (including
3665 (norm): Added this function for arbitrary norms (including
3656 l-infinity). l1 and l2 are still special cases for convenience
3666 l-infinity). l1 and l2 are still special cases for convenience
3657 and speed.
3667 and speed.
3658
3668
3659 2003-08-03 Fernando Perez <fperez@colorado.edu>
3669 2003-08-03 Fernando Perez <fperez@colorado.edu>
3660
3670
3661 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3671 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3662 exceptions, which now raise PendingDeprecationWarnings in Python
3672 exceptions, which now raise PendingDeprecationWarnings in Python
3663 2.3. There were some in Magic and some in Gnuplot2.
3673 2.3. There were some in Magic and some in Gnuplot2.
3664
3674
3665 2003-06-30 Fernando Perez <fperez@colorado.edu>
3675 2003-06-30 Fernando Perez <fperez@colorado.edu>
3666
3676
3667 * IPython/genutils.py (page): modified to call curses only for
3677 * IPython/genutils.py (page): modified to call curses only for
3668 terminals where TERM=='xterm'. After problems under many other
3678 terminals where TERM=='xterm'. After problems under many other
3669 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3679 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3670
3680
3671 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3681 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3672 would be triggered when readline was absent. This was just an old
3682 would be triggered when readline was absent. This was just an old
3673 debugging statement I'd forgotten to take out.
3683 debugging statement I'd forgotten to take out.
3674
3684
3675 2003-06-20 Fernando Perez <fperez@colorado.edu>
3685 2003-06-20 Fernando Perez <fperez@colorado.edu>
3676
3686
3677 * IPython/genutils.py (clock): modified to return only user time
3687 * IPython/genutils.py (clock): modified to return only user time
3678 (not counting system time), after a discussion on scipy. While
3688 (not counting system time), after a discussion on scipy. While
3679 system time may be a useful quantity occasionally, it may much
3689 system time may be a useful quantity occasionally, it may much
3680 more easily be skewed by occasional swapping or other similar
3690 more easily be skewed by occasional swapping or other similar
3681 activity.
3691 activity.
3682
3692
3683 2003-06-05 Fernando Perez <fperez@colorado.edu>
3693 2003-06-05 Fernando Perez <fperez@colorado.edu>
3684
3694
3685 * IPython/numutils.py (identity): new function, for building
3695 * IPython/numutils.py (identity): new function, for building
3686 arbitrary rank Kronecker deltas (mostly backwards compatible with
3696 arbitrary rank Kronecker deltas (mostly backwards compatible with
3687 Numeric.identity)
3697 Numeric.identity)
3688
3698
3689 2003-06-03 Fernando Perez <fperez@colorado.edu>
3699 2003-06-03 Fernando Perez <fperez@colorado.edu>
3690
3700
3691 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3701 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3692 arguments passed to magics with spaces, to allow trailing '\' to
3702 arguments passed to magics with spaces, to allow trailing '\' to
3693 work normally (mainly for Windows users).
3703 work normally (mainly for Windows users).
3694
3704
3695 2003-05-29 Fernando Perez <fperez@colorado.edu>
3705 2003-05-29 Fernando Perez <fperez@colorado.edu>
3696
3706
3697 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3707 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3698 instead of pydoc.help. This fixes a bizarre behavior where
3708 instead of pydoc.help. This fixes a bizarre behavior where
3699 printing '%s' % locals() would trigger the help system. Now
3709 printing '%s' % locals() would trigger the help system. Now
3700 ipython behaves like normal python does.
3710 ipython behaves like normal python does.
3701
3711
3702 Note that if one does 'from pydoc import help', the bizarre
3712 Note that if one does 'from pydoc import help', the bizarre
3703 behavior returns, but this will also happen in normal python, so
3713 behavior returns, but this will also happen in normal python, so
3704 it's not an ipython bug anymore (it has to do with how pydoc.help
3714 it's not an ipython bug anymore (it has to do with how pydoc.help
3705 is implemented).
3715 is implemented).
3706
3716
3707 2003-05-22 Fernando Perez <fperez@colorado.edu>
3717 2003-05-22 Fernando Perez <fperez@colorado.edu>
3708
3718
3709 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3719 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3710 return [] instead of None when nothing matches, also match to end
3720 return [] instead of None when nothing matches, also match to end
3711 of line. Patch by Gary Bishop.
3721 of line. Patch by Gary Bishop.
3712
3722
3713 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3723 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3714 protection as before, for files passed on the command line. This
3724 protection as before, for files passed on the command line. This
3715 prevents the CrashHandler from kicking in if user files call into
3725 prevents the CrashHandler from kicking in if user files call into
3716 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3726 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3717 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3727 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3718
3728
3719 2003-05-20 *** Released version 0.4.0
3729 2003-05-20 *** Released version 0.4.0
3720
3730
3721 2003-05-20 Fernando Perez <fperez@colorado.edu>
3731 2003-05-20 Fernando Perez <fperez@colorado.edu>
3722
3732
3723 * setup.py: added support for manpages. It's a bit hackish b/c of
3733 * setup.py: added support for manpages. It's a bit hackish b/c of
3724 a bug in the way the bdist_rpm distutils target handles gzipped
3734 a bug in the way the bdist_rpm distutils target handles gzipped
3725 manpages, but it works. After a patch by Jack.
3735 manpages, but it works. After a patch by Jack.
3726
3736
3727 2003-05-19 Fernando Perez <fperez@colorado.edu>
3737 2003-05-19 Fernando Perez <fperez@colorado.edu>
3728
3738
3729 * IPython/numutils.py: added a mockup of the kinds module, since
3739 * IPython/numutils.py: added a mockup of the kinds module, since
3730 it was recently removed from Numeric. This way, numutils will
3740 it was recently removed from Numeric. This way, numutils will
3731 work for all users even if they are missing kinds.
3741 work for all users even if they are missing kinds.
3732
3742
3733 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3743 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3734 failure, which can occur with SWIG-wrapped extensions. After a
3744 failure, which can occur with SWIG-wrapped extensions. After a
3735 crash report from Prabhu.
3745 crash report from Prabhu.
3736
3746
3737 2003-05-16 Fernando Perez <fperez@colorado.edu>
3747 2003-05-16 Fernando Perez <fperez@colorado.edu>
3738
3748
3739 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3749 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3740 protect ipython from user code which may call directly
3750 protect ipython from user code which may call directly
3741 sys.excepthook (this looks like an ipython crash to the user, even
3751 sys.excepthook (this looks like an ipython crash to the user, even
3742 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3752 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3743 This is especially important to help users of WxWindows, but may
3753 This is especially important to help users of WxWindows, but may
3744 also be useful in other cases.
3754 also be useful in other cases.
3745
3755
3746 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3756 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3747 an optional tb_offset to be specified, and to preserve exception
3757 an optional tb_offset to be specified, and to preserve exception
3748 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3758 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3749
3759
3750 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3760 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3751
3761
3752 2003-05-15 Fernando Perez <fperez@colorado.edu>
3762 2003-05-15 Fernando Perez <fperez@colorado.edu>
3753
3763
3754 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3764 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3755 installing for a new user under Windows.
3765 installing for a new user under Windows.
3756
3766
3757 2003-05-12 Fernando Perez <fperez@colorado.edu>
3767 2003-05-12 Fernando Perez <fperez@colorado.edu>
3758
3768
3759 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3769 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3760 handler for Emacs comint-based lines. Currently it doesn't do
3770 handler for Emacs comint-based lines. Currently it doesn't do
3761 much (but importantly, it doesn't update the history cache). In
3771 much (but importantly, it doesn't update the history cache). In
3762 the future it may be expanded if Alex needs more functionality
3772 the future it may be expanded if Alex needs more functionality
3763 there.
3773 there.
3764
3774
3765 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3775 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3766 info to crash reports.
3776 info to crash reports.
3767
3777
3768 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3778 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3769 just like Python's -c. Also fixed crash with invalid -color
3779 just like Python's -c. Also fixed crash with invalid -color
3770 option value at startup. Thanks to Will French
3780 option value at startup. Thanks to Will French
3771 <wfrench-AT-bestweb.net> for the bug report.
3781 <wfrench-AT-bestweb.net> for the bug report.
3772
3782
3773 2003-05-09 Fernando Perez <fperez@colorado.edu>
3783 2003-05-09 Fernando Perez <fperez@colorado.edu>
3774
3784
3775 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3785 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3776 to EvalDict (it's a mapping, after all) and simplified its code
3786 to EvalDict (it's a mapping, after all) and simplified its code
3777 quite a bit, after a nice discussion on c.l.py where Gustavo
3787 quite a bit, after a nice discussion on c.l.py where Gustavo
3778 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3788 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3779
3789
3780 2003-04-30 Fernando Perez <fperez@colorado.edu>
3790 2003-04-30 Fernando Perez <fperez@colorado.edu>
3781
3791
3782 * IPython/genutils.py (timings_out): modified it to reduce its
3792 * IPython/genutils.py (timings_out): modified it to reduce its
3783 overhead in the common reps==1 case.
3793 overhead in the common reps==1 case.
3784
3794
3785 2003-04-29 Fernando Perez <fperez@colorado.edu>
3795 2003-04-29 Fernando Perez <fperez@colorado.edu>
3786
3796
3787 * IPython/genutils.py (timings_out): Modified to use the resource
3797 * IPython/genutils.py (timings_out): Modified to use the resource
3788 module, which avoids the wraparound problems of time.clock().
3798 module, which avoids the wraparound problems of time.clock().
3789
3799
3790 2003-04-17 *** Released version 0.2.15pre4
3800 2003-04-17 *** Released version 0.2.15pre4
3791
3801
3792 2003-04-17 Fernando Perez <fperez@colorado.edu>
3802 2003-04-17 Fernando Perez <fperez@colorado.edu>
3793
3803
3794 * setup.py (scriptfiles): Split windows-specific stuff over to a
3804 * setup.py (scriptfiles): Split windows-specific stuff over to a
3795 separate file, in an attempt to have a Windows GUI installer.
3805 separate file, in an attempt to have a Windows GUI installer.
3796 That didn't work, but part of the groundwork is done.
3806 That didn't work, but part of the groundwork is done.
3797
3807
3798 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3808 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3799 indent/unindent with 4 spaces. Particularly useful in combination
3809 indent/unindent with 4 spaces. Particularly useful in combination
3800 with the new auto-indent option.
3810 with the new auto-indent option.
3801
3811
3802 2003-04-16 Fernando Perez <fperez@colorado.edu>
3812 2003-04-16 Fernando Perez <fperez@colorado.edu>
3803
3813
3804 * IPython/Magic.py: various replacements of self.rc for
3814 * IPython/Magic.py: various replacements of self.rc for
3805 self.shell.rc. A lot more remains to be done to fully disentangle
3815 self.shell.rc. A lot more remains to be done to fully disentangle
3806 this class from the main Shell class.
3816 this class from the main Shell class.
3807
3817
3808 * IPython/GnuplotRuntime.py: added checks for mouse support so
3818 * IPython/GnuplotRuntime.py: added checks for mouse support so
3809 that we don't try to enable it if the current gnuplot doesn't
3819 that we don't try to enable it if the current gnuplot doesn't
3810 really support it. Also added checks so that we don't try to
3820 really support it. Also added checks so that we don't try to
3811 enable persist under Windows (where Gnuplot doesn't recognize the
3821 enable persist under Windows (where Gnuplot doesn't recognize the
3812 option).
3822 option).
3813
3823
3814 * IPython/iplib.py (InteractiveShell.interact): Added optional
3824 * IPython/iplib.py (InteractiveShell.interact): Added optional
3815 auto-indenting code, after a patch by King C. Shu
3825 auto-indenting code, after a patch by King C. Shu
3816 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3826 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3817 get along well with pasting indented code. If I ever figure out
3827 get along well with pasting indented code. If I ever figure out
3818 how to make that part go well, it will become on by default.
3828 how to make that part go well, it will become on by default.
3819
3829
3820 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3830 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3821 crash ipython if there was an unmatched '%' in the user's prompt
3831 crash ipython if there was an unmatched '%' in the user's prompt
3822 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3832 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3823
3833
3824 * IPython/iplib.py (InteractiveShell.interact): removed the
3834 * IPython/iplib.py (InteractiveShell.interact): removed the
3825 ability to ask the user whether he wants to crash or not at the
3835 ability to ask the user whether he wants to crash or not at the
3826 'last line' exception handler. Calling functions at that point
3836 'last line' exception handler. Calling functions at that point
3827 changes the stack, and the error reports would have incorrect
3837 changes the stack, and the error reports would have incorrect
3828 tracebacks.
3838 tracebacks.
3829
3839
3830 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3840 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3831 pass through a peger a pretty-printed form of any object. After a
3841 pass through a peger a pretty-printed form of any object. After a
3832 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3842 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3833
3843
3834 2003-04-14 Fernando Perez <fperez@colorado.edu>
3844 2003-04-14 Fernando Perez <fperez@colorado.edu>
3835
3845
3836 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3846 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3837 all files in ~ would be modified at first install (instead of
3847 all files in ~ would be modified at first install (instead of
3838 ~/.ipython). This could be potentially disastrous, as the
3848 ~/.ipython). This could be potentially disastrous, as the
3839 modification (make line-endings native) could damage binary files.
3849 modification (make line-endings native) could damage binary files.
3840
3850
3841 2003-04-10 Fernando Perez <fperez@colorado.edu>
3851 2003-04-10 Fernando Perez <fperez@colorado.edu>
3842
3852
3843 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3853 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3844 handle only lines which are invalid python. This now means that
3854 handle only lines which are invalid python. This now means that
3845 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3855 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3846 for the bug report.
3856 for the bug report.
3847
3857
3848 2003-04-01 Fernando Perez <fperez@colorado.edu>
3858 2003-04-01 Fernando Perez <fperez@colorado.edu>
3849
3859
3850 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3860 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3851 where failing to set sys.last_traceback would crash pdb.pm().
3861 where failing to set sys.last_traceback would crash pdb.pm().
3852 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3862 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3853 report.
3863 report.
3854
3864
3855 2003-03-25 Fernando Perez <fperez@colorado.edu>
3865 2003-03-25 Fernando Perez <fperez@colorado.edu>
3856
3866
3857 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3867 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3858 before printing it (it had a lot of spurious blank lines at the
3868 before printing it (it had a lot of spurious blank lines at the
3859 end).
3869 end).
3860
3870
3861 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3871 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3862 output would be sent 21 times! Obviously people don't use this
3872 output would be sent 21 times! Obviously people don't use this
3863 too often, or I would have heard about it.
3873 too often, or I would have heard about it.
3864
3874
3865 2003-03-24 Fernando Perez <fperez@colorado.edu>
3875 2003-03-24 Fernando Perez <fperez@colorado.edu>
3866
3876
3867 * setup.py (scriptfiles): renamed the data_files parameter from
3877 * setup.py (scriptfiles): renamed the data_files parameter from
3868 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3878 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3869 for the patch.
3879 for the patch.
3870
3880
3871 2003-03-20 Fernando Perez <fperez@colorado.edu>
3881 2003-03-20 Fernando Perez <fperez@colorado.edu>
3872
3882
3873 * IPython/genutils.py (error): added error() and fatal()
3883 * IPython/genutils.py (error): added error() and fatal()
3874 functions.
3884 functions.
3875
3885
3876 2003-03-18 *** Released version 0.2.15pre3
3886 2003-03-18 *** Released version 0.2.15pre3
3877
3887
3878 2003-03-18 Fernando Perez <fperez@colorado.edu>
3888 2003-03-18 Fernando Perez <fperez@colorado.edu>
3879
3889
3880 * setupext/install_data_ext.py
3890 * setupext/install_data_ext.py
3881 (install_data_ext.initialize_options): Class contributed by Jack
3891 (install_data_ext.initialize_options): Class contributed by Jack
3882 Moffit for fixing the old distutils hack. He is sending this to
3892 Moffit for fixing the old distutils hack. He is sending this to
3883 the distutils folks so in the future we may not need it as a
3893 the distutils folks so in the future we may not need it as a
3884 private fix.
3894 private fix.
3885
3895
3886 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3896 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3887 changes for Debian packaging. See his patch for full details.
3897 changes for Debian packaging. See his patch for full details.
3888 The old distutils hack of making the ipythonrc* files carry a
3898 The old distutils hack of making the ipythonrc* files carry a
3889 bogus .py extension is gone, at last. Examples were moved to a
3899 bogus .py extension is gone, at last. Examples were moved to a
3890 separate subdir under doc/, and the separate executable scripts
3900 separate subdir under doc/, and the separate executable scripts
3891 now live in their own directory. Overall a great cleanup. The
3901 now live in their own directory. Overall a great cleanup. The
3892 manual was updated to use the new files, and setup.py has been
3902 manual was updated to use the new files, and setup.py has been
3893 fixed for this setup.
3903 fixed for this setup.
3894
3904
3895 * IPython/PyColorize.py (Parser.usage): made non-executable and
3905 * IPython/PyColorize.py (Parser.usage): made non-executable and
3896 created a pycolor wrapper around it to be included as a script.
3906 created a pycolor wrapper around it to be included as a script.
3897
3907
3898 2003-03-12 *** Released version 0.2.15pre2
3908 2003-03-12 *** Released version 0.2.15pre2
3899
3909
3900 2003-03-12 Fernando Perez <fperez@colorado.edu>
3910 2003-03-12 Fernando Perez <fperez@colorado.edu>
3901
3911
3902 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3912 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3903 long-standing problem with garbage characters in some terminals.
3913 long-standing problem with garbage characters in some terminals.
3904 The issue was really that the \001 and \002 escapes must _only_ be
3914 The issue was really that the \001 and \002 escapes must _only_ be
3905 passed to input prompts (which call readline), but _never_ to
3915 passed to input prompts (which call readline), but _never_ to
3906 normal text to be printed on screen. I changed ColorANSI to have
3916 normal text to be printed on screen. I changed ColorANSI to have
3907 two classes: TermColors and InputTermColors, each with the
3917 two classes: TermColors and InputTermColors, each with the
3908 appropriate escapes for input prompts or normal text. The code in
3918 appropriate escapes for input prompts or normal text. The code in
3909 Prompts.py got slightly more complicated, but this very old and
3919 Prompts.py got slightly more complicated, but this very old and
3910 annoying bug is finally fixed.
3920 annoying bug is finally fixed.
3911
3921
3912 All the credit for nailing down the real origin of this problem
3922 All the credit for nailing down the real origin of this problem
3913 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3923 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3914 *Many* thanks to him for spending quite a bit of effort on this.
3924 *Many* thanks to him for spending quite a bit of effort on this.
3915
3925
3916 2003-03-05 *** Released version 0.2.15pre1
3926 2003-03-05 *** Released version 0.2.15pre1
3917
3927
3918 2003-03-03 Fernando Perez <fperez@colorado.edu>
3928 2003-03-03 Fernando Perez <fperez@colorado.edu>
3919
3929
3920 * IPython/FakeModule.py: Moved the former _FakeModule to a
3930 * IPython/FakeModule.py: Moved the former _FakeModule to a
3921 separate file, because it's also needed by Magic (to fix a similar
3931 separate file, because it's also needed by Magic (to fix a similar
3922 pickle-related issue in @run).
3932 pickle-related issue in @run).
3923
3933
3924 2003-03-02 Fernando Perez <fperez@colorado.edu>
3934 2003-03-02 Fernando Perez <fperez@colorado.edu>
3925
3935
3926 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3936 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3927 the autocall option at runtime.
3937 the autocall option at runtime.
3928 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3938 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3929 across Magic.py to start separating Magic from InteractiveShell.
3939 across Magic.py to start separating Magic from InteractiveShell.
3930 (Magic._ofind): Fixed to return proper namespace for dotted
3940 (Magic._ofind): Fixed to return proper namespace for dotted
3931 names. Before, a dotted name would always return 'not currently
3941 names. Before, a dotted name would always return 'not currently
3932 defined', because it would find the 'parent'. s.x would be found,
3942 defined', because it would find the 'parent'. s.x would be found,
3933 but since 'x' isn't defined by itself, it would get confused.
3943 but since 'x' isn't defined by itself, it would get confused.
3934 (Magic.magic_run): Fixed pickling problems reported by Ralf
3944 (Magic.magic_run): Fixed pickling problems reported by Ralf
3935 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3945 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3936 that I'd used when Mike Heeter reported similar issues at the
3946 that I'd used when Mike Heeter reported similar issues at the
3937 top-level, but now for @run. It boils down to injecting the
3947 top-level, but now for @run. It boils down to injecting the
3938 namespace where code is being executed with something that looks
3948 namespace where code is being executed with something that looks
3939 enough like a module to fool pickle.dump(). Since a pickle stores
3949 enough like a module to fool pickle.dump(). Since a pickle stores
3940 a named reference to the importing module, we need this for
3950 a named reference to the importing module, we need this for
3941 pickles to save something sensible.
3951 pickles to save something sensible.
3942
3952
3943 * IPython/ipmaker.py (make_IPython): added an autocall option.
3953 * IPython/ipmaker.py (make_IPython): added an autocall option.
3944
3954
3945 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3955 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3946 the auto-eval code. Now autocalling is an option, and the code is
3956 the auto-eval code. Now autocalling is an option, and the code is
3947 also vastly safer. There is no more eval() involved at all.
3957 also vastly safer. There is no more eval() involved at all.
3948
3958
3949 2003-03-01 Fernando Perez <fperez@colorado.edu>
3959 2003-03-01 Fernando Perez <fperez@colorado.edu>
3950
3960
3951 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3961 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3952 dict with named keys instead of a tuple.
3962 dict with named keys instead of a tuple.
3953
3963
3954 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3964 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3955
3965
3956 * setup.py (make_shortcut): Fixed message about directories
3966 * setup.py (make_shortcut): Fixed message about directories
3957 created during Windows installation (the directories were ok, just
3967 created during Windows installation (the directories were ok, just
3958 the printed message was misleading). Thanks to Chris Liechti
3968 the printed message was misleading). Thanks to Chris Liechti
3959 <cliechti-AT-gmx.net> for the heads up.
3969 <cliechti-AT-gmx.net> for the heads up.
3960
3970
3961 2003-02-21 Fernando Perez <fperez@colorado.edu>
3971 2003-02-21 Fernando Perez <fperez@colorado.edu>
3962
3972
3963 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3973 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3964 of ValueError exception when checking for auto-execution. This
3974 of ValueError exception when checking for auto-execution. This
3965 one is raised by things like Numeric arrays arr.flat when the
3975 one is raised by things like Numeric arrays arr.flat when the
3966 array is non-contiguous.
3976 array is non-contiguous.
3967
3977
3968 2003-01-31 Fernando Perez <fperez@colorado.edu>
3978 2003-01-31 Fernando Perez <fperez@colorado.edu>
3969
3979
3970 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3980 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3971 not return any value at all (even though the command would get
3981 not return any value at all (even though the command would get
3972 executed).
3982 executed).
3973 (xsys): Flush stdout right after printing the command to ensure
3983 (xsys): Flush stdout right after printing the command to ensure
3974 proper ordering of commands and command output in the total
3984 proper ordering of commands and command output in the total
3975 output.
3985 output.
3976 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3986 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3977 system/getoutput as defaults. The old ones are kept for
3987 system/getoutput as defaults. The old ones are kept for
3978 compatibility reasons, so no code which uses this library needs
3988 compatibility reasons, so no code which uses this library needs
3979 changing.
3989 changing.
3980
3990
3981 2003-01-27 *** Released version 0.2.14
3991 2003-01-27 *** Released version 0.2.14
3982
3992
3983 2003-01-25 Fernando Perez <fperez@colorado.edu>
3993 2003-01-25 Fernando Perez <fperez@colorado.edu>
3984
3994
3985 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3995 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3986 functions defined in previous edit sessions could not be re-edited
3996 functions defined in previous edit sessions could not be re-edited
3987 (because the temp files were immediately removed). Now temp files
3997 (because the temp files were immediately removed). Now temp files
3988 are removed only at IPython's exit.
3998 are removed only at IPython's exit.
3989 (Magic.magic_run): Improved @run to perform shell-like expansions
3999 (Magic.magic_run): Improved @run to perform shell-like expansions
3990 on its arguments (~users and $VARS). With this, @run becomes more
4000 on its arguments (~users and $VARS). With this, @run becomes more
3991 like a normal command-line.
4001 like a normal command-line.
3992
4002
3993 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4003 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3994 bugs related to embedding and cleaned up that code. A fairly
4004 bugs related to embedding and cleaned up that code. A fairly
3995 important one was the impossibility to access the global namespace
4005 important one was the impossibility to access the global namespace
3996 through the embedded IPython (only local variables were visible).
4006 through the embedded IPython (only local variables were visible).
3997
4007
3998 2003-01-14 Fernando Perez <fperez@colorado.edu>
4008 2003-01-14 Fernando Perez <fperez@colorado.edu>
3999
4009
4000 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4010 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4001 auto-calling to be a bit more conservative. Now it doesn't get
4011 auto-calling to be a bit more conservative. Now it doesn't get
4002 triggered if any of '!=()<>' are in the rest of the input line, to
4012 triggered if any of '!=()<>' are in the rest of the input line, to
4003 allow comparing callables. Thanks to Alex for the heads up.
4013 allow comparing callables. Thanks to Alex for the heads up.
4004
4014
4005 2003-01-07 Fernando Perez <fperez@colorado.edu>
4015 2003-01-07 Fernando Perez <fperez@colorado.edu>
4006
4016
4007 * IPython/genutils.py (page): fixed estimation of the number of
4017 * IPython/genutils.py (page): fixed estimation of the number of
4008 lines in a string to be paged to simply count newlines. This
4018 lines in a string to be paged to simply count newlines. This
4009 prevents over-guessing due to embedded escape sequences. A better
4019 prevents over-guessing due to embedded escape sequences. A better
4010 long-term solution would involve stripping out the control chars
4020 long-term solution would involve stripping out the control chars
4011 for the count, but it's potentially so expensive I just don't
4021 for the count, but it's potentially so expensive I just don't
4012 think it's worth doing.
4022 think it's worth doing.
4013
4023
4014 2002-12-19 *** Released version 0.2.14pre50
4024 2002-12-19 *** Released version 0.2.14pre50
4015
4025
4016 2002-12-19 Fernando Perez <fperez@colorado.edu>
4026 2002-12-19 Fernando Perez <fperez@colorado.edu>
4017
4027
4018 * tools/release (version): Changed release scripts to inform
4028 * tools/release (version): Changed release scripts to inform
4019 Andrea and build a NEWS file with a list of recent changes.
4029 Andrea and build a NEWS file with a list of recent changes.
4020
4030
4021 * IPython/ColorANSI.py (__all__): changed terminal detection
4031 * IPython/ColorANSI.py (__all__): changed terminal detection
4022 code. Seems to work better for xterms without breaking
4032 code. Seems to work better for xterms without breaking
4023 konsole. Will need more testing to determine if WinXP and Mac OSX
4033 konsole. Will need more testing to determine if WinXP and Mac OSX
4024 also work ok.
4034 also work ok.
4025
4035
4026 2002-12-18 *** Released version 0.2.14pre49
4036 2002-12-18 *** Released version 0.2.14pre49
4027
4037
4028 2002-12-18 Fernando Perez <fperez@colorado.edu>
4038 2002-12-18 Fernando Perez <fperez@colorado.edu>
4029
4039
4030 * Docs: added new info about Mac OSX, from Andrea.
4040 * Docs: added new info about Mac OSX, from Andrea.
4031
4041
4032 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4042 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4033 allow direct plotting of python strings whose format is the same
4043 allow direct plotting of python strings whose format is the same
4034 of gnuplot data files.
4044 of gnuplot data files.
4035
4045
4036 2002-12-16 Fernando Perez <fperez@colorado.edu>
4046 2002-12-16 Fernando Perez <fperez@colorado.edu>
4037
4047
4038 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4048 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4039 value of exit question to be acknowledged.
4049 value of exit question to be acknowledged.
4040
4050
4041 2002-12-03 Fernando Perez <fperez@colorado.edu>
4051 2002-12-03 Fernando Perez <fperez@colorado.edu>
4042
4052
4043 * IPython/ipmaker.py: removed generators, which had been added
4053 * IPython/ipmaker.py: removed generators, which had been added
4044 by mistake in an earlier debugging run. This was causing trouble
4054 by mistake in an earlier debugging run. This was causing trouble
4045 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4055 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4046 for pointing this out.
4056 for pointing this out.
4047
4057
4048 2002-11-17 Fernando Perez <fperez@colorado.edu>
4058 2002-11-17 Fernando Perez <fperez@colorado.edu>
4049
4059
4050 * Manual: updated the Gnuplot section.
4060 * Manual: updated the Gnuplot section.
4051
4061
4052 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4062 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4053 a much better split of what goes in Runtime and what goes in
4063 a much better split of what goes in Runtime and what goes in
4054 Interactive.
4064 Interactive.
4055
4065
4056 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4066 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4057 being imported from iplib.
4067 being imported from iplib.
4058
4068
4059 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4069 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4060 for command-passing. Now the global Gnuplot instance is called
4070 for command-passing. Now the global Gnuplot instance is called
4061 'gp' instead of 'g', which was really a far too fragile and
4071 'gp' instead of 'g', which was really a far too fragile and
4062 common name.
4072 common name.
4063
4073
4064 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4074 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4065 bounding boxes generated by Gnuplot for square plots.
4075 bounding boxes generated by Gnuplot for square plots.
4066
4076
4067 * IPython/genutils.py (popkey): new function added. I should
4077 * IPython/genutils.py (popkey): new function added. I should
4068 suggest this on c.l.py as a dict method, it seems useful.
4078 suggest this on c.l.py as a dict method, it seems useful.
4069
4079
4070 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4080 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4071 to transparently handle PostScript generation. MUCH better than
4081 to transparently handle PostScript generation. MUCH better than
4072 the previous plot_eps/replot_eps (which I removed now). The code
4082 the previous plot_eps/replot_eps (which I removed now). The code
4073 is also fairly clean and well documented now (including
4083 is also fairly clean and well documented now (including
4074 docstrings).
4084 docstrings).
4075
4085
4076 2002-11-13 Fernando Perez <fperez@colorado.edu>
4086 2002-11-13 Fernando Perez <fperez@colorado.edu>
4077
4087
4078 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4088 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4079 (inconsistent with options).
4089 (inconsistent with options).
4080
4090
4081 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4091 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4082 manually disabled, I don't know why. Fixed it.
4092 manually disabled, I don't know why. Fixed it.
4083 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4093 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4084 eps output.
4094 eps output.
4085
4095
4086 2002-11-12 Fernando Perez <fperez@colorado.edu>
4096 2002-11-12 Fernando Perez <fperez@colorado.edu>
4087
4097
4088 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4098 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4089 don't propagate up to caller. Fixes crash reported by François
4099 don't propagate up to caller. Fixes crash reported by François
4090 Pinard.
4100 Pinard.
4091
4101
4092 2002-11-09 Fernando Perez <fperez@colorado.edu>
4102 2002-11-09 Fernando Perez <fperez@colorado.edu>
4093
4103
4094 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4104 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4095 history file for new users.
4105 history file for new users.
4096 (make_IPython): fixed bug where initial install would leave the
4106 (make_IPython): fixed bug where initial install would leave the
4097 user running in the .ipython dir.
4107 user running in the .ipython dir.
4098 (make_IPython): fixed bug where config dir .ipython would be
4108 (make_IPython): fixed bug where config dir .ipython would be
4099 created regardless of the given -ipythondir option. Thanks to Cory
4109 created regardless of the given -ipythondir option. Thanks to Cory
4100 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4110 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4101
4111
4102 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4112 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4103 type confirmations. Will need to use it in all of IPython's code
4113 type confirmations. Will need to use it in all of IPython's code
4104 consistently.
4114 consistently.
4105
4115
4106 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4116 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4107 context to print 31 lines instead of the default 5. This will make
4117 context to print 31 lines instead of the default 5. This will make
4108 the crash reports extremely detailed in case the problem is in
4118 the crash reports extremely detailed in case the problem is in
4109 libraries I don't have access to.
4119 libraries I don't have access to.
4110
4120
4111 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4121 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4112 line of defense' code to still crash, but giving users fair
4122 line of defense' code to still crash, but giving users fair
4113 warning. I don't want internal errors to go unreported: if there's
4123 warning. I don't want internal errors to go unreported: if there's
4114 an internal problem, IPython should crash and generate a full
4124 an internal problem, IPython should crash and generate a full
4115 report.
4125 report.
4116
4126
4117 2002-11-08 Fernando Perez <fperez@colorado.edu>
4127 2002-11-08 Fernando Perez <fperez@colorado.edu>
4118
4128
4119 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4129 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4120 otherwise uncaught exceptions which can appear if people set
4130 otherwise uncaught exceptions which can appear if people set
4121 sys.stdout to something badly broken. Thanks to a crash report
4131 sys.stdout to something badly broken. Thanks to a crash report
4122 from henni-AT-mail.brainbot.com.
4132 from henni-AT-mail.brainbot.com.
4123
4133
4124 2002-11-04 Fernando Perez <fperez@colorado.edu>
4134 2002-11-04 Fernando Perez <fperez@colorado.edu>
4125
4135
4126 * IPython/iplib.py (InteractiveShell.interact): added
4136 * IPython/iplib.py (InteractiveShell.interact): added
4127 __IPYTHON__active to the builtins. It's a flag which goes on when
4137 __IPYTHON__active to the builtins. It's a flag which goes on when
4128 the interaction starts and goes off again when it stops. This
4138 the interaction starts and goes off again when it stops. This
4129 allows embedding code to detect being inside IPython. Before this
4139 allows embedding code to detect being inside IPython. Before this
4130 was done via __IPYTHON__, but that only shows that an IPython
4140 was done via __IPYTHON__, but that only shows that an IPython
4131 instance has been created.
4141 instance has been created.
4132
4142
4133 * IPython/Magic.py (Magic.magic_env): I realized that in a
4143 * IPython/Magic.py (Magic.magic_env): I realized that in a
4134 UserDict, instance.data holds the data as a normal dict. So I
4144 UserDict, instance.data holds the data as a normal dict. So I
4135 modified @env to return os.environ.data instead of rebuilding a
4145 modified @env to return os.environ.data instead of rebuilding a
4136 dict by hand.
4146 dict by hand.
4137
4147
4138 2002-11-02 Fernando Perez <fperez@colorado.edu>
4148 2002-11-02 Fernando Perez <fperez@colorado.edu>
4139
4149
4140 * IPython/genutils.py (warn): changed so that level 1 prints no
4150 * IPython/genutils.py (warn): changed so that level 1 prints no
4141 header. Level 2 is now the default (with 'WARNING' header, as
4151 header. Level 2 is now the default (with 'WARNING' header, as
4142 before). I think I tracked all places where changes were needed in
4152 before). I think I tracked all places where changes were needed in
4143 IPython, but outside code using the old level numbering may have
4153 IPython, but outside code using the old level numbering may have
4144 broken.
4154 broken.
4145
4155
4146 * IPython/iplib.py (InteractiveShell.runcode): added this to
4156 * IPython/iplib.py (InteractiveShell.runcode): added this to
4147 handle the tracebacks in SystemExit traps correctly. The previous
4157 handle the tracebacks in SystemExit traps correctly. The previous
4148 code (through interact) was printing more of the stack than
4158 code (through interact) was printing more of the stack than
4149 necessary, showing IPython internal code to the user.
4159 necessary, showing IPython internal code to the user.
4150
4160
4151 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4161 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4152 default. Now that the default at the confirmation prompt is yes,
4162 default. Now that the default at the confirmation prompt is yes,
4153 it's not so intrusive. François' argument that ipython sessions
4163 it's not so intrusive. François' argument that ipython sessions
4154 tend to be complex enough not to lose them from an accidental C-d,
4164 tend to be complex enough not to lose them from an accidental C-d,
4155 is a valid one.
4165 is a valid one.
4156
4166
4157 * IPython/iplib.py (InteractiveShell.interact): added a
4167 * IPython/iplib.py (InteractiveShell.interact): added a
4158 showtraceback() call to the SystemExit trap, and modified the exit
4168 showtraceback() call to the SystemExit trap, and modified the exit
4159 confirmation to have yes as the default.
4169 confirmation to have yes as the default.
4160
4170
4161 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4171 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4162 this file. It's been gone from the code for a long time, this was
4172 this file. It's been gone from the code for a long time, this was
4163 simply leftover junk.
4173 simply leftover junk.
4164
4174
4165 2002-11-01 Fernando Perez <fperez@colorado.edu>
4175 2002-11-01 Fernando Perez <fperez@colorado.edu>
4166
4176
4167 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4177 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4168 added. If set, IPython now traps EOF and asks for
4178 added. If set, IPython now traps EOF and asks for
4169 confirmation. After a request by François Pinard.
4179 confirmation. After a request by François Pinard.
4170
4180
4171 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4181 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4172 of @abort, and with a new (better) mechanism for handling the
4182 of @abort, and with a new (better) mechanism for handling the
4173 exceptions.
4183 exceptions.
4174
4184
4175 2002-10-27 Fernando Perez <fperez@colorado.edu>
4185 2002-10-27 Fernando Perez <fperez@colorado.edu>
4176
4186
4177 * IPython/usage.py (__doc__): updated the --help information and
4187 * IPython/usage.py (__doc__): updated the --help information and
4178 the ipythonrc file to indicate that -log generates
4188 the ipythonrc file to indicate that -log generates
4179 ./ipython.log. Also fixed the corresponding info in @logstart.
4189 ./ipython.log. Also fixed the corresponding info in @logstart.
4180 This and several other fixes in the manuals thanks to reports by
4190 This and several other fixes in the manuals thanks to reports by
4181 François Pinard <pinard-AT-iro.umontreal.ca>.
4191 François Pinard <pinard-AT-iro.umontreal.ca>.
4182
4192
4183 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4193 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4184 refer to @logstart (instead of @log, which doesn't exist).
4194 refer to @logstart (instead of @log, which doesn't exist).
4185
4195
4186 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4196 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4187 AttributeError crash. Thanks to Christopher Armstrong
4197 AttributeError crash. Thanks to Christopher Armstrong
4188 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4198 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4189 introduced recently (in 0.2.14pre37) with the fix to the eval
4199 introduced recently (in 0.2.14pre37) with the fix to the eval
4190 problem mentioned below.
4200 problem mentioned below.
4191
4201
4192 2002-10-17 Fernando Perez <fperez@colorado.edu>
4202 2002-10-17 Fernando Perez <fperez@colorado.edu>
4193
4203
4194 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4204 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4195 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4205 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4196
4206
4197 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4207 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4198 this function to fix a problem reported by Alex Schmolck. He saw
4208 this function to fix a problem reported by Alex Schmolck. He saw
4199 it with list comprehensions and generators, which were getting
4209 it with list comprehensions and generators, which were getting
4200 called twice. The real problem was an 'eval' call in testing for
4210 called twice. The real problem was an 'eval' call in testing for
4201 automagic which was evaluating the input line silently.
4211 automagic which was evaluating the input line silently.
4202
4212
4203 This is a potentially very nasty bug, if the input has side
4213 This is a potentially very nasty bug, if the input has side
4204 effects which must not be repeated. The code is much cleaner now,
4214 effects which must not be repeated. The code is much cleaner now,
4205 without any blanket 'except' left and with a regexp test for
4215 without any blanket 'except' left and with a regexp test for
4206 actual function names.
4216 actual function names.
4207
4217
4208 But an eval remains, which I'm not fully comfortable with. I just
4218 But an eval remains, which I'm not fully comfortable with. I just
4209 don't know how to find out if an expression could be a callable in
4219 don't know how to find out if an expression could be a callable in
4210 the user's namespace without doing an eval on the string. However
4220 the user's namespace without doing an eval on the string. However
4211 that string is now much more strictly checked so that no code
4221 that string is now much more strictly checked so that no code
4212 slips by, so the eval should only happen for things that can
4222 slips by, so the eval should only happen for things that can
4213 really be only function/method names.
4223 really be only function/method names.
4214
4224
4215 2002-10-15 Fernando Perez <fperez@colorado.edu>
4225 2002-10-15 Fernando Perez <fperez@colorado.edu>
4216
4226
4217 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4227 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4218 OSX information to main manual, removed README_Mac_OSX file from
4228 OSX information to main manual, removed README_Mac_OSX file from
4219 distribution. Also updated credits for recent additions.
4229 distribution. Also updated credits for recent additions.
4220
4230
4221 2002-10-10 Fernando Perez <fperez@colorado.edu>
4231 2002-10-10 Fernando Perez <fperez@colorado.edu>
4222
4232
4223 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4233 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4224 terminal-related issues. Many thanks to Andrea Riciputi
4234 terminal-related issues. Many thanks to Andrea Riciputi
4225 <andrea.riciputi-AT-libero.it> for writing it.
4235 <andrea.riciputi-AT-libero.it> for writing it.
4226
4236
4227 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4237 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4228 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4238 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4229
4239
4230 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4240 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4231 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4241 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4232 <syver-en-AT-online.no> who both submitted patches for this problem.
4242 <syver-en-AT-online.no> who both submitted patches for this problem.
4233
4243
4234 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4244 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4235 global embedding to make sure that things don't overwrite user
4245 global embedding to make sure that things don't overwrite user
4236 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4246 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4237
4247
4238 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4248 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4239 compatibility. Thanks to Hayden Callow
4249 compatibility. Thanks to Hayden Callow
4240 <h.callow-AT-elec.canterbury.ac.nz>
4250 <h.callow-AT-elec.canterbury.ac.nz>
4241
4251
4242 2002-10-04 Fernando Perez <fperez@colorado.edu>
4252 2002-10-04 Fernando Perez <fperez@colorado.edu>
4243
4253
4244 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4254 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4245 Gnuplot.File objects.
4255 Gnuplot.File objects.
4246
4256
4247 2002-07-23 Fernando Perez <fperez@colorado.edu>
4257 2002-07-23 Fernando Perez <fperez@colorado.edu>
4248
4258
4249 * IPython/genutils.py (timing): Added timings() and timing() for
4259 * IPython/genutils.py (timing): Added timings() and timing() for
4250 quick access to the most commonly needed data, the execution
4260 quick access to the most commonly needed data, the execution
4251 times. Old timing() renamed to timings_out().
4261 times. Old timing() renamed to timings_out().
4252
4262
4253 2002-07-18 Fernando Perez <fperez@colorado.edu>
4263 2002-07-18 Fernando Perez <fperez@colorado.edu>
4254
4264
4255 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4265 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4256 bug with nested instances disrupting the parent's tab completion.
4266 bug with nested instances disrupting the parent's tab completion.
4257
4267
4258 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4268 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4259 all_completions code to begin the emacs integration.
4269 all_completions code to begin the emacs integration.
4260
4270
4261 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4271 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4262 argument to allow titling individual arrays when plotting.
4272 argument to allow titling individual arrays when plotting.
4263
4273
4264 2002-07-15 Fernando Perez <fperez@colorado.edu>
4274 2002-07-15 Fernando Perez <fperez@colorado.edu>
4265
4275
4266 * setup.py (make_shortcut): changed to retrieve the value of
4276 * setup.py (make_shortcut): changed to retrieve the value of
4267 'Program Files' directory from the registry (this value changes in
4277 'Program Files' directory from the registry (this value changes in
4268 non-english versions of Windows). Thanks to Thomas Fanslau
4278 non-english versions of Windows). Thanks to Thomas Fanslau
4269 <tfanslau-AT-gmx.de> for the report.
4279 <tfanslau-AT-gmx.de> for the report.
4270
4280
4271 2002-07-10 Fernando Perez <fperez@colorado.edu>
4281 2002-07-10 Fernando Perez <fperez@colorado.edu>
4272
4282
4273 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4283 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4274 a bug in pdb, which crashes if a line with only whitespace is
4284 a bug in pdb, which crashes if a line with only whitespace is
4275 entered. Bug report submitted to sourceforge.
4285 entered. Bug report submitted to sourceforge.
4276
4286
4277 2002-07-09 Fernando Perez <fperez@colorado.edu>
4287 2002-07-09 Fernando Perez <fperez@colorado.edu>
4278
4288
4279 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4289 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4280 reporting exceptions (it's a bug in inspect.py, I just set a
4290 reporting exceptions (it's a bug in inspect.py, I just set a
4281 workaround).
4291 workaround).
4282
4292
4283 2002-07-08 Fernando Perez <fperez@colorado.edu>
4293 2002-07-08 Fernando Perez <fperez@colorado.edu>
4284
4294
4285 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4295 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4286 __IPYTHON__ in __builtins__ to show up in user_ns.
4296 __IPYTHON__ in __builtins__ to show up in user_ns.
4287
4297
4288 2002-07-03 Fernando Perez <fperez@colorado.edu>
4298 2002-07-03 Fernando Perez <fperez@colorado.edu>
4289
4299
4290 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4300 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4291 name from @gp_set_instance to @gp_set_default.
4301 name from @gp_set_instance to @gp_set_default.
4292
4302
4293 * IPython/ipmaker.py (make_IPython): default editor value set to
4303 * IPython/ipmaker.py (make_IPython): default editor value set to
4294 '0' (a string), to match the rc file. Otherwise will crash when
4304 '0' (a string), to match the rc file. Otherwise will crash when
4295 .strip() is called on it.
4305 .strip() is called on it.
4296
4306
4297
4307
4298 2002-06-28 Fernando Perez <fperez@colorado.edu>
4308 2002-06-28 Fernando Perez <fperez@colorado.edu>
4299
4309
4300 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4310 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4301 of files in current directory when a file is executed via
4311 of files in current directory when a file is executed via
4302 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4312 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4303
4313
4304 * setup.py (manfiles): fix for rpm builds, submitted by RA
4314 * setup.py (manfiles): fix for rpm builds, submitted by RA
4305 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4315 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4306
4316
4307 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4317 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4308 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4318 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4309 string!). A. Schmolck caught this one.
4319 string!). A. Schmolck caught this one.
4310
4320
4311 2002-06-27 Fernando Perez <fperez@colorado.edu>
4321 2002-06-27 Fernando Perez <fperez@colorado.edu>
4312
4322
4313 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4323 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4314 defined files at the cmd line. __name__ wasn't being set to
4324 defined files at the cmd line. __name__ wasn't being set to
4315 __main__.
4325 __main__.
4316
4326
4317 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4327 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4318 regular lists and tuples besides Numeric arrays.
4328 regular lists and tuples besides Numeric arrays.
4319
4329
4320 * IPython/Prompts.py (CachedOutput.__call__): Added output
4330 * IPython/Prompts.py (CachedOutput.__call__): Added output
4321 supression for input ending with ';'. Similar to Mathematica and
4331 supression for input ending with ';'. Similar to Mathematica and
4322 Matlab. The _* vars and Out[] list are still updated, just like
4332 Matlab. The _* vars and Out[] list are still updated, just like
4323 Mathematica behaves.
4333 Mathematica behaves.
4324
4334
4325 2002-06-25 Fernando Perez <fperez@colorado.edu>
4335 2002-06-25 Fernando Perez <fperez@colorado.edu>
4326
4336
4327 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4337 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4328 .ini extensions for profiels under Windows.
4338 .ini extensions for profiels under Windows.
4329
4339
4330 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4340 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4331 string form. Fix contributed by Alexander Schmolck
4341 string form. Fix contributed by Alexander Schmolck
4332 <a.schmolck-AT-gmx.net>
4342 <a.schmolck-AT-gmx.net>
4333
4343
4334 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4344 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4335 pre-configured Gnuplot instance.
4345 pre-configured Gnuplot instance.
4336
4346
4337 2002-06-21 Fernando Perez <fperez@colorado.edu>
4347 2002-06-21 Fernando Perez <fperez@colorado.edu>
4338
4348
4339 * IPython/numutils.py (exp_safe): new function, works around the
4349 * IPython/numutils.py (exp_safe): new function, works around the
4340 underflow problems in Numeric.
4350 underflow problems in Numeric.
4341 (log2): New fn. Safe log in base 2: returns exact integer answer
4351 (log2): New fn. Safe log in base 2: returns exact integer answer
4342 for exact integer powers of 2.
4352 for exact integer powers of 2.
4343
4353
4344 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4354 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4345 properly.
4355 properly.
4346
4356
4347 2002-06-20 Fernando Perez <fperez@colorado.edu>
4357 2002-06-20 Fernando Perez <fperez@colorado.edu>
4348
4358
4349 * IPython/genutils.py (timing): new function like
4359 * IPython/genutils.py (timing): new function like
4350 Mathematica's. Similar to time_test, but returns more info.
4360 Mathematica's. Similar to time_test, but returns more info.
4351
4361
4352 2002-06-18 Fernando Perez <fperez@colorado.edu>
4362 2002-06-18 Fernando Perez <fperez@colorado.edu>
4353
4363
4354 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4364 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4355 according to Mike Heeter's suggestions.
4365 according to Mike Heeter's suggestions.
4356
4366
4357 2002-06-16 Fernando Perez <fperez@colorado.edu>
4367 2002-06-16 Fernando Perez <fperez@colorado.edu>
4358
4368
4359 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4369 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4360 system. GnuplotMagic is gone as a user-directory option. New files
4370 system. GnuplotMagic is gone as a user-directory option. New files
4361 make it easier to use all the gnuplot stuff both from external
4371 make it easier to use all the gnuplot stuff both from external
4362 programs as well as from IPython. Had to rewrite part of
4372 programs as well as from IPython. Had to rewrite part of
4363 hardcopy() b/c of a strange bug: often the ps files simply don't
4373 hardcopy() b/c of a strange bug: often the ps files simply don't
4364 get created, and require a repeat of the command (often several
4374 get created, and require a repeat of the command (often several
4365 times).
4375 times).
4366
4376
4367 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4377 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4368 resolve output channel at call time, so that if sys.stderr has
4378 resolve output channel at call time, so that if sys.stderr has
4369 been redirected by user this gets honored.
4379 been redirected by user this gets honored.
4370
4380
4371 2002-06-13 Fernando Perez <fperez@colorado.edu>
4381 2002-06-13 Fernando Perez <fperez@colorado.edu>
4372
4382
4373 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4383 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4374 IPShell. Kept a copy with the old names to avoid breaking people's
4384 IPShell. Kept a copy with the old names to avoid breaking people's
4375 embedded code.
4385 embedded code.
4376
4386
4377 * IPython/ipython: simplified it to the bare minimum after
4387 * IPython/ipython: simplified it to the bare minimum after
4378 Holger's suggestions. Added info about how to use it in
4388 Holger's suggestions. Added info about how to use it in
4379 PYTHONSTARTUP.
4389 PYTHONSTARTUP.
4380
4390
4381 * IPython/Shell.py (IPythonShell): changed the options passing
4391 * IPython/Shell.py (IPythonShell): changed the options passing
4382 from a string with funky %s replacements to a straight list. Maybe
4392 from a string with funky %s replacements to a straight list. Maybe
4383 a bit more typing, but it follows sys.argv conventions, so there's
4393 a bit more typing, but it follows sys.argv conventions, so there's
4384 less special-casing to remember.
4394 less special-casing to remember.
4385
4395
4386 2002-06-12 Fernando Perez <fperez@colorado.edu>
4396 2002-06-12 Fernando Perez <fperez@colorado.edu>
4387
4397
4388 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4398 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4389 command. Thanks to a suggestion by Mike Heeter.
4399 command. Thanks to a suggestion by Mike Heeter.
4390 (Magic.magic_pfile): added behavior to look at filenames if given
4400 (Magic.magic_pfile): added behavior to look at filenames if given
4391 arg is not a defined object.
4401 arg is not a defined object.
4392 (Magic.magic_save): New @save function to save code snippets. Also
4402 (Magic.magic_save): New @save function to save code snippets. Also
4393 a Mike Heeter idea.
4403 a Mike Heeter idea.
4394
4404
4395 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4405 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4396 plot() and replot(). Much more convenient now, especially for
4406 plot() and replot(). Much more convenient now, especially for
4397 interactive use.
4407 interactive use.
4398
4408
4399 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4409 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4400 filenames.
4410 filenames.
4401
4411
4402 2002-06-02 Fernando Perez <fperez@colorado.edu>
4412 2002-06-02 Fernando Perez <fperez@colorado.edu>
4403
4413
4404 * IPython/Struct.py (Struct.__init__): modified to admit
4414 * IPython/Struct.py (Struct.__init__): modified to admit
4405 initialization via another struct.
4415 initialization via another struct.
4406
4416
4407 * IPython/genutils.py (SystemExec.__init__): New stateful
4417 * IPython/genutils.py (SystemExec.__init__): New stateful
4408 interface to xsys and bq. Useful for writing system scripts.
4418 interface to xsys and bq. Useful for writing system scripts.
4409
4419
4410 2002-05-30 Fernando Perez <fperez@colorado.edu>
4420 2002-05-30 Fernando Perez <fperez@colorado.edu>
4411
4421
4412 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4422 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4413 documents. This will make the user download smaller (it's getting
4423 documents. This will make the user download smaller (it's getting
4414 too big).
4424 too big).
4415
4425
4416 2002-05-29 Fernando Perez <fperez@colorado.edu>
4426 2002-05-29 Fernando Perez <fperez@colorado.edu>
4417
4427
4418 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4428 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4419 fix problems with shelve and pickle. Seems to work, but I don't
4429 fix problems with shelve and pickle. Seems to work, but I don't
4420 know if corner cases break it. Thanks to Mike Heeter
4430 know if corner cases break it. Thanks to Mike Heeter
4421 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4431 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4422
4432
4423 2002-05-24 Fernando Perez <fperez@colorado.edu>
4433 2002-05-24 Fernando Perez <fperez@colorado.edu>
4424
4434
4425 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4435 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4426 macros having broken.
4436 macros having broken.
4427
4437
4428 2002-05-21 Fernando Perez <fperez@colorado.edu>
4438 2002-05-21 Fernando Perez <fperez@colorado.edu>
4429
4439
4430 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4440 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4431 introduced logging bug: all history before logging started was
4441 introduced logging bug: all history before logging started was
4432 being written one character per line! This came from the redesign
4442 being written one character per line! This came from the redesign
4433 of the input history as a special list which slices to strings,
4443 of the input history as a special list which slices to strings,
4434 not to lists.
4444 not to lists.
4435
4445
4436 2002-05-20 Fernando Perez <fperez@colorado.edu>
4446 2002-05-20 Fernando Perez <fperez@colorado.edu>
4437
4447
4438 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4448 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4439 be an attribute of all classes in this module. The design of these
4449 be an attribute of all classes in this module. The design of these
4440 classes needs some serious overhauling.
4450 classes needs some serious overhauling.
4441
4451
4442 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4452 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4443 which was ignoring '_' in option names.
4453 which was ignoring '_' in option names.
4444
4454
4445 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4455 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4446 'Verbose_novars' to 'Context' and made it the new default. It's a
4456 'Verbose_novars' to 'Context' and made it the new default. It's a
4447 bit more readable and also safer than verbose.
4457 bit more readable and also safer than verbose.
4448
4458
4449 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4459 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4450 triple-quoted strings.
4460 triple-quoted strings.
4451
4461
4452 * IPython/OInspect.py (__all__): new module exposing the object
4462 * IPython/OInspect.py (__all__): new module exposing the object
4453 introspection facilities. Now the corresponding magics are dummy
4463 introspection facilities. Now the corresponding magics are dummy
4454 wrappers around this. Having this module will make it much easier
4464 wrappers around this. Having this module will make it much easier
4455 to put these functions into our modified pdb.
4465 to put these functions into our modified pdb.
4456 This new object inspector system uses the new colorizing module,
4466 This new object inspector system uses the new colorizing module,
4457 so source code and other things are nicely syntax highlighted.
4467 so source code and other things are nicely syntax highlighted.
4458
4468
4459 2002-05-18 Fernando Perez <fperez@colorado.edu>
4469 2002-05-18 Fernando Perez <fperez@colorado.edu>
4460
4470
4461 * IPython/ColorANSI.py: Split the coloring tools into a separate
4471 * IPython/ColorANSI.py: Split the coloring tools into a separate
4462 module so I can use them in other code easier (they were part of
4472 module so I can use them in other code easier (they were part of
4463 ultraTB).
4473 ultraTB).
4464
4474
4465 2002-05-17 Fernando Perez <fperez@colorado.edu>
4475 2002-05-17 Fernando Perez <fperez@colorado.edu>
4466
4476
4467 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4477 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4468 fixed it to set the global 'g' also to the called instance, as
4478 fixed it to set the global 'g' also to the called instance, as
4469 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4479 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4470 user's 'g' variables).
4480 user's 'g' variables).
4471
4481
4472 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4482 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4473 global variables (aliases to _ih,_oh) so that users which expect
4483 global variables (aliases to _ih,_oh) so that users which expect
4474 In[5] or Out[7] to work aren't unpleasantly surprised.
4484 In[5] or Out[7] to work aren't unpleasantly surprised.
4475 (InputList.__getslice__): new class to allow executing slices of
4485 (InputList.__getslice__): new class to allow executing slices of
4476 input history directly. Very simple class, complements the use of
4486 input history directly. Very simple class, complements the use of
4477 macros.
4487 macros.
4478
4488
4479 2002-05-16 Fernando Perez <fperez@colorado.edu>
4489 2002-05-16 Fernando Perez <fperez@colorado.edu>
4480
4490
4481 * setup.py (docdirbase): make doc directory be just doc/IPython
4491 * setup.py (docdirbase): make doc directory be just doc/IPython
4482 without version numbers, it will reduce clutter for users.
4492 without version numbers, it will reduce clutter for users.
4483
4493
4484 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4494 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4485 execfile call to prevent possible memory leak. See for details:
4495 execfile call to prevent possible memory leak. See for details:
4486 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4496 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4487
4497
4488 2002-05-15 Fernando Perez <fperez@colorado.edu>
4498 2002-05-15 Fernando Perez <fperez@colorado.edu>
4489
4499
4490 * IPython/Magic.py (Magic.magic_psource): made the object
4500 * IPython/Magic.py (Magic.magic_psource): made the object
4491 introspection names be more standard: pdoc, pdef, pfile and
4501 introspection names be more standard: pdoc, pdef, pfile and
4492 psource. They all print/page their output, and it makes
4502 psource. They all print/page their output, and it makes
4493 remembering them easier. Kept old names for compatibility as
4503 remembering them easier. Kept old names for compatibility as
4494 aliases.
4504 aliases.
4495
4505
4496 2002-05-14 Fernando Perez <fperez@colorado.edu>
4506 2002-05-14 Fernando Perez <fperez@colorado.edu>
4497
4507
4498 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4508 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4499 what the mouse problem was. The trick is to use gnuplot with temp
4509 what the mouse problem was. The trick is to use gnuplot with temp
4500 files and NOT with pipes (for data communication), because having
4510 files and NOT with pipes (for data communication), because having
4501 both pipes and the mouse on is bad news.
4511 both pipes and the mouse on is bad news.
4502
4512
4503 2002-05-13 Fernando Perez <fperez@colorado.edu>
4513 2002-05-13 Fernando Perez <fperez@colorado.edu>
4504
4514
4505 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4515 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4506 bug. Information would be reported about builtins even when
4516 bug. Information would be reported about builtins even when
4507 user-defined functions overrode them.
4517 user-defined functions overrode them.
4508
4518
4509 2002-05-11 Fernando Perez <fperez@colorado.edu>
4519 2002-05-11 Fernando Perez <fperez@colorado.edu>
4510
4520
4511 * IPython/__init__.py (__all__): removed FlexCompleter from
4521 * IPython/__init__.py (__all__): removed FlexCompleter from
4512 __all__ so that things don't fail in platforms without readline.
4522 __all__ so that things don't fail in platforms without readline.
4513
4523
4514 2002-05-10 Fernando Perez <fperez@colorado.edu>
4524 2002-05-10 Fernando Perez <fperez@colorado.edu>
4515
4525
4516 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4526 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4517 it requires Numeric, effectively making Numeric a dependency for
4527 it requires Numeric, effectively making Numeric a dependency for
4518 IPython.
4528 IPython.
4519
4529
4520 * Released 0.2.13
4530 * Released 0.2.13
4521
4531
4522 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4532 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4523 profiler interface. Now all the major options from the profiler
4533 profiler interface. Now all the major options from the profiler
4524 module are directly supported in IPython, both for single
4534 module are directly supported in IPython, both for single
4525 expressions (@prun) and for full programs (@run -p).
4535 expressions (@prun) and for full programs (@run -p).
4526
4536
4527 2002-05-09 Fernando Perez <fperez@colorado.edu>
4537 2002-05-09 Fernando Perez <fperez@colorado.edu>
4528
4538
4529 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4539 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4530 magic properly formatted for screen.
4540 magic properly formatted for screen.
4531
4541
4532 * setup.py (make_shortcut): Changed things to put pdf version in
4542 * setup.py (make_shortcut): Changed things to put pdf version in
4533 doc/ instead of doc/manual (had to change lyxport a bit).
4543 doc/ instead of doc/manual (had to change lyxport a bit).
4534
4544
4535 * IPython/Magic.py (Profile.string_stats): made profile runs go
4545 * IPython/Magic.py (Profile.string_stats): made profile runs go
4536 through pager (they are long and a pager allows searching, saving,
4546 through pager (they are long and a pager allows searching, saving,
4537 etc.)
4547 etc.)
4538
4548
4539 2002-05-08 Fernando Perez <fperez@colorado.edu>
4549 2002-05-08 Fernando Perez <fperez@colorado.edu>
4540
4550
4541 * Released 0.2.12
4551 * Released 0.2.12
4542
4552
4543 2002-05-06 Fernando Perez <fperez@colorado.edu>
4553 2002-05-06 Fernando Perez <fperez@colorado.edu>
4544
4554
4545 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4555 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4546 introduced); 'hist n1 n2' was broken.
4556 introduced); 'hist n1 n2' was broken.
4547 (Magic.magic_pdb): added optional on/off arguments to @pdb
4557 (Magic.magic_pdb): added optional on/off arguments to @pdb
4548 (Magic.magic_run): added option -i to @run, which executes code in
4558 (Magic.magic_run): added option -i to @run, which executes code in
4549 the IPython namespace instead of a clean one. Also added @irun as
4559 the IPython namespace instead of a clean one. Also added @irun as
4550 an alias to @run -i.
4560 an alias to @run -i.
4551
4561
4552 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4562 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4553 fixed (it didn't really do anything, the namespaces were wrong).
4563 fixed (it didn't really do anything, the namespaces were wrong).
4554
4564
4555 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4565 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4556
4566
4557 * IPython/__init__.py (__all__): Fixed package namespace, now
4567 * IPython/__init__.py (__all__): Fixed package namespace, now
4558 'import IPython' does give access to IPython.<all> as
4568 'import IPython' does give access to IPython.<all> as
4559 expected. Also renamed __release__ to Release.
4569 expected. Also renamed __release__ to Release.
4560
4570
4561 * IPython/Debugger.py (__license__): created new Pdb class which
4571 * IPython/Debugger.py (__license__): created new Pdb class which
4562 functions like a drop-in for the normal pdb.Pdb but does NOT
4572 functions like a drop-in for the normal pdb.Pdb but does NOT
4563 import readline by default. This way it doesn't muck up IPython's
4573 import readline by default. This way it doesn't muck up IPython's
4564 readline handling, and now tab-completion finally works in the
4574 readline handling, and now tab-completion finally works in the
4565 debugger -- sort of. It completes things globally visible, but the
4575 debugger -- sort of. It completes things globally visible, but the
4566 completer doesn't track the stack as pdb walks it. That's a bit
4576 completer doesn't track the stack as pdb walks it. That's a bit
4567 tricky, and I'll have to implement it later.
4577 tricky, and I'll have to implement it later.
4568
4578
4569 2002-05-05 Fernando Perez <fperez@colorado.edu>
4579 2002-05-05 Fernando Perez <fperez@colorado.edu>
4570
4580
4571 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4581 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4572 magic docstrings when printed via ? (explicit \'s were being
4582 magic docstrings when printed via ? (explicit \'s were being
4573 printed).
4583 printed).
4574
4584
4575 * IPython/ipmaker.py (make_IPython): fixed namespace
4585 * IPython/ipmaker.py (make_IPython): fixed namespace
4576 identification bug. Now variables loaded via logs or command-line
4586 identification bug. Now variables loaded via logs or command-line
4577 files are recognized in the interactive namespace by @who.
4587 files are recognized in the interactive namespace by @who.
4578
4588
4579 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4589 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4580 log replay system stemming from the string form of Structs.
4590 log replay system stemming from the string form of Structs.
4581
4591
4582 * IPython/Magic.py (Macro.__init__): improved macros to properly
4592 * IPython/Magic.py (Macro.__init__): improved macros to properly
4583 handle magic commands in them.
4593 handle magic commands in them.
4584 (Magic.magic_logstart): usernames are now expanded so 'logstart
4594 (Magic.magic_logstart): usernames are now expanded so 'logstart
4585 ~/mylog' now works.
4595 ~/mylog' now works.
4586
4596
4587 * IPython/iplib.py (complete): fixed bug where paths starting with
4597 * IPython/iplib.py (complete): fixed bug where paths starting with
4588 '/' would be completed as magic names.
4598 '/' would be completed as magic names.
4589
4599
4590 2002-05-04 Fernando Perez <fperez@colorado.edu>
4600 2002-05-04 Fernando Perez <fperez@colorado.edu>
4591
4601
4592 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4602 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4593 allow running full programs under the profiler's control.
4603 allow running full programs under the profiler's control.
4594
4604
4595 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4605 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4596 mode to report exceptions verbosely but without formatting
4606 mode to report exceptions verbosely but without formatting
4597 variables. This addresses the issue of ipython 'freezing' (it's
4607 variables. This addresses the issue of ipython 'freezing' (it's
4598 not frozen, but caught in an expensive formatting loop) when huge
4608 not frozen, but caught in an expensive formatting loop) when huge
4599 variables are in the context of an exception.
4609 variables are in the context of an exception.
4600 (VerboseTB.text): Added '--->' markers at line where exception was
4610 (VerboseTB.text): Added '--->' markers at line where exception was
4601 triggered. Much clearer to read, especially in NoColor modes.
4611 triggered. Much clearer to read, especially in NoColor modes.
4602
4612
4603 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4613 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4604 implemented in reverse when changing to the new parse_options().
4614 implemented in reverse when changing to the new parse_options().
4605
4615
4606 2002-05-03 Fernando Perez <fperez@colorado.edu>
4616 2002-05-03 Fernando Perez <fperez@colorado.edu>
4607
4617
4608 * IPython/Magic.py (Magic.parse_options): new function so that
4618 * IPython/Magic.py (Magic.parse_options): new function so that
4609 magics can parse options easier.
4619 magics can parse options easier.
4610 (Magic.magic_prun): new function similar to profile.run(),
4620 (Magic.magic_prun): new function similar to profile.run(),
4611 suggested by Chris Hart.
4621 suggested by Chris Hart.
4612 (Magic.magic_cd): fixed behavior so that it only changes if
4622 (Magic.magic_cd): fixed behavior so that it only changes if
4613 directory actually is in history.
4623 directory actually is in history.
4614
4624
4615 * IPython/usage.py (__doc__): added information about potential
4625 * IPython/usage.py (__doc__): added information about potential
4616 slowness of Verbose exception mode when there are huge data
4626 slowness of Verbose exception mode when there are huge data
4617 structures to be formatted (thanks to Archie Paulson).
4627 structures to be formatted (thanks to Archie Paulson).
4618
4628
4619 * IPython/ipmaker.py (make_IPython): Changed default logging
4629 * IPython/ipmaker.py (make_IPython): Changed default logging
4620 (when simply called with -log) to use curr_dir/ipython.log in
4630 (when simply called with -log) to use curr_dir/ipython.log in
4621 rotate mode. Fixed crash which was occuring with -log before
4631 rotate mode. Fixed crash which was occuring with -log before
4622 (thanks to Jim Boyle).
4632 (thanks to Jim Boyle).
4623
4633
4624 2002-05-01 Fernando Perez <fperez@colorado.edu>
4634 2002-05-01 Fernando Perez <fperez@colorado.edu>
4625
4635
4626 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4636 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4627 was nasty -- though somewhat of a corner case).
4637 was nasty -- though somewhat of a corner case).
4628
4638
4629 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4639 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4630 text (was a bug).
4640 text (was a bug).
4631
4641
4632 2002-04-30 Fernando Perez <fperez@colorado.edu>
4642 2002-04-30 Fernando Perez <fperez@colorado.edu>
4633
4643
4634 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4644 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4635 a print after ^D or ^C from the user so that the In[] prompt
4645 a print after ^D or ^C from the user so that the In[] prompt
4636 doesn't over-run the gnuplot one.
4646 doesn't over-run the gnuplot one.
4637
4647
4638 2002-04-29 Fernando Perez <fperez@colorado.edu>
4648 2002-04-29 Fernando Perez <fperez@colorado.edu>
4639
4649
4640 * Released 0.2.10
4650 * Released 0.2.10
4641
4651
4642 * IPython/__release__.py (version): get date dynamically.
4652 * IPython/__release__.py (version): get date dynamically.
4643
4653
4644 * Misc. documentation updates thanks to Arnd's comments. Also ran
4654 * Misc. documentation updates thanks to Arnd's comments. Also ran
4645 a full spellcheck on the manual (hadn't been done in a while).
4655 a full spellcheck on the manual (hadn't been done in a while).
4646
4656
4647 2002-04-27 Fernando Perez <fperez@colorado.edu>
4657 2002-04-27 Fernando Perez <fperez@colorado.edu>
4648
4658
4649 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4659 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4650 starting a log in mid-session would reset the input history list.
4660 starting a log in mid-session would reset the input history list.
4651
4661
4652 2002-04-26 Fernando Perez <fperez@colorado.edu>
4662 2002-04-26 Fernando Perez <fperez@colorado.edu>
4653
4663
4654 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4664 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4655 all files were being included in an update. Now anything in
4665 all files were being included in an update. Now anything in
4656 UserConfig that matches [A-Za-z]*.py will go (this excludes
4666 UserConfig that matches [A-Za-z]*.py will go (this excludes
4657 __init__.py)
4667 __init__.py)
4658
4668
4659 2002-04-25 Fernando Perez <fperez@colorado.edu>
4669 2002-04-25 Fernando Perez <fperez@colorado.edu>
4660
4670
4661 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4671 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4662 to __builtins__ so that any form of embedded or imported code can
4672 to __builtins__ so that any form of embedded or imported code can
4663 test for being inside IPython.
4673 test for being inside IPython.
4664
4674
4665 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4675 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4666 changed to GnuplotMagic because it's now an importable module,
4676 changed to GnuplotMagic because it's now an importable module,
4667 this makes the name follow that of the standard Gnuplot module.
4677 this makes the name follow that of the standard Gnuplot module.
4668 GnuplotMagic can now be loaded at any time in mid-session.
4678 GnuplotMagic can now be loaded at any time in mid-session.
4669
4679
4670 2002-04-24 Fernando Perez <fperez@colorado.edu>
4680 2002-04-24 Fernando Perez <fperez@colorado.edu>
4671
4681
4672 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4682 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4673 the globals (IPython has its own namespace) and the
4683 the globals (IPython has its own namespace) and the
4674 PhysicalQuantity stuff is much better anyway.
4684 PhysicalQuantity stuff is much better anyway.
4675
4685
4676 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4686 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4677 embedding example to standard user directory for
4687 embedding example to standard user directory for
4678 distribution. Also put it in the manual.
4688 distribution. Also put it in the manual.
4679
4689
4680 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4690 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4681 instance as first argument (so it doesn't rely on some obscure
4691 instance as first argument (so it doesn't rely on some obscure
4682 hidden global).
4692 hidden global).
4683
4693
4684 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4694 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4685 delimiters. While it prevents ().TAB from working, it allows
4695 delimiters. While it prevents ().TAB from working, it allows
4686 completions in open (... expressions. This is by far a more common
4696 completions in open (... expressions. This is by far a more common
4687 case.
4697 case.
4688
4698
4689 2002-04-23 Fernando Perez <fperez@colorado.edu>
4699 2002-04-23 Fernando Perez <fperez@colorado.edu>
4690
4700
4691 * IPython/Extensions/InterpreterPasteInput.py: new
4701 * IPython/Extensions/InterpreterPasteInput.py: new
4692 syntax-processing module for pasting lines with >>> or ... at the
4702 syntax-processing module for pasting lines with >>> or ... at the
4693 start.
4703 start.
4694
4704
4695 * IPython/Extensions/PhysicalQ_Interactive.py
4705 * IPython/Extensions/PhysicalQ_Interactive.py
4696 (PhysicalQuantityInteractive.__int__): fixed to work with either
4706 (PhysicalQuantityInteractive.__int__): fixed to work with either
4697 Numeric or math.
4707 Numeric or math.
4698
4708
4699 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4709 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4700 provided profiles. Now we have:
4710 provided profiles. Now we have:
4701 -math -> math module as * and cmath with its own namespace.
4711 -math -> math module as * and cmath with its own namespace.
4702 -numeric -> Numeric as *, plus gnuplot & grace
4712 -numeric -> Numeric as *, plus gnuplot & grace
4703 -physics -> same as before
4713 -physics -> same as before
4704
4714
4705 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4715 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4706 user-defined magics wouldn't be found by @magic if they were
4716 user-defined magics wouldn't be found by @magic if they were
4707 defined as class methods. Also cleaned up the namespace search
4717 defined as class methods. Also cleaned up the namespace search
4708 logic and the string building (to use %s instead of many repeated
4718 logic and the string building (to use %s instead of many repeated
4709 string adds).
4719 string adds).
4710
4720
4711 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4721 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4712 of user-defined magics to operate with class methods (cleaner, in
4722 of user-defined magics to operate with class methods (cleaner, in
4713 line with the gnuplot code).
4723 line with the gnuplot code).
4714
4724
4715 2002-04-22 Fernando Perez <fperez@colorado.edu>
4725 2002-04-22 Fernando Perez <fperez@colorado.edu>
4716
4726
4717 * setup.py: updated dependency list so that manual is updated when
4727 * setup.py: updated dependency list so that manual is updated when
4718 all included files change.
4728 all included files change.
4719
4729
4720 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4730 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4721 the delimiter removal option (the fix is ugly right now).
4731 the delimiter removal option (the fix is ugly right now).
4722
4732
4723 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4733 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4724 all of the math profile (quicker loading, no conflict between
4734 all of the math profile (quicker loading, no conflict between
4725 g-9.8 and g-gnuplot).
4735 g-9.8 and g-gnuplot).
4726
4736
4727 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4737 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4728 name of post-mortem files to IPython_crash_report.txt.
4738 name of post-mortem files to IPython_crash_report.txt.
4729
4739
4730 * Cleanup/update of the docs. Added all the new readline info and
4740 * Cleanup/update of the docs. Added all the new readline info and
4731 formatted all lists as 'real lists'.
4741 formatted all lists as 'real lists'.
4732
4742
4733 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4743 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4734 tab-completion options, since the full readline parse_and_bind is
4744 tab-completion options, since the full readline parse_and_bind is
4735 now accessible.
4745 now accessible.
4736
4746
4737 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4747 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4738 handling of readline options. Now users can specify any string to
4748 handling of readline options. Now users can specify any string to
4739 be passed to parse_and_bind(), as well as the delimiters to be
4749 be passed to parse_and_bind(), as well as the delimiters to be
4740 removed.
4750 removed.
4741 (InteractiveShell.__init__): Added __name__ to the global
4751 (InteractiveShell.__init__): Added __name__ to the global
4742 namespace so that things like Itpl which rely on its existence
4752 namespace so that things like Itpl which rely on its existence
4743 don't crash.
4753 don't crash.
4744 (InteractiveShell._prefilter): Defined the default with a _ so
4754 (InteractiveShell._prefilter): Defined the default with a _ so
4745 that prefilter() is easier to override, while the default one
4755 that prefilter() is easier to override, while the default one
4746 remains available.
4756 remains available.
4747
4757
4748 2002-04-18 Fernando Perez <fperez@colorado.edu>
4758 2002-04-18 Fernando Perez <fperez@colorado.edu>
4749
4759
4750 * Added information about pdb in the docs.
4760 * Added information about pdb in the docs.
4751
4761
4752 2002-04-17 Fernando Perez <fperez@colorado.edu>
4762 2002-04-17 Fernando Perez <fperez@colorado.edu>
4753
4763
4754 * IPython/ipmaker.py (make_IPython): added rc_override option to
4764 * IPython/ipmaker.py (make_IPython): added rc_override option to
4755 allow passing config options at creation time which may override
4765 allow passing config options at creation time which may override
4756 anything set in the config files or command line. This is
4766 anything set in the config files or command line. This is
4757 particularly useful for configuring embedded instances.
4767 particularly useful for configuring embedded instances.
4758
4768
4759 2002-04-15 Fernando Perez <fperez@colorado.edu>
4769 2002-04-15 Fernando Perez <fperez@colorado.edu>
4760
4770
4761 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4771 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4762 crash embedded instances because of the input cache falling out of
4772 crash embedded instances because of the input cache falling out of
4763 sync with the output counter.
4773 sync with the output counter.
4764
4774
4765 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4775 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4766 mode which calls pdb after an uncaught exception in IPython itself.
4776 mode which calls pdb after an uncaught exception in IPython itself.
4767
4777
4768 2002-04-14 Fernando Perez <fperez@colorado.edu>
4778 2002-04-14 Fernando Perez <fperez@colorado.edu>
4769
4779
4770 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4780 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4771 readline, fix it back after each call.
4781 readline, fix it back after each call.
4772
4782
4773 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4783 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4774 method to force all access via __call__(), which guarantees that
4784 method to force all access via __call__(), which guarantees that
4775 traceback references are properly deleted.
4785 traceback references are properly deleted.
4776
4786
4777 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4787 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4778 improve printing when pprint is in use.
4788 improve printing when pprint is in use.
4779
4789
4780 2002-04-13 Fernando Perez <fperez@colorado.edu>
4790 2002-04-13 Fernando Perez <fperez@colorado.edu>
4781
4791
4782 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4792 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4783 exceptions aren't caught anymore. If the user triggers one, he
4793 exceptions aren't caught anymore. If the user triggers one, he
4784 should know why he's doing it and it should go all the way up,
4794 should know why he's doing it and it should go all the way up,
4785 just like any other exception. So now @abort will fully kill the
4795 just like any other exception. So now @abort will fully kill the
4786 embedded interpreter and the embedding code (unless that happens
4796 embedded interpreter and the embedding code (unless that happens
4787 to catch SystemExit).
4797 to catch SystemExit).
4788
4798
4789 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4799 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4790 and a debugger() method to invoke the interactive pdb debugger
4800 and a debugger() method to invoke the interactive pdb debugger
4791 after printing exception information. Also added the corresponding
4801 after printing exception information. Also added the corresponding
4792 -pdb option and @pdb magic to control this feature, and updated
4802 -pdb option and @pdb magic to control this feature, and updated
4793 the docs. After a suggestion from Christopher Hart
4803 the docs. After a suggestion from Christopher Hart
4794 (hart-AT-caltech.edu).
4804 (hart-AT-caltech.edu).
4795
4805
4796 2002-04-12 Fernando Perez <fperez@colorado.edu>
4806 2002-04-12 Fernando Perez <fperez@colorado.edu>
4797
4807
4798 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4808 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4799 the exception handlers defined by the user (not the CrashHandler)
4809 the exception handlers defined by the user (not the CrashHandler)
4800 so that user exceptions don't trigger an ipython bug report.
4810 so that user exceptions don't trigger an ipython bug report.
4801
4811
4802 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4812 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4803 configurable (it should have always been so).
4813 configurable (it should have always been so).
4804
4814
4805 2002-03-26 Fernando Perez <fperez@colorado.edu>
4815 2002-03-26 Fernando Perez <fperez@colorado.edu>
4806
4816
4807 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4817 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4808 and there to fix embedding namespace issues. This should all be
4818 and there to fix embedding namespace issues. This should all be
4809 done in a more elegant way.
4819 done in a more elegant way.
4810
4820
4811 2002-03-25 Fernando Perez <fperez@colorado.edu>
4821 2002-03-25 Fernando Perez <fperez@colorado.edu>
4812
4822
4813 * IPython/genutils.py (get_home_dir): Try to make it work under
4823 * IPython/genutils.py (get_home_dir): Try to make it work under
4814 win9x also.
4824 win9x also.
4815
4825
4816 2002-03-20 Fernando Perez <fperez@colorado.edu>
4826 2002-03-20 Fernando Perez <fperez@colorado.edu>
4817
4827
4818 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4828 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4819 sys.displayhook untouched upon __init__.
4829 sys.displayhook untouched upon __init__.
4820
4830
4821 2002-03-19 Fernando Perez <fperez@colorado.edu>
4831 2002-03-19 Fernando Perez <fperez@colorado.edu>
4822
4832
4823 * Released 0.2.9 (for embedding bug, basically).
4833 * Released 0.2.9 (for embedding bug, basically).
4824
4834
4825 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4835 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4826 exceptions so that enclosing shell's state can be restored.
4836 exceptions so that enclosing shell's state can be restored.
4827
4837
4828 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4838 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4829 naming conventions in the .ipython/ dir.
4839 naming conventions in the .ipython/ dir.
4830
4840
4831 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4841 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4832 from delimiters list so filenames with - in them get expanded.
4842 from delimiters list so filenames with - in them get expanded.
4833
4843
4834 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4844 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4835 sys.displayhook not being properly restored after an embedded call.
4845 sys.displayhook not being properly restored after an embedded call.
4836
4846
4837 2002-03-18 Fernando Perez <fperez@colorado.edu>
4847 2002-03-18 Fernando Perez <fperez@colorado.edu>
4838
4848
4839 * Released 0.2.8
4849 * Released 0.2.8
4840
4850
4841 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4851 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4842 some files weren't being included in a -upgrade.
4852 some files weren't being included in a -upgrade.
4843 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4853 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4844 on' so that the first tab completes.
4854 on' so that the first tab completes.
4845 (InteractiveShell.handle_magic): fixed bug with spaces around
4855 (InteractiveShell.handle_magic): fixed bug with spaces around
4846 quotes breaking many magic commands.
4856 quotes breaking many magic commands.
4847
4857
4848 * setup.py: added note about ignoring the syntax error messages at
4858 * setup.py: added note about ignoring the syntax error messages at
4849 installation.
4859 installation.
4850
4860
4851 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4861 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4852 streamlining the gnuplot interface, now there's only one magic @gp.
4862 streamlining the gnuplot interface, now there's only one magic @gp.
4853
4863
4854 2002-03-17 Fernando Perez <fperez@colorado.edu>
4864 2002-03-17 Fernando Perez <fperez@colorado.edu>
4855
4865
4856 * IPython/UserConfig/magic_gnuplot.py: new name for the
4866 * IPython/UserConfig/magic_gnuplot.py: new name for the
4857 example-magic_pm.py file. Much enhanced system, now with a shell
4867 example-magic_pm.py file. Much enhanced system, now with a shell
4858 for communicating directly with gnuplot, one command at a time.
4868 for communicating directly with gnuplot, one command at a time.
4859
4869
4860 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4870 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4861 setting __name__=='__main__'.
4871 setting __name__=='__main__'.
4862
4872
4863 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4873 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4864 mini-shell for accessing gnuplot from inside ipython. Should
4874 mini-shell for accessing gnuplot from inside ipython. Should
4865 extend it later for grace access too. Inspired by Arnd's
4875 extend it later for grace access too. Inspired by Arnd's
4866 suggestion.
4876 suggestion.
4867
4877
4868 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4878 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4869 calling magic functions with () in their arguments. Thanks to Arnd
4879 calling magic functions with () in their arguments. Thanks to Arnd
4870 Baecker for pointing this to me.
4880 Baecker for pointing this to me.
4871
4881
4872 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4882 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4873 infinitely for integer or complex arrays (only worked with floats).
4883 infinitely for integer or complex arrays (only worked with floats).
4874
4884
4875 2002-03-16 Fernando Perez <fperez@colorado.edu>
4885 2002-03-16 Fernando Perez <fperez@colorado.edu>
4876
4886
4877 * setup.py: Merged setup and setup_windows into a single script
4887 * setup.py: Merged setup and setup_windows into a single script
4878 which properly handles things for windows users.
4888 which properly handles things for windows users.
4879
4889
4880 2002-03-15 Fernando Perez <fperez@colorado.edu>
4890 2002-03-15 Fernando Perez <fperez@colorado.edu>
4881
4891
4882 * Big change to the manual: now the magics are all automatically
4892 * Big change to the manual: now the magics are all automatically
4883 documented. This information is generated from their docstrings
4893 documented. This information is generated from their docstrings
4884 and put in a latex file included by the manual lyx file. This way
4894 and put in a latex file included by the manual lyx file. This way
4885 we get always up to date information for the magics. The manual
4895 we get always up to date information for the magics. The manual
4886 now also has proper version information, also auto-synced.
4896 now also has proper version information, also auto-synced.
4887
4897
4888 For this to work, an undocumented --magic_docstrings option was added.
4898 For this to work, an undocumented --magic_docstrings option was added.
4889
4899
4890 2002-03-13 Fernando Perez <fperez@colorado.edu>
4900 2002-03-13 Fernando Perez <fperez@colorado.edu>
4891
4901
4892 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4902 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4893 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4903 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4894
4904
4895 2002-03-12 Fernando Perez <fperez@colorado.edu>
4905 2002-03-12 Fernando Perez <fperez@colorado.edu>
4896
4906
4897 * IPython/ultraTB.py (TermColors): changed color escapes again to
4907 * IPython/ultraTB.py (TermColors): changed color escapes again to
4898 fix the (old, reintroduced) line-wrapping bug. Basically, if
4908 fix the (old, reintroduced) line-wrapping bug. Basically, if
4899 \001..\002 aren't given in the color escapes, lines get wrapped
4909 \001..\002 aren't given in the color escapes, lines get wrapped
4900 weirdly. But giving those screws up old xterms and emacs terms. So
4910 weirdly. But giving those screws up old xterms and emacs terms. So
4901 I added some logic for emacs terms to be ok, but I can't identify old
4911 I added some logic for emacs terms to be ok, but I can't identify old
4902 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4912 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4903
4913
4904 2002-03-10 Fernando Perez <fperez@colorado.edu>
4914 2002-03-10 Fernando Perez <fperez@colorado.edu>
4905
4915
4906 * IPython/usage.py (__doc__): Various documentation cleanups and
4916 * IPython/usage.py (__doc__): Various documentation cleanups and
4907 updates, both in usage docstrings and in the manual.
4917 updates, both in usage docstrings and in the manual.
4908
4918
4909 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4919 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4910 handling of caching. Set minimum acceptabe value for having a
4920 handling of caching. Set minimum acceptabe value for having a
4911 cache at 20 values.
4921 cache at 20 values.
4912
4922
4913 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4923 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4914 install_first_time function to a method, renamed it and added an
4924 install_first_time function to a method, renamed it and added an
4915 'upgrade' mode. Now people can update their config directory with
4925 'upgrade' mode. Now people can update their config directory with
4916 a simple command line switch (-upgrade, also new).
4926 a simple command line switch (-upgrade, also new).
4917
4927
4918 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4928 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4919 @file (convenient for automagic users under Python >= 2.2).
4929 @file (convenient for automagic users under Python >= 2.2).
4920 Removed @files (it seemed more like a plural than an abbrev. of
4930 Removed @files (it seemed more like a plural than an abbrev. of
4921 'file show').
4931 'file show').
4922
4932
4923 * IPython/iplib.py (install_first_time): Fixed crash if there were
4933 * IPython/iplib.py (install_first_time): Fixed crash if there were
4924 backup files ('~') in .ipython/ install directory.
4934 backup files ('~') in .ipython/ install directory.
4925
4935
4926 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4936 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4927 system. Things look fine, but these changes are fairly
4937 system. Things look fine, but these changes are fairly
4928 intrusive. Test them for a few days.
4938 intrusive. Test them for a few days.
4929
4939
4930 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4940 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4931 the prompts system. Now all in/out prompt strings are user
4941 the prompts system. Now all in/out prompt strings are user
4932 controllable. This is particularly useful for embedding, as one
4942 controllable. This is particularly useful for embedding, as one
4933 can tag embedded instances with particular prompts.
4943 can tag embedded instances with particular prompts.
4934
4944
4935 Also removed global use of sys.ps1/2, which now allows nested
4945 Also removed global use of sys.ps1/2, which now allows nested
4936 embeddings without any problems. Added command-line options for
4946 embeddings without any problems. Added command-line options for
4937 the prompt strings.
4947 the prompt strings.
4938
4948
4939 2002-03-08 Fernando Perez <fperez@colorado.edu>
4949 2002-03-08 Fernando Perez <fperez@colorado.edu>
4940
4950
4941 * IPython/UserConfig/example-embed-short.py (ipshell): added
4951 * IPython/UserConfig/example-embed-short.py (ipshell): added
4942 example file with the bare minimum code for embedding.
4952 example file with the bare minimum code for embedding.
4943
4953
4944 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4954 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4945 functionality for the embeddable shell to be activated/deactivated
4955 functionality for the embeddable shell to be activated/deactivated
4946 either globally or at each call.
4956 either globally or at each call.
4947
4957
4948 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4958 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4949 rewriting the prompt with '--->' for auto-inputs with proper
4959 rewriting the prompt with '--->' for auto-inputs with proper
4950 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4960 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4951 this is handled by the prompts class itself, as it should.
4961 this is handled by the prompts class itself, as it should.
4952
4962
4953 2002-03-05 Fernando Perez <fperez@colorado.edu>
4963 2002-03-05 Fernando Perez <fperez@colorado.edu>
4954
4964
4955 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4965 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4956 @logstart to avoid name clashes with the math log function.
4966 @logstart to avoid name clashes with the math log function.
4957
4967
4958 * Big updates to X/Emacs section of the manual.
4968 * Big updates to X/Emacs section of the manual.
4959
4969
4960 * Removed ipython_emacs. Milan explained to me how to pass
4970 * Removed ipython_emacs. Milan explained to me how to pass
4961 arguments to ipython through Emacs. Some day I'm going to end up
4971 arguments to ipython through Emacs. Some day I'm going to end up
4962 learning some lisp...
4972 learning some lisp...
4963
4973
4964 2002-03-04 Fernando Perez <fperez@colorado.edu>
4974 2002-03-04 Fernando Perez <fperez@colorado.edu>
4965
4975
4966 * IPython/ipython_emacs: Created script to be used as the
4976 * IPython/ipython_emacs: Created script to be used as the
4967 py-python-command Emacs variable so we can pass IPython
4977 py-python-command Emacs variable so we can pass IPython
4968 parameters. I can't figure out how to tell Emacs directly to pass
4978 parameters. I can't figure out how to tell Emacs directly to pass
4969 parameters to IPython, so a dummy shell script will do it.
4979 parameters to IPython, so a dummy shell script will do it.
4970
4980
4971 Other enhancements made for things to work better under Emacs'
4981 Other enhancements made for things to work better under Emacs'
4972 various types of terminals. Many thanks to Milan Zamazal
4982 various types of terminals. Many thanks to Milan Zamazal
4973 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4983 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4974
4984
4975 2002-03-01 Fernando Perez <fperez@colorado.edu>
4985 2002-03-01 Fernando Perez <fperez@colorado.edu>
4976
4986
4977 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4987 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4978 that loading of readline is now optional. This gives better
4988 that loading of readline is now optional. This gives better
4979 control to emacs users.
4989 control to emacs users.
4980
4990
4981 * IPython/ultraTB.py (__date__): Modified color escape sequences
4991 * IPython/ultraTB.py (__date__): Modified color escape sequences
4982 and now things work fine under xterm and in Emacs' term buffers
4992 and now things work fine under xterm and in Emacs' term buffers
4983 (though not shell ones). Well, in emacs you get colors, but all
4993 (though not shell ones). Well, in emacs you get colors, but all
4984 seem to be 'light' colors (no difference between dark and light
4994 seem to be 'light' colors (no difference between dark and light
4985 ones). But the garbage chars are gone, and also in xterms. It
4995 ones). But the garbage chars are gone, and also in xterms. It
4986 seems that now I'm using 'cleaner' ansi sequences.
4996 seems that now I'm using 'cleaner' ansi sequences.
4987
4997
4988 2002-02-21 Fernando Perez <fperez@colorado.edu>
4998 2002-02-21 Fernando Perez <fperez@colorado.edu>
4989
4999
4990 * Released 0.2.7 (mainly to publish the scoping fix).
5000 * Released 0.2.7 (mainly to publish the scoping fix).
4991
5001
4992 * IPython/Logger.py (Logger.logstate): added. A corresponding
5002 * IPython/Logger.py (Logger.logstate): added. A corresponding
4993 @logstate magic was created.
5003 @logstate magic was created.
4994
5004
4995 * IPython/Magic.py: fixed nested scoping problem under Python
5005 * IPython/Magic.py: fixed nested scoping problem under Python
4996 2.1.x (automagic wasn't working).
5006 2.1.x (automagic wasn't working).
4997
5007
4998 2002-02-20 Fernando Perez <fperez@colorado.edu>
5008 2002-02-20 Fernando Perez <fperez@colorado.edu>
4999
5009
5000 * Released 0.2.6.
5010 * Released 0.2.6.
5001
5011
5002 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5012 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5003 option so that logs can come out without any headers at all.
5013 option so that logs can come out without any headers at all.
5004
5014
5005 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5015 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5006 SciPy.
5016 SciPy.
5007
5017
5008 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5018 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5009 that embedded IPython calls don't require vars() to be explicitly
5019 that embedded IPython calls don't require vars() to be explicitly
5010 passed. Now they are extracted from the caller's frame (code
5020 passed. Now they are extracted from the caller's frame (code
5011 snatched from Eric Jones' weave). Added better documentation to
5021 snatched from Eric Jones' weave). Added better documentation to
5012 the section on embedding and the example file.
5022 the section on embedding and the example file.
5013
5023
5014 * IPython/genutils.py (page): Changed so that under emacs, it just
5024 * IPython/genutils.py (page): Changed so that under emacs, it just
5015 prints the string. You can then page up and down in the emacs
5025 prints the string. You can then page up and down in the emacs
5016 buffer itself. This is how the builtin help() works.
5026 buffer itself. This is how the builtin help() works.
5017
5027
5018 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5028 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5019 macro scoping: macros need to be executed in the user's namespace
5029 macro scoping: macros need to be executed in the user's namespace
5020 to work as if they had been typed by the user.
5030 to work as if they had been typed by the user.
5021
5031
5022 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5032 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5023 execute automatically (no need to type 'exec...'). They then
5033 execute automatically (no need to type 'exec...'). They then
5024 behave like 'true macros'. The printing system was also modified
5034 behave like 'true macros'. The printing system was also modified
5025 for this to work.
5035 for this to work.
5026
5036
5027 2002-02-19 Fernando Perez <fperez@colorado.edu>
5037 2002-02-19 Fernando Perez <fperez@colorado.edu>
5028
5038
5029 * IPython/genutils.py (page_file): new function for paging files
5039 * IPython/genutils.py (page_file): new function for paging files
5030 in an OS-independent way. Also necessary for file viewing to work
5040 in an OS-independent way. Also necessary for file viewing to work
5031 well inside Emacs buffers.
5041 well inside Emacs buffers.
5032 (page): Added checks for being in an emacs buffer.
5042 (page): Added checks for being in an emacs buffer.
5033 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5043 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5034 same bug in iplib.
5044 same bug in iplib.
5035
5045
5036 2002-02-18 Fernando Perez <fperez@colorado.edu>
5046 2002-02-18 Fernando Perez <fperez@colorado.edu>
5037
5047
5038 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5048 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5039 of readline so that IPython can work inside an Emacs buffer.
5049 of readline so that IPython can work inside an Emacs buffer.
5040
5050
5041 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5051 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5042 method signatures (they weren't really bugs, but it looks cleaner
5052 method signatures (they weren't really bugs, but it looks cleaner
5043 and keeps PyChecker happy).
5053 and keeps PyChecker happy).
5044
5054
5045 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5055 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5046 for implementing various user-defined hooks. Currently only
5056 for implementing various user-defined hooks. Currently only
5047 display is done.
5057 display is done.
5048
5058
5049 * IPython/Prompts.py (CachedOutput._display): changed display
5059 * IPython/Prompts.py (CachedOutput._display): changed display
5050 functions so that they can be dynamically changed by users easily.
5060 functions so that they can be dynamically changed by users easily.
5051
5061
5052 * IPython/Extensions/numeric_formats.py (num_display): added an
5062 * IPython/Extensions/numeric_formats.py (num_display): added an
5053 extension for printing NumPy arrays in flexible manners. It
5063 extension for printing NumPy arrays in flexible manners. It
5054 doesn't do anything yet, but all the structure is in
5064 doesn't do anything yet, but all the structure is in
5055 place. Ultimately the plan is to implement output format control
5065 place. Ultimately the plan is to implement output format control
5056 like in Octave.
5066 like in Octave.
5057
5067
5058 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5068 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5059 methods are found at run-time by all the automatic machinery.
5069 methods are found at run-time by all the automatic machinery.
5060
5070
5061 2002-02-17 Fernando Perez <fperez@colorado.edu>
5071 2002-02-17 Fernando Perez <fperez@colorado.edu>
5062
5072
5063 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5073 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5064 whole file a little.
5074 whole file a little.
5065
5075
5066 * ToDo: closed this document. Now there's a new_design.lyx
5076 * ToDo: closed this document. Now there's a new_design.lyx
5067 document for all new ideas. Added making a pdf of it for the
5077 document for all new ideas. Added making a pdf of it for the
5068 end-user distro.
5078 end-user distro.
5069
5079
5070 * IPython/Logger.py (Logger.switch_log): Created this to replace
5080 * IPython/Logger.py (Logger.switch_log): Created this to replace
5071 logon() and logoff(). It also fixes a nasty crash reported by
5081 logon() and logoff(). It also fixes a nasty crash reported by
5072 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5082 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5073
5083
5074 * IPython/iplib.py (complete): got auto-completion to work with
5084 * IPython/iplib.py (complete): got auto-completion to work with
5075 automagic (I had wanted this for a long time).
5085 automagic (I had wanted this for a long time).
5076
5086
5077 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5087 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5078 to @file, since file() is now a builtin and clashes with automagic
5088 to @file, since file() is now a builtin and clashes with automagic
5079 for @file.
5089 for @file.
5080
5090
5081 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5091 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5082 of this was previously in iplib, which had grown to more than 2000
5092 of this was previously in iplib, which had grown to more than 2000
5083 lines, way too long. No new functionality, but it makes managing
5093 lines, way too long. No new functionality, but it makes managing
5084 the code a bit easier.
5094 the code a bit easier.
5085
5095
5086 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5096 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5087 information to crash reports.
5097 information to crash reports.
5088
5098
5089 2002-02-12 Fernando Perez <fperez@colorado.edu>
5099 2002-02-12 Fernando Perez <fperez@colorado.edu>
5090
5100
5091 * Released 0.2.5.
5101 * Released 0.2.5.
5092
5102
5093 2002-02-11 Fernando Perez <fperez@colorado.edu>
5103 2002-02-11 Fernando Perez <fperez@colorado.edu>
5094
5104
5095 * Wrote a relatively complete Windows installer. It puts
5105 * Wrote a relatively complete Windows installer. It puts
5096 everything in place, creates Start Menu entries and fixes the
5106 everything in place, creates Start Menu entries and fixes the
5097 color issues. Nothing fancy, but it works.
5107 color issues. Nothing fancy, but it works.
5098
5108
5099 2002-02-10 Fernando Perez <fperez@colorado.edu>
5109 2002-02-10 Fernando Perez <fperez@colorado.edu>
5100
5110
5101 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5111 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5102 os.path.expanduser() call so that we can type @run ~/myfile.py and
5112 os.path.expanduser() call so that we can type @run ~/myfile.py and
5103 have thigs work as expected.
5113 have thigs work as expected.
5104
5114
5105 * IPython/genutils.py (page): fixed exception handling so things
5115 * IPython/genutils.py (page): fixed exception handling so things
5106 work both in Unix and Windows correctly. Quitting a pager triggers
5116 work both in Unix and Windows correctly. Quitting a pager triggers
5107 an IOError/broken pipe in Unix, and in windows not finding a pager
5117 an IOError/broken pipe in Unix, and in windows not finding a pager
5108 is also an IOError, so I had to actually look at the return value
5118 is also an IOError, so I had to actually look at the return value
5109 of the exception, not just the exception itself. Should be ok now.
5119 of the exception, not just the exception itself. Should be ok now.
5110
5120
5111 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5121 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5112 modified to allow case-insensitive color scheme changes.
5122 modified to allow case-insensitive color scheme changes.
5113
5123
5114 2002-02-09 Fernando Perez <fperez@colorado.edu>
5124 2002-02-09 Fernando Perez <fperez@colorado.edu>
5115
5125
5116 * IPython/genutils.py (native_line_ends): new function to leave
5126 * IPython/genutils.py (native_line_ends): new function to leave
5117 user config files with os-native line-endings.
5127 user config files with os-native line-endings.
5118
5128
5119 * README and manual updates.
5129 * README and manual updates.
5120
5130
5121 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5131 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5122 instead of StringType to catch Unicode strings.
5132 instead of StringType to catch Unicode strings.
5123
5133
5124 * IPython/genutils.py (filefind): fixed bug for paths with
5134 * IPython/genutils.py (filefind): fixed bug for paths with
5125 embedded spaces (very common in Windows).
5135 embedded spaces (very common in Windows).
5126
5136
5127 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5137 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5128 files under Windows, so that they get automatically associated
5138 files under Windows, so that they get automatically associated
5129 with a text editor. Windows makes it a pain to handle
5139 with a text editor. Windows makes it a pain to handle
5130 extension-less files.
5140 extension-less files.
5131
5141
5132 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5142 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5133 warning about readline only occur for Posix. In Windows there's no
5143 warning about readline only occur for Posix. In Windows there's no
5134 way to get readline, so why bother with the warning.
5144 way to get readline, so why bother with the warning.
5135
5145
5136 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5146 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5137 for __str__ instead of dir(self), since dir() changed in 2.2.
5147 for __str__ instead of dir(self), since dir() changed in 2.2.
5138
5148
5139 * Ported to Windows! Tested on XP, I suspect it should work fine
5149 * Ported to Windows! Tested on XP, I suspect it should work fine
5140 on NT/2000, but I don't think it will work on 98 et al. That
5150 on NT/2000, but I don't think it will work on 98 et al. That
5141 series of Windows is such a piece of junk anyway that I won't try
5151 series of Windows is such a piece of junk anyway that I won't try
5142 porting it there. The XP port was straightforward, showed a few
5152 porting it there. The XP port was straightforward, showed a few
5143 bugs here and there (fixed all), in particular some string
5153 bugs here and there (fixed all), in particular some string
5144 handling stuff which required considering Unicode strings (which
5154 handling stuff which required considering Unicode strings (which
5145 Windows uses). This is good, but hasn't been too tested :) No
5155 Windows uses). This is good, but hasn't been too tested :) No
5146 fancy installer yet, I'll put a note in the manual so people at
5156 fancy installer yet, I'll put a note in the manual so people at
5147 least make manually a shortcut.
5157 least make manually a shortcut.
5148
5158
5149 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5159 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5150 into a single one, "colors". This now controls both prompt and
5160 into a single one, "colors". This now controls both prompt and
5151 exception color schemes, and can be changed both at startup
5161 exception color schemes, and can be changed both at startup
5152 (either via command-line switches or via ipythonrc files) and at
5162 (either via command-line switches or via ipythonrc files) and at
5153 runtime, with @colors.
5163 runtime, with @colors.
5154 (Magic.magic_run): renamed @prun to @run and removed the old
5164 (Magic.magic_run): renamed @prun to @run and removed the old
5155 @run. The two were too similar to warrant keeping both.
5165 @run. The two were too similar to warrant keeping both.
5156
5166
5157 2002-02-03 Fernando Perez <fperez@colorado.edu>
5167 2002-02-03 Fernando Perez <fperez@colorado.edu>
5158
5168
5159 * IPython/iplib.py (install_first_time): Added comment on how to
5169 * IPython/iplib.py (install_first_time): Added comment on how to
5160 configure the color options for first-time users. Put a <return>
5170 configure the color options for first-time users. Put a <return>
5161 request at the end so that small-terminal users get a chance to
5171 request at the end so that small-terminal users get a chance to
5162 read the startup info.
5172 read the startup info.
5163
5173
5164 2002-01-23 Fernando Perez <fperez@colorado.edu>
5174 2002-01-23 Fernando Perez <fperez@colorado.edu>
5165
5175
5166 * IPython/iplib.py (CachedOutput.update): Changed output memory
5176 * IPython/iplib.py (CachedOutput.update): Changed output memory
5167 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5177 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5168 input history we still use _i. Did this b/c these variable are
5178 input history we still use _i. Did this b/c these variable are
5169 very commonly used in interactive work, so the less we need to
5179 very commonly used in interactive work, so the less we need to
5170 type the better off we are.
5180 type the better off we are.
5171 (Magic.magic_prun): updated @prun to better handle the namespaces
5181 (Magic.magic_prun): updated @prun to better handle the namespaces
5172 the file will run in, including a fix for __name__ not being set
5182 the file will run in, including a fix for __name__ not being set
5173 before.
5183 before.
5174
5184
5175 2002-01-20 Fernando Perez <fperez@colorado.edu>
5185 2002-01-20 Fernando Perez <fperez@colorado.edu>
5176
5186
5177 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5187 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5178 extra garbage for Python 2.2. Need to look more carefully into
5188 extra garbage for Python 2.2. Need to look more carefully into
5179 this later.
5189 this later.
5180
5190
5181 2002-01-19 Fernando Perez <fperez@colorado.edu>
5191 2002-01-19 Fernando Perez <fperez@colorado.edu>
5182
5192
5183 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5193 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5184 display SyntaxError exceptions properly formatted when they occur
5194 display SyntaxError exceptions properly formatted when they occur
5185 (they can be triggered by imported code).
5195 (they can be triggered by imported code).
5186
5196
5187 2002-01-18 Fernando Perez <fperez@colorado.edu>
5197 2002-01-18 Fernando Perez <fperez@colorado.edu>
5188
5198
5189 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5199 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5190 SyntaxError exceptions are reported nicely formatted, instead of
5200 SyntaxError exceptions are reported nicely formatted, instead of
5191 spitting out only offset information as before.
5201 spitting out only offset information as before.
5192 (Magic.magic_prun): Added the @prun function for executing
5202 (Magic.magic_prun): Added the @prun function for executing
5193 programs with command line args inside IPython.
5203 programs with command line args inside IPython.
5194
5204
5195 2002-01-16 Fernando Perez <fperez@colorado.edu>
5205 2002-01-16 Fernando Perez <fperez@colorado.edu>
5196
5206
5197 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5207 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5198 to *not* include the last item given in a range. This brings their
5208 to *not* include the last item given in a range. This brings their
5199 behavior in line with Python's slicing:
5209 behavior in line with Python's slicing:
5200 a[n1:n2] -> a[n1]...a[n2-1]
5210 a[n1:n2] -> a[n1]...a[n2-1]
5201 It may be a bit less convenient, but I prefer to stick to Python's
5211 It may be a bit less convenient, but I prefer to stick to Python's
5202 conventions *everywhere*, so users never have to wonder.
5212 conventions *everywhere*, so users never have to wonder.
5203 (Magic.magic_macro): Added @macro function to ease the creation of
5213 (Magic.magic_macro): Added @macro function to ease the creation of
5204 macros.
5214 macros.
5205
5215
5206 2002-01-05 Fernando Perez <fperez@colorado.edu>
5216 2002-01-05 Fernando Perez <fperez@colorado.edu>
5207
5217
5208 * Released 0.2.4.
5218 * Released 0.2.4.
5209
5219
5210 * IPython/iplib.py (Magic.magic_pdef):
5220 * IPython/iplib.py (Magic.magic_pdef):
5211 (InteractiveShell.safe_execfile): report magic lines and error
5221 (InteractiveShell.safe_execfile): report magic lines and error
5212 lines without line numbers so one can easily copy/paste them for
5222 lines without line numbers so one can easily copy/paste them for
5213 re-execution.
5223 re-execution.
5214
5224
5215 * Updated manual with recent changes.
5225 * Updated manual with recent changes.
5216
5226
5217 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5227 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5218 docstring printing when class? is called. Very handy for knowing
5228 docstring printing when class? is called. Very handy for knowing
5219 how to create class instances (as long as __init__ is well
5229 how to create class instances (as long as __init__ is well
5220 documented, of course :)
5230 documented, of course :)
5221 (Magic.magic_doc): print both class and constructor docstrings.
5231 (Magic.magic_doc): print both class and constructor docstrings.
5222 (Magic.magic_pdef): give constructor info if passed a class and
5232 (Magic.magic_pdef): give constructor info if passed a class and
5223 __call__ info for callable object instances.
5233 __call__ info for callable object instances.
5224
5234
5225 2002-01-04 Fernando Perez <fperez@colorado.edu>
5235 2002-01-04 Fernando Perez <fperez@colorado.edu>
5226
5236
5227 * Made deep_reload() off by default. It doesn't always work
5237 * Made deep_reload() off by default. It doesn't always work
5228 exactly as intended, so it's probably safer to have it off. It's
5238 exactly as intended, so it's probably safer to have it off. It's
5229 still available as dreload() anyway, so nothing is lost.
5239 still available as dreload() anyway, so nothing is lost.
5230
5240
5231 2002-01-02 Fernando Perez <fperez@colorado.edu>
5241 2002-01-02 Fernando Perez <fperez@colorado.edu>
5232
5242
5233 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5243 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5234 so I wanted an updated release).
5244 so I wanted an updated release).
5235
5245
5236 2001-12-27 Fernando Perez <fperez@colorado.edu>
5246 2001-12-27 Fernando Perez <fperez@colorado.edu>
5237
5247
5238 * IPython/iplib.py (InteractiveShell.interact): Added the original
5248 * IPython/iplib.py (InteractiveShell.interact): Added the original
5239 code from 'code.py' for this module in order to change the
5249 code from 'code.py' for this module in order to change the
5240 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5250 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5241 the history cache would break when the user hit Ctrl-C, and
5251 the history cache would break when the user hit Ctrl-C, and
5242 interact() offers no way to add any hooks to it.
5252 interact() offers no way to add any hooks to it.
5243
5253
5244 2001-12-23 Fernando Perez <fperez@colorado.edu>
5254 2001-12-23 Fernando Perez <fperez@colorado.edu>
5245
5255
5246 * setup.py: added check for 'MANIFEST' before trying to remove
5256 * setup.py: added check for 'MANIFEST' before trying to remove
5247 it. Thanks to Sean Reifschneider.
5257 it. Thanks to Sean Reifschneider.
5248
5258
5249 2001-12-22 Fernando Perez <fperez@colorado.edu>
5259 2001-12-22 Fernando Perez <fperez@colorado.edu>
5250
5260
5251 * Released 0.2.2.
5261 * Released 0.2.2.
5252
5262
5253 * Finished (reasonably) writing the manual. Later will add the
5263 * Finished (reasonably) writing the manual. Later will add the
5254 python-standard navigation stylesheets, but for the time being
5264 python-standard navigation stylesheets, but for the time being
5255 it's fairly complete. Distribution will include html and pdf
5265 it's fairly complete. Distribution will include html and pdf
5256 versions.
5266 versions.
5257
5267
5258 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5268 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5259 (MayaVi author).
5269 (MayaVi author).
5260
5270
5261 2001-12-21 Fernando Perez <fperez@colorado.edu>
5271 2001-12-21 Fernando Perez <fperez@colorado.edu>
5262
5272
5263 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5273 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5264 good public release, I think (with the manual and the distutils
5274 good public release, I think (with the manual and the distutils
5265 installer). The manual can use some work, but that can go
5275 installer). The manual can use some work, but that can go
5266 slowly. Otherwise I think it's quite nice for end users. Next
5276 slowly. Otherwise I think it's quite nice for end users. Next
5267 summer, rewrite the guts of it...
5277 summer, rewrite the guts of it...
5268
5278
5269 * Changed format of ipythonrc files to use whitespace as the
5279 * Changed format of ipythonrc files to use whitespace as the
5270 separator instead of an explicit '='. Cleaner.
5280 separator instead of an explicit '='. Cleaner.
5271
5281
5272 2001-12-20 Fernando Perez <fperez@colorado.edu>
5282 2001-12-20 Fernando Perez <fperez@colorado.edu>
5273
5283
5274 * Started a manual in LyX. For now it's just a quick merge of the
5284 * Started a manual in LyX. For now it's just a quick merge of the
5275 various internal docstrings and READMEs. Later it may grow into a
5285 various internal docstrings and READMEs. Later it may grow into a
5276 nice, full-blown manual.
5286 nice, full-blown manual.
5277
5287
5278 * Set up a distutils based installer. Installation should now be
5288 * Set up a distutils based installer. Installation should now be
5279 trivially simple for end-users.
5289 trivially simple for end-users.
5280
5290
5281 2001-12-11 Fernando Perez <fperez@colorado.edu>
5291 2001-12-11 Fernando Perez <fperez@colorado.edu>
5282
5292
5283 * Released 0.2.0. First public release, announced it at
5293 * Released 0.2.0. First public release, announced it at
5284 comp.lang.python. From now on, just bugfixes...
5294 comp.lang.python. From now on, just bugfixes...
5285
5295
5286 * Went through all the files, set copyright/license notices and
5296 * Went through all the files, set copyright/license notices and
5287 cleaned up things. Ready for release.
5297 cleaned up things. Ready for release.
5288
5298
5289 2001-12-10 Fernando Perez <fperez@colorado.edu>
5299 2001-12-10 Fernando Perez <fperez@colorado.edu>
5290
5300
5291 * Changed the first-time installer not to use tarfiles. It's more
5301 * Changed the first-time installer not to use tarfiles. It's more
5292 robust now and less unix-dependent. Also makes it easier for
5302 robust now and less unix-dependent. Also makes it easier for
5293 people to later upgrade versions.
5303 people to later upgrade versions.
5294
5304
5295 * Changed @exit to @abort to reflect the fact that it's pretty
5305 * Changed @exit to @abort to reflect the fact that it's pretty
5296 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5306 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5297 becomes significant only when IPyhton is embedded: in that case,
5307 becomes significant only when IPyhton is embedded: in that case,
5298 C-D closes IPython only, but @abort kills the enclosing program
5308 C-D closes IPython only, but @abort kills the enclosing program
5299 too (unless it had called IPython inside a try catching
5309 too (unless it had called IPython inside a try catching
5300 SystemExit).
5310 SystemExit).
5301
5311
5302 * Created Shell module which exposes the actuall IPython Shell
5312 * Created Shell module which exposes the actuall IPython Shell
5303 classes, currently the normal and the embeddable one. This at
5313 classes, currently the normal and the embeddable one. This at
5304 least offers a stable interface we won't need to change when
5314 least offers a stable interface we won't need to change when
5305 (later) the internals are rewritten. That rewrite will be confined
5315 (later) the internals are rewritten. That rewrite will be confined
5306 to iplib and ipmaker, but the Shell interface should remain as is.
5316 to iplib and ipmaker, but the Shell interface should remain as is.
5307
5317
5308 * Added embed module which offers an embeddable IPShell object,
5318 * Added embed module which offers an embeddable IPShell object,
5309 useful to fire up IPython *inside* a running program. Great for
5319 useful to fire up IPython *inside* a running program. Great for
5310 debugging or dynamical data analysis.
5320 debugging or dynamical data analysis.
5311
5321
5312 2001-12-08 Fernando Perez <fperez@colorado.edu>
5322 2001-12-08 Fernando Perez <fperez@colorado.edu>
5313
5323
5314 * Fixed small bug preventing seeing info from methods of defined
5324 * Fixed small bug preventing seeing info from methods of defined
5315 objects (incorrect namespace in _ofind()).
5325 objects (incorrect namespace in _ofind()).
5316
5326
5317 * Documentation cleanup. Moved the main usage docstrings to a
5327 * Documentation cleanup. Moved the main usage docstrings to a
5318 separate file, usage.py (cleaner to maintain, and hopefully in the
5328 separate file, usage.py (cleaner to maintain, and hopefully in the
5319 future some perlpod-like way of producing interactive, man and
5329 future some perlpod-like way of producing interactive, man and
5320 html docs out of it will be found).
5330 html docs out of it will be found).
5321
5331
5322 * Added @profile to see your profile at any time.
5332 * Added @profile to see your profile at any time.
5323
5333
5324 * Added @p as an alias for 'print'. It's especially convenient if
5334 * Added @p as an alias for 'print'. It's especially convenient if
5325 using automagic ('p x' prints x).
5335 using automagic ('p x' prints x).
5326
5336
5327 * Small cleanups and fixes after a pychecker run.
5337 * Small cleanups and fixes after a pychecker run.
5328
5338
5329 * Changed the @cd command to handle @cd - and @cd -<n> for
5339 * Changed the @cd command to handle @cd - and @cd -<n> for
5330 visiting any directory in _dh.
5340 visiting any directory in _dh.
5331
5341
5332 * Introduced _dh, a history of visited directories. @dhist prints
5342 * Introduced _dh, a history of visited directories. @dhist prints
5333 it out with numbers.
5343 it out with numbers.
5334
5344
5335 2001-12-07 Fernando Perez <fperez@colorado.edu>
5345 2001-12-07 Fernando Perez <fperez@colorado.edu>
5336
5346
5337 * Released 0.1.22
5347 * Released 0.1.22
5338
5348
5339 * Made initialization a bit more robust against invalid color
5349 * Made initialization a bit more robust against invalid color
5340 options in user input (exit, not traceback-crash).
5350 options in user input (exit, not traceback-crash).
5341
5351
5342 * Changed the bug crash reporter to write the report only in the
5352 * Changed the bug crash reporter to write the report only in the
5343 user's .ipython directory. That way IPython won't litter people's
5353 user's .ipython directory. That way IPython won't litter people's
5344 hard disks with crash files all over the place. Also print on
5354 hard disks with crash files all over the place. Also print on
5345 screen the necessary mail command.
5355 screen the necessary mail command.
5346
5356
5347 * With the new ultraTB, implemented LightBG color scheme for light
5357 * With the new ultraTB, implemented LightBG color scheme for light
5348 background terminals. A lot of people like white backgrounds, so I
5358 background terminals. A lot of people like white backgrounds, so I
5349 guess we should at least give them something readable.
5359 guess we should at least give them something readable.
5350
5360
5351 2001-12-06 Fernando Perez <fperez@colorado.edu>
5361 2001-12-06 Fernando Perez <fperez@colorado.edu>
5352
5362
5353 * Modified the structure of ultraTB. Now there's a proper class
5363 * Modified the structure of ultraTB. Now there's a proper class
5354 for tables of color schemes which allow adding schemes easily and
5364 for tables of color schemes which allow adding schemes easily and
5355 switching the active scheme without creating a new instance every
5365 switching the active scheme without creating a new instance every
5356 time (which was ridiculous). The syntax for creating new schemes
5366 time (which was ridiculous). The syntax for creating new schemes
5357 is also cleaner. I think ultraTB is finally done, with a clean
5367 is also cleaner. I think ultraTB is finally done, with a clean
5358 class structure. Names are also much cleaner (now there's proper
5368 class structure. Names are also much cleaner (now there's proper
5359 color tables, no need for every variable to also have 'color' in
5369 color tables, no need for every variable to also have 'color' in
5360 its name).
5370 its name).
5361
5371
5362 * Broke down genutils into separate files. Now genutils only
5372 * Broke down genutils into separate files. Now genutils only
5363 contains utility functions, and classes have been moved to their
5373 contains utility functions, and classes have been moved to their
5364 own files (they had enough independent functionality to warrant
5374 own files (they had enough independent functionality to warrant
5365 it): ConfigLoader, OutputTrap, Struct.
5375 it): ConfigLoader, OutputTrap, Struct.
5366
5376
5367 2001-12-05 Fernando Perez <fperez@colorado.edu>
5377 2001-12-05 Fernando Perez <fperez@colorado.edu>
5368
5378
5369 * IPython turns 21! Released version 0.1.21, as a candidate for
5379 * IPython turns 21! Released version 0.1.21, as a candidate for
5370 public consumption. If all goes well, release in a few days.
5380 public consumption. If all goes well, release in a few days.
5371
5381
5372 * Fixed path bug (files in Extensions/ directory wouldn't be found
5382 * Fixed path bug (files in Extensions/ directory wouldn't be found
5373 unless IPython/ was explicitly in sys.path).
5383 unless IPython/ was explicitly in sys.path).
5374
5384
5375 * Extended the FlexCompleter class as MagicCompleter to allow
5385 * Extended the FlexCompleter class as MagicCompleter to allow
5376 completion of @-starting lines.
5386 completion of @-starting lines.
5377
5387
5378 * Created __release__.py file as a central repository for release
5388 * Created __release__.py file as a central repository for release
5379 info that other files can read from.
5389 info that other files can read from.
5380
5390
5381 * Fixed small bug in logging: when logging was turned on in
5391 * Fixed small bug in logging: when logging was turned on in
5382 mid-session, old lines with special meanings (!@?) were being
5392 mid-session, old lines with special meanings (!@?) were being
5383 logged without the prepended comment, which is necessary since
5393 logged without the prepended comment, which is necessary since
5384 they are not truly valid python syntax. This should make session
5394 they are not truly valid python syntax. This should make session
5385 restores produce less errors.
5395 restores produce less errors.
5386
5396
5387 * The namespace cleanup forced me to make a FlexCompleter class
5397 * The namespace cleanup forced me to make a FlexCompleter class
5388 which is nothing but a ripoff of rlcompleter, but with selectable
5398 which is nothing but a ripoff of rlcompleter, but with selectable
5389 namespace (rlcompleter only works in __main__.__dict__). I'll try
5399 namespace (rlcompleter only works in __main__.__dict__). I'll try
5390 to submit a note to the authors to see if this change can be
5400 to submit a note to the authors to see if this change can be
5391 incorporated in future rlcompleter releases (Dec.6: done)
5401 incorporated in future rlcompleter releases (Dec.6: done)
5392
5402
5393 * More fixes to namespace handling. It was a mess! Now all
5403 * More fixes to namespace handling. It was a mess! Now all
5394 explicit references to __main__.__dict__ are gone (except when
5404 explicit references to __main__.__dict__ are gone (except when
5395 really needed) and everything is handled through the namespace
5405 really needed) and everything is handled through the namespace
5396 dicts in the IPython instance. We seem to be getting somewhere
5406 dicts in the IPython instance. We seem to be getting somewhere
5397 with this, finally...
5407 with this, finally...
5398
5408
5399 * Small documentation updates.
5409 * Small documentation updates.
5400
5410
5401 * Created the Extensions directory under IPython (with an
5411 * Created the Extensions directory under IPython (with an
5402 __init__.py). Put the PhysicalQ stuff there. This directory should
5412 __init__.py). Put the PhysicalQ stuff there. This directory should
5403 be used for all special-purpose extensions.
5413 be used for all special-purpose extensions.
5404
5414
5405 * File renaming:
5415 * File renaming:
5406 ipythonlib --> ipmaker
5416 ipythonlib --> ipmaker
5407 ipplib --> iplib
5417 ipplib --> iplib
5408 This makes a bit more sense in terms of what these files actually do.
5418 This makes a bit more sense in terms of what these files actually do.
5409
5419
5410 * Moved all the classes and functions in ipythonlib to ipplib, so
5420 * Moved all the classes and functions in ipythonlib to ipplib, so
5411 now ipythonlib only has make_IPython(). This will ease up its
5421 now ipythonlib only has make_IPython(). This will ease up its
5412 splitting in smaller functional chunks later.
5422 splitting in smaller functional chunks later.
5413
5423
5414 * Cleaned up (done, I think) output of @whos. Better column
5424 * Cleaned up (done, I think) output of @whos. Better column
5415 formatting, and now shows str(var) for as much as it can, which is
5425 formatting, and now shows str(var) for as much as it can, which is
5416 typically what one gets with a 'print var'.
5426 typically what one gets with a 'print var'.
5417
5427
5418 2001-12-04 Fernando Perez <fperez@colorado.edu>
5428 2001-12-04 Fernando Perez <fperez@colorado.edu>
5419
5429
5420 * Fixed namespace problems. Now builtin/IPyhton/user names get
5430 * Fixed namespace problems. Now builtin/IPyhton/user names get
5421 properly reported in their namespace. Internal namespace handling
5431 properly reported in their namespace. Internal namespace handling
5422 is finally getting decent (not perfect yet, but much better than
5432 is finally getting decent (not perfect yet, but much better than
5423 the ad-hoc mess we had).
5433 the ad-hoc mess we had).
5424
5434
5425 * Removed -exit option. If people just want to run a python
5435 * Removed -exit option. If people just want to run a python
5426 script, that's what the normal interpreter is for. Less
5436 script, that's what the normal interpreter is for. Less
5427 unnecessary options, less chances for bugs.
5437 unnecessary options, less chances for bugs.
5428
5438
5429 * Added a crash handler which generates a complete post-mortem if
5439 * Added a crash handler which generates a complete post-mortem if
5430 IPython crashes. This will help a lot in tracking bugs down the
5440 IPython crashes. This will help a lot in tracking bugs down the
5431 road.
5441 road.
5432
5442
5433 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5443 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5434 which were boud to functions being reassigned would bypass the
5444 which were boud to functions being reassigned would bypass the
5435 logger, breaking the sync of _il with the prompt counter. This
5445 logger, breaking the sync of _il with the prompt counter. This
5436 would then crash IPython later when a new line was logged.
5446 would then crash IPython later when a new line was logged.
5437
5447
5438 2001-12-02 Fernando Perez <fperez@colorado.edu>
5448 2001-12-02 Fernando Perez <fperez@colorado.edu>
5439
5449
5440 * Made IPython a package. This means people don't have to clutter
5450 * Made IPython a package. This means people don't have to clutter
5441 their sys.path with yet another directory. Changed the INSTALL
5451 their sys.path with yet another directory. Changed the INSTALL
5442 file accordingly.
5452 file accordingly.
5443
5453
5444 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5454 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5445 sorts its output (so @who shows it sorted) and @whos formats the
5455 sorts its output (so @who shows it sorted) and @whos formats the
5446 table according to the width of the first column. Nicer, easier to
5456 table according to the width of the first column. Nicer, easier to
5447 read. Todo: write a generic table_format() which takes a list of
5457 read. Todo: write a generic table_format() which takes a list of
5448 lists and prints it nicely formatted, with optional row/column
5458 lists and prints it nicely formatted, with optional row/column
5449 separators and proper padding and justification.
5459 separators and proper padding and justification.
5450
5460
5451 * Released 0.1.20
5461 * Released 0.1.20
5452
5462
5453 * Fixed bug in @log which would reverse the inputcache list (a
5463 * Fixed bug in @log which would reverse the inputcache list (a
5454 copy operation was missing).
5464 copy operation was missing).
5455
5465
5456 * Code cleanup. @config was changed to use page(). Better, since
5466 * Code cleanup. @config was changed to use page(). Better, since
5457 its output is always quite long.
5467 its output is always quite long.
5458
5468
5459 * Itpl is back as a dependency. I was having too many problems
5469 * Itpl is back as a dependency. I was having too many problems
5460 getting the parametric aliases to work reliably, and it's just
5470 getting the parametric aliases to work reliably, and it's just
5461 easier to code weird string operations with it than playing %()s
5471 easier to code weird string operations with it than playing %()s
5462 games. It's only ~6k, so I don't think it's too big a deal.
5472 games. It's only ~6k, so I don't think it's too big a deal.
5463
5473
5464 * Found (and fixed) a very nasty bug with history. !lines weren't
5474 * Found (and fixed) a very nasty bug with history. !lines weren't
5465 getting cached, and the out of sync caches would crash
5475 getting cached, and the out of sync caches would crash
5466 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5476 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5467 division of labor a bit better. Bug fixed, cleaner structure.
5477 division of labor a bit better. Bug fixed, cleaner structure.
5468
5478
5469 2001-12-01 Fernando Perez <fperez@colorado.edu>
5479 2001-12-01 Fernando Perez <fperez@colorado.edu>
5470
5480
5471 * Released 0.1.19
5481 * Released 0.1.19
5472
5482
5473 * Added option -n to @hist to prevent line number printing. Much
5483 * Added option -n to @hist to prevent line number printing. Much
5474 easier to copy/paste code this way.
5484 easier to copy/paste code this way.
5475
5485
5476 * Created global _il to hold the input list. Allows easy
5486 * Created global _il to hold the input list. Allows easy
5477 re-execution of blocks of code by slicing it (inspired by Janko's
5487 re-execution of blocks of code by slicing it (inspired by Janko's
5478 comment on 'macros').
5488 comment on 'macros').
5479
5489
5480 * Small fixes and doc updates.
5490 * Small fixes and doc updates.
5481
5491
5482 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5492 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5483 much too fragile with automagic. Handles properly multi-line
5493 much too fragile with automagic. Handles properly multi-line
5484 statements and takes parameters.
5494 statements and takes parameters.
5485
5495
5486 2001-11-30 Fernando Perez <fperez@colorado.edu>
5496 2001-11-30 Fernando Perez <fperez@colorado.edu>
5487
5497
5488 * Version 0.1.18 released.
5498 * Version 0.1.18 released.
5489
5499
5490 * Fixed nasty namespace bug in initial module imports.
5500 * Fixed nasty namespace bug in initial module imports.
5491
5501
5492 * Added copyright/license notes to all code files (except
5502 * Added copyright/license notes to all code files (except
5493 DPyGetOpt). For the time being, LGPL. That could change.
5503 DPyGetOpt). For the time being, LGPL. That could change.
5494
5504
5495 * Rewrote a much nicer README, updated INSTALL, cleaned up
5505 * Rewrote a much nicer README, updated INSTALL, cleaned up
5496 ipythonrc-* samples.
5506 ipythonrc-* samples.
5497
5507
5498 * Overall code/documentation cleanup. Basically ready for
5508 * Overall code/documentation cleanup. Basically ready for
5499 release. Only remaining thing: licence decision (LGPL?).
5509 release. Only remaining thing: licence decision (LGPL?).
5500
5510
5501 * Converted load_config to a class, ConfigLoader. Now recursion
5511 * Converted load_config to a class, ConfigLoader. Now recursion
5502 control is better organized. Doesn't include the same file twice.
5512 control is better organized. Doesn't include the same file twice.
5503
5513
5504 2001-11-29 Fernando Perez <fperez@colorado.edu>
5514 2001-11-29 Fernando Perez <fperez@colorado.edu>
5505
5515
5506 * Got input history working. Changed output history variables from
5516 * Got input history working. Changed output history variables from
5507 _p to _o so that _i is for input and _o for output. Just cleaner
5517 _p to _o so that _i is for input and _o for output. Just cleaner
5508 convention.
5518 convention.
5509
5519
5510 * Implemented parametric aliases. This pretty much allows the
5520 * Implemented parametric aliases. This pretty much allows the
5511 alias system to offer full-blown shell convenience, I think.
5521 alias system to offer full-blown shell convenience, I think.
5512
5522
5513 * Version 0.1.17 released, 0.1.18 opened.
5523 * Version 0.1.17 released, 0.1.18 opened.
5514
5524
5515 * dot_ipython/ipythonrc (alias): added documentation.
5525 * dot_ipython/ipythonrc (alias): added documentation.
5516 (xcolor): Fixed small bug (xcolors -> xcolor)
5526 (xcolor): Fixed small bug (xcolors -> xcolor)
5517
5527
5518 * Changed the alias system. Now alias is a magic command to define
5528 * Changed the alias system. Now alias is a magic command to define
5519 aliases just like the shell. Rationale: the builtin magics should
5529 aliases just like the shell. Rationale: the builtin magics should
5520 be there for things deeply connected to IPython's
5530 be there for things deeply connected to IPython's
5521 architecture. And this is a much lighter system for what I think
5531 architecture. And this is a much lighter system for what I think
5522 is the really important feature: allowing users to define quickly
5532 is the really important feature: allowing users to define quickly
5523 magics that will do shell things for them, so they can customize
5533 magics that will do shell things for them, so they can customize
5524 IPython easily to match their work habits. If someone is really
5534 IPython easily to match their work habits. If someone is really
5525 desperate to have another name for a builtin alias, they can
5535 desperate to have another name for a builtin alias, they can
5526 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5536 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5527 works.
5537 works.
5528
5538
5529 2001-11-28 Fernando Perez <fperez@colorado.edu>
5539 2001-11-28 Fernando Perez <fperez@colorado.edu>
5530
5540
5531 * Changed @file so that it opens the source file at the proper
5541 * Changed @file so that it opens the source file at the proper
5532 line. Since it uses less, if your EDITOR environment is
5542 line. Since it uses less, if your EDITOR environment is
5533 configured, typing v will immediately open your editor of choice
5543 configured, typing v will immediately open your editor of choice
5534 right at the line where the object is defined. Not as quick as
5544 right at the line where the object is defined. Not as quick as
5535 having a direct @edit command, but for all intents and purposes it
5545 having a direct @edit command, but for all intents and purposes it
5536 works. And I don't have to worry about writing @edit to deal with
5546 works. And I don't have to worry about writing @edit to deal with
5537 all the editors, less does that.
5547 all the editors, less does that.
5538
5548
5539 * Version 0.1.16 released, 0.1.17 opened.
5549 * Version 0.1.16 released, 0.1.17 opened.
5540
5550
5541 * Fixed some nasty bugs in the page/page_dumb combo that could
5551 * Fixed some nasty bugs in the page/page_dumb combo that could
5542 crash IPython.
5552 crash IPython.
5543
5553
5544 2001-11-27 Fernando Perez <fperez@colorado.edu>
5554 2001-11-27 Fernando Perez <fperez@colorado.edu>
5545
5555
5546 * Version 0.1.15 released, 0.1.16 opened.
5556 * Version 0.1.15 released, 0.1.16 opened.
5547
5557
5548 * Finally got ? and ?? to work for undefined things: now it's
5558 * Finally got ? and ?? to work for undefined things: now it's
5549 possible to type {}.get? and get information about the get method
5559 possible to type {}.get? and get information about the get method
5550 of dicts, or os.path? even if only os is defined (so technically
5560 of dicts, or os.path? even if only os is defined (so technically
5551 os.path isn't). Works at any level. For example, after import os,
5561 os.path isn't). Works at any level. For example, after import os,
5552 os?, os.path?, os.path.abspath? all work. This is great, took some
5562 os?, os.path?, os.path.abspath? all work. This is great, took some
5553 work in _ofind.
5563 work in _ofind.
5554
5564
5555 * Fixed more bugs with logging. The sanest way to do it was to add
5565 * Fixed more bugs with logging. The sanest way to do it was to add
5556 to @log a 'mode' parameter. Killed two in one shot (this mode
5566 to @log a 'mode' parameter. Killed two in one shot (this mode
5557 option was a request of Janko's). I think it's finally clean
5567 option was a request of Janko's). I think it's finally clean
5558 (famous last words).
5568 (famous last words).
5559
5569
5560 * Added a page_dumb() pager which does a decent job of paging on
5570 * Added a page_dumb() pager which does a decent job of paging on
5561 screen, if better things (like less) aren't available. One less
5571 screen, if better things (like less) aren't available. One less
5562 unix dependency (someday maybe somebody will port this to
5572 unix dependency (someday maybe somebody will port this to
5563 windows).
5573 windows).
5564
5574
5565 * Fixed problem in magic_log: would lock of logging out if log
5575 * Fixed problem in magic_log: would lock of logging out if log
5566 creation failed (because it would still think it had succeeded).
5576 creation failed (because it would still think it had succeeded).
5567
5577
5568 * Improved the page() function using curses to auto-detect screen
5578 * Improved the page() function using curses to auto-detect screen
5569 size. Now it can make a much better decision on whether to print
5579 size. Now it can make a much better decision on whether to print
5570 or page a string. Option screen_length was modified: a value 0
5580 or page a string. Option screen_length was modified: a value 0
5571 means auto-detect, and that's the default now.
5581 means auto-detect, and that's the default now.
5572
5582
5573 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5583 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5574 go out. I'll test it for a few days, then talk to Janko about
5584 go out. I'll test it for a few days, then talk to Janko about
5575 licences and announce it.
5585 licences and announce it.
5576
5586
5577 * Fixed the length of the auto-generated ---> prompt which appears
5587 * Fixed the length of the auto-generated ---> prompt which appears
5578 for auto-parens and auto-quotes. Getting this right isn't trivial,
5588 for auto-parens and auto-quotes. Getting this right isn't trivial,
5579 with all the color escapes, different prompt types and optional
5589 with all the color escapes, different prompt types and optional
5580 separators. But it seems to be working in all the combinations.
5590 separators. But it seems to be working in all the combinations.
5581
5591
5582 2001-11-26 Fernando Perez <fperez@colorado.edu>
5592 2001-11-26 Fernando Perez <fperez@colorado.edu>
5583
5593
5584 * Wrote a regexp filter to get option types from the option names
5594 * Wrote a regexp filter to get option types from the option names
5585 string. This eliminates the need to manually keep two duplicate
5595 string. This eliminates the need to manually keep two duplicate
5586 lists.
5596 lists.
5587
5597
5588 * Removed the unneeded check_option_names. Now options are handled
5598 * Removed the unneeded check_option_names. Now options are handled
5589 in a much saner manner and it's easy to visually check that things
5599 in a much saner manner and it's easy to visually check that things
5590 are ok.
5600 are ok.
5591
5601
5592 * Updated version numbers on all files I modified to carry a
5602 * Updated version numbers on all files I modified to carry a
5593 notice so Janko and Nathan have clear version markers.
5603 notice so Janko and Nathan have clear version markers.
5594
5604
5595 * Updated docstring for ultraTB with my changes. I should send
5605 * Updated docstring for ultraTB with my changes. I should send
5596 this to Nathan.
5606 this to Nathan.
5597
5607
5598 * Lots of small fixes. Ran everything through pychecker again.
5608 * Lots of small fixes. Ran everything through pychecker again.
5599
5609
5600 * Made loading of deep_reload an cmd line option. If it's not too
5610 * Made loading of deep_reload an cmd line option. If it's not too
5601 kosher, now people can just disable it. With -nodeep_reload it's
5611 kosher, now people can just disable it. With -nodeep_reload it's
5602 still available as dreload(), it just won't overwrite reload().
5612 still available as dreload(), it just won't overwrite reload().
5603
5613
5604 * Moved many options to the no| form (-opt and -noopt
5614 * Moved many options to the no| form (-opt and -noopt
5605 accepted). Cleaner.
5615 accepted). Cleaner.
5606
5616
5607 * Changed magic_log so that if called with no parameters, it uses
5617 * Changed magic_log so that if called with no parameters, it uses
5608 'rotate' mode. That way auto-generated logs aren't automatically
5618 'rotate' mode. That way auto-generated logs aren't automatically
5609 over-written. For normal logs, now a backup is made if it exists
5619 over-written. For normal logs, now a backup is made if it exists
5610 (only 1 level of backups). A new 'backup' mode was added to the
5620 (only 1 level of backups). A new 'backup' mode was added to the
5611 Logger class to support this. This was a request by Janko.
5621 Logger class to support this. This was a request by Janko.
5612
5622
5613 * Added @logoff/@logon to stop/restart an active log.
5623 * Added @logoff/@logon to stop/restart an active log.
5614
5624
5615 * Fixed a lot of bugs in log saving/replay. It was pretty
5625 * Fixed a lot of bugs in log saving/replay. It was pretty
5616 broken. Now special lines (!@,/) appear properly in the command
5626 broken. Now special lines (!@,/) appear properly in the command
5617 history after a log replay.
5627 history after a log replay.
5618
5628
5619 * Tried and failed to implement full session saving via pickle. My
5629 * Tried and failed to implement full session saving via pickle. My
5620 idea was to pickle __main__.__dict__, but modules can't be
5630 idea was to pickle __main__.__dict__, but modules can't be
5621 pickled. This would be a better alternative to replaying logs, but
5631 pickled. This would be a better alternative to replaying logs, but
5622 seems quite tricky to get to work. Changed -session to be called
5632 seems quite tricky to get to work. Changed -session to be called
5623 -logplay, which more accurately reflects what it does. And if we
5633 -logplay, which more accurately reflects what it does. And if we
5624 ever get real session saving working, -session is now available.
5634 ever get real session saving working, -session is now available.
5625
5635
5626 * Implemented color schemes for prompts also. As for tracebacks,
5636 * Implemented color schemes for prompts also. As for tracebacks,
5627 currently only NoColor and Linux are supported. But now the
5637 currently only NoColor and Linux are supported. But now the
5628 infrastructure is in place, based on a generic ColorScheme
5638 infrastructure is in place, based on a generic ColorScheme
5629 class. So writing and activating new schemes both for the prompts
5639 class. So writing and activating new schemes both for the prompts
5630 and the tracebacks should be straightforward.
5640 and the tracebacks should be straightforward.
5631
5641
5632 * Version 0.1.13 released, 0.1.14 opened.
5642 * Version 0.1.13 released, 0.1.14 opened.
5633
5643
5634 * Changed handling of options for output cache. Now counter is
5644 * Changed handling of options for output cache. Now counter is
5635 hardwired starting at 1 and one specifies the maximum number of
5645 hardwired starting at 1 and one specifies the maximum number of
5636 entries *in the outcache* (not the max prompt counter). This is
5646 entries *in the outcache* (not the max prompt counter). This is
5637 much better, since many statements won't increase the cache
5647 much better, since many statements won't increase the cache
5638 count. It also eliminated some confusing options, now there's only
5648 count. It also eliminated some confusing options, now there's only
5639 one: cache_size.
5649 one: cache_size.
5640
5650
5641 * Added 'alias' magic function and magic_alias option in the
5651 * Added 'alias' magic function and magic_alias option in the
5642 ipythonrc file. Now the user can easily define whatever names he
5652 ipythonrc file. Now the user can easily define whatever names he
5643 wants for the magic functions without having to play weird
5653 wants for the magic functions without having to play weird
5644 namespace games. This gives IPython a real shell-like feel.
5654 namespace games. This gives IPython a real shell-like feel.
5645
5655
5646 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5656 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5647 @ or not).
5657 @ or not).
5648
5658
5649 This was one of the last remaining 'visible' bugs (that I know
5659 This was one of the last remaining 'visible' bugs (that I know
5650 of). I think if I can clean up the session loading so it works
5660 of). I think if I can clean up the session loading so it works
5651 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5661 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5652 about licensing).
5662 about licensing).
5653
5663
5654 2001-11-25 Fernando Perez <fperez@colorado.edu>
5664 2001-11-25 Fernando Perez <fperez@colorado.edu>
5655
5665
5656 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5666 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5657 there's a cleaner distinction between what ? and ?? show.
5667 there's a cleaner distinction between what ? and ?? show.
5658
5668
5659 * Added screen_length option. Now the user can define his own
5669 * Added screen_length option. Now the user can define his own
5660 screen size for page() operations.
5670 screen size for page() operations.
5661
5671
5662 * Implemented magic shell-like functions with automatic code
5672 * Implemented magic shell-like functions with automatic code
5663 generation. Now adding another function is just a matter of adding
5673 generation. Now adding another function is just a matter of adding
5664 an entry to a dict, and the function is dynamically generated at
5674 an entry to a dict, and the function is dynamically generated at
5665 run-time. Python has some really cool features!
5675 run-time. Python has some really cool features!
5666
5676
5667 * Renamed many options to cleanup conventions a little. Now all
5677 * Renamed many options to cleanup conventions a little. Now all
5668 are lowercase, and only underscores where needed. Also in the code
5678 are lowercase, and only underscores where needed. Also in the code
5669 option name tables are clearer.
5679 option name tables are clearer.
5670
5680
5671 * Changed prompts a little. Now input is 'In [n]:' instead of
5681 * Changed prompts a little. Now input is 'In [n]:' instead of
5672 'In[n]:='. This allows it the numbers to be aligned with the
5682 'In[n]:='. This allows it the numbers to be aligned with the
5673 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5683 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5674 Python (it was a Mathematica thing). The '...' continuation prompt
5684 Python (it was a Mathematica thing). The '...' continuation prompt
5675 was also changed a little to align better.
5685 was also changed a little to align better.
5676
5686
5677 * Fixed bug when flushing output cache. Not all _p<n> variables
5687 * Fixed bug when flushing output cache. Not all _p<n> variables
5678 exist, so their deletion needs to be wrapped in a try:
5688 exist, so their deletion needs to be wrapped in a try:
5679
5689
5680 * Figured out how to properly use inspect.formatargspec() (it
5690 * Figured out how to properly use inspect.formatargspec() (it
5681 requires the args preceded by *). So I removed all the code from
5691 requires the args preceded by *). So I removed all the code from
5682 _get_pdef in Magic, which was just replicating that.
5692 _get_pdef in Magic, which was just replicating that.
5683
5693
5684 * Added test to prefilter to allow redefining magic function names
5694 * Added test to prefilter to allow redefining magic function names
5685 as variables. This is ok, since the @ form is always available,
5695 as variables. This is ok, since the @ form is always available,
5686 but whe should allow the user to define a variable called 'ls' if
5696 but whe should allow the user to define a variable called 'ls' if
5687 he needs it.
5697 he needs it.
5688
5698
5689 * Moved the ToDo information from README into a separate ToDo.
5699 * Moved the ToDo information from README into a separate ToDo.
5690
5700
5691 * General code cleanup and small bugfixes. I think it's close to a
5701 * General code cleanup and small bugfixes. I think it's close to a
5692 state where it can be released, obviously with a big 'beta'
5702 state where it can be released, obviously with a big 'beta'
5693 warning on it.
5703 warning on it.
5694
5704
5695 * Got the magic function split to work. Now all magics are defined
5705 * Got the magic function split to work. Now all magics are defined
5696 in a separate class. It just organizes things a bit, and now
5706 in a separate class. It just organizes things a bit, and now
5697 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5707 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5698 was too long).
5708 was too long).
5699
5709
5700 * Changed @clear to @reset to avoid potential confusions with
5710 * Changed @clear to @reset to avoid potential confusions with
5701 the shell command clear. Also renamed @cl to @clear, which does
5711 the shell command clear. Also renamed @cl to @clear, which does
5702 exactly what people expect it to from their shell experience.
5712 exactly what people expect it to from their shell experience.
5703
5713
5704 Added a check to the @reset command (since it's so
5714 Added a check to the @reset command (since it's so
5705 destructive, it's probably a good idea to ask for confirmation).
5715 destructive, it's probably a good idea to ask for confirmation).
5706 But now reset only works for full namespace resetting. Since the
5716 But now reset only works for full namespace resetting. Since the
5707 del keyword is already there for deleting a few specific
5717 del keyword is already there for deleting a few specific
5708 variables, I don't see the point of having a redundant magic
5718 variables, I don't see the point of having a redundant magic
5709 function for the same task.
5719 function for the same task.
5710
5720
5711 2001-11-24 Fernando Perez <fperez@colorado.edu>
5721 2001-11-24 Fernando Perez <fperez@colorado.edu>
5712
5722
5713 * Updated the builtin docs (esp. the ? ones).
5723 * Updated the builtin docs (esp. the ? ones).
5714
5724
5715 * Ran all the code through pychecker. Not terribly impressed with
5725 * Ran all the code through pychecker. Not terribly impressed with
5716 it: lots of spurious warnings and didn't really find anything of
5726 it: lots of spurious warnings and didn't really find anything of
5717 substance (just a few modules being imported and not used).
5727 substance (just a few modules being imported and not used).
5718
5728
5719 * Implemented the new ultraTB functionality into IPython. New
5729 * Implemented the new ultraTB functionality into IPython. New
5720 option: xcolors. This chooses color scheme. xmode now only selects
5730 option: xcolors. This chooses color scheme. xmode now only selects
5721 between Plain and Verbose. Better orthogonality.
5731 between Plain and Verbose. Better orthogonality.
5722
5732
5723 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5733 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5724 mode and color scheme for the exception handlers. Now it's
5734 mode and color scheme for the exception handlers. Now it's
5725 possible to have the verbose traceback with no coloring.
5735 possible to have the verbose traceback with no coloring.
5726
5736
5727 2001-11-23 Fernando Perez <fperez@colorado.edu>
5737 2001-11-23 Fernando Perez <fperez@colorado.edu>
5728
5738
5729 * Version 0.1.12 released, 0.1.13 opened.
5739 * Version 0.1.12 released, 0.1.13 opened.
5730
5740
5731 * Removed option to set auto-quote and auto-paren escapes by
5741 * Removed option to set auto-quote and auto-paren escapes by
5732 user. The chances of breaking valid syntax are just too high. If
5742 user. The chances of breaking valid syntax are just too high. If
5733 someone *really* wants, they can always dig into the code.
5743 someone *really* wants, they can always dig into the code.
5734
5744
5735 * Made prompt separators configurable.
5745 * Made prompt separators configurable.
5736
5746
5737 2001-11-22 Fernando Perez <fperez@colorado.edu>
5747 2001-11-22 Fernando Perez <fperez@colorado.edu>
5738
5748
5739 * Small bugfixes in many places.
5749 * Small bugfixes in many places.
5740
5750
5741 * Removed the MyCompleter class from ipplib. It seemed redundant
5751 * Removed the MyCompleter class from ipplib. It seemed redundant
5742 with the C-p,C-n history search functionality. Less code to
5752 with the C-p,C-n history search functionality. Less code to
5743 maintain.
5753 maintain.
5744
5754
5745 * Moved all the original ipython.py code into ipythonlib.py. Right
5755 * Moved all the original ipython.py code into ipythonlib.py. Right
5746 now it's just one big dump into a function called make_IPython, so
5756 now it's just one big dump into a function called make_IPython, so
5747 no real modularity has been gained. But at least it makes the
5757 no real modularity has been gained. But at least it makes the
5748 wrapper script tiny, and since ipythonlib is a module, it gets
5758 wrapper script tiny, and since ipythonlib is a module, it gets
5749 compiled and startup is much faster.
5759 compiled and startup is much faster.
5750
5760
5751 This is a reasobably 'deep' change, so we should test it for a
5761 This is a reasobably 'deep' change, so we should test it for a
5752 while without messing too much more with the code.
5762 while without messing too much more with the code.
5753
5763
5754 2001-11-21 Fernando Perez <fperez@colorado.edu>
5764 2001-11-21 Fernando Perez <fperez@colorado.edu>
5755
5765
5756 * Version 0.1.11 released, 0.1.12 opened for further work.
5766 * Version 0.1.11 released, 0.1.12 opened for further work.
5757
5767
5758 * Removed dependency on Itpl. It was only needed in one place. It
5768 * Removed dependency on Itpl. It was only needed in one place. It
5759 would be nice if this became part of python, though. It makes life
5769 would be nice if this became part of python, though. It makes life
5760 *a lot* easier in some cases.
5770 *a lot* easier in some cases.
5761
5771
5762 * Simplified the prefilter code a bit. Now all handlers are
5772 * Simplified the prefilter code a bit. Now all handlers are
5763 expected to explicitly return a value (at least a blank string).
5773 expected to explicitly return a value (at least a blank string).
5764
5774
5765 * Heavy edits in ipplib. Removed the help system altogether. Now
5775 * Heavy edits in ipplib. Removed the help system altogether. Now
5766 obj?/?? is used for inspecting objects, a magic @doc prints
5776 obj?/?? is used for inspecting objects, a magic @doc prints
5767 docstrings, and full-blown Python help is accessed via the 'help'
5777 docstrings, and full-blown Python help is accessed via the 'help'
5768 keyword. This cleans up a lot of code (less to maintain) and does
5778 keyword. This cleans up a lot of code (less to maintain) and does
5769 the job. Since 'help' is now a standard Python component, might as
5779 the job. Since 'help' is now a standard Python component, might as
5770 well use it and remove duplicate functionality.
5780 well use it and remove duplicate functionality.
5771
5781
5772 Also removed the option to use ipplib as a standalone program. By
5782 Also removed the option to use ipplib as a standalone program. By
5773 now it's too dependent on other parts of IPython to function alone.
5783 now it's too dependent on other parts of IPython to function alone.
5774
5784
5775 * Fixed bug in genutils.pager. It would crash if the pager was
5785 * Fixed bug in genutils.pager. It would crash if the pager was
5776 exited immediately after opening (broken pipe).
5786 exited immediately after opening (broken pipe).
5777
5787
5778 * Trimmed down the VerboseTB reporting a little. The header is
5788 * Trimmed down the VerboseTB reporting a little. The header is
5779 much shorter now and the repeated exception arguments at the end
5789 much shorter now and the repeated exception arguments at the end
5780 have been removed. For interactive use the old header seemed a bit
5790 have been removed. For interactive use the old header seemed a bit
5781 excessive.
5791 excessive.
5782
5792
5783 * Fixed small bug in output of @whos for variables with multi-word
5793 * Fixed small bug in output of @whos for variables with multi-word
5784 types (only first word was displayed).
5794 types (only first word was displayed).
5785
5795
5786 2001-11-17 Fernando Perez <fperez@colorado.edu>
5796 2001-11-17 Fernando Perez <fperez@colorado.edu>
5787
5797
5788 * Version 0.1.10 released, 0.1.11 opened for further work.
5798 * Version 0.1.10 released, 0.1.11 opened for further work.
5789
5799
5790 * Modified dirs and friends. dirs now *returns* the stack (not
5800 * Modified dirs and friends. dirs now *returns* the stack (not
5791 prints), so one can manipulate it as a variable. Convenient to
5801 prints), so one can manipulate it as a variable. Convenient to
5792 travel along many directories.
5802 travel along many directories.
5793
5803
5794 * Fixed bug in magic_pdef: would only work with functions with
5804 * Fixed bug in magic_pdef: would only work with functions with
5795 arguments with default values.
5805 arguments with default values.
5796
5806
5797 2001-11-14 Fernando Perez <fperez@colorado.edu>
5807 2001-11-14 Fernando Perez <fperez@colorado.edu>
5798
5808
5799 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5809 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5800 example with IPython. Various other minor fixes and cleanups.
5810 example with IPython. Various other minor fixes and cleanups.
5801
5811
5802 * Version 0.1.9 released, 0.1.10 opened for further work.
5812 * Version 0.1.9 released, 0.1.10 opened for further work.
5803
5813
5804 * Added sys.path to the list of directories searched in the
5814 * Added sys.path to the list of directories searched in the
5805 execfile= option. It used to be the current directory and the
5815 execfile= option. It used to be the current directory and the
5806 user's IPYTHONDIR only.
5816 user's IPYTHONDIR only.
5807
5817
5808 2001-11-13 Fernando Perez <fperez@colorado.edu>
5818 2001-11-13 Fernando Perez <fperez@colorado.edu>
5809
5819
5810 * Reinstated the raw_input/prefilter separation that Janko had
5820 * Reinstated the raw_input/prefilter separation that Janko had
5811 initially. This gives a more convenient setup for extending the
5821 initially. This gives a more convenient setup for extending the
5812 pre-processor from the outside: raw_input always gets a string,
5822 pre-processor from the outside: raw_input always gets a string,
5813 and prefilter has to process it. We can then redefine prefilter
5823 and prefilter has to process it. We can then redefine prefilter
5814 from the outside and implement extensions for special
5824 from the outside and implement extensions for special
5815 purposes.
5825 purposes.
5816
5826
5817 Today I got one for inputting PhysicalQuantity objects
5827 Today I got one for inputting PhysicalQuantity objects
5818 (from Scientific) without needing any function calls at
5828 (from Scientific) without needing any function calls at
5819 all. Extremely convenient, and it's all done as a user-level
5829 all. Extremely convenient, and it's all done as a user-level
5820 extension (no IPython code was touched). Now instead of:
5830 extension (no IPython code was touched). Now instead of:
5821 a = PhysicalQuantity(4.2,'m/s**2')
5831 a = PhysicalQuantity(4.2,'m/s**2')
5822 one can simply say
5832 one can simply say
5823 a = 4.2 m/s**2
5833 a = 4.2 m/s**2
5824 or even
5834 or even
5825 a = 4.2 m/s^2
5835 a = 4.2 m/s^2
5826
5836
5827 I use this, but it's also a proof of concept: IPython really is
5837 I use this, but it's also a proof of concept: IPython really is
5828 fully user-extensible, even at the level of the parsing of the
5838 fully user-extensible, even at the level of the parsing of the
5829 command line. It's not trivial, but it's perfectly doable.
5839 command line. It's not trivial, but it's perfectly doable.
5830
5840
5831 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5841 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5832 the problem of modules being loaded in the inverse order in which
5842 the problem of modules being loaded in the inverse order in which
5833 they were defined in
5843 they were defined in
5834
5844
5835 * Version 0.1.8 released, 0.1.9 opened for further work.
5845 * Version 0.1.8 released, 0.1.9 opened for further work.
5836
5846
5837 * Added magics pdef, source and file. They respectively show the
5847 * Added magics pdef, source and file. They respectively show the
5838 definition line ('prototype' in C), source code and full python
5848 definition line ('prototype' in C), source code and full python
5839 file for any callable object. The object inspector oinfo uses
5849 file for any callable object. The object inspector oinfo uses
5840 these to show the same information.
5850 these to show the same information.
5841
5851
5842 * Version 0.1.7 released, 0.1.8 opened for further work.
5852 * Version 0.1.7 released, 0.1.8 opened for further work.
5843
5853
5844 * Separated all the magic functions into a class called Magic. The
5854 * Separated all the magic functions into a class called Magic. The
5845 InteractiveShell class was becoming too big for Xemacs to handle
5855 InteractiveShell class was becoming too big for Xemacs to handle
5846 (de-indenting a line would lock it up for 10 seconds while it
5856 (de-indenting a line would lock it up for 10 seconds while it
5847 backtracked on the whole class!)
5857 backtracked on the whole class!)
5848
5858
5849 FIXME: didn't work. It can be done, but right now namespaces are
5859 FIXME: didn't work. It can be done, but right now namespaces are
5850 all messed up. Do it later (reverted it for now, so at least
5860 all messed up. Do it later (reverted it for now, so at least
5851 everything works as before).
5861 everything works as before).
5852
5862
5853 * Got the object introspection system (magic_oinfo) working! I
5863 * Got the object introspection system (magic_oinfo) working! I
5854 think this is pretty much ready for release to Janko, so he can
5864 think this is pretty much ready for release to Janko, so he can
5855 test it for a while and then announce it. Pretty much 100% of what
5865 test it for a while and then announce it. Pretty much 100% of what
5856 I wanted for the 'phase 1' release is ready. Happy, tired.
5866 I wanted for the 'phase 1' release is ready. Happy, tired.
5857
5867
5858 2001-11-12 Fernando Perez <fperez@colorado.edu>
5868 2001-11-12 Fernando Perez <fperez@colorado.edu>
5859
5869
5860 * Version 0.1.6 released, 0.1.7 opened for further work.
5870 * Version 0.1.6 released, 0.1.7 opened for further work.
5861
5871
5862 * Fixed bug in printing: it used to test for truth before
5872 * Fixed bug in printing: it used to test for truth before
5863 printing, so 0 wouldn't print. Now checks for None.
5873 printing, so 0 wouldn't print. Now checks for None.
5864
5874
5865 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5875 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5866 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5876 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5867 reaches by hand into the outputcache. Think of a better way to do
5877 reaches by hand into the outputcache. Think of a better way to do
5868 this later.
5878 this later.
5869
5879
5870 * Various small fixes thanks to Nathan's comments.
5880 * Various small fixes thanks to Nathan's comments.
5871
5881
5872 * Changed magic_pprint to magic_Pprint. This way it doesn't
5882 * Changed magic_pprint to magic_Pprint. This way it doesn't
5873 collide with pprint() and the name is consistent with the command
5883 collide with pprint() and the name is consistent with the command
5874 line option.
5884 line option.
5875
5885
5876 * Changed prompt counter behavior to be fully like
5886 * Changed prompt counter behavior to be fully like
5877 Mathematica's. That is, even input that doesn't return a result
5887 Mathematica's. That is, even input that doesn't return a result
5878 raises the prompt counter. The old behavior was kind of confusing
5888 raises the prompt counter. The old behavior was kind of confusing
5879 (getting the same prompt number several times if the operation
5889 (getting the same prompt number several times if the operation
5880 didn't return a result).
5890 didn't return a result).
5881
5891
5882 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5892 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5883
5893
5884 * Fixed -Classic mode (wasn't working anymore).
5894 * Fixed -Classic mode (wasn't working anymore).
5885
5895
5886 * Added colored prompts using Nathan's new code. Colors are
5896 * Added colored prompts using Nathan's new code. Colors are
5887 currently hardwired, they can be user-configurable. For
5897 currently hardwired, they can be user-configurable. For
5888 developers, they can be chosen in file ipythonlib.py, at the
5898 developers, they can be chosen in file ipythonlib.py, at the
5889 beginning of the CachedOutput class def.
5899 beginning of the CachedOutput class def.
5890
5900
5891 2001-11-11 Fernando Perez <fperez@colorado.edu>
5901 2001-11-11 Fernando Perez <fperez@colorado.edu>
5892
5902
5893 * Version 0.1.5 released, 0.1.6 opened for further work.
5903 * Version 0.1.5 released, 0.1.6 opened for further work.
5894
5904
5895 * Changed magic_env to *return* the environment as a dict (not to
5905 * Changed magic_env to *return* the environment as a dict (not to
5896 print it). This way it prints, but it can also be processed.
5906 print it). This way it prints, but it can also be processed.
5897
5907
5898 * Added Verbose exception reporting to interactive
5908 * Added Verbose exception reporting to interactive
5899 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5909 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5900 traceback. Had to make some changes to the ultraTB file. This is
5910 traceback. Had to make some changes to the ultraTB file. This is
5901 probably the last 'big' thing in my mental todo list. This ties
5911 probably the last 'big' thing in my mental todo list. This ties
5902 in with the next entry:
5912 in with the next entry:
5903
5913
5904 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5914 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5905 has to specify is Plain, Color or Verbose for all exception
5915 has to specify is Plain, Color or Verbose for all exception
5906 handling.
5916 handling.
5907
5917
5908 * Removed ShellServices option. All this can really be done via
5918 * Removed ShellServices option. All this can really be done via
5909 the magic system. It's easier to extend, cleaner and has automatic
5919 the magic system. It's easier to extend, cleaner and has automatic
5910 namespace protection and documentation.
5920 namespace protection and documentation.
5911
5921
5912 2001-11-09 Fernando Perez <fperez@colorado.edu>
5922 2001-11-09 Fernando Perez <fperez@colorado.edu>
5913
5923
5914 * Fixed bug in output cache flushing (missing parameter to
5924 * Fixed bug in output cache flushing (missing parameter to
5915 __init__). Other small bugs fixed (found using pychecker).
5925 __init__). Other small bugs fixed (found using pychecker).
5916
5926
5917 * Version 0.1.4 opened for bugfixing.
5927 * Version 0.1.4 opened for bugfixing.
5918
5928
5919 2001-11-07 Fernando Perez <fperez@colorado.edu>
5929 2001-11-07 Fernando Perez <fperez@colorado.edu>
5920
5930
5921 * Version 0.1.3 released, mainly because of the raw_input bug.
5931 * Version 0.1.3 released, mainly because of the raw_input bug.
5922
5932
5923 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5933 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5924 and when testing for whether things were callable, a call could
5934 and when testing for whether things were callable, a call could
5925 actually be made to certain functions. They would get called again
5935 actually be made to certain functions. They would get called again
5926 once 'really' executed, with a resulting double call. A disaster
5936 once 'really' executed, with a resulting double call. A disaster
5927 in many cases (list.reverse() would never work!).
5937 in many cases (list.reverse() would never work!).
5928
5938
5929 * Removed prefilter() function, moved its code to raw_input (which
5939 * Removed prefilter() function, moved its code to raw_input (which
5930 after all was just a near-empty caller for prefilter). This saves
5940 after all was just a near-empty caller for prefilter). This saves
5931 a function call on every prompt, and simplifies the class a tiny bit.
5941 a function call on every prompt, and simplifies the class a tiny bit.
5932
5942
5933 * Fix _ip to __ip name in magic example file.
5943 * Fix _ip to __ip name in magic example file.
5934
5944
5935 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5945 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5936 work with non-gnu versions of tar.
5946 work with non-gnu versions of tar.
5937
5947
5938 2001-11-06 Fernando Perez <fperez@colorado.edu>
5948 2001-11-06 Fernando Perez <fperez@colorado.edu>
5939
5949
5940 * Version 0.1.2. Just to keep track of the recent changes.
5950 * Version 0.1.2. Just to keep track of the recent changes.
5941
5951
5942 * Fixed nasty bug in output prompt routine. It used to check 'if
5952 * Fixed nasty bug in output prompt routine. It used to check 'if
5943 arg != None...'. Problem is, this fails if arg implements a
5953 arg != None...'. Problem is, this fails if arg implements a
5944 special comparison (__cmp__) which disallows comparing to
5954 special comparison (__cmp__) which disallows comparing to
5945 None. Found it when trying to use the PhysicalQuantity module from
5955 None. Found it when trying to use the PhysicalQuantity module from
5946 ScientificPython.
5956 ScientificPython.
5947
5957
5948 2001-11-05 Fernando Perez <fperez@colorado.edu>
5958 2001-11-05 Fernando Perez <fperez@colorado.edu>
5949
5959
5950 * Also added dirs. Now the pushd/popd/dirs family functions
5960 * Also added dirs. Now the pushd/popd/dirs family functions
5951 basically like the shell, with the added convenience of going home
5961 basically like the shell, with the added convenience of going home
5952 when called with no args.
5962 when called with no args.
5953
5963
5954 * pushd/popd slightly modified to mimic shell behavior more
5964 * pushd/popd slightly modified to mimic shell behavior more
5955 closely.
5965 closely.
5956
5966
5957 * Added env,pushd,popd from ShellServices as magic functions. I
5967 * Added env,pushd,popd from ShellServices as magic functions. I
5958 think the cleanest will be to port all desired functions from
5968 think the cleanest will be to port all desired functions from
5959 ShellServices as magics and remove ShellServices altogether. This
5969 ShellServices as magics and remove ShellServices altogether. This
5960 will provide a single, clean way of adding functionality
5970 will provide a single, clean way of adding functionality
5961 (shell-type or otherwise) to IP.
5971 (shell-type or otherwise) to IP.
5962
5972
5963 2001-11-04 Fernando Perez <fperez@colorado.edu>
5973 2001-11-04 Fernando Perez <fperez@colorado.edu>
5964
5974
5965 * Added .ipython/ directory to sys.path. This way users can keep
5975 * Added .ipython/ directory to sys.path. This way users can keep
5966 customizations there and access them via import.
5976 customizations there and access them via import.
5967
5977
5968 2001-11-03 Fernando Perez <fperez@colorado.edu>
5978 2001-11-03 Fernando Perez <fperez@colorado.edu>
5969
5979
5970 * Opened version 0.1.1 for new changes.
5980 * Opened version 0.1.1 for new changes.
5971
5981
5972 * Changed version number to 0.1.0: first 'public' release, sent to
5982 * Changed version number to 0.1.0: first 'public' release, sent to
5973 Nathan and Janko.
5983 Nathan and Janko.
5974
5984
5975 * Lots of small fixes and tweaks.
5985 * Lots of small fixes and tweaks.
5976
5986
5977 * Minor changes to whos format. Now strings are shown, snipped if
5987 * Minor changes to whos format. Now strings are shown, snipped if
5978 too long.
5988 too long.
5979
5989
5980 * Changed ShellServices to work on __main__ so they show up in @who
5990 * Changed ShellServices to work on __main__ so they show up in @who
5981
5991
5982 * Help also works with ? at the end of a line:
5992 * Help also works with ? at the end of a line:
5983 ?sin and sin?
5993 ?sin and sin?
5984 both produce the same effect. This is nice, as often I use the
5994 both produce the same effect. This is nice, as often I use the
5985 tab-complete to find the name of a method, but I used to then have
5995 tab-complete to find the name of a method, but I used to then have
5986 to go to the beginning of the line to put a ? if I wanted more
5996 to go to the beginning of the line to put a ? if I wanted more
5987 info. Now I can just add the ? and hit return. Convenient.
5997 info. Now I can just add the ? and hit return. Convenient.
5988
5998
5989 2001-11-02 Fernando Perez <fperez@colorado.edu>
5999 2001-11-02 Fernando Perez <fperez@colorado.edu>
5990
6000
5991 * Python version check (>=2.1) added.
6001 * Python version check (>=2.1) added.
5992
6002
5993 * Added LazyPython documentation. At this point the docs are quite
6003 * Added LazyPython documentation. At this point the docs are quite
5994 a mess. A cleanup is in order.
6004 a mess. A cleanup is in order.
5995
6005
5996 * Auto-installer created. For some bizarre reason, the zipfiles
6006 * Auto-installer created. For some bizarre reason, the zipfiles
5997 module isn't working on my system. So I made a tar version
6007 module isn't working on my system. So I made a tar version
5998 (hopefully the command line options in various systems won't kill
6008 (hopefully the command line options in various systems won't kill
5999 me).
6009 me).
6000
6010
6001 * Fixes to Struct in genutils. Now all dictionary-like methods are
6011 * Fixes to Struct in genutils. Now all dictionary-like methods are
6002 protected (reasonably).
6012 protected (reasonably).
6003
6013
6004 * Added pager function to genutils and changed ? to print usage
6014 * Added pager function to genutils and changed ? to print usage
6005 note through it (it was too long).
6015 note through it (it was too long).
6006
6016
6007 * Added the LazyPython functionality. Works great! I changed the
6017 * Added the LazyPython functionality. Works great! I changed the
6008 auto-quote escape to ';', it's on home row and next to '. But
6018 auto-quote escape to ';', it's on home row and next to '. But
6009 both auto-quote and auto-paren (still /) escapes are command-line
6019 both auto-quote and auto-paren (still /) escapes are command-line
6010 parameters.
6020 parameters.
6011
6021
6012
6022
6013 2001-11-01 Fernando Perez <fperez@colorado.edu>
6023 2001-11-01 Fernando Perez <fperez@colorado.edu>
6014
6024
6015 * Version changed to 0.0.7. Fairly large change: configuration now
6025 * Version changed to 0.0.7. Fairly large change: configuration now
6016 is all stored in a directory, by default .ipython. There, all
6026 is all stored in a directory, by default .ipython. There, all
6017 config files have normal looking names (not .names)
6027 config files have normal looking names (not .names)
6018
6028
6019 * Version 0.0.6 Released first to Lucas and Archie as a test
6029 * Version 0.0.6 Released first to Lucas and Archie as a test
6020 run. Since it's the first 'semi-public' release, change version to
6030 run. Since it's the first 'semi-public' release, change version to
6021 > 0.0.6 for any changes now.
6031 > 0.0.6 for any changes now.
6022
6032
6023 * Stuff I had put in the ipplib.py changelog:
6033 * Stuff I had put in the ipplib.py changelog:
6024
6034
6025 Changes to InteractiveShell:
6035 Changes to InteractiveShell:
6026
6036
6027 - Made the usage message a parameter.
6037 - Made the usage message a parameter.
6028
6038
6029 - Require the name of the shell variable to be given. It's a bit
6039 - Require the name of the shell variable to be given. It's a bit
6030 of a hack, but allows the name 'shell' not to be hardwired in the
6040 of a hack, but allows the name 'shell' not to be hardwired in the
6031 magic (@) handler, which is problematic b/c it requires
6041 magic (@) handler, which is problematic b/c it requires
6032 polluting the global namespace with 'shell'. This in turn is
6042 polluting the global namespace with 'shell'. This in turn is
6033 fragile: if a user redefines a variable called shell, things
6043 fragile: if a user redefines a variable called shell, things
6034 break.
6044 break.
6035
6045
6036 - magic @: all functions available through @ need to be defined
6046 - magic @: all functions available through @ need to be defined
6037 as magic_<name>, even though they can be called simply as
6047 as magic_<name>, even though they can be called simply as
6038 @<name>. This allows the special command @magic to gather
6048 @<name>. This allows the special command @magic to gather
6039 information automatically about all existing magic functions,
6049 information automatically about all existing magic functions,
6040 even if they are run-time user extensions, by parsing the shell
6050 even if they are run-time user extensions, by parsing the shell
6041 instance __dict__ looking for special magic_ names.
6051 instance __dict__ looking for special magic_ names.
6042
6052
6043 - mainloop: added *two* local namespace parameters. This allows
6053 - mainloop: added *two* local namespace parameters. This allows
6044 the class to differentiate between parameters which were there
6054 the class to differentiate between parameters which were there
6045 before and after command line initialization was processed. This
6055 before and after command line initialization was processed. This
6046 way, later @who can show things loaded at startup by the
6056 way, later @who can show things loaded at startup by the
6047 user. This trick was necessary to make session saving/reloading
6057 user. This trick was necessary to make session saving/reloading
6048 really work: ideally after saving/exiting/reloading a session,
6058 really work: ideally after saving/exiting/reloading a session,
6049 *everything* should look the same, including the output of @who. I
6059 *everything* should look the same, including the output of @who. I
6050 was only able to make this work with this double namespace
6060 was only able to make this work with this double namespace
6051 trick.
6061 trick.
6052
6062
6053 - added a header to the logfile which allows (almost) full
6063 - added a header to the logfile which allows (almost) full
6054 session restoring.
6064 session restoring.
6055
6065
6056 - prepend lines beginning with @ or !, with a and log
6066 - prepend lines beginning with @ or !, with a and log
6057 them. Why? !lines: may be useful to know what you did @lines:
6067 them. Why? !lines: may be useful to know what you did @lines:
6058 they may affect session state. So when restoring a session, at
6068 they may affect session state. So when restoring a session, at
6059 least inform the user of their presence. I couldn't quite get
6069 least inform the user of their presence. I couldn't quite get
6060 them to properly re-execute, but at least the user is warned.
6070 them to properly re-execute, but at least the user is warned.
6061
6071
6062 * Started ChangeLog.
6072 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now